aboutsummaryrefslogtreecommitdiff
path: root/vendor/zgui/src/backend_dx12.zig
diff options
context:
space:
mode:
authorNic Gaffney <gaffney_nic@protonmail.com>2024-06-12 21:15:52 -0500
committerNic Gaffney <gaffney_nic@protonmail.com>2024-06-12 21:15:52 -0500
commit963fae202108acd0498349e872e4811fa6c6aba0 (patch)
tree1a7d5b6ee837700819d8f6f5a2484342a0ab6ec1 /vendor/zgui/src/backend_dx12.zig
parent6084001df845815efd9c0eb712acf4fd9311ce36 (diff)
downloadparticle-sim-963fae202108acd0498349e872e4811fa6c6aba0.tar.gz
Added imgui for configuration
Diffstat (limited to 'vendor/zgui/src/backend_dx12.zig')
-rw-r--r--vendor/zgui/src/backend_dx12.zig59
1 files changed, 59 insertions, 0 deletions
diff --git a/vendor/zgui/src/backend_dx12.zig b/vendor/zgui/src/backend_dx12.zig
new file mode 100644
index 0000000..22672e7
--- /dev/null
+++ b/vendor/zgui/src/backend_dx12.zig
@@ -0,0 +1,59 @@
+pub const D3D12_CPU_DESCRIPTOR_HANDLE = extern struct {
+ ptr: c_ulonglong,
+};
+
+pub const D3D12_GPU_DESCRIPTOR_HANDLE = extern struct {
+ ptr: c_ulonglong,
+};
+
+pub fn init(
+ device: *const anyopaque, // ID3D12Device
+ num_frames_in_flight: u32,
+ rtv_format: c_uint, // DXGI_FORMAT
+ cbv_srv_heap: *const anyopaque, // ID3D12DescriptorHeap
+ font_srv_cpu_desc_handle: D3D12_CPU_DESCRIPTOR_HANDLE,
+ font_srv_gpu_desc_handle: D3D12_GPU_DESCRIPTOR_HANDLE,
+) void {
+ if (!ImGui_ImplDX12_Init(
+ device,
+ num_frames_in_flight,
+ rtv_format,
+ cbv_srv_heap,
+ font_srv_cpu_desc_handle,
+ font_srv_gpu_desc_handle,
+ )) {
+ @panic("failed to init d3d12 for imgui");
+ }
+}
+
+pub fn deinit() void {
+ ImGui_ImplDX12_Shutdown();
+}
+
+pub fn newFrame() void {
+ ImGui_ImplDX12_NewFrame();
+}
+
+pub fn render(
+ draw_data: *const anyopaque, // *gui.DrawData
+ gfx_command_list: *const anyopaque, // *ID3D12GraphicsCommandList
+) void {
+ ImGui_ImplDX12_RenderDrawData(draw_data, gfx_command_list);
+}
+
+// Those functions are defined in 'imgui_impl_dx12.cpp`
+// (they include few custom changes).
+extern fn ImGui_ImplDX12_Init(
+ device: *const anyopaque, // ID3D12Device
+ num_frames_in_flight: u32,
+ rtv_format: u32, // DXGI_FORMAT
+ cbv_srv_heap: *const anyopaque, // ID3D12DescriptorHeap
+ font_srv_cpu_desc_handle: D3D12_CPU_DESCRIPTOR_HANDLE,
+ font_srv_gpu_desc_handle: D3D12_GPU_DESCRIPTOR_HANDLE,
+) bool;
+extern fn ImGui_ImplDX12_Shutdown() void;
+extern fn ImGui_ImplDX12_NewFrame() void;
+extern fn ImGui_ImplDX12_RenderDrawData(
+ draw_data: *const anyopaque, // *ImDrawData
+ graphics_command_list: *const anyopaque, // *ID3D12GraphicsCommandList
+) void;