From e3daca37aa134a6885c8ae5c508c3d7f7bfc600a Mon Sep 17 00:00:00 2001 From: skal Date: Sat, 31 Jan 2026 13:57:51 +0100 Subject: Add Windows cross-compilation support (MinGW) and emulation (Wine) --- third_party/glfw3webgpu/glfw3webgpu.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'third_party') 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); } -- cgit v1.2.3