On Sun, 19 Jan 2014 21:59:57 -0800, Jeremy DeHaan <dehaan.jerem...@gmail.com> wrote:

On Sunday, 19 January 2014 at 03:38:30 UTC, Adam Wilson wrote:
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




This is tricky for WinRT, which doesn't support OpenGL, but I
think that we should use OpenGL for both 2D and 3D on as many
systems as possible. Not long ago, Valve had a blog post[1] about
how, even on Windows, OpenGL has faster calls. It also keeps the
code under the hood roughly the same despite the system.

Also, if you are looking for an example of using OpenGL for 2D on
multiple systems, take a look at SFML[2]. It's graphics package
is 2D only, but it runs on Windows, Linux, OSX, and the Android
and iOS parts are nearly finished. Definitely more geared towards
games, but it could make a good starting point.

[1] http://blogs.valvesoftware.com/linux/faster-zombies/
[2] https://github.com/LaurentGomila/SFML

I understand the speed argument, and I keep seeing it, however, Aurora is not primarily about speed, it's about ease of use and working well on a multitude of platforms. As Mike Parker has mentioned more than once, OpenGL on Windows is not quite as consistent in it's rendering of the same command as it is on other platforms due to the fact that GPU vendors are required to implement all of OpenGL instead of just the driver interface. This invariably leads to rendering "bugs". DX doesn't have this problem. So on Windows, for the sake of consistency, Aurora will be using DirectX as the default backend. Note that Mike is primarily responsible for SDL in D so he does know what he is talking about it. I won't stop anybody from writing an OpenGL backend for Windows, it just won't be the default.

--
Adam Wilson
GitHub/IRC: LightBender
Aurora Project Coordinator

Reply via email to