SDL  2.0
SDL_sysvideo.h
Go to the documentation of this file.
1 /*
2  Simple DirectMedia Layer
3  Copyright (C) 1997-2017 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);
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  */
167 
168  /*
169  * Reinitialize the touch devices -- called if an unknown touch ID occurs.
170  */
172 
173  /* * * */
174  /*
175  * Display functions
176  */
177 
178  /*
179  * Get the bounds of a display
180  */
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  */
192 
193  /*
194  * Get a list of the available display modes for a display.
195  */
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  */
205 
206  /* * * */
207  /*
208  * Window functions
209  */
211  int (*CreateSDLWindowFrom) (_THIS, SDL_Window * window, const void *data);
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);
231  int (*SetWindowGammaRamp) (_THIS, SDL_Window * window, const Uint16 * ramp);
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);
239 
240  /* * * */
241  /*
242  * Shaped-window functions
243  */
245 
246  /* Get some platform dependent window information */
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);
260  int (*GL_SetSwapInterval) (_THIS, int interval);
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);
273  SDL_bool (*Vulkan_CreateSurface) (_THIS, SDL_Window *window, VkInstance instance, VkSurfaceKHR *surface);
275 
276  /* * * */
277  /*
278  * Event manager functions
279  */
281 
282  /* Suspend the screensaver */
284 
285  /* Text input */
289 
290  /* Screen keyboard */
295 
296  /* Clipboard */
297  int (*SetClipboardText) (_THIS, const char *text);
298  char * (*GetClipboardText) (_THIS);
300 
301  /* MessageBox */
302  int (*ShowMessageBox) (_THIS, const SDL_MessageBoxData *messageboxdata, int *buttonid);
303 
304  /* Hit-testing */
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: */
void(* SetWindowMaximumSize)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:217
void(* GetDisplayModes)(_THIS, SDL_VideoDisplay *display)
Definition: SDL_sysvideo.h:196
SDL_Window * next
Definition: SDL_sysvideo.h:114
const char * name
Definition: SDL_sysvideo.h:151
void(* MinimizeWindow)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:226
void SDL_UpdateWindowGrab(SDL_Window *window)
Definition: SDL_video.c:2427
void SDL_OnApplicationWillTerminate(void)
Definition: SDL_video.c:3925
int(* UpdateWindowFramebuffer)(_THIS, SDL_Window *window, const SDL_Rect *rects, int numrects)
Definition: SDL_sysvideo.h:236
SDL_bool(* GetWindowWMInfo)(_THIS, SDL_Window *window, struct SDL_SysWMinfo *info)
Definition: SDL_sysvideo.h:247
SDL_bool(* IsScreenKeyboardShown)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:294
void(* RaiseWindow)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:224
void SDL_OnApplicationDidEnterBackground(void)
Definition: SDL_video.c:3947
VideoBootStrap X11_bootstrap
int(* SetClipboardText)(_THIS, const char *text)
Definition: SDL_sysvideo.h:297
SDL_DisplayMode fullscreen_mode
Definition: SDL_sysvideo.h:89
GLdouble GLdouble right
void * hit_test_data
Definition: SDL_sysvideo.h:107
int(* GetDisplayDPI)(_THIS, SDL_VideoDisplay *display, float *ddpi, float *hdpi, float *vdpi)
Definition: SDL_sysvideo.h:186
VideoBootStrap KMSDRM_bootstrap
void(* HideWindow)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:223
#define _THIS
Definition: SDL_sysvideo.h:145
int(* GL_MakeCurrent)(_THIS, SDL_Window *window, SDL_GLContext context)
Definition: SDL_sysvideo.h:258
GLuint GLuint * names
int(* SetWindowModalFor)(_THIS, SDL_Window *modal_window, SDL_Window *parent_window)
Definition: SDL_sysvideo.h:220
int(* GetWindowGammaRamp)(_THIS, SDL_Window *window, Uint16 *ramp)
Definition: SDL_sysvideo.h:232
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
void(* StopTextInput)(_THIS)
Definition: SDL_sysvideo.h:287
int(* GetDisplayBounds)(_THIS, SDL_VideoDisplay *display, SDL_Rect *rect)
Definition: SDL_sysvideo.h:181
SDL_bool hasshape
Definition: SDL_sysvideo.h:52
GLfloat GLfloat GLfloat GLfloat h
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
void(* GL_DefaultProfileConfig)(_THIS, int *mask, int *major, int *minor)
Definition: SDL_sysvideo.h:264
int(* SetWindowInputFocus)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:221
void(* SetWindowGrab)(_THIS, SDL_Window *window, SDL_bool grabbed)
Definition: SDL_sysvideo.h:233
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
int(* GetDisplayUsableBounds)(_THIS, SDL_VideoDisplay *display, SDL_Rect *rect)
Definition: SDL_sysvideo.h:191
void(* SetWindowIcon)(_THIS, SDL_Window *window, SDL_Surface *icon)
Definition: SDL_sysvideo.h:213
GLint GLint bottom
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: SDL_opengl.h:1974
SDL_bool(* HasScreenKeyboardSupport)(_THIS)
Definition: SDL_sysvideo.h:291
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(* ResetTouch)(_THIS)
Definition: SDL_sysvideo.h:171
SDL_bool(* Vulkan_CreateSurface)(_THIS, SDL_Window *window, VkInstance instance, VkSurfaceKHR *surface)
Definition: SDL_sysvideo.h:273
void SDL_OnWindowEnter(SDL_Window *window)
Definition: SDL_video.c:2530
int(* Vulkan_LoadLibrary)(_THIS, const char *path)
Definition: SDL_sysvideo.h:270
struct SDL_VideoDevice::@32 vulkan_config
GLdouble GLdouble GLdouble GLdouble top
VideoBootStrap NACL_bootstrap
SDL_Rect windowed
Definition: SDL_sysvideo.h:87
struct SDL_VideoDevice::@31 gl_config
void(* HideScreenKeyboard)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:293
int SDL_AddVideoDisplay(const SDL_VideoDisplay *display)
Definition: SDL_video.c:606
void(* free)(_THIS)
Definition: SDL_sysvideo.h:390
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
int(* GL_SetSwapInterval)(_THIS, int interval)
Definition: SDL_sysvideo.h:260
SDL_HitTestResult(* SDL_HitTest)(SDL_Window *win, const SDL_Point *area, void *data)
Callback used for hit-testing.
Definition: SDL_video.h:1010
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
Definition: SDL_opengl.h:1572
char loader_path[256]
Definition: SDL_sysvideo.h:371
void(* DestroyWindowFramebuffer)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:237
void(* GL_UnloadLibrary)(_THIS)
Definition: SDL_sysvideo.h:256
int(* CreateSDLWindowFrom)(_THIS, SDL_Window *window, const void *data)
Definition: SDL_sysvideo.h:211
struct SDL_WindowUserData * next
Definition: SDL_sysvideo.h:69
void SDL_OnWindowMinimized(SDL_Window *window)
Definition: SDL_video.c:2508
void(* GL_GetDrawableSize)(_THIS, SDL_Window *window, int *w, int *h)
Definition: SDL_sysvideo.h:259
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:173
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(* CreateSDLWindow)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:210
void * vkGetInstanceProcAddr
Definition: SDL_sysvideo.h:368
int(* ShowMessageBox)(_THIS, const SDL_MessageBoxData *messageboxdata, int *buttonid)
Definition: SDL_sysvideo.h:302
int SDL_RecreateWindow(SDL_Window *window, Uint32 flags)
Definition: SDL_video.c:1542
int(* SetWindowShape)(SDL_WindowShaper *shaper, SDL_Surface *shape, SDL_WindowShapeMode *shape_mode)
Definition: SDL_sysvideo.h:61
int(* VideoInit)(_THIS)
Definition: SDL_sysvideo.h:160
SDL_WindowShaper * shaper
Definition: SDL_sysvideo.h:104
uint8_t Uint8
Definition: SDL_stdinc.h:157
SDL_Window * window
Definition: SDL_sysvideo.h:43
void(* Vulkan_UnloadLibrary)(_THIS)
Definition: SDL_sysvideo.h:271
SDL_Window * SDL_GetFocusWindow(void)
Definition: SDL_video.c:2594
void(* SetWindowResizable)(_THIS, SDL_Window *window, SDL_bool resizable)
Definition: SDL_sysvideo.h:229
char driver_path[256]
Definition: SDL_sysvideo.h:350
int(* SetWindowGammaRamp)(_THIS, SDL_Window *window, const Uint16 *ramp)
Definition: SDL_sysvideo.h:231
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
void(* SetWindowPosition)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:214
SDL_Window * windows
Definition: SDL_sysvideo.h:313
GLint GLint GLsizei GLsizei GLsizei GLint GLenum GLenum const GLvoid * pixels
Definition: SDL_opengl.h:1572
void(* PumpEvents)(_THIS)
Definition: SDL_sysvideo.h:280
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
void(* SetWindowMinimumSize)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:216
int share_with_current_context
Definition: SDL_sysvideo.h:343
void(* SuspendScreenSaver)(_THIS)
Definition: SDL_sysvideo.h:283
int(* GL_GetSwapInterval)(_THIS)
Definition: SDL_sysvideo.h:261
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
void(* GL_DeleteContext)(_THIS, SDL_GLContext context)
Definition: SDL_sysvideo.h:263
void(* MaximizeWindow)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:225
Uint32 last_fullscreen_flags
Definition: SDL_sysvideo.h:84
VideoBootStrap DUMMY_bootstrap
void(* DestroyWindow)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:234
GLbitfield flags
int(* GL_SwapWindow)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:262
static char text[MAX_TEXT_LENGTH]
Definition: testime.c:47
void(* SetTextInputRect)(_THIS, SDL_Rect *rect)
Definition: SDL_sysvideo.h:288
void(* SetWindowSize)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:215
SDL_Surface * icon
Definition: SDL_sysvideo.h:78
SDL_bool SDL_HasWindows(void)
Definition: SDL_video.c:1630
int(* SetDisplayMode)(_THIS, SDL_VideoDisplay *display, SDL_DisplayMode *mode)
Definition: SDL_sysvideo.h:204
SDL_VideoDisplay * SDL_GetDisplayForWindow(SDL_Window *window)
Definition: SDL_video.c:1073
EGLSurface EGLNativeWindowType * window
Definition: eglext.h:1025
int(* available)(void)
Definition: SDL_sysvideo.h:397
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
SDL_GLContext(* GL_CreateContext)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:257
Uint32 id
Definition: SDL_sysvideo.h:76
SDL_bool(* Vulkan_GetInstanceExtensions)(_THIS, SDL_Window *window, unsigned *count, const char **names)
Definition: SDL_sysvideo.h:272
VideoBootStrap PND_bootstrap
VideoBootStrap COCOA_bootstrap
void(* Vulkan_GetDrawableSize)(_THIS, SDL_Window *window, int *w, int *h)
Definition: SDL_sysvideo.h:274
int(* GL_LoadLibrary)(_THIS, const char *path)
Definition: SDL_sysvideo.h:254
void SDL_OnWindowFocusLost(SDL_Window *window)
Definition: SDL_video.c:2578
int(* GetWindowBordersSize)(_THIS, SDL_Window *window, int *top, int *left, int *bottom, int *right)
Definition: SDL_sysvideo.h:218
const char * name
Definition: SDL_sysvideo.h:395
void(* VideoQuit)(_THIS)
Definition: SDL_sysvideo.h:166
void(* ShowWindow)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:222
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
int(* CreateWindowFramebuffer)(_THIS, SDL_Window *window, Uint32 *format, void **pixels, int *pitch)
Definition: SDL_sysvideo.h:235
SDL_bool suspend_screensaver
Definition: SDL_sysvideo.h:310
union SDL_SysWMinfo::@18 info
SDL_bool(* HasClipboardText)(_THIS)
Definition: SDL_sysvideo.h:299
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
void(* SetWindowTitle)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:212
void(* SetWindowBordered)(_THIS, SDL_Window *window, SDL_bool bordered)
Definition: SDL_sysvideo.h:228
void * vkEnumerateInstanceExtensionProperties
Definition: SDL_sysvideo.h:369
void(* StartTextInput)(_THIS)
Definition: SDL_sysvideo.h:286
EGLSurface EGLint * rects
Definition: eglext.h:282
void(* SetWindowFullscreen)(_THIS, SDL_Window *window, SDL_VideoDisplay *display, SDL_bool fullscreen)
Definition: SDL_sysvideo.h:230
void(* OnWindowEnter)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:238
SDL_bool surface_valid
Definition: SDL_sysvideo.h:98
Uint32 flags
Definition: SDL_sysvideo.h:83
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
int(* ResizeWindowShape)(SDL_Window *window)
Definition: SDL_sysvideo.h:62
A rectangle, with the origin at the upper left.
Definition: SDL_rect.h:64
void(* ShowScreenKeyboard)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:292
void SDL_OnApplicationWillEnterForeground(void)
Definition: SDL_video.c:3952
void(* RestoreWindow)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:227
int(* SetWindowHitTest)(SDL_Window *window, SDL_bool enabled)
Definition: SDL_sysvideo.h:305
char * clipboard_text
Definition: SDL_sysvideo.h:317
SDL_bool is_hiding
Definition: SDL_sysvideo.h:100
GLint left
int(* SetWindowOpacity)(_THIS, SDL_Window *window, float opacity)
Definition: SDL_sysvideo.h:219
void SDL_OnWindowFocusGained(SDL_Window *window)
Definition: SDL_video.c:2543