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