Aurora Graphics Library Initial Design Discussion

Kelet kelethunter at gmail.com
Sat Jan 18 22:02:12 PST 2014


On Sunday, 19 January 2014 at 05:23:24 UTC, Elvis Zhou wrote:
> https://github.com/Zoadian/aurora
> Oops, I thought this is the official repo!! It's a new package 
> added to code.dlang.org yesterday.

Doh, I made the same mistake.

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

My thoughts:

ARM support is abysmal in D, IIRC. This rules out most of the 
mobile devices until that situation is relieved. In the meantime, 
the code should be tested on LDC and GDC regularly. Once ARM 
support is mature on one of the aforementioned backend, it 
shouldn't be difficult to finalize support.

I'm not convinced of two things:
- OpenGL should not be used for the 2D API
- Direct3D should be a backend

Ideally, 2D and 3D graphics should be a specific case of a 
generalized system which utilizes OpenGL. Thus, there is no need 
for a separate backend API for 2D graphics. I've done 2D in 
OpenGL and it was not very painful, although it was not a 
substantial project.

I've used a ton of OpenGL software on a lot of hardware running 
Windows and never encountered a problem or major deficiency which 
is not present in Direct3D, hence I don't know why extra effort 
should be expended to support it as a backend.

Backends in order of importance, IMO:
- OpenGL 2.0
- OpenGL 2.0 ES
- OpenGL 1.1
- Software
- OpenGL 4.3

There are a surprising amount of people still on OpenGL 2.0 and 
1.1. For everything else: Software backend. It wouldn't hurt to 
have a 'state of the art' OpenGL 4.3 backend either, but only 
after all else is done.

However, my forays into graphics are mainly hobby game 
development so I may be missing some elements here.

Regards,
Kelet


More information about the Digitalmars-d mailing list