wayland: Implement GetDisplayBounds

This commit is contained in:
Ethan Lee 2021-04-18 09:33:06 -04:00 committed by Ryan C. Gordon
parent ed24c3452a
commit 46df195b2a
2 changed files with 17 additions and 1 deletions

View File

@ -62,6 +62,8 @@ static void
Wayland_GetDisplayModes(_THIS, SDL_VideoDisplay *sdl_display); Wayland_GetDisplayModes(_THIS, SDL_VideoDisplay *sdl_display);
static int static int
Wayland_SetDisplayMode(_THIS, SDL_VideoDisplay *display, SDL_DisplayMode *mode); Wayland_SetDisplayMode(_THIS, SDL_VideoDisplay *display, SDL_DisplayMode *mode);
static int
Wayland_GetDisplayBounds(_THIS, SDL_VideoDisplay *display, SDL_Rect *rect);
static void static void
Wayland_VideoQuit(_THIS); Wayland_VideoQuit(_THIS);
@ -179,6 +181,7 @@ Wayland_CreateDevice(int devindex)
device->VideoQuit = Wayland_VideoQuit; device->VideoQuit = Wayland_VideoQuit;
device->SetDisplayMode = Wayland_SetDisplayMode; device->SetDisplayMode = Wayland_SetDisplayMode;
device->GetDisplayModes = Wayland_GetDisplayModes; device->GetDisplayModes = Wayland_GetDisplayModes;
device->GetDisplayBounds = Wayland_GetDisplayBounds;
device->GetWindowWMInfo = Wayland_GetWindowWMInfo; device->GetWindowWMInfo = Wayland_GetWindowWMInfo;
device->SuspendScreenSaver = Wayland_SuspendScreenSaver; device->SuspendScreenSaver = Wayland_SuspendScreenSaver;
@ -251,6 +254,8 @@ display_handle_geometry(void *data,
{ {
SDL_WaylandOutputData *driverdata = data; SDL_WaylandOutputData *driverdata = data;
driverdata->x = x;
driverdata->y = y;
driverdata->placeholder.name = SDL_strdup(model); driverdata->placeholder.name = SDL_strdup(model);
driverdata->transform = transform; driverdata->transform = transform;
} }
@ -513,6 +518,17 @@ Wayland_SetDisplayMode(_THIS, SDL_VideoDisplay *display, SDL_DisplayMode *mode)
return SDL_Unsupported(); return SDL_Unsupported();
} }
static int
Wayland_GetDisplayBounds(_THIS, SDL_VideoDisplay *display, SDL_Rect *rect)
{
SDL_WaylandOutputData *driverdata = (SDL_WaylandOutputData *)display->driverdata;
rect->x = driverdata->x;
rect->y = driverdata->y;
rect->w = display->current_mode.w;
rect->h = display->current_mode.h;
return 0;
}
void void
Wayland_VideoQuit(_THIS) Wayland_VideoQuit(_THIS)
{ {

View File

@ -93,7 +93,7 @@ typedef struct {
typedef struct { typedef struct {
struct wl_output *output; struct wl_output *output;
float scale_factor; float scale_factor;
int width, height, refresh, transform; int x, y, width, height, refresh, transform;
SDL_VideoDisplay placeholder; SDL_VideoDisplay placeholder;
SDL_bool done; SDL_bool done;
} SDL_WaylandOutputData; } SDL_WaylandOutputData;