wayland: Fix building with SDL_OPENGL=OFF

This commit is contained in:
Ethan Lee 2022-01-19 15:47:52 -05:00
parent 426c1f4b85
commit ed3442d7a5
3 changed files with 10 additions and 2 deletions

View File

@ -230,6 +230,7 @@ Wayland_CreateDevice(int devindex)
device->WaitEventTimeout = Wayland_WaitEventTimeout; device->WaitEventTimeout = Wayland_WaitEventTimeout;
device->SendWakeupEvent = Wayland_SendWakeupEvent; device->SendWakeupEvent = Wayland_SendWakeupEvent;
#if SDL_VIDEO_OPENGL_EGL
device->GL_SwapWindow = Wayland_GLES_SwapWindow; device->GL_SwapWindow = Wayland_GLES_SwapWindow;
device->GL_GetSwapInterval = Wayland_GLES_GetSwapInterval; device->GL_GetSwapInterval = Wayland_GLES_GetSwapInterval;
device->GL_SetSwapInterval = Wayland_GLES_SetSwapInterval; device->GL_SetSwapInterval = Wayland_GLES_SetSwapInterval;
@ -240,6 +241,7 @@ Wayland_CreateDevice(int devindex)
device->GL_UnloadLibrary = Wayland_GLES_UnloadLibrary; device->GL_UnloadLibrary = Wayland_GLES_UnloadLibrary;
device->GL_GetProcAddress = Wayland_GLES_GetProcAddress; device->GL_GetProcAddress = Wayland_GLES_GetProcAddress;
device->GL_DeleteContext = Wayland_GLES_DeleteContext; device->GL_DeleteContext = Wayland_GLES_DeleteContext;
#endif
device->CreateSDLWindow = Wayland_CreateWindow; device->CreateSDLWindow = Wayland_CreateWindow;
device->ShowWindow = Wayland_ShowWindow; device->ShowWindow = Wayland_ShowWindow;

View File

@ -21,7 +21,7 @@
#include "../../SDL_internal.h" #include "../../SDL_internal.h"
#if SDL_VIDEO_DRIVER_WAYLAND && SDL_VIDEO_OPENGL_EGL #if SDL_VIDEO_DRIVER_WAYLAND
#include "../SDL_sysvideo.h" #include "../SDL_sysvideo.h"
#include "../../events/SDL_windowevents_c.h" #include "../../events/SDL_windowevents_c.h"
@ -1309,12 +1309,14 @@ int Wayland_CreateWindow(_THIS, SDL_Window *window)
data->egl_window = WAYLAND_wl_egl_window_create(data->surface, data->egl_window = WAYLAND_wl_egl_window_create(data->surface,
window->w * data->scale_factor, window->h * data->scale_factor); window->w * data->scale_factor, window->h * data->scale_factor);
#if SDL_VIDEO_OPENGL_EGL
/* Create the GLES window surface */ /* Create the GLES window surface */
data->egl_surface = SDL_EGL_CreateSurface(_this, (NativeWindowType) data->egl_window); data->egl_surface = SDL_EGL_CreateSurface(_this, (NativeWindowType) data->egl_window);
if (data->egl_surface == EGL_NO_SURFACE) { if (data->egl_surface == EGL_NO_SURFACE) {
return SDL_SetError("failed to create an EGL window surface"); return SDL_SetError("failed to create an EGL window surface");
} }
#endif
} }
#ifdef SDL_VIDEO_DRIVER_WAYLAND_QT_TOUCH #ifdef SDL_VIDEO_DRIVER_WAYLAND_QT_TOUCH
@ -1517,9 +1519,11 @@ void Wayland_DestroyWindow(_THIS, SDL_Window *window)
SDL_WindowData *wind = window->driverdata; SDL_WindowData *wind = window->driverdata;
if (data) { if (data) {
#if SDL_VIDEO_OPENGL_EGL
if (wind->egl_surface) { if (wind->egl_surface) {
SDL_EGL_DestroySurface(_this, wind->egl_surface); SDL_EGL_DestroySurface(_this, wind->egl_surface);
} }
#endif
if (wind->egl_window) { if (wind->egl_window) {
WAYLAND_wl_egl_window_destroy(wind->egl_window); WAYLAND_wl_egl_window_destroy(wind->egl_window);
} }
@ -1555,6 +1559,6 @@ void Wayland_DestroyWindow(_THIS, SDL_Window *window)
window->driverdata = NULL; window->driverdata = NULL;
} }
#endif /* SDL_VIDEO_DRIVER_WAYLAND && SDL_VIDEO_OPENGL_EGL */ #endif /* SDL_VIDEO_DRIVER_WAYLAND */
/* vi: set ts=4 sw=4 expandtab: */ /* vi: set ts=4 sw=4 expandtab: */

View File

@ -63,7 +63,9 @@ typedef struct {
} shell_surface; } shell_surface;
struct wl_egl_window *egl_window; struct wl_egl_window *egl_window;
struct SDL_WaylandInput *keyboard_device; struct SDL_WaylandInput *keyboard_device;
#if SDL_VIDEO_OPENGL_EGL
EGLSurface egl_surface; EGLSurface egl_surface;
#endif
struct zwp_locked_pointer_v1 *locked_pointer; struct zwp_locked_pointer_v1 *locked_pointer;
struct zwp_confined_pointer_v1 *confined_pointer; struct zwp_confined_pointer_v1 *confined_pointer;
struct zxdg_toplevel_decoration_v1 *server_decoration; struct zxdg_toplevel_decoration_v1 *server_decoration;