aboutsummaryrefslogtreecommitdiffstats
path: root/src/config.zig
diff options
context:
space:
mode:
authors-ol <s+removethis@s-ol.nu>2026-04-13 10:54:29 +0000
committers-ol <s+removethis@s-ol.nu>2026-04-14 18:10:05 +0000
commit0c0154b352c66d57ced9f4fd648106919c007572 (patch)
treec057008b52011eeb7e4344b5611d51f8d0f7c0a0 /src/config.zig
parentfix some memory leaks (diff)
downloadglsl-view-main.tar.gz
glsl-view-main.zip
configure outputs from CLI, move stdout into 'pipe' outputHEADmain
Diffstat (limited to 'src/config.zig')
-rw-r--r--src/config.zig27
1 files changed, 17 insertions, 10 deletions
diff --git a/src/config.zig b/src/config.zig
index f1410d4..795c564 100644
--- a/src/config.zig
+++ b/src/config.zig
@@ -5,6 +5,7 @@ const build_config = @import("build_config");
pub const OutputConfig = union(enum) {
window: out.WindowOutput.Config,
+ stdout: out.StdoutOutput.Config,
texture_share_vk: if (build_config.have_tsv) @import("tsv.zig").TSVOutput.Config else void,
const default: OutputConfig = .{ .window = .default };
@@ -41,6 +42,8 @@ pub const Config = struct {
_ = it.skip();
+ var outputs = std.ArrayList(OutputConfig).empty;
+
while (it.next()) |arg| {
if (std.mem.eql(u8, arg, "--width")) {
config.width = try parseInt(&it, i32);
@@ -48,23 +51,27 @@ pub const Config = struct {
config.height = try parseInt(&it, i32);
} else if (std.mem.eql(u8, arg, "--osc")) {
config.osc = try parseString(&it, allocator);
+ } else if (std.mem.eql(u8, arg, "--window")) {
+ var window: OutputConfig = .{ .window = .default };
+ window.window.width = config.width;
+ window.window.height = config.height;
+ try outputs.append(allocator, window);
+ } else if (std.mem.eql(u8, arg, "--stdout")) {
+ try outputs.append(allocator, .{ .stdout = .default });
} else {
return error.invalidArgument;
}
- // @TODO: output config
}
- if (config.outputs.len == 0) {
- const num = 1;
- const outputs = try allocator.alloc(OutputConfig, num);
- for (0..num) |i| {
- outputs[i] = .{ .window = .default };
- outputs[i].window.width = config.width;
- outputs[i].window.height = config.height;
- }
- config.outputs = outputs;
+ if (outputs.items.len == 0) {
+ var window: OutputConfig = .{ .window = .default };
+ window.window.width = config.width;
+ window.window.height = config.height;
+ try outputs.append(allocator, window);
}
+ config.outputs = try outputs.toOwnedSlice(allocator);
+
return config;
}
};