Skip to content

onox/wayland-ada

Repository files navigation

Build status License GitHub release IRC Gitter chat

wayland-ada

Ada 2012 bindings and tools for Wayland (client).

The following Alire crates exist:

  • wayland_ada_scanner. A tool to generate thick bindings for various Wayland protocols.

  • wayland_ada_info. A tool to display information about interfaces advertised by the currently running Wayland compositor.

  • wayland_client_ada. Thick bindings for the core Wayland protocol. Additionally provides thin bindings for libwayland-client to be used by this crate and wayland_protocols_ada.

  • wayland_protocols_ada. Thick bindings for various stable and unstable protocols (see below) from the wayland-protocols project.

  • wayland_egl_ada. Bindings for libwayland-egl.

  • wayland_cursor_ada. Bindings for libwayland-cursor.

The following stable protocols are supported:

  • xdg-shell (This protocol replaces the wl_shell and wl_shell_surface interfaces)

  • presentation-time

  • viewporter

And the following unstable protocols:

  • idle-inhibit

  • xdg-decoration

  • pointer-constraints

  • pointer-gestures

  • relative-pointer

These crates and Wayland protocols are used by [Orka][url-orka], a game engine which includes a window toolkit that takes care of window management, locking and animating the pointer cursor, and handling input devices.

Building

Build and run the wayland_ada_info crate with Alire or by running make info to display information about Wayland interfaces.

Dependencies

Requires Wayland 1.18 or higher. The scanner requires wayland-protocols 1.26 to generate the Ada bindings. This project has been vendorized using git subtree add and can be found in the wayland_protocols_ada/wayland-protocols/ folder. The core protocol uses wayland.xml of Wayland 1.21.0 and has been vendorized as well.

Thanks

Much thanks to @joakim-strandberg for starting this project and writing most of the wayland scanner.

Contributing

Please read the contributing guidelines before opening issues or pull requests.

License

wayland-ada is distributed under the terms of the Apache License 2.0.

The XML files found in the wayland_protocols_ada/wayland-protocols/ folder (vendorized from tag 1.26 of the wayland-protocols project) are licensed under the MIT license.

The XML file wayland_client_ada/protocol/wayland.xml (vendorized from tag 1.21.0 of wayland project) is licensed under the MIT license.