Aurora Graphics Library Initial Design Discussion

Adam Wilson flyboynw at gmail.com
Sun Jan 19 16:20:48 PST 2014


On Sun, 19 Jan 2014 11:47:11 -0800, Paul O'Neil <redballoon36 at gmail.com>  
wrote:

> On 01/18/2014 10:38 PM, 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
>>
>> 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.
>
> The choice of X11 (as it is generally used now) / Wayland seems to be  
> the wrong layer of abstraction to me.  While X11 has drawing  
> privimitives, my understanding is that they are generally not used. This  
> is one of the motivating reasons for developing Wayland. Applications  
> draw their content, then send it to X to display on the screen.  Wayland  
> is designed around this path.  Choosing X11/Wayland as a backend is  
> fine, but it would require that there be something filling up the  
> framebuffer (Cairo, OpenGL, whatever).  On the other hand, choosing a  
> renderer (Cairo, OpenGL...) doesn't specify how the content gets to the  
> screen, so I think there's really 2 choices here: rendering backend and  
> windowing backend.  The 3D API will still need to depend on X11/Wayland  
> to get a window on screen.
>
> I have no knowledge of how input works in either X11 or Wayland.
>
> Writing Aurora to render to some kind of buffer is future-proof enough  
> against Wayland, I think.  Likely, the initial set-up and input would  
> have to be rewritten, but the rest would be OK.
>
> Caveat: I'm only ~80% sure about all of this.
>
> My GPU only supports OpenGL 3.x... maybe it's getting old.
>
> Paul

As I understand it there will always be an X11/Wayland dependency to get  
the window but to be honest I would like to keep the usage of X11 to a  
minimum. I have a feeling that the 2D portions of the backend for Linux  
will be written in OpenGL.

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


More information about the Digitalmars-d mailing list