Graphics Library for D

Ola Fosheim Grøstad" <ola.fosheim.grostad+dlang at gmail.com> Ola Fosheim Grøstad" <ola.fosheim.grostad+dlang at gmail.com>
Mon Jan 6 09:55:21 PST 2014


On Monday, 6 January 2014 at 16:52:50 UTC, Justin Whear wrote:
> If the ultimate goal is a high-level, idiomatic D library for 
> people who
> are not necessarily experienced in CG, then shouldn't we start 
> with the
> high-level interface and work down?  That way the end-result

I don't disagree with this, but in reality most graphical 
applications are simpler if you decouple the world-model from the 
visuals and hence input from output and generate the visuals from 
scratch for every frame. Cocos2D is a popular library that 
maintains graphical state for you, but if you want to decouple 
the model from rendering you end up syncing two data structures 
which in the end is more work.

I think most successful libraries are focused and do one thing 
really well, so suggesting dependencies:

CG BASIC
- vec: SSE tuples with swizzle
- geom2 depends on vec: basic geometry
- geom3 depends on vec (and geom2): 3D geometry
- spatialcollections depends on geom3: acceleration data 
structures

GPU
- gpu depends on vec: DX/GL abstraction with shader support
- textureloader depends on gpu: loading jpeg/png into gpu memory 
with caching
- texturerender depends on gpu, geom2,svgpath,image loader: 
render to texture

VG
- svgpath depends on geom2: implements all svg path primitives + 
transformations
- fontreader depends on geom2, svgpath: reading font+metadata + 
generating paths
- fieldfont depends on fontreader, svgpath: creates signed 
distance field textures
- simplepostscript depends on svgpath: for building pdf/drawing 
on canvas2D

OS
- input: cross platform solution for input for various devices 
(might look at marmalade and other cross platform engines for 
ideas)

SAMPLE ENGINES
- canvas3D depends on canvas2D, geom3, spatialcollections, 
texturerender/loader,input
- canvas2D... etc


More information about the Digitalmars-d mailing list