Menu

Tree [r193] /
 History

HTTPS access


File Date Author Commit
 tests 2022-11-24 hujianwei [r191] Fix dispatch of leave events with built-in move
 12to11-test.xml 2022-11-24 hujianwei [r191] Fix dispatch of leave events with built-in move
 12to11.c 2022-11-19 hujianwei [r185] Add tearing control protocol
 12to11.conf 2022-11-08 hujianwei [r135] * 12to11.conf (GBM): Add variable.
 12to11.man 2022-11-24 hujianwei [r192] Fully implement tearing control
 COPYING 2022-10-20 oldosfan [r47] ; * COPYING: Check in new file.
 Imakefile 2022-11-22 hujianwei [r186] Major refactoring of the frame clock code
 README 2022-11-24 hujianwei [r193] * README: Add updates.
 alloc.c 2022-10-06 oldosfan [r28] Implement support for zwp_text_input_manager_v3
 atoms.c 2022-11-14 hujianwei [r157] Implement xdg-activation-v1
 buffer.c 2022-11-15 hujianwei [r160] Update subsurface tests to handle reparenting a...
 buffer_release.c 2022-11-04 hujianwei [r90] Check in C and XML files for tests
 compositor.c 2022-11-04 hujianwei [r91] Check in changes to core files used for tests
 compositor.h 2022-11-24 hujianwei [r192] Fully implement tearing control
 data_device.c 2022-11-12 hujianwei [r145] Fix text input bugs with grabbed popups and bug...
 decoration.c 2022-09-30 oldosfan [r24] Check in files for XDG decoration support
 dmabuf.c 2022-11-18 hujianwei [r183] Fix compatibility with Chromium
 dnd.c 2022-10-17 oldosfan [r42] Fix bugs discovered by static analyzers and fix...
 drm-lease-v1.xml 2022-10-12 oldosfan [r33] Update files for DRM leasing
 drm_lease.c 2022-11-14 hujianwei [r154] Fix some comments
 egl.c 2022-11-13 hujianwei [r149] Implement support for multiple providers
 ewmh.c 2022-09-12 oldosfan [r1] Import files
 explicit_synchronization.c 2022-10-22 hujianwei [r59] Fix various problems encountered
 fence_ring.c 2022-10-29 hujianwei [r76] Rework subcompositor damage culling and use a b...
 fns.c 2022-11-05 hujianwei [r118] Add some initial wrapping for ports
 frame_clock.c 2022-11-22 hujianwei [r186] Major refactoring of the frame clock code
 icon_surface.c 2022-11-22 hujianwei [r186] Major refactoring of the frame clock code
 idle-inhibit-unstable-v1.xml 2022-10-22 hujianwei [r56] Check in files for idle inhibition
 idle_inhibit.c 2022-11-13 hujianwei [r152] Improve handling of pointer unlock events
 keyboard-shortcuts-inhibit-unstable-v1.xml 2022-10-18 oldosfan [r43] Check in files for keyboard shortcut inhibition
 keyboard_shortcuts_inhibit.c 2022-10-18 oldosfan [r43] Check in files for keyboard shortcut inhibition
 linux-dmabuf-unstable-v1.xml 2022-11-15 hujianwei [r160] Update subsurface tests to handle reparenting a...
 linux-explicit-synchronization-unstable-v1.xml 2022-09-25 oldosfan [r16] Check in new files for explicit synchronization
 media_types.txt 2022-09-12 oldosfan [r1] Import files
 mime0.awk 2022-11-04 hujianwei [r94] Add new damage test and unify buffer release co...
 mime1.awk 2022-11-04 hujianwei [r94] Add new damage test and unify buffer release co...
 mime2.awk 2022-11-04 hujianwei [r94] Add new damage test and unify buffer release co...
 mime3.awk 2022-11-04 hujianwei [r94] Add new damage test and unify buffer release co...
 mime4.awk 2022-11-04 hujianwei [r94] Add new damage test and unify buffer release co...
 modifiers.awk 2022-10-26 hujianwei [r74] Check in new file for generating modifier list
 output.c 2022-11-17 hujianwei [r172] Implement wl_output version 4
 picture_renderer.c 2022-11-24 hujianwei [r192] Fully implement tearing control
 pointer-constraints-unstable-v1.xml 2022-10-15 oldosfan [r36] Check in new files for pointer constraint support
 pointer-gestures-unstable-v1.xml 2022-11-01 hujianwei [r84] Check in new files for pointer gestures
 pointer_constraints.c 2022-10-18 oldosfan [r44] Implement keyboard shortcut inhibition
 pointer_gestures.c 2022-11-01 hujianwei [r84] Check in new files for pointer gestures
 port_gnu.h 2022-11-05 hujianwei [r117] * port_gnu.h: New file.
 positioner.c 2022-11-14 hujianwei [r159] Fix xdg-positioner implementation
 primary-selection-unstable-v1.xml 2022-09-13 oldosfan [r3] Check in new files for primary selection support
 primary_selection.c 2022-11-11 hujianwei [r143] Improve serial wraparound checking
 process.c 2022-10-24 hujianwei [r71] Fix frame timing prediction algorithm
 region.c 2022-09-12 oldosfan [r1] Import files
 relative-pointer-unstable-v1.xml 2022-10-16 oldosfan [r40] Check in files for relative pointer support
 relative_pointer.c 2022-10-20 hujianwei [r53] Fix calculation of microsecond time in relative...
 renderer.c 2022-11-22 hujianwei [r186] Major refactoring of the frame clock code
 run.c 2022-11-08 hujianwei [r131] Better handle X server out-of-memory situations
 seat.c 2022-11-24 hujianwei [r191] Fix dispatch of leave events with built-in move
 select.c 2022-11-12 hujianwei [r148] Fix handling of MULTIPLE selections and add test
 shaders.awk 2022-09-23 oldosfan [r10] Check in new files for EGL support
 shaders.txt 2022-11-17 hujianwei [r176] Fix precision of vertex shader
 shm.c 2022-11-08 hujianwei [r131] Better handle X server out-of-memory situations
 single-pixel-buffer-v1.xml 2022-10-06 oldosfan [r29] Check in files for single pixel buffer support
 single_pixel_buffer.c 2022-10-06 oldosfan [r31] ; * single_pixel_buffer.c (CreateU32RgbaBuffer)...
 subcompositor.c 2022-11-22 hujianwei [r186] Major refactoring of the frame clock code
 subsurface.c 2022-11-15 hujianwei [r164] Fix crashes during scale changes
 surface.c 2022-11-19 hujianwei [r185] Add tearing control protocol
 svnignore.txt 2022-10-26 hujianwei [r75] Allow the user to manually specify format modif...
 sync_source.c 2022-11-24 hujianwei [r192] Fully implement tearing control
 tearing-control-v1.xml 2022-11-19 hujianwei [r184] Check in new files for tearing control protocol
 tearing_control.c 2022-11-19 hujianwei [r184] Check in new files for tearing control protocol
 test.c 2022-11-24 hujianwei [r191] Fix dispatch of leave events with built-in move
 test_seat.c 2022-11-16 hujianwei [r165] Add new seat tests for key presses
 text-input-unstable-v3.xml 2022-10-06 oldosfan [r27] Check in files for text input support
 text_input.c 2022-11-17 hujianwei [r173] Pacify more compiler warnings
 time.c 2022-11-08 hujianwei [r132] Fix initialization of server time overflow timer
 timer.c 2022-09-12 oldosfan [r1] Import files
 transform.c 2022-10-30 hujianwei [r79] Fix and implement transforms in the EGL renderer
 viewporter.xml 2022-09-30 oldosfan [r20] Add files for viewporter support
 wp_viewporter.c 2022-10-29 hujianwei [r77] Apply subcompositor optimizations for Firefox N...
 xdata.c 2022-11-17 hujianwei [r173] Pacify more compiler warnings
 xdg-activation-v1.xml 2022-11-14 hujianwei [r156] Check in new files for xdg-activation
 xdg-decoration-unstable-v1.xml 2022-09-30 oldosfan [r24] Check in files for XDG decoration support
 xdg-shell.xml 2022-11-05 hujianwei [r102] Update xdg-shell implementation
 xdg_activation.c 2022-11-16 hujianwei [r166] Fix XDG activation in some edge cases
 xdg_popup.c 2022-11-22 hujianwei [r186] Major refactoring of the frame clock code
 xdg_surface.c 2022-11-22 hujianwei [r186] Major refactoring of the frame clock code
 xdg_toplevel.c 2022-11-22 hujianwei [r190] Fix scaling of built in resize dimensions
 xdg_wm.c 2022-11-05 hujianwei [r102] Update xdg-shell implementation
 xerror.c 2022-11-13 hujianwei [r153] Fix some minor problems
 xsettings.c 2022-09-12 oldosfan [r1] Import files

Read Me

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.
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.