aboutsummaryrefslogtreecommitdiffstats
path: root/src/main.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.zig')
-rw-r--r--src/main.zig13
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);