0
|
1 <HTML
|
|
2 ><HEAD
|
|
3 ><TITLE
|
|
4 >SDL_SetTimer</TITLE
|
|
5 ><META
|
|
6 NAME="GENERATOR"
|
|
7 CONTENT="Modular DocBook HTML Stylesheet Version 1.61
|
|
8 "><LINK
|
|
9 REL="HOME"
|
|
10 TITLE="SDL Library Documentation"
|
|
11 HREF="index.html"><LINK
|
|
12 REL="UP"
|
|
13 TITLE="Time"
|
|
14 HREF="time.html"><LINK
|
|
15 REL="PREVIOUS"
|
|
16 TITLE="SDL_RemoveTimer"
|
|
17 HREF="sdlremovetimer.html"></HEAD
|
|
18 ><BODY
|
|
19 CLASS="REFENTRY"
|
|
20 BGCOLOR="#FFF8DC"
|
|
21 TEXT="#000000"
|
|
22 LINK="#0000ee"
|
|
23 VLINK="#551a8b"
|
|
24 ALINK="#ff0000"
|
|
25 ><DIV
|
|
26 CLASS="NAVHEADER"
|
|
27 ><TABLE
|
|
28 WIDTH="100%"
|
|
29 BORDER="0"
|
|
30 CELLPADDING="0"
|
|
31 CELLSPACING="0"
|
|
32 ><TR
|
|
33 ><TH
|
|
34 COLSPAN="3"
|
|
35 ALIGN="center"
|
|
36 >SDL Library Documentation</TH
|
|
37 ></TR
|
|
38 ><TR
|
|
39 ><TD
|
|
40 WIDTH="10%"
|
|
41 ALIGN="left"
|
|
42 VALIGN="bottom"
|
|
43 ><A
|
|
44 HREF="sdlremovetimer.html"
|
|
45 >Prev</A
|
|
46 ></TD
|
|
47 ><TD
|
|
48 WIDTH="80%"
|
|
49 ALIGN="center"
|
|
50 VALIGN="bottom"
|
|
51 ></TD
|
|
52 ><TD
|
|
53 WIDTH="10%"
|
|
54 ALIGN="right"
|
|
55 VALIGN="bottom"
|
|
56 > </TD
|
|
57 ></TR
|
|
58 ></TABLE
|
|
59 ><HR
|
|
60 ALIGN="LEFT"
|
|
61 WIDTH="100%"></DIV
|
|
62 ><H1
|
|
63 ><A
|
|
64 NAME="SDLSETTIMER"
|
|
65 >SDL_SetTimer</A
|
|
66 ></H1
|
|
67 ><DIV
|
|
68 CLASS="REFNAMEDIV"
|
|
69 ><A
|
|
70 NAME="AEN7926"
|
|
71 ></A
|
|
72 ><H2
|
|
73 >Name</H2
|
|
74 >SDL_SetTimer -- Set a callback to run after the specified number of milliseconds has
|
|
75 elapsed.</DIV
|
|
76 ><DIV
|
|
77 CLASS="REFSYNOPSISDIV"
|
|
78 ><A
|
|
79 NAME="AEN7929"
|
|
80 ></A
|
|
81 ><H2
|
|
82 >Synopsis</H2
|
|
83 ><DIV
|
|
84 CLASS="FUNCSYNOPSIS"
|
|
85 ><A
|
|
86 NAME="AEN7930"
|
|
87 ></A
|
|
88 ><P
|
|
89 ></P
|
|
90 ><PRE
|
|
91 CLASS="FUNCSYNOPSISINFO"
|
|
92 >#include "SDL.h"</PRE
|
|
93 ><P
|
|
94 ><CODE
|
|
95 ><CODE
|
|
96 CLASS="FUNCDEF"
|
|
97 >int <B
|
|
98 CLASS="FSFUNC"
|
|
99 >SDL_SetTimer</B
|
|
100 ></CODE
|
|
101 >(Uint32 interval, SDL_TimerCallback callback);</CODE
|
|
102 ></P
|
|
103 ><P
|
|
104 ></P
|
|
105 ></DIV
|
|
106 ></DIV
|
|
107 ><DIV
|
|
108 CLASS="REFSECT1"
|
|
109 ><A
|
|
110 NAME="SDLTIMERCALLBACK"
|
|
111 ></A
|
|
112 ><H2
|
|
113 >Callback</H2
|
|
114 ><P
|
|
115 >/* Function prototype for the timer callback function */
|
|
116 typedef Uint32 (*SDL_TimerCallback)(Uint32 interval);</P
|
|
117 ></DIV
|
|
118 ><DIV
|
|
119 CLASS="REFSECT1"
|
|
120 ><A
|
|
121 NAME="AEN7939"
|
|
122 ></A
|
|
123 ><H2
|
|
124 >Description</H2
|
|
125 ><P
|
|
126 >Set a callback to run after the specified number of milliseconds has
|
|
127 elapsed. The callback function is passed the current timer interval
|
|
128 and returns the next timer interval. If the returned value is the
|
|
129 same as the one passed in, the periodic alarm continues, otherwise a
|
|
130 new alarm is scheduled.</P
|
|
131 ><P
|
|
132 >To cancel a currently running timer, call
|
|
133 <TT
|
|
134 CLASS="FUNCTION"
|
|
135 >SDL_SetTimer(0, NULL);</TT
|
|
136 ></P
|
|
137 ><P
|
|
138 >The timer callback function may run in a different thread than your
|
|
139 main constant, and so shouldn't call any functions from within itself.</P
|
|
140 ><P
|
|
141 >The maximum resolution of this timer is 10 ms, which means that if
|
|
142 you request a 16 ms timer, your callback will run approximately 20 ms
|
|
143 later on an unloaded system. If you wanted to set a flag signaling
|
|
144 a frame update at 30 frames per second (every 33 ms), you might set a
|
|
145 timer for 30 ms (see example below).</P
|
|
146 ><P
|
|
147 >If you use this function, you need to pass <TT
|
|
148 CLASS="LITERAL"
|
|
149 >SDL_INIT_TIMER</TT
|
|
150 >
|
|
151 to <TT
|
|
152 CLASS="FUNCTION"
|
|
153 >SDL_Init()</TT
|
|
154 >.</P
|
|
155 ><DIV
|
|
156 CLASS="NOTE"
|
|
157 ><BLOCKQUOTE
|
|
158 CLASS="NOTE"
|
|
159 ><P
|
|
160 ><B
|
|
161 >Note: </B
|
|
162 >This function is kept for compatibility but has been superceeded
|
|
163 by the new timer functions
|
|
164 <A
|
|
165 HREF="sdladdtimer.html"
|
|
166 >SDL_AddTimer</A
|
|
167 > and
|
|
168 <A
|
|
169 HREF="sdlremovetimer.html"
|
|
170 >SDL_RemoveTimer</A
|
|
171 > which support
|
|
172 multiple timers.</P
|
|
173 ></BLOCKQUOTE
|
|
174 ></DIV
|
|
175 ></DIV
|
|
176 ><DIV
|
|
177 CLASS="REFSECT1"
|
|
178 ><A
|
|
179 NAME="AEN7953"
|
|
180 ></A
|
|
181 ><H2
|
|
182 >Examples</H2
|
|
183 ><P
|
|
184 ><PRE
|
|
185 CLASS="PROGRAMLISTING"
|
|
186 >SDL_SetTimer((33/10)*10, my_callback);</PRE
|
|
187 ></P
|
|
188 ></DIV
|
|
189 ><DIV
|
|
190 CLASS="REFSECT1"
|
|
191 ><A
|
|
192 NAME="AEN7957"
|
|
193 ></A
|
|
194 ><H2
|
|
195 >See Also</H2
|
|
196 ><P
|
|
197 ><A
|
|
198 HREF="sdladdtimer.html"
|
|
199 ><TT
|
|
200 CLASS="FUNCTION"
|
|
201 >SDL_AddTimer</TT
|
|
202 ></A
|
|
203 ></P
|
|
204 ></DIV
|
|
205 ><DIV
|
|
206 CLASS="NAVFOOTER"
|
|
207 ><HR
|
|
208 ALIGN="LEFT"
|
|
209 WIDTH="100%"><TABLE
|
|
210 WIDTH="100%"
|
|
211 BORDER="0"
|
|
212 CELLPADDING="0"
|
|
213 CELLSPACING="0"
|
|
214 ><TR
|
|
215 ><TD
|
|
216 WIDTH="33%"
|
|
217 ALIGN="left"
|
|
218 VALIGN="top"
|
|
219 ><A
|
|
220 HREF="sdlremovetimer.html"
|
|
221 >Prev</A
|
|
222 ></TD
|
|
223 ><TD
|
|
224 WIDTH="34%"
|
|
225 ALIGN="center"
|
|
226 VALIGN="top"
|
|
227 ><A
|
|
228 HREF="index.html"
|
|
229 >Home</A
|
|
230 ></TD
|
|
231 ><TD
|
|
232 WIDTH="33%"
|
|
233 ALIGN="right"
|
|
234 VALIGN="top"
|
|
235 > </TD
|
|
236 ></TR
|
|
237 ><TR
|
|
238 ><TD
|
|
239 WIDTH="33%"
|
|
240 ALIGN="left"
|
|
241 VALIGN="top"
|
|
242 >SDL_RemoveTimer</TD
|
|
243 ><TD
|
|
244 WIDTH="34%"
|
|
245 ALIGN="center"
|
|
246 VALIGN="top"
|
|
247 ><A
|
|
248 HREF="time.html"
|
|
249 >Up</A
|
|
250 ></TD
|
|
251 ><TD
|
|
252 WIDTH="33%"
|
|
253 ALIGN="right"
|
|
254 VALIGN="top"
|
|
255 > </TD
|
|
256 ></TR
|
|
257 ></TABLE
|
|
258 ></DIV
|
|
259 ></BODY
|
|
260 ></HTML
|
|
261 > |