rubygl 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (182) hide show
  1. checksums.yaml +8 -8
  2. data/Gemfile.lock +2 -0
  3. data/README.md +1 -1
  4. data/Rakefile +17 -9
  5. data/bin/ffi_code_gen.rb +11 -3
  6. data/ext/macosx/RubyGL.so +0 -0
  7. data/ext/macosx/SDL2.framework/Headers/SDL.h +163 -0
  8. data/ext/macosx/SDL2.framework/Headers/SDL_assert.h +284 -0
  9. data/ext/macosx/SDL2.framework/Headers/SDL_atomic.h +260 -0
  10. data/ext/macosx/SDL2.framework/Headers/SDL_audio.h +506 -0
  11. data/ext/macosx/SDL2.framework/Headers/SDL_bits.h +97 -0
  12. data/ext/macosx/SDL2.framework/Headers/SDL_blendmode.h +63 -0
  13. data/ext/macosx/SDL2.framework/Headers/SDL_clipboard.h +71 -0
  14. data/ext/macosx/SDL2.framework/Headers/SDL_config.h +55 -0
  15. data/ext/macosx/SDL2.framework/Headers/SDL_config_macosx.h +184 -0
  16. data/ext/macosx/SDL2.framework/Headers/SDL_copying.h +20 -0
  17. data/ext/macosx/SDL2.framework/Headers/SDL_cpuinfo.h +156 -0
  18. data/ext/macosx/SDL2.framework/Headers/SDL_endian.h +239 -0
  19. data/ext/macosx/SDL2.framework/Headers/SDL_error.h +76 -0
  20. data/ext/macosx/SDL2.framework/Headers/SDL_events.h +723 -0
  21. data/ext/macosx/SDL2.framework/Headers/SDL_filesystem.h +136 -0
  22. data/ext/macosx/SDL2.framework/Headers/SDL_gamecontroller.h +316 -0
  23. data/ext/macosx/SDL2.framework/Headers/SDL_gesture.h +87 -0
  24. data/ext/macosx/SDL2.framework/Headers/SDL_haptic.h +1225 -0
  25. data/ext/macosx/SDL2.framework/Headers/SDL_hints.h +517 -0
  26. data/ext/macosx/SDL2.framework/Headers/SDL_joystick.h +253 -0
  27. data/ext/macosx/SDL2.framework/Headers/SDL_keyboard.h +217 -0
  28. data/ext/macosx/SDL2.framework/Headers/SDL_keycode.h +341 -0
  29. data/ext/macosx/SDL2.framework/Headers/SDL_loadso.h +81 -0
  30. data/ext/macosx/SDL2.framework/Headers/SDL_log.h +211 -0
  31. data/ext/macosx/SDL2.framework/Headers/SDL_main.h +155 -0
  32. data/ext/macosx/SDL2.framework/Headers/SDL_messagebox.h +144 -0
  33. data/ext/macosx/SDL2.framework/Headers/SDL_mouse.h +224 -0
  34. data/ext/macosx/SDL2.framework/Headers/SDL_mutex.h +251 -0
  35. data/ext/macosx/SDL2.framework/Headers/SDL_name.h +33 -0
  36. data/ext/macosx/SDL2.framework/Headers/SDL_opengl.h +11126 -0
  37. data/ext/macosx/SDL2.framework/Headers/SDL_opengles.h +38 -0
  38. data/ext/macosx/SDL2.framework/Headers/SDL_opengles2.h +2790 -0
  39. data/ext/macosx/SDL2.framework/Headers/SDL_pixels.h +429 -0
  40. data/ext/macosx/SDL2.framework/Headers/SDL_platform.h +164 -0
  41. data/ext/macosx/SDL2.framework/Headers/SDL_power.h +75 -0
  42. data/ext/macosx/SDL2.framework/Headers/SDL_quit.h +58 -0
  43. data/ext/macosx/SDL2.framework/Headers/SDL_rect.h +138 -0
  44. data/ext/macosx/SDL2.framework/Headers/SDL_render.h +870 -0
  45. data/ext/macosx/SDL2.framework/Headers/SDL_revision.h +2 -0
  46. data/ext/macosx/SDL2.framework/Headers/SDL_rwops.h +232 -0
  47. data/ext/macosx/SDL2.framework/Headers/SDL_scancode.h +401 -0
  48. data/ext/macosx/SDL2.framework/Headers/SDL_shape.h +143 -0
  49. data/ext/macosx/SDL2.framework/Headers/SDL_stdinc.h +405 -0
  50. data/ext/macosx/SDL2.framework/Headers/SDL_surface.h +503 -0
  51. data/ext/macosx/SDL2.framework/Headers/SDL_system.h +191 -0
  52. data/ext/macosx/SDL2.framework/Headers/SDL_syswm.h +272 -0
  53. data/ext/macosx/SDL2.framework/Headers/SDL_thread.h +287 -0
  54. data/ext/macosx/SDL2.framework/Headers/SDL_timer.h +115 -0
  55. data/ext/macosx/SDL2.framework/Headers/SDL_touch.h +86 -0
  56. data/ext/macosx/SDL2.framework/Headers/SDL_types.h +29 -0
  57. data/ext/macosx/SDL2.framework/Headers/SDL_version.h +162 -0
  58. data/ext/macosx/SDL2.framework/Headers/SDL_video.h +979 -0
  59. data/ext/macosx/SDL2.framework/Headers/begin_code.h +140 -0
  60. data/ext/macosx/SDL2.framework/Headers/close_code.h +37 -0
  61. data/ext/macosx/SDL2.framework/Resources/Info.plist +42 -0
  62. data/ext/macosx/SDL2.framework/SDL2 +0 -0
  63. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL.h +163 -0
  64. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_assert.h +284 -0
  65. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_atomic.h +260 -0
  66. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_audio.h +506 -0
  67. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_bits.h +97 -0
  68. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_blendmode.h +63 -0
  69. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_clipboard.h +71 -0
  70. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_config.h +55 -0
  71. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_config_macosx.h +184 -0
  72. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_copying.h +20 -0
  73. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_cpuinfo.h +156 -0
  74. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_endian.h +239 -0
  75. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_error.h +76 -0
  76. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_events.h +723 -0
  77. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_filesystem.h +136 -0
  78. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_gamecontroller.h +316 -0
  79. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_gesture.h +87 -0
  80. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_haptic.h +1225 -0
  81. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_hints.h +517 -0
  82. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_joystick.h +253 -0
  83. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_keyboard.h +217 -0
  84. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_keycode.h +341 -0
  85. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_loadso.h +81 -0
  86. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_log.h +211 -0
  87. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_main.h +155 -0
  88. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_messagebox.h +144 -0
  89. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_mouse.h +224 -0
  90. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_mutex.h +251 -0
  91. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_name.h +33 -0
  92. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_opengl.h +11126 -0
  93. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_opengles.h +38 -0
  94. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_opengles2.h +2790 -0
  95. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_pixels.h +429 -0
  96. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_platform.h +164 -0
  97. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_power.h +75 -0
  98. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_quit.h +58 -0
  99. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_rect.h +138 -0
  100. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_render.h +870 -0
  101. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_revision.h +2 -0
  102. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_rwops.h +232 -0
  103. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_scancode.h +401 -0
  104. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_shape.h +143 -0
  105. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_stdinc.h +405 -0
  106. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_surface.h +503 -0
  107. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_system.h +191 -0
  108. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_syswm.h +272 -0
  109. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_thread.h +287 -0
  110. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_timer.h +115 -0
  111. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_touch.h +86 -0
  112. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_types.h +29 -0
  113. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_version.h +162 -0
  114. data/ext/macosx/SDL2.framework/Versions/A/Headers/SDL_video.h +979 -0
  115. data/ext/macosx/SDL2.framework/Versions/A/Headers/begin_code.h +140 -0
  116. data/ext/macosx/SDL2.framework/Versions/A/Headers/close_code.h +37 -0
  117. data/ext/macosx/SDL2.framework/Versions/A/Resources/Info.plist +42 -0
  118. data/ext/macosx/SDL2.framework/Versions/A/SDL2 +0 -0
  119. data/ext/macosx/SDL2.framework/Versions/A/_CodeSignature/CodeResources +331 -0
  120. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL.h +163 -0
  121. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_assert.h +284 -0
  122. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_atomic.h +260 -0
  123. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_audio.h +506 -0
  124. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_bits.h +97 -0
  125. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_blendmode.h +63 -0
  126. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_clipboard.h +71 -0
  127. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_config.h +55 -0
  128. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_config_macosx.h +184 -0
  129. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_copying.h +20 -0
  130. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_cpuinfo.h +156 -0
  131. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_endian.h +239 -0
  132. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_error.h +76 -0
  133. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_events.h +723 -0
  134. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_filesystem.h +136 -0
  135. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_gamecontroller.h +316 -0
  136. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_gesture.h +87 -0
  137. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_haptic.h +1225 -0
  138. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_hints.h +517 -0
  139. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_joystick.h +253 -0
  140. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_keyboard.h +217 -0
  141. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_keycode.h +341 -0
  142. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_loadso.h +81 -0
  143. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_log.h +211 -0
  144. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_main.h +155 -0
  145. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_messagebox.h +144 -0
  146. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_mouse.h +224 -0
  147. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_mutex.h +251 -0
  148. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_name.h +33 -0
  149. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_opengl.h +11126 -0
  150. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_opengles.h +38 -0
  151. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_opengles2.h +2790 -0
  152. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_pixels.h +429 -0
  153. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_platform.h +164 -0
  154. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_power.h +75 -0
  155. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_quit.h +58 -0
  156. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_rect.h +138 -0
  157. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_render.h +870 -0
  158. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_revision.h +2 -0
  159. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_rwops.h +232 -0
  160. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_scancode.h +401 -0
  161. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_shape.h +143 -0
  162. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_stdinc.h +405 -0
  163. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_surface.h +503 -0
  164. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_system.h +191 -0
  165. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_syswm.h +272 -0
  166. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_thread.h +287 -0
  167. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_timer.h +115 -0
  168. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_touch.h +86 -0
  169. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_types.h +29 -0
  170. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_version.h +162 -0
  171. data/ext/macosx/SDL2.framework/Versions/Current/Headers/SDL_video.h +979 -0
  172. data/ext/macosx/SDL2.framework/Versions/Current/Headers/begin_code.h +140 -0
  173. data/ext/macosx/SDL2.framework/Versions/Current/Headers/close_code.h +37 -0
  174. data/ext/macosx/SDL2.framework/Versions/Current/Resources/Info.plist +42 -0
  175. data/ext/macosx/SDL2.framework/Versions/Current/SDL2 +0 -0
  176. data/ext/macosx/SDL2.framework/Versions/Current/_CodeSignature/CodeResources +331 -0
  177. data/ext/windows/RubyGL.so +0 -0
  178. data/lib/rubygl/native/opengl.rb +1052 -1044
  179. data/lib/rubygl/setup.rb +7 -4
  180. data/lib/rubygl.rb +12 -4
  181. data/rubygl.gemspec +3 -2
  182. metadata +174 -3
@@ -0,0 +1,723 @@
1
+ /*
2
+ Simple DirectMedia Layer
3
+ Copyright (C) 1997-2014 Sam Lantinga <slouken@libsdl.org>
4
+
5
+ This software is provided 'as-is', without any express or implied
6
+ warranty. In no event will the authors be held liable for any damages
7
+ arising from the use of this software.
8
+
9
+ Permission is granted to anyone to use this software for any purpose,
10
+ including commercial applications, and to alter it and redistribute it
11
+ freely, subject to the following restrictions:
12
+
13
+ 1. The origin of this software must not be misrepresented; you must not
14
+ claim that you wrote the original software. If you use this software
15
+ in a product, an acknowledgment in the product documentation would be
16
+ appreciated but is not required.
17
+ 2. Altered source versions must be plainly marked as such, and must not be
18
+ misrepresented as being the original software.
19
+ 3. This notice may not be removed or altered from any source distribution.
20
+ */
21
+
22
+ /**
23
+ * \file SDL_events.h
24
+ *
25
+ * Include file for SDL event handling.
26
+ */
27
+
28
+ #ifndef _SDL_events_h
29
+ #define _SDL_events_h
30
+
31
+ #include "SDL_stdinc.h"
32
+ #include "SDL_error.h"
33
+ #include "SDL_video.h"
34
+ #include "SDL_keyboard.h"
35
+ #include "SDL_mouse.h"
36
+ #include "SDL_joystick.h"
37
+ #include "SDL_gamecontroller.h"
38
+ #include "SDL_quit.h"
39
+ #include "SDL_gesture.h"
40
+ #include "SDL_touch.h"
41
+
42
+ #include "begin_code.h"
43
+ /* Set up for C function definitions, even when using C++ */
44
+ #ifdef __cplusplus
45
+ extern "C" {
46
+ #endif
47
+
48
+ /* General keyboard/mouse state definitions */
49
+ #define SDL_RELEASED 0
50
+ #define SDL_PRESSED 1
51
+
52
+ /**
53
+ * \brief The types of events that can be delivered.
54
+ */
55
+ typedef enum
56
+ {
57
+ SDL_FIRSTEVENT = 0, /**< Unused (do not remove) */
58
+
59
+ /* Application events */
60
+ SDL_QUIT = 0x100, /**< User-requested quit */
61
+
62
+ /* These application events have special meaning on iOS, see README-ios.txt for details */
63
+ SDL_APP_TERMINATING, /**< The application is being terminated by the OS
64
+ Called on iOS in applicationWillTerminate()
65
+ Called on Android in onDestroy()
66
+ */
67
+ SDL_APP_LOWMEMORY, /**< The application is low on memory, free memory if possible.
68
+ Called on iOS in applicationDidReceiveMemoryWarning()
69
+ Called on Android in onLowMemory()
70
+ */
71
+ SDL_APP_WILLENTERBACKGROUND, /**< The application is about to enter the background
72
+ Called on iOS in applicationWillResignActive()
73
+ Called on Android in onPause()
74
+ */
75
+ SDL_APP_DIDENTERBACKGROUND, /**< The application did enter the background and may not get CPU for some time
76
+ Called on iOS in applicationDidEnterBackground()
77
+ Called on Android in onPause()
78
+ */
79
+ SDL_APP_WILLENTERFOREGROUND, /**< The application is about to enter the foreground
80
+ Called on iOS in applicationWillEnterForeground()
81
+ Called on Android in onResume()
82
+ */
83
+ SDL_APP_DIDENTERFOREGROUND, /**< The application is now interactive
84
+ Called on iOS in applicationDidBecomeActive()
85
+ Called on Android in onResume()
86
+ */
87
+
88
+ /* Window events */
89
+ SDL_WINDOWEVENT = 0x200, /**< Window state change */
90
+ SDL_SYSWMEVENT, /**< System specific event */
91
+
92
+ /* Keyboard events */
93
+ SDL_KEYDOWN = 0x300, /**< Key pressed */
94
+ SDL_KEYUP, /**< Key released */
95
+ SDL_TEXTEDITING, /**< Keyboard text editing (composition) */
96
+ SDL_TEXTINPUT, /**< Keyboard text input */
97
+
98
+ /* Mouse events */
99
+ SDL_MOUSEMOTION = 0x400, /**< Mouse moved */
100
+ SDL_MOUSEBUTTONDOWN, /**< Mouse button pressed */
101
+ SDL_MOUSEBUTTONUP, /**< Mouse button released */
102
+ SDL_MOUSEWHEEL, /**< Mouse wheel motion */
103
+
104
+ /* Joystick events */
105
+ SDL_JOYAXISMOTION = 0x600, /**< Joystick axis motion */
106
+ SDL_JOYBALLMOTION, /**< Joystick trackball motion */
107
+ SDL_JOYHATMOTION, /**< Joystick hat position change */
108
+ SDL_JOYBUTTONDOWN, /**< Joystick button pressed */
109
+ SDL_JOYBUTTONUP, /**< Joystick button released */
110
+ SDL_JOYDEVICEADDED, /**< A new joystick has been inserted into the system */
111
+ SDL_JOYDEVICEREMOVED, /**< An opened joystick has been removed */
112
+
113
+ /* Game controller events */
114
+ SDL_CONTROLLERAXISMOTION = 0x650, /**< Game controller axis motion */
115
+ SDL_CONTROLLERBUTTONDOWN, /**< Game controller button pressed */
116
+ SDL_CONTROLLERBUTTONUP, /**< Game controller button released */
117
+ SDL_CONTROLLERDEVICEADDED, /**< A new Game controller has been inserted into the system */
118
+ SDL_CONTROLLERDEVICEREMOVED, /**< An opened Game controller has been removed */
119
+ SDL_CONTROLLERDEVICEREMAPPED, /**< The controller mapping was updated */
120
+
121
+ /* Touch events */
122
+ SDL_FINGERDOWN = 0x700,
123
+ SDL_FINGERUP,
124
+ SDL_FINGERMOTION,
125
+
126
+ /* Gesture events */
127
+ SDL_DOLLARGESTURE = 0x800,
128
+ SDL_DOLLARRECORD,
129
+ SDL_MULTIGESTURE,
130
+
131
+ /* Clipboard events */
132
+ SDL_CLIPBOARDUPDATE = 0x900, /**< The clipboard changed */
133
+
134
+ /* Drag and drop events */
135
+ SDL_DROPFILE = 0x1000, /**< The system requests a file open */
136
+
137
+ /* Render events */
138
+ SDL_RENDER_TARGETS_RESET = 0x2000, /**< The render targets have been reset */
139
+
140
+ /** Events ::SDL_USEREVENT through ::SDL_LASTEVENT are for your use,
141
+ * and should be allocated with SDL_RegisterEvents()
142
+ */
143
+ SDL_USEREVENT = 0x8000,
144
+
145
+ /**
146
+ * This last event is only for bounding internal arrays
147
+ */
148
+ SDL_LASTEVENT = 0xFFFF
149
+ } SDL_EventType;
150
+
151
+ /**
152
+ * \brief Fields shared by every event
153
+ */
154
+ typedef struct SDL_CommonEvent
155
+ {
156
+ Uint32 type;
157
+ Uint32 timestamp;
158
+ } SDL_CommonEvent;
159
+
160
+ /**
161
+ * \brief Window state change event data (event.window.*)
162
+ */
163
+ typedef struct SDL_WindowEvent
164
+ {
165
+ Uint32 type; /**< ::SDL_WINDOWEVENT */
166
+ Uint32 timestamp;
167
+ Uint32 windowID; /**< The associated window */
168
+ Uint8 event; /**< ::SDL_WindowEventID */
169
+ Uint8 padding1;
170
+ Uint8 padding2;
171
+ Uint8 padding3;
172
+ Sint32 data1; /**< event dependent data */
173
+ Sint32 data2; /**< event dependent data */
174
+ } SDL_WindowEvent;
175
+
176
+ /**
177
+ * \brief Keyboard button event structure (event.key.*)
178
+ */
179
+ typedef struct SDL_KeyboardEvent
180
+ {
181
+ Uint32 type; /**< ::SDL_KEYDOWN or ::SDL_KEYUP */
182
+ Uint32 timestamp;
183
+ Uint32 windowID; /**< The window with keyboard focus, if any */
184
+ Uint8 state; /**< ::SDL_PRESSED or ::SDL_RELEASED */
185
+ Uint8 repeat; /**< Non-zero if this is a key repeat */
186
+ Uint8 padding2;
187
+ Uint8 padding3;
188
+ SDL_Keysym keysym; /**< The key that was pressed or released */
189
+ } SDL_KeyboardEvent;
190
+
191
+ #define SDL_TEXTEDITINGEVENT_TEXT_SIZE (32)
192
+ /**
193
+ * \brief Keyboard text editing event structure (event.edit.*)
194
+ */
195
+ typedef struct SDL_TextEditingEvent
196
+ {
197
+ Uint32 type; /**< ::SDL_TEXTEDITING */
198
+ Uint32 timestamp;
199
+ Uint32 windowID; /**< The window with keyboard focus, if any */
200
+ char text[SDL_TEXTEDITINGEVENT_TEXT_SIZE]; /**< The editing text */
201
+ Sint32 start; /**< The start cursor of selected editing text */
202
+ Sint32 length; /**< The length of selected editing text */
203
+ } SDL_TextEditingEvent;
204
+
205
+
206
+ #define SDL_TEXTINPUTEVENT_TEXT_SIZE (32)
207
+ /**
208
+ * \brief Keyboard text input event structure (event.text.*)
209
+ */
210
+ typedef struct SDL_TextInputEvent
211
+ {
212
+ Uint32 type; /**< ::SDL_TEXTINPUT */
213
+ Uint32 timestamp;
214
+ Uint32 windowID; /**< The window with keyboard focus, if any */
215
+ char text[SDL_TEXTINPUTEVENT_TEXT_SIZE]; /**< The input text */
216
+ } SDL_TextInputEvent;
217
+
218
+ /**
219
+ * \brief Mouse motion event structure (event.motion.*)
220
+ */
221
+ typedef struct SDL_MouseMotionEvent
222
+ {
223
+ Uint32 type; /**< ::SDL_MOUSEMOTION */
224
+ Uint32 timestamp;
225
+ Uint32 windowID; /**< The window with mouse focus, if any */
226
+ Uint32 which; /**< The mouse instance id, or SDL_TOUCH_MOUSEID */
227
+ Uint32 state; /**< The current button state */
228
+ Sint32 x; /**< X coordinate, relative to window */
229
+ Sint32 y; /**< Y coordinate, relative to window */
230
+ Sint32 xrel; /**< The relative motion in the X direction */
231
+ Sint32 yrel; /**< The relative motion in the Y direction */
232
+ } SDL_MouseMotionEvent;
233
+
234
+ /**
235
+ * \brief Mouse button event structure (event.button.*)
236
+ */
237
+ typedef struct SDL_MouseButtonEvent
238
+ {
239
+ Uint32 type; /**< ::SDL_MOUSEBUTTONDOWN or ::SDL_MOUSEBUTTONUP */
240
+ Uint32 timestamp;
241
+ Uint32 windowID; /**< The window with mouse focus, if any */
242
+ Uint32 which; /**< The mouse instance id, or SDL_TOUCH_MOUSEID */
243
+ Uint8 button; /**< The mouse button index */
244
+ Uint8 state; /**< ::SDL_PRESSED or ::SDL_RELEASED */
245
+ Uint8 clicks; /**< 1 for single-click, 2 for double-click, etc. */
246
+ Uint8 padding1;
247
+ Sint32 x; /**< X coordinate, relative to window */
248
+ Sint32 y; /**< Y coordinate, relative to window */
249
+ } SDL_MouseButtonEvent;
250
+
251
+ /**
252
+ * \brief Mouse wheel event structure (event.wheel.*)
253
+ */
254
+ typedef struct SDL_MouseWheelEvent
255
+ {
256
+ Uint32 type; /**< ::SDL_MOUSEWHEEL */
257
+ Uint32 timestamp;
258
+ Uint32 windowID; /**< The window with mouse focus, if any */
259
+ Uint32 which; /**< The mouse instance id, or SDL_TOUCH_MOUSEID */
260
+ Sint32 x; /**< The amount scrolled horizontally, positive to the right and negative to the left */
261
+ Sint32 y; /**< The amount scrolled vertically, positive away from the user and negative toward the user */
262
+ } SDL_MouseWheelEvent;
263
+
264
+ /**
265
+ * \brief Joystick axis motion event structure (event.jaxis.*)
266
+ */
267
+ typedef struct SDL_JoyAxisEvent
268
+ {
269
+ Uint32 type; /**< ::SDL_JOYAXISMOTION */
270
+ Uint32 timestamp;
271
+ SDL_JoystickID which; /**< The joystick instance id */
272
+ Uint8 axis; /**< The joystick axis index */
273
+ Uint8 padding1;
274
+ Uint8 padding2;
275
+ Uint8 padding3;
276
+ Sint16 value; /**< The axis value (range: -32768 to 32767) */
277
+ Uint16 padding4;
278
+ } SDL_JoyAxisEvent;
279
+
280
+ /**
281
+ * \brief Joystick trackball motion event structure (event.jball.*)
282
+ */
283
+ typedef struct SDL_JoyBallEvent
284
+ {
285
+ Uint32 type; /**< ::SDL_JOYBALLMOTION */
286
+ Uint32 timestamp;
287
+ SDL_JoystickID which; /**< The joystick instance id */
288
+ Uint8 ball; /**< The joystick trackball index */
289
+ Uint8 padding1;
290
+ Uint8 padding2;
291
+ Uint8 padding3;
292
+ Sint16 xrel; /**< The relative motion in the X direction */
293
+ Sint16 yrel; /**< The relative motion in the Y direction */
294
+ } SDL_JoyBallEvent;
295
+
296
+ /**
297
+ * \brief Joystick hat position change event structure (event.jhat.*)
298
+ */
299
+ typedef struct SDL_JoyHatEvent
300
+ {
301
+ Uint32 type; /**< ::SDL_JOYHATMOTION */
302
+ Uint32 timestamp;
303
+ SDL_JoystickID which; /**< The joystick instance id */
304
+ Uint8 hat; /**< The joystick hat index */
305
+ Uint8 value; /**< The hat position value.
306
+ * \sa ::SDL_HAT_LEFTUP ::SDL_HAT_UP ::SDL_HAT_RIGHTUP
307
+ * \sa ::SDL_HAT_LEFT ::SDL_HAT_CENTERED ::SDL_HAT_RIGHT
308
+ * \sa ::SDL_HAT_LEFTDOWN ::SDL_HAT_DOWN ::SDL_HAT_RIGHTDOWN
309
+ *
310
+ * Note that zero means the POV is centered.
311
+ */
312
+ Uint8 padding1;
313
+ Uint8 padding2;
314
+ } SDL_JoyHatEvent;
315
+
316
+ /**
317
+ * \brief Joystick button event structure (event.jbutton.*)
318
+ */
319
+ typedef struct SDL_JoyButtonEvent
320
+ {
321
+ Uint32 type; /**< ::SDL_JOYBUTTONDOWN or ::SDL_JOYBUTTONUP */
322
+ Uint32 timestamp;
323
+ SDL_JoystickID which; /**< The joystick instance id */
324
+ Uint8 button; /**< The joystick button index */
325
+ Uint8 state; /**< ::SDL_PRESSED or ::SDL_RELEASED */
326
+ Uint8 padding1;
327
+ Uint8 padding2;
328
+ } SDL_JoyButtonEvent;
329
+
330
+ /**
331
+ * \brief Joystick device event structure (event.jdevice.*)
332
+ */
333
+ typedef struct SDL_JoyDeviceEvent
334
+ {
335
+ Uint32 type; /**< ::SDL_JOYDEVICEADDED or ::SDL_JOYDEVICEREMOVED */
336
+ Uint32 timestamp;
337
+ Sint32 which; /**< The joystick device index for the ADDED event, instance id for the REMOVED event */
338
+ } SDL_JoyDeviceEvent;
339
+
340
+
341
+ /**
342
+ * \brief Game controller axis motion event structure (event.caxis.*)
343
+ */
344
+ typedef struct SDL_ControllerAxisEvent
345
+ {
346
+ Uint32 type; /**< ::SDL_CONTROLLERAXISMOTION */
347
+ Uint32 timestamp;
348
+ SDL_JoystickID which; /**< The joystick instance id */
349
+ Uint8 axis; /**< The controller axis (SDL_GameControllerAxis) */
350
+ Uint8 padding1;
351
+ Uint8 padding2;
352
+ Uint8 padding3;
353
+ Sint16 value; /**< The axis value (range: -32768 to 32767) */
354
+ Uint16 padding4;
355
+ } SDL_ControllerAxisEvent;
356
+
357
+
358
+ /**
359
+ * \brief Game controller button event structure (event.cbutton.*)
360
+ */
361
+ typedef struct SDL_ControllerButtonEvent
362
+ {
363
+ Uint32 type; /**< ::SDL_CONTROLLERBUTTONDOWN or ::SDL_CONTROLLERBUTTONUP */
364
+ Uint32 timestamp;
365
+ SDL_JoystickID which; /**< The joystick instance id */
366
+ Uint8 button; /**< The controller button (SDL_GameControllerButton) */
367
+ Uint8 state; /**< ::SDL_PRESSED or ::SDL_RELEASED */
368
+ Uint8 padding1;
369
+ Uint8 padding2;
370
+ } SDL_ControllerButtonEvent;
371
+
372
+
373
+ /**
374
+ * \brief Controller device event structure (event.cdevice.*)
375
+ */
376
+ typedef struct SDL_ControllerDeviceEvent
377
+ {
378
+ Uint32 type; /**< ::SDL_CONTROLLERDEVICEADDED, ::SDL_CONTROLLERDEVICEREMOVED, or ::SDL_CONTROLLERDEVICEREMAPPED */
379
+ Uint32 timestamp;
380
+ Sint32 which; /**< The joystick device index for the ADDED event, instance id for the REMOVED or REMAPPED event */
381
+ } SDL_ControllerDeviceEvent;
382
+
383
+
384
+ /**
385
+ * \brief Touch finger event structure (event.tfinger.*)
386
+ */
387
+ typedef struct SDL_TouchFingerEvent
388
+ {
389
+ Uint32 type; /**< ::SDL_FINGERMOTION or ::SDL_FINGERDOWN or ::SDL_FINGERUP */
390
+ Uint32 timestamp;
391
+ SDL_TouchID touchId; /**< The touch device id */
392
+ SDL_FingerID fingerId;
393
+ float x; /**< Normalized in the range 0...1 */
394
+ float y; /**< Normalized in the range 0...1 */
395
+ float dx; /**< Normalized in the range 0...1 */
396
+ float dy; /**< Normalized in the range 0...1 */
397
+ float pressure; /**< Normalized in the range 0...1 */
398
+ } SDL_TouchFingerEvent;
399
+
400
+
401
+ /**
402
+ * \brief Multiple Finger Gesture Event (event.mgesture.*)
403
+ */
404
+ typedef struct SDL_MultiGestureEvent
405
+ {
406
+ Uint32 type; /**< ::SDL_MULTIGESTURE */
407
+ Uint32 timestamp;
408
+ SDL_TouchID touchId; /**< The touch device index */
409
+ float dTheta;
410
+ float dDist;
411
+ float x;
412
+ float y;
413
+ Uint16 numFingers;
414
+ Uint16 padding;
415
+ } SDL_MultiGestureEvent;
416
+
417
+
418
+ /**
419
+ * \brief Dollar Gesture Event (event.dgesture.*)
420
+ */
421
+ typedef struct SDL_DollarGestureEvent
422
+ {
423
+ Uint32 type; /**< ::SDL_DOLLARGESTURE */
424
+ Uint32 timestamp;
425
+ SDL_TouchID touchId; /**< The touch device id */
426
+ SDL_GestureID gestureId;
427
+ Uint32 numFingers;
428
+ float error;
429
+ float x; /**< Normalized center of gesture */
430
+ float y; /**< Normalized center of gesture */
431
+ } SDL_DollarGestureEvent;
432
+
433
+
434
+ /**
435
+ * \brief An event used to request a file open by the system (event.drop.*)
436
+ * This event is disabled by default, you can enable it with SDL_EventState()
437
+ * \note If you enable this event, you must free the filename in the event.
438
+ */
439
+ typedef struct SDL_DropEvent
440
+ {
441
+ Uint32 type; /**< ::SDL_DROPFILE */
442
+ Uint32 timestamp;
443
+ char *file; /**< The file name, which should be freed with SDL_free() */
444
+ } SDL_DropEvent;
445
+
446
+
447
+ /**
448
+ * \brief The "quit requested" event
449
+ */
450
+ typedef struct SDL_QuitEvent
451
+ {
452
+ Uint32 type; /**< ::SDL_QUIT */
453
+ Uint32 timestamp;
454
+ } SDL_QuitEvent;
455
+
456
+ /**
457
+ * \brief OS Specific event
458
+ */
459
+ typedef struct SDL_OSEvent
460
+ {
461
+ Uint32 type; /**< ::SDL_QUIT */
462
+ Uint32 timestamp;
463
+ } SDL_OSEvent;
464
+
465
+ /**
466
+ * \brief A user-defined event type (event.user.*)
467
+ */
468
+ typedef struct SDL_UserEvent
469
+ {
470
+ Uint32 type; /**< ::SDL_USEREVENT through ::SDL_LASTEVENT-1 */
471
+ Uint32 timestamp;
472
+ Uint32 windowID; /**< The associated window if any */
473
+ Sint32 code; /**< User defined event code */
474
+ void *data1; /**< User defined data pointer */
475
+ void *data2; /**< User defined data pointer */
476
+ } SDL_UserEvent;
477
+
478
+
479
+ struct SDL_SysWMmsg;
480
+ typedef struct SDL_SysWMmsg SDL_SysWMmsg;
481
+
482
+ /**
483
+ * \brief A video driver dependent system event (event.syswm.*)
484
+ * This event is disabled by default, you can enable it with SDL_EventState()
485
+ *
486
+ * \note If you want to use this event, you should include SDL_syswm.h.
487
+ */
488
+ typedef struct SDL_SysWMEvent
489
+ {
490
+ Uint32 type; /**< ::SDL_SYSWMEVENT */
491
+ Uint32 timestamp;
492
+ SDL_SysWMmsg *msg; /**< driver dependent data, defined in SDL_syswm.h */
493
+ } SDL_SysWMEvent;
494
+
495
+ /**
496
+ * \brief General event structure
497
+ */
498
+ typedef union SDL_Event
499
+ {
500
+ Uint32 type; /**< Event type, shared with all events */
501
+ SDL_CommonEvent common; /**< Common event data */
502
+ SDL_WindowEvent window; /**< Window event data */
503
+ SDL_KeyboardEvent key; /**< Keyboard event data */
504
+ SDL_TextEditingEvent edit; /**< Text editing event data */
505
+ SDL_TextInputEvent text; /**< Text input event data */
506
+ SDL_MouseMotionEvent motion; /**< Mouse motion event data */
507
+ SDL_MouseButtonEvent button; /**< Mouse button event data */
508
+ SDL_MouseWheelEvent wheel; /**< Mouse wheel event data */
509
+ SDL_JoyAxisEvent jaxis; /**< Joystick axis event data */
510
+ SDL_JoyBallEvent jball; /**< Joystick ball event data */
511
+ SDL_JoyHatEvent jhat; /**< Joystick hat event data */
512
+ SDL_JoyButtonEvent jbutton; /**< Joystick button event data */
513
+ SDL_JoyDeviceEvent jdevice; /**< Joystick device change event data */
514
+ SDL_ControllerAxisEvent caxis; /**< Game Controller axis event data */
515
+ SDL_ControllerButtonEvent cbutton; /**< Game Controller button event data */
516
+ SDL_ControllerDeviceEvent cdevice; /**< Game Controller device event data */
517
+ SDL_QuitEvent quit; /**< Quit request event data */
518
+ SDL_UserEvent user; /**< Custom event data */
519
+ SDL_SysWMEvent syswm; /**< System dependent window event data */
520
+ SDL_TouchFingerEvent tfinger; /**< Touch finger event data */
521
+ SDL_MultiGestureEvent mgesture; /**< Gesture event data */
522
+ SDL_DollarGestureEvent dgesture; /**< Gesture event data */
523
+ SDL_DropEvent drop; /**< Drag and drop event data */
524
+
525
+ /* This is necessary for ABI compatibility between Visual C++ and GCC
526
+ Visual C++ will respect the push pack pragma and use 52 bytes for
527
+ this structure, and GCC will use the alignment of the largest datatype
528
+ within the union, which is 8 bytes.
529
+
530
+ So... we'll add padding to force the size to be 56 bytes for both.
531
+ */
532
+ Uint8 padding[56];
533
+ } SDL_Event;
534
+
535
+
536
+ /* Function prototypes */
537
+
538
+ /**
539
+ * Pumps the event loop, gathering events from the input devices.
540
+ *
541
+ * This function updates the event queue and internal input device state.
542
+ *
543
+ * This should only be run in the thread that sets the video mode.
544
+ */
545
+ extern DECLSPEC void SDLCALL SDL_PumpEvents(void);
546
+
547
+ /* @{ */
548
+ typedef enum
549
+ {
550
+ SDL_ADDEVENT,
551
+ SDL_PEEKEVENT,
552
+ SDL_GETEVENT
553
+ } SDL_eventaction;
554
+
555
+ /**
556
+ * Checks the event queue for messages and optionally returns them.
557
+ *
558
+ * If \c action is ::SDL_ADDEVENT, up to \c numevents events will be added to
559
+ * the back of the event queue.
560
+ *
561
+ * If \c action is ::SDL_PEEKEVENT, up to \c numevents events at the front
562
+ * of the event queue, within the specified minimum and maximum type,
563
+ * will be returned and will not be removed from the queue.
564
+ *
565
+ * If \c action is ::SDL_GETEVENT, up to \c numevents events at the front
566
+ * of the event queue, within the specified minimum and maximum type,
567
+ * will be returned and will be removed from the queue.
568
+ *
569
+ * \return The number of events actually stored, or -1 if there was an error.
570
+ *
571
+ * This function is thread-safe.
572
+ */
573
+ extern DECLSPEC int SDLCALL SDL_PeepEvents(SDL_Event * events, int numevents,
574
+ SDL_eventaction action,
575
+ Uint32 minType, Uint32 maxType);
576
+ /* @} */
577
+
578
+ /**
579
+ * Checks to see if certain event types are in the event queue.
580
+ */
581
+ extern DECLSPEC SDL_bool SDLCALL SDL_HasEvent(Uint32 type);
582
+ extern DECLSPEC SDL_bool SDLCALL SDL_HasEvents(Uint32 minType, Uint32 maxType);
583
+
584
+ /**
585
+ * This function clears events from the event queue
586
+ */
587
+ extern DECLSPEC void SDLCALL SDL_FlushEvent(Uint32 type);
588
+ extern DECLSPEC void SDLCALL SDL_FlushEvents(Uint32 minType, Uint32 maxType);
589
+
590
+ /**
591
+ * \brief Polls for currently pending events.
592
+ *
593
+ * \return 1 if there are any pending events, or 0 if there are none available.
594
+ *
595
+ * \param event If not NULL, the next event is removed from the queue and
596
+ * stored in that area.
597
+ */
598
+ extern DECLSPEC int SDLCALL SDL_PollEvent(SDL_Event * event);
599
+
600
+ /**
601
+ * \brief Waits indefinitely for the next available event.
602
+ *
603
+ * \return 1, or 0 if there was an error while waiting for events.
604
+ *
605
+ * \param event If not NULL, the next event is removed from the queue and
606
+ * stored in that area.
607
+ */
608
+ extern DECLSPEC int SDLCALL SDL_WaitEvent(SDL_Event * event);
609
+
610
+ /**
611
+ * \brief Waits until the specified timeout (in milliseconds) for the next
612
+ * available event.
613
+ *
614
+ * \return 1, or 0 if there was an error while waiting for events.
615
+ *
616
+ * \param event If not NULL, the next event is removed from the queue and
617
+ * stored in that area.
618
+ * \param timeout The timeout (in milliseconds) to wait for next event.
619
+ */
620
+ extern DECLSPEC int SDLCALL SDL_WaitEventTimeout(SDL_Event * event,
621
+ int timeout);
622
+
623
+ /**
624
+ * \brief Add an event to the event queue.
625
+ *
626
+ * \return 1 on success, 0 if the event was filtered, or -1 if the event queue
627
+ * was full or there was some other error.
628
+ */
629
+ extern DECLSPEC int SDLCALL SDL_PushEvent(SDL_Event * event);
630
+
631
+ typedef int (SDLCALL * SDL_EventFilter) (void *userdata, SDL_Event * event);
632
+
633
+ /**
634
+ * Sets up a filter to process all events before they change internal state and
635
+ * are posted to the internal event queue.
636
+ *
637
+ * The filter is prototyped as:
638
+ * \code
639
+ * int SDL_EventFilter(void *userdata, SDL_Event * event);
640
+ * \endcode
641
+ *
642
+ * If the filter returns 1, then the event will be added to the internal queue.
643
+ * If it returns 0, then the event will be dropped from the queue, but the
644
+ * internal state will still be updated. This allows selective filtering of
645
+ * dynamically arriving events.
646
+ *
647
+ * \warning Be very careful of what you do in the event filter function, as
648
+ * it may run in a different thread!
649
+ *
650
+ * There is one caveat when dealing with the ::SDL_QuitEvent event type. The
651
+ * event filter is only called when the window manager desires to close the
652
+ * application window. If the event filter returns 1, then the window will
653
+ * be closed, otherwise the window will remain open if possible.
654
+ *
655
+ * If the quit event is generated by an interrupt signal, it will bypass the
656
+ * internal queue and be delivered to the application at the next event poll.
657
+ */
658
+ extern DECLSPEC void SDLCALL SDL_SetEventFilter(SDL_EventFilter filter,
659
+ void *userdata);
660
+
661
+ /**
662
+ * Return the current event filter - can be used to "chain" filters.
663
+ * If there is no event filter set, this function returns SDL_FALSE.
664
+ */
665
+ extern DECLSPEC SDL_bool SDLCALL SDL_GetEventFilter(SDL_EventFilter * filter,
666
+ void **userdata);
667
+
668
+ /**
669
+ * Add a function which is called when an event is added to the queue.
670
+ */
671
+ extern DECLSPEC void SDLCALL SDL_AddEventWatch(SDL_EventFilter filter,
672
+ void *userdata);
673
+
674
+ /**
675
+ * Remove an event watch function added with SDL_AddEventWatch()
676
+ */
677
+ extern DECLSPEC void SDLCALL SDL_DelEventWatch(SDL_EventFilter filter,
678
+ void *userdata);
679
+
680
+ /**
681
+ * Run the filter function on the current event queue, removing any
682
+ * events for which the filter returns 0.
683
+ */
684
+ extern DECLSPEC void SDLCALL SDL_FilterEvents(SDL_EventFilter filter,
685
+ void *userdata);
686
+
687
+ /* @{ */
688
+ #define SDL_QUERY -1
689
+ #define SDL_IGNORE 0
690
+ #define SDL_DISABLE 0
691
+ #define SDL_ENABLE 1
692
+
693
+ /**
694
+ * This function allows you to set the state of processing certain events.
695
+ * - If \c state is set to ::SDL_IGNORE, that event will be automatically
696
+ * dropped from the event queue and will not event be filtered.
697
+ * - If \c state is set to ::SDL_ENABLE, that event will be processed
698
+ * normally.
699
+ * - If \c state is set to ::SDL_QUERY, SDL_EventState() will return the
700
+ * current processing state of the specified event.
701
+ */
702
+ extern DECLSPEC Uint8 SDLCALL SDL_EventState(Uint32 type, int state);
703
+ /* @} */
704
+ #define SDL_GetEventState(type) SDL_EventState(type, SDL_QUERY)
705
+
706
+ /**
707
+ * This function allocates a set of user-defined events, and returns
708
+ * the beginning event number for that set of events.
709
+ *
710
+ * If there aren't enough user-defined events left, this function
711
+ * returns (Uint32)-1
712
+ */
713
+ extern DECLSPEC Uint32 SDLCALL SDL_RegisterEvents(int numevents);
714
+
715
+ /* Ends C function definitions when using C++ */
716
+ #ifdef __cplusplus
717
+ }
718
+ #endif
719
+ #include "close_code.h"
720
+
721
+ #endif /* _SDL_events_h */
722
+
723
+ /* vi: set ts=4 sw=4 expandtab: */