SDL  2.0
SDL_sysvideo.h
Go to the documentation of this file.
1 /*
2  Simple DirectMedia Layer
3  Copyright (C) 1997-2018 Sam Lantinga <slouken@libsdl.org>
4 
5  This software is provided 'as-is', without any express or implied
6  warranty. In no event will the authors be held liable for any damages
7  arising from the use of this software.
8 
9  Permission is granted to anyone to use this software for any purpose,
10  including commercial applications, and to alter it and redistribute it
11  freely, subject to the following restrictions:
12 
13  1. The origin of this software must not be misrepresented; you must not
14  claim that you wrote the original software. If you use this software
15  in a product, an acknowledgment in the product documentation would be
16  appreciated but is not required.
17  2. Altered source versions must be plainly marked as such, and must not be
18  misrepresented as being the original software.
19  3. This notice may not be removed or altered from any source distribution.
20 */
21 #include "../SDL_internal.h"
22 
23 #ifndef SDL_sysvideo_h_
24 #define SDL_sysvideo_h_
25 
26 #include "SDL_messagebox.h"
27 #include "SDL_shape.h"
28 #include "SDL_thread.h"
29 
30 #include "SDL_vulkan_internal.h"
31 
32 /* The SDL video driver */
33 
34 typedef struct SDL_WindowShaper SDL_WindowShaper;
35 typedef struct SDL_ShapeDriver SDL_ShapeDriver;
36 typedef struct SDL_VideoDisplay SDL_VideoDisplay;
37 typedef struct SDL_VideoDevice SDL_VideoDevice;
38 
39 /* Define the SDL window-shaper structure */
41 {
42  /* The window associated with the shaper */
44 
45  /* The user's specified coordinates for the window, for once we give it a shape. */
47 
48  /* The parameters for shape calculation. */
50 
51  /* Has this window been assigned a shape? */
53 
54  void *driverdata;
55 };
56 
57 /* Define the SDL shape driver structure */
59 {
60  SDL_WindowShaper *(*CreateShaper)(SDL_Window * window);
61  int (*SetWindowShape)(SDL_WindowShaper *shaper,SDL_Surface *shape,SDL_WindowShapeMode *shape_mode);
62  int (*ResizeWindowShape)(SDL_Window *window);
63 };
64 
65 typedef struct SDL_WindowUserData
66 {
67  char *name;
68  void *data;
71 
72 /* Define the SDL window structure, corresponding to toplevel windows */
73 struct SDL_Window
74 {
75  const void *magic;
77  char *title;
79  int x, y;
80  int w, h;
81  int min_w, min_h;
82  int max_w, max_h;
85 
86  /* Stored position and size for windowed mode */
88 
90 
91  float opacity;
92 
93  float brightness;
95  Uint16 *saved_gamma; /* (just offset into gamma) */
96 
99 
102  SDL_bool is_dropping; /* drag/drop in progress, expecting SDL_SendDropComplete(). */
103 
105 
108 
110 
111  void *driverdata;
112 
115 };
116 #define FULLSCREEN_VISIBLE(W) \
117  (((W)->flags & SDL_WINDOW_FULLSCREEN) && \
118  ((W)->flags & SDL_WINDOW_SHOWN) && \
119  !((W)->flags & SDL_WINDOW_MINIMIZED))
120 
121 /*
122  * Define the SDL display structure This corresponds to physical monitors
123  * attached to the system.
124  */
126 {
127  char *name;
133 
135 
137 
138  void *driverdata;
139 };
140 
141 /* Forward declaration */
142 struct SDL_SysWMinfo;
143 
144 /* Define the SDL video driver structure */
145 #define _THIS SDL_VideoDevice *_this
146 
148 {
149  /* * * */
150  /* The name of this video driver */
151  const char *name;
152 
153  /* * * */
154  /* Initialization/Query functions */
155 
156  /*
157  * Initialize the native video subsystem, filling in the list of
158  * displays for this driver, returning 0 or -1 if there's an error.
159  */
160  int (*VideoInit) (_THIS);
161 
162  /*
163  * Reverse the effects VideoInit() -- called if VideoInit() fails or
164  * if the application is shutting down the video subsystem.
165  */
166  void (*VideoQuit) (_THIS);
167 
168  /*
169  * Reinitialize the touch devices -- called if an unknown touch ID occurs.
170  */
171  void (*ResetTouch) (_THIS);
172 
173  /* * * */
174  /*
175  * Display functions
176  */
177 
178  /*
179  * Get the bounds of a display
180  */
181  int (*GetDisplayBounds) (_THIS, SDL_VideoDisplay * display, SDL_Rect * rect);
182 
183  /*
184  * Get the dots/pixels-per-inch of a display
185  */
186  int (*GetDisplayDPI) (_THIS, SDL_VideoDisplay * display, float * ddpi, float * hdpi, float * vdpi);
187 
188  /*
189  * Get the usable bounds of a display (bounds minus menubar or whatever)
190  */
191  int (*GetDisplayUsableBounds) (_THIS, SDL_VideoDisplay * display, SDL_Rect * rect);
192 
193  /*
194  * Get a list of the available display modes for a display.
195  */
196  void (*GetDisplayModes) (_THIS, SDL_VideoDisplay * display);
197 
198  /*
199  * Setting the display mode is independent of creating windows, so
200  * when the display mode is changed, all existing windows should have
201  * their data updated accordingly, including the display surfaces
202  * associated with them.
203  */
204  int (*SetDisplayMode) (_THIS, SDL_VideoDisplay * display, SDL_DisplayMode * mode);
205 
206  /* * * */
207  /*
208  * Window functions
209  */
210  int (*CreateSDLWindow) (_THIS, SDL_Window * window);
211  int (*CreateSDLWindowFrom) (_THIS, SDL_Window * window, const void *data);
212  void (*SetWindowTitle) (_THIS, SDL_Window * window);
213  void (*SetWindowIcon) (_THIS, SDL_Window * window, SDL_Surface * icon);
214  void (*SetWindowPosition) (_THIS, SDL_Window * window);
215  void (*SetWindowSize) (_THIS, SDL_Window * window);
216  void (*SetWindowMinimumSize) (_THIS, SDL_Window * window);
217  void (*SetWindowMaximumSize) (_THIS, SDL_Window * window);
218  int (*GetWindowBordersSize) (_THIS, SDL_Window * window, int *top, int *left, int *bottom, int *right);
219  int (*SetWindowOpacity) (_THIS, SDL_Window * window, float opacity);
220  int (*SetWindowModalFor) (_THIS, SDL_Window * modal_window, SDL_Window * parent_window);
221  int (*SetWindowInputFocus) (_THIS, SDL_Window * window);
222  void (*ShowWindow) (_THIS, SDL_Window * window);
223  void (*HideWindow) (_THIS, SDL_Window * window);
224  void (*RaiseWindow) (_THIS, SDL_Window * window);
225  void (*MaximizeWindow) (_THIS, SDL_Window * window);
226  void (*MinimizeWindow) (_THIS, SDL_Window * window);
227  void (*RestoreWindow) (_THIS, SDL_Window * window);
228  void (*SetWindowBordered) (_THIS, SDL_Window * window, SDL_bool bordered);
229  void (*SetWindowResizable) (_THIS, SDL_Window * window, SDL_bool resizable);
230  void (*SetWindowFullscreen) (_THIS, SDL_Window * window, SDL_VideoDisplay * display, SDL_bool fullscreen);
231  int (*SetWindowGammaRamp) (_THIS, SDL_Window * window, const Uint16 * ramp);
232  int (*GetWindowGammaRamp) (_THIS, SDL_Window * window, Uint16 * ramp);
233  void (*SetWindowGrab) (_THIS, SDL_Window * window, SDL_bool grabbed);
234  void (*DestroyWindow) (_THIS, SDL_Window * window);
235  int (*CreateWindowFramebuffer) (_THIS, SDL_Window * window, Uint32 * format, void ** pixels, int *pitch);
236  int (*UpdateWindowFramebuffer) (_THIS, SDL_Window * window, const SDL_Rect * rects, int numrects);
237  void (*DestroyWindowFramebuffer) (_THIS, SDL_Window * window);
238  void (*OnWindowEnter) (_THIS, SDL_Window * window);
239 
240  /* * * */
241  /*
242  * Shaped-window functions
243  */
245 
246  /* Get some platform dependent window information */
247  SDL_bool(*GetWindowWMInfo) (_THIS, SDL_Window * window,
248  struct SDL_SysWMinfo * info);
249 
250  /* * * */
251  /*
252  * OpenGL support
253  */
254  int (*GL_LoadLibrary) (_THIS, const char *path);
255  void *(*GL_GetProcAddress) (_THIS, const char *proc);
256  void (*GL_UnloadLibrary) (_THIS);
257  SDL_GLContext(*GL_CreateContext) (_THIS, SDL_Window * window);
258  int (*GL_MakeCurrent) (_THIS, SDL_Window * window, SDL_GLContext context);
259  void (*GL_GetDrawableSize) (_THIS, SDL_Window * window, int *w, int *h);
260  int (*GL_SetSwapInterval) (_THIS, int interval);
261  int (*GL_GetSwapInterval) (_THIS);
262  int (*GL_SwapWindow) (_THIS, SDL_Window * window);
263  void (*GL_DeleteContext) (_THIS, SDL_GLContext context);
264  void (*GL_DefaultProfileConfig) (_THIS, int *mask, int *major, int *minor);
265 
266  /* * * */
267  /*
268  * Vulkan support
269  */
270  int (*Vulkan_LoadLibrary) (_THIS, const char *path);
271  void (*Vulkan_UnloadLibrary) (_THIS);
272  SDL_bool (*Vulkan_GetInstanceExtensions) (_THIS, SDL_Window *window, unsigned *count, const char **names);
273  SDL_bool (*Vulkan_CreateSurface) (_THIS, SDL_Window *window, VkInstance instance, VkSurfaceKHR *surface);
274  void (*Vulkan_GetDrawableSize) (_THIS, SDL_Window * window, int *w, int *h);
275 
276  /* * * */
277  /*
278  * Event manager functions
279  */
280  void (*PumpEvents) (_THIS);
281 
282  /* Suspend the screensaver */
283  void (*SuspendScreenSaver) (_THIS);
284 
285  /* Text input */
286  void (*StartTextInput) (_THIS);
287  void (*StopTextInput) (_THIS);
288  void (*SetTextInputRect) (_THIS, SDL_Rect *rect);
289 
290  /* Screen keyboard */
291  SDL_bool (*HasScreenKeyboardSupport) (_THIS);
292  void (*ShowScreenKeyboard) (_THIS, SDL_Window *window);
293  void (*HideScreenKeyboard) (_THIS, SDL_Window *window);
294  SDL_bool (*IsScreenKeyboardShown) (_THIS, SDL_Window *window);
295 
296  /* Clipboard */
297  int (*SetClipboardText) (_THIS, const char *text);
298  char * (*GetClipboardText) (_THIS);
299  SDL_bool (*HasClipboardText) (_THIS);
300 
301  /* MessageBox */
302  int (*ShowMessageBox) (_THIS, const SDL_MessageBoxData *messageboxdata, int *buttonid);
303 
304  /* Hit-testing */
305  int (*SetWindowHitTest)(SDL_Window * window, SDL_bool enabled);
306 
307  /* * * */
308  /* Data common to all drivers */
318 
319  /* * * */
320  /* Data used by the GL drivers */
321  struct
322  {
323  int red_size;
335  int stereo;
341  int flags;
347  int no_error;
350  char driver_path[256];
351  void *dll_handle;
352  } gl_config;
353 
354  /* * * */
355  /* Cache current GL context; don't call the OS when it hasn't changed. */
356  /* We have the global pointers here so Cocoa continues to work the way
357  it always has, and the thread-local storage for the general case.
358  */
363 
364  /* * * */
365  /* Data used by the Vulkan drivers */
366  struct
367  {
371  char loader_path[256];
373  } vulkan_config;
374 
375  /* * * */
376  /* Data private to this driver */
377  void *driverdata;
379 
380 #if SDL_VIDEO_OPENGL_EGL
381  struct SDL_EGL_VideoData *egl_data;
382 #endif
383 
384 #if SDL_VIDEO_OPENGL_ES || SDL_VIDEO_OPENGL_ES2
385  struct SDL_PrivateGLESData *gles_data;
386 #endif
387 
388  /* * * */
389  /* The function used to dispose of this structure */
391 };
392 
393 typedef struct VideoBootStrap
394 {
395  const char *name;
396  const char *desc;
397  int (*available) (void);
398  SDL_VideoDevice *(*create) (int devindex);
400 
401 /* Not all of these are available in a given build. Use #ifdefs, etc. */
421 
422 extern SDL_VideoDevice *SDL_GetVideoDevice(void);
423 extern int SDL_AddBasicVideoDisplay(const SDL_DisplayMode * desktop_mode);
424 extern int SDL_AddVideoDisplay(const SDL_VideoDisplay * display);
427 extern void *SDL_GetDisplayDriverData( int displayIndex );
428 
429 extern void SDL_GL_DeduceMaxSupportedESProfile(int* major, int* minor);
430 
432 extern SDL_bool SDL_HasWindows(void);
433 
434 extern void SDL_OnWindowShown(SDL_Window * window);
435 extern void SDL_OnWindowHidden(SDL_Window * window);
436 extern void SDL_OnWindowResized(SDL_Window * window);
438 extern void SDL_OnWindowRestored(SDL_Window * window);
439 extern void SDL_OnWindowEnter(SDL_Window * window);
440 extern void SDL_OnWindowLeave(SDL_Window * window);
443 extern void SDL_UpdateWindowGrab(SDL_Window * window);
444 extern SDL_Window * SDL_GetFocusWindow(void);
445 
446 extern SDL_bool SDL_ShouldAllowTopmost(void);
447 
448 extern float SDL_ComputeDiagonalDPI(int hpix, int vpix, float hinches, float vinches);
449 
450 extern void SDL_OnApplicationWillTerminate(void);
452 extern void SDL_OnApplicationWillResignActive(void);
453 extern void SDL_OnApplicationDidEnterBackground(void);
454 extern void SDL_OnApplicationWillEnterForeground(void);
455 extern void SDL_OnApplicationDidBecomeActive(void);
456 
457 #endif /* SDL_sysvideo_h_ */
458 
459 /* vi: set ts=4 sw=4 expandtab: */
SDL_Window * next
Definition: SDL_sysvideo.h:114
const char * name
Definition: SDL_sysvideo.h:151
void SDL_UpdateWindowGrab(SDL_Window *window)
Definition: SDL_video.c:2427
void SDL_OnApplicationWillTerminate(void)
Definition: SDL_video.c:3925
void SDL_OnApplicationDidEnterBackground(void)
Definition: SDL_video.c:3947
VideoBootStrap X11_bootstrap
SDL_DisplayMode fullscreen_mode
Definition: SDL_sysvideo.h:89
GLdouble GLdouble right
void * hit_test_data
Definition: SDL_sysvideo.h:107
GLint GLint GLint GLint GLint x
Definition: SDL_opengl.h:1574
VideoBootStrap KMSDRM_bootstrap
#define _THIS
Definition: SDL_sysvideo.h:145
GLuint GLuint * names
const char * desc
Definition: SDL_sysvideo.h:396
const void * magic
Definition: SDL_sysvideo.h:75
GLuint GLuint GLsizei count
Definition: SDL_opengl.h:1571
SDL_Rect rect
Definition: testrelative.c:27
VideoBootStrap MIR_bootstrap
SDL_TLSID current_glwin_tls
Definition: SDL_sysvideo.h:361
VideoBootStrap Wayland_bootstrap
static int available()
Definition: video.c:356
SDL_bool hasshape
Definition: SDL_sysvideo.h:52
GLfloat GLfloat GLfloat GLfloat h
SDL_EventEntry * free
Definition: SDL_events.c:84
EGLSurface surface
Definition: eglext.h:248
int SDL_AddBasicVideoDisplay(const SDL_DisplayMode *desktop_mode)
Definition: SDL_video.c:592
A collection of pixels used in software blitting.
Definition: SDL_surface.h:69
void SDL_OnWindowResized(SDL_Window *window)
Definition: SDL_video.c:2501
VideoBootStrap QNX_bootstrap
Definition: video.c:361
static screen_context_t context
Definition: video.c:25
The structure that defines a display mode.
Definition: SDL_video.h:53
SDL_bool is_dropping
Definition: SDL_sysvideo.h:102
VideoBootStrap DirectFB_bootstrap
SDL_HitTestResult(* SDL_HitTest)(SDL_Window *win, const SDL_Point *area, void *data)
Callback used for hit-testing.
Definition: SDL_video.h:1012
GLint GLint bottom
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: SDL_opengl.h:1974
SDL_bool is_destroying
Definition: SDL_sysvideo.h:101
void SDL_OnApplicationDidBecomeActive(void)
Definition: SDL_video.c:3957
VideoBootStrap Emscripten_bootstrap
SDL_bool is_dummy
Definition: SDL_sysvideo.h:309
Uint16 * saved_gamma
Definition: SDL_sysvideo.h:95
uint32_t Uint32
Definition: SDL_stdinc.h:181
void SDL_OnWindowEnter(SDL_Window *window)
Definition: SDL_video.c:2530
GLdouble GLdouble GLdouble GLdouble top
VideoBootStrap NACL_bootstrap
PFN_vkVoidFunction(VKAPI_PTR * PFN_vkGetInstanceProcAddr)(VkInstance instance, const char *pName)
Definition: vulkan.h:2484
SDL_Rect windowed
Definition: SDL_sysvideo.h:87
int SDL_AddVideoDisplay(const SDL_VideoDisplay *display)
Definition: SDL_video.c:606
VideoBootStrap HAIKU_bootstrap
unsigned int SDL_TLSID
Definition: SDL_thread.h:52
struct SDL_GLDriverData * gl_data
Definition: SDL_sysvideo.h:378
void * SDL_GetDisplayDriverData(int displayIndex)
Definition: SDL_video.c:660
void SDL_OnWindowHidden(SDL_Window *window)
Definition: SDL_video.c:2495
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
Definition: SDL_opengl.h:1572
struct SDL_WindowUserData * next
Definition: SDL_sysvideo.h:69
void SDL_OnWindowMinimized(SDL_Window *window)
Definition: SDL_video.c:2508
SDL_VideoDevice * device
Definition: SDL_sysvideo.h:136
float opacity
Definition: SDL_sysvideo.h:91
VideoBootStrap Android_bootstrap
SDL_WindowShapeMode mode
Definition: SDL_sysvideo.h:49
VideoBootStrap VIVANTE_bootstrap
void * SDL_GLContext
An opaque handle to an OpenGL context.
Definition: SDL_video.h:175
VideoBootStrap WINRT_bootstrap
SDL_GLContext current_glctx
Definition: SDL_sysvideo.h:360
void SDL_OnApplicationDidReceiveMemoryWarning(void)
Definition: SDL_video.c:3930
VideoBootStrap WINDOWS_bootstrap
int SDL_RecreateWindow(SDL_Window *window, Uint32 flags)
Definition: SDL_video.c:1542
SDL_WindowShaper * shaper
Definition: SDL_sysvideo.h:104
uint8_t Uint8
Definition: SDL_stdinc.h:157
SDL_Window * window
Definition: SDL_sysvideo.h:43
SDL_Window * SDL_GetFocusWindow(void)
Definition: SDL_video.c:2594
GLenum GLint GLuint mask
SDL_DisplayMode * display_modes
Definition: SDL_sysvideo.h:130
void SDL_GL_DeduceMaxSupportedESProfile(int *major, int *minor)
Definition: SDL_video.c:2942
SDL_DisplayMode current_mode
Definition: SDL_sysvideo.h:132
GLenum mode
GLubyte GLubyte GLubyte GLubyte w
SDL_VideoDisplay * displays
Definition: SDL_sysvideo.h:312
void SDL_OnWindowLeave(SDL_Window *window)
Definition: SDL_video.c:2538
char * title
Definition: SDL_sysvideo.h:77
SDL_Window * windows
Definition: SDL_sysvideo.h:313
GLint GLint GLsizei GLsizei GLsizei GLint GLenum GLenum const GLvoid * pixels
Definition: SDL_opengl.h:1572
int framebuffer_srgb_capable
Definition: SDL_sysvideo.h:346
MessageBox structure containing title, text, window, etc.
VideoBootStrap PSP_bootstrap
float brightness
Definition: SDL_sysvideo.h:93
void SDL_OnApplicationWillResignActive(void)
Definition: SDL_video.c:3935
GLenum GLenum GLsizei const GLuint GLboolean enabled
SDL_Window * fullscreen_window
Definition: SDL_sysvideo.h:134
int share_with_current_context
Definition: SDL_sysvideo.h:343
SDL_bool SDL_ShouldAllowTopmost(void)
Definition: SDL_video.c:3888
VideoBootStrap RPI_bootstrap
SDL_bool
Definition: SDL_stdinc.h:139
SDL_DisplayMode desktop_mode
Definition: SDL_sysvideo.h:131
SDL_HitTest hit_test
Definition: SDL_sysvideo.h:106
Uint32 last_fullscreen_flags
Definition: SDL_sysvideo.h:84
VideoBootStrap DUMMY_bootstrap
GLbitfield flags
static char text[MAX_TEXT_LENGTH]
Definition: testime.c:47
SDL_Surface * icon
Definition: SDL_sysvideo.h:78
SDL_bool SDL_HasWindows(void)
Definition: SDL_video.c:1630
SDL_VideoDisplay * SDL_GetDisplayForWindow(SDL_Window *window)
Definition: SDL_video.c:1073
EGLSurface EGLNativeWindowType * window
Definition: eglext.h:1025
PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties
Definition: SDL_sysvideo.h:369
SDL_Window * prev
Definition: SDL_sysvideo.h:113
SDL_TLSID current_glctx_tls
Definition: SDL_sysvideo.h:362
SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char const char SDL_SCANF_FORMAT_STRING const char return SDL_ThreadFunction const char void return Uint32 return Uint32 void
The type used to identify a window.
Definition: SDL_sysvideo.h:73
Uint32 id
Definition: SDL_sysvideo.h:76
VideoBootStrap PND_bootstrap
VideoBootStrap COCOA_bootstrap
void SDL_OnWindowFocusLost(SDL_Window *window)
Definition: SDL_video.c:2578
PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr
Definition: SDL_sysvideo.h:368
const char * name
Definition: SDL_sysvideo.h:395
uint16_t Uint16
Definition: SDL_stdinc.h:169
SDL_bool SDL_AddDisplayMode(SDL_VideoDisplay *display, const SDL_DisplayMode *mode)
Definition: SDL_video.c:743
SDL_Window * grabbed_window
Definition: SDL_sysvideo.h:314
SDL_VideoDevice * SDL_GetVideoDevice(void)
Definition: SDL_video.c:586
SDL_ShapeDriver shape_driver
Definition: SDL_sysvideo.h:244
SDL_bool suspend_screensaver
Definition: SDL_sysvideo.h:310
union SDL_SysWMinfo::@18 info
void SDL_OnWindowRestored(SDL_Window *window)
Definition: SDL_video.c:2514
void SDL_OnWindowShown(SDL_Window *window)
Definition: SDL_video.c:2489
A struct that tags the SDL_WindowShapeParams union with an enum describing the type of its contents...
Definition: SDL_shape.h:101
GLsizei const GLchar *const * path
VideoBootStrap UIKIT_bootstrap
Uint16 * gamma
Definition: SDL_sysvideo.h:94
void * driverdata
Definition: SDL_sysvideo.h:111
EGLSurface EGLint * rects
Definition: eglext.h:282
SDL_bool surface_valid
Definition: SDL_sysvideo.h:98
Uint32 flags
Definition: SDL_sysvideo.h:83
VkResult(VKAPI_PTR * PFN_vkEnumerateInstanceExtensionProperties)(const char *pLayerName, uint32_t *pPropertyCount, VkExtensionProperties *pProperties)
Definition: vulkan.h:2488
Uint32 next_object_id
Definition: SDL_sysvideo.h:316
SDL_Surface * surface
Definition: SDL_sysvideo.h:97
SDL_Window * current_glwin
Definition: SDL_sysvideo.h:359
void * loader_handle
Definition: SDL_sysvideo.h:372
float SDL_ComputeDiagonalDPI(int hpix, int vpix, float hinches, float vinches)
Definition: SDL_video.c:3911
SDL_WindowUserData * data
Definition: SDL_sysvideo.h:109
A rectangle, with the origin at the upper left.
Definition: SDL_rect.h:64
void SDL_OnApplicationWillEnterForeground(void)
Definition: SDL_video.c:3952
char * clipboard_text
Definition: SDL_sysvideo.h:317
SDL_bool is_hiding
Definition: SDL_sysvideo.h:100
GLint left
void SDL_OnWindowFocusGained(SDL_Window *window)
Definition: SDL_video.c:2543