Boost logo

Boost :

From: Michael Marcin (mmarcin_at_[hidden])
Date: 2006-10-25 21:26:59

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

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
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

- Michael Marcin

Boost list run by bdawes at, gregod at, cpdaniel at, john at