src/video/SDL_sysvideo.h
author Holmes Futrell <hfutrell@umail.ucsb.edu>
Tue, 02 Sep 2008 19:53:56 +0000
changeset 2742 b86247d21929
parent 2735 204be4fc2726
child 2753 0969758c8809
permissions -rw-r--r--
Added retained backing attribute, reference to UIKit renderer
slouken@0
     1
/*
slouken@0
     2
    SDL - Simple DirectMedia Layer
slouken@1312
     3
    Copyright (C) 1997-2006 Sam Lantinga
slouken@0
     4
slouken@0
     5
    This library is free software; you can redistribute it and/or
slouken@1312
     6
    modify it under the terms of the GNU Lesser General Public
slouken@0
     7
    License as published by the Free Software Foundation; either
slouken@1312
     8
    version 2.1 of the License, or (at your option) any later version.
slouken@0
     9
slouken@0
    10
    This library is distributed in the hope that it will be useful,
slouken@0
    11
    but WITHOUT ANY WARRANTY; without even the implied warranty of
slouken@0
    12
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
slouken@1312
    13
    Lesser General Public License for more details.
slouken@0
    14
slouken@1312
    15
    You should have received a copy of the GNU Lesser General Public
slouken@1312
    16
    License along with this library; if not, write to the Free Software
slouken@1312
    17
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
slouken@0
    18
slouken@0
    19
    Sam Lantinga
slouken@252
    20
    slouken@libsdl.org
slouken@0
    21
*/
slouken@1402
    22
#include "SDL_config.h"
slouken@0
    23
slouken@0
    24
#ifndef _SDL_sysvideo_h
slouken@0
    25
#define _SDL_sysvideo_h
slouken@0
    26
slouken@0
    27
#include "SDL_mouse.h"
slouken@2268
    28
#include "SDL_keysym.h"
slouken@0
    29
slouken@0
    30
/* The SDL video driver */
slouken@1895
    31
slouken@1895
    32
typedef struct SDL_Window SDL_Window;
slouken@1895
    33
typedef struct SDL_Texture SDL_Texture;
slouken@1895
    34
typedef struct SDL_Renderer SDL_Renderer;
slouken@1895
    35
typedef struct SDL_RenderDriver SDL_RenderDriver;
slouken@1895
    36
typedef struct SDL_VideoDisplay SDL_VideoDisplay;
slouken@0
    37
typedef struct SDL_VideoDevice SDL_VideoDevice;
slouken@0
    38
slouken@1895
    39
/* Define the SDL texture structure */
hfutrell@2742
    40
struct SDL_Texture {
hfutrell@2742
    41
	Uint32          id;
slouken@1895
    42
hfutrell@2742
    43
	Uint32          format;	/**< The pixel format of the texture */
hfutrell@2742
    44
	int             access;	/**< SDL_TextureAccess */
hfutrell@2742
    45
	int             w;	/**< The width of the texture */
hfutrell@2742
    46
	int             h;	/**< The height of the texture */
hfutrell@2742
    47
	int             modMode;/**< The texture modulation mode */
hfutrell@2742
    48
	int             blendMode;	/**< The texture blend mode */
hfutrell@2742
    49
	int             scaleMode;	/**< The texture scale mode */
hfutrell@2742
    50
	Uint8           r, g, b, a;	/**< Texture modulation values */
slouken@1895
    51
hfutrell@2742
    52
	SDL_Renderer   *renderer;
slouken@1895
    53
hfutrell@2742
    54
	void           *driverdata;	/**< Driver specific texture representation */
slouken@1895
    55
hfutrell@2742
    56
	SDL_Texture    *next;
slouken@1895
    57
};
slouken@1895
    58
slouken@1895
    59
/* Define the SDL renderer structure */
hfutrell@2742
    60
struct SDL_Renderer {
hfutrell@2742
    61
	int             (*ActivateRenderer) (SDL_Renderer * renderer);
hfutrell@2742
    62
	int             (*DisplayModeChanged) (SDL_Renderer * renderer);
hfutrell@2742
    63
	int             (*CreateTexture) (SDL_Renderer * renderer, SDL_Texture * texture);
hfutrell@2742
    64
	int             (*QueryTexturePixels) (SDL_Renderer * renderer, SDL_Texture * texture,
hfutrell@2742
    65
				                 void **pixels, int *pitch);
hfutrell@2742
    66
	int             (*SetTexturePalette) (SDL_Renderer * renderer, SDL_Texture * texture,
hfutrell@2742
    67
		                   const SDL_Color * colors, int firstcolor,
hfutrell@2742
    68
					                      int ncolors);
hfutrell@2742
    69
	int             (*GetTexturePalette) (SDL_Renderer * renderer, SDL_Texture * texture,
hfutrell@2742
    70
			                 SDL_Color * colors, int firstcolor,
hfutrell@2742
    71
					                      int ncolors);
hfutrell@2742
    72
	int             (*SetTextureColorMod) (SDL_Renderer * renderer,
hfutrell@2742
    73
				                     SDL_Texture * texture);
hfutrell@2742
    74
	int             (*SetTextureAlphaMod) (SDL_Renderer * renderer,
hfutrell@2742
    75
				                     SDL_Texture * texture);
hfutrell@2742
    76
	int             (*SetTextureBlendMode) (SDL_Renderer * renderer,
hfutrell@2742
    77
				                     SDL_Texture * texture);
hfutrell@2742
    78
	int             (*SetTextureScaleMode) (SDL_Renderer * renderer,
hfutrell@2742
    79
				                     SDL_Texture * texture);
hfutrell@2742
    80
	int             (*UpdateTexture) (SDL_Renderer * renderer, SDL_Texture * texture,
hfutrell@2742
    81
		                  const SDL_Rect * rect, const void *pixels,
hfutrell@2742
    82
					                  int pitch);
hfutrell@2742
    83
	int             (*LockTexture) (SDL_Renderer * renderer, SDL_Texture * texture,
hfutrell@2742
    84
	                const SDL_Rect * rect, int markDirty, void **pixels,
hfutrell@2742
    85
					                int *pitch);
hfutrell@2742
    86
	void            (*UnlockTexture) (SDL_Renderer * renderer, SDL_Texture * texture);
hfutrell@2742
    87
	void            (*DirtyTexture) (SDL_Renderer * renderer, SDL_Texture * texture,
hfutrell@2742
    88
		                      int numrects, const SDL_Rect * rects);
hfutrell@2742
    89
	int             (*RenderFill) (SDL_Renderer * renderer, Uint8 r, Uint8 g, Uint8 b,
hfutrell@2742
    90
			                    Uint8 a, const SDL_Rect * rect);
hfutrell@2742
    91
	int             (*RenderCopy) (SDL_Renderer * renderer, SDL_Texture * texture,
hfutrell@2742
    92
	                const SDL_Rect * srcrect, const SDL_Rect * dstrect);
hfutrell@2742
    93
	void            (*RenderPresent) (SDL_Renderer * renderer);
hfutrell@2742
    94
	void            (*DestroyTexture) (SDL_Renderer * renderer, SDL_Texture * texture);
slouken@1895
    95
hfutrell@2742
    96
	void            (*DestroyRenderer) (SDL_Renderer * renderer);
slouken@1895
    97
hfutrell@2742
    98
	/* The current renderer info */
hfutrell@2742
    99
	SDL_RendererInfo info;
slouken@1895
   100
hfutrell@2742
   101
	/* The window associated with the renderer */
hfutrell@2742
   102
	SDL_WindowID    window;
slouken@1895
   103
hfutrell@2742
   104
	void           *driverdata;
slouken@1895
   105
};
slouken@1895
   106
slouken@1895
   107
/* Define the SDL render driver structure */
hfutrell@2742
   108
struct SDL_RenderDriver {
hfutrell@2742
   109
	SDL_Renderer   *(*CreateRenderer) (SDL_Window * window, Uint32 flags);
slouken@1895
   110
hfutrell@2742
   111
	/* Info about the renderer capabilities */
hfutrell@2742
   112
	SDL_RendererInfo info;
slouken@1895
   113
};
slouken@1895
   114
slouken@1895
   115
/* Define the SDL window structure, corresponding to toplevel windows */
hfutrell@2742
   116
struct SDL_Window {
hfutrell@2742
   117
	Uint32          id;
slouken@1895
   118
hfutrell@2742
   119
	char           *title;
hfutrell@2742
   120
	int             x, y;
hfutrell@2742
   121
	int             w, h;
hfutrell@2742
   122
	Uint32          flags;
slouken@1895
   123
hfutrell@2742
   124
	int             display;
hfutrell@2742
   125
	SDL_Renderer   *renderer;
slouken@1895
   126
hfutrell@2742
   127
	void           *userdata;
hfutrell@2742
   128
	void           *driverdata;
slouken@1895
   129
};
slouken@1895
   130
#define FULLSCREEN_VISIBLE(W) \
slouken@1895
   131
    (((W)->flags & SDL_WINDOW_FULLSCREEN) && \
slouken@1895
   132
     ((W)->flags & SDL_WINDOW_SHOWN) && \
slouken@1895
   133
     !((W)->flags & SDL_WINDOW_MINIMIZED))
slouken@1895
   134
hfutrell@2742
   135
/*
hfutrell@2742
   136
 * Define the SDL display structure This corresponds to physical monitors
hfutrell@2742
   137
 * attached to the system.
slouken@1895
   138
 */
hfutrell@2742
   139
struct SDL_VideoDisplay {
hfutrell@2742
   140
	int             max_display_modes;
hfutrell@2742
   141
	int             num_display_modes;
hfutrell@2742
   142
	SDL_DisplayMode *display_modes;
hfutrell@2742
   143
	SDL_DisplayMode desktop_mode;
hfutrell@2742
   144
	SDL_DisplayMode current_mode;
hfutrell@2742
   145
	SDL_DisplayMode fullscreen_mode;
hfutrell@2742
   146
	SDL_Palette    *palette;
slouken@1895
   147
hfutrell@2742
   148
	Uint16         *gamma;
hfutrell@2742
   149
	Uint16         *saved_gamma;	/* (just offset into gamma) */
slouken@1895
   150
hfutrell@2742
   151
	int             num_render_drivers;
hfutrell@2742
   152
	SDL_RenderDriver *render_drivers;
slouken@1895
   153
hfutrell@2742
   154
	int             num_windows;
hfutrell@2742
   155
	SDL_Window     *windows;
slouken@1895
   156
hfutrell@2742
   157
	SDL_Renderer   *current_renderer;
slouken@1895
   158
hfutrell@2742
   159
	/* The hash list of textures */
hfutrell@2742
   160
	SDL_Texture    *textures[64];
slouken@1895
   161
hfutrell@2742
   162
	SDL_VideoDevice *device;
slouken@1895
   163
hfutrell@2742
   164
	void           *driverdata;
slouken@1895
   165
};
slouken@1895
   166
slouken@0
   167
/* Define the SDL video driver structure */
slouken@0
   168
#define _THIS	SDL_VideoDevice *_this
slouken@0
   169
hfutrell@2742
   170
struct SDL_VideoDevice {
hfutrell@2742
   171
	/* * * */
hfutrell@2742
   172
	/* The name of this video driver */
hfutrell@2742
   173
	const char     *name;
slouken@0
   174
hfutrell@2742
   175
	/* * * */
hfutrell@2742
   176
	/* Initialization/Query functions */
slouken@0
   177
hfutrell@2742
   178
	/*
hfutrell@2742
   179
	 * Initialize the native video subsystem, filling in the list of
hfutrell@2742
   180
	 * displays for this driver, returning 0 or -1 if there's an error.
hfutrell@2742
   181
	 */
hfutrell@2742
   182
	int             (*VideoInit) (_THIS);
slouken@0
   183
hfutrell@2742
   184
	/*
hfutrell@2742
   185
	 * Reverse the effects VideoInit() -- called if VideoInit() fails or
hfutrell@2742
   186
	 * if the application is shutting down the video subsystem.
hfutrell@2742
   187
	 */
hfutrell@2742
   188
	void            (*VideoQuit) (_THIS);
slouken@1913
   189
hfutrell@2742
   190
	/* * * */
hfutrell@2742
   191
	/*
hfutrell@2742
   192
	 * Display functions
hfutrell@2742
   193
	 */
slouken@0
   194
hfutrell@2742
   195
	/*
hfutrell@2742
   196
	 * Get a list of the available display modes. e.g.
hfutrell@2742
   197
	 * SDL_AddDisplayMode(_this->current_display, mode)
hfutrell@2742
   198
	 */
hfutrell@2742
   199
	void            (*GetDisplayModes) (_THIS);
slouken@0
   200
hfutrell@2742
   201
	/*
hfutrell@2742
   202
	 * Setting the display mode is independent of creating windows, so
hfutrell@2742
   203
	 * when the display mode is changed, all existing windows should have
hfutrell@2742
   204
	 * their data updated accordingly, including the display surfaces
hfutrell@2742
   205
	 * associated with them.
hfutrell@2742
   206
	 */
hfutrell@2742
   207
	int             (*SetDisplayMode) (_THIS, SDL_DisplayMode * mode);
slouken@0
   208
hfutrell@2742
   209
	/* Set the color entries of the display palette */
hfutrell@2742
   210
	int             (*SetDisplayPalette) (_THIS, SDL_Palette * palette);
slouken@0
   211
hfutrell@2742
   212
	/* Get the color entries of the display palette */
hfutrell@2742
   213
	int             (*GetDisplayPalette) (_THIS, SDL_Palette * palette);
slouken@0
   214
hfutrell@2742
   215
	/* Set the gamma ramp */
hfutrell@2742
   216
	int             (*SetDisplayGammaRamp) (_THIS, Uint16 * ramp);
slouken@0
   217
hfutrell@2742
   218
	/* Get the gamma ramp */
hfutrell@2742
   219
	int             (*GetDisplayGammaRamp) (_THIS, Uint16 * ramp);
slouken@0
   220
hfutrell@2742
   221
	/* * * */
hfutrell@2742
   222
	/*
hfutrell@2742
   223
	 * Window functions
hfutrell@2742
   224
	 */
hfutrell@2742
   225
	int             (*CreateWindow) (_THIS, SDL_Window * window);
hfutrell@2742
   226
	int             (*CreateWindowFrom) (_THIS, SDL_Window * window, const void *data);
hfutrell@2742
   227
	void            (*SetWindowTitle) (_THIS, SDL_Window * window);
hfutrell@2742
   228
	void            (*SetWindowPosition) (_THIS, SDL_Window * window);
hfutrell@2742
   229
	void            (*SetWindowSize) (_THIS, SDL_Window * window);
hfutrell@2742
   230
	void            (*ShowWindow) (_THIS, SDL_Window * window);
hfutrell@2742
   231
	void            (*HideWindow) (_THIS, SDL_Window * window);
hfutrell@2742
   232
	void            (*RaiseWindow) (_THIS, SDL_Window * window);
hfutrell@2742
   233
	void            (*MaximizeWindow) (_THIS, SDL_Window * window);
hfutrell@2742
   234
	void            (*MinimizeWindow) (_THIS, SDL_Window * window);
hfutrell@2742
   235
	void            (*RestoreWindow) (_THIS, SDL_Window * window);
hfutrell@2742
   236
	void            (*SetWindowGrab) (_THIS, SDL_Window * window);
hfutrell@2742
   237
	void            (*DestroyWindow) (_THIS, SDL_Window * window);
slouken@0
   238
hfutrell@2742
   239
	/* Get some platform dependent window information */
hfutrell@2742
   240
	                SDL_bool(*GetWindowWMInfo) (_THIS, SDL_Window * window,
hfutrell@2742
   241
			                       struct SDL_SysWMinfo * info);
slouken@0
   242
hfutrell@2742
   243
	/* * * */
hfutrell@2742
   244
	/*
hfutrell@2742
   245
	 * OpenGL support
hfutrell@2742
   246
	 */
hfutrell@2742
   247
	int             (*GL_LoadLibrary) (_THIS, const char *path);
hfutrell@2742
   248
	void           *(*GL_GetProcAddress) (_THIS, const char *proc);
hfutrell@2742
   249
	                SDL_GLContext(*GL_CreateContext) (_THIS, SDL_Window * window);
hfutrell@2742
   250
	int             (*GL_MakeCurrent) (_THIS, SDL_Window * window, SDL_GLContext context);
hfutrell@2742
   251
	int             (*GL_SetSwapInterval) (_THIS, int interval);
hfutrell@2742
   252
	int             (*GL_GetSwapInterval) (_THIS);
hfutrell@2742
   253
	void            (*GL_SwapWindow) (_THIS, SDL_Window * window);
hfutrell@2742
   254
	void            (*GL_DeleteContext) (_THIS, SDL_GLContext context);
slouken@0
   255
hfutrell@2742
   256
	/* * * */
hfutrell@2742
   257
	/*
hfutrell@2742
   258
	 * Event manager functions
hfutrell@2742
   259
	 */
hfutrell@2742
   260
	void            (*PumpEvents) (_THIS);
slouken@0
   261
hfutrell@2742
   262
	/* * * */
hfutrell@2742
   263
	/* Data common to all drivers */
hfutrell@2742
   264
	int             num_displays;
hfutrell@2742
   265
	SDL_VideoDisplay *displays;
hfutrell@2742
   266
	int             current_display;
hfutrell@2742
   267
	Uint32          next_object_id;
slouken@0
   268
hfutrell@2742
   269
	/* * * */
hfutrell@2742
   270
	/* Data used by the GL drivers */
hfutrell@2742
   271
	struct {
hfutrell@2742
   272
		int             red_size;
hfutrell@2742
   273
		int             green_size;
hfutrell@2742
   274
		int             blue_size;
hfutrell@2742
   275
		int             alpha_size;
hfutrell@2742
   276
		int             depth_size;
hfutrell@2742
   277
		int             buffer_size;
hfutrell@2742
   278
		int             stencil_size;
hfutrell@2742
   279
		int             double_buffer;
hfutrell@2742
   280
		int             accum_red_size;
hfutrell@2742
   281
		int             accum_green_size;
hfutrell@2742
   282
		int             accum_blue_size;
hfutrell@2742
   283
		int             accum_alpha_size;
hfutrell@2742
   284
		int             stereo;
hfutrell@2742
   285
		int             multisamplebuffers;
hfutrell@2742
   286
		int             multisamplesamples;
hfutrell@2742
   287
		int             accelerated;
hfutrell@2742
   288
		int             retained_backing;
hfutrell@2742
   289
		int             driver_loaded;
hfutrell@2742
   290
		char            driver_path[256];
hfutrell@2742
   291
		void           *dll_handle;
hfutrell@2742
   292
	}               gl_config;
slouken@0
   293
hfutrell@2742
   294
	/* * * */
hfutrell@2742
   295
	/* Data private to this driver */
hfutrell@2742
   296
	void           *driverdata;
hfutrell@2742
   297
	struct SDL_GLDriverData *gl_data;
slouken@0
   298
hfutrell@2742
   299
	/* * * */
hfutrell@2742
   300
	/* The function used to dispose of this structure */
hfutrell@2742
   301
	void            (*free) (_THIS);
slouken@1895
   302
};
slouken@0
   303
hfutrell@2742
   304
typedef struct VideoBootStrap {
hfutrell@2742
   305
	const char     *name;
hfutrell@2742
   306
	const char     *desc;
hfutrell@2742
   307
	int             (*available) (void);
hfutrell@2742
   308
	SDL_VideoDevice *(*create) (int devindex);
hfutrell@2742
   309
}               VideoBootStrap;
slouken@0
   310
slouken@1931
   311
#if SDL_VIDEO_DRIVER_COCOA
slouken@1931
   312
extern VideoBootStrap COCOA_bootstrap;
slouken@1361
   313
#endif
slouken@1361
   314
#if SDL_VIDEO_DRIVER_X11
slouken@0
   315
extern VideoBootStrap X11_bootstrap;
slouken@0
   316
#endif
slouken@1361
   317
#if SDL_VIDEO_DRIVER_NANOX
slouken@30
   318
extern VideoBootStrap NX_bootstrap;
slouken@30
   319
#endif
slouken@1361
   320
#if SDL_VIDEO_DRIVER_IPOD
icculus@1140
   321
extern VideoBootStrap iPod_bootstrap;
icculus@1140
   322
#endif
slouken@1361
   323
#if SDL_VIDEO_DRIVER_WSCONS
slouken@1361
   324
extern VideoBootStrap WSCONS_bootstrap;
slouken@1361
   325
#endif
slouken@1361
   326
#if SDL_VIDEO_DRIVER_FBCON
slouken@0
   327
extern VideoBootStrap FBCON_bootstrap;
slouken@0
   328
#endif
slouken@1361
   329
#if SDL_VIDEO_DRIVER_DIRECTFB
slouken@167
   330
extern VideoBootStrap DirectFB_bootstrap;
slouken@167
   331
#endif
slouken@1361
   332
#if SDL_VIDEO_DRIVER_PS2GS
slouken@0
   333
extern VideoBootStrap PS2GS_bootstrap;
slouken@0
   334
#endif
slouken@1361
   335
#if SDL_VIDEO_DRIVER_VGL
slouken@75
   336
extern VideoBootStrap VGL_bootstrap;
slouken@75
   337
#endif
slouken@1361
   338
#if SDL_VIDEO_DRIVER_SVGALIB
slouken@0
   339
extern VideoBootStrap SVGALIB_bootstrap;
slouken@0
   340
#endif
slouken@1361
   341
#if SDL_VIDEO_DRIVER_GAPI
slouken@1361
   342
extern VideoBootStrap GAPI_bootstrap;
slouken@1361
   343
#endif
slouken@1895
   344
#if SDL_VIDEO_DRIVER_WIN32
slouken@1895
   345
extern VideoBootStrap WIN32_bootstrap;
slouken@1361
   346
#endif
slouken@1361
   347
#if SDL_VIDEO_DRIVER_BWINDOW
slouken@1361
   348
extern VideoBootStrap BWINDOW_bootstrap;
slouken@1361
   349
#endif
slouken@1361
   350
#if SDL_VIDEO_DRIVER_PHOTON
slouken@1361
   351
extern VideoBootStrap ph_bootstrap;
slouken@1361
   352
#endif
slouken@1361
   353
#if SDL_VIDEO_DRIVER_EPOC
slouken@1361
   354
extern VideoBootStrap EPOC_bootstrap;
slouken@1361
   355
#endif
slouken@1361
   356
#if SDL_VIDEO_DRIVER_XBIOS
slouken@1361
   357
extern VideoBootStrap XBIOS_bootstrap;
slouken@1361
   358
#endif
slouken@1361
   359
#if SDL_VIDEO_DRIVER_GEM
slouken@1361
   360
extern VideoBootStrap GEM_bootstrap;
slouken@1361
   361
#endif
slouken@1361
   362
#if SDL_VIDEO_DRIVER_DC
slouken@1361
   363
extern VideoBootStrap DC_bootstrap;
slouken@1361
   364
#endif
slouken@1361
   365
#if SDL_VIDEO_DRIVER_RISCOS
slouken@1361
   366
extern VideoBootStrap RISCOS_bootstrap;
slouken@1361
   367
#endif
slouken@1361
   368
#if SDL_VIDEO_DRIVER_OS2FS
slouken@1361
   369
extern VideoBootStrap OS2FSLib_bootstrap;
slouken@1361
   370
#endif
hfutrell@2742
   371
#if SDL_VIDEO_DRIVER_UIKIT
hfutrell@2742
   372
extern VideoBootStrap UIKIT_bootstrap;
hfutrell@2742
   373
#endif
slouken@1361
   374
#if SDL_VIDEO_DRIVER_DUMMY
slouken@173
   375
extern VideoBootStrap DUMMY_bootstrap;
slouken@173
   376
#endif
slouken@2735
   377
#if SDL_VIDEO_DRIVER_NDS
slouken@2735
   378
extern VideoBootStrap NDS_bootstrap;
slouken@2735
   379
#endif
slouken@1361
   380
slouken@1895
   381
#define SDL_CurrentDisplay	(_this->displays[_this->current_display])
slouken@0
   382
slouken@1895
   383
extern SDL_VideoDevice *SDL_GetVideoDevice();
hfutrell@2742
   384
extern int      SDL_AddBasicVideoDisplay(const SDL_DisplayMode * desktop_mode);
hfutrell@2742
   385
extern int      SDL_AddVideoDisplay(const SDL_VideoDisplay * display);
hfutrell@2742
   386
extern SDL_bool 
hfutrell@2742
   387
SDL_AddDisplayMode(int displayIndex,
hfutrell@2742
   388
		   const SDL_DisplayMode * mode);
hfutrell@2742
   389
extern void 
hfutrell@2742
   390
SDL_AddRenderDriver(int displayIndex,
hfutrell@2742
   391
		    const SDL_RenderDriver * driver);
slouken@1895
   392
hfutrell@2742
   393
extern int      SDL_RecreateWindow(SDL_Window * window, Uint32 flags);
slouken@1895
   394
extern SDL_Window *SDL_GetWindowFromID(SDL_WindowID windowID);
slouken@1895
   395
extern SDL_VideoDisplay *SDL_GetDisplayFromWindow(SDL_Window * window);
slouken@1895
   396
hfutrell@2742
   397
extern void     SDL_OnWindowShown(SDL_Window * window);
hfutrell@2742
   398
extern void     SDL_OnWindowHidden(SDL_Window * window);
hfutrell@2742
   399
extern void     SDL_OnWindowResized(SDL_Window * window);
hfutrell@2742
   400
extern void     SDL_OnWindowFocusGained(SDL_Window * window);
hfutrell@2742
   401
extern void     SDL_OnWindowFocusLost(SDL_Window * window);
slouken@1895
   402
extern SDL_WindowID SDL_GetFocusWindow(void);
slouken@0
   403
hfutrell@2742
   404
#endif				/* _SDL_sysvideo_h */
slouken@1895
   405
slouken@1895
   406
/* vi: set ts=4 sw=4 expandtab: */