Mercurial > sdl-ios-xcode
annotate docs/html/sdlpumpevents.html @ 3978:b966761fef6c SDL-1.2
Significantly improved XIM support.
Fixes Bugzilla #429.
Selected notes from the patch's README:
= FIXES =
This patch fixes the above issues as follows.
== X11 events ==
Moved XFilterEvent just after XNextEvent so that all events are passed
to it. Also, XFilterEvent will receive masks indicated by IM through
XNFilterEvents IC value as well as masks surpplied by SDL.
X11_KeyRepeat is called between XNextEvent and XFilterEvent, after
testing an event is a KeyRelease. I'm not 100% comfortable to do so,
but I couldn't find a better timing to call it, and use of the
function is inevitable.
== Xutf8LookupString ==
Used a longer buffer to receive UTF-8 string. If it is insufficient,
a dynamic storage of the requested size will be allocated. The
initial size of the buffer is set to 32, because the Japanese text
converted from the most widely used benchmark key sequence for
Japanese IM, "WATASHINONAMAEHANAKANODESU." has ten Japanese characters
in it, that occupies 30 bytes when encoded in UTF-8.
== SDL_keysym.unicode ==
On Windows version of SDL implementation, SDL_keysym.unicode stores
UTF-16 encoded unicode characters, one UTF-16 encoding unit per an SDL
event. A Unicode supplementary characters are sent to an application
as two events. (One with a high surrogate and another with a low
surrogate.) The behavior seems reasonable since it is upward
compatible with existing handling of BMP characters.
I wrote a UTF-8 to UTF-16 conversion function for the purpose. It is
designed with the execution speed in mind, having a minimum set of
features that my patch requires.
author | Ryan C. Gordon <icculus@icculus.org> |
---|---|
date | Mon, 25 Jun 2007 19:58:32 +0000 |
parents | 355632dca928 |
children |
rev | line source |
---|---|
0 | 1 <HTML |
2 ><HEAD | |
3 ><TITLE | |
4 >SDL_PumpEvents</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="Event Functions." | |
14 HREF="eventfunctions.html"><LINK | |
15 REL="PREVIOUS" | |
16 TITLE="Event Functions." | |
17 HREF="eventfunctions.html"><LINK | |
18 REL="NEXT" | |
19 TITLE="SDL_PeepEvents" | |
20 HREF="sdlpeepevents.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="eventfunctions.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="sdlpeepevents.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="SDLPUMPEVENTS" | |
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_PumpEvents</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="AEN5387" |
0 | 80 ></A |
81 ><H2 | |
82 >Name</H2 | |
83 >SDL_PumpEvents -- Pumps the event loop, gathering events from the input devices.</DIV | |
84 ><DIV | |
85 CLASS="REFSYNOPSISDIV" | |
86 ><A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
87 NAME="AEN5390" |
0 | 88 ></A |
89 ><H2 | |
90 >Synopsis</H2 | |
91 ><DIV | |
92 CLASS="FUNCSYNOPSIS" | |
93 ><A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
94 NAME="AEN5391" |
0 | 95 ></A |
96 ><P | |
97 ></P | |
98 ><PRE | |
99 CLASS="FUNCSYNOPSISINFO" | |
100 >#include "SDL.h"</PRE | |
101 ><P | |
102 ><CODE | |
103 ><CODE | |
104 CLASS="FUNCDEF" | |
105 >void <B | |
106 CLASS="FSFUNC" | |
107 >SDL_PumpEvents</B | |
108 ></CODE | |
109 >(void);</CODE | |
110 ></P | |
111 ><P | |
112 ></P | |
113 ></DIV | |
114 ></DIV | |
115 ><DIV | |
116 CLASS="REFSECT1" | |
117 ><A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
118 NAME="AEN5397" |
0 | 119 ></A |
120 ><H2 | |
121 >Description</H2 | |
122 ><P | |
123 >Pumps the event loop, gathering events from the input devices.</P | |
124 ><P | |
125 ><TT | |
126 CLASS="FUNCTION" | |
127 >SDL_PumpEvents</TT | |
128 > gathers all the pending input information from devices and places it on the event queue. Without calls to <TT | |
129 CLASS="FUNCTION" | |
130 >SDL_PumpEvents</TT | |
131 > no events would ever be placed on the queue. Often calls the need for <TT | |
132 CLASS="FUNCTION" | |
133 >SDL_PumpEvents</TT | |
134 > is hidden from the user since <A | |
135 HREF="sdlpollevent.html" | |
136 ><TT | |
137 CLASS="FUNCTION" | |
138 >SDL_PollEvent</TT | |
139 ></A | |
140 > and <A | |
141 HREF="sdlwaitevent.html" | |
142 ><TT | |
143 CLASS="FUNCTION" | |
144 >SDL_WaitEvent</TT | |
145 ></A | |
146 > implicitly call <TT | |
147 CLASS="FUNCTION" | |
148 >SDL_PumpEvents</TT | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
149 >. However, if you are not polling or waiting for events (e.g. you are filtering them), then you must call <TT |
0 | 150 CLASS="FUNCTION" |
151 >SDL_PumpEvents</TT | |
152 > to force an event queue update.</P | |
153 ><DIV | |
154 CLASS="NOTE" | |
155 ><BLOCKQUOTE | |
156 CLASS="NOTE" | |
157 ><P | |
158 ><B | |
159 >Note: </B | |
160 >You can only call this function in the thread that set the video mode.</P | |
161 ></BLOCKQUOTE | |
162 ></DIV | |
163 ></DIV | |
164 ><DIV | |
165 CLASS="REFSECT1" | |
166 ><A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
167 NAME="AEN5412" |
0 | 168 ></A |
169 ><H2 | |
170 >See Also</H2 | |
171 ><P | |
172 ><A | |
173 HREF="sdlpollevent.html" | |
174 ><TT | |
175 CLASS="FUNCTION" | |
176 >SDL_PollEvent</TT | |
177 ></A | |
178 ></P | |
179 ></DIV | |
180 ><DIV | |
181 CLASS="NAVFOOTER" | |
182 ><HR | |
183 ALIGN="LEFT" | |
184 WIDTH="100%"><TABLE | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
185 SUMMARY="Footer navigation table" |
0 | 186 WIDTH="100%" |
187 BORDER="0" | |
188 CELLPADDING="0" | |
189 CELLSPACING="0" | |
190 ><TR | |
191 ><TD | |
192 WIDTH="33%" | |
193 ALIGN="left" | |
194 VALIGN="top" | |
195 ><A | |
196 HREF="eventfunctions.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
197 ACCESSKEY="P" |
0 | 198 >Prev</A |
199 ></TD | |
200 ><TD | |
201 WIDTH="34%" | |
202 ALIGN="center" | |
203 VALIGN="top" | |
204 ><A | |
205 HREF="index.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
206 ACCESSKEY="H" |
0 | 207 >Home</A |
208 ></TD | |
209 ><TD | |
210 WIDTH="33%" | |
211 ALIGN="right" | |
212 VALIGN="top" | |
213 ><A | |
214 HREF="sdlpeepevents.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
215 ACCESSKEY="N" |
0 | 216 >Next</A |
217 ></TD | |
218 ></TR | |
219 ><TR | |
220 ><TD | |
221 WIDTH="33%" | |
222 ALIGN="left" | |
223 VALIGN="top" | |
224 >Event Functions.</TD | |
225 ><TD | |
226 WIDTH="34%" | |
227 ALIGN="center" | |
228 VALIGN="top" | |
229 ><A | |
230 HREF="eventfunctions.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
231 ACCESSKEY="U" |
0 | 232 >Up</A |
233 ></TD | |
234 ><TD | |
235 WIDTH="33%" | |
236 ALIGN="right" | |
237 VALIGN="top" | |
238 >SDL_PeepEvents</TD | |
239 ></TR | |
240 ></TABLE | |
241 ></DIV | |
242 ></BODY | |
243 ></HTML | |
244 > |