From f367b341a5a21582d94c7f4e3d41a5fe52396e8c Mon Sep 17 00:00:00 2001 From: LordMZTE Date: Sat, 28 Oct 2023 23:06:24 +0200 Subject: [PATCH] some wlbg fixes --- scripts/wlbg/src/DrawTimerHandler.zig | 4 ++++ scripts/wlbg/src/Gfx.zig | 7 ------- scripts/wlbg/src/main.zig | 4 +++- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/scripts/wlbg/src/DrawTimerHandler.zig b/scripts/wlbg/src/DrawTimerHandler.zig index 6c3ae4a..794705b 100644 --- a/scripts/wlbg/src/DrawTimerHandler.zig +++ b/scripts/wlbg/src/DrawTimerHandler.zig @@ -39,3 +39,7 @@ pub fn damage(self: *DrawTimerHandler, idx: usize) void { self.maybeWake(); } +pub fn damageAll(self: *DrawTimerHandler) void { + @memset(self.should_redraw, true); + self.maybeWake(); +} diff --git a/scripts/wlbg/src/Gfx.zig b/scripts/wlbg/src/Gfx.zig index 105192f..47508a8 100644 --- a/scripts/wlbg/src/Gfx.zig +++ b/scripts/wlbg/src/Gfx.zig @@ -15,7 +15,6 @@ main_shader_program: c_uint, bg_bufs: std.MultiArrayList(BgBuf), time: i64, cursor_positions: [][2]c_int, -should_redraw: []bool, const Gfx = @This(); @@ -70,10 +69,6 @@ pub fn init(egl_dpy: c.EGLDisplay, output_info: []const OutputInfo) !Gfx { errdefer std.heap.c_allocator.free(cursor_positions); @memset(cursor_positions, .{ 0, 0 }); - const should_redraw = try std.heap.c_allocator.alloc(bool, output_info.len); - errdefer std.heap.c_allocator.free(should_redraw); - @memset(should_redraw, true); - var bg_bufs = std.MultiArrayList(BgBuf){}; errdefer bg_bufs.deinit(std.heap.c_allocator); @@ -139,7 +134,6 @@ pub fn init(egl_dpy: c.EGLDisplay, output_info: []const OutputInfo) !Gfx { .bg_bufs = bg_bufs, .time = 0, .cursor_positions = cursor_positions, - .should_redraw = should_redraw, }; } @@ -154,7 +148,6 @@ pub fn deinit(self: *Gfx) void { c.glDeleteProgram(self.main_shader_program); std.heap.c_allocator.free(self.cursor_positions); - std.heap.c_allocator.free(self.should_redraw); self.* = undefined; } diff --git a/scripts/wlbg/src/main.zig b/scripts/wlbg/src/main.zig index a1f9d43..59f9b8b 100644 --- a/scripts/wlbg/src/main.zig +++ b/scripts/wlbg/src/main.zig @@ -141,6 +141,7 @@ pub fn main() !void { .loop = &loop, }; defer std.heap.c_allocator.free(dth.should_redraw); + @memset(dth.should_redraw, true); var pointer_state = PointerState{ .surface = null, @@ -328,9 +329,10 @@ fn renderBackgroundCb( loop.stop(); return .disarm; }; - @memset(data.?.gfx.should_redraw, true); } + data.?.dth.damageAll(); + return .rearm; }