Mercurial > sdl-ios-xcode
annotate docs/html/sdllistmodes.html @ 3100:7dc982143c06
Date: Sun, 22 Mar 2009 12:52:29 +0000
From: Luke Benstead
Subject: OpenGL 3.0 Context Creation
I've attached a patch which implements OpenGL 3.x context creation on
the latest SVN. I've added two options to SDL_GL_SetAttribute, these
are SDL_GL_CONTEXT_MAJOR_VERSION and SDL_GL_CONTEXT_MINOR_VERSION.
These default to 2 and 1 respectively. If the major version is less
than 3 then the current context creation method is used, otherwise the
appropriate new context creation function is called (depending on the
platform).
Sample code:
if (SDL_Init(SDL_INIT_VIDEO) != 0) {
printf("Unable to initialize SDL: %s\n", SDL_GetError());
return 1;
}
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3); //Without these 2 lines, SDL will create a GL 2.x context
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0);
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
SDL_Surface* screen = SDL_SetVideoMode( 640, 480, 16, SDL_OPENGL | SDL_FULLSCREEN );
I've implemented context creation on both Win32 and X and run basic
tests on both. This patch doesn't provide access to all the options
allowed by the new context creation (e.g. shared contexts, forward
compatible contexts) but they can be added pretty easily.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Tue, 24 Mar 2009 10:43:53 +0000 |
parents | 355632dca928 |
children |
rev | line source |
---|---|
0 | 1 <HTML |
2 ><HEAD | |
3 ><TITLE | |
4 >SDL_ListModes</TITLE | |
5 ><META | |
6 NAME="GENERATOR" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
7 CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+ |
0 | 8 "><LINK |
9 REL="HOME" | |
10 TITLE="SDL Library Documentation" | |
11 HREF="index.html"><LINK | |
12 REL="UP" | |
13 TITLE="Video" | |
14 HREF="video.html"><LINK | |
15 REL="PREVIOUS" | |
16 TITLE="SDL_VideoDriverName" | |
17 HREF="sdlvideodrivername.html"><LINK | |
18 REL="NEXT" | |
19 TITLE="SDL_VideoModeOK" | |
20 HREF="sdlvideomodeok.html"></HEAD | |
21 ><BODY | |
22 CLASS="REFENTRY" | |
23 BGCOLOR="#FFF8DC" | |
24 TEXT="#000000" | |
25 LINK="#0000ee" | |
26 VLINK="#551a8b" | |
27 ALINK="#ff0000" | |
28 ><DIV | |
29 CLASS="NAVHEADER" | |
30 ><TABLE | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
31 SUMMARY="Header navigation table" |
0 | 32 WIDTH="100%" |
33 BORDER="0" | |
34 CELLPADDING="0" | |
35 CELLSPACING="0" | |
36 ><TR | |
37 ><TH | |
38 COLSPAN="3" | |
39 ALIGN="center" | |
40 >SDL Library Documentation</TH | |
41 ></TR | |
42 ><TR | |
43 ><TD | |
44 WIDTH="10%" | |
45 ALIGN="left" | |
46 VALIGN="bottom" | |
47 ><A | |
48 HREF="sdlvideodrivername.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
49 ACCESSKEY="P" |
0 | 50 >Prev</A |
51 ></TD | |
52 ><TD | |
53 WIDTH="80%" | |
54 ALIGN="center" | |
55 VALIGN="bottom" | |
56 ></TD | |
57 ><TD | |
58 WIDTH="10%" | |
59 ALIGN="right" | |
60 VALIGN="bottom" | |
61 ><A | |
62 HREF="sdlvideomodeok.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
63 ACCESSKEY="N" |
0 | 64 >Next</A |
65 ></TD | |
66 ></TR | |
67 ></TABLE | |
68 ><HR | |
69 ALIGN="LEFT" | |
70 WIDTH="100%"></DIV | |
71 ><H1 | |
72 ><A | |
73 NAME="SDLLISTMODES" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
74 ></A |
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
75 >SDL_ListModes</H1 |
0 | 76 ><DIV |
77 CLASS="REFNAMEDIV" | |
78 ><A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
79 NAME="AEN1159" |
0 | 80 ></A |
81 ><H2 | |
82 >Name</H2 | |
83 >SDL_ListModes -- Returns a pointer to an array of available screen dimensions for | |
84 the given format and video flags</DIV | |
85 ><DIV | |
86 CLASS="REFSYNOPSISDIV" | |
87 ><A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
88 NAME="AEN1162" |
0 | 89 ></A |
90 ><H2 | |
91 >Synopsis</H2 | |
92 ><DIV | |
93 CLASS="FUNCSYNOPSIS" | |
94 ><A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
95 NAME="AEN1163" |
0 | 96 ></A |
97 ><P | |
98 ></P | |
99 ><PRE | |
100 CLASS="FUNCSYNOPSISINFO" | |
101 >#include "SDL.h"</PRE | |
102 ><P | |
103 ><CODE | |
104 ><CODE | |
105 CLASS="FUNCDEF" | |
106 >SDL_Rect **<B | |
107 CLASS="FSFUNC" | |
108 >SDL_ListModes</B | |
109 ></CODE | |
110 >(SDL_PixelFormat *format, Uint32 flags);</CODE | |
111 ></P | |
112 ><P | |
113 ></P | |
114 ></DIV | |
115 ></DIV | |
116 ><DIV | |
117 CLASS="REFSECT1" | |
118 ><A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
119 NAME="AEN1169" |
0 | 120 ></A |
121 ><H2 | |
122 >Description</H2 | |
123 ><P | |
124 >Return a pointer to an array of available screen dimensions for the given | |
125 format and video flags, sorted largest to smallest. Returns | |
126 <TT | |
127 CLASS="LITERAL" | |
128 >NULL</TT | |
129 > if there are no dimensions available for a particular | |
130 format, or <SPAN | |
131 CLASS="RETURNVALUE" | |
132 >-1</SPAN | |
133 > if any dimension is okay for | |
134 the given format.</P | |
135 ><P | |
136 >If <TT | |
137 CLASS="PARAMETER" | |
138 ><I | |
139 >format</I | |
140 ></TT | |
141 > is <TT | |
142 CLASS="LITERAL" | |
143 >NULL</TT | |
144 >, the mode list | |
145 will be for the format returned by <A | |
146 HREF="sdlgetvideoinfo.html" | |
147 >SDL_GetVideoInfo()</A | |
148 >-><TT | |
149 CLASS="STRUCTFIELD" | |
150 ><I | |
151 >vfmt</I | |
152 ></TT | |
153 >. The <TT | |
154 CLASS="PARAMETER" | |
155 ><I | |
156 >flag</I | |
157 ></TT | |
158 > parameter is an OR'd combination of <A | |
159 HREF="sdlsurface.html" | |
160 >surface</A | |
161 > flags. The flags are the same as those used <A | |
162 HREF="sdlsetvideomode.html" | |
163 ><TT | |
164 CLASS="FUNCTION" | |
165 >SDL_SetVideoMode</TT | |
166 ></A | |
167 > and they play a strong role in deciding what modes are valid. For instance, if you pass <TT | |
168 CLASS="LITERAL" | |
169 >SDL_HWSURFACE</TT | |
170 > as a flag only modes that support hardware video surfaces will be returned.</P | |
171 ></DIV | |
172 ><DIV | |
173 CLASS="REFSECT1" | |
174 ><A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
175 NAME="AEN1184" |
0 | 176 ></A |
177 ><H2 | |
178 >Example</H2 | |
179 ><PRE | |
180 CLASS="PROGRAMLISTING" | |
181 >SDL_Rect **modes; | |
182 int i; | |
183 . | |
184 . | |
185 . | |
186 | |
187 /* Get available fullscreen/hardware modes */ | |
188 modes=SDL_ListModes(NULL, SDL_FULLSCREEN|SDL_HWSURFACE); | |
189 | |
190 /* Check is there are any modes available */ | |
191 if(modes == (SDL_Rect **)0){ | |
192 printf("No modes available!\n"); | |
193 exit(-1); | |
194 } | |
195 | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
196 /* Check if our resolution is restricted */ |
0 | 197 if(modes == (SDL_Rect **)-1){ |
198 printf("All resolutions available.\n"); | |
199 } | |
200 else{ | |
201 /* Print valid modes */ | |
202 printf("Available Modes\n"); | |
203 for(i=0;modes[i];++i) | |
204 printf(" %d x %d\n", modes[i]->w, modes[i]->h); | |
205 } | |
206 . | |
207 .</PRE | |
208 ></DIV | |
209 ><DIV | |
210 CLASS="REFSECT1" | |
211 ><A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
212 NAME="AEN1187" |
0 | 213 ></A |
214 ><H2 | |
215 >See Also</H2 | |
216 ><P | |
217 ><A | |
218 HREF="sdlsetvideomode.html" | |
219 ><TT | |
220 CLASS="FUNCTION" | |
221 >SDL_SetVideoMode</TT | |
222 ></A | |
223 >, | |
224 <A | |
225 HREF="sdlgetvideoinfo.html" | |
226 ><TT | |
227 CLASS="FUNCTION" | |
228 >SDL_GetVideoInfo</TT | |
229 ></A | |
230 >, | |
231 <A | |
232 HREF="sdlrect.html" | |
233 ><SPAN | |
234 CLASS="STRUCTNAME" | |
235 >SDL_Rect</SPAN | |
236 ></A | |
237 >, | |
238 <A | |
239 HREF="sdlpixelformat.html" | |
240 ><SPAN | |
241 CLASS="STRUCTNAME" | |
242 >SDL_PixelFormat</SPAN | |
243 ></A | |
244 ></P | |
245 ></DIV | |
246 ><DIV | |
247 CLASS="NAVFOOTER" | |
248 ><HR | |
249 ALIGN="LEFT" | |
250 WIDTH="100%"><TABLE | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
251 SUMMARY="Footer navigation table" |
0 | 252 WIDTH="100%" |
253 BORDER="0" | |
254 CELLPADDING="0" | |
255 CELLSPACING="0" | |
256 ><TR | |
257 ><TD | |
258 WIDTH="33%" | |
259 ALIGN="left" | |
260 VALIGN="top" | |
261 ><A | |
262 HREF="sdlvideodrivername.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
263 ACCESSKEY="P" |
0 | 264 >Prev</A |
265 ></TD | |
266 ><TD | |
267 WIDTH="34%" | |
268 ALIGN="center" | |
269 VALIGN="top" | |
270 ><A | |
271 HREF="index.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
272 ACCESSKEY="H" |
0 | 273 >Home</A |
274 ></TD | |
275 ><TD | |
276 WIDTH="33%" | |
277 ALIGN="right" | |
278 VALIGN="top" | |
279 ><A | |
280 HREF="sdlvideomodeok.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
281 ACCESSKEY="N" |
0 | 282 >Next</A |
283 ></TD | |
284 ></TR | |
285 ><TR | |
286 ><TD | |
287 WIDTH="33%" | |
288 ALIGN="left" | |
289 VALIGN="top" | |
290 >SDL_VideoDriverName</TD | |
291 ><TD | |
292 WIDTH="34%" | |
293 ALIGN="center" | |
294 VALIGN="top" | |
295 ><A | |
296 HREF="video.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
297 ACCESSKEY="U" |
0 | 298 >Up</A |
299 ></TD | |
300 ><TD | |
301 WIDTH="33%" | |
302 ALIGN="right" | |
303 VALIGN="top" | |
304 >SDL_VideoModeOK</TD | |
305 ></TR | |
306 ></TABLE | |
307 ></DIV | |
308 ></BODY | |
309 ></HTML | |
310 > |