Brussels / 1 & 2 February 2014


Porting legacy X11/GL applications to Wayland

OpenCPN and wxWidgets wrapped for Wayland

Many state-of-the-art graphical applications and frameworks still use direct X11 and legacy GL API calls. As we need to move further and follow new evolutions of the UNIX display stack, especially on embedded platforms, we need to adapt or wrap our codebase to Wayland and GLES.

X has been part of UNIX ecosystem for more than 20 years now ; it will now progressively become “deprecated” in favor of Wayland, which targets both desktop and mobile platforms. On the other hand, while OpenGL has been extensively used will still be, its numerous API evolutions, breakages and target profiles tend to render old code unusable on new implementations, and especially those of current Wayland compositors.

Starting from a practical development case (an application -OpenCPN- using deprecated OpenGL1 calls and a toolkit -wxWidgets- which itself has not been fully ported to Wayland yet), we will describe how we managed to get it accelerated-running on Weston by wrapping :

  • X11/GLX and wxWidgets-GDKX calls with our EGLX library ;

  • OpenGL 1 calls with the jwzGLES library.

We will finally explain what efforts remained pending to obtain a fully-working port of the application (deprecated concepts in core code, API misuse…) to an embedded GNU/Linux platform.


Manuel Bachmann