#include "SDL_internal.h"
#ifndef SDL_x11modes_h_
#define SDL_x11modes_h_
#include "SDL_x11settings.h"
struct SDL_DisplayData
{
int screen;
Visual *visual;
int depth;
int scanline_pad;
int x;
int y;
Uint64 mode_switch_deadline_ns;
bool use_xrandr;
#ifdef SDL_VIDEO_DRIVER_X11_XRANDR
RROutput xrandr_output;
char connector_name[16];
#endif
};
struct SDL_DisplayModeData
{
#ifdef SDL_VIDEO_DRIVER_X11_XRANDR
RRMode xrandr_mode;
#else
int unused; #endif
};
extern bool X11_InitModes(SDL_VideoDevice *_this);
extern bool X11_GetDisplayModes(SDL_VideoDevice *_this, SDL_VideoDisplay *display);
extern bool X11_SetDisplayMode(SDL_VideoDevice *_this, SDL_VideoDisplay *display, SDL_DisplayMode *mode);
extern void X11_QuitModes(SDL_VideoDevice *_this);
extern bool X11_GetVisualInfoFromVisual(Display *display, Visual *visual, XVisualInfo *vinfo);
extern SDL_PixelFormat X11_GetPixelFormatFromVisualInfo(Display *display, XVisualInfo *vinfo);
extern bool X11_GetDisplayBounds(SDL_VideoDevice *_this, SDL_VideoDisplay *sdl_display, SDL_Rect *rect);
extern bool X11_GetDisplayUsableBounds(SDL_VideoDevice *_this, SDL_VideoDisplay *sdl_display, SDL_Rect *rect);
extern float X11_GetGlobalContentScale(Display *display, XSettingsClient *client);
extern float X11_GetGlobalContentScaleForDevice(SDL_VideoDevice *_this);
#ifdef SDL_VIDEO_DRIVER_X11_XRANDR
extern void X11_HandleXRandREvent(SDL_VideoDevice *_this, const XEvent *xevent);
#endif
#endif