Boost logo

Boost :

From: Asger Alstrup Nielsen (alstrup_at_[hidden])
Date: 2002-05-02 03:23:24


> I can't imagine we would be interested in a graphics library
> unless it ran on both Windows and UNIX-like systems, and had
> good prospects of running on the Mac and other platforms.

In that case, SDL (http://www.libsdl.org/) is probably closer to what
you want. SDL is in C, licensed under the LGPL, and it will probably
never be submitted for Boost. However, it could work as a guide to what
feature set you are looking for. Also, it illustrates the kind of effort
that is needed to create a high-quality cross-platform graphics library.

Personally, I think Maxim should focus on the rendering part of the
effort, because this is the unique part of AGG. It provides some of the
best quality rendering capabilities, I have seen. This is where AGG has
the edge.

In order to get cross-platform rendering fast, he could hook it up with
SDL. That would allow Unix and Mac users to try it, and help out.

However, it is a huge undertaking to re-create SDL. It can only really
be done in a group effort, because it requires platform expertise that
no single individual has. I think it is better for Maxim to aim for
proof-of-concept portability, rather than absolute, production quality
portability to Windows, Unix and Mac.

By hooking up with SDL in addition to the Win32 GDI API, he can
demonstrate that the base is portable to at least two different systems.
And he can stay on the same platform, so it is realistic for him to do
so without spending a year to learn Unix. Alternatively, he could use
the Win32 GDI API as the first platform, and then DirectX as the second
platform, but that would not open the code to as many people as the SDL
path.

But either should suffice as proof-of-concept.

Compare with threads: Bill Kempf implemented the first stepping stone of
the threading library for Win32 and Unix. He did not attempt to port it
to Mac himself, nor did he provide all threading features at once. That
was a wise decision, because otherwise we would not have a threading
library today.

I think the same strategy is the best here: Focus on the core, and port
it to one extra platform as a proof-of-concept. Then, in a group effort,
the scope can be extended.

Greets,

Asger Alstrup Nielsen


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk