I've been working, for the last couple of days, on a port of OpenCPN to native Wayland
(i.e. not using an emulation layer like XWayland).
There were 2 main blockers for this :
massively uses legacy OpenGL, whereas Wayland only supports OpenGL ES ;
uses the wxGLCanvas wxWidget to render its navigation
map, which itself uses GLX, whereas Wayland requires EGL.
So I wrote a little wrapper named EGLX
which basically redirects X11/GLX calls to Wayland/EGL ones.
Then I patched wxWidgets
to integrate the wrapper. And then I patched OpenCPN
itself, to use GTK+3, integrate the wrapper, the jwzGLES
one, and to disable some unsupported GL calls (mostly GLU and tessellation).
The result is very exciting :
for a larger version)
This doesn't work perfectly yet : right-click on the map freezes it, some commands make the program crash, the toolbars look like independant windows...
Unfortunately, I have to pause this work for the moment, as I got other priorities. But if noone objects, I will list caveats, bugs and "todos" in a following post, so anyone interested can take up with the project