diff options
| author | s-ol <s+removethis@s-ol.nu> | 2026-04-13 10:54:29 +0000 |
|---|---|---|
| committer | s-ol <s+removethis@s-ol.nu> | 2026-04-14 18:10:05 +0000 |
| commit | 0c0154b352c66d57ced9f4fd648106919c007572 (patch) | |
| tree | c057008b52011eeb7e4344b5611d51f8d0f7c0a0 /src/config.zig | |
| parent | fix some memory leaks (diff) | |
| download | glsl-view-main.tar.gz glsl-view-main.zip | |
Diffstat (limited to '')
| -rw-r--r-- | src/config.zig | 27 |
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; } }; |
