summaryrefslogtreecommitdiff
path: root/third_party/glfw3webgpu
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/glfw3webgpu')
-rw-r--r--third_party/glfw3webgpu/glfw3webgpu.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/third_party/glfw3webgpu/glfw3webgpu.c b/third_party/glfw3webgpu/glfw3webgpu.c
index 27bf9ec..a3f36e6 100644
--- a/third_party/glfw3webgpu/glfw3webgpu.c
+++ b/third_party/glfw3webgpu/glfw3webgpu.c
@@ -136,6 +136,19 @@ WGPUSurface glfwCreateWindowWGPUSurface(WGPUInstance instance, GLFWwindow* windo
HWND hwnd = glfwGetWin32Window(window);
HINSTANCE hinstance = GetModuleHandle(NULL);
+#if defined(DEMO_CROSS_COMPILE_WIN32)
+ // Old API (wgpu-native v0.19)
+ WGPUSurfaceDescriptorFromWindowsHWND fromWindowsHWND;
+ fromWindowsHWND.chain.sType = WGPUSType_SurfaceDescriptorFromWindowsHWND;
+ fromWindowsHWND.chain.next = NULL;
+ fromWindowsHWND.hinstance = hinstance;
+ fromWindowsHWND.hwnd = hwnd;
+
+ WGPUSurfaceDescriptor surfaceDescriptor;
+ surfaceDescriptor.nextInChain = (const WGPUChainedStruct*)&fromWindowsHWND;
+ surfaceDescriptor.label = NULL;
+#else
+ // New API
WGPUSurfaceSourceWindowsHWND fromWindowsHWND;
fromWindowsHWND.chain.sType = WGPUSType_SurfaceSourceWindowsHWND;
fromWindowsHWND.chain.next = NULL;
@@ -145,6 +158,7 @@ WGPUSurface glfwCreateWindowWGPUSurface(WGPUInstance instance, GLFWwindow* windo
WGPUSurfaceDescriptor surfaceDescriptor;
surfaceDescriptor.nextInChain = &fromWindowsHWND.chain;
surfaceDescriptor.label = (WGPUStringView){ NULL, WGPU_STRLEN };
+#endif
return wgpuInstanceCreateSurface(instance, &surfaceDescriptor);
}