Mercurial > sdl-ios-xcode
annotate src/video/SDL_sysvideo.h @ 5144:31e7f523ab3d
Making the API simpler, texture color and alpha modulation are supported by all renderers.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Mon, 31 Jan 2011 23:37:30 -0800 |
parents | da10636e5eca |
children | 2f44e6969a59 |
rev | line source |
---|---|
0 | 1 /* |
2 SDL - Simple DirectMedia Layer | |
3697 | 3 Copyright (C) 1997-2010 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" |
4782
b6930aefd008
Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
3701
diff
changeset
|
29 #include "SDL_shape.h" |
0 | 30 |
31 /* 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
|
32 |
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_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
|
34 typedef struct SDL_RenderDriver SDL_RenderDriver; |
4782
b6930aefd008
Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
3701
diff
changeset
|
35 typedef struct SDL_WindowShaper SDL_WindowShaper; |
b6930aefd008
Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
3701
diff
changeset
|
36 typedef struct SDL_ShapeDriver SDL_ShapeDriver; |
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
|
37 typedef struct SDL_VideoDisplay SDL_VideoDisplay; |
0 | 38 typedef struct SDL_VideoDevice SDL_VideoDevice; |
39 | |
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
|
40 /* Define the SDL texture structure */ |
2753 | 41 struct SDL_Texture |
42 { | |
3695
f6a8be3fefa0
Added magic to detect already freed or otherwise invalid windows and textures.
Sam Lantinga <slouken@libsdl.org>
parents:
3685
diff
changeset
|
43 const void *magic; |
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 */ | |
4929
aa8888658021
Use the enumerated type for blend and scale mode instead of int
Sam Lantinga <slouken@libsdl.org>
parents:
4862
diff
changeset
|
49 SDL_BlendMode blendMode; /**< The texture blend mode */ |
3685
64ce267332c6
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents:
3678
diff
changeset
|
50 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
|
51 |
2753 | 52 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
|
53 |
3685
64ce267332c6
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents:
3678
diff
changeset
|
54 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
|
55 |
3685
64ce267332c6
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents:
3678
diff
changeset
|
56 SDL_Texture *prev; |
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 (*UpdateTexture) (SDL_Renderer * renderer, SDL_Texture * texture, | |
81 const SDL_Rect * rect, const void *pixels, | |
82 int pitch); | |
83 int (*LockTexture) (SDL_Renderer * renderer, SDL_Texture * texture, | |
84 const SDL_Rect * rect, int markDirty, void **pixels, | |
85 int *pitch); | |
86 void (*UnlockTexture) (SDL_Renderer * renderer, SDL_Texture * texture); | |
87 void (*DirtyTexture) (SDL_Renderer * renderer, SDL_Texture * texture, | |
88 int numrects, const SDL_Rect * rects); | |
3596
f638ded38b8a
Added SDL_RenderClear() as a fast method of clearing the screen to the drawing color.
Sam Lantinga <slouken@libsdl.org>
parents:
3536
diff
changeset
|
89 int (*RenderClear) (SDL_Renderer * renderer); |
f638ded38b8a
Added SDL_RenderClear() as a fast method of clearing the screen to the drawing color.
Sam Lantinga <slouken@libsdl.org>
parents:
3536
diff
changeset
|
90 int (*RenderDrawPoints) (SDL_Renderer * renderer, const SDL_Point * points, |
f638ded38b8a
Added SDL_RenderClear() as a fast method of clearing the screen to the drawing color.
Sam Lantinga <slouken@libsdl.org>
parents:
3536
diff
changeset
|
91 int count); |
f638ded38b8a
Added SDL_RenderClear() as a fast method of clearing the screen to the drawing color.
Sam Lantinga <slouken@libsdl.org>
parents:
3536
diff
changeset
|
92 int (*RenderDrawLines) (SDL_Renderer * renderer, const SDL_Point * points, |
f638ded38b8a
Added SDL_RenderClear() as a fast method of clearing the screen to the drawing color.
Sam Lantinga <slouken@libsdl.org>
parents:
3536
diff
changeset
|
93 int count); |
f638ded38b8a
Added SDL_RenderClear() as a fast method of clearing the screen to the drawing color.
Sam Lantinga <slouken@libsdl.org>
parents:
3536
diff
changeset
|
94 int (*RenderDrawRects) (SDL_Renderer * renderer, const SDL_Rect ** rects, |
f638ded38b8a
Added SDL_RenderClear() as a fast method of clearing the screen to the drawing color.
Sam Lantinga <slouken@libsdl.org>
parents:
3536
diff
changeset
|
95 int count); |
f638ded38b8a
Added SDL_RenderClear() as a fast method of clearing the screen to the drawing color.
Sam Lantinga <slouken@libsdl.org>
parents:
3536
diff
changeset
|
96 int (*RenderFillRects) (SDL_Renderer * renderer, const SDL_Rect ** rects, |
f638ded38b8a
Added SDL_RenderClear() as a fast method of clearing the screen to the drawing color.
Sam Lantinga <slouken@libsdl.org>
parents:
3536
diff
changeset
|
97 int count); |
2753 | 98 int (*RenderCopy) (SDL_Renderer * renderer, SDL_Texture * texture, |
99 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
|
100 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
|
101 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
|
102 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
|
103 Uint32 format, const void * pixels, int pitch); |
2753 | 104 void (*RenderPresent) (SDL_Renderer * renderer); |
105 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
|
106 |
2753 | 107 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
|
108 |
2753 | 109 /* The current renderer info */ |
110 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
|
111 |
2753 | 112 /* The window associated with the renderer */ |
3685
64ce267332c6
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents:
3678
diff
changeset
|
113 SDL_Window *window; |
64ce267332c6
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents:
3678
diff
changeset
|
114 |
64ce267332c6
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents:
3678
diff
changeset
|
115 /* The list of textures */ |
64ce267332c6
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents:
3678
diff
changeset
|
116 SDL_Texture *textures; |
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
|
117 |
2884
9dde605c7540
Date: Fri, 19 Dec 2008 20:17:35 +0100
Sam Lantinga <slouken@libsdl.org>
parents:
2859
diff
changeset
|
118 Uint8 r, g, b, a; /**< Color for drawing operations values */ |
4929
aa8888658021
Use the enumerated type for blend and scale mode instead of int
Sam Lantinga <slouken@libsdl.org>
parents:
4862
diff
changeset
|
119 SDL_BlendMode blendMode; /**< The drawing blend mode */ |
2884
9dde605c7540
Date: Fri, 19 Dec 2008 20:17:35 +0100
Sam Lantinga <slouken@libsdl.org>
parents:
2859
diff
changeset
|
120 |
2753 | 121 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
|
122 }; |
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 /* Define the SDL render driver structure */ |
2753 | 125 struct SDL_RenderDriver |
126 { | |
127 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
|
128 |
2753 | 129 /* Info about the renderer capabilities */ |
130 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
|
131 }; |
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
|
132 |
4782
b6930aefd008
Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
3701
diff
changeset
|
133 /* Define the SDL window-shaper structure */ |
b6930aefd008
Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
3701
diff
changeset
|
134 struct SDL_WindowShaper |
b6930aefd008
Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
3701
diff
changeset
|
135 { |
b6930aefd008
Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
3701
diff
changeset
|
136 /* The window associated with the shaper */ |
b6930aefd008
Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
3701
diff
changeset
|
137 SDL_Window *window; |
b6930aefd008
Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
3701
diff
changeset
|
138 |
4851
5624fb0190b5
Changed flags and positioning (for the fake-hiding) as Andreas recommended.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
4849
diff
changeset
|
139 /* The user's specified coordinates for the window, for once we give it a shape. */ |
5624fb0190b5
Changed flags and positioning (for the fake-hiding) as Andreas recommended.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
4849
diff
changeset
|
140 Uint32 userx,usery; |
4782
b6930aefd008
Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
3701
diff
changeset
|
141 |
4807
c9eb95f29770
Added color-key mode and redid the code to work with it.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
4782
diff
changeset
|
142 /* The parameters for shape calculation. */ |
c9eb95f29770
Added color-key mode and redid the code to work with it.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
4782
diff
changeset
|
143 SDL_WindowShapeMode mode; |
4782
b6930aefd008
Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
3701
diff
changeset
|
144 |
b6930aefd008
Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
3701
diff
changeset
|
145 /* Has this window been assigned a shape? */ |
b6930aefd008
Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
3701
diff
changeset
|
146 SDL_bool hasshape; |
b6930aefd008
Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
3701
diff
changeset
|
147 |
b6930aefd008
Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
3701
diff
changeset
|
148 void *driverdata; |
b6930aefd008
Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
3701
diff
changeset
|
149 }; |
b6930aefd008
Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
3701
diff
changeset
|
150 |
b6930aefd008
Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
3701
diff
changeset
|
151 /* Define the SDL shape driver structure */ |
b6930aefd008
Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
3701
diff
changeset
|
152 struct SDL_ShapeDriver |
b6930aefd008
Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
3701
diff
changeset
|
153 { |
b6930aefd008
Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
3701
diff
changeset
|
154 SDL_WindowShaper *(*CreateShaper)(SDL_Window * window); |
4849
0b918c186938
Finally got the Win32 API code for shaping to work! Just need to fix SDL_CalculateShapeTree() now!
egottlieb
parents:
4810
diff
changeset
|
155 int (*SetWindowShape)(SDL_WindowShaper *shaper,SDL_Surface *shape,SDL_WindowShapeMode *shape_mode); |
4782
b6930aefd008
Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
3701
diff
changeset
|
156 int (*ResizeWindowShape)(SDL_Window *window); |
b6930aefd008
Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
3701
diff
changeset
|
157 }; |
b6930aefd008
Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
3701
diff
changeset
|
158 |
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 /* Define the SDL window structure, corresponding to toplevel windows */ |
2753 | 160 struct SDL_Window |
161 { | |
3695
f6a8be3fefa0
Added magic to detect already freed or otherwise invalid windows and textures.
Sam Lantinga <slouken@libsdl.org>
parents:
3685
diff
changeset
|
162 const void *magic; |
2753 | 163 Uint32 id; |
164 char *title; | |
165 int x, y; | |
166 int w, h; | |
167 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
|
168 |
3685
64ce267332c6
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents:
3678
diff
changeset
|
169 SDL_VideoDisplay *display; |
2753 | 170 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
|
171 |
3500
4b594623401b
Work in progress on multi-display support:
Sam Lantinga <slouken@libsdl.org>
parents:
3435
diff
changeset
|
172 SDL_DisplayMode fullscreen_mode; |
4782
b6930aefd008
Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
3701
diff
changeset
|
173 |
b6930aefd008
Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
3701
diff
changeset
|
174 SDL_WindowShaper *shaper; |
3500
4b594623401b
Work in progress on multi-display support:
Sam Lantinga <slouken@libsdl.org>
parents:
3435
diff
changeset
|
175 |
2753 | 176 void *userdata; |
177 void *driverdata; | |
3685
64ce267332c6
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents:
3678
diff
changeset
|
178 |
64ce267332c6
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents:
3678
diff
changeset
|
179 SDL_Window *prev; |
64ce267332c6
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents:
3678
diff
changeset
|
180 SDL_Window *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
|
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 #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
|
183 (((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
|
184 ((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
|
185 !((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
|
186 |
2742
b86247d21929
Added retained backing attribute, reference to UIKit renderer
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
2735
diff
changeset
|
187 /* |
b86247d21929
Added retained backing attribute, reference to UIKit renderer
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
2735
diff
changeset
|
188 * 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
|
189 * 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
|
190 */ |
2753 | 191 struct SDL_VideoDisplay |
192 { | |
193 int max_display_modes; | |
194 int num_display_modes; | |
195 SDL_DisplayMode *display_modes; | |
196 SDL_DisplayMode desktop_mode; | |
197 SDL_DisplayMode current_mode; | |
3502
98a819296cdc
Whenever a window becomes fullscreen, shown, unminimized, and has input focus it will change the display to the corresponding fullscreen video mode.
Sam Lantinga <slouken@libsdl.org>
parents:
3501
diff
changeset
|
198 SDL_bool updating_fullscreen; |
2753 | 199 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
|
200 |
2753 | 201 Uint16 *gamma; |
202 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
|
203 |
2753 | 204 int num_render_drivers; |
205 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
|
206 |
2753 | 207 SDL_Window *windows; |
3517
e7eec78e4b92
Fixed mouse events for fullscreen windows on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents:
3511
diff
changeset
|
208 SDL_Window *fullscreen_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
|
209 |
2753 | 210 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
|
211 |
2753 | 212 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
|
213 |
2753 | 214 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
|
215 }; |
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
|
216 |
0 | 217 /* Define the SDL video driver structure */ |
218 #define _THIS SDL_VideoDevice *_this | |
219 | |
2753 | 220 struct SDL_VideoDevice |
221 { | |
222 /* * * */ | |
223 /* The name of this video driver */ | |
224 const char *name; | |
0 | 225 |
2753 | 226 /* * * */ |
227 /* Initialization/Query functions */ | |
0 | 228 |
2753 | 229 /* |
230 * Initialize the native video subsystem, filling in the list of | |
231 * displays for this driver, returning 0 or -1 if there's an error. | |
232 */ | |
233 int (*VideoInit) (_THIS); | |
0 | 234 |
2753 | 235 /* |
236 * Reverse the effects VideoInit() -- called if VideoInit() fails or | |
237 * if the application is shutting down the video subsystem. | |
238 */ | |
239 void (*VideoQuit) (_THIS); | |
1913
83420da906a5
Implemented Windows OpenGL support
Sam Lantinga <slouken@libsdl.org>
parents:
1912
diff
changeset
|
240 |
2753 | 241 /* * * */ |
242 /* | |
243 * Display functions | |
244 */ | |
0 | 245 |
2753 | 246 /* |
3528
59ff7a2beb57
Added an API function to query geometry of multiple monitors:
Sam Lantinga <slouken@libsdl.org>
parents:
3517
diff
changeset
|
247 * Get the bounds of a display |
59ff7a2beb57
Added an API function to query geometry of multiple monitors:
Sam Lantinga <slouken@libsdl.org>
parents:
3517
diff
changeset
|
248 */ |
59ff7a2beb57
Added an API function to query geometry of multiple monitors:
Sam Lantinga <slouken@libsdl.org>
parents:
3517
diff
changeset
|
249 int (*GetDisplayBounds) (_THIS, SDL_VideoDisplay * display, SDL_Rect * rect); |
59ff7a2beb57
Added an API function to query geometry of multiple monitors:
Sam Lantinga <slouken@libsdl.org>
parents:
3517
diff
changeset
|
250 |
59ff7a2beb57
Added an API function to query geometry of multiple monitors:
Sam Lantinga <slouken@libsdl.org>
parents:
3517
diff
changeset
|
251 /* |
2753 | 252 * Get a list of the available display modes. e.g. |
253 * SDL_AddDisplayMode(_this->current_display, mode) | |
254 */ | |
3500
4b594623401b
Work in progress on multi-display support:
Sam Lantinga <slouken@libsdl.org>
parents:
3435
diff
changeset
|
255 void (*GetDisplayModes) (_THIS, SDL_VideoDisplay * display); |
0 | 256 |
2753 | 257 /* |
258 * Setting the display mode is independent of creating windows, so | |
259 * when the display mode is changed, all existing windows should have | |
260 * their data updated accordingly, including the display surfaces | |
261 * associated with them. | |
262 */ | |
3500
4b594623401b
Work in progress on multi-display support:
Sam Lantinga <slouken@libsdl.org>
parents:
3435
diff
changeset
|
263 int (*SetDisplayMode) (_THIS, SDL_VideoDisplay * display, SDL_DisplayMode * mode); |
0 | 264 |
2753 | 265 /* Set the color entries of the display palette */ |
3500
4b594623401b
Work in progress on multi-display support:
Sam Lantinga <slouken@libsdl.org>
parents:
3435
diff
changeset
|
266 int (*SetDisplayPalette) (_THIS, SDL_VideoDisplay * display, SDL_Palette * palette); |
2742
b86247d21929
Added retained backing attribute, reference to UIKit renderer
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
2735
diff
changeset
|
267 |
2753 | 268 /* Get the color entries of the display palette */ |
3500
4b594623401b
Work in progress on multi-display support:
Sam Lantinga <slouken@libsdl.org>
parents:
3435
diff
changeset
|
269 int (*GetDisplayPalette) (_THIS, SDL_VideoDisplay * display, SDL_Palette * palette); |
0 | 270 |
2753 | 271 /* Set the gamma ramp */ |
3500
4b594623401b
Work in progress on multi-display support:
Sam Lantinga <slouken@libsdl.org>
parents:
3435
diff
changeset
|
272 int (*SetDisplayGammaRamp) (_THIS, SDL_VideoDisplay * display, Uint16 * ramp); |
2742
b86247d21929
Added retained backing attribute, reference to UIKit renderer
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
2735
diff
changeset
|
273 |
2753 | 274 /* Get the gamma ramp */ |
3500
4b594623401b
Work in progress on multi-display support:
Sam Lantinga <slouken@libsdl.org>
parents:
3435
diff
changeset
|
275 int (*GetDisplayGammaRamp) (_THIS, SDL_VideoDisplay * display, Uint16 * ramp); |
0 | 276 |
2753 | 277 /* * * */ |
278 /* | |
279 * Window functions | |
280 */ | |
281 int (*CreateWindow) (_THIS, SDL_Window * window); | |
282 int (*CreateWindowFrom) (_THIS, SDL_Window * window, const void *data); | |
283 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
|
284 void (*SetWindowIcon) (_THIS, SDL_Window * window, SDL_Surface * icon); |
2753 | 285 void (*SetWindowPosition) (_THIS, SDL_Window * window); |
286 void (*SetWindowSize) (_THIS, SDL_Window * window); | |
287 void (*ShowWindow) (_THIS, SDL_Window * window); | |
288 void (*HideWindow) (_THIS, SDL_Window * window); | |
289 void (*RaiseWindow) (_THIS, SDL_Window * window); | |
290 void (*MaximizeWindow) (_THIS, SDL_Window * window); | |
291 void (*MinimizeWindow) (_THIS, SDL_Window * window); | |
292 void (*RestoreWindow) (_THIS, SDL_Window * window); | |
293 void (*SetWindowGrab) (_THIS, SDL_Window * window); | |
294 void (*DestroyWindow) (_THIS, SDL_Window * window); | |
4782
b6930aefd008
Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
3701
diff
changeset
|
295 |
b6930aefd008
Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
3701
diff
changeset
|
296 /* * * */ |
b6930aefd008
Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
3701
diff
changeset
|
297 /* |
b6930aefd008
Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
3701
diff
changeset
|
298 * Shaped-window functions |
b6930aefd008
Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
3701
diff
changeset
|
299 */ |
b6930aefd008
Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents:
3701
diff
changeset
|
300 SDL_ShapeDriver shape_driver; |
0 | 301 |
2753 | 302 /* Get some platform dependent window information */ |
303 SDL_bool(*GetWindowWMInfo) (_THIS, SDL_Window * window, | |
304 struct SDL_SysWMinfo * info); | |
0 | 305 |
2753 | 306 /* * * */ |
307 /* | |
308 * OpenGL support | |
309 */ | |
310 int (*GL_LoadLibrary) (_THIS, const char *path); | |
311 void *(*GL_GetProcAddress) (_THIS, const char *proc); | |
3057
089a77aebb7d
Added test program for SDL_CreateWindowFrom()
Sam Lantinga <slouken@libsdl.org>
parents:
3025
diff
changeset
|
312 void (*GL_UnloadLibrary) (_THIS); |
2753 | 313 SDL_GLContext(*GL_CreateContext) (_THIS, SDL_Window * window); |
314 int (*GL_MakeCurrent) (_THIS, SDL_Window * window, SDL_GLContext context); | |
315 int (*GL_SetSwapInterval) (_THIS, int interval); | |
316 int (*GL_GetSwapInterval) (_THIS); | |
317 void (*GL_SwapWindow) (_THIS, SDL_Window * window); | |
318 void (*GL_DeleteContext) (_THIS, SDL_GLContext context); | |
0 | 319 |
2753 | 320 /* * * */ |
321 /* | |
322 * Event manager functions | |
323 */ | |
324 void (*PumpEvents) (_THIS); | |
0 | 325 |
3025
54fac87e1f34
Added an API to enable/disable the screen saver.
Sam Lantinga <slouken@libsdl.org>
parents:
2967
diff
changeset
|
326 /* Suspend the screensaver */ |
54fac87e1f34
Added an API to enable/disable the screen saver.
Sam Lantinga <slouken@libsdl.org>
parents:
2967
diff
changeset
|
327 void (*SuspendScreenSaver) (_THIS); |
54fac87e1f34
Added an API to enable/disable the screen saver.
Sam Lantinga <slouken@libsdl.org>
parents:
2967
diff
changeset
|
328 |
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
|
329 /* 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
|
330 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
|
331 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
|
332 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
|
333 |
4495
dbbfdb9ea716
Simplified clipboard API for sanity's sake.
Sam Lantinga <slouken@libsdl.org>
parents:
4472
diff
changeset
|
334 /* Clipboard */ |
dbbfdb9ea716
Simplified clipboard API for sanity's sake.
Sam Lantinga <slouken@libsdl.org>
parents:
4472
diff
changeset
|
335 int (*SetClipboardText) (_THIS, const char *text); |
dbbfdb9ea716
Simplified clipboard API for sanity's sake.
Sam Lantinga <slouken@libsdl.org>
parents:
4472
diff
changeset
|
336 char * (*GetClipboardText) (_THIS); |
dbbfdb9ea716
Simplified clipboard API for sanity's sake.
Sam Lantinga <slouken@libsdl.org>
parents:
4472
diff
changeset
|
337 SDL_bool (*HasClipboardText) (_THIS); |
dbbfdb9ea716
Simplified clipboard API for sanity's sake.
Sam Lantinga <slouken@libsdl.org>
parents:
4472
diff
changeset
|
338 |
2753 | 339 /* * * */ |
340 /* 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
|
341 SDL_bool suspend_screensaver; |
2753 | 342 int num_displays; |
343 SDL_VideoDisplay *displays; | |
344 int current_display; | |
3695
f6a8be3fefa0
Added magic to detect already freed or otherwise invalid windows and textures.
Sam Lantinga <slouken@libsdl.org>
parents:
3685
diff
changeset
|
345 Uint8 window_magic; |
f6a8be3fefa0
Added magic to detect already freed or otherwise invalid windows and textures.
Sam Lantinga <slouken@libsdl.org>
parents:
3685
diff
changeset
|
346 Uint8 texture_magic; |
2753 | 347 Uint32 next_object_id; |
4495
dbbfdb9ea716
Simplified clipboard API for sanity's sake.
Sam Lantinga <slouken@libsdl.org>
parents:
4472
diff
changeset
|
348 char * clipboard_text; |
0 | 349 |
2753 | 350 /* * * */ |
351 /* Data used by the GL drivers */ | |
352 struct | |
353 { | |
354 int red_size; | |
355 int green_size; | |
356 int blue_size; | |
357 int alpha_size; | |
358 int depth_size; | |
359 int buffer_size; | |
360 int stencil_size; | |
361 int double_buffer; | |
362 int accum_red_size; | |
363 int accum_green_size; | |
364 int accum_blue_size; | |
365 int accum_alpha_size; | |
366 int stereo; | |
367 int multisamplebuffers; | |
368 int multisamplesamples; | |
369 int accelerated; | |
3100
7dc982143c06
Date: Sun, 22 Mar 2009 12:52:29 +0000
Sam Lantinga <slouken@libsdl.org>
parents:
3083
diff
changeset
|
370 int major_version; |
7dc982143c06
Date: Sun, 22 Mar 2009 12:52:29 +0000
Sam Lantinga <slouken@libsdl.org>
parents:
3083
diff
changeset
|
371 int minor_version; |
2753 | 372 int retained_backing; |
373 int driver_loaded; | |
374 char driver_path[256]; | |
375 void *dll_handle; | |
376 } gl_config; | |
0 | 377 |
2753 | 378 /* * * */ |
379 /* Data private to this driver */ | |
380 void *driverdata; | |
381 struct SDL_GLDriverData *gl_data; | |
0 | 382 |
3161
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
3100
diff
changeset
|
383 #if SDL_VIDEO_DRIVER_PANDORA |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
3100
diff
changeset
|
384 struct SDL_PrivateGLESData *gles_data; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
3100
diff
changeset
|
385 #endif |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
3100
diff
changeset
|
386 |
2753 | 387 /* * * */ |
388 /* The function used to dispose of this structure */ | |
389 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
|
390 }; |
0 | 391 |
2753 | 392 typedef struct VideoBootStrap |
393 { | |
394 const char *name; | |
395 const char *desc; | |
396 int (*available) (void); | |
397 SDL_VideoDevice *(*create) (int devindex); | |
398 } VideoBootStrap; | |
0 | 399 |
1931
103c6fec2a60
The Mac OS X Cocoa video driver is under construction...
Sam Lantinga <slouken@libsdl.org>
parents:
1928
diff
changeset
|
400 #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
|
401 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
|
402 #endif |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1330
diff
changeset
|
403 #if SDL_VIDEO_DRIVER_X11 |
0 | 404 extern VideoBootStrap X11_bootstrap; |
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 #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
|
407 extern VideoBootStrap DirectFB_bootstrap; |
cb384ef627f6
Added support for DirectFB video on Linux (thanks Denis!)
Sam Lantinga <slouken@libsdl.org>
parents:
75
diff
changeset
|
408 #endif |
5062 | 409 #if SDL_VIDEO_DRIVER_WINDOWS |
410 extern VideoBootStrap WINDOWS_bootstrap; | |
0 | 411 #endif |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1330
diff
changeset
|
412 #if SDL_VIDEO_DRIVER_BWINDOW |
0 | 413 extern VideoBootStrap BWINDOW_bootstrap; |
414 #endif | |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1330
diff
changeset
|
415 #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
|
416 extern VideoBootStrap photon_bootstrap; |
0bc41e0361d3
Date: Mon, 2 Mar 2009 16:27:42 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
3057
diff
changeset
|
417 #endif |
0bc41e0361d3
Date: Mon, 2 Mar 2009 16:27:42 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
3057
diff
changeset
|
418 #if SDL_VIDEO_DRIVER_QNXGF |
0bc41e0361d3
Date: Mon, 2 Mar 2009 16:27:42 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
3057
diff
changeset
|
419 extern VideoBootStrap qnxgf_bootstrap; |
173
83018110dce8
Added initial support for EPOC/Symbian OS (thanks Hannu!)
Sam Lantinga <slouken@libsdl.org>
parents:
167
diff
changeset
|
420 #endif |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1330
diff
changeset
|
421 #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
|
422 extern VideoBootStrap EPOC_bootstrap; |
83018110dce8
Added initial support for EPOC/Symbian OS (thanks Hannu!)
Sam Lantinga <slouken@libsdl.org>
parents:
167
diff
changeset
|
423 #endif |
2742
b86247d21929
Added retained backing attribute, reference to UIKit renderer
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
2735
diff
changeset
|
424 #if SDL_VIDEO_DRIVER_UIKIT |
b86247d21929
Added retained backing attribute, reference to UIKit renderer
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
2735
diff
changeset
|
425 extern VideoBootStrap UIKIT_bootstrap; |
b86247d21929
Added retained backing attribute, reference to UIKit renderer
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents:
2735
diff
changeset
|
426 #endif |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1330
diff
changeset
|
427 #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
|
428 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
|
429 #endif |
2735
204be4fc2726
Final merge of Google Summer of Code 2008 work...
Sam Lantinga <slouken@libsdl.org>
parents:
2702
diff
changeset
|
430 #if SDL_VIDEO_DRIVER_NDS |
204be4fc2726
Final merge of Google Summer of Code 2008 work...
Sam Lantinga <slouken@libsdl.org>
parents:
2702
diff
changeset
|
431 extern VideoBootStrap NDS_bootstrap; |
204be4fc2726
Final merge of Google Summer of Code 2008 work...
Sam Lantinga <slouken@libsdl.org>
parents:
2702
diff
changeset
|
432 #endif |
3161
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
3100
diff
changeset
|
433 #if SDL_VIDEO_DRIVER_PANDORA |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
3100
diff
changeset
|
434 extern VideoBootStrap PND_bootstrap; |
494559cc723b
OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents:
3100
diff
changeset
|
435 #endif |
4701
d40bb3165d2b
Added (partially implemented) android video backend and associated files needed to build
Paul Hunkin <paul@bieh.net>
parents:
3701
diff
changeset
|
436 #if SDL_VIDEO_DRIVER_ANDROID |
d40bb3165d2b
Added (partially implemented) android video backend and associated files needed to build
Paul Hunkin <paul@bieh.net>
parents:
3701
diff
changeset
|
437 extern VideoBootStrap Android_bootstrap; |
d40bb3165d2b
Added (partially implemented) android video backend and associated files needed to build
Paul Hunkin <paul@bieh.net>
parents:
3701
diff
changeset
|
438 #endif |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1330
diff
changeset
|
439 |
3685
64ce267332c6
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents:
3678
diff
changeset
|
440 #define SDL_CurrentDisplay (&_this->displays[_this->current_display]) |
64ce267332c6
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents:
3678
diff
changeset
|
441 #define SDL_CurrentRenderer (SDL_CurrentDisplay->current_renderer) |
0 | 442 |
4472
791b3256fb22
Mostly cleaned up warnings with -Wmissing-prototypes
Sam Lantinga <slouken@libsdl.org>
parents:
3701
diff
changeset
|
443 extern SDL_VideoDevice *SDL_GetVideoDevice(void); |
2753 | 444 extern int SDL_AddBasicVideoDisplay(const SDL_DisplayMode * desktop_mode); |
445 extern int SDL_AddVideoDisplay(const SDL_VideoDisplay * display); | |
3500
4b594623401b
Work in progress on multi-display support:
Sam Lantinga <slouken@libsdl.org>
parents:
3435
diff
changeset
|
446 extern SDL_bool SDL_AddDisplayMode(SDL_VideoDisplay *display, const SDL_DisplayMode * mode); |
4b594623401b
Work in progress on multi-display support:
Sam Lantinga <slouken@libsdl.org>
parents:
3435
diff
changeset
|
447 extern int SDL_GetNumDisplayModesForDisplay(SDL_VideoDisplay * display); |
4b594623401b
Work in progress on multi-display support:
Sam Lantinga <slouken@libsdl.org>
parents:
3435
diff
changeset
|
448 extern int SDL_GetDisplayModeForDisplay(SDL_VideoDisplay * display, int index, SDL_DisplayMode * mode); |
4b594623401b
Work in progress on multi-display support:
Sam Lantinga <slouken@libsdl.org>
parents:
3435
diff
changeset
|
449 extern int SDL_GetDesktopDisplayModeForDisplay(SDL_VideoDisplay * display, SDL_DisplayMode * mode); |
4b594623401b
Work in progress on multi-display support:
Sam Lantinga <slouken@libsdl.org>
parents:
3435
diff
changeset
|
450 extern int SDL_GetCurrentDisplayModeForDisplay(SDL_VideoDisplay * display, SDL_DisplayMode * mode); |
4b594623401b
Work in progress on multi-display support:
Sam Lantinga <slouken@libsdl.org>
parents:
3435
diff
changeset
|
451 extern SDL_DisplayMode * SDL_GetClosestDisplayModeForDisplay(SDL_VideoDisplay * display, const SDL_DisplayMode * mode, SDL_DisplayMode * closest); |
4b594623401b
Work in progress on multi-display support:
Sam Lantinga <slouken@libsdl.org>
parents:
3435
diff
changeset
|
452 extern int SDL_SetDisplayModeForDisplay(SDL_VideoDisplay * display, const SDL_DisplayMode * mode); |
3501
467e67d301f3
Removed a little redundancy in the naming
Sam Lantinga <slouken@libsdl.org>
parents:
3500
diff
changeset
|
453 extern int SDL_SetPaletteForDisplay(SDL_VideoDisplay * display, const SDL_Color * colors, int firstcolor, int ncolors); |
467e67d301f3
Removed a little redundancy in the naming
Sam Lantinga <slouken@libsdl.org>
parents:
3500
diff
changeset
|
454 extern int SDL_GetPaletteForDisplay(SDL_VideoDisplay * display, SDL_Color * colors, int firstcolor, int ncolors); |
3500
4b594623401b
Work in progress on multi-display support:
Sam Lantinga <slouken@libsdl.org>
parents:
3435
diff
changeset
|
455 extern int SDL_SetGammaRampForDisplay(SDL_VideoDisplay * display, const Uint16 * red, const Uint16 * green, const Uint16 * blue); |
4b594623401b
Work in progress on multi-display support:
Sam Lantinga <slouken@libsdl.org>
parents:
3435
diff
changeset
|
456 extern int SDL_GetGammaRampForDisplay(SDL_VideoDisplay * display, Uint16 * red, Uint16 * green, Uint16 * blue); |
3501
467e67d301f3
Removed a little redundancy in the naming
Sam Lantinga <slouken@libsdl.org>
parents:
3500
diff
changeset
|
457 extern void SDL_AddRenderDriver(SDL_VideoDisplay *display, 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
|
458 |
2753 | 459 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
|
460 |
2753 | 461 extern void SDL_OnWindowShown(SDL_Window * window); |
462 extern void SDL_OnWindowHidden(SDL_Window * window); | |
463 extern void SDL_OnWindowResized(SDL_Window * window); | |
3502
98a819296cdc
Whenever a window becomes fullscreen, shown, unminimized, and has input focus it will change the display to the corresponding fullscreen video mode.
Sam Lantinga <slouken@libsdl.org>
parents:
3501
diff
changeset
|
464 extern void SDL_OnWindowMinimized(SDL_Window * window); |
98a819296cdc
Whenever a window becomes fullscreen, shown, unminimized, and has input focus it will change the display to the corresponding fullscreen video mode.
Sam Lantinga <slouken@libsdl.org>
parents:
3501
diff
changeset
|
465 extern void SDL_OnWindowRestored(SDL_Window * window); |
2753 | 466 extern void SDL_OnWindowFocusGained(SDL_Window * window); |
467 extern void SDL_OnWindowFocusLost(SDL_Window * window); | |
3685
64ce267332c6
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
Sam Lantinga <slouken@libsdl.org>
parents:
3678
diff
changeset
|
468 extern SDL_Window * SDL_GetFocusWindow(void); |
0 | 469 |
2753 | 470 #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
|
471 |
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
|
472 /* vi: set ts=4 sw=4 expandtab: */ |