mirror of
https://github.com/ocornut/imgui.git
synced 2025-03-04 01:02:44 +01:00
Backends: WebGPU: update code for latest webgpu-native changes. (#8426)
This commit is contained in:
parent
242d856ede
commit
4f4fb1d220
@ -17,6 +17,7 @@
|
|||||||
|
|
||||||
// CHANGELOG
|
// CHANGELOG
|
||||||
// (minor and older changes stripped away, please see git history for details)
|
// (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-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: 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.
|
// 2024-10-07: Changed default texture sampler to Clamp instead of Repeat/Wrap.
|
||||||
@ -65,7 +66,7 @@ using WGPUProgrammableStageDescriptor = WGPUComputeState;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Dear ImGui prototypes from imgui_internal.h
|
// 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).
|
#define MEMALIGN(_SIZE,_ALIGN) (((_SIZE) + ((_ALIGN) - 1)) & ~((_ALIGN) - 1)) // Memory align (copied from IM_ALIGN() macro).
|
||||||
|
|
||||||
// WebGPU data
|
// WebGPU data
|
||||||
@ -267,7 +268,7 @@ static WGPUProgrammableStageDescriptor ImGui_ImplWGPU_CreateShaderModule(const c
|
|||||||
{
|
{
|
||||||
ImGui_ImplWGPU_Data* bd = ImGui_ImplWGPU_GetBackendData();
|
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 = {};
|
WGPUShaderSourceWGSL wgsl_desc = {};
|
||||||
wgsl_desc.chain.sType = WGPUSType_ShaderSourceWGSL;
|
wgsl_desc.chain.sType = WGPUSType_ShaderSourceWGSL;
|
||||||
wgsl_desc.code = { wgsl_source, WGPU_STRLEN };
|
wgsl_desc.code = { wgsl_source, WGPU_STRLEN };
|
||||||
@ -282,7 +283,8 @@ static WGPUProgrammableStageDescriptor ImGui_ImplWGPU_CreateShaderModule(const c
|
|||||||
|
|
||||||
WGPUProgrammableStageDescriptor stage_desc = {};
|
WGPUProgrammableStageDescriptor stage_desc = {};
|
||||||
stage_desc.module = wgpuDeviceCreateShaderModule(bd->wgpuDevice, &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 };
|
stage_desc.entryPoint = { "main", WGPU_STRLEN };
|
||||||
#else
|
#else
|
||||||
stage_desc.entryPoint = "main";
|
stage_desc.entryPoint = "main";
|
||||||
@ -399,7 +401,7 @@ void ImGui_ImplWGPU_RenderDrawData(ImDrawData* draw_data, WGPURenderPassEncoder
|
|||||||
{
|
{
|
||||||
nullptr,
|
nullptr,
|
||||||
"Dear ImGui Vertex buffer",
|
"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,
|
WGPU_STRLEN,
|
||||||
#endif
|
#endif
|
||||||
WGPUBufferUsage_CopyDst | WGPUBufferUsage_Vertex,
|
WGPUBufferUsage_CopyDst | WGPUBufferUsage_Vertex,
|
||||||
@ -426,7 +428,7 @@ void ImGui_ImplWGPU_RenderDrawData(ImDrawData* draw_data, WGPURenderPassEncoder
|
|||||||
{
|
{
|
||||||
nullptr,
|
nullptr,
|
||||||
"Dear ImGui Index buffer",
|
"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,
|
WGPU_STRLEN,
|
||||||
#endif
|
#endif
|
||||||
WGPUBufferUsage_CopyDst | WGPUBufferUsage_Index,
|
WGPUBufferUsage_CopyDst | WGPUBufferUsage_Index,
|
||||||
@ -539,7 +541,7 @@ static void ImGui_ImplWGPU_CreateFontsTexture()
|
|||||||
// Upload texture to graphics system
|
// Upload texture to graphics system
|
||||||
{
|
{
|
||||||
WGPUTextureDescriptor tex_desc = {};
|
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 };
|
tex_desc.label = { "Dear ImGui Font Texture", WGPU_STRLEN };
|
||||||
#else
|
#else
|
||||||
tex_desc.label = "Dear ImGui Font Texture";
|
tex_desc.label = "Dear ImGui Font Texture";
|
||||||
@ -567,12 +569,12 @@ static void ImGui_ImplWGPU_CreateFontsTexture()
|
|||||||
|
|
||||||
// Upload texture data
|
// Upload texture data
|
||||||
{
|
{
|
||||||
WGPUImageCopyTexture dst_view = {};
|
WGPUTexelCopyTextureInfo dst_view = {};
|
||||||
dst_view.texture = bd->renderResources.FontTexture;
|
dst_view.texture = bd->renderResources.FontTexture;
|
||||||
dst_view.mipLevel = 0;
|
dst_view.mipLevel = 0;
|
||||||
dst_view.origin = { 0, 0, 0 };
|
dst_view.origin = { 0, 0, 0 };
|
||||||
dst_view.aspect = WGPUTextureAspect_All;
|
dst_view.aspect = WGPUTextureAspect_All;
|
||||||
WGPUTextureDataLayout layout = {};
|
WGPUTexelCopyBufferLayout layout = {};
|
||||||
layout.offset = 0;
|
layout.offset = 0;
|
||||||
layout.bytesPerRow = width * size_pp;
|
layout.bytesPerRow = width * size_pp;
|
||||||
layout.rowsPerImage = height;
|
layout.rowsPerImage = height;
|
||||||
@ -606,7 +608,7 @@ static void ImGui_ImplWGPU_CreateUniformBuffer()
|
|||||||
{
|
{
|
||||||
nullptr,
|
nullptr,
|
||||||
"Dear ImGui Uniform buffer",
|
"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,
|
WGPU_STRLEN,
|
||||||
#endif
|
#endif
|
||||||
WGPUBufferUsage_CopyDst | WGPUBufferUsage_Uniform,
|
WGPUBufferUsage_CopyDst | WGPUBufferUsage_Uniform,
|
||||||
@ -714,7 +716,7 @@ bool ImGui_ImplWGPU_CreateDeviceObjects()
|
|||||||
// Create depth-stencil State
|
// Create depth-stencil State
|
||||||
WGPUDepthStencilState depth_stencil_state = {};
|
WGPUDepthStencilState depth_stencil_state = {};
|
||||||
depth_stencil_state.format = bd->depthStencilFormat;
|
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;
|
depth_stencil_state.depthWriteEnabled = WGPUOptionalBool_False;
|
||||||
#else
|
#else
|
||||||
depth_stencil_state.depthWriteEnabled = false;
|
depth_stencil_state.depthWriteEnabled = false;
|
||||||
|
@ -104,8 +104,9 @@ Other changes:
|
|||||||
Default to header version if unspecified. (#8326, #8365) [@mklefrancois]
|
Default to header version if unspecified. (#8326, #8365) [@mklefrancois]
|
||||||
- Backends: Vulkan: Dynamic rendering path loads "vkCmdBeginRendering/vkCmdEndRendering"
|
- Backends: Vulkan: Dynamic rendering path loads "vkCmdBeginRendering/vkCmdEndRendering"
|
||||||
(without -KHR suffix) on API 1.3. (#8326, #8365) [@mklefrancois]
|
(without -KHR suffix) on API 1.3. (#8326, #8365) [@mklefrancois]
|
||||||
- Backends: WebGPU: Fix for DAWN API rename WGPUProgrammableStageDescriptor -> WGPUComputeState.
|
- Backends: WebGPU: Fix for DAWN API change WGPUProgrammableStageDescriptor -> WGPUComputeState.
|
||||||
[@PhantomCloak] (#8369)
|
[@PhantomCloak] (#8369)
|
||||||
|
- Backends: WebGPU: Fix for webgpu-native API changes. (#8426) [@pplux]
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
|
Loading…
x
Reference in New Issue
Block a user