From 963fae202108acd0498349e872e4811fa6c6aba0 Mon Sep 17 00:00:00 2001 From: Nic Gaffney Date: Wed, 12 Jun 2024 21:15:52 -0500 Subject: Added imgui for configuration --- vendor/zgui/src/backend_glfw_opengl.zig | 44 +++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 vendor/zgui/src/backend_glfw_opengl.zig (limited to 'vendor/zgui/src/backend_glfw_opengl.zig') diff --git a/vendor/zgui/src/backend_glfw_opengl.zig b/vendor/zgui/src/backend_glfw_opengl.zig new file mode 100644 index 0000000..cb94dc3 --- /dev/null +++ b/vendor/zgui/src/backend_glfw_opengl.zig @@ -0,0 +1,44 @@ +const gui = @import("gui.zig"); +const backend_glfw = @import("backend_glfw.zig"); + +pub fn initWithGlSlVersion( + window: *const anyopaque, // zglfw.Window + glsl_version: ?[:0]const u8, // e.g. "#version 130" +) void { + backend_glfw.initOpenGL(window); + + ImGui_ImplOpenGL3_Init(@ptrCast(glsl_version)); +} + +pub fn init( + window: *const anyopaque, // zglfw.Window +) void { + initWithGlSlVersion(window, null); +} + +pub fn deinit() void { + ImGui_ImplOpenGL3_Shutdown(); + backend_glfw.deinit(); +} + +pub fn newFrame(fb_width: u32, fb_height: u32) void { + backend_glfw.newFrame(); + ImGui_ImplOpenGL3_NewFrame(); + + gui.io.setDisplaySize(@as(f32, @floatFromInt(fb_width)), @as(f32, @floatFromInt(fb_height))); + gui.io.setDisplayFramebufferScale(1.0, 1.0); + + gui.newFrame(); +} + +pub fn draw() void { + gui.render(); + ImGui_ImplOpenGL3_RenderDrawData(gui.getDrawData()); +} + +// Those functions are defined in 'imgui_impl_opengl3.cpp` +// (they include few custom changes). +extern fn ImGui_ImplOpenGL3_Init(glsl_version: [*c]const u8) void; +extern fn ImGui_ImplOpenGL3_Shutdown() void; +extern fn ImGui_ImplOpenGL3_NewFrame() void; +extern fn ImGui_ImplOpenGL3_RenderDrawData(data: *const anyopaque) void; -- cgit v1.2.3