mirror of https://github.com/encounter/SDL.git
wayland: Fix building with SDL_OPENGL=OFF
This commit is contained in:
parent
426c1f4b85
commit
ed3442d7a5
|
@ -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;
|
||||||
|
|
|
@ -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: */
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue