diff --git a/src/Window.zig b/src/Window.zig index a4b79fe54..b242898db 100644 --- a/src/Window.zig +++ b/src/Window.zig @@ -197,6 +197,7 @@ pub fn create(alloc: Allocator, loop: libuv.Loop) !*Window { window.setCharCallback(charCallback); window.setKeyCallback(keyCallback); window.setFocusCallback(focusCallback); + window.setRefreshCallback(refreshCallback); return self; } @@ -377,6 +378,16 @@ fn focusCallback(window: glfw.Window, focused: bool) void { } } +fn refreshCallback(window: glfw.Window) void { + const tracy = trace(@src()); + defer tracy.end(); + + const win = window.getUserPointer(Window) orelse return; + + // The point of this callback is to schedule a render, so do that. + win.render_timer.schedule() catch unreachable; +} + fn cursorTimerCallback(t: *libuv.Timer) void { const tracy = trace(@src()); defer tracy.end();