SDLRuby 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +5 -0
  3. data/LICENSE.txt +21 -0
  4. data/README.md +31 -0
  5. data/Rakefile +12 -0
  6. data/lib/SDLRuby/audio.rb +65 -0
  7. data/lib/SDLRuby/cursor.rb +46 -0
  8. data/lib/SDLRuby/display.rb +79 -0
  9. data/lib/SDLRuby/event/accessor.rb +127 -0
  10. data/lib/SDLRuby/event/type.rb +75 -0
  11. data/lib/SDLRuby/event.rb +80 -0
  12. data/lib/SDLRuby/font.rb +227 -0
  13. data/lib/SDLRuby/hint.rb +36 -0
  14. data/lib/SDLRuby/image/image.rb +23 -0
  15. data/lib/SDLRuby/image/include/SDL_image.h.rb +61 -0
  16. data/lib/SDLRuby/image.rb +69 -0
  17. data/lib/SDLRuby/keyboard.rb +58 -0
  18. data/lib/SDLRuby/mixer/channel.rb +43 -0
  19. data/lib/SDLRuby/mixer/chunk.rb +49 -0
  20. data/lib/SDLRuby/mixer/controller.rb +44 -0
  21. data/lib/SDLRuby/mixer/include/SDL_mixer.h.rb +95 -0
  22. data/lib/SDLRuby/mixer/sdl_mixer.rb +60 -0
  23. data/lib/SDLRuby/mixer.rb +87 -0
  24. data/lib/SDLRuby/mouse.rb +52 -0
  25. data/lib/SDLRuby/music.rb +158 -0
  26. data/lib/SDLRuby/palette.rb +49 -0
  27. data/lib/SDLRuby/pixel_formatter.rb +67 -0
  28. data/lib/SDLRuby/rect.rb +11 -0
  29. data/lib/SDLRuby/renderer/accessor.rb +70 -0
  30. data/lib/SDLRuby/renderer/drawer.rb +107 -0
  31. data/lib/SDLRuby/renderer/renderer_info.rb +27 -0
  32. data/lib/SDLRuby/renderer.rb +101 -0
  33. data/lib/SDLRuby/rw_ops/rw_object.rb +128 -0
  34. data/lib/SDLRuby/rw_ops.rb +216 -0
  35. data/lib/SDLRuby/sdl/include/SDL.h.rb +33 -0
  36. data/lib/SDLRuby/sdl/include/SDL_audio.h.rb +49 -0
  37. data/lib/SDLRuby/sdl/include/SDL_blendmode.h.rb +6 -0
  38. data/lib/SDLRuby/sdl/include/SDL_clipboard.h.rb +10 -0
  39. data/lib/SDLRuby/sdl/include/SDL_config.h.rb +13 -0
  40. data/lib/SDLRuby/sdl/include/SDL_cpuinfo.h.rb +27 -0
  41. data/lib/SDLRuby/sdl/include/SDL_endian.h.rb +3 -0
  42. data/lib/SDLRuby/sdl/include/SDL_error.h.rb +9 -0
  43. data/lib/SDLRuby/sdl/include/SDL_events.h.rb +32 -0
  44. data/lib/SDLRuby/sdl/include/SDL_filesystem.h.rb +6 -0
  45. data/lib/SDLRuby/sdl/include/SDL_gamecontroller.h.rb +66 -0
  46. data/lib/SDLRuby/sdl/include/SDL_gesture.h.rb +12 -0
  47. data/lib/SDLRuby/sdl/include/SDL_guid.h.rb +7 -0
  48. data/lib/SDLRuby/sdl/include/SDL_hints.h.rb +14 -0
  49. data/lib/SDLRuby/sdl/include/SDL_joystick.h.rb +69 -0
  50. data/lib/SDLRuby/sdl/include/SDL_keyboard.h.rb +26 -0
  51. data/lib/SDLRuby/sdl/include/SDL_keycode.h.rb +7 -0
  52. data/lib/SDLRuby/sdl/include/SDL_locale.h.rb +6 -0
  53. data/lib/SDLRuby/sdl/include/SDL_main.h.rb +3 -0
  54. data/lib/SDLRuby/sdl/include/SDL_messagebox.h.rb +10 -0
  55. data/lib/SDLRuby/sdl/include/SDL_misc.h.rb +5 -0
  56. data/lib/SDLRuby/sdl/include/SDL_mouse.h.rb +26 -0
  57. data/lib/SDLRuby/sdl/include/SDL_pixels.h.rb +25 -0
  58. data/lib/SDLRuby/sdl/include/SDL_platform.h.rb +3 -0
  59. data/lib/SDLRuby/sdl/include/SDL_power.h.rb +6 -0
  60. data/lib/SDLRuby/sdl/include/SDL_rect.h.rb +17 -0
  61. data/lib/SDLRuby/sdl/include/SDL_render.h.rb +94 -0
  62. data/lib/SDLRuby/sdl/include/SDL_revision.h.rb +2 -0
  63. data/lib/SDLRuby/sdl/include/SDL_rwops.h.rb +34 -0
  64. data/lib/SDLRuby/sdl/include/SDL_scancode.h.rb +5 -0
  65. data/lib/SDLRuby/sdl/include/SDL_sensor.h.rb +25 -0
  66. data/lib/SDLRuby/sdl/include/SDL_shape.h.rb +13 -0
  67. data/lib/SDLRuby/sdl/include/SDL_stdinc.h.rb +24 -0
  68. data/lib/SDLRuby/sdl/include/SDL_surface.h.rb +37 -0
  69. data/lib/SDLRuby/sdl/include/SDL_system.h.rb +6 -0
  70. data/lib/SDLRuby/sdl/include/SDL_syswm.h.rb +16 -0
  71. data/lib/SDLRuby/sdl/include/SDL_timer.h.rb +13 -0
  72. data/lib/SDLRuby/sdl/include/SDL_touch.h.rb +15 -0
  73. data/lib/SDLRuby/sdl/include/SDL_types.h.rb +3 -0
  74. data/lib/SDLRuby/sdl/include/SDL_version.h.rb +6 -0
  75. data/lib/SDLRuby/sdl/include/SDL_video.h.rb +117 -0
  76. data/lib/SDLRuby/sdl/sdl.rb +55 -0
  77. data/lib/SDLRuby/sdl/sdl_audio.rb +75 -0
  78. data/lib/SDLRuby/sdl/sdl_blendmode.rb +10 -0
  79. data/lib/SDLRuby/sdl/sdl_error.rb +5 -0
  80. data/lib/SDLRuby/sdl/sdl_events.rb +470 -0
  81. data/lib/SDLRuby/sdl/sdl_hints.rb +9 -0
  82. data/lib/SDLRuby/sdl/sdl_keyboard.rb +12 -0
  83. data/lib/SDLRuby/sdl/sdl_locale.rb +8 -0
  84. data/lib/SDLRuby/sdl/sdl_message_box.rb +7 -0
  85. data/lib/SDLRuby/sdl/sdl_mouse.rb +32 -0
  86. data/lib/SDLRuby/sdl/sdl_palette.rb +12 -0
  87. data/lib/SDLRuby/sdl/sdl_pixels.rb +138 -0
  88. data/lib/SDLRuby/sdl/sdl_rect.rb +11 -0
  89. data/lib/SDLRuby/sdl/sdl_render.rb +35 -0
  90. data/lib/SDLRuby/sdl/sdl_rw_ops.rb +29 -0
  91. data/lib/SDLRuby/sdl/sdl_scancode.rb +255 -0
  92. data/lib/SDLRuby/sdl/sdl_surface.rb +27 -0
  93. data/lib/SDLRuby/sdl/sdl_version.rb +5 -0
  94. data/lib/SDLRuby/sdl/sdl_video.rb +104 -0
  95. data/lib/SDLRuby/sdl.rb +192 -0
  96. data/lib/SDLRuby/sdl_error.rb +8 -0
  97. data/lib/SDLRuby/surface/pixel_format.rb +51 -0
  98. data/lib/SDLRuby/surface/surface_renderer.rb +26 -0
  99. data/lib/SDLRuby/surface.rb +179 -0
  100. data/lib/SDLRuby/text_input.rb +38 -0
  101. data/lib/SDLRuby/texture.rb +93 -0
  102. data/lib/SDLRuby/ttf/include/SDL_ttf.h.rb +54 -0
  103. data/lib/SDLRuby/ttf/ttf.rb +41 -0
  104. data/lib/SDLRuby/ttf.rb +54 -0
  105. data/lib/SDLRuby/version.rb +5 -0
  106. data/lib/SDLRuby/window/accessor.rb +125 -0
  107. data/lib/SDLRuby/window/controller.rb +53 -0
  108. data/lib/SDLRuby/window/display_info.rb +48 -0
  109. data/lib/SDLRuby/window/flag.rb +42 -0
  110. data/lib/SDLRuby/window/hit_tester.rb +61 -0
  111. data/lib/SDLRuby/window/input.rb +68 -0
  112. data/lib/SDLRuby/window/shaper.rb +68 -0
  113. data/lib/SDLRuby/window/surfacer.rb +37 -0
  114. data/lib/SDLRuby/window/window_renderer.rb +31 -0
  115. data/lib/SDLRuby/window.rb +90 -0
  116. data/lib/SDLRuby.rb +16 -0
  117. data/sig/SDLRuby/event.rbs +104 -0
  118. data/sig/SDLRuby/pixel_formmater.rbs +24 -0
  119. data/sig/SDLRuby/rect.rbs +5 -0
  120. data/sig/SDLRuby/sdl.rbs +606 -0
  121. data/sig/SDLRuby.rbs +4 -0
  122. metadata +168 -0
@@ -0,0 +1,470 @@
1
+ require_relative 'sdl_keyboard'
2
+
3
+ module SDLRuby
4
+ module SDL
5
+ SDL_RELEASED = 0
6
+ SDL_PRESSED = 1
7
+
8
+ # SDL_EventType
9
+ #
10
+ SDL_FIRSTEVENT = 0
11
+ SDL_QUIT = 0x100
12
+ SDL_APP_TERMINATING = 0x101
13
+ SDL_APP_LOWMEMORY = 0x102
14
+ SDL_APP_WILLENTERBACKGROUND = 0x103
15
+ SDL_APP_DIDENTERBACKGROUND = 0x104
16
+ SDL_APP_WILLENTERFOREGROUND = 0x105
17
+ SDL_APP_DIDENTERFOREGROUND = 0x106
18
+ SDL_LOCALECHANGED = 0x107
19
+ SDL_DISPLAYEVENT = 0x150
20
+ SDL_WINDOWEVENT = 0x200
21
+ SDL_SYSWMEVENT = 0x201
22
+ SDL_KEYDOWN = 0x300
23
+ SDL_KEYUP = 0x301
24
+ SDL_TEXTEDITING = 0x302
25
+ SDL_TEXTINPUT = 0x303
26
+ SDL_KEYMAPCHANGED = 0x304
27
+ SDL_TEXTEDITING_EXT = 0x305
28
+ SDL_MOUSEMOTION = 0x400
29
+ SDL_MOUSEBUTTONDOWN = 0x401
30
+ SDL_MOUSEBUTTONUP = 0x402
31
+ SDL_MOUSEWHEEL = 0x403
32
+ SDL_JOYAXISMOTION = 0x600
33
+ SDL_JOYBALLMOTION = 0x601
34
+ SDL_JOYHATMOTION = 0x602
35
+ SDL_JOYBUTTONDOWN = 0x603
36
+ SDL_JOYBUTTONUP = 0x604
37
+ SDL_JOYDEVICEADDED = 0x605
38
+ SDL_JOYDEVICEREMOVED = 0x606
39
+ SDL_JOYBATTERYUPDATED = 0x607
40
+ SDL_CONTROLLERAXISMOTION = 0x650
41
+ SDL_CONTROLLERBUTTONDOWN = 0x651
42
+ SDL_CONTROLLERBUTTONUP = 0x652
43
+ SDL_CONTROLLERDEVICEADDED = 0x653
44
+ SDL_CONTROLLERDEVICEREMOVED = 0x654
45
+ SDL_CONTROLLERDEVICEREMAPPED = 0x655
46
+ SDL_CONTROLLERTOUCHPADDOWN = 0x656
47
+ SDL_CONTROLLERTOUCHPADMOTION = 0x657
48
+ SDL_CONTROLLERTOUCHPADUP = 0x658
49
+ SDL_CONTROLLERSENSORUPDATE = 0x659
50
+ SDL_FINGERDOWN = 0x700
51
+ SDL_FINGERUP = 0x701
52
+ SDL_FINGERMOTION = 0x702
53
+ SDL_DOLLARGESTURE = 0x800
54
+ SDL_DOLLARRECORD = 0x801
55
+ SDL_MULTIGESTURE = 0x802
56
+ SDL_CLIPBOARDUPDATE = 0x900
57
+ SDL_DROPFILE = 0x1000
58
+ SDL_DROPTEXT = 0x1001
59
+ SDL_DROPBEGIN = 0x1002
60
+ SDL_DROPCOMPLETE = 0x1003
61
+ SDL_AUDIODEVICEADDED = 0x1100
62
+ SDL_AUDIODEVICEREMOVED = 0x1101
63
+ SDL_SENSORUPDATE = 0x1200
64
+ SDL_RENDER_TARGETS_RESET = 0x2000
65
+ SDL_RENDER_DEVICE_RESET = 0x2001
66
+ SDL_POLLSENTINEL = 0x7F00
67
+ SDL_USEREVENT = 0x8000
68
+ SDL_LASTEVENT = 0xFFFF
69
+
70
+ SDL_CommonEvent = struct(["Uint32 type", "Uint32 timestamp"])
71
+
72
+ SDL_DisplayEvent = struct(
73
+ [
74
+ "Uint32 type",
75
+ "Uint32 timestamp",
76
+ "Uint32 display",
77
+ "Uint8 event",
78
+ "Uint8 padding1",
79
+ "Uint8 padding2",
80
+ "Uint8 padding3",
81
+ "Sint32 data1"
82
+ ]
83
+ )
84
+
85
+ SDL_WindowEvent = struct(
86
+ [
87
+ "Uint32 type",
88
+ "Uint32 timestamp",
89
+ "Uint32 windowID",
90
+ "Uint8 event",
91
+ "Uint8 padding1",
92
+ "Uint8 padding2",
93
+ "Uint8 padding3",
94
+ "Sint32 data1",
95
+ "Sint32 data2"
96
+ ]
97
+ )
98
+
99
+ SDL_KeyboardEvent = struct(
100
+ [
101
+ "Uint32 type",
102
+ "Uint32 timestamp",
103
+ "Uint32 windowID",
104
+ "Uint8 state",
105
+ "Uint8 repeat",
106
+ "Uint8 padding2",
107
+ "Uint8 padding3",
108
+ { keysym: SDL_Keysym }
109
+ ]
110
+ )
111
+
112
+ SDL_TEXTEDITINGEVENT_TEXT_SIZE = 32
113
+
114
+ SDL_TextEditingEvent = struct(
115
+ [
116
+ "Uint32 type",
117
+ "Uint32 timestamp",
118
+ "Uint32 windowID",
119
+ "char text[#{SDL_TEXTEDITINGEVENT_TEXT_SIZE}]",
120
+ "Sint32 start",
121
+ "Sint32 length"
122
+ ]
123
+ )
124
+
125
+ SDL_TextEditingExtEvent = struct(
126
+ [
127
+ "Uint32 type",
128
+ "Uint32 timestamp",
129
+ "Uint32 windowID",
130
+ # The editing text, which should be freed with SDL_free(),
131
+ # and will not be NULL.
132
+ "char* text",
133
+ "Sint32 start",
134
+ "Sint32 length"
135
+ ]
136
+ )
137
+
138
+ SDL_TEXTINPUTEVENT_TEXT_SIZE = 32
139
+
140
+ SDL_TextInputEvent = struct(
141
+ [
142
+ "Uint32 type",
143
+ "Uint32 timestamp",
144
+ "Uint32 windowID",
145
+ "char text[#{SDL_TEXTINPUTEVENT_TEXT_SIZE}]"
146
+ ]
147
+ )
148
+
149
+ SDL_MouseMotionEvent = struct(
150
+ [
151
+ "Uint32 type",
152
+ "Uint32 timestamp",
153
+ "Uint32 windowID",
154
+ "Uint32 which",
155
+ "Uint32 state",
156
+ "Sint32 x",
157
+ "Sint32 y",
158
+ "Sint32 xrel",
159
+ "Sint32 yrel"
160
+ ]
161
+ )
162
+
163
+ SDL_MouseButtonEvent = struct(
164
+ [
165
+ "Uint32 type",
166
+ "Uint32 timestamp",
167
+ "Uint32 windowID",
168
+ "Uint32 which",
169
+ "Uint8 button",
170
+ "Uint8 state",
171
+ "Uint8 clicks",
172
+ "Uint8 padding1",
173
+ "Sint32 x",
174
+ "Sint32 y"
175
+ ]
176
+ )
177
+
178
+ SDL_MouseWheelEvent = struct(
179
+ [
180
+ "Uint32 type",
181
+ "Uint32 timestamp",
182
+ "Uint32 windowID",
183
+ "Uint32 which",
184
+ "Sint32 x",
185
+ "Sint32 y",
186
+ "Uint32 direction",
187
+ "float preciseX",
188
+ "float preciseY",
189
+ "Sint32 mouseX",
190
+ "Sint32 mouseY"
191
+ ]
192
+ )
193
+
194
+ SDL_JoyAxisEvent = struct(
195
+ [
196
+ "Uint32 type",
197
+ "Uint32 timestamp",
198
+ "SDL_JoystickID which",
199
+ "Uint8 axis",
200
+ "Uint8 padding1",
201
+ "Uint8 padding2",
202
+ "Uint8 padding3",
203
+ "Sint16 value",
204
+ "Uint16 padding4"
205
+ ]
206
+ )
207
+
208
+ SDL_JoyBallEvent = struct(
209
+ [
210
+ "Uint32 type",
211
+ "Uint32 timestamp",
212
+ "SDL_JoystickID which",
213
+ "Uint8 ball",
214
+ "Uint8 padding1",
215
+ "Uint8 padding2",
216
+ "Uint8 padding3",
217
+ "Sint16 xrel",
218
+ "Sint16 yrel"
219
+ ]
220
+ )
221
+
222
+ SDL_JoyHatEvent = struct(
223
+ [
224
+ "Uint32 type",
225
+ "Uint32 timestamp",
226
+ "SDL_JoystickID which",
227
+ "Uint8 hat",
228
+ "Uint8 value",
229
+ "Uint8 padding1",
230
+ "Uint8 padding2"
231
+ ]
232
+ )
233
+
234
+ SDL_JoyButtonEvent = struct(
235
+ [
236
+ "Uint32 type",
237
+ "Uint32 timestamp",
238
+ "SDL_JoystickID which",
239
+ "Uint8 button",
240
+ "Uint8 state",
241
+ "Uint8 padding1",
242
+ "Uint8 padding2"
243
+ ]
244
+ )
245
+
246
+ SDL_JoyDeviceEvent = struct(
247
+ [
248
+ "Uint32 type",
249
+ "Uint32 timestamp",
250
+ "Sint32 which"
251
+ ]
252
+ )
253
+
254
+ SDL_JoyBatteryEvent = struct(
255
+ [
256
+ "Uint32 type",
257
+ "Uint32 timestamp",
258
+ "SDL_JoystickID which",
259
+ "SDL_JoystickPowerLevel level"
260
+ ]
261
+ )
262
+
263
+ SDL_ControllerAxisEvent = struct(
264
+ [
265
+ "Uint32 type",
266
+ "Uint32 timestamp",
267
+ "SDL_JoystickID which",
268
+ "Uint8 axis",
269
+ "Uint8 padding1",
270
+ "Uint8 padding2",
271
+ "Uint8 padding3",
272
+ "Sint16 value",
273
+ "Uint16 padding4"
274
+ ]
275
+ )
276
+
277
+ SDL_ControllerButtonEvent = struct(
278
+ [
279
+ "Uint32 type",
280
+ "Uint32 timestamp",
281
+ "SDL_JoystickID which",
282
+ "Uint8 button",
283
+ "Uint8 state",
284
+ "Uint8 padding1",
285
+ "Uint8 padding2"
286
+ ]
287
+ )
288
+
289
+ SDL_ControllerDeviceEvent = struct(
290
+ [
291
+ "Uint32 type",
292
+ "Uint32 timestamp",
293
+ "Sint32 which"
294
+ ]
295
+ )
296
+
297
+ SDL_ControllerTouchpadEvent = struct(
298
+ [
299
+ "Uint32 type",
300
+ "Uint32 timestamp",
301
+ "SDL_JoystickID which",
302
+ "Sint32 touchpad",
303
+ "Sint32 finger",
304
+ "float x",
305
+ "float y",
306
+ "float pressure"
307
+ ]
308
+ )
309
+
310
+ SDL_ControllerSensorEvent = struct(
311
+ [
312
+ "Uint32 type",
313
+ "Uint32 timestamp",
314
+ "SDL_JoystickID which",
315
+ "Sint32 sensor",
316
+ "float data[3]",
317
+ "Uint64 timestamp_us"
318
+ ]
319
+ )
320
+
321
+ SDL_AudioDeviceEvent = struct(
322
+ [
323
+ "Uint32 type",
324
+ "Uint32 timestamp",
325
+ "Uint32 which",
326
+ "Uint8 iscapture",
327
+ "Uint8 padding1",
328
+ "Uint8 padding2",
329
+ "Uint8 padding3"
330
+ ]
331
+ )
332
+
333
+ SDL_TouchFingerEvent = struct(
334
+ [
335
+ "Uint32 type",
336
+ "Uint32 timestamp",
337
+ "SDL_TouchID touchId",
338
+ "SDL_FingerID fingerId",
339
+ "float x",
340
+ "float y",
341
+ "float dx",
342
+ "float dy",
343
+ "float pressure",
344
+ "Uint32 windowID"
345
+ ]
346
+ )
347
+
348
+ SDL_MultiGestureEvent = struct(
349
+ [
350
+ "Uint32 type",
351
+ "Uint32 timestamp",
352
+ "SDL_TouchID touchId",
353
+ "float dTheta",
354
+ "float dDist",
355
+ "float x",
356
+ "float y",
357
+ "Uint16 numFingers",
358
+ "Uint16 padding"
359
+ ]
360
+ )
361
+
362
+ SDL_DollarGestureEvent = struct(
363
+ [
364
+ "Uint32 type",
365
+ "Uint32 timestamp",
366
+ "SDL_TouchID touchId",
367
+ "SDL_GestureID gestureId",
368
+ "Uint32 numFingers",
369
+ "float error",
370
+ "float x",
371
+ "float y"
372
+ ]
373
+ )
374
+
375
+ SDL_DropEvent = struct(
376
+ [
377
+ "Uint32 type",
378
+ "Uint32 timestamp",
379
+ # The file name, which should be freed with SDL_free(),
380
+ # is NULL on begin/complete.
381
+ "char *file",
382
+ "Uint32 windowID"
383
+ ]
384
+ )
385
+
386
+ SDL_SensorEvent = struct(
387
+ [
388
+ "Uint32 type",
389
+ "Uint32 timestamp",
390
+ "Sint32 which",
391
+ "float data[6]",
392
+ "Uint64 timestamp_us"
393
+ ]
394
+ )
395
+
396
+ SDL_QuitEvent = struct(["Uint32 type", "Uint32 timestamp"])
397
+
398
+ SDL_OSEvent = struct(["Uint32 type", "Uint32 timestamp"])
399
+
400
+ SDL_UserEvent = struct(
401
+ [
402
+ "Uint32 type",
403
+ "Uint32 timestamp",
404
+ "Uint32 windowID",
405
+ "Sint32 code",
406
+ "void *data1",
407
+ "void *data2"
408
+ ]
409
+ )
410
+
411
+ SDL_SysWMEvent = struct(
412
+ [
413
+ "Uint32 type",
414
+ "Uint32 timestamp",
415
+ "SDL_SysWMmsg *msg"
416
+ ]
417
+ )
418
+
419
+ SDL_Event = union(
420
+ [
421
+ "Uint32 type",
422
+ { common: SDL_CommonEvent },
423
+ { display: SDL_DisplayEvent},
424
+ { window: SDL_WindowEvent },
425
+ { key: SDL_KeyboardEvent },
426
+ { edit: SDL_TextEditingEvent },
427
+ { editExt: SDL_TextEditingExtEvent },
428
+ { text: SDL_TextInputEvent },
429
+ { motion: SDL_MouseMotionEvent },
430
+ { button: SDL_MouseButtonEvent },
431
+ { wheel: SDL_MouseWheelEvent },
432
+ { jaxis: SDL_JoyAxisEvent },
433
+ { jball: SDL_JoyBallEvent },
434
+ { jhat: SDL_JoyHatEvent },
435
+ { jbutton: SDL_JoyButtonEvent },
436
+ { jdevice: SDL_JoyDeviceEvent },
437
+ { jbattery: SDL_JoyBatteryEvent },
438
+ { caxis: SDL_ControllerAxisEvent },
439
+ { cbutton: SDL_ControllerButtonEvent },
440
+ { cdevice: SDL_ControllerDeviceEvent },
441
+ { ctouchpad: SDL_ControllerTouchpadEvent },
442
+ { csensor: SDL_ControllerSensorEvent },
443
+ { adevice: SDL_AudioDeviceEvent },
444
+ { sensor: SDL_SensorEvent },
445
+ { quit: SDL_QuitEvent },
446
+ { user: SDL_UserEvent },
447
+ { syswm: SDL_SysWMEvent },
448
+ { tfinger: SDL_TouchFingerEvent },
449
+ { mgesture: SDL_MultiGestureEvent },
450
+ { dgesture: SDL_DollarGestureEvent },
451
+ { drop: SDL_DropEvent },
452
+ "Uint8 padding[#{
453
+ size = Fiddle::SIZEOF_VOIDP
454
+ if size <= 8
455
+ 56
456
+ elsif size == 16
457
+ 64
458
+ else
459
+ 3 * size
460
+ end
461
+ }]"
462
+ ]
463
+ )
464
+
465
+ SDL_ADDEVENT = 0
466
+ SDL_PEEKEVENT = 1
467
+ SDL_GETEVENT = 2
468
+ typealias "SDL_eventaction", "int"
469
+ end
470
+ end
@@ -0,0 +1,9 @@
1
+ module SDLRuby
2
+ module SDL
3
+ SDL_HINT_DEFAULT = 0
4
+ SDL_HINT_NORMAL = 1
5
+ SDL_HINT_OVERRIDE = 2
6
+
7
+ typealias "SDL_HintCallback", "void*"
8
+ end
9
+ end
@@ -0,0 +1,12 @@
1
+ module SDLRuby
2
+ module SDL
3
+ SDL_Keysym = struct(
4
+ [
5
+ "SDL_Scancode scancode",
6
+ "SDL_Keycode sym",
7
+ "Uint16 mod",
8
+ "Uint32 unused"
9
+ ]
10
+ )
11
+ end
12
+ end
@@ -0,0 +1,8 @@
1
+ module SDLRuby
2
+ module SDL
3
+ SDL_Locale = struct [
4
+ "const char *language",
5
+ "const char *country"
6
+ ]
7
+ end
8
+ end
@@ -0,0 +1,7 @@
1
+ module SDLRuby
2
+ module SDL
3
+ SDL_MESSAGEBOX_ERROR = 0x00000010
4
+ SDL_MESSAGEBOX_WARNING = 0x00000020
5
+ SDL_MESSAGEBOX_INFORMATION = 0x00000040
6
+ end
7
+ end
@@ -0,0 +1,32 @@
1
+ module SDLRuby
2
+ module SDL
3
+ SDL_SYSTEM_CURSOR_ARROW = 0
4
+ SDL_SYSTEM_CURSOR_IBEAM = 1
5
+ SDL_SYSTEM_CURSOR_WAIT = 2
6
+ SDL_SYSTEM_CURSOR_CROSSHAIR = 3
7
+ SDL_SYSTEM_CURSOR_WAITARROW = 4
8
+ SDL_SYSTEM_CURSOR_SIZENWSE = 5
9
+ SDL_SYSTEM_CURSOR_SIZENESW = 6
10
+ SDL_SYSTEM_CURSOR_SIZEWE = 7
11
+ SDL_SYSTEM_CURSOR_SIZENS = 8
12
+ SDL_SYSTEM_CURSOR_SIZEALL = 9
13
+ SDL_SYSTEM_CURSOR_NO = 10
14
+ SDL_SYSTEM_CURSOR_HAND = 11
15
+ SDL_NUM_SYSTEM_CURSORS = 12
16
+
17
+ SDL_MOUSEWHEEL_NORMAL = 0
18
+ SDL_MOUSEWHEEL_FLIPPED = 1
19
+
20
+ SDL_BUTTON = -> (x) { 1 << (x - 1) }
21
+ SDL_BUTTON_LEFT = 1
22
+ SDL_BUTTON_MIDDLE = 2
23
+ SDL_BUTTON_RIGHT = 3
24
+ SDL_BUTTON_X1 = 4
25
+ SDL_BUTTON_X2 = 5
26
+ SDL_BUTTON_LMASK = SDL_BUTTON.(SDL_BUTTON_LEFT)
27
+ SDL_BUTTON_MMASK = SDL_BUTTON.(SDL_BUTTON_MIDDLE)
28
+ SDL_BUTTON_RMASK = SDL_BUTTON.(SDL_BUTTON_RIGHT)
29
+ SDL_BUTTON_X1MASK = SDL_BUTTON.(SDL_BUTTON_X1)
30
+ SDL_BUTTON_X2MASK = SDL_BUTTON.(SDL_BUTTON_X2)
31
+ end
32
+ end
@@ -0,0 +1,12 @@
1
+ module SDLRuby
2
+ module SDL
3
+ SDL_Palette = struct(
4
+ [
5
+ "int ncolors",
6
+ "SDL_Color* colors",
7
+ "Uint32 version",
8
+ "int refcount"
9
+ ]
10
+ )
11
+ end
12
+ end
@@ -0,0 +1,138 @@
1
+ module SDLRuby
2
+ module SDL
3
+ SDL_ALPHA_OPAQUE = 255
4
+ SDL_ALPHA_TRANSPARENT = 0
5
+
6
+ SDL_Color = struct ["Uint8 r", "Uint8 g", "Uint8 b", "Uint8 a"]
7
+
8
+ # SDL_PixelType
9
+ i1 = 1
10
+ i4 = 2
11
+ i8 = 3
12
+ p8 = 4
13
+ p16 = 5
14
+ p32 = 6
15
+ a_u8 = 7
16
+
17
+ # SDL_BitmapOrder
18
+ b_4321 = 1
19
+ b_1234 = 2
20
+
21
+ # SDL_PackedOrder
22
+ p_xrgb = 1
23
+ p_rgbx = 2
24
+ p_argb = 3
25
+ p_rgba = 4
26
+ p_xbgr = 5
27
+ p_bgrx = 6
28
+ p_abgr = 7
29
+ p_bgra = 8
30
+
31
+ # SDL_ArrayOrder
32
+ a_rgb = 1
33
+ a_bgr = 4
34
+
35
+ # SDL_PackedLayout
36
+ l_332 = 1
37
+ l_4444 = 2
38
+ l_1555 = 3
39
+ l_5551 = 4
40
+ l_565 = 5
41
+ l_8888 = 6
42
+ l_2101010 = 7
43
+
44
+ pixelformat = -> (type, order, layout, bits, bytes) {
45
+ 1 << 28 | type << 24 | order << 20 | layout << 16 | bits << 8 | bytes << 0
46
+ }
47
+
48
+ SDL_PIXELFORMAT_UNKNOWN = 0
49
+ SDL_PIXELFORMAT_INDEX1LSB = pixelformat.(i1, b_4321, 0, 1, 0)
50
+ SDL_PIXELFORMAT_INDEX1MSB = pixelformat.(i1, b_1234, 0, 1, 0)
51
+ SDL_PIXELFORMAT_INDEX4LSB = pixelformat.(i4, b_4321, 0, 4, 0)
52
+ SDL_PIXELFORMAT_INDEX4MSB = pixelformat.(i4, b_1234, 0, 4, 0)
53
+ SDL_PIXELFORMAT_INDEX8 = pixelformat.(i8, 0, 0, 8, 1)
54
+ SDL_PIXELFORMAT_RGB332 = pixelformat.(p8, p_xrgb, l_332, 8, 1)
55
+ SDL_PIXELFORMAT_XRGB4444 = pixelformat.(p16, p_xrgb, l_4444, 12, 2)
56
+ SDL_PIXELFORMAT_RGB444 = SDL_PIXELFORMAT_XRGB4444
57
+ SDL_PIXELFORMAT_XBGR4444 = pixelformat.(p16, p_xbgr, l_4444, 12, 2)
58
+ SDL_PIXELFORMAT_BGR444 = SDL_PIXELFORMAT_XBGR4444
59
+ SDL_PIXELFORMAT_XRGB1555 = pixelformat.(p16, p_xrgb, l_1555, 15, 2)
60
+ SDL_PIXELFORMAT_RGB555 = SDL_PIXELFORMAT_XRGB1555
61
+ SDL_PIXELFORMAT_XBGR1555 = pixelformat.(p16, p_xbgr, l_1555, 15, 2)
62
+ SDL_PIXELFORMAT_BGR555 = SDL_PIXELFORMAT_XBGR1555
63
+ SDL_PIXELFORMAT_ARGB4444 = pixelformat.(p16, p_argb, l_4444, 16, 2)
64
+ SDL_PIXELFORMAT_RGBA4444 = pixelformat.(p16, p_rgba, l_4444, 16, 2)
65
+ SDL_PIXELFORMAT_ABGR4444 = pixelformat.(p16, p_abgr, l_4444, 16, 2)
66
+ SDL_PIXELFORMAT_BGRA4444 = pixelformat.(p16, p_bgra, l_4444, 16, 2)
67
+ SDL_PIXELFORMAT_ARGB1555 = pixelformat.(p16, p_argb, l_1555, 16, 2)
68
+ SDL_PIXELFORMAT_RGBA5551 = pixelformat.(p16, p_rgba, l_5551, 16, 2)
69
+ SDL_PIXELFORMAT_ABGR1555 = pixelformat.(p16, p_abgr, l_1555, 16, 2)
70
+ SDL_PIXELFORMAT_BGRA5551 = pixelformat.(p16, p_bgra, l_5551, 16, 2)
71
+ SDL_PIXELFORMAT_RGB565 = pixelformat.(p16, p_xrgb, l_565, 16, 2)
72
+ SDL_PIXELFORMAT_BGR565 = pixelformat.(p16, p_xbgr, l_565, 16, 2)
73
+ SDL_PIXELFORMAT_RGB24 = pixelformat.(a_u8, a_rgb, 0, 24, 3)
74
+ SDL_PIXELFORMAT_BGR24 = pixelformat.(a_u8, a_bgr, 0, 24, 3)
75
+ SDL_PIXELFORMAT_XRGB8888 = pixelformat.(p32, p_xrgb, l_8888, 24, 4)
76
+ SDL_PIXELFORMAT_RGB888 = SDL_PIXELFORMAT_XRGB8888
77
+ SDL_PIXELFORMAT_RGBX8888 = pixelformat.(p32, p_rgbx, l_8888, 24, 4)
78
+ SDL_PIXELFORMAT_XBGR8888 = pixelformat.(p32, p_xbgr, l_8888, 24, 4)
79
+ SDL_PIXELFORMAT_BGR888 = SDL_PIXELFORMAT_XBGR8888
80
+ SDL_PIXELFORMAT_BGRX8888 = pixelformat.(p32, p_bgrx, l_8888, 24, 4)
81
+ SDL_PIXELFORMAT_ARGB8888 = pixelformat.(p32, p_argb, l_8888, 32, 4)
82
+ SDL_PIXELFORMAT_RGBA8888 = pixelformat.(p32, p_rgba, l_8888, 32, 4)
83
+ SDL_PIXELFORMAT_ABGR8888 = pixelformat.(p32, p_abgr, l_8888, 32, 4)
84
+ SDL_PIXELFORMAT_BGRA8888 = pixelformat.(p32, p_bgra, l_8888, 32, 4)
85
+ SDL_PIXELFORMAT_ARGB2101010 = pixelformat.(p32, p_argb, l_2101010, 32, 4)
86
+
87
+ if "\x01\x02\x03\x04".unpack("I") == 0x1020304
88
+ # BIG ENDIAN
89
+ SDL_PIXELFORMAT_RGBA32 = SDL_PIXELFORMAT_RGBA8888
90
+ SDL_PIXELFORMAT_ARGB32 = SDL_PIXELFORMAT_ARGB8888
91
+ SDL_PIXELFORMAT_BGRA32 = SDL_PIXELFORMAT_BGRA8888
92
+ SDL_PIXELFORMAT_ABGR32 = SDL_PIXELFORMAT_ABGR8888
93
+ else
94
+ SDL_PIXELFORMAT_RGBA32 = SDL_PIXELFORMAT_ABGR8888
95
+ SDL_PIXELFORMAT_ARGB32 = SDL_PIXELFORMAT_BGRA8888
96
+ SDL_PIXELFORMAT_BGRA32 = SDL_PIXELFORMAT_ARGB8888
97
+ SDL_PIXELFORMAT_ABGR32 = SDL_PIXELFORMAT_RGBA8888
98
+ end
99
+
100
+ pixel_fourcc = -> (a, b, c, d) {
101
+ _a, _b, _c, _d = [a, b, c, d].map { |s| s.encode("ASCII").bytes.first }
102
+ _a << 0 | _b << 8 | _c << 16 | _d << 24
103
+ }
104
+
105
+ SDL_PIXELFORMAT_YV12 = pixel_fourcc.('Y', 'V', '1', '2')
106
+ SDL_PIXELFORMAT_IYUV = pixel_fourcc.('I', 'Y', 'U', 'V')
107
+ SDL_PIXELFORMAT_YUY2 = pixel_fourcc.('Y', 'U', 'Y', '2')
108
+ SDL_PIXELFORMAT_UYVY = pixel_fourcc.('U', 'Y', 'V', 'Y')
109
+ SDL_PIXELFORMAT_YVYU = pixel_fourcc.('Y', 'V', 'Y', 'U')
110
+ SDL_PIXELFORMAT_NV12 = pixel_fourcc.('N', 'V', '1', '2')
111
+ SDL_PIXELFORMAT_NV21 = pixel_fourcc.('N', 'V', '2', '1')
112
+ SDL_PIXELFORMAT_EXTERNAL_OES = pixel_fourcc.('O', 'E', 'S', ' ')
113
+
114
+ SDL_PixelFormat = struct(
115
+ [
116
+ "Uint32 format",
117
+ "SDL_Palette* palette",
118
+ "Uint8 BitsPerPixel",
119
+ "Uint8 BytesPerPixel",
120
+ "Uint8 padding[2]",
121
+ "Uint32 Rmask",
122
+ "Uint32 Gmask",
123
+ "Uint32 Bmask",
124
+ "Uint32 Amask",
125
+ "Uint8 Rloss",
126
+ "Uint8 Gloss",
127
+ "Uint8 Bloss",
128
+ "Uint8 Aloss",
129
+ "Uint8 Rshift",
130
+ "Uint8 Gshift",
131
+ "Uint8 Bshift",
132
+ "Uint8 Ashift",
133
+ "int refcount",
134
+ "SDL_PixelFormat* next"
135
+ ]
136
+ )
137
+ end
138
+ end
@@ -0,0 +1,11 @@
1
+ module SDLRuby
2
+ module SDL
3
+ SDL_Point = struct(["int x", "int y"])
4
+
5
+ SDL_FPoint = struct(["float x", "float y"])
6
+
7
+ SDL_Rect = struct(["int x", "int y", "int w", "int h"])
8
+
9
+ SDL_FRect = struct(["float x", "float y", "float w", "float h"])
10
+ end
11
+ end