From 33e1de2710fe44512440e0e6055578d67dab330c Mon Sep 17 00:00:00 2001 From: Nathan Reiner Date: Mon, 18 Aug 2025 17:45:13 +0200 Subject: First sketch of wayland interface **WARNING** this implementation is not working properly yet. --- src/wl/callback.zig | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/wl/callback.zig (limited to 'src/wl/callback.zig') diff --git a/src/wl/callback.zig b/src/wl/callback.zig new file mode 100644 index 0000000..0e7ea5b --- /dev/null +++ b/src/wl/callback.zig @@ -0,0 +1,33 @@ +const std = @import("std"); +const wayland = @import("../root.zig"); +const wl = wayland.wl; + +const log = std.log.scoped(.callback); + +const Self = @This(); + +pub const Events = wayland.EventSet(Self, .{done}); + +is_done: *bool, +interface: wayland.Object, + +pub fn init( + self: *Self, + allocator: std.mem.Allocator, + display: *wl.Display, + is_done: *bool, +) !void { + self.is_done = is_done; + self.interface = wayland.Object.from_self(self); + try display.registry.add_object(allocator, &self.interface); + std.debug.print("ids {any}\n", .{display.registry.objects.items}); + std.debug.print("callback #{?}\n", .{self.interface.id}); + try display.request(display, .{ .sync = .{&self.interface} }); + +} + +fn done(self: *Self, ctx: *wayland.Context, value: u32) void { + _ = value; + _ = ctx; + self.is_done.* = true; +} -- cgit v1.2.3-70-g09d2