From b1cf52b552028703fa3a593a8f8d2335f482b7cc Mon Sep 17 00:00:00 2001 From: Szymon Nowakowski Date: Sat, 8 Nov 2025 18:07:15 +0100 Subject: [PATCH] Empty window --- src/main.zig | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) diff --git a/src/main.zig b/src/main.zig index fe765db..5af7476 100644 --- a/src/main.zig +++ b/src/main.zig @@ -5,4 +5,69 @@ const sapp = sokol.app; const sglue = sokol.glue; const simgui = sokol.imgui; -pub fn main() void {} +const imgui_pass_action = blk: { + var ret: sg.PassAction = .{}; + + ret.colors[0] = .{ + .load_action = .CLEAR, + .clear_value = .{ .r = 0.0, .g = 0.0, .b = 0.0, .a = 1.0 }, + }; + + break :blk ret; +}; + +fn init() callconv(.c) void { + sg.setup(.{ + .environment = sglue.environment(), + .logger = .{ .func = slog.func }, + }); + + simgui.setup(.{ + .logger = .{ .func = slog.func }, + }); +} + +fn deinit() callconv(.c) void { + simgui.shutdown(); + sg.shutdown(); +} + +fn frame() callconv(.c) void { + simgui.newFrame(.{ + .width = sapp.width(), + .height = sapp.height(), + .delta_time = sapp.frameDuration(), + .dpi_scale = sapp.dpiScale(), + }); + + // --- IMGUI PASS --- + + sg.beginPass(.{ + .action = imgui_pass_action, + .swapchain = sglue.swapchain(), + }); + simgui.render(); + sg.endPass(); + + // --- + + sg.commit(); +} + +fn event(ev: [*c]const sapp.Event) callconv(.c) void { + _ = simgui.handleEvent(ev.*); +} + +pub fn main() void { + sapp.run(.{ + .init_cb = &init, + .cleanup_cb = &deinit, + .frame_cb = &frame, + .event_cb = &event, + .window_title = "Voxel Game", + .width = 1280, + .height = 720, + .icon = .{ .sokol_default = true }, + .logger = .{ .func = slog.func }, + }); +}