diff options
Diffstat (limited to 'src/main.zig')
| -rw-r--r-- | src/main.zig | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/main.zig b/src/main.zig index 0181db6..6f172e4 100644 --- a/src/main.zig +++ b/src/main.zig @@ -18,6 +18,9 @@ fn errorCallback(err: c_int, description: [*c]const u8) callconv(.C) void { } pub fn main() !void { + const progress = std.Progress.start(.{}); + defer progress.end(); + var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator); defer arena.deinit(); @@ -115,7 +118,7 @@ pub fn main() !void { var cache = gl.UniformCache.init(std.heap.c_allocator, &main_program); defer cache.deinit(); - const control = try ctrl.ControlServer.init(arena.allocator(), config.osc, &cache); + const control = try ctrl.ControlServer.init(arena.allocator(), progress, config.osc, &cache); defer control.destroy(); while (c.glfwWindowShouldClose(window) == c.GL_FALSE) { @@ -125,14 +128,16 @@ pub fn main() !void { const now_time = c.glfwGetTime(); prev_time = now_time; + control.update(); + const stat = try shader_file.stat(); - if (stat.mtime > last_stat.mtime) { + if (stat.mtime > last_stat.mtime or control.reload_requested) { try reloadShader(&config, &main_program, config.fragment, stat.size); try cache.refresh(); last_stat = stat; - } - control.update(); + control.reload_requested = false; + } fbo.bind(); c.glClear(c.GL_COLOR_BUFFER_BIT); |
