set refresh callback for redraw

This commit is contained in:
Mitchell Hashimoto
2022-05-04 11:16:30 -07:00
parent b6bf0a329c
commit aaf160f38b

View File

@ -197,6 +197,7 @@ pub fn create(alloc: Allocator, loop: libuv.Loop) !*Window {
window.setCharCallback(charCallback); window.setCharCallback(charCallback);
window.setKeyCallback(keyCallback); window.setKeyCallback(keyCallback);
window.setFocusCallback(focusCallback); window.setFocusCallback(focusCallback);
window.setRefreshCallback(refreshCallback);
return self; 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 { fn cursorTimerCallback(t: *libuv.Timer) void {
const tracy = trace(@src()); const tracy = trace(@src());
defer tracy.end(); defer tracy.end();