Skip to content

Commit 94352fc

Browse files
committed
Fix linux includes
1 parent 2529d26 commit 94352fc

File tree

2 files changed

+17
-9
lines changed

2 files changed

+17
-9
lines changed

.github/workflows/cmake.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ jobs:
3434
- system: Windows-MSYS-x64
3535
runner: windows-latest
3636
msystem: ucrt64
37-
extra-cmake-args: -G "MSYS Makefiles"
37+
extra-cmake-args: -G "MSYS Makefiles" -DSDL_VIDEO_OPENGL_EGL=0
3838
exe-extension: .exe
3939

4040
- system: MacOS-ARM

sdl3webgpu.c

+16-8
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,10 @@
4545
# include <Metal/Metal.h>
4646
#elif defined(SDL_PLATFORM_WIN32)
4747
# include <windows.h>
48+
#elif defined(SDL_VIDEO_DRIVER_X11)
49+
# include <X11/Xlib.h>
50+
#elif defined(SDL_VIDEO_DRIVER_WAYLAND)
51+
# include <wayland-client-core.h>
4852
#endif
4953

5054
#include <SDL3/SDL.h>
@@ -55,8 +59,8 @@ WGPUSurface SDL_GetWGPUSurface(WGPUInstance instance, SDL_Window* window) {
5559
#if defined(SDL_PLATFORM_MACOS)
5660
{
5761
id metal_layer = NULL;
58-
NSWindow *nswindow = (__bridge NSWindow *)SDL_GetPointerProperty(props, SDL_PROP_WINDOW_COCOA_WINDOW_POINTER, NULL);
59-
if (!nswindow) return NULL;
62+
NSWindow *ns_window = (__bridge NSWindow *)SDL_GetPointerProperty(props, SDL_PROP_WINDOW_COCOA_WINDOW_POINTER, NULL);
63+
if (!ns_window) return NULL;
6064
[ns_window.contentView setWantsLayer : YES];
6165
metal_layer = [CAMetalLayer layer];
6266
[ns_window.contentView setLayer : metal_layer];
@@ -107,18 +111,19 @@ WGPUSurface SDL_GetWGPUSurface(WGPUInstance instance, SDL_Window* window) {
107111
return wgpuInstanceCreateSurface(instance, &surfaceDescriptor);
108112
}
109113
#elif defined(SDL_PLATFORM_LINUX)
114+
# if defined(SDL_VIDEO_DRIVER_X11)
110115
if (SDL_strcmp(SDL_GetCurrentVideoDriver(), "x11") == 0) {
111116
Display *x11_display = (Display *)SDL_GetPointerProperty(props, SDL_PROP_WINDOW_X11_DISPLAY_POINTER, NULL);
112117
Window x11_window = (Window)SDL_GetNumberProperty(props, SDL_PROP_WINDOW_X11_WINDOW_NUMBER, 0);
113118
if (!x11_display || !x11_window) return NULL;
114119

115-
# ifdef WEBGPU_BACKEND_DAWN
120+
# ifdef WEBGPU_BACKEND_DAWN
116121
WGPUSurfaceSourceXlibWindow fromXlibWindow;
117122
fromXlibWindow.chain.sType = WGPUSType_SurfaceSourceXlibWindow;
118-
# else
123+
# else
119124
WGPUSurfaceDescriptorFromXlibWindow fromXlibWindow;
120125
fromXlibWindow.chain.sType = WGPUSType_SurfaceDescriptorFromXlibWindow;
121-
# endif
126+
# endif
122127
fromXlibWindow.chain.next = NULL;
123128
fromXlibWindow.display = x11_display;
124129
fromXlibWindow.window = x11_window;
@@ -129,18 +134,20 @@ WGPUSurface SDL_GetWGPUSurface(WGPUInstance instance, SDL_Window* window) {
129134

130135
return wgpuInstanceCreateSurface(instance, &surfaceDescriptor);
131136
}
137+
# endif // defined(SDL_VIDEO_DRIVER_X11)
138+
# if defined(SDL_VIDEO_DRIVER_WAYLAND)
132139
else if (SDL_strcmp(SDL_GetCurrentVideoDriver(), "wayland") == 0) {
133140
struct wl_display *wayland_display = (struct wl_display *)SDL_GetPointerProperty(props, SDL_PROP_WINDOW_WAYLAND_DISPLAY_POINTER, NULL);
134141
struct wl_surface *wayland_surface = (struct wl_surface *)SDL_GetPointerProperty(props, SDL_PROP_WINDOW_WAYLAND_SURFACE_POINTER, NULL);
135142
if (!wayland_display || !wayland_surface) return NULL;
136143

137-
# ifdef WEBGPU_BACKEND_DAWN
144+
# ifdef WEBGPU_BACKEND_DAWN
138145
WGPUSurfaceSourceWaylandSurface fromWaylandSurface;
139146
fromWaylandSurface.chain.sType = WGPUSType_SurfaceSourceWaylandSurface;
140-
# else
147+
# else
141148
WGPUSurfaceDescriptorFromWaylandSurface fromWaylandSurface;
142149
fromWaylandSurface.chain.sType = WGPUSType_SurfaceDescriptorFromWaylandSurface;
143-
# endif
150+
# endif
144151
fromWaylandSurface.chain.next = NULL;
145152
fromWaylandSurface.display = wayland_display;
146153
fromWaylandSurface.surface = wayland_surface;
@@ -151,6 +158,7 @@ WGPUSurface SDL_GetWGPUSurface(WGPUInstance instance, SDL_Window* window) {
151158

152159
return wgpuInstanceCreateSurface(instance, &surfaceDescriptor);
153160
}
161+
# endif // defined(SDL_VIDEO_DRIVER_WAYLAND)
154162
#elif defined(SDL_PLATFORM_WIN32)
155163
{
156164
HWND hwnd = (HWND)SDL_GetPointerProperty(props, SDL_PROP_WINDOW_WIN32_HWND_POINTER, NULL);

0 commit comments

Comments
 (0)