Aurora Graphics Library Initial Design Discussion
Adam Wilson
flyboynw at gmail.com
Sun Jan 19 17:48:26 PST 2014
On Sun, 19 Jan 2014 16:53:31 -0800, Adam Wilson <flyboynw at gmail.com> wrote:
> On Sat, 18 Jan 2014 19:38:29 -0800, Adam Wilson <flyboynw at gmail.com>
> 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!
>>
>
> So I've reworked the default backend API's list.
>
> System 2D API / 3D API
> Linux X11 / OpenGL 3.2
> Android Canvas / OpenGL ES 2.0
> OSX Quartz2D / OpenGL 3.2
> iOS Quartz2D / OpenGL ES 2.0
> Windows Direct2D / Direct3D 11
> Windows RT Direct2D / Direct3D 11
>
> I want to note that I am NOT including D3D9 because Windows XP is EOL in
> 3 months. Yes DMD still supports Windows XP but as I recall it was
> decided to deprecated Windows XP support at EOL or shortly afterwards
> becuase of XP's hacky TLS support. Either way, WinXP is usage is going
> to start sinking off after EOL and I suspect that by the time Aurora is
> Beta in a couple of years it will be under 5%. Also since Vista usage is
> under 5% already I have skipped DX10. That said, I doubt that Aurora
> will actually need the new capabilities of D3D11, however I can't
> guarantee that since the shaders aren't written yet. :-)
>
This should read:
Linux OpenGL 3.2 / OpenGL 3.2
--
Adam Wilson
GitHub/IRC: LightBender
Aurora Project Coordinator
More information about the Digitalmars-d
mailing list