Requirements:
- Retained graphics mode API
- For 2D objects only (though 3D transforms of these 2D objects is of interest)
- Cross-platform
- Vector graphics drawing
- Raster compositing + support for opacity masks - hardware accelerated of course...
- Animation API
- Package size - can it run in an embedded environment?
This is not for a game, but I am not opposed to using a game type API.
Some thoughts:
Qt is probably too heavy-weight, but I am not familiar enough with the API to know if it would meet the requirements. I am not interested in Qts window management (there are no windows) or widget / control set as it is not for a desktop type application. Also, I am not sure if Qt has an animation framework? Thoughts here?
Most likely what this would be is a framework built on top of OpenGL. I just don't know if such a thing exists. Also, I am unclear about 2D graphics in OpenGL. Are 2D graphics truly 2D or are they simply 3D objects drawn on a plane oriented to look 2D?
WPF is to DirectX as _________ is to OpenGL
If the blank can be filled that is what I am looking for.
Update #2
I spent some time this weekend with Qt and have discovered QGraphicsScene class - which seems to be the fundamental class for Qt's 2D retained type graphics mode - and QGraphicsWidget which allows some auto-layout functionality of the QWidget class.
Qt is close to passing my litmus test. One final thing to figure out is a good designer to developer workflow when dealing with Vector images, i.e., how do I take an icon created in Illustrator and turn that into a QGraphicsItem - this might be a good candidate for a new (more focused) question.