|
@@ -17,6 +17,7 @@
|
|
|
|
|
|
// CHANGELOG
|
|
|
// (minor and older changes stripped away, please see git history for details)
|
|
|
+// 2025-02-26: Update for latest webgpu-native changes.
|
|
|
// 2024-10-14: Update Dawn support for change of string usages. (#8082, #8083)
|
|
|
// 2024-10-07: Expose selected render state in ImGui_ImplWGPU_RenderState, which you can access in 'void* platform_io.Renderer_RenderState' during draw callbacks.
|
|
|
// 2024-10-07: Changed default texture sampler to Clamp instead of Repeat/Wrap.
|
|
@@ -65,7 +66,7 @@ using WGPUProgrammableStageDescriptor = WGPUComputeState;
|
|
|
#endif
|
|
|
|
|
|
// Dear ImGui prototypes from imgui_internal.h
|
|
|
-extern ImGuiID ImHashData(const void* data_p, size_t data_size, ImU32 seed = 0);
|
|
|
+extern ImGuiID ImHashData(const void* data_p, size_t data_size, ImU32 seed);
|
|
|
#define MEMALIGN(_SIZE,_ALIGN) (((_SIZE) + ((_ALIGN) - 1)) & ~((_ALIGN) - 1)) // Memory align (copied from IM_ALIGN() macro).
|
|
|
|
|
|
// WebGPU data
|
|
@@ -267,7 +268,7 @@ static WGPUProgrammableStageDescriptor ImGui_ImplWGPU_CreateShaderModule(const c
|
|
|
{
|
|
|
ImGui_ImplWGPU_Data* bd = ImGui_ImplWGPU_GetBackendData();
|
|
|
|
|
|
-#ifdef IMGUI_IMPL_WEBGPU_BACKEND_DAWN
|
|
|
+#if defined(IMGUI_IMPL_WEBGPU_BACKEND_DAWN) || defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU)
|
|
|
WGPUShaderSourceWGSL wgsl_desc = {};
|
|
|
wgsl_desc.chain.sType = WGPUSType_ShaderSourceWGSL;
|
|
|
wgsl_desc.code = { wgsl_source, WGPU_STRLEN };
|
|
@@ -282,7 +283,8 @@ static WGPUProgrammableStageDescriptor ImGui_ImplWGPU_CreateShaderModule(const c
|
|
|
|
|
|
WGPUProgrammableStageDescriptor stage_desc = {};
|
|
|
stage_desc.module = wgpuDeviceCreateShaderModule(bd->wgpuDevice, &desc);
|
|
|
-#ifdef IMGUI_IMPL_WEBGPU_BACKEND_DAWN
|
|
|
+
|
|
|
+#if defined(IMGUI_IMPL_WEBGPU_BACKEND_DAWN) || defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU)
|
|
|
stage_desc.entryPoint = { "main", WGPU_STRLEN };
|
|
|
#else
|
|
|
stage_desc.entryPoint = "main";
|
|
@@ -399,7 +401,7 @@ void ImGui_ImplWGPU_RenderDrawData(ImDrawData* draw_data, WGPURenderPassEncoder
|
|
|
{
|
|
|
nullptr,
|
|
|
"Dear ImGui Vertex buffer",
|
|
|
-#ifdef IMGUI_IMPL_WEBGPU_BACKEND_DAWN
|
|
|
+#if defined(IMGUI_IMPL_WEBGPU_BACKEND_DAWN) || defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU)
|
|
|
WGPU_STRLEN,
|
|
|
#endif
|
|
|
WGPUBufferUsage_CopyDst | WGPUBufferUsage_Vertex,
|
|
@@ -426,7 +428,7 @@ void ImGui_ImplWGPU_RenderDrawData(ImDrawData* draw_data, WGPURenderPassEncoder
|
|
|
{
|
|
|
nullptr,
|
|
|
"Dear ImGui Index buffer",
|
|
|
-#ifdef IMGUI_IMPL_WEBGPU_BACKEND_DAWN
|
|
|
+#if defined(IMGUI_IMPL_WEBGPU_BACKEND_DAWN) || defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU)
|
|
|
WGPU_STRLEN,
|
|
|
#endif
|
|
|
WGPUBufferUsage_CopyDst | WGPUBufferUsage_Index,
|
|
@@ -539,7 +541,7 @@ static void ImGui_ImplWGPU_CreateFontsTexture()
|
|
|
// Upload texture to graphics system
|
|
|
{
|
|
|
WGPUTextureDescriptor tex_desc = {};
|
|
|
-#ifdef IMGUI_IMPL_WEBGPU_BACKEND_DAWN
|
|
|
+#if defined(IMGUI_IMPL_WEBGPU_BACKEND_DAWN) || defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU)
|
|
|
tex_desc.label = { "Dear ImGui Font Texture", WGPU_STRLEN };
|
|
|
#else
|
|
|
tex_desc.label = "Dear ImGui Font Texture";
|
|
@@ -567,12 +569,12 @@ static void ImGui_ImplWGPU_CreateFontsTexture()
|
|
|
|
|
|
// Upload texture data
|
|
|
{
|
|
|
- WGPUImageCopyTexture dst_view = {};
|
|
|
+ WGPUTexelCopyTextureInfo dst_view = {};
|
|
|
dst_view.texture = bd->renderResources.FontTexture;
|
|
|
dst_view.mipLevel = 0;
|
|
|
dst_view.origin = { 0, 0, 0 };
|
|
|
dst_view.aspect = WGPUTextureAspect_All;
|
|
|
- WGPUTextureDataLayout layout = {};
|
|
|
+ WGPUTexelCopyBufferLayout layout = {};
|
|
|
layout.offset = 0;
|
|
|
layout.bytesPerRow = width * size_pp;
|
|
|
layout.rowsPerImage = height;
|
|
@@ -606,7 +608,7 @@ static void ImGui_ImplWGPU_CreateUniformBuffer()
|
|
|
{
|
|
|
nullptr,
|
|
|
"Dear ImGui Uniform buffer",
|
|
|
-#ifdef IMGUI_IMPL_WEBGPU_BACKEND_DAWN
|
|
|
+#if defined(IMGUI_IMPL_WEBGPU_BACKEND_DAWN) || defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU)
|
|
|
WGPU_STRLEN,
|
|
|
#endif
|
|
|
WGPUBufferUsage_CopyDst | WGPUBufferUsage_Uniform,
|
|
@@ -714,7 +716,7 @@ bool ImGui_ImplWGPU_CreateDeviceObjects()
|
|
|
// Create depth-stencil State
|
|
|
WGPUDepthStencilState depth_stencil_state = {};
|
|
|
depth_stencil_state.format = bd->depthStencilFormat;
|
|
|
-#ifdef IMGUI_IMPL_WEBGPU_BACKEND_DAWN
|
|
|
+#if defined(IMGUI_IMPL_WEBGPU_BACKEND_DAWN) || defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU)
|
|
|
depth_stencil_state.depthWriteEnabled = WGPUOptionalBool_False;
|
|
|
#else
|
|
|
depth_stencil_state.depthWriteEnabled = false;
|