summaryrefslogtreecommitdiff
path: root/third_party
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-01-31 13:57:51 +0100
committerskal <pascal.massimino@gmail.com>2026-01-31 13:57:51 +0100
commite3daca37aa134a6885c8ae5c508c3d7f7bfc600a (patch)
tree69578c5e3376603219bc341e8975e289cede9bdd /third_party
parent3af9f70bec1f50c980288e2213035693f4b737ce (diff)
Add Windows cross-compilation support (MinGW) and emulation (Wine)
Diffstat (limited to 'third_party')
-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);
}