forked from 12to11/12to11
116 lines
4.5 KiB
Text
116 lines
4.5 KiB
Text
This is a tool for running Wayland applications on an X server,
|
|
preferably with a compositing manager running.
|
|
|
|
It is not yet complete. What is not yet implemented includes support
|
|
for touchscreens, and device switching in dmabuf feedback.
|
|
|
|
It is not portable to systems other than recent versions of GNU/Linux
|
|
running the X.Org server 1.20 or later, and has not been tested on
|
|
window (and compositing) managers other than GNOME Shell.
|
|
|
|
It will not work very well unless the compositing manager supports the
|
|
EWMH frame synchronization protocol.
|
|
|
|
Building and running this tool requires the following X protocol
|
|
extensions:
|
|
|
|
Nonrectangular Window Shape Extension, version 1.1 or later
|
|
MIT Shared Memory Extension, version 1.2 or later
|
|
X Resize, Rotate and Reflect Extension, version 1.4 or later
|
|
X Synchronization Extension, version 1.0 or later
|
|
X Rendering Extension, version 1.2 or later
|
|
X Input Extension, version 2.3 or later
|
|
Direct Rendering Interface 3, version 1.2 or later
|
|
X Fixes Extension, version 1.5 or later
|
|
X Presentation Extension, version 1.0 or later
|
|
|
|
In addition, it requires Xlib to be built with the XCB transport, and
|
|
the XCB bindings for MIT-SHM and DRI3 to be available.
|
|
|
|
Sometimes, it might be desirable to build with EGL, and use OpenGL ES
|
|
2.0 for i.e. YUV video format support. To do so, uncomment the block
|
|
of code for EGL support in 12to11.conf before running `xmkmf'. This
|
|
will additionally require the EGL and GLESv2 development files, and
|
|
for the following EGL and GLES extensions to be present at runtime:
|
|
|
|
EGL_EXT_platform_base
|
|
EGL_EXT_device_query
|
|
EGL_KHR_image_base
|
|
EGL_EXT_image_dma_buf_import_modifiers
|
|
EGL_EXT_image_dma_buf_import
|
|
EGL_EXT_buffer_age
|
|
|
|
GL_OES_EGL_image
|
|
GL_OES_EGL_image_external
|
|
GL_EXT_read_format_bgra
|
|
GL_EXT_unpack_subimage
|
|
|
|
After building with EGL support, the renderer must be enabled by
|
|
setting the environment variable "RENDERER" to "egl", or by setting
|
|
the "renderer" resource (class "Renderer") to "egl".
|
|
|
|
The following Wayland protocols are implemented to a more-or-less
|
|
complete degree:
|
|
|
|
'wl_output', version: 4
|
|
'wl_compositor', version: 5
|
|
'wl_shm', version: 1
|
|
'xdg_wm_base', version: 5
|
|
'wl_subcompositor', version: 1
|
|
'wl_seat', version: 8
|
|
'wl_data_device_manager', version: 3
|
|
'zwp_linux_dmabuf_v1', version: 4
|
|
'zwp_primary_selection_device_manager_v1', version: 1
|
|
'wp_viewporter', version: 1
|
|
'zxdg_decoration_manager_v1', version: 1
|
|
'zwp_text_input_manager_v3', version: 1
|
|
'wp_single_pixel_buffer_manager_v1', version: 1
|
|
'zwp_pointer_constraints_v1', version: 1
|
|
'zwp_relative_pointer_manager_v1', version: 1
|
|
'zwp_idle_inhibit_manager_v1', version: 1
|
|
'xdg_activation_v1', version: 1
|
|
'wp_tearing_control_manager_v1', version: 1
|
|
|
|
When built with EGL, the following Wayland protocol is also supported:
|
|
|
|
'zwp_linux_explicit_synchronization_v1', version: 2
|
|
|
|
When the X server supports version 1.6 or later of the X Resize,
|
|
Rotate and Reflect Extension, the following Wayland protocol is also
|
|
supported:
|
|
|
|
'wp_drm_lease_device_v1', version: 1
|
|
|
|
When the X server supports version 2.4 or later of the X Input
|
|
Extension, the following Wayland protocol is also supported:
|
|
|
|
'zwp_pointer_gestures_v1', version: 3
|
|
|
|
This directory is organized as follows:
|
|
|
|
Imakefile - the top level Makefile template
|
|
12to11.conf - configuration
|
|
*.xml - Wayland protocol definition source
|
|
*.c, *.h - C source code
|
|
*.awk - scripts used to generate headers
|
|
*.txt - text data used to generate some headers, i.e.
|
|
those containing MIME types or shaders
|
|
|
|
Building the source code is simple, provided that you have the
|
|
necessary libwayland-server library, pixman, XCB, DRM, xshmfence, and
|
|
X extension libraries installed:
|
|
|
|
xmkmf # to generate the Makefile
|
|
make # to build the binary
|
|
|
|
wayland-scanner is also required when building from the repository.
|
|
|
|
Running the binary should be simple as well:
|
|
|
|
./12to11
|
|
|
|
Wayland programs will then run as regular X windows.
|
|
|
|
Be sure to configure your system so that idle inhibition is reported
|
|
correctly. For more details, see the description of the
|
|
idleInhibitCommand resource in the manual page.
|