Graphics Library for D

Adam Wilson flyboynw at gmail.com
Tue Jan 7 12:23:01 PST 2014


On Tue, 07 Jan 2014 12:13:18 -0800, Ola Fosheim Grøstad  
<ola.fosheim.grostad+dlang at gmail.com> wrote:

> On Tuesday, 7 January 2014 at 19:31:38 UTC, Adam Wilson wrote:
>> True enough, but for the moment we are trying to keep the scope of the  
>> project manageable. If someone wants to add it great! But until then we  
>> need to focus on what is required.
>
> Yes, that is true, and then we should define a set of applications which  
> it will be suitable for and what the basic model is: Should it be  
> immediate mode, retained mode or scene graph based?
>

I think Immediate Mode offers the greatest flexibility and performance.  
It's also the easiest to implement since you don't have to build the  
mountains of data structures needed to retain the scene info.

> High level graphic frameworks tend to loose momentum fast, even the good  
> ones. Example: SGI's Open Inventor is actually a neat scene graph  
> framework, and open source, but dead. SGI's GL survived because it was  
> low level and immediate mode.
>

Cinder, Processing, etc are High-Level Immediate Mode, I think that offers  
the best chance of succeeding.

> So, I really think D is better off providing the basics in phobos first,  
> staying true to the virtue of providing independent modules that are  
> focused:
>
> - OS application abstraction: graphics context, input stream, audio  
> playback
> - generally useful vector path datatype compatible with  
> phobos-collections and SVG
> - vector/matrix library with competitive SSE performance and features  
> such as clamping

To a large degree I agree with this. Getting some basics into Phobos is an  
excellent idea and most of the community seems to agree. The biggest  
problem I can see is that windows are usually tied to the graphics  
framework the implements them. There are numerous reasons for that, all of  
which make sense. For example, I don't know if it would be possible to  
pass the Phobos window to Qt or DirectX, it might be, but we'll have to be  
very careful in our API design if it is.

-- 
Adam Wilson
IRC: LightBender
Aurora Project Coordinator


More information about the Digitalmars-d mailing list