Mercurial > sdl-ios-xcode
annotate src/video/SDL_sysvideo.h @ 3473:7bdc10624cba
This is terrible, but the OpenGL standard says that lines are half open, which means that one endpoint is not covered so adjoining lines don't overlap. It also doesn't define which end is open, and indeed Mac OS X and Linux differ. Mac OS X seems to leave the second endpoint open, but Linux uses the right-most endpoint for x major lines and the bottom-most endpoint for y major lines.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sat, 21 Nov 2009 07:14:21 +0000 |
parents | 9f62f47d989b |
children | 4b594623401b |
rev | line source |
---|---|
0 | 1 /* |
2 SDL - Simple DirectMedia Layer | |
2859 | 3 Copyright (C) 1997-2009 Sam Lantinga |
0 | 4 |
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 | 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 | 9 |
10 This library is distributed in the hope that it will be useful, | |
11 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
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 | 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 | 18 |
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 | 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 | 23 |
24 #ifndef _SDL_sysvideo_h | |
25 #define _SDL_sysvideo_h | |
26 | |
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 | 29 |
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 | 37 typedef struct SDL_VideoDevice SDL_VideoDevice; |
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 | 40 struct SDL_Texture |
41 { | |
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 | 44 Uint32 format; /**< The pixel format of the texture */ |
45 int access; /**< SDL_TextureAccess */ | |
46 int w; /**< The width of the texture */ | |
47 int h; /**< The height of the texture */ | |
48 int modMode; /**< The texture modulation mode */ | |
49 int blendMode; /**< The texture blend mode */ | |
50 int scaleMode; /**< The texture scale mode */ | |
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 | 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 | 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 | 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 | 61 struct SDL_Renderer |
62 { | |
63 int (*ActivateRenderer) (SDL_Renderer * renderer); | |
64 int (*DisplayModeChanged) (SDL_Renderer * renderer); | |
65 int (*CreateTexture) (SDL_Renderer * renderer, SDL_Texture * texture); | |
66 int (*QueryTexturePixels) (SDL_Renderer * renderer, SDL_Texture * texture, | |
67 void **pixels, int *pitch); | |
68 int (*SetTexturePalette) (SDL_Renderer * renderer, SDL_Texture * texture, | |
69 const SDL_Color * colors, int firstcolor, | |
70 int ncolors); | |
71 int (*GetTexturePalette) (SDL_Renderer * renderer, SDL_Texture * texture, | |
72 SDL_Color * colors, int firstcolor, | |
73 int ncolors); | |
74 int (*SetTextureColorMod) (SDL_Renderer * renderer, | |
75 SDL_Texture * texture); | |
76 int (*SetTextureAlphaMod) (SDL_Renderer * renderer, | |
77 SDL_Texture * texture); | |
78 int (*SetTextureBlendMode) (SDL_Renderer * renderer, | |
79 SDL_Texture * texture); | |
80 int (*SetTextureScaleMode) (SDL_Renderer * renderer, | |
81 SDL_Texture * texture); | |
82 int (*UpdateTexture) (SDL_Renderer * renderer, SDL_Texture * texture, | |
83 const SDL_Rect * rect, const void *pixels, | |
84 int pitch); | |
85 int (*LockTexture) (SDL_Renderer * renderer, SDL_Texture * texture, | |
86 const SDL_Rect * rect, int markDirty, void **pixels, | |
87 int *pitch); | |
88 void (*UnlockTexture) (SDL_Renderer * renderer, SDL_Texture * texture); | |
89 void (*DirtyTexture) (SDL_Renderer * renderer, SDL_Texture * texture, | |
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 | 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 | 97 int (*RenderCopy) (SDL_Renderer * renderer, SDL_Texture * texture, |
98 const SDL_Rect * srcrect, const SDL_Rect * dstrect); | |
3427
36cf454ba065
Work in progress on implementation of SDL_RenderReadPixels() and SDL_RenderWritePixels(), code untested.
Sam Lantinga <slouken@libsdl.org>
parents:
3417
diff
changeset
|
99 int (*RenderReadPixels) (SDL_Renderer * renderer, const SDL_Rect * rect, |
3435
9f62f47d989b
You can specify the format for pixel data in SDL_RenderReadPixels() and SDL_RenderWritePixels()
Sam Lantinga <slouken@libsdl.org>
parents:
3427
diff
changeset
|
100 Uint32 format, void * pixels, int pitch); |
3427
36cf454ba065
Work in progress on implementation of SDL_RenderReadPixels() and SDL_RenderWritePixels(), code untested.
Sam Lantinga <slouken@libsdl.org>
parents:
3417
diff
changeset
|
101 int (*RenderWritePixels) (SDL_Renderer * renderer, const SDL_Rect * rect, |
3435
9f62f47d989b
You can specify the format for pixel data in SDL_RenderReadPixels() and SDL_RenderWritePixels()
Sam Lantinga <slouken@libsdl.org>
parents:
3427
diff
changeset
|
102 Uint32 format, const void * pixels, int pitch); |
2753 | 103 void (*RenderPresent) (SDL_Renderer * renderer); |
104 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
|
105 |
2753 | 106 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
|
107 |
2753 | 108 /* The current renderer info */ |
109 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
|
110 |
2753 | 111 /* The window associated with the renderer */ |
112 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
|
113 |
2884
9dde605c7540
Date: Fri, 19 Dec 2008 20:17:35 +0100
Sam Lantinga <slouken@libsdl.org>
parents:
2859
diff
changeset
|
114 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
|
115 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
|
116 |
2753 | 117 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
|
118 }; |
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
|
119 |
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 /* Define the SDL render driver structure */ |
2753 | 121 struct SDL_RenderDriver |
122 { | |
123 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
|
124 |
2753 | 125 /* Info about the renderer capabilities */ |
126 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
|
127 }; |
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
|
128 |
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 /* Define the SDL window structure, corresponding to toplevel windows */ |
2753 | 130 struct SDL_Window |
131 { | |
132 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
|
133 |
2753 | 134 char *title; |
135 int x, y; | |
136 int w, h; | |
137 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
|
138 |
2753 | 139 int display; |
140 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
|
141 |
2753 | 142 void *userdata; |
143 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
|
144 }; |
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 #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
|
146 (((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
|
147 ((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
|
148 !((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
|
149 |
2742
b86247d21929
Added retained backing attribute, reference to UIKit renderer
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
2735
diff
changeset
|
150 /* |
b86247d21929
Added retained backing attribute, reference to UIKit renderer
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
2735
diff
changeset
|
151 * 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
|
152 * 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
|
153 */ |
2753 | 154 struct SDL_VideoDisplay |
155 { | |
156 int max_display_modes; | |
157 int num_display_modes; | |
158 SDL_DisplayMode *display_modes; | |
159 SDL_DisplayMode desktop_mode; | |
160 SDL_DisplayMode current_mode; | |
161 SDL_DisplayMode fullscreen_mode; | |
162 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
|
163 |
2753 | 164 Uint16 *gamma; |
165 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
|
166 |
2753 | 167 int num_render_drivers; |
168 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
|
169 |
2753 | 170 int num_windows; |
171 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
|
172 |
2753 | 173 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
|
174 |
2753 | 175 /* The hash list of textures */ |
176 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
|
177 |
2753 | 178 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
|
179 |
2753 | 180 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
|
181 }; |
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
|
182 |
0 | 183 /* Define the SDL video driver structure */ |
184 #define _THIS SDL_VideoDevice *_this | |
185 | |
2753 | 186 struct SDL_VideoDevice |
187 { | |
188 /* * * */ | |
189 /* The name of this video driver */ | |
190 const char *name; | |
0 | 191 |
2753 | 192 /* * * */ |
193 /* Initialization/Query functions */ | |
0 | 194 |
2753 | 195 /* |
196 * Initialize the native video subsystem, filling in the list of | |
197 * displays for this driver, returning 0 or -1 if there's an error. | |
198 */ | |
199 int (*VideoInit) (_THIS); | |
0 | 200 |
2753 | 201 /* |
202 * Reverse the effects VideoInit() -- called if VideoInit() fails or | |
203 * if the application is shutting down the video subsystem. | |
204 */ | |
205 void (*VideoQuit) (_THIS); | |
1913
83420da906a5
Implemented Windows OpenGL support
Sam Lantinga <slouken@libsdl.org>
parents:
1912
diff
changeset
|
206 |
2753 | 207 /* * * */ |
208 /* | |
209 * Display functions | |
210 */ | |
0 | 211 |
2753 | 212 /* |
213 * Get a list of the available display modes. e.g. | |
214 * SDL_AddDisplayMode(_this->current_display, mode) | |
215 */ | |
216 void (*GetDisplayModes) (_THIS); | |
0 | 217 |
2753 | 218 /* |
219 * Setting the display mode is independent of creating windows, so | |
220 * when the display mode is changed, all existing windows should have | |
221 * their data updated accordingly, including the display surfaces | |
222 * associated with them. | |
223 */ | |
224 int (*SetDisplayMode) (_THIS, SDL_DisplayMode * mode); | |
0 | 225 |
2753 | 226 /* Set the color entries of the display palette */ |
227 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
|
228 |
2753 | 229 /* Get the color entries of the display palette */ |
230 int (*GetDisplayPalette) (_THIS, SDL_Palette * palette); | |
0 | 231 |
2753 | 232 /* Set the gamma ramp */ |
233 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
|
234 |
2753 | 235 /* Get the gamma ramp */ |
236 int (*GetDisplayGammaRamp) (_THIS, Uint16 * ramp); | |
0 | 237 |
2753 | 238 /* * * */ |
239 /* | |
240 * Window functions | |
241 */ | |
242 int (*CreateWindow) (_THIS, SDL_Window * window); | |
243 int (*CreateWindowFrom) (_THIS, SDL_Window * window, const void *data); | |
244 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
|
245 void (*SetWindowIcon) (_THIS, SDL_Window * window, SDL_Surface * icon); |
2753 | 246 void (*SetWindowPosition) (_THIS, SDL_Window * window); |
247 void (*SetWindowSize) (_THIS, SDL_Window * window); | |
248 void (*ShowWindow) (_THIS, SDL_Window * window); | |
249 void (*HideWindow) (_THIS, SDL_Window * window); | |
250 void (*RaiseWindow) (_THIS, SDL_Window * window); | |
251 void (*MaximizeWindow) (_THIS, SDL_Window * window); | |
252 void (*MinimizeWindow) (_THIS, SDL_Window * window); | |
253 void (*RestoreWindow) (_THIS, SDL_Window * window); | |
254 void (*SetWindowGrab) (_THIS, SDL_Window * window); | |
255 void (*DestroyWindow) (_THIS, SDL_Window * window); | |
0 | 256 |
2753 | 257 /* Get some platform dependent window information */ |
258 SDL_bool(*GetWindowWMInfo) (_THIS, SDL_Window * window, | |
259 struct SDL_SysWMinfo * info); | |
0 | 260 |
2753 | 261 /* * * */ |
262 /* | |
263 * OpenGL support | |
264 */ | |
265 int (*GL_LoadLibrary) (_THIS, const char *path); | |
266 void *(*GL_GetProcAddress) (_THIS, const char *proc); | |
3057
089a77aebb7d
Added test program for SDL_CreateWindowFrom()
Sam Lantinga <slouken@libsdl.org>
parents:
3025
diff
changeset
|
267 void (*GL_UnloadLibrary) (_THIS); |
2753 | 268 SDL_GLContext(*GL_CreateContext) (_THIS, SDL_Window * window); |
269 int (*GL_MakeCurrent) (_THIS, SDL_Window * window, SDL_GLContext context); | |
270 int (*GL_SetSwapInterval) (_THIS, int interval); | |
271 int (*GL_GetSwapInterval) (_THIS); | |
272 void (*GL_SwapWindow) (_THIS, SDL_Window * window); | |
273 void (*GL_DeleteContext) (_THIS, SDL_GLContext context); | |
0 | 274 |
2753 | 275 /* * * */ |
276 /* | |
277 * Event manager functions | |
278 */ | |
279 void (*PumpEvents) (_THIS); | |
0 | 280 |
3025
54fac87e1f34
Added an API to enable/disable the screen saver.
Sam Lantinga <slouken@libsdl.org>
parents:
2967
diff
changeset
|
281 /* Suspend the screensaver */ |
54fac87e1f34
Added an API to enable/disable the screen saver.
Sam Lantinga <slouken@libsdl.org>
parents:
2967
diff
changeset
|
282 void (*SuspendScreenSaver) (_THIS); |
54fac87e1f34
Added an API to enable/disable the screen saver.
Sam Lantinga <slouken@libsdl.org>
parents:
2967
diff
changeset
|
283 |
3280
00cace2d9080
Merged a cleaned up version of Jiang's code changes from Google Summer of Code 2009
Sam Lantinga <slouken@libsdl.org>
parents:
3276
diff
changeset
|
284 /* Text input */ |
00cace2d9080
Merged a cleaned up version of Jiang's code changes from Google Summer of Code 2009
Sam Lantinga <slouken@libsdl.org>
parents:
3276
diff
changeset
|
285 void (*StartTextInput) (_THIS); |
00cace2d9080
Merged a cleaned up version of Jiang's code changes from Google Summer of Code 2009
Sam Lantinga <slouken@libsdl.org>
parents:
3276
diff
changeset
|
286 void (*StopTextInput) (_THIS); |
00cace2d9080
Merged a cleaned up version of Jiang's code changes from Google Summer of Code 2009
Sam Lantinga <slouken@libsdl.org>
parents:
3276
diff
changeset
|
287 void (*SetTextInputRect) (_THIS, SDL_Rect *rect); |
00cace2d9080
Merged a cleaned up version of Jiang's code changes from Google Summer of Code 2009
Sam Lantinga <slouken@libsdl.org>
parents:
3276
diff
changeset
|
288 |
2753 | 289 /* * * */ |
290 /* 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
|
291 SDL_bool suspend_screensaver; |
2753 | 292 int num_displays; |
293 SDL_VideoDisplay *displays; | |
294 int current_display; | |
295 Uint32 next_object_id; | |
0 | 296 |
2753 | 297 /* * * */ |
298 /* Data used by the GL drivers */ | |
299 struct | |
300 { | |
301 int red_size; | |
302 int green_size; | |
303 int blue_size; | |
304 int alpha_size; | |
305 int depth_size; | |
306 int buffer_size; | |
307 int stencil_size; | |
308 int double_buffer; | |
309 int accum_red_size; | |
310 int accum_green_size; | |
311 int accum_blue_size; | |
312 int accum_alpha_size; | |
313 int stereo; | |
314 int multisamplebuffers; | |
315 int multisamplesamples; | |
316 int accelerated; | |
3100
7dc982143c06
Date: Sun, 22 Mar 2009 12:52:29 +0000
Sam Lantinga <slouken@libsdl.org>
parents:
3083
diff
changeset
|
317 int major_version; |
7dc982143c06
Date: Sun, 22 Mar 2009 12:52:29 +0000
Sam Lantinga <slouken@libsdl.org>
parents:
3083
diff
changeset
|
318 int minor_version; |
2753 | 319 int retained_backing; |
320 int driver_loaded; | |
321 char driver_path[256]; | |
322 void *dll_handle; | |
323 } gl_config; | |
0 | 324 |
2753 | 325 /* * * */ |
326 /* Data private to this driver */ | |
327 void *driverdata; | |
328 struct SDL_GLDriverData *gl_data; | |
0 | 329 |
3161
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
3100
diff
changeset
|
330 #if SDL_VIDEO_DRIVER_PANDORA |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
3100
diff
changeset
|
331 struct SDL_PrivateGLESData *gles_data; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
3100
diff
changeset
|
332 #endif |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
3100
diff
changeset
|
333 |
2753 | 334 /* * * */ |
335 /* The function used to dispose of this structure */ | |
336 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
|
337 }; |
0 | 338 |
2753 | 339 typedef struct VideoBootStrap |
340 { | |
341 const char *name; | |
342 const char *desc; | |
343 int (*available) (void); | |
344 SDL_VideoDevice *(*create) (int devindex); | |
345 } VideoBootStrap; | |
0 | 346 |
1931
103c6fec2a60
The Mac OS X Cocoa video driver is under construction...
Sam Lantinga <slouken@libsdl.org>
parents:
1928
diff
changeset
|
347 #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
|
348 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
|
349 #endif |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1330
diff
changeset
|
350 #if SDL_VIDEO_DRIVER_X11 |
0 | 351 extern VideoBootStrap X11_bootstrap; |
352 #endif | |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1330
diff
changeset
|
353 #if SDL_VIDEO_DRIVER_FBCON |
0 | 354 extern VideoBootStrap FBCON_bootstrap; |
355 #endif | |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1330
diff
changeset
|
356 #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
|
357 extern VideoBootStrap DirectFB_bootstrap; |
cb384ef627f6
Added support for DirectFB video on Linux (thanks Denis!)
Sam Lantinga <slouken@libsdl.org>
parents:
75
diff
changeset
|
358 #endif |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1330
diff
changeset
|
359 #if SDL_VIDEO_DRIVER_PS2GS |
0 | 360 extern VideoBootStrap PS2GS_bootstrap; |
361 #endif | |
3257
94fb40a4a9a7
Merged Martin's code changes from Google Summer of Code 2009
Sam Lantinga <slouken@libsdl.org>
parents:
3161
diff
changeset
|
362 #if SDL_VIDEO_DRIVER_PS3 |
94fb40a4a9a7
Merged Martin's code changes from Google Summer of Code 2009
Sam Lantinga <slouken@libsdl.org>
parents:
3161
diff
changeset
|
363 extern VideoBootStrap PS3_bootstrap; |
94fb40a4a9a7
Merged Martin's code changes from Google Summer of Code 2009
Sam Lantinga <slouken@libsdl.org>
parents:
3161
diff
changeset
|
364 #endif |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1330
diff
changeset
|
365 #if SDL_VIDEO_DRIVER_SVGALIB |
0 | 366 extern VideoBootStrap SVGALIB_bootstrap; |
367 #endif | |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1330
diff
changeset
|
368 #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
|
369 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
|
370 #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
|
371 #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
|
372 extern VideoBootStrap WIN32_bootstrap; |
0 | 373 #endif |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1330
diff
changeset
|
374 #if SDL_VIDEO_DRIVER_BWINDOW |
0 | 375 extern VideoBootStrap BWINDOW_bootstrap; |
376 #endif | |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1330
diff
changeset
|
377 #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
|
378 extern VideoBootStrap photon_bootstrap; |
0bc41e0361d3
Date: Mon, 2 Mar 2009 16:27:42 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
3057
diff
changeset
|
379 #endif |
0bc41e0361d3
Date: Mon, 2 Mar 2009 16:27:42 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
3057
diff
changeset
|
380 #if SDL_VIDEO_DRIVER_QNXGF |
0bc41e0361d3
Date: Mon, 2 Mar 2009 16:27:42 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
3057
diff
changeset
|
381 extern VideoBootStrap qnxgf_bootstrap; |
173
83018110dce8
Added initial support for EPOC/Symbian OS (thanks Hannu!)
Sam Lantinga <slouken@libsdl.org>
parents:
167
diff
changeset
|
382 #endif |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1330
diff
changeset
|
383 #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
|
384 extern VideoBootStrap EPOC_bootstrap; |
83018110dce8
Added initial support for EPOC/Symbian OS (thanks Hannu!)
Sam Lantinga <slouken@libsdl.org>
parents:
167
diff
changeset
|
385 #endif |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1330
diff
changeset
|
386 #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
|
387 extern VideoBootStrap RISCOS_bootstrap; |
550bccdf04bd
Added initial support for RISC OS (thanks Peter Naulls!)
Sam Lantinga <slouken@libsdl.org>
parents:
509
diff
changeset
|
388 #endif |
2742
b86247d21929
Added retained backing attribute, reference to UIKit renderer
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
2735
diff
changeset
|
389 #if SDL_VIDEO_DRIVER_UIKIT |
b86247d21929
Added retained backing attribute, reference to UIKit renderer
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
2735
diff
changeset
|
390 extern VideoBootStrap UIKIT_bootstrap; |
b86247d21929
Added retained backing attribute, reference to UIKit renderer
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
2735
diff
changeset
|
391 #endif |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1330
diff
changeset
|
392 #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
|
393 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
|
394 #endif |
2735
204be4fc2726
Final merge of Google Summer of Code 2008 work...
Sam Lantinga <slouken@libsdl.org>
parents:
2702
diff
changeset
|
395 #if SDL_VIDEO_DRIVER_NDS |
204be4fc2726
Final merge of Google Summer of Code 2008 work...
Sam Lantinga <slouken@libsdl.org>
parents:
2702
diff
changeset
|
396 extern VideoBootStrap NDS_bootstrap; |
204be4fc2726
Final merge of Google Summer of Code 2008 work...
Sam Lantinga <slouken@libsdl.org>
parents:
2702
diff
changeset
|
397 #endif |
3161
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
3100
diff
changeset
|
398 #if SDL_VIDEO_DRIVER_PANDORA |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
3100
diff
changeset
|
399 extern VideoBootStrap PND_bootstrap; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
3100
diff
changeset
|
400 #endif |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1330
diff
changeset
|
401 |
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
|
402 #define SDL_CurrentDisplay (_this->displays[_this->current_display]) |
3417
64a60c5d502e
Automatically initialize the video system and create a renderer to simplify use.
Sam Lantinga <slouken@libsdl.org>
parents:
3283
diff
changeset
|
403 #define SDL_CurrentRenderer (SDL_CurrentDisplay.current_renderer) |
0 | 404 |
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
|
405 extern SDL_VideoDevice *SDL_GetVideoDevice(); |
2753 | 406 extern int SDL_AddBasicVideoDisplay(const SDL_DisplayMode * desktop_mode); |
407 extern int SDL_AddVideoDisplay(const SDL_VideoDisplay * display); | |
408 extern SDL_bool | |
409 SDL_AddDisplayMode(int displayIndex, const SDL_DisplayMode * mode); | |
410 extern void | |
411 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
|
412 |
2753 | 413 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
|
414 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
|
415 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
|
416 |
2753 | 417 extern void SDL_OnWindowShown(SDL_Window * window); |
418 extern void SDL_OnWindowHidden(SDL_Window * window); | |
419 extern void SDL_OnWindowResized(SDL_Window * window); | |
420 extern void SDL_OnWindowFocusGained(SDL_Window * window); | |
421 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
|
422 extern SDL_WindowID SDL_GetFocusWindow(void); |
0 | 423 |
2753 | 424 #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
|
425 |
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 /* vi: set ts=4 sw=4 expandtab: */ |