Aurora Graphics Library Initial Design Discussion

Kiith-Sa kiithsacmp at gmail.com
Sat Jan 18 20:26:47 PST 2014


On Sunday, 19 January 2014 at 03:38:30 UTC, Adam Wilson wrote:
> Hello Everyone,
>
> Based on the previous thread I think we have enough to start 
> laying out the design and writing code for Aurora.
>
> The choice that I would like to clarify is that Aurora will be 
> a retained mode API. I understand that this is not the best 
> choice for speed and that not everyone will be happy with this 
> choice. However, retained mode API's are typically much 
> higher-level, which will make it easier for developers that are 
> unfamiliar with writing graphics code to express their intent. 
> Given the stated goal of Aurora I feel that this is the best 
> choice.
>
> The next is that Aurora will have a pluggable backend rendering 
> system. This will allow us to support any rendering system 
> capable of meeting the requirements of Aurora's frontend. And 
> when combined with the retained mode API you could, in theory, 
> swap renders on the fly. Although I wouldn't want to be the 
> first one try it!
>
> Since Aurora has a pluggable backend for rendering I feel that 
> it will be prudent to use the low-level API's that are best 
> suited to each platform. This will Aurora to support each 
> platform as best as possible. As I currently can tell the 
> following list represents
>
> System		 2D API   / 3D API
> Linux		  X11      / OpenGL 4.3
> Android		Canvas	 / OpenGL ES 3.0
> OSX		    Quartz2D / OpenGL 4.3
> iOS		    Quartz2D / OpenGL ES 3.0
> Windows		Direct2D / Direct3D 11
> Windows	RT     Direct2D / Direct3D 11
>
> The reason for targeting relatively new low-level API versions 
> is that by the time we actually complete the bulk of the work, 
> they won't be new anymore. If anyone has a suggestion for a 2D 
> API on Linux that has the ubiquity of the X11 but is easier to 
> use, please mention it! I would like to have a Wayland backend 
> but that API is still very new and not widely adopted. I've 
> noticed that Android and iOS seem to have many options for 2D 
> graphics, none of which I've had a chance to evaluate 
> rigorously, any recommendations would be appreciated.
>
> As has been widely suggested, Aurora will be split into a 
> number of packages that are loosely coupled. In theory this 
> would allow us to pull the more broadly applicable packages in 
> to Phobos as they mature and then depend on those in Aurora. 
> The tentative list of packages is as follows:
>
> aurora.application
> aurora.primitives
> aurora.graphics2d
> aurora.graphics3d
> aurora.text
> aurora.image
> aurora.math
> aurora.animation
>
> Hopefully, this break down will allow the user to pull in only 
> what they need for their project, without confusing them with 
> choice. Naming suggestions are welcomed!
>
> Finally, I've have set up a GitHub organization for Aurora, 
> which can be accessed at: https://github.com/auroragraphics I 
> haven't posted any code yet, but I am working on 
> aurora.application for Windows. The aurora repo is the master 
> repo and all other package repo's are submodules of it. The 
> aurora repo will consist primarily of the scripts required to 
> build Aurora. This is to make it easier for the newbies to get 
> started while enabling maximum flexibility for the development 
> team.
>
> In the famous words on Andrei ... Destroy!


GL ES 3.0 is a subset of some 4.x version AFAIK, so it may be 
enough to only target that instead of separately targeting GL 4.3 
.

Also, why not OpenGL for 2D on Linux (and possibly elsewhere) ?

Also - I think there should be a possibility to switch between 
e.g. GL and D3D on Windows (I assume that's intended?)


More information about the Digitalmars-d mailing list