By writing a video filter which processes image/frame data in system (not video) memory, renders 2D graphics, should be cross-platform (at least Windows, Linux & OSX) and work very fast, i looked over different renderers, like Cairo, AGG and many other projects. I'd prefer no GPU requirement, so my focus was on software rendering so far.
Regrettably Cairo could become very slow on complex paths & gradients and produced ugly geometry faults by tiny path segments, AGG was slow too because of missing optimizations which requires a lot of work by users, other projects just rendered to windows or performance wasn't important for them. Blend2D made me curious but takes his time to grow mature.
Now i'm asking me: should i just render to an OpenGL framebuffer and do the 2D-to-3D stuff by a geometry library, take the challenge to develop a software renderer from scratch (accelerated by SIMD, threaded pipeline, etc.) or did i miss a library which is fitting for me?
Is pushing everything graphics related to GPU always worth because of cheap data transfer to & from video memory these days, even with 1080p or larger images?