summaryrefslogtreecommitdiffstats
path: root/lib/imgui-1.90.7/backends/imgui_impl_wgpu.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/imgui-1.90.7/backends/imgui_impl_wgpu.h')
-rw-r--r--lib/imgui-1.90.7/backends/imgui_impl_wgpu.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/lib/imgui-1.90.7/backends/imgui_impl_wgpu.h b/lib/imgui-1.90.7/backends/imgui_impl_wgpu.h
new file mode 100644
index 0000000..2e19ea3
--- /dev/null
+++ b/lib/imgui-1.90.7/backends/imgui_impl_wgpu.h
@@ -0,0 +1,49 @@
+// dear imgui: Renderer for WebGPU
+// This needs to be used along with a Platform Binding (e.g. GLFW)
+// (Please note that WebGPU is currently experimental, will not run on non-beta browsers, and may break.)
+
+// Implemented features:
+// [X] Renderer: User texture binding. Use 'WGPUTextureView' as ImTextureID. Read the FAQ about ImTextureID!
+// [X] Renderer: Large meshes support (64k+ vertices) with 16-bit indices.
+
+// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
+// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
+// Learn about Dear ImGui:
+// - FAQ https://dearimgui.com/faq
+// - Getting Started https://dearimgui.com/getting-started
+// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
+// - Introduction, links and more at the top of imgui.cpp
+
+#pragma once
+#include "imgui.h" // IMGUI_IMPL_API
+#ifndef IMGUI_DISABLE
+
+#include <webgpu/webgpu.h>
+
+// Initialization data, for ImGui_ImplWGPU_Init()
+struct ImGui_ImplWGPU_InitInfo
+{
+ WGPUDevice Device;
+ int NumFramesInFlight = 3;
+ WGPUTextureFormat RenderTargetFormat = WGPUTextureFormat_Undefined;
+ WGPUTextureFormat DepthStencilFormat = WGPUTextureFormat_Undefined;
+ WGPUMultisampleState PipelineMultisampleState = {};
+
+ ImGui_ImplWGPU_InitInfo()
+ {
+ PipelineMultisampleState.count = 1;
+ PipelineMultisampleState.mask = UINT32_MAX;
+ PipelineMultisampleState.alphaToCoverageEnabled = false;
+ }
+};
+
+IMGUI_IMPL_API bool ImGui_ImplWGPU_Init(ImGui_ImplWGPU_InitInfo* init_info);
+IMGUI_IMPL_API void ImGui_ImplWGPU_Shutdown();
+IMGUI_IMPL_API void ImGui_ImplWGPU_NewFrame();
+IMGUI_IMPL_API void ImGui_ImplWGPU_RenderDrawData(ImDrawData* draw_data, WGPURenderPassEncoder pass_encoder);
+
+// Use if you want to reset your rendering device without losing Dear ImGui state.
+IMGUI_IMPL_API void ImGui_ImplWGPU_InvalidateDeviceObjects();
+IMGUI_IMPL_API bool ImGui_ImplWGPU_CreateDeviceObjects();
+
+#endif // #ifndef IMGUI_DISABLE