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