1const std = @import("std");2const mem = std.mem;34const wl = @import("wayland").client.wl;56const Buffer = @import("Buffer.zig");7const Widget = @This();89const state = &@import("root").state;1011surface: *wl.Surface,12subsurface: *wl.Subsurface,13buffers: [2]Buffer,1415pub fn init(background: *wl.Surface) !Widget {16 const compositor = state.wayland.compositor.?;17 const subcompositor = state.wayland.subcompositor.?;1819 const surface = try compositor.createSurface();20 const subsurface = try subcompositor.getSubsurface(surface, background);2122 return Widget{23 .surface = surface,24 .subsurface = subsurface,25 .buffers = .{ .{}, .{} },26 };27}2829pub fn deinit(self: *Widget) void {30 self.subsurface.destroy();31 self.surface.destroy();32 self.buffers[0].deinit();33 self.buffers[1].deinit();34}