1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
//! wlr-procotols extension family
//!
//! This module regroup bindings to the protocol extensions from
//! [wlr-protocols](https://github.com/swaywm/wlr-protocols).
#![cfg_attr(rustfmt, rustfmt_skip)]
#[cfg(feature = "unstable_protocols")]
pub mod unstable {
//! Unstable protocols from wlr-protocols
//!
//! The protocols described in this module are experimental and
//! backward incompatible changes may be made. Backward compatible
//! changes may be added together with the corresponding interface
//! version bump.
//!
//! Backward incompatible changes are done by bumping the version
//! number in the protocol and interface names and resetting the
//! interface version. Once the protocol is to be declared stable,
//! the 'z' prefix and the version number in the protocol and
//! interface names are removed and the interface version number is
//! reset.
pub mod export_dmabuf {
//! A protocol for low overhead screen content capturing
//!
//! An interface to capture surfaces in an efficient way by exporting DMA-BUFs.
wayland_protocol_versioned!(
"wlr-export-dmabuf",
[v1],
[
(wl_output, wl_output_interface)
],
[]
);
}
pub mod gamma_control {
//! Manage gamma tables of outputs.
//!
//! This protocol allows a privileged client to set the gamma tables for outputs.
wayland_protocol_versioned!(
"wlr-gamma-control",
[v1],
[
(wl_output, wl_output_interface)
],
[]
);
}
pub mod input_inhibitor {
//! Inhibits input events to other clients
wayland_protocol_versioned!(
"wlr-input-inhibitor",
[v1],
[],
[]
);
}
pub mod layer_shell {
//! Layered shell protocol
wayland_protocol_versioned!(
"wlr-layer-shell",
[v1],
[
(wl_output, wl_output_interface),
(wl_surface, wl_surface_interface)
],
[
(xdg_shell, xdg_popup, xdg_popup_interface)
]
);
}
pub mod screencopy {
//! Screen content capturing on client buffers
//!
//! This protocol allows clients to ask the compositor to copy part of the
//! screen content to a client buffer.
wayland_protocol_versioned!(
"wlr-screencopy",
[v1],
[
(wl_buffer, wl_buffer_interface),
(wl_output, wl_output_interface)
],
[]
);
}
}