SDL  2.0
SDL_sysvideo.h
Go to the documentation of this file.
1 /*
2  Simple DirectMedia Layer
3  Copyright (C) 1997-2020 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 #include "SDL_metal.h"
30 
31 #include "SDL_vulkan_internal.h"
32 
33 /* The SDL video driver */
34 
35 typedef struct SDL_WindowShaper SDL_WindowShaper;
36 typedef struct SDL_ShapeDriver SDL_ShapeDriver;
37 typedef struct SDL_VideoDisplay SDL_VideoDisplay;
38 typedef struct SDL_VideoDevice SDL_VideoDevice;
39 
40 /* Define the SDL window-shaper structure */
42 {
43  /* The window associated with the shaper */
45 
46  /* The user's specified coordinates for the window, for once we give it a shape. */
48 
49  /* The parameters for shape calculation. */
51 
52  /* Has this window been assigned a shape? */
54 
55  void *driverdata;
56 };
57 
58 /* Define the SDL shape driver structure */
60 {
61  SDL_WindowShaper *(*CreateShaper)(SDL_Window * window);
64 };
65 
66 typedef struct SDL_WindowUserData
67 {
68  char *name;
69  void *data;
72 
73 /* Define the SDL window structure, corresponding to toplevel windows */
74 struct SDL_Window
75 {
76  const void *magic;
78  char *title;
80  int x, y;
81  int w, h;
82  int min_w, min_h;
83  int max_w, max_h;
86 
87  /* Stored position and size for windowed mode */
89 
91 
92  float opacity;
93 
94  float brightness;
96  Uint16 *saved_gamma; /* (just offset into gamma) */
97 
100 
103  SDL_bool is_dropping; /* drag/drop in progress, expecting SDL_SendDropComplete(). */
104 
106 
109 
111 
112  void *driverdata;
113 
116 };
117 #define FULLSCREEN_VISIBLE(W) \
118  (((W)->flags & SDL_WINDOW_FULLSCREEN) && \
119  ((W)->flags & SDL_WINDOW_SHOWN) && \
120  !((W)->flags & SDL_WINDOW_MINIMIZED))
121 
122 /*
123  * Define the SDL display structure.
124  * This corresponds to physical monitors attached to the system.
125  */
127 {
128  char *name;
135 
137 
139 
140  void *driverdata;
141 };
142 
143 /* Forward declaration */
144 struct SDL_SysWMinfo;
145 
146 /* Define the SDL video driver structure */
147 #define _THIS SDL_VideoDevice *_this
148 
150 {
151  /* * * */
152  /* The name of this video driver */
153  const char *name;
154 
155  /* * * */
156  /* Initialization/Query functions */
157 
158  /*
159  * Initialize the native video subsystem, filling in the list of
160  * displays for this driver, returning 0 or -1 if there's an error.
161  */
163 
164  /*
165  * Reverse the effects VideoInit() -- called if VideoInit() fails or
166  * if the application is shutting down the video subsystem.
167  */
169 
170  /*
171  * Reinitialize the touch devices -- called if an unknown touch ID occurs.
172  */
174 
175  /* * * */
176  /*
177  * Display functions
178  */
179 
180  /*
181  * Get the bounds of a display
182  */
184 
185  /*
186  * Get the usable bounds of a display (bounds minus menubar or whatever)
187  */
189 
190  /*
191  * Get the dots/pixels-per-inch of a display
192  */
193  int (*GetDisplayDPI) (_THIS, SDL_VideoDisplay * display, float * ddpi, float * hdpi, float * vdpi);
194 
195  /*
196  * Get a list of the available display modes for a display.
197  */
199 
200  /*
201  * Setting the display mode is independent of creating windows, so
202  * when the display mode is changed, all existing windows should have
203  * their data updated accordingly, including the display surfaces
204  * associated with them.
205  */
207 
208  /* * * */
209  /*
210  * Window functions
211  */
220  int (*GetWindowBordersSize) (_THIS, SDL_Window * window, int *top, int *left, int *bottom, int *right);
221  int (*SetWindowOpacity) (_THIS, SDL_Window * window, float opacity);
222  int (*SetWindowModalFor) (_THIS, SDL_Window * modal_window, SDL_Window * parent_window);
241 
242  /* * * */
243  /*
244  * Shaped-window functions
245  */
247 
248  /* Get some platform dependent window information */
250  struct SDL_SysWMinfo * info);
251 
252  /* * * */
253  /*
254  * OpenGL support
255  */
256  int (*GL_LoadLibrary) (_THIS, const char *path);
257  void *(*GL_GetProcAddress) (_THIS, const char *proc);
262  int (*GL_SetSwapInterval) (_THIS, int interval);
266  void (*GL_DefaultProfileConfig) (_THIS, int *mask, int *major, int *minor);
267 
268  /* * * */
269  /*
270  * Vulkan support
271  */
272  int (*Vulkan_LoadLibrary) (_THIS, const char *path);
275  SDL_bool (*Vulkan_CreateSurface) (_THIS, SDL_Window *window, VkInstance instance, VkSurfaceKHR *surface);
277 
278  /* * * */
279  /*
280  * Metal support
281  */
284  void *(*Metal_GetLayer) (_THIS, SDL_MetalView view);
286 
287  /* * * */
288  /*
289  * Event manager functions
290  */
292 
293  /* Suspend the screensaver */
295 
296  /* Text input */
300 
301  /* Screen keyboard */
306 
307  /* Clipboard */
308  int (*SetClipboardText) (_THIS, const char *text);
309  char * (*GetClipboardText) (_THIS);
311 
312  /* MessageBox */
313  int (*ShowMessageBox) (_THIS, const SDL_MessageBoxData *messageboxdata, int *buttonid);
314 
315  /* Hit-testing */
317 
318  /* Tell window that app enabled drag'n'drop events */
320 
321  /* * * */
322  /* Data common to all drivers */
332 
333  /* * * */
334  /* Data used by the GL drivers */
335  struct
336  {
337  int red_size;
349  int stereo;
355  int flags;
361  int no_error;
364  char driver_path[256];
365  void *dll_handle;
367 
368  /* * * */
369  /* Cache current GL context; don't call the OS when it hasn't changed. */
370  /* We have the global pointers here so Cocoa continues to work the way
371  it always has, and the thread-local storage for the general case.
372  */
377 
378  /* Flag that stores whether it's allowed to call SDL_GL_MakeCurrent()
379  * with a NULL window, but a non-NULL context. (Not allowed in most cases,
380  * except on EGL under some circumstances.) */
382 
383  /* * * */
384  /* Data used by the Vulkan drivers */
385  struct
386  {
390  char loader_path[256];
393 
394  /* * * */
395  /* Data private to this driver */
396  void *driverdata;
398 
399 #if SDL_VIDEO_OPENGL_EGL
400  struct SDL_EGL_VideoData *egl_data;
401 #endif
402 
403 #if SDL_VIDEO_OPENGL_ES || SDL_VIDEO_OPENGL_ES2
404  struct SDL_PrivateGLESData *gles_data;
405 #endif
406 
407  /* * * */
408  /* The function used to dispose of this structure */
410 };
411 
412 typedef struct VideoBootStrap
413 {
414  const char *name;
415  const char *desc;
416  SDL_VideoDevice *(*create) (int devindex);
418 
419 /* Not all of these are available in a given build. Use #ifdefs, etc. */
442 
443 extern SDL_VideoDevice *SDL_GetVideoDevice(void);
444 extern int SDL_AddBasicVideoDisplay(const SDL_DisplayMode * desktop_mode);
445 extern int SDL_AddVideoDisplay(const SDL_VideoDisplay * display, SDL_bool send_event);
446 extern void SDL_DelVideoDisplay(int index);
448 extern int SDL_GetIndexOfDisplay(SDL_VideoDisplay *display);
449 extern SDL_VideoDisplay *SDL_GetDisplay(int displayIndex);
451 extern void *SDL_GetDisplayDriverData( int displayIndex );
453 
454 extern void SDL_GL_DeduceMaxSupportedESProfile(int* major, int* minor);
455 
457 extern SDL_bool SDL_HasWindows(void);
458 
459 extern void SDL_OnWindowShown(SDL_Window * window);
460 extern void SDL_OnWindowHidden(SDL_Window * window);
461 extern void SDL_OnWindowResized(SDL_Window * window);
463 extern void SDL_OnWindowRestored(SDL_Window * window);
464 extern void SDL_OnWindowEnter(SDL_Window * window);
465 extern void SDL_OnWindowLeave(SDL_Window * window);
468 extern void SDL_UpdateWindowGrab(SDL_Window * window);
469 extern SDL_Window * SDL_GetFocusWindow(void);
470 
471 extern SDL_bool SDL_ShouldAllowTopmost(void);
472 
473 extern float SDL_ComputeDiagonalDPI(int hpix, int vpix, float hinches, float vinches);
474 
475 extern void SDL_ToggleDragAndDropSupport(void);
476 
477 #endif /* SDL_sysvideo_h_ */
478 
479 /* vi: set ts=4 sw=4 expandtab: */
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
void * SDL_MetalView
A handle to a CAMetalLayer-backed NSView (macOS) or UIView (iOS/tvOS).
Definition: SDL_metal.h:44
GLuint GLuint GLsizei count
Definition: SDL_opengl.h:1571
GLint GLint GLsizei GLsizei GLsizei GLint GLenum GLenum const GLvoid * pixels
Definition: SDL_opengl.h:1572
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: SDL_opengl.h:1974
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
Definition: SDL_opengl.h:1572
GLenum GLenum GLsizei const GLuint GLboolean enabled
GLdouble GLdouble GLdouble GLdouble top
GLenum mode
GLuint GLuint * names
GLuint index
GLint left
GLbitfield flags
GLsizei const GLchar *const * path
GLint GLint bottom
GLenum GLint GLuint mask
GLdouble GLdouble right
GLfloat GLfloat GLfloat GLfloat h
GLubyte GLubyte GLubyte GLubyte w
uint16_t Uint16
Definition: SDL_stdinc.h:197
SDL_bool
Definition: SDL_stdinc.h:168
uint8_t Uint8
Definition: SDL_stdinc.h:185
uint32_t Uint32
Definition: SDL_stdinc.h:209
SDL_bool SDL_ShouldAllowTopmost(void)
Definition: SDL_video.c:4139
void SDL_OnWindowLeave(SDL_Window *window)
Definition: SDL_video.c:2747
void SDL_OnWindowMinimized(SDL_Window *window)
Definition: SDL_video.c:2717
SDL_bool SDL_HasWindows(void)
Definition: SDL_video.c:1822
#define _THIS
Definition: SDL_sysvideo.h:147
VideoBootStrap UIKIT_bootstrap
void SDL_OnWindowFocusLost(SDL_Window *window)
Definition: SDL_video.c:2796
VideoBootStrap OS2DIVE_bootstrap
void * SDL_GetDisplayDriverData(int displayIndex)
Definition: SDL_video.c:680
void SDL_OnWindowHidden(SDL_Window *window)
Definition: SDL_video.c:2704
void SDL_OnWindowShown(SDL_Window *window)
Definition: SDL_video.c:2698
void SDL_OnWindowResized(SDL_Window *window)
Definition: SDL_video.c:2710
VideoBootStrap DUMMY_bootstrap
VideoBootStrap DirectFB_bootstrap
void SDL_OnWindowEnter(SDL_Window *window)
Definition: SDL_video.c:2739
void SDL_OnWindowRestored(SDL_Window *window)
Definition: SDL_video.c:2723
VideoBootStrap Android_bootstrap
VideoBootStrap HAIKU_bootstrap
SDL_bool SDL_IsVideoContextExternal(void)
Definition: SDL_video.c:688
SDL_VideoDevice * SDL_GetVideoDevice(void)
Definition: SDL_video.c:587
void SDL_ToggleDragAndDropSupport(void)
Definition: SDL_video.c:1412
SDL_Window * SDL_GetFocusWindow(void)
Definition: SDL_video.c:2812
int SDL_RecreateWindow(SDL_Window *window, Uint32 flags)
Definition: SDL_video.c:1673
VideoBootStrap Wayland_bootstrap
int SDL_AddBasicVideoDisplay(const SDL_DisplayMode *desktop_mode)
Definition: SDL_video.c:593
VideoBootStrap PND_bootstrap
void SDL_UpdateWindowGrab(SDL_Window *window)
Definition: SDL_video.c:2636
VideoBootStrap VIVANTE_bootstrap
VideoBootStrap RPI_bootstrap
VideoBootStrap X11_bootstrap
VideoBootStrap Emscripten_bootstrap
VideoBootStrap NACL_bootstrap
VideoBootStrap COCOA_bootstrap
VideoBootStrap OFFSCREEN_bootstrap
void SDL_DelVideoDisplay(int index)
Definition: SDL_video.c:640
VideoBootStrap QNX_bootstrap
Definition: video.c:355
VideoBootStrap WINRT_bootstrap
VideoBootStrap WINDOWS_bootstrap
VideoBootStrap KMSDRM_LEGACY_bootstrap
int SDL_AddVideoDisplay(const SDL_VideoDisplay *display, SDL_bool send_event)
Definition: SDL_video.c:607
SDL_VideoDisplay * SDL_GetDisplay(int displayIndex)
Definition: SDL_video.c:1062
float SDL_ComputeDiagonalDPI(int hpix, int vpix, float hinches, float vinches)
Definition: SDL_video.c:4162
void SDL_OnWindowFocusGained(SDL_Window *window)
Definition: SDL_video.c:2752
SDL_bool SDL_AddDisplayMode(SDL_VideoDisplay *display, const SDL_DisplayMode *mode)
Definition: SDL_video.c:792
SDL_VideoDisplay * SDL_GetDisplayForWindow(SDL_Window *window)
Definition: SDL_video.c:1130
VideoBootStrap PSP_bootstrap
VideoBootStrap OS2VMAN_bootstrap
int SDL_GetIndexOfDisplay(SDL_VideoDisplay *display)
Definition: SDL_video.c:665
VideoBootStrap KMSDRM_bootstrap
void SDL_GL_DeduceMaxSupportedESProfile(int *major, int *minor)
Definition: SDL_video.c:3162
unsigned int SDL_TLSID
Definition: SDL_thread.h:52
SDL_HitTestResult(* SDL_HitTest)(SDL_Window *win, const SDL_Point *area, void *data)
Callback used for hit-testing.
Definition: SDL_video.h:1045
void * SDL_GLContext
An opaque handle to an OpenGL context.
Definition: SDL_video.h:195
SDL_DisplayOrientation
Definition: SDL_video.h:184
EGLSurface surface
Definition: eglext.h:248
EGLSurface EGLNativeWindowType * window
Definition: eglext.h:1025
EGLSurface EGLint * rects
Definition: eglext.h:282
The structure that defines a display mode.
Definition: SDL_video.h:54
MessageBox structure containing title, text, window, etc.
A rectangle, with the origin at the upper left (integer).
Definition: SDL_rect.h:78
int(* ResizeWindowShape)(SDL_Window *window)
Definition: SDL_sysvideo.h:63
int(* SetWindowShape)(SDL_WindowShaper *shaper, SDL_Surface *shape, SDL_WindowShapeMode *shape_mode)
Definition: SDL_sysvideo.h:62
A collection of pixels used in software blitting.
Definition: SDL_surface.h:71
union SDL_SysWMinfo::@10 info
int(* SetDisplayMode)(_THIS, SDL_VideoDisplay *display, SDL_DisplayMode *mode)
Definition: SDL_sysvideo.h:206
int(* GetDisplayBounds)(_THIS, SDL_VideoDisplay *display, SDL_Rect *rect)
Definition: SDL_sysvideo.h:183
void(* SetWindowIcon)(_THIS, SDL_Window *window, SDL_Surface *icon)
Definition: SDL_sysvideo.h:215
int(* CreateWindowFramebuffer)(_THIS, SDL_Window *window, Uint32 *format, void **pixels, int *pitch)
Definition: SDL_sysvideo.h:237
int framebuffer_srgb_capable
Definition: SDL_sysvideo.h:360
void(* HideScreenKeyboard)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:304
int(* ShowMessageBox)(_THIS, const SDL_MessageBoxData *messageboxdata, int *buttonid)
Definition: SDL_sysvideo.h:313
struct SDL_VideoDevice::@441 vulkan_config
void(* Metal_GetDrawableSize)(_THIS, SDL_Window *window, int *w, int *h)
Definition: SDL_sysvideo.h:285
int(* SetWindowHitTest)(SDL_Window *window, SDL_bool enabled)
Definition: SDL_sysvideo.h:316
char driver_path[256]
Definition: SDL_sysvideo.h:364
void(* GL_DeleteContext)(_THIS, SDL_GLContext context)
Definition: SDL_sysvideo.h:265
const char * name
Definition: SDL_sysvideo.h:153
void(* ShowWindow)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:224
int(* GL_MakeCurrent)(_THIS, SDL_Window *window, SDL_GLContext context)
Definition: SDL_sysvideo.h:260
void(* RestoreWindow)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:229
SDL_GLContext current_glctx
Definition: SDL_sysvideo.h:374
void(* SetWindowFullscreen)(_THIS, SDL_Window *window, SDL_VideoDisplay *display, SDL_bool fullscreen)
Definition: SDL_sysvideo.h:232
void(* Metal_DestroyView)(_THIS, SDL_MetalView view)
Definition: SDL_sysvideo.h:283
int(* GetDisplayUsableBounds)(_THIS, SDL_VideoDisplay *display, SDL_Rect *rect)
Definition: SDL_sysvideo.h:188
struct SDL_VideoDevice::@440 gl_config
void(* SuspendScreenSaver)(_THIS)
Definition: SDL_sysvideo.h:294
int(* Vulkan_LoadLibrary)(_THIS, const char *path)
Definition: SDL_sysvideo.h:272
SDL_bool(* Vulkan_GetInstanceExtensions)(_THIS, SDL_Window *window, unsigned *count, const char **names)
Definition: SDL_sysvideo.h:274
int(* CreateSDLWindow)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:212
SDL_GLContext(* GL_CreateContext)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:259
void(* SetWindowSize)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:217
PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr
Definition: SDL_sysvideo.h:387
int(* SetWindowModalFor)(_THIS, SDL_Window *modal_window, SDL_Window *parent_window)
Definition: SDL_sysvideo.h:222
int(* UpdateWindowFramebuffer)(_THIS, SDL_Window *window, const SDL_Rect *rects, int numrects)
Definition: SDL_sysvideo.h:238
int(* GetDisplayDPI)(_THIS, SDL_VideoDisplay *display, float *ddpi, float *hdpi, float *vdpi)
Definition: SDL_sysvideo.h:193
void(* SetWindowPosition)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:216
int(* GL_SetSwapInterval)(_THIS, int interval)
Definition: SDL_sysvideo.h:262
void(* GL_UnloadLibrary)(_THIS)
Definition: SDL_sysvideo.h:258
void(* SetWindowMinimumSize)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:218
int(* SetWindowGammaRamp)(_THIS, SDL_Window *window, const Uint16 *ramp)
Definition: SDL_sysvideo.h:233
SDL_bool is_dummy
Definition: SDL_sysvideo.h:323
void(* VideoQuit)(_THIS)
Definition: SDL_sysvideo.h:168
SDL_MetalView(* Metal_CreateView)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:282
SDL_bool suspend_screensaver
Definition: SDL_sysvideo.h:324
void(* SetWindowResizable)(_THIS, SDL_Window *window, SDL_bool resizable)
Definition: SDL_sysvideo.h:231
SDL_bool(* HasScreenKeyboardSupport)(_THIS)
Definition: SDL_sysvideo.h:302
void(* Vulkan_UnloadLibrary)(_THIS)
Definition: SDL_sysvideo.h:273
PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties
Definition: SDL_sysvideo.h:388
void(* GetDisplayModes)(_THIS, SDL_VideoDisplay *display)
Definition: SDL_sysvideo.h:198
char loader_path[256]
Definition: SDL_sysvideo.h:390
SDL_bool(* IsScreenKeyboardShown)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:305
void(* ResetTouch)(_THIS)
Definition: SDL_sysvideo.h:173
SDL_TLSID current_glwin_tls
Definition: SDL_sysvideo.h:375
SDL_VideoDisplay * displays
Definition: SDL_sysvideo.h:326
SDL_Window * grabbed_window
Definition: SDL_sysvideo.h:328
void(* free)(_THIS)
Definition: SDL_sysvideo.h:409
void(* Vulkan_GetDrawableSize)(_THIS, SDL_Window *window, int *w, int *h)
Definition: SDL_sysvideo.h:276
int(* GL_GetSwapInterval)(_THIS)
Definition: SDL_sysvideo.h:263
int(* GetWindowGammaRamp)(_THIS, SDL_Window *window, Uint16 *ramp)
Definition: SDL_sysvideo.h:234
int(* GetWindowBordersSize)(_THIS, SDL_Window *window, int *top, int *left, int *bottom, int *right)
Definition: SDL_sysvideo.h:220
void(* GL_GetDrawableSize)(_THIS, SDL_Window *window, int *w, int *h)
Definition: SDL_sysvideo.h:261
void(* DestroyWindow)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:236
void(* StartTextInput)(_THIS)
Definition: SDL_sysvideo.h:297
int(* GL_LoadLibrary)(_THIS, const char *path)
Definition: SDL_sysvideo.h:256
int(* GL_SwapWindow)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:264
SDL_bool(* HasClipboardText)(_THIS)
Definition: SDL_sysvideo.h:310
void(* SetWindowMaximumSize)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:219
void(* SetWindowTitle)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:214
SDL_bool gl_allow_no_surface
Definition: SDL_sysvideo.h:381
int(* SetWindowInputFocus)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:223
void(* DestroyWindowFramebuffer)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:239
void(* GL_DefaultProfileConfig)(_THIS, int *mask, int *major, int *minor)
Definition: SDL_sysvideo.h:266
void(* MinimizeWindow)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:228
int(* VideoInit)(_THIS)
Definition: SDL_sysvideo.h:162
void(* PumpEvents)(_THIS)
Definition: SDL_sysvideo.h:291
int(* SetClipboardText)(_THIS, const char *text)
Definition: SDL_sysvideo.h:308
void(* HideWindow)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:225
SDL_bool(* GetWindowWMInfo)(_THIS, SDL_Window *window, struct SDL_SysWMinfo *info)
Definition: SDL_sysvideo.h:249
void(* SetTextInputRect)(_THIS, SDL_Rect *rect)
Definition: SDL_sysvideo.h:299
SDL_bool(* Vulkan_CreateSurface)(_THIS, SDL_Window *window, VkInstance instance, VkSurfaceKHR *surface)
Definition: SDL_sysvideo.h:275
void(* AcceptDragAndDrop)(SDL_Window *window, SDL_bool accept)
Definition: SDL_sysvideo.h:319
char * clipboard_text
Definition: SDL_sysvideo.h:331
void(* SetWindowGrab)(_THIS, SDL_Window *window, SDL_bool grabbed)
Definition: SDL_sysvideo.h:235
SDL_Window * windows
Definition: SDL_sysvideo.h:327
Uint32 next_object_id
Definition: SDL_sysvideo.h:330
void(* StopTextInput)(_THIS)
Definition: SDL_sysvideo.h:298
struct SDL_GLDriverData * gl_data
Definition: SDL_sysvideo.h:397
int(* CreateSDLWindowFrom)(_THIS, SDL_Window *window, const void *data)
Definition: SDL_sysvideo.h:213
SDL_TLSID current_glctx_tls
Definition: SDL_sysvideo.h:376
SDL_ShapeDriver shape_driver
Definition: SDL_sysvideo.h:246
SDL_Window * current_glwin
Definition: SDL_sysvideo.h:373
void(* MaximizeWindow)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:227
void(* OnWindowEnter)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:240
int(* SetWindowOpacity)(_THIS, SDL_Window *window, float opacity)
Definition: SDL_sysvideo.h:221
void * loader_handle
Definition: SDL_sysvideo.h:391
int share_with_current_context
Definition: SDL_sysvideo.h:357
void(* ShowScreenKeyboard)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:303
void(* SetWindowBordered)(_THIS, SDL_Window *window, SDL_bool bordered)
Definition: SDL_sysvideo.h:230
void(* RaiseWindow)(_THIS, SDL_Window *window)
Definition: SDL_sysvideo.h:226
SDL_DisplayMode desktop_mode
Definition: SDL_sysvideo.h:132
SDL_DisplayOrientation orientation
Definition: SDL_sysvideo.h:134
SDL_VideoDevice * device
Definition: SDL_sysvideo.h:138
SDL_DisplayMode * display_modes
Definition: SDL_sysvideo.h:131
SDL_Window * fullscreen_window
Definition: SDL_sysvideo.h:136
SDL_DisplayMode current_mode
Definition: SDL_sysvideo.h:133
The type used to identify a window.
Definition: SDL_sysvideo.h:75
Uint32 last_fullscreen_flags
Definition: SDL_sysvideo.h:85
float brightness
Definition: SDL_sysvideo.h:94
SDL_Window * next
Definition: SDL_sysvideo.h:115
SDL_Surface * surface
Definition: SDL_sysvideo.h:98
Uint32 flags
Definition: SDL_sysvideo.h:84
Uint16 * gamma
Definition: SDL_sysvideo.h:95
Uint16 * saved_gamma
Definition: SDL_sysvideo.h:96
const void * magic
Definition: SDL_sysvideo.h:76
SDL_bool is_hiding
Definition: SDL_sysvideo.h:101
SDL_WindowUserData * data
Definition: SDL_sysvideo.h:110
void * driverdata
Definition: SDL_sysvideo.h:112
SDL_WindowShaper * shaper
Definition: SDL_sysvideo.h:105
Uint32 id
Definition: SDL_sysvideo.h:77
void * hit_test_data
Definition: SDL_sysvideo.h:108
SDL_bool is_destroying
Definition: SDL_sysvideo.h:102
SDL_bool is_dropping
Definition: SDL_sysvideo.h:103
SDL_Window * prev
Definition: SDL_sysvideo.h:114
SDL_Surface * icon
Definition: SDL_sysvideo.h:79
SDL_HitTest hit_test
Definition: SDL_sysvideo.h:107
SDL_DisplayMode fullscreen_mode
Definition: SDL_sysvideo.h:90
char * title
Definition: SDL_sysvideo.h:78
float opacity
Definition: SDL_sysvideo.h:92
SDL_bool surface_valid
Definition: SDL_sysvideo.h:99
SDL_Rect windowed
Definition: SDL_sysvideo.h:88
A struct that tags the SDL_WindowShapeParams union with an enum describing the type of its contents.
Definition: SDL_shape.h:101
SDL_Window * window
Definition: SDL_sysvideo.h:44
SDL_bool hasshape
Definition: SDL_sysvideo.h:53
SDL_WindowShapeMode mode
Definition: SDL_sysvideo.h:50
struct SDL_WindowUserData * next
Definition: SDL_sysvideo.h:70
const char * name
Definition: SDL_sysvideo.h:414
const char * desc
Definition: SDL_sysvideo.h:415
static char text[MAX_TEXT_LENGTH]
Definition: testime.c:47
SDL_Rect rect
Definition: testrelative.c:27
static screen_context_t context
Definition: video.c:25
typedef int(__stdcall *FARPROC)()
VkResult(VKAPI_PTR * PFN_vkEnumerateInstanceExtensionProperties)(const char *pLayerName, uint32_t *pPropertyCount, VkExtensionProperties *pProperties)
Definition: vulkan_core.h:3121
PFN_vkVoidFunction(VKAPI_PTR * PFN_vkGetInstanceProcAddr)(VkInstance instance, const char *pName)
Definition: vulkan_core.h:3117