aboutsummaryrefslogtreecommitdiffstats
path: root/src/main.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.zig')
-rw-r--r--src/main.zig14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/main.zig b/src/main.zig
index eb7aef2..96b87eb 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -20,9 +20,10 @@ pub fn main() !void {
defer progress.end();
var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
+ const cfg_allocator = arena.allocator();
defer arena.deinit();
- var config = try cfg.Config.init(arena.allocator());
+ var config = try cfg.Config.init(cfg_allocator);
_ = c.glfwSetErrorCallback(errorCallback);
@@ -60,13 +61,13 @@ pub fn main() !void {
var constants = try gl.Constants.create(window, &config);
defer constants.destroy();
- var outputs = try std.ArrayList(*out.Output).initCapacity(arena.allocator(), config.outputs.len);
+ var outputs = try std.ArrayList(*out.Output).initCapacity(cfg_allocator, config.outputs.len);
defer outputs.deinit();
for (config.outputs) |*output_config| {
- try outputs.append(out.Output.create(arena.allocator(), output_config, &constants));
+ outputs.appendAssumeCapacity(try out.Output.create(cfg_allocator, output_config, &constants));
}
defer for (outputs.items) |output| {
- output.destroy(arena.allocator());
+ output.destroy(cfg_allocator);
};
c.glfwMakeContextCurrent(window);
@@ -113,7 +114,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(), progress, &config, &cache);
+ const control = try ctrl.ControlServer.init(cfg_allocator, progress, &config, &cache);
defer control.destroy();
while (c.glfwWindowShouldClose(window) == c.GL_FALSE) {
@@ -124,6 +125,7 @@ pub fn main() !void {
prev_time = now_time;
control.update();
+ cache.update();
// const stat = try shader_file.stat();
// if (stat.mtime > last_stat.mtime or control.reload_requested) {
@@ -145,7 +147,7 @@ pub fn main() !void {
const close = output.update(fbo.texture_id);
if (close) {
const removed = outputs.swapRemove(i);
- removed.destroy(arena.allocator());
+ removed.destroy(cfg_allocator);
break;
}
}