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_win32_dx12.zig | 48 ++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 vendor/zgui/src/backend_win32_dx12.zig (limited to 'vendor/zgui/src/backend_win32_dx12.zig') diff --git a/vendor/zgui/src/backend_win32_dx12.zig b/vendor/zgui/src/backend_win32_dx12.zig new file mode 100644 index 0000000..2cc5bf9 --- /dev/null +++ b/vendor/zgui/src/backend_win32_dx12.zig @@ -0,0 +1,48 @@ +const std = @import("std"); + +const gui = @import("gui.zig"); +const backend_dx12 = @import("backend_dx12.zig"); + +pub fn init( + hwnd: *const anyopaque, // HWND + d3d12_device: *const anyopaque, // ID3D12Device* + num_frames_in_flight: u16, + rtv_format: u32, // DXGI_FORMAT + cbv_srv_heap: *const anyopaque, // ID3D12DescriptorHeap* + font_srv_cpu_desc_handle: backend_dx12.D3D12_CPU_DESCRIPTOR_HANDLE, + font_srv_gpu_desc_handle: backend_dx12.D3D12_GPU_DESCRIPTOR_HANDLE, +) void { + std.debug.assert(ImGui_ImplWin32_Init(hwnd)); + backend_dx12.init( + d3d12_device, + num_frames_in_flight, + rtv_format, + cbv_srv_heap, + font_srv_cpu_desc_handle, + font_srv_gpu_desc_handle, + ); +} + +pub fn deinit() void { + backend_dx12.deinit(); + ImGui_ImplWin32_Shutdown(); +} + +pub fn newFrame(fb_width: u32, fb_height: u32) void { + ImGui_ImplWin32_NewFrame(); + backend_dx12.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(graphics_command_list: *const anyopaque) void { + gui.render(); + backend_dx12.render(gui.getDrawData(), graphics_command_list); +} + +extern fn ImGui_ImplWin32_Init(hwnd: *const anyopaque) bool; +extern fn ImGui_ImplWin32_Shutdown() void; +extern fn ImGui_ImplWin32_NewFrame() void; -- cgit v1.2.3