annotate src/video/SDL_sysvideo.h @ 3100:7dc982143c06

Date: Sun, 22 Mar 2009 12:52:29 +0000 From: Luke Benstead Subject: OpenGL 3.0 Context Creation I've attached a patch which implements OpenGL 3.x context creation on the latest SVN. I've added two options to SDL_GL_SetAttribute, these are SDL_GL_CONTEXT_MAJOR_VERSION and SDL_GL_CONTEXT_MINOR_VERSION. These default to 2 and 1 respectively. If the major version is less than 3 then the current context creation method is used, otherwise the appropriate new context creation function is called (depending on the platform). Sample code: if (SDL_Init(SDL_INIT_VIDEO) != 0) { printf("Unable to initialize SDL: %s\n", SDL_GetError()); return 1; } SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3); //Without these 2 lines, SDL will create a GL 2.x context SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0); SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); SDL_Surface* screen = SDL_SetVideoMode( 640, 480, 16, SDL_OPENGL | SDL_FULLSCREEN ); I've implemented context creation on both Win32 and X and run basic tests on both. This patch doesn't provide access to all the options allowed by the new context creation (e.g. shared contexts, forward compatible contexts) but they can be added pretty easily.
author Sam Lantinga <slouken@libsdl.org>
date Tue, 24 Mar 2009 10:43:53 +0000
parents 0bc41e0361d3
children fef1a835af43 3df74541339b 494559cc723b
rev   line source
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
1 /*
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
2 SDL - Simple DirectMedia Layer
2859
99210400e8b9 Updated copyright date
Sam Lantinga <slouken@libsdl.org>
parents: 2753
diff changeset
3 Copyright (C) 1997-2009 Sam Lantinga
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
4
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
5 This library is free software; you can redistribute it and/or
1312
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 1251
diff changeset
6 modify it under the terms of the GNU Lesser General Public
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
7 License as published by the Free Software Foundation; either
1312
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 1251
diff changeset
8 version 2.1 of the License, or (at your option) any later version.
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
9
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
10 This library is distributed in the hope that it will be useful,
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1312
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 1251
diff changeset
13 Lesser General Public License for more details.
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
14
1312
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 1251
diff changeset
15 You should have received a copy of the GNU Lesser General Public
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 1251
diff changeset
16 License along with this library; if not, write to the Free Software
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 1251
diff changeset
17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
18
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
19 Sam Lantinga
252
e8157fcb3114 Updated the source with the correct e-mail address
Sam Lantinga <slouken@libsdl.org>
parents: 173
diff changeset
20 slouken@libsdl.org
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
21 */
1402
d910939febfa Use consistent identifiers for the various platforms we support.
Sam Lantinga <slouken@libsdl.org>
parents: 1361
diff changeset
22 #include "SDL_config.h"
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
23
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
24 #ifndef _SDL_sysvideo_h
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
25 #define _SDL_sysvideo_h
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
26
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
27 #include "SDL_mouse.h"
2268
4baee598306d Date: Thu, 05 Jul 2007 14:02:33 -0700
Sam Lantinga <slouken@libsdl.org>
parents: 2245
diff changeset
28 #include "SDL_keysym.h"
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
29
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
30 /* The SDL video driver */
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
31
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
32 typedef struct SDL_Window SDL_Window;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
33 typedef struct SDL_Texture SDL_Texture;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
34 typedef struct SDL_Renderer SDL_Renderer;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
35 typedef struct SDL_RenderDriver SDL_RenderDriver;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
36 typedef struct SDL_VideoDisplay SDL_VideoDisplay;
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
37 typedef struct SDL_VideoDevice SDL_VideoDevice;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
38
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
39 /* Define the SDL texture structure */
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
40 struct SDL_Texture
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
41 {
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
42 Uint32 id;
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
43
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
44 Uint32 format; /**< The pixel format of the texture */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
45 int access; /**< SDL_TextureAccess */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
46 int w; /**< The width of the texture */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
47 int h; /**< The height of the texture */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
48 int modMode; /**< The texture modulation mode */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
49 int blendMode; /**< The texture blend mode */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
50 int scaleMode; /**< The texture scale mode */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
51 Uint8 r, g, b, a; /**< Texture modulation values */
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
52
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
53 SDL_Renderer *renderer;
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
54
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
55 void *driverdata; /**< Driver specific texture representation */
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
56
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
57 SDL_Texture *next;
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
58 };
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
59
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
60 /* Define the SDL renderer structure */
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
61 struct SDL_Renderer
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
62 {
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
63 int (*ActivateRenderer) (SDL_Renderer * renderer);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
64 int (*DisplayModeChanged) (SDL_Renderer * renderer);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
65 int (*CreateTexture) (SDL_Renderer * renderer, SDL_Texture * texture);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
66 int (*QueryTexturePixels) (SDL_Renderer * renderer, SDL_Texture * texture,
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
67 void **pixels, int *pitch);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
68 int (*SetTexturePalette) (SDL_Renderer * renderer, SDL_Texture * texture,
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
69 const SDL_Color * colors, int firstcolor,
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
70 int ncolors);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
71 int (*GetTexturePalette) (SDL_Renderer * renderer, SDL_Texture * texture,
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
72 SDL_Color * colors, int firstcolor,
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
73 int ncolors);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
74 int (*SetTextureColorMod) (SDL_Renderer * renderer,
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
75 SDL_Texture * texture);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
76 int (*SetTextureAlphaMod) (SDL_Renderer * renderer,
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
77 SDL_Texture * texture);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
78 int (*SetTextureBlendMode) (SDL_Renderer * renderer,
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
79 SDL_Texture * texture);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
80 int (*SetTextureScaleMode) (SDL_Renderer * renderer,
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
81 SDL_Texture * texture);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
82 int (*UpdateTexture) (SDL_Renderer * renderer, SDL_Texture * texture,
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
83 const SDL_Rect * rect, const void *pixels,
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
84 int pitch);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
85 int (*LockTexture) (SDL_Renderer * renderer, SDL_Texture * texture,
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
86 const SDL_Rect * rect, int markDirty, void **pixels,
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
87 int *pitch);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
88 void (*UnlockTexture) (SDL_Renderer * renderer, SDL_Texture * texture);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
89 void (*DirtyTexture) (SDL_Renderer * renderer, SDL_Texture * texture,
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
90 int numrects, const SDL_Rect * rects);
2884
9dde605c7540 Date: Fri, 19 Dec 2008 20:17:35 +0100
Sam Lantinga <slouken@libsdl.org>
parents: 2859
diff changeset
91 int (*SetDrawColor) (SDL_Renderer * renderer);
9dde605c7540 Date: Fri, 19 Dec 2008 20:17:35 +0100
Sam Lantinga <slouken@libsdl.org>
parents: 2859
diff changeset
92 int (*SetDrawBlendMode) (SDL_Renderer * renderer);
2901
133601e3b255 Added RenderPiont() API
Sam Lantinga <slouken@libsdl.org>
parents: 2884
diff changeset
93 int (*RenderPoint) (SDL_Renderer * renderer, int x, int y);
2884
9dde605c7540 Date: Fri, 19 Dec 2008 20:17:35 +0100
Sam Lantinga <slouken@libsdl.org>
parents: 2859
diff changeset
94 int (*RenderLine) (SDL_Renderer * renderer, int x1, int y1, int x2,
9dde605c7540 Date: Fri, 19 Dec 2008 20:17:35 +0100
Sam Lantinga <slouken@libsdl.org>
parents: 2859
diff changeset
95 int y2);
9dde605c7540 Date: Fri, 19 Dec 2008 20:17:35 +0100
Sam Lantinga <slouken@libsdl.org>
parents: 2859
diff changeset
96 int (*RenderFill) (SDL_Renderer * renderer, const SDL_Rect * rect);
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
97 int (*RenderCopy) (SDL_Renderer * renderer, SDL_Texture * texture,
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
98 const SDL_Rect * srcrect, const SDL_Rect * dstrect);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
99 void (*RenderPresent) (SDL_Renderer * renderer);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
100 void (*DestroyTexture) (SDL_Renderer * renderer, SDL_Texture * texture);
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
101
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
102 void (*DestroyRenderer) (SDL_Renderer * renderer);
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
103
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
104 /* The current renderer info */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
105 SDL_RendererInfo info;
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
106
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
107 /* The window associated with the renderer */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
108 SDL_WindowID window;
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
109
2884
9dde605c7540 Date: Fri, 19 Dec 2008 20:17:35 +0100
Sam Lantinga <slouken@libsdl.org>
parents: 2859
diff changeset
110 Uint8 r, g, b, a; /**< Color for drawing operations values */
9dde605c7540 Date: Fri, 19 Dec 2008 20:17:35 +0100
Sam Lantinga <slouken@libsdl.org>
parents: 2859
diff changeset
111 int blendMode; /**< The drawing blend mode */
9dde605c7540 Date: Fri, 19 Dec 2008 20:17:35 +0100
Sam Lantinga <slouken@libsdl.org>
parents: 2859
diff changeset
112
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
113 void *driverdata;
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
114 };
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
115
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
116 /* Define the SDL render driver structure */
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
117 struct SDL_RenderDriver
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
118 {
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
119 SDL_Renderer *(*CreateRenderer) (SDL_Window * window, Uint32 flags);
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
120
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
121 /* Info about the renderer capabilities */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
122 SDL_RendererInfo info;
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
123 };
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
124
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
125 /* Define the SDL window structure, corresponding to toplevel windows */
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
126 struct SDL_Window
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
127 {
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
128 Uint32 id;
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
129
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
130 char *title;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
131 int x, y;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
132 int w, h;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
133 Uint32 flags;
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
134
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
135 int display;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
136 SDL_Renderer *renderer;
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
137
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
138 void *userdata;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
139 void *driverdata;
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
140 };
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
141 #define FULLSCREEN_VISIBLE(W) \
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
142 (((W)->flags & SDL_WINDOW_FULLSCREEN) && \
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
143 ((W)->flags & SDL_WINDOW_SHOWN) && \
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
144 !((W)->flags & SDL_WINDOW_MINIMIZED))
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
145
2742
b86247d21929 Added retained backing attribute, reference to UIKit renderer
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2735
diff changeset
146 /*
b86247d21929 Added retained backing attribute, reference to UIKit renderer
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2735
diff changeset
147 * Define the SDL display structure This corresponds to physical monitors
b86247d21929 Added retained backing attribute, reference to UIKit renderer
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2735
diff changeset
148 * attached to the system.
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
149 */
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
150 struct SDL_VideoDisplay
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
151 {
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
152 int max_display_modes;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
153 int num_display_modes;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
154 SDL_DisplayMode *display_modes;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
155 SDL_DisplayMode desktop_mode;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
156 SDL_DisplayMode current_mode;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
157 SDL_DisplayMode fullscreen_mode;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
158 SDL_Palette *palette;
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
159
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
160 Uint16 *gamma;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
161 Uint16 *saved_gamma; /* (just offset into gamma) */
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
162
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
163 int num_render_drivers;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
164 SDL_RenderDriver *render_drivers;
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
165
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
166 int num_windows;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
167 SDL_Window *windows;
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
168
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
169 SDL_Renderer *current_renderer;
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
170
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
171 /* The hash list of textures */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
172 SDL_Texture *textures[64];
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
173
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
174 SDL_VideoDevice *device;
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
175
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
176 void *driverdata;
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
177 };
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
178
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
179 /* Define the SDL video driver structure */
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
180 #define _THIS SDL_VideoDevice *_this
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
181
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
182 struct SDL_VideoDevice
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
183 {
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
184 /* * * */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
185 /* The name of this video driver */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
186 const char *name;
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
187
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
188 /* * * */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
189 /* Initialization/Query functions */
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
190
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
191 /*
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
192 * Initialize the native video subsystem, filling in the list of
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
193 * displays for this driver, returning 0 or -1 if there's an error.
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
194 */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
195 int (*VideoInit) (_THIS);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
196
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
197 /*
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
198 * Reverse the effects VideoInit() -- called if VideoInit() fails or
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
199 * if the application is shutting down the video subsystem.
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
200 */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
201 void (*VideoQuit) (_THIS);
1913
83420da906a5 Implemented Windows OpenGL support
Sam Lantinga <slouken@libsdl.org>
parents: 1912
diff changeset
202
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
203 /* * * */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
204 /*
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
205 * Display functions
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
206 */
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
207
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
208 /*
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
209 * Get a list of the available display modes. e.g.
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
210 * SDL_AddDisplayMode(_this->current_display, mode)
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
211 */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
212 void (*GetDisplayModes) (_THIS);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
213
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
214 /*
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
215 * Setting the display mode is independent of creating windows, so
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
216 * when the display mode is changed, all existing windows should have
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
217 * their data updated accordingly, including the display surfaces
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
218 * associated with them.
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
219 */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
220 int (*SetDisplayMode) (_THIS, SDL_DisplayMode * mode);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
221
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
222 /* Set the color entries of the display palette */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
223 int (*SetDisplayPalette) (_THIS, SDL_Palette * palette);
2742
b86247d21929 Added retained backing attribute, reference to UIKit renderer
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2735
diff changeset
224
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
225 /* Get the color entries of the display palette */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
226 int (*GetDisplayPalette) (_THIS, SDL_Palette * palette);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
227
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
228 /* Set the gamma ramp */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
229 int (*SetDisplayGammaRamp) (_THIS, Uint16 * ramp);
2742
b86247d21929 Added retained backing attribute, reference to UIKit renderer
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2735
diff changeset
230
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
231 /* Get the gamma ramp */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
232 int (*GetDisplayGammaRamp) (_THIS, Uint16 * ramp);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
233
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
234 /* * * */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
235 /*
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
236 * Window functions
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
237 */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
238 int (*CreateWindow) (_THIS, SDL_Window * window);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
239 int (*CreateWindowFrom) (_THIS, SDL_Window * window, const void *data);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
240 void (*SetWindowTitle) (_THIS, SDL_Window * window);
2967
e4a469d6ddab Implemented SDL_SetWindowIcon(), with translucent icon support under X11.
Sam Lantinga <slouken@libsdl.org>
parents: 2901
diff changeset
241 void (*SetWindowIcon) (_THIS, SDL_Window * window, SDL_Surface * icon);
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
242 void (*SetWindowPosition) (_THIS, SDL_Window * window);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
243 void (*SetWindowSize) (_THIS, SDL_Window * window);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
244 void (*ShowWindow) (_THIS, SDL_Window * window);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
245 void (*HideWindow) (_THIS, SDL_Window * window);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
246 void (*RaiseWindow) (_THIS, SDL_Window * window);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
247 void (*MaximizeWindow) (_THIS, SDL_Window * window);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
248 void (*MinimizeWindow) (_THIS, SDL_Window * window);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
249 void (*RestoreWindow) (_THIS, SDL_Window * window);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
250 void (*SetWindowGrab) (_THIS, SDL_Window * window);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
251 void (*DestroyWindow) (_THIS, SDL_Window * window);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
252
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
253 /* Get some platform dependent window information */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
254 SDL_bool(*GetWindowWMInfo) (_THIS, SDL_Window * window,
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
255 struct SDL_SysWMinfo * info);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
256
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
257 /* * * */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
258 /*
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
259 * OpenGL support
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
260 */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
261 int (*GL_LoadLibrary) (_THIS, const char *path);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
262 void *(*GL_GetProcAddress) (_THIS, const char *proc);
3057
089a77aebb7d Added test program for SDL_CreateWindowFrom()
Sam Lantinga <slouken@libsdl.org>
parents: 3025
diff changeset
263 void (*GL_UnloadLibrary) (_THIS);
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
264 SDL_GLContext(*GL_CreateContext) (_THIS, SDL_Window * window);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
265 int (*GL_MakeCurrent) (_THIS, SDL_Window * window, SDL_GLContext context);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
266 int (*GL_SetSwapInterval) (_THIS, int interval);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
267 int (*GL_GetSwapInterval) (_THIS);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
268 void (*GL_SwapWindow) (_THIS, SDL_Window * window);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
269 void (*GL_DeleteContext) (_THIS, SDL_GLContext context);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
270
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
271 /* * * */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
272 /*
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
273 * Event manager functions
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
274 */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
275 void (*PumpEvents) (_THIS);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
276
3025
54fac87e1f34 Added an API to enable/disable the screen saver.
Sam Lantinga <slouken@libsdl.org>
parents: 2967
diff changeset
277 /* Suspend the screensaver */
54fac87e1f34 Added an API to enable/disable the screen saver.
Sam Lantinga <slouken@libsdl.org>
parents: 2967
diff changeset
278 void (*SuspendScreenSaver) (_THIS);
54fac87e1f34 Added an API to enable/disable the screen saver.
Sam Lantinga <slouken@libsdl.org>
parents: 2967
diff changeset
279
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
280 /* * * */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
281 /* Data common to all drivers */
3025
54fac87e1f34 Added an API to enable/disable the screen saver.
Sam Lantinga <slouken@libsdl.org>
parents: 2967
diff changeset
282 SDL_bool suspend_screensaver;
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
283 int num_displays;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
284 SDL_VideoDisplay *displays;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
285 int current_display;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
286 Uint32 next_object_id;
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
287
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
288 /* * * */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
289 /* Data used by the GL drivers */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
290 struct
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
291 {
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
292 int red_size;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
293 int green_size;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
294 int blue_size;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
295 int alpha_size;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
296 int depth_size;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
297 int buffer_size;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
298 int stencil_size;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
299 int double_buffer;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
300 int accum_red_size;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
301 int accum_green_size;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
302 int accum_blue_size;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
303 int accum_alpha_size;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
304 int stereo;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
305 int multisamplebuffers;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
306 int multisamplesamples;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
307 int accelerated;
3100
7dc982143c06 Date: Sun, 22 Mar 2009 12:52:29 +0000
Sam Lantinga <slouken@libsdl.org>
parents: 3083
diff changeset
308 int major_version;
7dc982143c06 Date: Sun, 22 Mar 2009 12:52:29 +0000
Sam Lantinga <slouken@libsdl.org>
parents: 3083
diff changeset
309 int minor_version;
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
310 int retained_backing;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
311 int driver_loaded;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
312 char driver_path[256];
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
313 void *dll_handle;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
314 } gl_config;
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
315
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
316 /* * * */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
317 /* Data private to this driver */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
318 void *driverdata;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
319 struct SDL_GLDriverData *gl_data;
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
320
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
321 /* * * */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
322 /* The function used to dispose of this structure */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
323 void (*free) (_THIS);
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
324 };
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
325
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
326 typedef struct VideoBootStrap
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
327 {
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
328 const char *name;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
329 const char *desc;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
330 int (*available) (void);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
331 SDL_VideoDevice *(*create) (int devindex);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
332 } VideoBootStrap;
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
333
1931
103c6fec2a60 The Mac OS X Cocoa video driver is under construction...
Sam Lantinga <slouken@libsdl.org>
parents: 1928
diff changeset
334 #if SDL_VIDEO_DRIVER_COCOA
103c6fec2a60 The Mac OS X Cocoa video driver is under construction...
Sam Lantinga <slouken@libsdl.org>
parents: 1928
diff changeset
335 extern VideoBootStrap COCOA_bootstrap;
1361
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
336 #endif
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
337 #if SDL_VIDEO_DRIVER_X11
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
338 extern VideoBootStrap X11_bootstrap;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
339 #endif
1361
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
340 #if SDL_VIDEO_DRIVER_NANOX
30
57bf11a5efd7 Added initial support for Nano-X (thanks Hsieh-Fu!)
Sam Lantinga <slouken@lokigames.com>
parents: 19
diff changeset
341 extern VideoBootStrap NX_bootstrap;
57bf11a5efd7 Added initial support for Nano-X (thanks Hsieh-Fu!)
Sam Lantinga <slouken@lokigames.com>
parents: 19
diff changeset
342 #endif
1361
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
343 #if SDL_VIDEO_DRIVER_IPOD
1140
af8b0f9ac2f4 iPod Linux framebuffer support.
Ryan C. Gordon <icculus@icculus.org>
parents: 1052
diff changeset
344 extern VideoBootStrap iPod_bootstrap;
af8b0f9ac2f4 iPod Linux framebuffer support.
Ryan C. Gordon <icculus@icculus.org>
parents: 1052
diff changeset
345 #endif
1361
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
346 #if SDL_VIDEO_DRIVER_WSCONS
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
347 extern VideoBootStrap WSCONS_bootstrap;
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
348 #endif
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
349 #if SDL_VIDEO_DRIVER_FBCON
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
350 extern VideoBootStrap FBCON_bootstrap;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
351 #endif
1361
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
352 #if SDL_VIDEO_DRIVER_DIRECTFB
167
cb384ef627f6 Added support for DirectFB video on Linux (thanks Denis!)
Sam Lantinga <slouken@libsdl.org>
parents: 75
diff changeset
353 extern VideoBootStrap DirectFB_bootstrap;
cb384ef627f6 Added support for DirectFB video on Linux (thanks Denis!)
Sam Lantinga <slouken@libsdl.org>
parents: 75
diff changeset
354 #endif
1361
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
355 #if SDL_VIDEO_DRIVER_PS2GS
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
356 extern VideoBootStrap PS2GS_bootstrap;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
357 #endif
1361
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
358 #if SDL_VIDEO_DRIVER_VGL
75
b0ae59d0f3ee Added patches from FreeBSD ports
Sam Lantinga <slouken@lokigames.com>
parents: 47
diff changeset
359 extern VideoBootStrap VGL_bootstrap;
b0ae59d0f3ee Added patches from FreeBSD ports
Sam Lantinga <slouken@lokigames.com>
parents: 47
diff changeset
360 #endif
1361
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
361 #if SDL_VIDEO_DRIVER_SVGALIB
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
362 extern VideoBootStrap SVGALIB_bootstrap;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
363 #endif
1361
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
364 #if SDL_VIDEO_DRIVER_GAPI
1251
86d0d01290ea Updated Windows CE/PocketPC support...adds GAPI driver, landscape mode,
Ryan C. Gordon <icculus@icculus.org>
parents: 1190
diff changeset
365 extern VideoBootStrap GAPI_bootstrap;
86d0d01290ea Updated Windows CE/PocketPC support...adds GAPI driver, landscape mode,
Ryan C. Gordon <icculus@icculus.org>
parents: 1190
diff changeset
366 #endif
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
367 #if SDL_VIDEO_DRIVER_WIN32
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
368 extern VideoBootStrap WIN32_bootstrap;
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
369 #endif
1361
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
370 #if SDL_VIDEO_DRIVER_BWINDOW
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
371 extern VideoBootStrap BWINDOW_bootstrap;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
372 #endif
1361
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
373 #if SDL_VIDEO_DRIVER_PHOTON
3083
0bc41e0361d3 Date: Mon, 2 Mar 2009 16:27:42 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3057
diff changeset
374 extern VideoBootStrap photon_bootstrap;
0bc41e0361d3 Date: Mon, 2 Mar 2009 16:27:42 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3057
diff changeset
375 #endif
0bc41e0361d3 Date: Mon, 2 Mar 2009 16:27:42 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3057
diff changeset
376 #if SDL_VIDEO_DRIVER_QNXGF
0bc41e0361d3 Date: Mon, 2 Mar 2009 16:27:42 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3057
diff changeset
377 extern VideoBootStrap qnxgf_bootstrap;
173
83018110dce8 Added initial support for EPOC/Symbian OS (thanks Hannu!)
Sam Lantinga <slouken@libsdl.org>
parents: 167
diff changeset
378 #endif
1361
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
379 #if SDL_VIDEO_DRIVER_EPOC
173
83018110dce8 Added initial support for EPOC/Symbian OS (thanks Hannu!)
Sam Lantinga <slouken@libsdl.org>
parents: 167
diff changeset
380 extern VideoBootStrap EPOC_bootstrap;
83018110dce8 Added initial support for EPOC/Symbian OS (thanks Hannu!)
Sam Lantinga <slouken@libsdl.org>
parents: 167
diff changeset
381 #endif
1361
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
382 #if SDL_VIDEO_DRIVER_XBIOS
281
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents: 252
diff changeset
383 extern VideoBootStrap XBIOS_bootstrap;
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents: 252
diff changeset
384 #endif
1361
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
385 #if SDL_VIDEO_DRIVER_GEM
281
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents: 252
diff changeset
386 extern VideoBootStrap GEM_bootstrap;
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents: 252
diff changeset
387 #endif
1361
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
388 #if SDL_VIDEO_DRIVER_DC
509
dad72daf44b3 Added initial support for Dreamcast (thanks HERO!)
Sam Lantinga <slouken@libsdl.org>
parents: 453
diff changeset
389 extern VideoBootStrap DC_bootstrap;
dad72daf44b3 Added initial support for Dreamcast (thanks HERO!)
Sam Lantinga <slouken@libsdl.org>
parents: 453
diff changeset
390 #endif
1361
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
391 #if SDL_VIDEO_DRIVER_RISCOS
630
550bccdf04bd Added initial support for RISC OS (thanks Peter Naulls!)
Sam Lantinga <slouken@libsdl.org>
parents: 509
diff changeset
392 extern VideoBootStrap RISCOS_bootstrap;
550bccdf04bd Added initial support for RISC OS (thanks Peter Naulls!)
Sam Lantinga <slouken@libsdl.org>
parents: 509
diff changeset
393 #endif
1361
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
394 #if SDL_VIDEO_DRIVER_OS2FS
1190
173c063d4f55 OS/2 port!
Ryan C. Gordon <icculus@icculus.org>
parents: 1187
diff changeset
395 extern VideoBootStrap OS2FSLib_bootstrap;
173c063d4f55 OS/2 port!
Ryan C. Gordon <icculus@icculus.org>
parents: 1187
diff changeset
396 #endif
2742
b86247d21929 Added retained backing attribute, reference to UIKit renderer
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2735
diff changeset
397 #if SDL_VIDEO_DRIVER_UIKIT
b86247d21929 Added retained backing attribute, reference to UIKit renderer
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2735
diff changeset
398 extern VideoBootStrap UIKIT_bootstrap;
b86247d21929 Added retained backing attribute, reference to UIKit renderer
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2735
diff changeset
399 #endif
1361
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
400 #if SDL_VIDEO_DRIVER_DUMMY
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
401 extern VideoBootStrap DUMMY_bootstrap;
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
402 #endif
2735
204be4fc2726 Final merge of Google Summer of Code 2008 work...
Sam Lantinga <slouken@libsdl.org>
parents: 2702
diff changeset
403 #if SDL_VIDEO_DRIVER_NDS
204be4fc2726 Final merge of Google Summer of Code 2008 work...
Sam Lantinga <slouken@libsdl.org>
parents: 2702
diff changeset
404 extern VideoBootStrap NDS_bootstrap;
204be4fc2726 Final merge of Google Summer of Code 2008 work...
Sam Lantinga <slouken@libsdl.org>
parents: 2702
diff changeset
405 #endif
1361
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
406
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
407 #define SDL_CurrentDisplay (_this->displays[_this->current_display])
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
408
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
409 extern SDL_VideoDevice *SDL_GetVideoDevice();
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
410 extern int SDL_AddBasicVideoDisplay(const SDL_DisplayMode * desktop_mode);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
411 extern int SDL_AddVideoDisplay(const SDL_VideoDisplay * display);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
412 extern SDL_bool
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
413 SDL_AddDisplayMode(int displayIndex, const SDL_DisplayMode * mode);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
414 extern void
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
415 SDL_AddRenderDriver(int displayIndex, const SDL_RenderDriver * driver);
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
416
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
417 extern int SDL_RecreateWindow(SDL_Window * window, Uint32 flags);
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
418 extern SDL_Window *SDL_GetWindowFromID(SDL_WindowID windowID);
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
419 extern SDL_VideoDisplay *SDL_GetDisplayFromWindow(SDL_Window * window);
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
420
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
421 extern void SDL_OnWindowShown(SDL_Window * window);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
422 extern void SDL_OnWindowHidden(SDL_Window * window);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
423 extern void SDL_OnWindowResized(SDL_Window * window);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
424 extern void SDL_OnWindowFocusGained(SDL_Window * window);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
425 extern void SDL_OnWindowFocusLost(SDL_Window * window);
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
426 extern SDL_WindowID SDL_GetFocusWindow(void);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
427
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
428 #endif /* _SDL_sysvideo_h */
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
429
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1737
diff changeset
430 /* vi: set ts=4 sw=4 expandtab: */