21 #include "../../SDL_internal.h"
23 #if SDL_VIDEO_DRIVER_WAYLAND && SDL_VIDEO_OPENGL_EGL
25 #include "../SDL_sysvideo.h"
26 #include "../../events/SDL_windowevents_c.h"
33 #include "xdg-shell-client-protocol.h"
34 #include "xdg-shell-unstable-v6-client-protocol.h"
46 WAYLAND_wl_display_flush(
data->display);
66 struct wl_region *region;
68 if (SDL_EGL_SwapBuffers(
_this,
data->egl_surface) < 0) {
73 if (
data->resize.pending) {
74 if (
data->scale_factor !=
data->resize.scale_factor) {
81 data->scale_factor =
data->resize.scale_factor;
82 wl_surface_set_buffer_scale(
data->surface,
data->scale_factor);
83 WAYLAND_wl_egl_window_resize(
data->egl_window,
window->w *
data->scale_factor,
window->h *
data->scale_factor, 0, 0);
85 if (
data->resize.configure) {
86 if (
data->waylandData->shell.xdg) {
87 xdg_surface_ack_configure(
data->shell_surface.xdg.surface,
data->resize.serial);
88 }
else if (
data->waylandData->shell.zxdg) {
89 zxdg_surface_v6_ack_configure(
data->shell_surface.zxdg.surface,
data->resize.serial);
94 region = wl_compositor_create_region(
data->waylandData->compositor);
96 wl_surface_set_opaque_region(
data->surface, region);
97 wl_region_destroy(region);
102 WAYLAND_wl_display_flush(
data->waylandData->display );