From a46436e58beaaa322c082af5e886f96fd31d7a08 Mon Sep 17 00:00:00 2001 From: Nathan Reiner Date: Sat, 30 Aug 2025 15:49:18 +0200 Subject: Use mix-in design for interface abstraction. --- src/wl/buffer.zig | 28 ++++++++-------------------- 1 file changed, 8 insertions(+), 20 deletions(-) (limited to 'src/wl/buffer.zig') diff --git a/src/wl/buffer.zig b/src/wl/buffer.zig index fe69899..ae52196 100644 --- a/src/wl/buffer.zig +++ b/src/wl/buffer.zig @@ -12,29 +12,13 @@ pub fn Buffer(fmt: wl.Shm.Format) type { pub const Events = wayland.EventSet(Self, .{}); - handle: wayland.Object.Ref, + handle: wayland.Object.Ref = .null, + init: wayland.Object.interface.Init(Self) = .{}, + data: []wl.Shm.Format.Pixel(fmt), width: usize, height: usize, - pub fn init( - self: *Self, - ctx: wayland.Context, - width: usize, - height: usize, - data: []u8, - ) !void { - self.* = .{ - .handle = try ctx.display.registry.add_object( - ctx.allocator, - wayland.Object.from_self(self), - ), - .data = @alignCast(@ptrCast(data)), - .width = width, - .height = height, - }; - } - pub fn format( self: *const Self, comptime f: []const u8, @@ -44,7 +28,11 @@ pub fn Buffer(fmt: wl.Shm.Format) type { _ = f; _ = options; - try writer.print("wl.buffer<{s}> {{ {}x{} }}", .{@tagName(fmt), self.width, self.height}); + try writer.print("wl.buffer<{s}> {{ {}x{} }}", .{ + @tagName(fmt), + self.width, + self.height + }); } }; } -- cgit v1.2.3-70-g09d2