tearing-control-v1: add bindings

This commit is contained in:
Violet Purcell 2024-08-07 20:53:18 -04:00
parent 3c2d29d17f
commit e486223799
No known key found for this signature in database
GPG key ID: AC2885C07052B6AF
3 changed files with 51 additions and 0 deletions

View file

@ -25,6 +25,7 @@ pub fn build(b: *std.Build) void {
scanner.addSystemProtocol("staging/ext-session-lock/ext-session-lock-v1.xml");
scanner.addSystemProtocol("unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml");
scanner.addSystemProtocol("staging/cursor-shape/cursor-shape-v1.xml");
scanner.addSystemProtocol("staging/tearing-control/tearing-control-v1.xml");
scanner.addCustomProtocol("protocol/wlr-layer-shell-unstable-v1.xml");
scanner.addCustomProtocol("protocol/wlr-output-power-management-unstable-v1.xml");
@ -48,6 +49,7 @@ pub fn build(b: *std.Build) void {
scanner.generate("zwp_tablet_manager_v2", 1);
scanner.generate("zwp_linux_dmabuf_v1", 4);
scanner.generate("wp_cursor_shape_manager_v1", 1);
scanner.generate("wp_tearing_control_manager_v1", 1);
scanner.generate("zwlr_layer_shell_v1", 4);
scanner.generate("zwlr_output_power_manager_v1", 1);

View file

@ -0,0 +1,46 @@
const wlr = @import("../wlroots.zig");
const wayland = @import("wayland");
const wl = wayland.server.wl;
const wp = wayland.server.wp;
pub const TearingControlV1 = extern struct {
client: *wl.Client,
link: wl.list.Link,
resource: *wl.Resource,
current: wp.TearingControlV1.PresentationHint,
pending: wp.TearingControlV1.PresentationHint,
events: extern struct {
set_hint: wl.Signal(void),
destroy: wl.Signal(void),
},
surface: *wlr.Surface,
};
pub const TearingControlManagerV1 = extern struct {
global: *wl.Global,
surface_hints: wl.list.Head(TearingControlV1, .link),
server_destroy: wl.Listener(*wl.Server),
events: extern struct {
new_object: wl.Signal(*TearingControlV1),
destroy: wl.Signal(void),
},
data: ?*anyopaque,
extern fn wlr_tearing_control_manager_v1_create(server: *wl.Server, version: u32) ?*TearingControlManagerV1;
pub fn create(server: *wl.Server, version: u32) !*TearingControlManagerV1 {
return wlr_tearing_control_manager_v1_create(server, version) orelse error.OutOfMemory;
}
extern fn wlr_tearing_control_manager_v1_surface_hint_from_surface(
manager: *TearingControlManagerV1,
surface: *wlr.Surface,
) wp.TearingControlV1.PresentationHint;
pub const hintFromSurface = wlr_tearing_control_manager_v1_surface_hint_from_surface;
};

View file

@ -153,6 +153,9 @@ pub const ScreencopyFrameV1 = @import("types/screencopy_v1.zig").ScreencopyFrame
pub const GammaControlManagerV1 = @import("types/gamma_control_v1.zig").GammaControlManagerV1;
pub const GammaControlV1 = @import("types/gamma_control_v1.zig").GammaControlV1;
pub const TearingControlManagerV1 = @import("types/tearing_control_v1.zig").TearingControlManagerV1;
pub const TearingControlV1 = @import("types/tearing_control_v1.zig").TearingControlV1;
pub const XcursorImage = @import("xcursor.zig").XcursorImage;
pub const Xcursor = @import("xcursor.zig").Xcursor;
pub const XcursorTheme = @import("xcursor.zig").XcursorTheme;