Mercurial > sdl-ios-xcode
annotate docs/html/sdllistmodes.html @ 1295:c3e36ac8a94c
Date: Sun, 6 Mar 2005 17:06:20 +0100
From: Per Inge Mathisen
Subject: [SDL] Fullscreen refresh on win32
Windows has a terrible default for fullscreen 3D apps of 60mhz refresh
rate. This can be fixed by the user by going into his driver's
control panel and forcing the refresh rate higher. However, this not a
very user friendly way about it, and in any case SDL contains no code
that could figure out this that condition has afflicted the user.
So the question is, could SDL fix this for the user? It is possible
under Windows to request a higher refresh rate. The danger is of
course that if the user has an old monitor, and you request a too high
refresh rate, the monitor could be damaged. However, I believe there
might be a way around that: Check before switching what refresh rate
the user's desktop runs in, and if our fullscreen dimensions are equal
or less than those of the desktop, use the higher refresh rate of 60
and the desktop rate.
Since most users run their desktops in the same or higher resolution
something sane, this should fix this problem for most users.
Thoughts?
An alternative is to add an SDL_GL_GetAttribute(SDL_GL_REFRESH_RATE)
option so that programs can bitch at their users at their own
convenience.
- Per
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Mon, 30 Jan 2006 06:56:10 +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 > |