src/video/SDL_sysvideo.h
author Sam Lantinga <slouken@libsdl.org>
Wed, 07 Jun 2006 16:10:28 +0000
branchSDL-1.3
changeset 1670 eef792d31de8
parent 1669 9857d21967bb
child 1671 89f7510fe17a
permissions -rw-r--r--
Work in progress. :)
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@0
    28
#define SDL_PROTOTYPES_ONLY
slouken@0
    29
#include "SDL_syswm.h"
slouken@0
    30
#undef SDL_PROTOTYPES_ONLY
slouken@0
    31
slouken@0
    32
/* This file prototypes the video driver implementation.
slouken@0
    33
   This is designed to be easily converted to C++ in the future.
slouken@0
    34
 */
slouken@0
    35
slouken@1361
    36
#if SDL_VIDEO_OPENGL
slouken@1402
    37
#include "SDL_opengl.h"
slouken@1361
    38
#endif /* SDL_VIDEO_OPENGL */
slouken@0
    39
slouken@0
    40
/* The SDL video driver */
slouken@1662
    41
slouken@1670
    42
typedef struct SDL_Window SDL_Window;
slouken@1670
    43
typedef struct SDL_Texture SDL_Texture;
slouken@1670
    44
typedef struct SDL_Renderer SDL_Renderer;
slouken@1670
    45
typedef struct SDL_RenderDriver SDL_RenderDriver;
slouken@1670
    46
typedef struct SDL_VideoDisplay SDL_VideoDisplay;
slouken@1670
    47
typedef struct SDL_VideoDevice SDL_VideoDevice;
slouken@1670
    48
slouken@1670
    49
/* Define the SDL texture structure */
slouken@1670
    50
struct SDL_Texture
slouken@1670
    51
{
slouken@1670
    52
    Uint32 id;
slouken@1670
    53
slouken@1670
    54
    Uint32 format;      /**< The pixel format of the texture */
slouken@1670
    55
    int access;         /**< SDL_TextureAccess */
slouken@1670
    56
    int w;              /**< The width of the texture */
slouken@1670
    57
    int h;              /**< The height of the texture */
slouken@1670
    58
slouken@1670
    59
    SDL_Renderer *renderer;
slouken@1670
    60
slouken@1670
    61
    void *driverdata;   /**< Driver specific texture representation */
slouken@1670
    62
slouken@1670
    63
    SDL_Texture *next;
slouken@1670
    64
};
slouken@1670
    65
slouken@1670
    66
/* Define the SDL renderer structure */
slouken@1670
    67
struct SDL_Renderer
slouken@1670
    68
{
slouken@1670
    69
    int (*CreateTexture) (SDL_Texture * texture);
slouken@1670
    70
    int (*UpdateTexture) (SDL_Texture * texture, SDL_Rect * rect,
slouken@1670
    71
                          const void *pixels, int pitch);
slouken@1670
    72
    int (*LockTexture) (SDL_Texture * texture, SDL_Rect * rect, int markDirty,
slouken@1670
    73
                        void **pixels, int *pitch);
slouken@1670
    74
    void (*UnlockTexture) (SDL_Texture * texture);
slouken@1670
    75
    void (*DirtyTexture) (SDL_Texture * texture, int numrects,
slouken@1670
    76
                          SDL_Rect * rects);
slouken@1670
    77
    void (*SelectRenderTexture) (SDL_Texture * texture);
slouken@1670
    78
    void (*RenderFill) (SDL_Rect * rect, Uint32 color);
slouken@1670
    79
    int (*RenderCopy) (SDL_Texture * texture, SDL_Rect * srcrect,
slouken@1670
    80
                       SDL_Rect * dstrect, int blendMode, int scaleMode);
slouken@1670
    81
    int (*RenderReadPixels) (SDL_Rect * rect, void *pixels, int pitch);
slouken@1670
    82
    int (*RenderWritePixels) (SDL_Rect * rect, const void *pixels, int pitch);
slouken@1670
    83
    void (*RenderPresent) (void);
slouken@1670
    84
    void (*DestroyTexture) (SDL_Texture * texture);
slouken@1670
    85
slouken@1670
    86
    void (*DestroyRenderer) (SDL_Renderer * renderer);
slouken@1670
    87
slouken@1670
    88
    /* The current renderer info */
slouken@1670
    89
    SDL_RendererInfo info;
slouken@1670
    90
slouken@1670
    91
    /* The window associated with the renderer */
slouken@1670
    92
    SDL_Window *window;
slouken@1670
    93
slouken@1670
    94
    void *driverdata;
slouken@1670
    95
};
slouken@1670
    96
slouken@1670
    97
/* Define the SDL render driver structure */
slouken@1670
    98
struct SDL_RenderDriver
slouken@1670
    99
{
slouken@1670
   100
    SDL_Renderer *(*CreateRenderer) (SDL_Window * window, Uint32 flags);
slouken@1670
   101
slouken@1670
   102
    /* Info about the renderer capabilities */
slouken@1670
   103
    SDL_RendererInfo info;
slouken@1670
   104
};
slouken@1670
   105
slouken@1662
   106
/* Define the SDL window structure, corresponding to toplevel windows */
slouken@1662
   107
struct SDL_Window
slouken@1662
   108
{
slouken@1662
   109
    Uint32 id;
slouken@1662
   110
slouken@1662
   111
    char *title;
slouken@1662
   112
    int x, y;
slouken@1662
   113
    int w, h;
slouken@1662
   114
    Uint32 flags;
slouken@1662
   115
slouken@1662
   116
    Uint16 *gamma;
slouken@1662
   117
slouken@1670
   118
    SDL_Renderer *renderer;
slouken@1670
   119
slouken@1662
   120
    void *userdata;
slouken@1662
   121
    void *driverdata;
slouken@1662
   122
};
slouken@1662
   123
slouken@1662
   124
/* Define the SDL display structure
slouken@1662
   125
   This corresponds to physical monitors attached to the system.
slouken@1662
   126
 */
slouken@1670
   127
struct SDL_VideoDisplay
slouken@1662
   128
{
slouken@1662
   129
    int num_display_modes;
slouken@1662
   130
    SDL_DisplayMode *display_modes;
slouken@1662
   131
    SDL_DisplayMode desktop_mode;
slouken@1662
   132
    SDL_DisplayMode current_mode;
slouken@1662
   133
slouken@1670
   134
    int num_render_drivers;
slouken@1670
   135
    SDL_RenderDriver *render_drivers;
slouken@1670
   136
slouken@1662
   137
    int num_windows;
slouken@1662
   138
    SDL_Window *windows;
slouken@1662
   139
slouken@1670
   140
    SDL_Renderer *current_renderer;
slouken@1670
   141
slouken@1670
   142
    /* The hash list of textures */
slouken@1670
   143
    SDL_Texture *textures[64];
slouken@1670
   144
slouken@1662
   145
    void *driverdata;
slouken@1670
   146
};
slouken@0
   147
slouken@0
   148
/* Define the SDL video driver structure */
slouken@0
   149
#define _THIS	SDL_VideoDevice *_this
slouken@0
   150
slouken@1662
   151
struct SDL_VideoDevice
slouken@1662
   152
{
slouken@1662
   153
    /* * * */
slouken@1662
   154
    /* The name of this video driver */
slouken@1662
   155
    const char *name;
slouken@0
   156
slouken@1662
   157
    /* * * */
slouken@1662
   158
    /* Initialization/Query functions */
slouken@0
   159
slouken@1662
   160
    /* Initialize the native video subsystem, filling in the list
slouken@1662
   161
       of displays for this driver, returning 0 or -1 if there's an error.
slouken@1662
   162
     */
slouken@1662
   163
    int (*VideoInit) (_THIS);
slouken@0
   164
slouken@1662
   165
    /* * * */
slouken@1662
   166
    /* Display functions
slouken@1662
   167
     */
slouken@1662
   168
    /* Setting the display mode is independent of creating windows,
slouken@1662
   169
     * so when the display mode is changed, all existing windows
slouken@1662
   170
     * should have their data updated accordingly, including the
slouken@1662
   171
     * display surfaces associated with them.
slouken@1662
   172
     */
slouken@1662
   173
    int (*SetDisplayMode) (_THIS, const SDL_DisplayMode * mode);
slouken@0
   174
slouken@1670
   175
    /* Sets the color entries { firstcolor .. (firstcolor+ncolors-1) }
slouken@1670
   176
       of the physical palette to those in 'colors'.  The return value
slouken@1670
   177
       is 0 if all entries could be set properly or -1 otherwise.
slouken@1670
   178
     */
slouken@1670
   179
    int (*SetDisplayColors) (_THIS, int firstcolor, int ncolors,
slouken@1670
   180
                             SDL_Color * colors);
slouken@1670
   181
slouken@1662
   182
    /* * * */
slouken@1662
   183
    /* Window functions
slouken@1662
   184
     */
slouken@1662
   185
    int (*CreateWindow) (_THIS, SDL_Window * window);
slouken@1662
   186
    int (*CreateWindowFrom) (_THIS, SDL_Window * window, void *data);
slouken@1662
   187
    void (*SetWindowTitle) (_THIS, SDL_Window * window);
slouken@1662
   188
    void (*SetWindowPosition) (_THIS, SDL_Window * window);
slouken@1662
   189
    void (*SetWindowSize) (_THIS, SDL_Window * window);
slouken@1662
   190
    void (*ShowWindow) (_THIS, SDL_Window * window);
slouken@1662
   191
    void (*HideWindow) (_THIS, SDL_Window * window);
slouken@1662
   192
    void (*RaiseWindow) (_THIS, SDL_Window * window);
slouken@1662
   193
    void (*MaximizeWindow) (_THIS, SDL_Window * window);
slouken@1662
   194
    void (*MinimizeWindow) (_THIS, SDL_Window * window);
slouken@1662
   195
    void (*RestoreWindow) (_THIS, SDL_Window * window);
slouken@1662
   196
    void (*SetWindowGrab) (_THIS, SDL_Window * window);
slouken@1662
   197
    void (*DestroyWindow) (_THIS, SDL_Window * window);
slouken@0
   198
slouken@1662
   199
    /* Get some platform dependent window information */
slouken@1668
   200
      SDL_bool(*GetWindowWMInfo) (_THIS, SDL_Window * window,
slouken@1668
   201
                                  SDL_SysWMinfo * info);
slouken@0
   202
slouken@1662
   203
    /* Create a YUV video surface (possibly overlay) of the given
slouken@1662
   204
       format.  The hardware should be able to perform at least 2x
slouken@1662
   205
       scaling on display.
slouken@1662
   206
     */
slouken@1662
   207
    SDL_Overlay *(*CreateYUVOverlay) (_THIS, int width, int height,
slouken@1662
   208
                                      Uint32 format, SDL_Surface * display);
slouken@0
   209
slouken@1662
   210
    /* Reverse the effects VideoInit() -- called if VideoInit() fails
slouken@1662
   211
       or if the application is shutting down the video subsystem.
slouken@1662
   212
     */
slouken@1662
   213
    void (*VideoQuit) (_THIS);
slouken@0
   214
slouken@1662
   215
    /* * * */
slouken@1662
   216
    /* Hardware acceleration functions */
slouken@0
   217
slouken@1662
   218
    /* The pixel format used when SDL_CreateRGBSurface creates SDL_HWSURFACEs with alpha */
slouken@1662
   219
    SDL_PixelFormat *displayformatalphapixel;
slouken@1658
   220
slouken@1662
   221
    /* Allocates a surface in video memory */
slouken@1662
   222
    int (*AllocHWSurface) (_THIS, SDL_Surface * surface);
slouken@0
   223
slouken@1662
   224
    /* Sets the hardware accelerated blit function, if any, based
slouken@1662
   225
       on the current flags of the surface (colorkey, alpha, etc.)
slouken@1662
   226
     */
slouken@1662
   227
    int (*CheckHWBlit) (_THIS, SDL_Surface * src, SDL_Surface * dst);
slouken@0
   228
slouken@1662
   229
    /* Fills a surface rectangle with the given color */
slouken@1662
   230
    int (*FillHWRect) (_THIS, SDL_Surface * dst, SDL_Rect * rect,
slouken@1662
   231
                       Uint32 color);
slouken@0
   232
slouken@1662
   233
    /* Sets video mem colorkey and accelerated blit function */
slouken@1662
   234
    int (*SetHWColorKey) (_THIS, SDL_Surface * surface, Uint32 key);
slouken@0
   235
slouken@1662
   236
    /* Sets per surface hardware alpha value */
slouken@1662
   237
    int (*SetHWAlpha) (_THIS, SDL_Surface * surface, Uint8 value);
slouken@0
   238
slouken@1662
   239
    /* Returns a readable/writable surface */
slouken@1662
   240
    int (*LockHWSurface) (_THIS, SDL_Surface * surface);
slouken@1662
   241
    void (*UnlockHWSurface) (_THIS, SDL_Surface * surface);
slouken@0
   242
slouken@1662
   243
    /* Frees a previously allocated video surface */
slouken@1662
   244
    void (*FreeHWSurface) (_THIS, SDL_Surface * surface);
slouken@0
   245
slouken@1662
   246
    /* * * */
slouken@1662
   247
    /* Gamma support */
slouken@0
   248
slouken@1662
   249
    /* Set the gamma correction directly (emulated with gamma ramps) */
slouken@1662
   250
    int (*SetGamma) (_THIS, float red, float green, float blue);
slouken@0
   251
slouken@1662
   252
    /* Get the gamma correction directly (emulated with gamma ramps) */
slouken@1662
   253
    int (*GetGamma) (_THIS, float *red, float *green, float *blue);
slouken@0
   254
slouken@1662
   255
    /* Set the gamma ramp */
slouken@1662
   256
    int (*SetGammaRamp) (_THIS, Uint16 * ramp);
slouken@0
   257
slouken@1662
   258
    /* Get the gamma ramp */
slouken@1662
   259
    int (*GetGammaRamp) (_THIS, Uint16 * ramp);
slouken@0
   260
slouken@1662
   261
    /* * * */
slouken@1662
   262
    /* OpenGL support */
slouken@0
   263
slouken@1662
   264
    /* Sets the dll to use for OpenGL and loads it */
slouken@1662
   265
    int (*GL_LoadLibrary) (_THIS, const char *path);
slouken@0
   266
slouken@1662
   267
    /* Retrieves the address of a function in the gl library */
slouken@1662
   268
    void *(*GL_GetProcAddress) (_THIS, const char *proc);
slouken@0
   269
slouken@1662
   270
    /* Get attribute information from the windowing system. */
slouken@1662
   271
    int (*GL_GetAttribute) (_THIS, SDL_GLattr attrib, int *value);
slouken@0
   272
slouken@1662
   273
    /* Make the context associated with this driver current */
slouken@1662
   274
    int (*GL_MakeCurrent) (_THIS);
slouken@0
   275
slouken@1662
   276
    /* Swap the current buffers in double buffer mode. */
slouken@1662
   277
    void (*GL_SwapBuffers) (_THIS);
slouken@0
   278
slouken@1662
   279
    /* OpenGL functions for glSDL */
slouken@1361
   280
#if SDL_VIDEO_OPENGL
slouken@1536
   281
#if !defined(__WIN32__)
slouken@0
   282
#define WINAPI
slouken@0
   283
#endif
slouken@0
   284
#define SDL_PROC(ret,func,params) ret (WINAPI *func) params;
slouken@0
   285
#include "SDL_glfuncs.h"
slouken@0
   286
#undef SDL_PROC
slouken@0
   287
slouken@1662
   288
    /* Texture id */
slouken@1662
   289
    GLuint texture;
slouken@1662
   290
slouken@1662
   291
    int is_32bit;
slouken@0
   292
#endif
slouken@0
   293
slouken@1662
   294
    /* * * */
slouken@1662
   295
    /* Cursor manager functions */
slouken@0
   296
slouken@1662
   297
    /* Free a window manager cursor
slouken@1662
   298
       This function can be NULL if CreateWMCursor is also NULL.
slouken@1662
   299
     */
slouken@1670
   300
    void (*FreeCursor) (_THIS, SDL_Cursor * cursor);
slouken@0
   301
slouken@1662
   302
    /* If not NULL, create a black/white window manager cursor */
slouken@1670
   303
    SDL_Cursor *(*CreateCursor) (_THIS,
slouken@1662
   304
                                 Uint8 * data, Uint8 * mask, int w, int h,
slouken@1662
   305
                                 int hot_x, int hot_y);
slouken@0
   306
slouken@1662
   307
    /* Show the specified cursor, or hide if cursor is NULL */
slouken@1670
   308
    int (*ShowCursor) (_THIS, SDL_Cursor * cursor);
slouken@0
   309
slouken@1662
   310
    /* Warp the window manager cursor to (x,y)
slouken@1662
   311
       If NULL, a mouse motion event is posted internally.
slouken@1662
   312
     */
slouken@1670
   313
    void (*WarpCursor) (_THIS, SDL_WindowID windowID, int x, int y);
slouken@0
   314
slouken@1662
   315
    /* If not NULL, this is called when a mouse motion event occurs */
slouken@1670
   316
    void (*MoveCursor) (_THIS, int x, int y);
slouken@0
   317
slouken@1662
   318
    /* Determine whether the mouse should be in relative mode or not.
slouken@1662
   319
       This function is called when the input grab state or cursor
slouken@1662
   320
       visibility state changes.
slouken@1662
   321
       If the cursor is not visible, and the input is grabbed, the
slouken@1662
   322
       driver can place the mouse in relative mode, which may result
slouken@1662
   323
       in higher accuracy sampling of the pointer motion.
slouken@1662
   324
     */
slouken@1662
   325
    void (*CheckMouseMode) (_THIS);
slouken@0
   326
slouken@1662
   327
    /* * * */
slouken@1662
   328
    /* Event manager functions */
slouken@0
   329
slouken@1662
   330
    /* Initialize keyboard mapping for this driver */
slouken@1662
   331
    void (*InitOSKeymap) (_THIS);
slouken@0
   332
slouken@1662
   333
    /* Handle any queued OS events */
slouken@1662
   334
    void (*PumpEvents) (_THIS);
slouken@0
   335
slouken@1662
   336
    /* * * */
slouken@1662
   337
    /* Data common to all drivers */
slouken@1662
   338
    int num_displays;
slouken@1662
   339
    SDL_VideoDisplay *displays;
slouken@1662
   340
    int current_display;
slouken@1670
   341
    Uint32 next_object_id;
slouken@0
   342
slouken@1662
   343
    /* Driver information flags */
slouken@0
   344
slouken@1662
   345
    /* * * */
slouken@1662
   346
    /* Data used by the GL drivers */
slouken@1662
   347
    struct
slouken@1662
   348
    {
slouken@1662
   349
        int red_size;
slouken@1662
   350
        int green_size;
slouken@1662
   351
        int blue_size;
slouken@1662
   352
        int alpha_size;
slouken@1662
   353
        int depth_size;
slouken@1662
   354
        int buffer_size;
slouken@1662
   355
        int stencil_size;
slouken@1662
   356
        int double_buffer;
slouken@1662
   357
        int accum_red_size;
slouken@1662
   358
        int accum_green_size;
slouken@1662
   359
        int accum_blue_size;
slouken@1662
   360
        int accum_alpha_size;
slouken@1662
   361
        int stereo;
slouken@1662
   362
        int multisamplebuffers;
slouken@1662
   363
        int multisamplesamples;
slouken@1662
   364
        int accelerated;
slouken@1662
   365
        int swap_control;
slouken@1662
   366
        int driver_loaded;
slouken@1662
   367
        char driver_path[256];
slouken@1662
   368
        void *dll_handle;
slouken@1662
   369
    } gl_config;
slouken@0
   370
slouken@1662
   371
    /* * * */
slouken@1662
   372
    /* Data private to this driver */
slouken@1662
   373
    struct SDL_PrivateVideoData *hidden;
slouken@1662
   374
    struct SDL_PrivateGLData *gl_data;
slouken@0
   375
slouken@1662
   376
    /* * * */
slouken@1662
   377
    /* The function used to dispose of this structure */
slouken@1662
   378
    void (*free) (_THIS);
slouken@0
   379
};
slouken@0
   380
#undef _THIS
slouken@0
   381
slouken@1662
   382
typedef struct VideoBootStrap
slouken@1662
   383
{
slouken@1662
   384
    const char *name;
slouken@1662
   385
    const char *desc;
slouken@1662
   386
    int (*available) (void);
slouken@1662
   387
    SDL_VideoDevice *(*create) (int devindex);
slouken@0
   388
} VideoBootStrap;
slouken@0
   389
slouken@1361
   390
#if SDL_VIDEO_DRIVER_QUARTZ
slouken@1361
   391
extern VideoBootStrap QZ_bootstrap;
slouken@1361
   392
#endif
slouken@1361
   393
#if SDL_VIDEO_DRIVER_X11
slouken@0
   394
extern VideoBootStrap X11_bootstrap;
slouken@0
   395
#endif
slouken@1361
   396
#if SDL_VIDEO_DRIVER_DGA
slouken@0
   397
extern VideoBootStrap DGA_bootstrap;
slouken@0
   398
#endif
slouken@1361
   399
#if SDL_VIDEO_DRIVER_NANOX
slouken@30
   400
extern VideoBootStrap NX_bootstrap;
slouken@30
   401
#endif
slouken@1361
   402
#if SDL_VIDEO_DRIVER_IPOD
icculus@1140
   403
extern VideoBootStrap iPod_bootstrap;
icculus@1140
   404
#endif
slouken@1361
   405
#if SDL_VIDEO_DRIVER_QTOPIA
slouken@1361
   406
extern VideoBootStrap Qtopia_bootstrap;
slouken@1361
   407
#endif
slouken@1361
   408
#if SDL_VIDEO_DRIVER_WSCONS
slouken@1361
   409
extern VideoBootStrap WSCONS_bootstrap;
slouken@1361
   410
#endif
slouken@1361
   411
#if SDL_VIDEO_DRIVER_FBCON
slouken@0
   412
extern VideoBootStrap FBCON_bootstrap;
slouken@0
   413
#endif
slouken@1361
   414
#if SDL_VIDEO_DRIVER_DIRECTFB
slouken@167
   415
extern VideoBootStrap DirectFB_bootstrap;
slouken@167
   416
#endif
slouken@1361
   417
#if SDL_VIDEO_DRIVER_PS2GS
slouken@0
   418
extern VideoBootStrap PS2GS_bootstrap;
slouken@0
   419
#endif
slouken@1361
   420
#if SDL_VIDEO_DRIVER_GGI
slouken@0
   421
extern VideoBootStrap GGI_bootstrap;
slouken@0
   422
#endif
slouken@1361
   423
#if SDL_VIDEO_DRIVER_VGL
slouken@75
   424
extern VideoBootStrap VGL_bootstrap;
slouken@75
   425
#endif
slouken@1361
   426
#if SDL_VIDEO_DRIVER_SVGALIB
slouken@0
   427
extern VideoBootStrap SVGALIB_bootstrap;
slouken@0
   428
#endif
slouken@1361
   429
#if SDL_VIDEO_DRIVER_GAPI
slouken@1361
   430
extern VideoBootStrap GAPI_bootstrap;
slouken@1361
   431
#endif
slouken@1361
   432
#if SDL_VIDEO_DRIVER_WINDIB
slouken@1361
   433
extern VideoBootStrap WINDIB_bootstrap;
slouken@1361
   434
#endif
slouken@1361
   435
#if SDL_VIDEO_DRIVER_DDRAW
slouken@1361
   436
extern VideoBootStrap DIRECTX_bootstrap;
slouken@1361
   437
#endif
slouken@1361
   438
#if SDL_VIDEO_DRIVER_BWINDOW
slouken@1361
   439
extern VideoBootStrap BWINDOW_bootstrap;
slouken@1361
   440
#endif
slouken@1361
   441
#if SDL_VIDEO_DRIVER_TOOLBOX
slouken@1361
   442
extern VideoBootStrap TOOLBOX_bootstrap;
slouken@1361
   443
#endif
slouken@1361
   444
#if SDL_VIDEO_DRIVER_DRAWSPROCKET
slouken@1361
   445
extern VideoBootStrap DSp_bootstrap;
slouken@1361
   446
#endif
slouken@1361
   447
#if SDL_VIDEO_DRIVER_CYBERGRAPHICS
slouken@1361
   448
extern VideoBootStrap CGX_bootstrap;
slouken@1361
   449
#endif
slouken@1361
   450
#if SDL_VIDEO_DRIVER_PHOTON
slouken@1361
   451
extern VideoBootStrap ph_bootstrap;
slouken@1361
   452
#endif
slouken@1361
   453
#if SDL_VIDEO_DRIVER_EPOC
slouken@1361
   454
extern VideoBootStrap EPOC_bootstrap;
slouken@1361
   455
#endif
slouken@1361
   456
#if SDL_VIDEO_DRIVER_XBIOS
slouken@1361
   457
extern VideoBootStrap XBIOS_bootstrap;
slouken@1361
   458
#endif
slouken@1361
   459
#if SDL_VIDEO_DRIVER_GEM
slouken@1361
   460
extern VideoBootStrap GEM_bootstrap;
slouken@1361
   461
#endif
slouken@1361
   462
#if SDL_VIDEO_DRIVER_PICOGUI
slouken@1361
   463
extern VideoBootStrap PG_bootstrap;
slouken@1361
   464
#endif
slouken@1361
   465
#if SDL_VIDEO_DRIVER_DC
slouken@1361
   466
extern VideoBootStrap DC_bootstrap;
slouken@1361
   467
#endif
slouken@1361
   468
#if SDL_VIDEO_DRIVER_RISCOS
slouken@1361
   469
extern VideoBootStrap RISCOS_bootstrap;
slouken@1361
   470
#endif
slouken@1361
   471
#if SDL_VIDEO_DRIVER_OS2FS
slouken@1361
   472
extern VideoBootStrap OS2FSLib_bootstrap;
slouken@1361
   473
#endif
slouken@1361
   474
#if SDL_VIDEO_DRIVER_AALIB
slouken@0
   475
extern VideoBootStrap AALIB_bootstrap;
slouken@0
   476
#endif
slouken@1361
   477
#if SDL_VIDEO_DRIVER_DUMMY
slouken@173
   478
extern VideoBootStrap DUMMY_bootstrap;
slouken@173
   479
#endif
slouken@1658
   480
#if SDL_VIDEO_DRIVER_GLSDL
slouken@1658
   481
extern VideoBootStrap glSDL_bootstrap;
slouken@1658
   482
#endif
slouken@1361
   483
slouken@1662
   484
#define SDL_CurrentDisplay	(_this->displays[_this->current_display])
slouken@1662
   485
#define SDL_CurrentWindow	(SDL_CurrentDisplay.windows[0])
slouken@0
   486
slouken@1668
   487
extern SDL_VideoDevice *SDL_GetVideoDevice();
slouken@1668
   488
extern void SDL_AddBasicVideoDisplay(const SDL_DisplayMode * desktop_mode);
slouken@1669
   489
extern void SDL_AddVideoDisplay(const SDL_VideoDisplay * display);
slouken@1670
   490
extern void SDL_AddDisplayMode(int displayIndex,
slouken@1670
   491
                               const SDL_DisplayMode * mode);
slouken@1670
   492
extern void SDL_AddRenderDriver(int displayIndex,
slouken@1670
   493
                                const SDL_RenderDriver * driver);
slouken@0
   494
slouken@0
   495
#endif /* _SDL_sysvideo_h */
slouken@1662
   496
slouken@1662
   497
/* vi: set ts=4 sw=4 expandtab: */