annotate src/video/SDL_sysvideo.h @ 5004:0c72ae7b7cb2

Added native atomic operations for Windows, Mac OS X, and gcc compiler intrinsics. Changed the CAS return value to bool, so it's efficient with OSAtomicCompareAndSwap32Barrier() Added an atomic test adapted from code by Michael Davidsaver
author Sam Lantinga <slouken@libsdl.org>
date Sun, 16 Jan 2011 15:16:39 -0800
parents aa8888658021
children 1cee937d9fcc
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
3697
f7b03b6838cb Fixed bug #926
Sam Lantinga <slouken@libsdl.org>
parents: 3695
diff changeset
3 Copyright (C) 1997-2010 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"
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
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
30
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
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
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
38 typedef struct SDL_VideoDevice SDL_VideoDevice;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
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
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
41 struct SDL_Texture
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
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
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 */
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 */
aa8888658021 Use the enumerated type for blend and scale mode instead of int
Sam Lantinga <slouken@libsdl.org>
parents: 4862
diff changeset
50 SDL_ScaleMode scaleMode; /**< The texture scale 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
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
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
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
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
57 SDL_Texture *prev;
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
58 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
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
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
61 /* Define the SDL renderer structure */
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
62 struct SDL_Renderer
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
63 {
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
64 int (*ActivateRenderer) (SDL_Renderer * renderer);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
65 int (*DisplayModeChanged) (SDL_Renderer * renderer);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
66 int (*CreateTexture) (SDL_Renderer * renderer, SDL_Texture * texture);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
67 int (*QueryTexturePixels) (SDL_Renderer * renderer, SDL_Texture * texture,
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
68 void **pixels, int *pitch);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
69 int (*SetTexturePalette) (SDL_Renderer * renderer, SDL_Texture * texture,
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
70 const SDL_Color * colors, int firstcolor,
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
71 int ncolors);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
72 int (*GetTexturePalette) (SDL_Renderer * renderer, SDL_Texture * texture,
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
73 SDL_Color * colors, int firstcolor,
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
74 int ncolors);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
75 int (*SetTextureColorMod) (SDL_Renderer * renderer,
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
76 SDL_Texture * texture);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
77 int (*SetTextureAlphaMod) (SDL_Renderer * renderer,
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
78 SDL_Texture * texture);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
79 int (*SetTextureBlendMode) (SDL_Renderer * renderer,
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
80 SDL_Texture * texture);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
81 int (*SetTextureScaleMode) (SDL_Renderer * renderer,
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
82 SDL_Texture * texture);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
83 int (*UpdateTexture) (SDL_Renderer * renderer, SDL_Texture * texture,
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
84 const SDL_Rect * rect, const void *pixels,
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
85 int pitch);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
86 int (*LockTexture) (SDL_Renderer * renderer, SDL_Texture * texture,
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
87 const SDL_Rect * rect, int markDirty, void **pixels,
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
88 int *pitch);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
89 void (*UnlockTexture) (SDL_Renderer * renderer, SDL_Texture * texture);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
90 void (*DirtyTexture) (SDL_Renderer * renderer, SDL_Texture * texture,
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
91 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
92 int (*SetDrawColor) (SDL_Renderer * renderer);
9dde605c7540 Date: Fri, 19 Dec 2008 20:17:35 +0100
Sam Lantinga <slouken@libsdl.org>
parents: 2859
diff changeset
93 int (*SetDrawBlendMode) (SDL_Renderer * renderer);
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
94 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
95 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
96 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
97 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
98 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
99 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
100 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
101 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
102 int count);
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
103 int (*RenderCopy) (SDL_Renderer * renderer, SDL_Texture * texture,
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
104 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
105 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
106 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
107 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
108 Uint32 format, const void * pixels, int pitch);
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
109 void (*RenderPresent) (SDL_Renderer * renderer);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
110 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
111
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
112 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
113
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
114 /* The current renderer info */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
115 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
116
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
117 /* 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
118 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
119
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
120 /* 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
121 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
122
2884
9dde605c7540 Date: Fri, 19 Dec 2008 20:17:35 +0100
Sam Lantinga <slouken@libsdl.org>
parents: 2859
diff changeset
123 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
124 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
125
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
126 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
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 render driver structure */
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
130 struct SDL_RenderDriver
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
131 {
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
132 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
133
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
134 /* Info about the renderer capabilities */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
135 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
136 };
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
4782
b6930aefd008 Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents: 3701
diff changeset
138 /* 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
139 struct SDL_WindowShaper
b6930aefd008 Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents: 3701
diff changeset
140 {
b6930aefd008 Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents: 3701
diff changeset
141 /* 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
142 SDL_Window *window;
b6930aefd008 Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents: 3701
diff changeset
143
4851
5624fb0190b5 Changed flags and positioning (for the fake-hiding) as Andreas recommended.
Eli Gottlieb <eligottlieb@gmail.com>
parents: 4849
diff changeset
144 /* 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
145 Uint32 userx,usery;
4782
b6930aefd008 Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents: 3701
diff changeset
146
4807
c9eb95f29770 Added color-key mode and redid the code to work with it.
Eli Gottlieb <eligottlieb@gmail.com>
parents: 4782
diff changeset
147 /* 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
148 SDL_WindowShapeMode mode;
4782
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 /* 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
151 SDL_bool hasshape;
b6930aefd008 Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents: 3701
diff changeset
152
b6930aefd008 Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents: 3701
diff changeset
153 void *driverdata;
b6930aefd008 Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents: 3701
diff changeset
154 };
b6930aefd008 Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents: 3701
diff changeset
155
b6930aefd008 Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents: 3701
diff changeset
156 /* 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
157 struct SDL_ShapeDriver
b6930aefd008 Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents: 3701
diff changeset
158 {
b6930aefd008 Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents: 3701
diff changeset
159 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
160 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
161 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
162 };
b6930aefd008 Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents: 3701
diff changeset
163
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
164 /* Define the SDL window structure, corresponding to toplevel windows */
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
165 struct SDL_Window
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
166 {
3695
f6a8be3fefa0 Added magic to detect already freed or otherwise invalid windows and textures.
Sam Lantinga <slouken@libsdl.org>
parents: 3685
diff changeset
167 const void *magic;
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
168 Uint32 id;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
169 char *title;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
170 int x, y;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
171 int w, h;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
172 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
173
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
174 SDL_VideoDisplay *display;
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
175 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
176
3500
4b594623401b Work in progress on multi-display support:
Sam Lantinga <slouken@libsdl.org>
parents: 3435
diff changeset
177 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
178
b6930aefd008 Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents: 3701
diff changeset
179 SDL_WindowShaper *shaper;
3500
4b594623401b Work in progress on multi-display support:
Sam Lantinga <slouken@libsdl.org>
parents: 3435
diff changeset
180
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
181 void *userdata;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
182 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
183
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
184 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
185 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
186 };
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
187 #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
188 (((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
189 ((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
190 !((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
191
2742
b86247d21929 Added retained backing attribute, reference to UIKit renderer
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2735
diff changeset
192 /*
b86247d21929 Added retained backing attribute, reference to UIKit renderer
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2735
diff changeset
193 * 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
194 * 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
195 */
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
196 struct SDL_VideoDisplay
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
197 {
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
198 int max_display_modes;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
199 int num_display_modes;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
200 SDL_DisplayMode *display_modes;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
201 SDL_DisplayMode desktop_mode;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
202 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
203 SDL_bool updating_fullscreen;
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
204 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
205
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
206 Uint16 *gamma;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
207 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
208
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
209 int num_render_drivers;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
210 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
211
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
212 SDL_Window *windows;
3517
e7eec78e4b92 Fixed mouse events for fullscreen windows on Mac OS X
Sam Lantinga <slouken@libsdl.org>
parents: 3511
diff changeset
213 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
214
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
215 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
216
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
217 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
218
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
219 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
220 };
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
221
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
222 /* Define the SDL video driver structure */
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
223 #define _THIS SDL_VideoDevice *_this
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
224
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
225 struct SDL_VideoDevice
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
226 {
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
227 /* * * */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
228 /* The name of this video driver */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
229 const char *name;
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
230
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
231 /* * * */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
232 /* Initialization/Query functions */
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 * Initialize the native video subsystem, filling in the list of
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
236 * displays for this driver, returning 0 or -1 if there's an error.
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
237 */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
238 int (*VideoInit) (_THIS);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
239
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
240 /*
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
241 * Reverse the effects VideoInit() -- called if VideoInit() fails or
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
242 * if the application is shutting down the video subsystem.
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
243 */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
244 void (*VideoQuit) (_THIS);
1913
83420da906a5 Implemented Windows OpenGL support
Sam Lantinga <slouken@libsdl.org>
parents: 1912
diff changeset
245
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
246 /* * * */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
247 /*
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
248 * Display functions
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
249 */
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
250
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
251 /*
3528
59ff7a2beb57 Added an API function to query geometry of multiple monitors:
Sam Lantinga <slouken@libsdl.org>
parents: 3517
diff changeset
252 * 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
253 */
59ff7a2beb57 Added an API function to query geometry of multiple monitors:
Sam Lantinga <slouken@libsdl.org>
parents: 3517
diff changeset
254 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
255
59ff7a2beb57 Added an API function to query geometry of multiple monitors:
Sam Lantinga <slouken@libsdl.org>
parents: 3517
diff changeset
256 /*
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
257 * Get a list of the available display modes. e.g.
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
258 * SDL_AddDisplayMode(_this->current_display, mode)
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
259 */
3500
4b594623401b Work in progress on multi-display support:
Sam Lantinga <slouken@libsdl.org>
parents: 3435
diff changeset
260 void (*GetDisplayModes) (_THIS, SDL_VideoDisplay * display);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
261
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
262 /*
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
263 * Setting the display mode is independent of creating windows, so
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
264 * when the display mode is changed, all existing windows should have
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
265 * their data updated accordingly, including the display surfaces
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
266 * associated with them.
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
267 */
3500
4b594623401b Work in progress on multi-display support:
Sam Lantinga <slouken@libsdl.org>
parents: 3435
diff changeset
268 int (*SetDisplayMode) (_THIS, SDL_VideoDisplay * display, SDL_DisplayMode * mode);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
269
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
270 /* 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
271 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
272
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
273 /* 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
274 int (*GetDisplayPalette) (_THIS, SDL_VideoDisplay * display, SDL_Palette * palette);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
275
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
276 /* Set the gamma ramp */
3500
4b594623401b Work in progress on multi-display support:
Sam Lantinga <slouken@libsdl.org>
parents: 3435
diff changeset
277 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
278
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
279 /* Get the gamma ramp */
3500
4b594623401b Work in progress on multi-display support:
Sam Lantinga <slouken@libsdl.org>
parents: 3435
diff changeset
280 int (*GetDisplayGammaRamp) (_THIS, SDL_VideoDisplay * display, Uint16 * ramp);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
281
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
282 /* * * */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
283 /*
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
284 * Window functions
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
285 */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
286 int (*CreateWindow) (_THIS, SDL_Window * window);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
287 int (*CreateWindowFrom) (_THIS, SDL_Window * window, const void *data);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
288 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
289 void (*SetWindowIcon) (_THIS, SDL_Window * window, SDL_Surface * icon);
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
290 void (*SetWindowPosition) (_THIS, SDL_Window * window);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
291 void (*SetWindowSize) (_THIS, SDL_Window * window);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
292 void (*ShowWindow) (_THIS, SDL_Window * window);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
293 void (*HideWindow) (_THIS, SDL_Window * window);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
294 void (*RaiseWindow) (_THIS, SDL_Window * window);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
295 void (*MaximizeWindow) (_THIS, SDL_Window * window);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
296 void (*MinimizeWindow) (_THIS, SDL_Window * window);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
297 void (*RestoreWindow) (_THIS, SDL_Window * window);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
298 void (*SetWindowGrab) (_THIS, SDL_Window * window);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
299 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
300
b6930aefd008 Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents: 3701
diff changeset
301 /* * * */
b6930aefd008 Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents: 3701
diff changeset
302 /*
b6930aefd008 Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents: 3701
diff changeset
303 * Shaped-window functions
b6930aefd008 Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents: 3701
diff changeset
304 */
b6930aefd008 Finished X11 shaped-window functionality and removed ellipse+polygon rendering.
Eli Gottlieb <eligottlieb@gmail.com>
parents: 3701
diff changeset
305 SDL_ShapeDriver shape_driver;
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
306
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
307 /* Get some platform dependent window information */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
308 SDL_bool(*GetWindowWMInfo) (_THIS, SDL_Window * window,
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
309 struct SDL_SysWMinfo * info);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
310
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
311 /* * * */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
312 /*
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
313 * OpenGL support
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
314 */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
315 int (*GL_LoadLibrary) (_THIS, const char *path);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
316 void *(*GL_GetProcAddress) (_THIS, const char *proc);
3057
089a77aebb7d Added test program for SDL_CreateWindowFrom()
Sam Lantinga <slouken@libsdl.org>
parents: 3025
diff changeset
317 void (*GL_UnloadLibrary) (_THIS);
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
318 SDL_GLContext(*GL_CreateContext) (_THIS, SDL_Window * window);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
319 int (*GL_MakeCurrent) (_THIS, SDL_Window * window, SDL_GLContext context);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
320 int (*GL_SetSwapInterval) (_THIS, int interval);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
321 int (*GL_GetSwapInterval) (_THIS);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
322 void (*GL_SwapWindow) (_THIS, SDL_Window * window);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
323 void (*GL_DeleteContext) (_THIS, SDL_GLContext context);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
324
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
325 /* * * */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
326 /*
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
327 * Event manager functions
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
328 */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
329 void (*PumpEvents) (_THIS);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
330
3025
54fac87e1f34 Added an API to enable/disable the screen saver.
Sam Lantinga <slouken@libsdl.org>
parents: 2967
diff changeset
331 /* Suspend the screensaver */
54fac87e1f34 Added an API to enable/disable the screen saver.
Sam Lantinga <slouken@libsdl.org>
parents: 2967
diff changeset
332 void (*SuspendScreenSaver) (_THIS);
54fac87e1f34 Added an API to enable/disable the screen saver.
Sam Lantinga <slouken@libsdl.org>
parents: 2967
diff changeset
333
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
334 /* 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
335 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
336 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
337 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
338
4495
dbbfdb9ea716 Simplified clipboard API for sanity's sake.
Sam Lantinga <slouken@libsdl.org>
parents: 4472
diff changeset
339 /* Clipboard */
dbbfdb9ea716 Simplified clipboard API for sanity's sake.
Sam Lantinga <slouken@libsdl.org>
parents: 4472
diff changeset
340 int (*SetClipboardText) (_THIS, const char *text);
dbbfdb9ea716 Simplified clipboard API for sanity's sake.
Sam Lantinga <slouken@libsdl.org>
parents: 4472
diff changeset
341 char * (*GetClipboardText) (_THIS);
dbbfdb9ea716 Simplified clipboard API for sanity's sake.
Sam Lantinga <slouken@libsdl.org>
parents: 4472
diff changeset
342 SDL_bool (*HasClipboardText) (_THIS);
dbbfdb9ea716 Simplified clipboard API for sanity's sake.
Sam Lantinga <slouken@libsdl.org>
parents: 4472
diff changeset
343
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
344 /* * * */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
345 /* 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
346 SDL_bool suspend_screensaver;
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
347 int num_displays;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
348 SDL_VideoDisplay *displays;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
349 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
350 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
351 Uint8 texture_magic;
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
352 Uint32 next_object_id;
4495
dbbfdb9ea716 Simplified clipboard API for sanity's sake.
Sam Lantinga <slouken@libsdl.org>
parents: 4472
diff changeset
353 char * clipboard_text;
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
354
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
355 /* * * */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
356 /* Data used by the GL drivers */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
357 struct
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
358 {
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
359 int red_size;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
360 int green_size;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
361 int blue_size;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
362 int alpha_size;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
363 int depth_size;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
364 int buffer_size;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
365 int stencil_size;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
366 int double_buffer;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
367 int accum_red_size;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
368 int accum_green_size;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
369 int accum_blue_size;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
370 int accum_alpha_size;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
371 int stereo;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
372 int multisamplebuffers;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
373 int multisamplesamples;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
374 int accelerated;
3100
7dc982143c06 Date: Sun, 22 Mar 2009 12:52:29 +0000
Sam Lantinga <slouken@libsdl.org>
parents: 3083
diff changeset
375 int major_version;
7dc982143c06 Date: Sun, 22 Mar 2009 12:52:29 +0000
Sam Lantinga <slouken@libsdl.org>
parents: 3083
diff changeset
376 int minor_version;
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
377 int retained_backing;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
378 int driver_loaded;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
379 char driver_path[256];
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
380 void *dll_handle;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
381 } gl_config;
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
382
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
383 /* * * */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
384 /* Data private to this driver */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
385 void *driverdata;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
386 struct SDL_GLDriverData *gl_data;
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
387
3161
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents: 3100
diff changeset
388 #if SDL_VIDEO_DRIVER_PANDORA
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents: 3100
diff changeset
389 struct SDL_PrivateGLESData *gles_data;
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents: 3100
diff changeset
390 #endif
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents: 3100
diff changeset
391
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
392 /* * * */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
393 /* The function used to dispose of this structure */
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
394 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
395 };
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
396
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
397 typedef struct VideoBootStrap
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
398 {
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
399 const char *name;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
400 const char *desc;
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
401 int (*available) (void);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
402 SDL_VideoDevice *(*create) (int devindex);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
403 } VideoBootStrap;
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
404
1931
103c6fec2a60 The Mac OS X Cocoa video driver is under construction...
Sam Lantinga <slouken@libsdl.org>
parents: 1928
diff changeset
405 #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
406 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
407 #endif
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
408 #if SDL_VIDEO_DRIVER_X11
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
409 extern VideoBootStrap X11_bootstrap;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
410 #endif
1361
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
411 #if SDL_VIDEO_DRIVER_FBCON
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
412 extern VideoBootStrap FBCON_bootstrap;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
413 #endif
1361
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
414 #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
415 extern VideoBootStrap DirectFB_bootstrap;
cb384ef627f6 Added support for DirectFB video on Linux (thanks Denis!)
Sam Lantinga <slouken@libsdl.org>
parents: 75
diff changeset
416 #endif
3257
94fb40a4a9a7 Merged Martin's code changes from Google Summer of Code 2009
Sam Lantinga <slouken@libsdl.org>
parents: 3161
diff changeset
417 #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
418 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
419 #endif
1361
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
420 #if SDL_VIDEO_DRIVER_SVGALIB
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
421 extern VideoBootStrap SVGALIB_bootstrap;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
422 #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
423 #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
424 extern VideoBootStrap WIN32_bootstrap;
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
425 #endif
1361
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
426 #if SDL_VIDEO_DRIVER_BWINDOW
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
427 extern VideoBootStrap BWINDOW_bootstrap;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
428 #endif
1361
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
429 #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
430 extern VideoBootStrap photon_bootstrap;
0bc41e0361d3 Date: Mon, 2 Mar 2009 16:27:42 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3057
diff changeset
431 #endif
0bc41e0361d3 Date: Mon, 2 Mar 2009 16:27:42 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3057
diff changeset
432 #if SDL_VIDEO_DRIVER_QNXGF
0bc41e0361d3 Date: Mon, 2 Mar 2009 16:27:42 +0200
Sam Lantinga <slouken@libsdl.org>
parents: 3057
diff changeset
433 extern VideoBootStrap qnxgf_bootstrap;
173
83018110dce8 Added initial support for EPOC/Symbian OS (thanks Hannu!)
Sam Lantinga <slouken@libsdl.org>
parents: 167
diff changeset
434 #endif
1361
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
435 #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
436 extern VideoBootStrap EPOC_bootstrap;
83018110dce8 Added initial support for EPOC/Symbian OS (thanks Hannu!)
Sam Lantinga <slouken@libsdl.org>
parents: 167
diff changeset
437 #endif
1361
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
438 #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
439 extern VideoBootStrap RISCOS_bootstrap;
550bccdf04bd Added initial support for RISC OS (thanks Peter Naulls!)
Sam Lantinga <slouken@libsdl.org>
parents: 509
diff changeset
440 #endif
2742
b86247d21929 Added retained backing attribute, reference to UIKit renderer
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2735
diff changeset
441 #if SDL_VIDEO_DRIVER_UIKIT
b86247d21929 Added retained backing attribute, reference to UIKit renderer
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2735
diff changeset
442 extern VideoBootStrap UIKIT_bootstrap;
b86247d21929 Added retained backing attribute, reference to UIKit renderer
Holmes Futrell <hfutrell@umail.ucsb.edu>
parents: 2735
diff changeset
443 #endif
1361
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
444 #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
445 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
446 #endif
2735
204be4fc2726 Final merge of Google Summer of Code 2008 work...
Sam Lantinga <slouken@libsdl.org>
parents: 2702
diff changeset
447 #if SDL_VIDEO_DRIVER_NDS
204be4fc2726 Final merge of Google Summer of Code 2008 work...
Sam Lantinga <slouken@libsdl.org>
parents: 2702
diff changeset
448 extern VideoBootStrap NDS_bootstrap;
204be4fc2726 Final merge of Google Summer of Code 2008 work...
Sam Lantinga <slouken@libsdl.org>
parents: 2702
diff changeset
449 #endif
3161
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents: 3100
diff changeset
450 #if SDL_VIDEO_DRIVER_PANDORA
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents: 3100
diff changeset
451 extern VideoBootStrap PND_bootstrap;
494559cc723b OpenPandora support added by David Carré
Sam Lantinga <slouken@libsdl.org>
parents: 3100
diff changeset
452 #endif
4701
d40bb3165d2b Added (partially implemented) android video backend and associated files needed to build
Paul Hunkin <paul@bieh.net>
parents: 3701
diff changeset
453 #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
454 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
455 #endif
1361
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1330
diff changeset
456
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
457 #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
458 #define SDL_CurrentRenderer (SDL_CurrentDisplay->current_renderer)
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
459
4472
791b3256fb22 Mostly cleaned up warnings with -Wmissing-prototypes
Sam Lantinga <slouken@libsdl.org>
parents: 3701
diff changeset
460 extern SDL_VideoDevice *SDL_GetVideoDevice(void);
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
461 extern int SDL_AddBasicVideoDisplay(const SDL_DisplayMode * desktop_mode);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
462 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
463 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
464 extern int SDL_GetNumDisplayModesForDisplay(SDL_VideoDisplay * display);
4b594623401b Work in progress on multi-display support:
Sam Lantinga <slouken@libsdl.org>
parents: 3435
diff changeset
465 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
466 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
467 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
468 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
469 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
470 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
471 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
472 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
473 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
474 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
475
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
476 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
477
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
478 extern void SDL_OnWindowShown(SDL_Window * window);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
479 extern void SDL_OnWindowHidden(SDL_Window * window);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
480 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
481 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
482 extern void SDL_OnWindowRestored(SDL_Window * window);
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
483 extern void SDL_OnWindowFocusGained(SDL_Window * window);
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
484 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
485 extern SDL_Window * SDL_GetFocusWindow(void);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
486
2753
Sam Lantinga <slouken@libsdl.org>
parents: 2742
diff changeset
487 #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
488
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
489 /* vi: set ts=4 sw=4 expandtab: */