On Sun, 19 Jan 2014 11:47:11 -0800, Paul O'Neil <redballoo...@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

Reply via email to