Mercurial > sdl-ios-xcode
annotate docs/html/sdlgetkeystate.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_GetKeyState</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="SDL_EventState" | |
17 HREF="sdleventstate.html"><LINK | |
18 REL="NEXT" | |
19 TITLE="SDL_GetModState" | |
20 HREF="sdlgetmodstate.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="sdleventstate.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="sdlgetmodstate.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="SDLGETKEYSTATE" | |
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_GetKeyState</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="AEN5686" |
0 | 80 ></A |
81 ><H2 | |
82 >Name</H2 | |
83 >SDL_GetKeyState -- Get a snapshot of the current keyboard state</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="AEN5689" |
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="AEN5690" |
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 >Uint8 *<B | |
106 CLASS="FSFUNC" | |
107 >SDL_GetKeyState</B | |
108 ></CODE | |
109 >(int *numkeys);</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="AEN5696" |
0 | 119 ></A |
120 ><H2 | |
121 >Description</H2 | |
122 ><P | |
123 >Gets a snapshot of the current keyboard state. The current state is return as a pointer to an array, the size of this array is stored in <TT | |
124 CLASS="PARAMETER" | |
125 ><I | |
126 >numkeys</I | |
127 ></TT | |
128 >. The array is indexed by the <A | |
129 HREF="sdlkey.html" | |
130 ><TT | |
131 CLASS="LITERAL" | |
132 >SDLK_*</TT | |
133 ></A | |
181
e5bc29de3f0a
Updated from the SDL Documentation Project
Sam Lantinga <slouken@libsdl.org>
parents:
55
diff
changeset
|
134 > symbols. A value of 1 means the key is pressed and a value of 0 means its not. The pointer returned is a pointer to an internal SDL array and should not be freed by the caller.</P |
0 | 135 ><DIV |
136 CLASS="NOTE" | |
137 ><BLOCKQUOTE | |
138 CLASS="NOTE" | |
139 ><P | |
140 ><B | |
141 >Note: </B | |
142 >Use <A | |
143 HREF="sdlpumpevents.html" | |
144 ><TT | |
145 CLASS="FUNCTION" | |
146 >SDL_PumpEvents</TT | |
147 ></A | |
148 > to update the state array.</P | |
149 ></BLOCKQUOTE | |
150 ></DIV | |
151 ></DIV | |
152 ><DIV | |
153 CLASS="REFSECT1" | |
154 ><A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
155 NAME="AEN5706" |
0 | 156 ></A |
157 ><H2 | |
158 >Example</H2 | |
159 ><P | |
160 ><PRE | |
161 CLASS="PROGRAMLISTING" | |
162 >Uint8 *keystate = SDL_GetKeyState(NULL); | |
163 if ( keystate[SDLK_RETURN] ) printf("Return Key Pressed.\n");</PRE | |
164 ></P | |
165 ></DIV | |
166 ><DIV | |
167 CLASS="REFSECT1" | |
168 ><A | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
169 NAME="AEN5710" |
0 | 170 ></A |
171 ><H2 | |
172 >See Also</H2 | |
173 ><P | |
174 ><A | |
175 HREF="sdlkey.html" | |
176 ><TT | |
177 CLASS="LITERAL" | |
178 >SDL Key Symbols</TT | |
179 ></A | |
180 >, | |
181 <A | |
182 HREF="sdlpumpevents.html" | |
183 ><TT | |
184 CLASS="FUNCTION" | |
185 >SDL_PumpEvents</TT | |
186 ></A | |
187 ></P | |
188 ></DIV | |
189 ><DIV | |
190 CLASS="NAVFOOTER" | |
191 ><HR | |
192 ALIGN="LEFT" | |
193 WIDTH="100%"><TABLE | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
194 SUMMARY="Footer navigation table" |
0 | 195 WIDTH="100%" |
196 BORDER="0" | |
197 CELLPADDING="0" | |
198 CELLSPACING="0" | |
199 ><TR | |
200 ><TD | |
201 WIDTH="33%" | |
202 ALIGN="left" | |
203 VALIGN="top" | |
204 ><A | |
205 HREF="sdleventstate.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
206 ACCESSKEY="P" |
0 | 207 >Prev</A |
208 ></TD | |
209 ><TD | |
210 WIDTH="34%" | |
211 ALIGN="center" | |
212 VALIGN="top" | |
213 ><A | |
214 HREF="index.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
215 ACCESSKEY="H" |
0 | 216 >Home</A |
217 ></TD | |
218 ><TD | |
219 WIDTH="33%" | |
220 ALIGN="right" | |
221 VALIGN="top" | |
222 ><A | |
223 HREF="sdlgetmodstate.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
224 ACCESSKEY="N" |
0 | 225 >Next</A |
226 ></TD | |
227 ></TR | |
228 ><TR | |
229 ><TD | |
230 WIDTH="33%" | |
231 ALIGN="left" | |
232 VALIGN="top" | |
233 >SDL_EventState</TD | |
234 ><TD | |
235 WIDTH="34%" | |
236 ALIGN="center" | |
237 VALIGN="top" | |
238 ><A | |
239 HREF="eventfunctions.html" | |
803
355632dca928
Updated SDL HTML documentation
Sam Lantinga <slouken@libsdl.org>
parents:
181
diff
changeset
|
240 ACCESSKEY="U" |
0 | 241 >Up</A |
242 ></TD | |
243 ><TD | |
244 WIDTH="33%" | |
245 ALIGN="right" | |
246 VALIGN="top" | |
247 >SDL_GetModState</TD | |
248 ></TR | |
249 ></TABLE | |
250 ></DIV | |
251 ></BODY | |
252 ></HTML | |
253 > |