src/video/SDL_sysvideo.h
author Sam Lantinga <slouken@libsdl.org>
Wed, 07 Jul 2010 23:54:03 -0700
changeset 4495 dbbfdb9ea716
parent 4472 791b3256fb22
child 4569 e1664f94f026
child 4755 436183eb30c8
permissions -rw-r--r--
Simplified clipboard API for sanity's sake.

A complete clipboard implementation would support multiple formats that could be queried at runtime, events for when the clipboard contents changed, support for HTML, images, etc. We're not going that crazy, at least for now. :)
slouken@0
     1
/*
slouken@0
     2
    SDL - Simple DirectMedia Layer
slouken@3697
     3
    Copyright (C) 1997-2010 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_Renderer SDL_Renderer;
slouken@1895
    33
typedef struct SDL_RenderDriver SDL_RenderDriver;
slouken@1895
    34
typedef struct SDL_VideoDisplay SDL_VideoDisplay;
slouken@0
    35
typedef struct SDL_VideoDevice SDL_VideoDevice;
slouken@0
    36
slouken@1895
    37
/* Define the SDL texture structure */
slouken@2753
    38
struct SDL_Texture
slouken@2753
    39
{
slouken@3695
    40
    const void *magic;
slouken@2753
    41
    Uint32 format;              /**< The pixel format of the texture */
slouken@2753
    42
    int access;                 /**< SDL_TextureAccess */
slouken@2753
    43
    int w;                      /**< The width of the texture */
slouken@2753
    44
    int h;                      /**< The height of the texture */
slouken@2753
    45
    int modMode;                /**< The texture modulation mode */
slouken@3685
    46
    int blendMode;              /**< The texture blend mode */
slouken@3685
    47
    int scaleMode;              /**< The texture scale mode */
slouken@3685
    48
    Uint8 r, g, b, a;           /**< Texture modulation values */
slouken@1895
    49
slouken@2753
    50
    SDL_Renderer *renderer;
slouken@1895
    51
slouken@3685
    52
    void *driverdata;           /**< Driver specific texture representation */
slouken@1895
    53
slouken@3685
    54
    SDL_Texture *prev;
slouken@2753
    55
    SDL_Texture *next;
slouken@1895
    56
};
slouken@1895
    57
slouken@1895
    58
/* Define the SDL renderer structure */
slouken@2753
    59
struct SDL_Renderer
slouken@2753
    60
{
slouken@2753
    61
    int (*ActivateRenderer) (SDL_Renderer * renderer);
slouken@2753
    62
    int (*DisplayModeChanged) (SDL_Renderer * renderer);
slouken@2753
    63
    int (*CreateTexture) (SDL_Renderer * renderer, SDL_Texture * texture);
slouken@2753
    64
    int (*QueryTexturePixels) (SDL_Renderer * renderer, SDL_Texture * texture,
slouken@2753
    65
                               void **pixels, int *pitch);
slouken@2753
    66
    int (*SetTexturePalette) (SDL_Renderer * renderer, SDL_Texture * texture,
slouken@2753
    67
                              const SDL_Color * colors, int firstcolor,
slouken@2753
    68
                              int ncolors);
slouken@2753
    69
    int (*GetTexturePalette) (SDL_Renderer * renderer, SDL_Texture * texture,
slouken@2753
    70
                              SDL_Color * colors, int firstcolor,
slouken@2753
    71
                              int ncolors);
slouken@2753
    72
    int (*SetTextureColorMod) (SDL_Renderer * renderer,
slouken@2753
    73
                               SDL_Texture * texture);
slouken@2753
    74
    int (*SetTextureAlphaMod) (SDL_Renderer * renderer,
slouken@2753
    75
                               SDL_Texture * texture);
slouken@2753
    76
    int (*SetTextureBlendMode) (SDL_Renderer * renderer,
slouken@2753
    77
                                SDL_Texture * texture);
slouken@2753
    78
    int (*SetTextureScaleMode) (SDL_Renderer * renderer,
slouken@2753
    79
                                SDL_Texture * texture);
slouken@2753
    80
    int (*UpdateTexture) (SDL_Renderer * renderer, SDL_Texture * texture,
slouken@2753
    81
                          const SDL_Rect * rect, const void *pixels,
slouken@2753
    82
                          int pitch);
slouken@2753
    83
    int (*LockTexture) (SDL_Renderer * renderer, SDL_Texture * texture,
slouken@2753
    84
                        const SDL_Rect * rect, int markDirty, void **pixels,
slouken@2753
    85
                        int *pitch);
slouken@2753
    86
    void (*UnlockTexture) (SDL_Renderer * renderer, SDL_Texture * texture);
slouken@2753
    87
    void (*DirtyTexture) (SDL_Renderer * renderer, SDL_Texture * texture,
slouken@2753
    88
                          int numrects, const SDL_Rect * rects);
slouken@2884
    89
    int (*SetDrawColor) (SDL_Renderer * renderer);
slouken@2884
    90
    int (*SetDrawBlendMode) (SDL_Renderer * renderer);
slouken@3596
    91
    int (*RenderClear) (SDL_Renderer * renderer);
slouken@3596
    92
    int (*RenderDrawPoints) (SDL_Renderer * renderer, const SDL_Point * points,
slouken@3596
    93
                             int count);
slouken@3596
    94
    int (*RenderDrawLines) (SDL_Renderer * renderer, const SDL_Point * points,
slouken@3596
    95
                            int count);
slouken@3596
    96
    int (*RenderDrawRects) (SDL_Renderer * renderer, const SDL_Rect ** rects,
slouken@3596
    97
                            int count);
slouken@3596
    98
    int (*RenderFillRects) (SDL_Renderer * renderer, const SDL_Rect ** rects,
slouken@3596
    99
                            int count);
slouken@3596
   100
    int (*RenderDrawEllipse) (SDL_Renderer * renderer, int x, int y,
slouken@3596
   101
                              int w, int h);
slouken@3596
   102
    int (*RenderFillEllipse) (SDL_Renderer * renderer, int x, int y,
slouken@3596
   103
                              int w, int h);
slouken@2753
   104
    int (*RenderCopy) (SDL_Renderer * renderer, SDL_Texture * texture,
slouken@2753
   105
                       const SDL_Rect * srcrect, const SDL_Rect * dstrect);
slouken@3427
   106
    int (*RenderReadPixels) (SDL_Renderer * renderer, const SDL_Rect * rect,
slouken@3435
   107
                             Uint32 format, void * pixels, int pitch);
slouken@3427
   108
    int (*RenderWritePixels) (SDL_Renderer * renderer, const SDL_Rect * rect,
slouken@3435
   109
                              Uint32 format, const void * pixels, int pitch);
slouken@2753
   110
    void (*RenderPresent) (SDL_Renderer * renderer);
slouken@2753
   111
    void (*DestroyTexture) (SDL_Renderer * renderer, SDL_Texture * texture);
slouken@1895
   112
slouken@2753
   113
    void (*DestroyRenderer) (SDL_Renderer * renderer);
slouken@1895
   114
slouken@2753
   115
    /* The current renderer info */
slouken@2753
   116
    SDL_RendererInfo info;
slouken@1895
   117
slouken@2753
   118
    /* The window associated with the renderer */
slouken@3685
   119
    SDL_Window *window;
slouken@3685
   120
slouken@3685
   121
    /* The list of textures */
slouken@3685
   122
    SDL_Texture *textures;
slouken@1895
   123
slouken@2884
   124
    Uint8 r, g, b, a;                   /**< Color for drawing operations values */
slouken@2884
   125
    int blendMode;                      /**< The drawing blend mode */
slouken@2884
   126
slouken@2753
   127
    void *driverdata;
slouken@1895
   128
};
slouken@1895
   129
slouken@1895
   130
/* Define the SDL render driver structure */
slouken@2753
   131
struct SDL_RenderDriver
slouken@2753
   132
{
slouken@2753
   133
    SDL_Renderer *(*CreateRenderer) (SDL_Window * window, Uint32 flags);
slouken@1895
   134
slouken@2753
   135
    /* Info about the renderer capabilities */
slouken@2753
   136
    SDL_RendererInfo info;
slouken@1895
   137
};
slouken@1895
   138
slouken@1895
   139
/* Define the SDL window structure, corresponding to toplevel windows */
slouken@2753
   140
struct SDL_Window
slouken@2753
   141
{
slouken@3695
   142
    const void *magic;
slouken@2753
   143
    Uint32 id;
slouken@2753
   144
    char *title;
slouken@2753
   145
    int x, y;
slouken@2753
   146
    int w, h;
slouken@2753
   147
    Uint32 flags;
slouken@1895
   148
slouken@3685
   149
    SDL_VideoDisplay *display;
slouken@2753
   150
    SDL_Renderer *renderer;
slouken@1895
   151
slouken@3500
   152
    SDL_DisplayMode fullscreen_mode;
slouken@3500
   153
slouken@2753
   154
    void *userdata;
slouken@2753
   155
    void *driverdata;
slouken@3685
   156
slouken@3685
   157
    SDL_Window *prev;
slouken@3685
   158
    SDL_Window *next;
slouken@1895
   159
};
slouken@1895
   160
#define FULLSCREEN_VISIBLE(W) \
slouken@1895
   161
    (((W)->flags & SDL_WINDOW_FULLSCREEN) && \
slouken@1895
   162
     ((W)->flags & SDL_WINDOW_SHOWN) && \
slouken@1895
   163
     !((W)->flags & SDL_WINDOW_MINIMIZED))
slouken@1895
   164
hfutrell@2742
   165
/*
hfutrell@2742
   166
 * Define the SDL display structure This corresponds to physical monitors
hfutrell@2742
   167
 * attached to the system.
slouken@1895
   168
 */
slouken@2753
   169
struct SDL_VideoDisplay
slouken@2753
   170
{
slouken@2753
   171
    int max_display_modes;
slouken@2753
   172
    int num_display_modes;
slouken@2753
   173
    SDL_DisplayMode *display_modes;
slouken@2753
   174
    SDL_DisplayMode desktop_mode;
slouken@2753
   175
    SDL_DisplayMode current_mode;
slouken@3502
   176
    SDL_bool updating_fullscreen;
slouken@2753
   177
    SDL_Palette *palette;
slouken@1895
   178
slouken@2753
   179
    Uint16 *gamma;
slouken@2753
   180
    Uint16 *saved_gamma;        /* (just offset into gamma) */
slouken@1895
   181
slouken@2753
   182
    int num_render_drivers;
slouken@2753
   183
    SDL_RenderDriver *render_drivers;
slouken@1895
   184
slouken@2753
   185
    SDL_Window *windows;
slouken@3517
   186
    SDL_Window *fullscreen_window;
slouken@1895
   187
slouken@2753
   188
    SDL_Renderer *current_renderer;
slouken@1895
   189
slouken@2753
   190
    SDL_VideoDevice *device;
slouken@1895
   191
slouken@2753
   192
    void *driverdata;
slouken@1895
   193
};
slouken@1895
   194
slouken@0
   195
/* Define the SDL video driver structure */
slouken@0
   196
#define _THIS	SDL_VideoDevice *_this
slouken@0
   197
slouken@2753
   198
struct SDL_VideoDevice
slouken@2753
   199
{
slouken@2753
   200
    /* * * */
slouken@2753
   201
    /* The name of this video driver */
slouken@2753
   202
    const char *name;
slouken@0
   203
slouken@2753
   204
    /* * * */
slouken@2753
   205
    /* Initialization/Query functions */
slouken@0
   206
slouken@2753
   207
    /*
slouken@2753
   208
     * Initialize the native video subsystem, filling in the list of
slouken@2753
   209
     * displays for this driver, returning 0 or -1 if there's an error.
slouken@2753
   210
     */
slouken@2753
   211
    int (*VideoInit) (_THIS);
slouken@0
   212
slouken@2753
   213
    /*
slouken@2753
   214
     * Reverse the effects VideoInit() -- called if VideoInit() fails or
slouken@2753
   215
     * if the application is shutting down the video subsystem.
slouken@2753
   216
     */
slouken@2753
   217
    void (*VideoQuit) (_THIS);
slouken@1913
   218
slouken@2753
   219
    /* * * */
slouken@2753
   220
    /*
slouken@2753
   221
     * Display functions
slouken@2753
   222
     */
slouken@0
   223
slouken@2753
   224
    /*
slouken@3528
   225
     * Get the bounds of a display
slouken@3528
   226
     */
slouken@3528
   227
    int (*GetDisplayBounds) (_THIS, SDL_VideoDisplay * display, SDL_Rect * rect);
slouken@3528
   228
slouken@3528
   229
    /*
slouken@2753
   230
     * Get a list of the available display modes. e.g.
slouken@2753
   231
     * SDL_AddDisplayMode(_this->current_display, mode)
slouken@2753
   232
     */
slouken@3500
   233
    void (*GetDisplayModes) (_THIS, SDL_VideoDisplay * display);
slouken@0
   234
slouken@2753
   235
    /*
slouken@2753
   236
     * Setting the display mode is independent of creating windows, so
slouken@2753
   237
     * when the display mode is changed, all existing windows should have
slouken@2753
   238
     * their data updated accordingly, including the display surfaces
slouken@2753
   239
     * associated with them.
slouken@2753
   240
     */
slouken@3500
   241
    int (*SetDisplayMode) (_THIS, SDL_VideoDisplay * display, SDL_DisplayMode * mode);
slouken@0
   242
slouken@2753
   243
    /* Set the color entries of the display palette */
slouken@3500
   244
    int (*SetDisplayPalette) (_THIS, SDL_VideoDisplay * display, SDL_Palette * palette);
slouken@0
   245
slouken@2753
   246
    /* Get the color entries of the display palette */
slouken@3500
   247
    int (*GetDisplayPalette) (_THIS, SDL_VideoDisplay * display, SDL_Palette * palette);
slouken@0
   248
slouken@2753
   249
    /* Set the gamma ramp */
slouken@3500
   250
    int (*SetDisplayGammaRamp) (_THIS, SDL_VideoDisplay * display, Uint16 * ramp);
slouken@0
   251
slouken@2753
   252
    /* Get the gamma ramp */
slouken@3500
   253
    int (*GetDisplayGammaRamp) (_THIS, SDL_VideoDisplay * display, Uint16 * ramp);
slouken@0
   254
slouken@2753
   255
    /* * * */
slouken@2753
   256
    /*
slouken@2753
   257
     * Window functions
slouken@2753
   258
     */
slouken@2753
   259
    int (*CreateWindow) (_THIS, SDL_Window * window);
slouken@2753
   260
    int (*CreateWindowFrom) (_THIS, SDL_Window * window, const void *data);
slouken@2753
   261
    void (*SetWindowTitle) (_THIS, SDL_Window * window);
slouken@2967
   262
    void (*SetWindowIcon) (_THIS, SDL_Window * window, SDL_Surface * icon);
slouken@2753
   263
    void (*SetWindowPosition) (_THIS, SDL_Window * window);
slouken@2753
   264
    void (*SetWindowSize) (_THIS, SDL_Window * window);
slouken@2753
   265
    void (*ShowWindow) (_THIS, SDL_Window * window);
slouken@2753
   266
    void (*HideWindow) (_THIS, SDL_Window * window);
slouken@2753
   267
    void (*RaiseWindow) (_THIS, SDL_Window * window);
slouken@2753
   268
    void (*MaximizeWindow) (_THIS, SDL_Window * window);
slouken@2753
   269
    void (*MinimizeWindow) (_THIS, SDL_Window * window);
slouken@2753
   270
    void (*RestoreWindow) (_THIS, SDL_Window * window);
slouken@2753
   271
    void (*SetWindowGrab) (_THIS, SDL_Window * window);
slouken@2753
   272
    void (*DestroyWindow) (_THIS, SDL_Window * window);
slouken@0
   273
slouken@2753
   274
    /* Get some platform dependent window information */
slouken@2753
   275
      SDL_bool(*GetWindowWMInfo) (_THIS, SDL_Window * window,
slouken@2753
   276
                                  struct SDL_SysWMinfo * info);
slouken@0
   277
slouken@2753
   278
    /* * * */
slouken@2753
   279
    /*
slouken@2753
   280
     * OpenGL support
slouken@2753
   281
     */
slouken@2753
   282
    int (*GL_LoadLibrary) (_THIS, const char *path);
slouken@2753
   283
    void *(*GL_GetProcAddress) (_THIS, const char *proc);
slouken@3057
   284
    void (*GL_UnloadLibrary) (_THIS);
slouken@2753
   285
      SDL_GLContext(*GL_CreateContext) (_THIS, SDL_Window * window);
slouken@2753
   286
    int (*GL_MakeCurrent) (_THIS, SDL_Window * window, SDL_GLContext context);
slouken@2753
   287
    int (*GL_SetSwapInterval) (_THIS, int interval);
slouken@2753
   288
    int (*GL_GetSwapInterval) (_THIS);
slouken@2753
   289
    void (*GL_SwapWindow) (_THIS, SDL_Window * window);
slouken@2753
   290
    void (*GL_DeleteContext) (_THIS, SDL_GLContext context);
slouken@0
   291
slouken@2753
   292
    /* * * */
slouken@2753
   293
    /*
slouken@2753
   294
     * Event manager functions
slouken@2753
   295
     */
slouken@2753
   296
    void (*PumpEvents) (_THIS);
slouken@0
   297
slouken@3025
   298
    /* Suspend the screensaver */
slouken@3025
   299
    void (*SuspendScreenSaver) (_THIS);
slouken@3025
   300
slouken@3280
   301
    /* Text input */
slouken@3280
   302
    void (*StartTextInput) (_THIS);
slouken@3280
   303
    void (*StopTextInput) (_THIS);
slouken@3280
   304
    void (*SetTextInputRect) (_THIS, SDL_Rect *rect);
slouken@3280
   305
slouken@4495
   306
    /* Clipboard */
slouken@4495
   307
    int (*SetClipboardText) (_THIS, const char *text);
slouken@4495
   308
    char * (*GetClipboardText) (_THIS);
slouken@4495
   309
    SDL_bool (*HasClipboardText) (_THIS);
slouken@4495
   310
slouken@2753
   311
    /* * * */
slouken@2753
   312
    /* Data common to all drivers */
slouken@3025
   313
    SDL_bool suspend_screensaver;
slouken@2753
   314
    int num_displays;
slouken@2753
   315
    SDL_VideoDisplay *displays;
slouken@2753
   316
    int current_display;
slouken@3695
   317
    Uint8 window_magic;
slouken@3695
   318
    Uint8 texture_magic;
slouken@2753
   319
    Uint32 next_object_id;
slouken@4495
   320
    char * clipboard_text;
slouken@0
   321
slouken@2753
   322
    /* * * */
slouken@2753
   323
    /* Data used by the GL drivers */
slouken@2753
   324
    struct
slouken@2753
   325
    {
slouken@2753
   326
        int red_size;
slouken@2753
   327
        int green_size;
slouken@2753
   328
        int blue_size;
slouken@2753
   329
        int alpha_size;
slouken@2753
   330
        int depth_size;
slouken@2753
   331
        int buffer_size;
slouken@2753
   332
        int stencil_size;
slouken@2753
   333
        int double_buffer;
slouken@2753
   334
        int accum_red_size;
slouken@2753
   335
        int accum_green_size;
slouken@2753
   336
        int accum_blue_size;
slouken@2753
   337
        int accum_alpha_size;
slouken@2753
   338
        int stereo;
slouken@2753
   339
        int multisamplebuffers;
slouken@2753
   340
        int multisamplesamples;
slouken@2753
   341
        int accelerated;
slouken@3100
   342
        int major_version;
slouken@3100
   343
        int minor_version;
slouken@2753
   344
        int retained_backing;
slouken@2753
   345
        int driver_loaded;
slouken@2753
   346
        char driver_path[256];
slouken@2753
   347
        void *dll_handle;
slouken@2753
   348
    } gl_config;
slouken@0
   349
slouken@2753
   350
    /* * * */
slouken@2753
   351
    /* Data private to this driver */
slouken@2753
   352
    void *driverdata;
slouken@2753
   353
    struct SDL_GLDriverData *gl_data;
slouken@0
   354
slouken@3161
   355
#if SDL_VIDEO_DRIVER_PANDORA
slouken@3161
   356
    struct SDL_PrivateGLESData *gles_data;
slouken@3161
   357
#endif
slouken@3161
   358
slouken@2753
   359
    /* * * */
slouken@2753
   360
    /* The function used to dispose of this structure */
slouken@2753
   361
    void (*free) (_THIS);
slouken@1895
   362
};
slouken@0
   363
slouken@2753
   364
typedef struct VideoBootStrap
slouken@2753
   365
{
slouken@2753
   366
    const char *name;
slouken@2753
   367
    const char *desc;
slouken@2753
   368
    int (*available) (void);
slouken@2753
   369
    SDL_VideoDevice *(*create) (int devindex);
slouken@2753
   370
} VideoBootStrap;
slouken@0
   371
slouken@1931
   372
#if SDL_VIDEO_DRIVER_COCOA
slouken@1931
   373
extern VideoBootStrap COCOA_bootstrap;
slouken@1361
   374
#endif
slouken@1361
   375
#if SDL_VIDEO_DRIVER_X11
slouken@0
   376
extern VideoBootStrap X11_bootstrap;
slouken@0
   377
#endif
slouken@1361
   378
#if SDL_VIDEO_DRIVER_FBCON
slouken@0
   379
extern VideoBootStrap FBCON_bootstrap;
slouken@0
   380
#endif
slouken@1361
   381
#if SDL_VIDEO_DRIVER_DIRECTFB
slouken@167
   382
extern VideoBootStrap DirectFB_bootstrap;
slouken@167
   383
#endif
slouken@3257
   384
#if SDL_VIDEO_DRIVER_PS3
slouken@3257
   385
extern VideoBootStrap PS3_bootstrap;
slouken@3257
   386
#endif
slouken@1361
   387
#if SDL_VIDEO_DRIVER_SVGALIB
slouken@0
   388
extern VideoBootStrap SVGALIB_bootstrap;
slouken@0
   389
#endif
slouken@1361
   390
#if SDL_VIDEO_DRIVER_GAPI
slouken@1361
   391
extern VideoBootStrap GAPI_bootstrap;
slouken@1361
   392
#endif
slouken@1895
   393
#if SDL_VIDEO_DRIVER_WIN32
slouken@1895
   394
extern VideoBootStrap WIN32_bootstrap;
slouken@1361
   395
#endif
slouken@1361
   396
#if SDL_VIDEO_DRIVER_BWINDOW
slouken@1361
   397
extern VideoBootStrap BWINDOW_bootstrap;
slouken@1361
   398
#endif
slouken@1361
   399
#if SDL_VIDEO_DRIVER_PHOTON
slouken@3083
   400
extern VideoBootStrap photon_bootstrap;
slouken@3083
   401
#endif
slouken@3083
   402
#if SDL_VIDEO_DRIVER_QNXGF
slouken@3083
   403
extern VideoBootStrap qnxgf_bootstrap;
slouken@1361
   404
#endif
slouken@1361
   405
#if SDL_VIDEO_DRIVER_EPOC
slouken@1361
   406
extern VideoBootStrap EPOC_bootstrap;
slouken@1361
   407
#endif
slouken@1361
   408
#if SDL_VIDEO_DRIVER_RISCOS
slouken@1361
   409
extern VideoBootStrap RISCOS_bootstrap;
slouken@1361
   410
#endif
hfutrell@2742
   411
#if SDL_VIDEO_DRIVER_UIKIT
hfutrell@2742
   412
extern VideoBootStrap UIKIT_bootstrap;
hfutrell@2742
   413
#endif
slouken@1361
   414
#if SDL_VIDEO_DRIVER_DUMMY
slouken@173
   415
extern VideoBootStrap DUMMY_bootstrap;
slouken@173
   416
#endif
slouken@2735
   417
#if SDL_VIDEO_DRIVER_NDS
slouken@2735
   418
extern VideoBootStrap NDS_bootstrap;
slouken@2735
   419
#endif
slouken@3161
   420
#if SDL_VIDEO_DRIVER_PANDORA
slouken@3161
   421
extern VideoBootStrap PND_bootstrap;
slouken@3161
   422
#endif
slouken@1361
   423
slouken@3685
   424
#define SDL_CurrentDisplay	(&_this->displays[_this->current_display])
slouken@3685
   425
#define SDL_CurrentRenderer	(SDL_CurrentDisplay->current_renderer)
slouken@0
   426
slouken@4472
   427
extern SDL_VideoDevice *SDL_GetVideoDevice(void);
slouken@2753
   428
extern int SDL_AddBasicVideoDisplay(const SDL_DisplayMode * desktop_mode);
slouken@2753
   429
extern int SDL_AddVideoDisplay(const SDL_VideoDisplay * display);
slouken@3500
   430
extern SDL_bool SDL_AddDisplayMode(SDL_VideoDisplay *display, const SDL_DisplayMode * mode);
slouken@3500
   431
extern int SDL_GetNumDisplayModesForDisplay(SDL_VideoDisplay * display);
slouken@3500
   432
extern int SDL_GetDisplayModeForDisplay(SDL_VideoDisplay * display, int index, SDL_DisplayMode * mode);
slouken@3500
   433
extern int SDL_GetDesktopDisplayModeForDisplay(SDL_VideoDisplay * display, SDL_DisplayMode * mode);
slouken@3500
   434
extern int SDL_GetCurrentDisplayModeForDisplay(SDL_VideoDisplay * display, SDL_DisplayMode * mode);
slouken@3500
   435
extern SDL_DisplayMode * SDL_GetClosestDisplayModeForDisplay(SDL_VideoDisplay * display, const SDL_DisplayMode * mode, SDL_DisplayMode * closest);
slouken@3500
   436
extern int SDL_SetDisplayModeForDisplay(SDL_VideoDisplay * display, const SDL_DisplayMode * mode);
slouken@3501
   437
extern int SDL_SetPaletteForDisplay(SDL_VideoDisplay * display, const SDL_Color * colors, int firstcolor, int ncolors);
slouken@3501
   438
extern int SDL_GetPaletteForDisplay(SDL_VideoDisplay * display, SDL_Color * colors, int firstcolor, int ncolors);
slouken@3500
   439
extern int SDL_SetGammaRampForDisplay(SDL_VideoDisplay * display, const Uint16 * red, const Uint16 * green, const Uint16 * blue);
slouken@3500
   440
extern int SDL_GetGammaRampForDisplay(SDL_VideoDisplay * display, Uint16 * red, Uint16 * green, Uint16 * blue);
slouken@3501
   441
extern void SDL_AddRenderDriver(SDL_VideoDisplay *display, const SDL_RenderDriver * driver);
slouken@1895
   442
slouken@2753
   443
extern int SDL_RecreateWindow(SDL_Window * window, Uint32 flags);
slouken@1895
   444
slouken@2753
   445
extern void SDL_OnWindowShown(SDL_Window * window);
slouken@2753
   446
extern void SDL_OnWindowHidden(SDL_Window * window);
slouken@2753
   447
extern void SDL_OnWindowResized(SDL_Window * window);
slouken@3502
   448
extern void SDL_OnWindowMinimized(SDL_Window * window);
slouken@3502
   449
extern void SDL_OnWindowRestored(SDL_Window * window);
slouken@2753
   450
extern void SDL_OnWindowFocusGained(SDL_Window * window);
slouken@2753
   451
extern void SDL_OnWindowFocusLost(SDL_Window * window);
slouken@3685
   452
extern SDL_Window * SDL_GetFocusWindow(void);
slouken@0
   453
slouken@2753
   454
#endif /* _SDL_sysvideo_h */
slouken@1895
   455
slouken@1895
   456
/* vi: set ts=4 sw=4 expandtab: */