sdl2-bindings 0.1.3 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/ChangeLog +145 -134
  3. data/LICENSE.txt +0 -0
  4. data/README.md +108 -86
  5. data/lib/sdl2.rb +131 -131
  6. data/lib/sdl2_audio.rb +265 -261
  7. data/lib/sdl2_blendmode.rb +72 -72
  8. data/lib/sdl2_clipboard.rb +56 -56
  9. data/lib/sdl2_cpuinfo.rb +137 -129
  10. data/lib/sdl2_error.rb +71 -71
  11. data/lib/sdl2_events.rb +575 -564
  12. data/lib/sdl2_filesystem.rb +52 -52
  13. data/lib/sdl2_framerate.rb +74 -74
  14. data/lib/sdl2_gamecontroller.rb +345 -329
  15. data/lib/sdl2_gesture.rb +61 -61
  16. data/lib/sdl2_gfxPrimitives.rb +283 -283
  17. data/lib/sdl2_guid.rb +58 -0
  18. data/lib/sdl2_haptic.rb +301 -301
  19. data/lib/sdl2_hidapi.rb +139 -139
  20. data/lib/sdl2_hints.rb +240 -221
  21. data/lib/sdl2_image.rb +296 -296
  22. data/lib/sdl2_imageFilter.rb +164 -164
  23. data/lib/sdl2_joystick.rb +332 -294
  24. data/lib/sdl2_keyboard.rb +129 -125
  25. data/lib/sdl2_keycode.rb +311 -307
  26. data/lib/sdl2_log.rb +131 -131
  27. data/lib/sdl2_main.rb +74 -74
  28. data/lib/sdl2_messagebox.rb +102 -102
  29. data/lib/sdl2_misc.rb +48 -48
  30. data/lib/sdl2_mixer.rb +464 -464
  31. data/lib/sdl2_mouse.rb +136 -136
  32. data/lib/sdl2_pixels.rb +240 -240
  33. data/lib/sdl2_platform.rb +48 -48
  34. data/lib/sdl2_power.rb +54 -54
  35. data/lib/sdl2_rect.rb +145 -145
  36. data/lib/sdl2_render.rb +408 -408
  37. data/lib/sdl2_rotozoom.rb +76 -76
  38. data/lib/sdl2_rwops.rb +242 -242
  39. data/lib/sdl2_scancode.rb +293 -289
  40. data/lib/sdl2_sensor.rb +115 -115
  41. data/lib/sdl2_shape.rb +83 -83
  42. data/lib/sdl2_sound.rb +154 -154
  43. data/lib/sdl2_stdinc.rb +572 -548
  44. data/lib/sdl2_surface.rb +229 -229
  45. data/lib/sdl2_syswm.rb +160 -160
  46. data/lib/sdl2_timer.rb +74 -74
  47. data/lib/sdl2_touch.rb +86 -86
  48. data/lib/sdl2_ttf.rb +414 -414
  49. data/lib/sdl2_version.rb +67 -67
  50. data/lib/sdl2_video.rb +549 -540
  51. data/lib/sdl2_vulkan.rb +72 -72
  52. metadata +4 -3
data/lib/sdl2_stdinc.rb CHANGED
@@ -1,548 +1,572 @@
1
- # Ruby-SDL2 : Yet another SDL2 wrapper for Ruby
2
- #
3
- # * https://github.com/vaiorabbit/sdl2-bindings
4
- #
5
- # [NOTICE] This is an automatically generated file.
6
-
7
- require 'ffi'
8
-
9
- module SDL
10
- extend FFI::Library
11
- # Define/Macro
12
-
13
- ICONV_ERROR = -1
14
- ICONV_E2BIG = -2
15
- ICONV_EILSEQ = -3
16
- ICONV_EINVAL = -4
17
-
18
- # Enum
19
-
20
- FALSE = 0
21
- TRUE = 1
22
-
23
- # Typedef
24
-
25
- typedef :int, :SDL_bool
26
- typedef :char, :Sint8
27
- typedef :uchar, :Uint8
28
- typedef :short, :Sint16
29
- typedef :ushort, :Uint16
30
- typedef :int, :Sint32
31
- typedef :uint, :Uint32
32
- typedef :long_long, :Sint64
33
- typedef :ulong_long, :Uint64
34
- callback :SDL_malloc_func, [:ulong], :pointer
35
- callback :SDL_calloc_func, [:ulong, :ulong], :pointer
36
- callback :SDL_realloc_func, [:pointer, :ulong], :pointer
37
- callback :SDL_free_func, [:pointer], :void
38
- typedef :pointer, :SDL_iconv_t
39
-
40
- # Struct
41
-
42
-
43
- # Function
44
-
45
- def self.setup_stdinc_symbols(output_error = false)
46
- symbols = [
47
- :SDL_malloc,
48
- :SDL_calloc,
49
- :SDL_realloc,
50
- :SDL_free,
51
- :SDL_GetMemoryFunctions,
52
- :SDL_SetMemoryFunctions,
53
- :SDL_GetNumAllocations,
54
- :SDL_getenv,
55
- :SDL_setenv,
56
- :SDL_qsort,
57
- :SDL_abs,
58
- :SDL_isalpha,
59
- :SDL_isalnum,
60
- :SDL_isblank,
61
- :SDL_iscntrl,
62
- :SDL_isdigit,
63
- :SDL_isxdigit,
64
- :SDL_ispunct,
65
- :SDL_isspace,
66
- :SDL_isupper,
67
- :SDL_islower,
68
- :SDL_isprint,
69
- :SDL_isgraph,
70
- :SDL_toupper,
71
- :SDL_tolower,
72
- :SDL_crc32,
73
- :SDL_memset,
74
- :SDL_memcpy,
75
- :SDL_memmove,
76
- :SDL_memcmp,
77
- :SDL_wcslen,
78
- :SDL_wcslcpy,
79
- :SDL_wcslcat,
80
- :SDL_wcsdup,
81
- :SDL_wcsstr,
82
- :SDL_wcscmp,
83
- :SDL_wcsncmp,
84
- :SDL_wcscasecmp,
85
- :SDL_wcsncasecmp,
86
- :SDL_strlen,
87
- :SDL_strlcpy,
88
- :SDL_utf8strlcpy,
89
- :SDL_strlcat,
90
- :SDL_strdup,
91
- :SDL_strrev,
92
- :SDL_strupr,
93
- :SDL_strlwr,
94
- :SDL_strchr,
95
- :SDL_strrchr,
96
- :SDL_strstr,
97
- :SDL_strtokr,
98
- :SDL_utf8strlen,
99
- :SDL_itoa,
100
- :SDL_uitoa,
101
- :SDL_ltoa,
102
- :SDL_ultoa,
103
- :SDL_lltoa,
104
- :SDL_ulltoa,
105
- :SDL_atoi,
106
- :SDL_atof,
107
- :SDL_strtol,
108
- :SDL_strtoul,
109
- :SDL_strtoll,
110
- :SDL_strtoull,
111
- :SDL_strtod,
112
- :SDL_strcmp,
113
- :SDL_strncmp,
114
- :SDL_strcasecmp,
115
- :SDL_strncasecmp,
116
- :SDL_sscanf,
117
- :SDL_vsscanf,
118
- :SDL_snprintf,
119
- :SDL_vsnprintf,
120
- :SDL_asprintf,
121
- :SDL_vasprintf,
122
- :SDL_acos,
123
- :SDL_acosf,
124
- :SDL_asin,
125
- :SDL_asinf,
126
- :SDL_atan,
127
- :SDL_atanf,
128
- :SDL_atan2,
129
- :SDL_atan2f,
130
- :SDL_ceil,
131
- :SDL_ceilf,
132
- :SDL_copysign,
133
- :SDL_copysignf,
134
- :SDL_cos,
135
- :SDL_cosf,
136
- :SDL_exp,
137
- :SDL_expf,
138
- :SDL_fabs,
139
- :SDL_fabsf,
140
- :SDL_floor,
141
- :SDL_floorf,
142
- :SDL_trunc,
143
- :SDL_truncf,
144
- :SDL_fmod,
145
- :SDL_fmodf,
146
- :SDL_log,
147
- :SDL_logf,
148
- :SDL_log10,
149
- :SDL_log10f,
150
- :SDL_pow,
151
- :SDL_powf,
152
- :SDL_round,
153
- :SDL_roundf,
154
- :SDL_lround,
155
- :SDL_lroundf,
156
- :SDL_scalbn,
157
- :SDL_scalbnf,
158
- :SDL_sin,
159
- :SDL_sinf,
160
- :SDL_sqrt,
161
- :SDL_sqrtf,
162
- :SDL_tan,
163
- :SDL_tanf,
164
- :SDL_iconv_open,
165
- :SDL_iconv_close,
166
- :SDL_iconv,
167
- :SDL_iconv_string,
168
- ]
169
- apis = {
170
- :SDL_malloc => :malloc,
171
- :SDL_calloc => :calloc,
172
- :SDL_realloc => :realloc,
173
- :SDL_free => :free,
174
- :SDL_GetMemoryFunctions => :GetMemoryFunctions,
175
- :SDL_SetMemoryFunctions => :SetMemoryFunctions,
176
- :SDL_GetNumAllocations => :GetNumAllocations,
177
- :SDL_getenv => :getenv,
178
- :SDL_setenv => :setenv,
179
- :SDL_qsort => :qsort,
180
- :SDL_abs => :abs,
181
- :SDL_isalpha => :isalpha,
182
- :SDL_isalnum => :isalnum,
183
- :SDL_isblank => :isblank,
184
- :SDL_iscntrl => :iscntrl,
185
- :SDL_isdigit => :isdigit,
186
- :SDL_isxdigit => :isxdigit,
187
- :SDL_ispunct => :ispunct,
188
- :SDL_isspace => :isspace,
189
- :SDL_isupper => :isupper,
190
- :SDL_islower => :islower,
191
- :SDL_isprint => :isprint,
192
- :SDL_isgraph => :isgraph,
193
- :SDL_toupper => :toupper,
194
- :SDL_tolower => :tolower,
195
- :SDL_crc32 => :crc32,
196
- :SDL_memset => :memset,
197
- :SDL_memcpy => :memcpy,
198
- :SDL_memmove => :memmove,
199
- :SDL_memcmp => :memcmp,
200
- :SDL_wcslen => :wcslen,
201
- :SDL_wcslcpy => :wcslcpy,
202
- :SDL_wcslcat => :wcslcat,
203
- :SDL_wcsdup => :wcsdup,
204
- :SDL_wcsstr => :wcsstr,
205
- :SDL_wcscmp => :wcscmp,
206
- :SDL_wcsncmp => :wcsncmp,
207
- :SDL_wcscasecmp => :wcscasecmp,
208
- :SDL_wcsncasecmp => :wcsncasecmp,
209
- :SDL_strlen => :strlen,
210
- :SDL_strlcpy => :strlcpy,
211
- :SDL_utf8strlcpy => :utf8strlcpy,
212
- :SDL_strlcat => :strlcat,
213
- :SDL_strdup => :strdup,
214
- :SDL_strrev => :strrev,
215
- :SDL_strupr => :strupr,
216
- :SDL_strlwr => :strlwr,
217
- :SDL_strchr => :strchr,
218
- :SDL_strrchr => :strrchr,
219
- :SDL_strstr => :strstr,
220
- :SDL_strtokr => :strtokr,
221
- :SDL_utf8strlen => :utf8strlen,
222
- :SDL_itoa => :itoa,
223
- :SDL_uitoa => :uitoa,
224
- :SDL_ltoa => :ltoa,
225
- :SDL_ultoa => :ultoa,
226
- :SDL_lltoa => :lltoa,
227
- :SDL_ulltoa => :ulltoa,
228
- :SDL_atoi => :atoi,
229
- :SDL_atof => :atof,
230
- :SDL_strtol => :strtol,
231
- :SDL_strtoul => :strtoul,
232
- :SDL_strtoll => :strtoll,
233
- :SDL_strtoull => :strtoull,
234
- :SDL_strtod => :strtod,
235
- :SDL_strcmp => :strcmp,
236
- :SDL_strncmp => :strncmp,
237
- :SDL_strcasecmp => :strcasecmp,
238
- :SDL_strncasecmp => :strncasecmp,
239
- :SDL_sscanf => :sscanf,
240
- :SDL_vsscanf => :vsscanf,
241
- :SDL_snprintf => :snprintf,
242
- :SDL_vsnprintf => :vsnprintf,
243
- :SDL_asprintf => :asprintf,
244
- :SDL_vasprintf => :vasprintf,
245
- :SDL_acos => :acos,
246
- :SDL_acosf => :acosf,
247
- :SDL_asin => :asin,
248
- :SDL_asinf => :asinf,
249
- :SDL_atan => :atan,
250
- :SDL_atanf => :atanf,
251
- :SDL_atan2 => :atan2,
252
- :SDL_atan2f => :atan2f,
253
- :SDL_ceil => :ceil,
254
- :SDL_ceilf => :ceilf,
255
- :SDL_copysign => :copysign,
256
- :SDL_copysignf => :copysignf,
257
- :SDL_cos => :cos,
258
- :SDL_cosf => :cosf,
259
- :SDL_exp => :exp,
260
- :SDL_expf => :expf,
261
- :SDL_fabs => :fabs,
262
- :SDL_fabsf => :fabsf,
263
- :SDL_floor => :floor,
264
- :SDL_floorf => :floorf,
265
- :SDL_trunc => :trunc,
266
- :SDL_truncf => :truncf,
267
- :SDL_fmod => :fmod,
268
- :SDL_fmodf => :fmodf,
269
- :SDL_log => :log,
270
- :SDL_logf => :logf,
271
- :SDL_log10 => :log10,
272
- :SDL_log10f => :log10f,
273
- :SDL_pow => :pow,
274
- :SDL_powf => :powf,
275
- :SDL_round => :round,
276
- :SDL_roundf => :roundf,
277
- :SDL_lround => :lround,
278
- :SDL_lroundf => :lroundf,
279
- :SDL_scalbn => :scalbn,
280
- :SDL_scalbnf => :scalbnf,
281
- :SDL_sin => :sin,
282
- :SDL_sinf => :sinf,
283
- :SDL_sqrt => :sqrt,
284
- :SDL_sqrtf => :sqrtf,
285
- :SDL_tan => :tan,
286
- :SDL_tanf => :tanf,
287
- :SDL_iconv_open => :iconv_open,
288
- :SDL_iconv_close => :iconv_close,
289
- :SDL_iconv => :iconv,
290
- :SDL_iconv_string => :iconv_string,
291
- }
292
- args = {
293
- :SDL_malloc => [:ulong],
294
- :SDL_calloc => [:ulong, :ulong],
295
- :SDL_realloc => [:pointer, :ulong],
296
- :SDL_free => [:pointer],
297
- :SDL_GetMemoryFunctions => [:pointer, :pointer, :pointer, :pointer],
298
- :SDL_SetMemoryFunctions => [:SDL_malloc_func, :SDL_calloc_func, :SDL_realloc_func, :SDL_free_func],
299
- :SDL_GetNumAllocations => [],
300
- :SDL_getenv => [:pointer],
301
- :SDL_setenv => [:pointer, :pointer, :int],
302
- :SDL_qsort => [:pointer, :ulong, :ulong, :pointer],
303
- :SDL_abs => [:int],
304
- :SDL_isalpha => [:int],
305
- :SDL_isalnum => [:int],
306
- :SDL_isblank => [:int],
307
- :SDL_iscntrl => [:int],
308
- :SDL_isdigit => [:int],
309
- :SDL_isxdigit => [:int],
310
- :SDL_ispunct => [:int],
311
- :SDL_isspace => [:int],
312
- :SDL_isupper => [:int],
313
- :SDL_islower => [:int],
314
- :SDL_isprint => [:int],
315
- :SDL_isgraph => [:int],
316
- :SDL_toupper => [:int],
317
- :SDL_tolower => [:int],
318
- :SDL_crc32 => [:uint, :pointer, :ulong],
319
- :SDL_memset => [:pointer, :int, :ulong],
320
- :SDL_memcpy => [:pointer, :pointer, :ulong],
321
- :SDL_memmove => [:pointer, :pointer, :ulong],
322
- :SDL_memcmp => [:pointer, :pointer, :ulong],
323
- :SDL_wcslen => [:pointer],
324
- :SDL_wcslcpy => [:pointer, :pointer, :ulong],
325
- :SDL_wcslcat => [:pointer, :pointer, :ulong],
326
- :SDL_wcsdup => [:pointer],
327
- :SDL_wcsstr => [:pointer, :pointer],
328
- :SDL_wcscmp => [:pointer, :pointer],
329
- :SDL_wcsncmp => [:pointer, :pointer, :ulong],
330
- :SDL_wcscasecmp => [:pointer, :pointer],
331
- :SDL_wcsncasecmp => [:pointer, :pointer, :ulong],
332
- :SDL_strlen => [:pointer],
333
- :SDL_strlcpy => [:pointer, :pointer, :ulong],
334
- :SDL_utf8strlcpy => [:pointer, :pointer, :ulong],
335
- :SDL_strlcat => [:pointer, :pointer, :ulong],
336
- :SDL_strdup => [:pointer],
337
- :SDL_strrev => [:pointer],
338
- :SDL_strupr => [:pointer],
339
- :SDL_strlwr => [:pointer],
340
- :SDL_strchr => [:pointer, :int],
341
- :SDL_strrchr => [:pointer, :int],
342
- :SDL_strstr => [:pointer, :pointer],
343
- :SDL_strtokr => [:pointer, :pointer, :pointer],
344
- :SDL_utf8strlen => [:pointer],
345
- :SDL_itoa => [:int, :pointer, :int],
346
- :SDL_uitoa => [:uint, :pointer, :int],
347
- :SDL_ltoa => [:long, :pointer, :int],
348
- :SDL_ultoa => [:ulong, :pointer, :int],
349
- :SDL_lltoa => [:long_long, :pointer, :int],
350
- :SDL_ulltoa => [:ulong_long, :pointer, :int],
351
- :SDL_atoi => [:pointer],
352
- :SDL_atof => [:pointer],
353
- :SDL_strtol => [:pointer, :pointer, :int],
354
- :SDL_strtoul => [:pointer, :pointer, :int],
355
- :SDL_strtoll => [:pointer, :pointer, :int],
356
- :SDL_strtoull => [:pointer, :pointer, :int],
357
- :SDL_strtod => [:pointer, :pointer],
358
- :SDL_strcmp => [:pointer, :pointer],
359
- :SDL_strncmp => [:pointer, :pointer, :ulong],
360
- :SDL_strcasecmp => [:pointer, :pointer],
361
- :SDL_strncasecmp => [:pointer, :pointer, :ulong],
362
- :SDL_sscanf => [:pointer, :pointer],
363
- :SDL_vsscanf => [:pointer, :pointer, :pointer],
364
- :SDL_snprintf => [:pointer, :ulong, :pointer],
365
- :SDL_vsnprintf => [:pointer, :ulong, :pointer, :pointer],
366
- :SDL_asprintf => [:pointer, :pointer],
367
- :SDL_vasprintf => [:pointer, :pointer, :pointer],
368
- :SDL_acos => [:double],
369
- :SDL_acosf => [:float],
370
- :SDL_asin => [:double],
371
- :SDL_asinf => [:float],
372
- :SDL_atan => [:double],
373
- :SDL_atanf => [:float],
374
- :SDL_atan2 => [:double, :double],
375
- :SDL_atan2f => [:float, :float],
376
- :SDL_ceil => [:double],
377
- :SDL_ceilf => [:float],
378
- :SDL_copysign => [:double, :double],
379
- :SDL_copysignf => [:float, :float],
380
- :SDL_cos => [:double],
381
- :SDL_cosf => [:float],
382
- :SDL_exp => [:double],
383
- :SDL_expf => [:float],
384
- :SDL_fabs => [:double],
385
- :SDL_fabsf => [:float],
386
- :SDL_floor => [:double],
387
- :SDL_floorf => [:float],
388
- :SDL_trunc => [:double],
389
- :SDL_truncf => [:float],
390
- :SDL_fmod => [:double, :double],
391
- :SDL_fmodf => [:float, :float],
392
- :SDL_log => [:double],
393
- :SDL_logf => [:float],
394
- :SDL_log10 => [:double],
395
- :SDL_log10f => [:float],
396
- :SDL_pow => [:double, :double],
397
- :SDL_powf => [:float, :float],
398
- :SDL_round => [:double],
399
- :SDL_roundf => [:float],
400
- :SDL_lround => [:double],
401
- :SDL_lroundf => [:float],
402
- :SDL_scalbn => [:double, :int],
403
- :SDL_scalbnf => [:float, :int],
404
- :SDL_sin => [:double],
405
- :SDL_sinf => [:float],
406
- :SDL_sqrt => [:double],
407
- :SDL_sqrtf => [:float],
408
- :SDL_tan => [:double],
409
- :SDL_tanf => [:float],
410
- :SDL_iconv_open => [:pointer, :pointer],
411
- :SDL_iconv_close => [:pointer],
412
- :SDL_iconv => [:pointer, :pointer, :pointer, :pointer, :pointer],
413
- :SDL_iconv_string => [:pointer, :pointer, :pointer, :ulong],
414
- }
415
- retvals = {
416
- :SDL_malloc => :pointer,
417
- :SDL_calloc => :pointer,
418
- :SDL_realloc => :pointer,
419
- :SDL_free => :void,
420
- :SDL_GetMemoryFunctions => :void,
421
- :SDL_SetMemoryFunctions => :int,
422
- :SDL_GetNumAllocations => :int,
423
- :SDL_getenv => :pointer,
424
- :SDL_setenv => :int,
425
- :SDL_qsort => :void,
426
- :SDL_abs => :int,
427
- :SDL_isalpha => :int,
428
- :SDL_isalnum => :int,
429
- :SDL_isblank => :int,
430
- :SDL_iscntrl => :int,
431
- :SDL_isdigit => :int,
432
- :SDL_isxdigit => :int,
433
- :SDL_ispunct => :int,
434
- :SDL_isspace => :int,
435
- :SDL_isupper => :int,
436
- :SDL_islower => :int,
437
- :SDL_isprint => :int,
438
- :SDL_isgraph => :int,
439
- :SDL_toupper => :int,
440
- :SDL_tolower => :int,
441
- :SDL_crc32 => :uint,
442
- :SDL_memset => :pointer,
443
- :SDL_memcpy => :pointer,
444
- :SDL_memmove => :pointer,
445
- :SDL_memcmp => :int,
446
- :SDL_wcslen => :size_t,
447
- :SDL_wcslcpy => :size_t,
448
- :SDL_wcslcat => :size_t,
449
- :SDL_wcsdup => :pointer,
450
- :SDL_wcsstr => :pointer,
451
- :SDL_wcscmp => :int,
452
- :SDL_wcsncmp => :int,
453
- :SDL_wcscasecmp => :int,
454
- :SDL_wcsncasecmp => :int,
455
- :SDL_strlen => :size_t,
456
- :SDL_strlcpy => :size_t,
457
- :SDL_utf8strlcpy => :size_t,
458
- :SDL_strlcat => :size_t,
459
- :SDL_strdup => :pointer,
460
- :SDL_strrev => :pointer,
461
- :SDL_strupr => :pointer,
462
- :SDL_strlwr => :pointer,
463
- :SDL_strchr => :pointer,
464
- :SDL_strrchr => :pointer,
465
- :SDL_strstr => :pointer,
466
- :SDL_strtokr => :pointer,
467
- :SDL_utf8strlen => :size_t,
468
- :SDL_itoa => :pointer,
469
- :SDL_uitoa => :pointer,
470
- :SDL_ltoa => :pointer,
471
- :SDL_ultoa => :pointer,
472
- :SDL_lltoa => :pointer,
473
- :SDL_ulltoa => :pointer,
474
- :SDL_atoi => :int,
475
- :SDL_atof => :double,
476
- :SDL_strtol => :long,
477
- :SDL_strtoul => :ulong,
478
- :SDL_strtoll => :long_long,
479
- :SDL_strtoull => :ulong_long,
480
- :SDL_strtod => :double,
481
- :SDL_strcmp => :int,
482
- :SDL_strncmp => :int,
483
- :SDL_strcasecmp => :int,
484
- :SDL_strncasecmp => :int,
485
- :SDL_sscanf => :int,
486
- :SDL_vsscanf => :int,
487
- :SDL_snprintf => :int,
488
- :SDL_vsnprintf => :int,
489
- :SDL_asprintf => :int,
490
- :SDL_vasprintf => :int,
491
- :SDL_acos => :double,
492
- :SDL_acosf => :float,
493
- :SDL_asin => :double,
494
- :SDL_asinf => :float,
495
- :SDL_atan => :double,
496
- :SDL_atanf => :float,
497
- :SDL_atan2 => :double,
498
- :SDL_atan2f => :float,
499
- :SDL_ceil => :double,
500
- :SDL_ceilf => :float,
501
- :SDL_copysign => :double,
502
- :SDL_copysignf => :float,
503
- :SDL_cos => :double,
504
- :SDL_cosf => :float,
505
- :SDL_exp => :double,
506
- :SDL_expf => :float,
507
- :SDL_fabs => :double,
508
- :SDL_fabsf => :float,
509
- :SDL_floor => :double,
510
- :SDL_floorf => :float,
511
- :SDL_trunc => :double,
512
- :SDL_truncf => :float,
513
- :SDL_fmod => :double,
514
- :SDL_fmodf => :float,
515
- :SDL_log => :double,
516
- :SDL_logf => :float,
517
- :SDL_log10 => :double,
518
- :SDL_log10f => :float,
519
- :SDL_pow => :double,
520
- :SDL_powf => :float,
521
- :SDL_round => :double,
522
- :SDL_roundf => :float,
523
- :SDL_lround => :long,
524
- :SDL_lroundf => :long,
525
- :SDL_scalbn => :double,
526
- :SDL_scalbnf => :float,
527
- :SDL_sin => :double,
528
- :SDL_sinf => :float,
529
- :SDL_sqrt => :double,
530
- :SDL_sqrtf => :float,
531
- :SDL_tan => :double,
532
- :SDL_tanf => :float,
533
- :SDL_iconv_open => :pointer,
534
- :SDL_iconv_close => :int,
535
- :SDL_iconv => :size_t,
536
- :SDL_iconv_string => :pointer,
537
- }
538
- symbols.each do |sym|
539
- begin
540
- attach_function apis[sym], sym, args[sym], retvals[sym]
541
- rescue FFI::NotFoundError => error
542
- $stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
543
- end
544
- end
545
- end
546
-
547
- end
548
-
1
+ # Ruby-SDL2 : Yet another SDL2 wrapper for Ruby
2
+ #
3
+ # * https://github.com/vaiorabbit/sdl2-bindings
4
+ #
5
+ # [NOTICE] This is an automatically generated file.
6
+
7
+ require 'ffi'
8
+
9
+ module SDL
10
+ extend FFI::Library
11
+ # Define/Macro
12
+
13
+ ICONV_ERROR = 4294967295
14
+ ICONV_E2BIG = 4294967294
15
+ ICONV_EILSEQ = 4294967293
16
+ ICONV_EINVAL = 4294967292
17
+
18
+ # Enum
19
+
20
+ FALSE = 0
21
+ TRUE = 1
22
+
23
+ # Typedef
24
+
25
+ typedef :char, :int8_t
26
+ typedef :short, :int16_t
27
+ typedef :int, :int32_t
28
+ typedef :long_long, :int64_t
29
+ typedef :uchar, :uint8_t
30
+ typedef :ushort, :uint16_t
31
+ typedef :uint, :uint32_t
32
+ typedef :ulong_long, :uint64_t
33
+ typedef :int, :SDL_bool
34
+ typedef :char, :Sint8
35
+ typedef :uchar, :Uint8
36
+ typedef :short, :Sint16
37
+ typedef :ushort, :Uint16
38
+ typedef :int, :Sint32
39
+ typedef :uint, :Uint32
40
+ typedef :long_long, :Sint64
41
+ typedef :ulong_long, :Uint64
42
+ callback :SDL_malloc_func, [:ulong], :pointer
43
+ callback :SDL_calloc_func, [:ulong, :ulong], :pointer
44
+ callback :SDL_realloc_func, [:pointer, :ulong], :pointer
45
+ callback :SDL_free_func, [:pointer], :void
46
+ typedef :pointer, :SDL_iconv_t
47
+
48
+ # Struct
49
+
50
+
51
+ # Function
52
+
53
+ def self.setup_stdinc_symbols(output_error = false)
54
+ symbols = [
55
+ :SDL_malloc,
56
+ :SDL_calloc,
57
+ :SDL_realloc,
58
+ :SDL_free,
59
+ :SDL_GetOriginalMemoryFunctions,
60
+ :SDL_GetMemoryFunctions,
61
+ :SDL_SetMemoryFunctions,
62
+ :SDL_GetNumAllocations,
63
+ :SDL_getenv,
64
+ :SDL_setenv,
65
+ :SDL_qsort,
66
+ :SDL_bsearch,
67
+ :SDL_abs,
68
+ :SDL_isalpha,
69
+ :SDL_isalnum,
70
+ :SDL_isblank,
71
+ :SDL_iscntrl,
72
+ :SDL_isdigit,
73
+ :SDL_isxdigit,
74
+ :SDL_ispunct,
75
+ :SDL_isspace,
76
+ :SDL_isupper,
77
+ :SDL_islower,
78
+ :SDL_isprint,
79
+ :SDL_isgraph,
80
+ :SDL_toupper,
81
+ :SDL_tolower,
82
+ :SDL_crc16,
83
+ :SDL_crc32,
84
+ :SDL_memset,
85
+ :SDL_memcpy,
86
+ :SDL_memmove,
87
+ :SDL_memcmp,
88
+ :SDL_wcslen,
89
+ :SDL_wcslcpy,
90
+ :SDL_wcslcat,
91
+ :SDL_wcsdup,
92
+ :SDL_wcsstr,
93
+ :SDL_wcscmp,
94
+ :SDL_wcsncmp,
95
+ :SDL_wcscasecmp,
96
+ :SDL_wcsncasecmp,
97
+ :SDL_strlen,
98
+ :SDL_strlcpy,
99
+ :SDL_utf8strlcpy,
100
+ :SDL_strlcat,
101
+ :SDL_strdup,
102
+ :SDL_strrev,
103
+ :SDL_strupr,
104
+ :SDL_strlwr,
105
+ :SDL_strchr,
106
+ :SDL_strrchr,
107
+ :SDL_strstr,
108
+ :SDL_strtokr,
109
+ :SDL_utf8strlen,
110
+ :SDL_utf8strnlen,
111
+ :SDL_itoa,
112
+ :SDL_uitoa,
113
+ :SDL_ltoa,
114
+ :SDL_ultoa,
115
+ :SDL_lltoa,
116
+ :SDL_ulltoa,
117
+ :SDL_atoi,
118
+ :SDL_atof,
119
+ :SDL_strtol,
120
+ :SDL_strtoul,
121
+ :SDL_strtoll,
122
+ :SDL_strtoull,
123
+ :SDL_strtod,
124
+ :SDL_strcmp,
125
+ :SDL_strncmp,
126
+ :SDL_strcasecmp,
127
+ :SDL_strncasecmp,
128
+ :SDL_sscanf,
129
+ :SDL_vsscanf,
130
+ :SDL_snprintf,
131
+ :SDL_vsnprintf,
132
+ :SDL_asprintf,
133
+ :SDL_vasprintf,
134
+ :SDL_acos,
135
+ :SDL_acosf,
136
+ :SDL_asin,
137
+ :SDL_asinf,
138
+ :SDL_atan,
139
+ :SDL_atanf,
140
+ :SDL_atan2,
141
+ :SDL_atan2f,
142
+ :SDL_ceil,
143
+ :SDL_ceilf,
144
+ :SDL_copysign,
145
+ :SDL_copysignf,
146
+ :SDL_cos,
147
+ :SDL_cosf,
148
+ :SDL_exp,
149
+ :SDL_expf,
150
+ :SDL_fabs,
151
+ :SDL_fabsf,
152
+ :SDL_floor,
153
+ :SDL_floorf,
154
+ :SDL_trunc,
155
+ :SDL_truncf,
156
+ :SDL_fmod,
157
+ :SDL_fmodf,
158
+ :SDL_log,
159
+ :SDL_logf,
160
+ :SDL_log10,
161
+ :SDL_log10f,
162
+ :SDL_pow,
163
+ :SDL_powf,
164
+ :SDL_round,
165
+ :SDL_roundf,
166
+ :SDL_lround,
167
+ :SDL_lroundf,
168
+ :SDL_scalbn,
169
+ :SDL_scalbnf,
170
+ :SDL_sin,
171
+ :SDL_sinf,
172
+ :SDL_sqrt,
173
+ :SDL_sqrtf,
174
+ :SDL_tan,
175
+ :SDL_tanf,
176
+ :SDL_iconv_open,
177
+ :SDL_iconv_close,
178
+ :SDL_iconv,
179
+ :SDL_iconv_string,
180
+ ]
181
+ apis = {
182
+ :SDL_malloc => :malloc,
183
+ :SDL_calloc => :calloc,
184
+ :SDL_realloc => :realloc,
185
+ :SDL_free => :free,
186
+ :SDL_GetOriginalMemoryFunctions => :GetOriginalMemoryFunctions,
187
+ :SDL_GetMemoryFunctions => :GetMemoryFunctions,
188
+ :SDL_SetMemoryFunctions => :SetMemoryFunctions,
189
+ :SDL_GetNumAllocations => :GetNumAllocations,
190
+ :SDL_getenv => :getenv,
191
+ :SDL_setenv => :setenv,
192
+ :SDL_qsort => :qsort,
193
+ :SDL_bsearch => :bsearch,
194
+ :SDL_abs => :abs,
195
+ :SDL_isalpha => :isalpha,
196
+ :SDL_isalnum => :isalnum,
197
+ :SDL_isblank => :isblank,
198
+ :SDL_iscntrl => :iscntrl,
199
+ :SDL_isdigit => :isdigit,
200
+ :SDL_isxdigit => :isxdigit,
201
+ :SDL_ispunct => :ispunct,
202
+ :SDL_isspace => :isspace,
203
+ :SDL_isupper => :isupper,
204
+ :SDL_islower => :islower,
205
+ :SDL_isprint => :isprint,
206
+ :SDL_isgraph => :isgraph,
207
+ :SDL_toupper => :toupper,
208
+ :SDL_tolower => :tolower,
209
+ :SDL_crc16 => :crc16,
210
+ :SDL_crc32 => :crc32,
211
+ :SDL_memset => :memset,
212
+ :SDL_memcpy => :memcpy,
213
+ :SDL_memmove => :memmove,
214
+ :SDL_memcmp => :memcmp,
215
+ :SDL_wcslen => :wcslen,
216
+ :SDL_wcslcpy => :wcslcpy,
217
+ :SDL_wcslcat => :wcslcat,
218
+ :SDL_wcsdup => :wcsdup,
219
+ :SDL_wcsstr => :wcsstr,
220
+ :SDL_wcscmp => :wcscmp,
221
+ :SDL_wcsncmp => :wcsncmp,
222
+ :SDL_wcscasecmp => :wcscasecmp,
223
+ :SDL_wcsncasecmp => :wcsncasecmp,
224
+ :SDL_strlen => :strlen,
225
+ :SDL_strlcpy => :strlcpy,
226
+ :SDL_utf8strlcpy => :utf8strlcpy,
227
+ :SDL_strlcat => :strlcat,
228
+ :SDL_strdup => :strdup,
229
+ :SDL_strrev => :strrev,
230
+ :SDL_strupr => :strupr,
231
+ :SDL_strlwr => :strlwr,
232
+ :SDL_strchr => :strchr,
233
+ :SDL_strrchr => :strrchr,
234
+ :SDL_strstr => :strstr,
235
+ :SDL_strtokr => :strtokr,
236
+ :SDL_utf8strlen => :utf8strlen,
237
+ :SDL_utf8strnlen => :utf8strnlen,
238
+ :SDL_itoa => :itoa,
239
+ :SDL_uitoa => :uitoa,
240
+ :SDL_ltoa => :ltoa,
241
+ :SDL_ultoa => :ultoa,
242
+ :SDL_lltoa => :lltoa,
243
+ :SDL_ulltoa => :ulltoa,
244
+ :SDL_atoi => :atoi,
245
+ :SDL_atof => :atof,
246
+ :SDL_strtol => :strtol,
247
+ :SDL_strtoul => :strtoul,
248
+ :SDL_strtoll => :strtoll,
249
+ :SDL_strtoull => :strtoull,
250
+ :SDL_strtod => :strtod,
251
+ :SDL_strcmp => :strcmp,
252
+ :SDL_strncmp => :strncmp,
253
+ :SDL_strcasecmp => :strcasecmp,
254
+ :SDL_strncasecmp => :strncasecmp,
255
+ :SDL_sscanf => :sscanf,
256
+ :SDL_vsscanf => :vsscanf,
257
+ :SDL_snprintf => :snprintf,
258
+ :SDL_vsnprintf => :vsnprintf,
259
+ :SDL_asprintf => :asprintf,
260
+ :SDL_vasprintf => :vasprintf,
261
+ :SDL_acos => :acos,
262
+ :SDL_acosf => :acosf,
263
+ :SDL_asin => :asin,
264
+ :SDL_asinf => :asinf,
265
+ :SDL_atan => :atan,
266
+ :SDL_atanf => :atanf,
267
+ :SDL_atan2 => :atan2,
268
+ :SDL_atan2f => :atan2f,
269
+ :SDL_ceil => :ceil,
270
+ :SDL_ceilf => :ceilf,
271
+ :SDL_copysign => :copysign,
272
+ :SDL_copysignf => :copysignf,
273
+ :SDL_cos => :cos,
274
+ :SDL_cosf => :cosf,
275
+ :SDL_exp => :exp,
276
+ :SDL_expf => :expf,
277
+ :SDL_fabs => :fabs,
278
+ :SDL_fabsf => :fabsf,
279
+ :SDL_floor => :floor,
280
+ :SDL_floorf => :floorf,
281
+ :SDL_trunc => :trunc,
282
+ :SDL_truncf => :truncf,
283
+ :SDL_fmod => :fmod,
284
+ :SDL_fmodf => :fmodf,
285
+ :SDL_log => :log,
286
+ :SDL_logf => :logf,
287
+ :SDL_log10 => :log10,
288
+ :SDL_log10f => :log10f,
289
+ :SDL_pow => :pow,
290
+ :SDL_powf => :powf,
291
+ :SDL_round => :round,
292
+ :SDL_roundf => :roundf,
293
+ :SDL_lround => :lround,
294
+ :SDL_lroundf => :lroundf,
295
+ :SDL_scalbn => :scalbn,
296
+ :SDL_scalbnf => :scalbnf,
297
+ :SDL_sin => :sin,
298
+ :SDL_sinf => :sinf,
299
+ :SDL_sqrt => :sqrt,
300
+ :SDL_sqrtf => :sqrtf,
301
+ :SDL_tan => :tan,
302
+ :SDL_tanf => :tanf,
303
+ :SDL_iconv_open => :iconv_open,
304
+ :SDL_iconv_close => :iconv_close,
305
+ :SDL_iconv => :iconv,
306
+ :SDL_iconv_string => :iconv_string,
307
+ }
308
+ args = {
309
+ :SDL_malloc => [:ulong],
310
+ :SDL_calloc => [:ulong, :ulong],
311
+ :SDL_realloc => [:pointer, :ulong],
312
+ :SDL_free => [:pointer],
313
+ :SDL_GetOriginalMemoryFunctions => [:pointer, :pointer, :pointer, :pointer],
314
+ :SDL_GetMemoryFunctions => [:pointer, :pointer, :pointer, :pointer],
315
+ :SDL_SetMemoryFunctions => [:SDL_malloc_func, :SDL_calloc_func, :SDL_realloc_func, :SDL_free_func],
316
+ :SDL_GetNumAllocations => [],
317
+ :SDL_getenv => [:pointer],
318
+ :SDL_setenv => [:pointer, :pointer, :int],
319
+ :SDL_qsort => [:pointer, :ulong, :ulong, :pointer],
320
+ :SDL_bsearch => [:pointer, :pointer, :ulong, :ulong, :pointer],
321
+ :SDL_abs => [:int],
322
+ :SDL_isalpha => [:int],
323
+ :SDL_isalnum => [:int],
324
+ :SDL_isblank => [:int],
325
+ :SDL_iscntrl => [:int],
326
+ :SDL_isdigit => [:int],
327
+ :SDL_isxdigit => [:int],
328
+ :SDL_ispunct => [:int],
329
+ :SDL_isspace => [:int],
330
+ :SDL_isupper => [:int],
331
+ :SDL_islower => [:int],
332
+ :SDL_isprint => [:int],
333
+ :SDL_isgraph => [:int],
334
+ :SDL_toupper => [:int],
335
+ :SDL_tolower => [:int],
336
+ :SDL_crc16 => [:ushort, :pointer, :ulong],
337
+ :SDL_crc32 => [:uint, :pointer, :ulong],
338
+ :SDL_memset => [:pointer, :int, :ulong],
339
+ :SDL_memcpy => [:pointer, :pointer, :ulong],
340
+ :SDL_memmove => [:pointer, :pointer, :ulong],
341
+ :SDL_memcmp => [:pointer, :pointer, :ulong],
342
+ :SDL_wcslen => [:pointer],
343
+ :SDL_wcslcpy => [:pointer, :pointer, :ulong],
344
+ :SDL_wcslcat => [:pointer, :pointer, :ulong],
345
+ :SDL_wcsdup => [:pointer],
346
+ :SDL_wcsstr => [:pointer, :pointer],
347
+ :SDL_wcscmp => [:pointer, :pointer],
348
+ :SDL_wcsncmp => [:pointer, :pointer, :ulong],
349
+ :SDL_wcscasecmp => [:pointer, :pointer],
350
+ :SDL_wcsncasecmp => [:pointer, :pointer, :ulong],
351
+ :SDL_strlen => [:pointer],
352
+ :SDL_strlcpy => [:pointer, :pointer, :ulong],
353
+ :SDL_utf8strlcpy => [:pointer, :pointer, :ulong],
354
+ :SDL_strlcat => [:pointer, :pointer, :ulong],
355
+ :SDL_strdup => [:pointer],
356
+ :SDL_strrev => [:pointer],
357
+ :SDL_strupr => [:pointer],
358
+ :SDL_strlwr => [:pointer],
359
+ :SDL_strchr => [:pointer, :int],
360
+ :SDL_strrchr => [:pointer, :int],
361
+ :SDL_strstr => [:pointer, :pointer],
362
+ :SDL_strtokr => [:pointer, :pointer, :pointer],
363
+ :SDL_utf8strlen => [:pointer],
364
+ :SDL_utf8strnlen => [:pointer, :ulong],
365
+ :SDL_itoa => [:int, :pointer, :int],
366
+ :SDL_uitoa => [:uint, :pointer, :int],
367
+ :SDL_ltoa => [:long, :pointer, :int],
368
+ :SDL_ultoa => [:ulong, :pointer, :int],
369
+ :SDL_lltoa => [:long_long, :pointer, :int],
370
+ :SDL_ulltoa => [:ulong_long, :pointer, :int],
371
+ :SDL_atoi => [:pointer],
372
+ :SDL_atof => [:pointer],
373
+ :SDL_strtol => [:pointer, :pointer, :int],
374
+ :SDL_strtoul => [:pointer, :pointer, :int],
375
+ :SDL_strtoll => [:pointer, :pointer, :int],
376
+ :SDL_strtoull => [:pointer, :pointer, :int],
377
+ :SDL_strtod => [:pointer, :pointer],
378
+ :SDL_strcmp => [:pointer, :pointer],
379
+ :SDL_strncmp => [:pointer, :pointer, :ulong],
380
+ :SDL_strcasecmp => [:pointer, :pointer],
381
+ :SDL_strncasecmp => [:pointer, :pointer, :ulong],
382
+ :SDL_sscanf => [:pointer, :pointer],
383
+ :SDL_vsscanf => [:pointer, :pointer, :pointer],
384
+ :SDL_snprintf => [:pointer, :ulong, :pointer],
385
+ :SDL_vsnprintf => [:pointer, :ulong, :pointer, :pointer],
386
+ :SDL_asprintf => [:pointer, :pointer],
387
+ :SDL_vasprintf => [:pointer, :pointer, :pointer],
388
+ :SDL_acos => [:double],
389
+ :SDL_acosf => [:float],
390
+ :SDL_asin => [:double],
391
+ :SDL_asinf => [:float],
392
+ :SDL_atan => [:double],
393
+ :SDL_atanf => [:float],
394
+ :SDL_atan2 => [:double, :double],
395
+ :SDL_atan2f => [:float, :float],
396
+ :SDL_ceil => [:double],
397
+ :SDL_ceilf => [:float],
398
+ :SDL_copysign => [:double, :double],
399
+ :SDL_copysignf => [:float, :float],
400
+ :SDL_cos => [:double],
401
+ :SDL_cosf => [:float],
402
+ :SDL_exp => [:double],
403
+ :SDL_expf => [:float],
404
+ :SDL_fabs => [:double],
405
+ :SDL_fabsf => [:float],
406
+ :SDL_floor => [:double],
407
+ :SDL_floorf => [:float],
408
+ :SDL_trunc => [:double],
409
+ :SDL_truncf => [:float],
410
+ :SDL_fmod => [:double, :double],
411
+ :SDL_fmodf => [:float, :float],
412
+ :SDL_log => [:double],
413
+ :SDL_logf => [:float],
414
+ :SDL_log10 => [:double],
415
+ :SDL_log10f => [:float],
416
+ :SDL_pow => [:double, :double],
417
+ :SDL_powf => [:float, :float],
418
+ :SDL_round => [:double],
419
+ :SDL_roundf => [:float],
420
+ :SDL_lround => [:double],
421
+ :SDL_lroundf => [:float],
422
+ :SDL_scalbn => [:double, :int],
423
+ :SDL_scalbnf => [:float, :int],
424
+ :SDL_sin => [:double],
425
+ :SDL_sinf => [:float],
426
+ :SDL_sqrt => [:double],
427
+ :SDL_sqrtf => [:float],
428
+ :SDL_tan => [:double],
429
+ :SDL_tanf => [:float],
430
+ :SDL_iconv_open => [:pointer, :pointer],
431
+ :SDL_iconv_close => [:pointer],
432
+ :SDL_iconv => [:pointer, :pointer, :pointer, :pointer, :pointer],
433
+ :SDL_iconv_string => [:pointer, :pointer, :pointer, :ulong],
434
+ }
435
+ retvals = {
436
+ :SDL_malloc => :pointer,
437
+ :SDL_calloc => :pointer,
438
+ :SDL_realloc => :pointer,
439
+ :SDL_free => :void,
440
+ :SDL_GetOriginalMemoryFunctions => :void,
441
+ :SDL_GetMemoryFunctions => :void,
442
+ :SDL_SetMemoryFunctions => :int,
443
+ :SDL_GetNumAllocations => :int,
444
+ :SDL_getenv => :pointer,
445
+ :SDL_setenv => :int,
446
+ :SDL_qsort => :void,
447
+ :SDL_bsearch => :pointer,
448
+ :SDL_abs => :int,
449
+ :SDL_isalpha => :int,
450
+ :SDL_isalnum => :int,
451
+ :SDL_isblank => :int,
452
+ :SDL_iscntrl => :int,
453
+ :SDL_isdigit => :int,
454
+ :SDL_isxdigit => :int,
455
+ :SDL_ispunct => :int,
456
+ :SDL_isspace => :int,
457
+ :SDL_isupper => :int,
458
+ :SDL_islower => :int,
459
+ :SDL_isprint => :int,
460
+ :SDL_isgraph => :int,
461
+ :SDL_toupper => :int,
462
+ :SDL_tolower => :int,
463
+ :SDL_crc16 => :ushort,
464
+ :SDL_crc32 => :uint,
465
+ :SDL_memset => :pointer,
466
+ :SDL_memcpy => :pointer,
467
+ :SDL_memmove => :pointer,
468
+ :SDL_memcmp => :int,
469
+ :SDL_wcslen => :size_t,
470
+ :SDL_wcslcpy => :size_t,
471
+ :SDL_wcslcat => :size_t,
472
+ :SDL_wcsdup => :pointer,
473
+ :SDL_wcsstr => :pointer,
474
+ :SDL_wcscmp => :int,
475
+ :SDL_wcsncmp => :int,
476
+ :SDL_wcscasecmp => :int,
477
+ :SDL_wcsncasecmp => :int,
478
+ :SDL_strlen => :size_t,
479
+ :SDL_strlcpy => :size_t,
480
+ :SDL_utf8strlcpy => :size_t,
481
+ :SDL_strlcat => :size_t,
482
+ :SDL_strdup => :pointer,
483
+ :SDL_strrev => :pointer,
484
+ :SDL_strupr => :pointer,
485
+ :SDL_strlwr => :pointer,
486
+ :SDL_strchr => :pointer,
487
+ :SDL_strrchr => :pointer,
488
+ :SDL_strstr => :pointer,
489
+ :SDL_strtokr => :pointer,
490
+ :SDL_utf8strlen => :size_t,
491
+ :SDL_utf8strnlen => :size_t,
492
+ :SDL_itoa => :pointer,
493
+ :SDL_uitoa => :pointer,
494
+ :SDL_ltoa => :pointer,
495
+ :SDL_ultoa => :pointer,
496
+ :SDL_lltoa => :pointer,
497
+ :SDL_ulltoa => :pointer,
498
+ :SDL_atoi => :int,
499
+ :SDL_atof => :double,
500
+ :SDL_strtol => :long,
501
+ :SDL_strtoul => :ulong,
502
+ :SDL_strtoll => :long_long,
503
+ :SDL_strtoull => :ulong_long,
504
+ :SDL_strtod => :double,
505
+ :SDL_strcmp => :int,
506
+ :SDL_strncmp => :int,
507
+ :SDL_strcasecmp => :int,
508
+ :SDL_strncasecmp => :int,
509
+ :SDL_sscanf => :int,
510
+ :SDL_vsscanf => :int,
511
+ :SDL_snprintf => :int,
512
+ :SDL_vsnprintf => :int,
513
+ :SDL_asprintf => :int,
514
+ :SDL_vasprintf => :int,
515
+ :SDL_acos => :double,
516
+ :SDL_acosf => :float,
517
+ :SDL_asin => :double,
518
+ :SDL_asinf => :float,
519
+ :SDL_atan => :double,
520
+ :SDL_atanf => :float,
521
+ :SDL_atan2 => :double,
522
+ :SDL_atan2f => :float,
523
+ :SDL_ceil => :double,
524
+ :SDL_ceilf => :float,
525
+ :SDL_copysign => :double,
526
+ :SDL_copysignf => :float,
527
+ :SDL_cos => :double,
528
+ :SDL_cosf => :float,
529
+ :SDL_exp => :double,
530
+ :SDL_expf => :float,
531
+ :SDL_fabs => :double,
532
+ :SDL_fabsf => :float,
533
+ :SDL_floor => :double,
534
+ :SDL_floorf => :float,
535
+ :SDL_trunc => :double,
536
+ :SDL_truncf => :float,
537
+ :SDL_fmod => :double,
538
+ :SDL_fmodf => :float,
539
+ :SDL_log => :double,
540
+ :SDL_logf => :float,
541
+ :SDL_log10 => :double,
542
+ :SDL_log10f => :float,
543
+ :SDL_pow => :double,
544
+ :SDL_powf => :float,
545
+ :SDL_round => :double,
546
+ :SDL_roundf => :float,
547
+ :SDL_lround => :long,
548
+ :SDL_lroundf => :long,
549
+ :SDL_scalbn => :double,
550
+ :SDL_scalbnf => :float,
551
+ :SDL_sin => :double,
552
+ :SDL_sinf => :float,
553
+ :SDL_sqrt => :double,
554
+ :SDL_sqrtf => :float,
555
+ :SDL_tan => :double,
556
+ :SDL_tanf => :float,
557
+ :SDL_iconv_open => :pointer,
558
+ :SDL_iconv_close => :int,
559
+ :SDL_iconv => :size_t,
560
+ :SDL_iconv_string => :pointer,
561
+ }
562
+ symbols.each do |sym|
563
+ begin
564
+ attach_function apis[sym], sym, args[sym], retvals[sym]
565
+ rescue FFI::NotFoundError => error
566
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
567
+ end
568
+ end
569
+ end
570
+
571
+ end
572
+