Part of why we need huge libraries to put graphics on the screen is because those amazing graphics cards have comparatively large and complicated interfaces.
I consider GPU acceleration a form of premature optimization - it adds complexity unnecessarily in many cases.
Here's my library for doing that on Windows and X11. https://github.com/abainbridge/deadfrog-lib