
ali fareed wrote:
Hello,
Are there any plans in the pipeline to add a 3d graphics library to boost? If there was an available implementation would something like this be considered? I'm talking about a 3d graphics api wrapper probably around OpenGL in the style of boost. Functionality can include the common subset found in most other rendering APIs (like Direc3D and OpenGL)
I wonder how such an interface would look. I would be amazingly nice to have an interface to which one could conform backends to in an efficient manner. The backends I would love to see supported are: OpenGL 1.5 / 2.0 Direct3D 8.1 / 9 / 10, XBOX, XBOX360 OpenGL|ES 1.0 / 1.1 / 2.0 PSGL Of course these libraries have wildly different interfaces, implementations, feature sets etc. Almost all existing 3d graphics abstractions are implemented as rendering engine frameworks. A framework is very hard to buy into and using multiple frameworks together is next to impossible. A toolkit approach ala ASIO would be preferred. Anyways I'd love a discussion about this idea. I'm currently stuck implementing yet another abstraction layer for a subset of the backends I mentioned above. And while the work is interesting it was much more interesting the first time I had to do it and I'd rather be working on the project.
On the same note, how about an audio library? load audio files, play audio files, etc...
Just finished yet another audio wrapper to run on top of several audio backends. For most people I suppose FMOD suffices but FMOD doesn't support every platform so we're back to rolling our own interface wrapper for various implementations because FMOD is closed and commercial.
I can see some problems, the main one (AFAIK) being supporting all the different window frameworks. If this can be worked around somehow (it could if something like gtk or wxWidgets was added to boost)...
Most window frameworks are very hard integrate into existing applications in my experience and are generally diffcult to port to unsupported platforms.
Comments?
Creating interfaces like this seems like a huge beast to tackle but an important one as much wasted effort is being put into reinventing these wheels. I think it is important to create core interfaces that can handle the simple tasks (i.e draw a triangle list with a texture applied, or play a mono looping sound) that can be readily ported to new backends without having to get a whole mess of additional functionality working from the get go. - Michael Marcin