Wayland - caramelli/higfxback GitHub Wiki
Welcome to HiGFXback with the Wayland graphics backend!
Contents
- Getting started
- Vulkan rendering
- OpenGL rendering
- Drawing libraries
- Multimedia frameworks
- Tools
- Graphics abstraction layers
- User interface toolkits
- Applications
Getting started
Components running on Wayland graphics backend are based on libwayland-client.so library for the communication with weston, the Wayland compositor.
If the current graphics backend used on HiGFXback is not Wayland, switch on it with startwl
command. Select one of the following graphics driver interface available on HiGFXback and used by weston for the display:
- Linux Framebuffer interface (
/dev/fb0
) with weston fbdev-backend.so plugin - KMS/DRM interface with (
/dev/dri/card0
) weston drm-backend.so plugin
But depending on the platform, it's possible to use specific graphics driver interfaces based on the weston backend module architecture.
Keyboard and mouse are managed by weston with libinput.so library which provides a generic input abstraction layer of the event device input driver interface (/dev/input/event0
and /dev/input/event1
) available on HiGFXback.
weston-terminal
When starting on Wayland graphics backend, weston-terminal terminal emulator is displayed. System informations about Wayland settings can be get with weston-info.
weston-clients
Programs running on Wayland graphics backend are available as examples, tests or benchmarks.
Vulkan rendering
For display rendering with Wayland graphics backend, Vulkan implementation in libvulkan.so library (loading library from Vulkan-Loader) and its ICD (Installable Client Driver) relies on Wayland WSI interface.
On HiGFXback, Wayland WSI interfaces (Window System Integration for Wayland) are used with one of the following ICD selected with VK_ICD_FILENAMES
environment variable:
- Mesa associated to lvp_icd.json manifest file
- SwiftShader associated to swiftshader_icd.json manifest file
But depending on the platform, specific ICD can be used.
Vulkan-Tools, Vulkan-Examples, vkcube2 and yagears2 programs are available as examples, tests or benchmarks.
OpenGL rendering
For display rendering with Wayland graphics backend, OpenGL implementation in libGL.so library, but also OpenGL ES 1.1 CM implementation in libGLESv1_CM.so library and OpenGL ES 2.0 implementation in libGLESv2.so library, rely on EGL for Wayland interface.
Loading libraries can be used:
- libGLEW.so library from GLEW (OpenGL Extension Wrangler)
- libepoxy.so library from Epoxy
On HiGFXback, EGL for Wayland interfaces are used with one of the following implementation selected with alternatives-GL
command:
- Mesa with libEGL.so
->
libmesaEGL.so, libGL.so->
libmesaGL.so, libGLESv1_CM.so->
libmesaGLESv1_CM.so, libGLESv2.so->
libmesaGLESv2.so libraries - SwiftShader with libEGL.so
->
libswiftshaderEGL.so, libGLESv1_CM.so->
libswiftshaderGLESv1_CM.so, libGLESv2.so->
libswiftshaderGLESv2.so libraries
But depending on the platform, specific implementation can be used.
mesa-demos and yagears programs are available as examples, tests or benchmarks.
Drawing libraries
Cairo
On HiGFXback, Cairo interfaces for Wayland graphics backend are provided by libcairo.so library.
cairo-demos programs are available as examples, tests or benchmarks.
Evas
On HiGFXback, Evas interfaces for Wayland graphics backend are provided by libevas.so library.
expedite program is available as examples, tests or benchmarks.
Multimedia frameworks
FFmpeg
On HiGFXback, FFmpeg interfaces for Wayland graphics backend are provided by libavformat.so, libavcodec.so, libswscale.so libraries and rely on libavdevice.so library for output.
ffmpeg program is available as example.
GStreamer
On HiGFXback, GStreamer interfaces for Wayland graphics backend are provided by libgstreamer-1.0.so library and rely on libgstwaylandsink.so plugin for output.
gst-launch-1.0 program is available as example.
Tools
weston-image
weston-view
NetSurf
mpv
Graphics abstraction layers
GLUT
On HiGFXback, GLUT (openGL Utility Toolkit) interfaces running on Wayland graphics backend are provided by one of the following implementation selected with alternatives-glut
command:
- FreeGLUT with libglut.so
->
libfreeglut.so library - TinyGLUT with libglut.so
->
libtinyglut.so library
mesa-demos and yagears programs are available as examples, tests or benchmarks.
SDL
On HiGFXback, SDL (Simple Directmedia Layer) interfaces running on Wayland graphics backend are provided by libSDL2.so library.
SDL2-test and yagears2 programs are available as examples, tests or benchmarks.
GLFW
On HiGFXback, GLFW (Graphics Library FrameWork) interfaces running on Wayland graphics backend are provided by libglfw.so library.
GLFW-examples and yagears2 programs are available as examples, tests or benchmarks.
User interface toolkits
GTK+
Graphical user interfaces can rely on GTK+ (Gimp ToolKit) using the port for Wayland graphics backend. Web rendering can then rely on WebKitGTK+, a port of the WebKit browser engine for GTK+.
On HiGFXback, GTK+ interfaces running on Wayland graphics backend are provided by libgtk-3.0.so library (which also integrates OpenGL rendering interfaces).
gtk-demo, gtk-tests, gtkperf and yagears programs are available as examples, tests or benchmarks.
On HiGFXback, WebKitGTK+ interfaces for GTK+ with Wayland graphics backend are provided by libwebkitgtk-3.0.so library.
GtkLauncher program is available as example.
Qt
Graphical user interfaces can rely on Qt (Q toolKit) using the port for Wayland graphics backend. Web rendering can then rely on QtWebKit, a port of the WebKit browser engine for Qt.
On HiGFXback, Qt interfaces running on Wayland graphics backend are provided by libQt5Gui.so and libQt5OpenGL.so libraries.
qtdemo, qt-examples, qtperf and yagears programs are available as examples, tests or benchmarks.
On HiGFXback, QtWebKit interfaces for Qt with Wayland graphics backend are provided by libQt5WebKit.so library.
QtTestBrowser program is available as example.
EFL
Graphical user interfaces can rely on EFL (Enlightenment Foundation Libraries) with Elementary using the port for Wayland graphics backend.
On HiGFXback, EFL with Elementary interfaces running on Wayland graphics backend are provided by libelementary.so library.
elementary-test, elementary-examples and yagears programs are available as examples, tests or benchmarks.
Applications
![]() |
ffplay multimedia player |
![]() |
qemu machine emulator |
![]() |
midori web browser |
![]() |
qupzilla web browser |
![]() |
BillardGL, gtktetris, pinball games |
![]() |
chocolate-doom game engine |