sdl3-bindings 1.0.0.beta.1

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 (64) hide show
  1. checksums.yaml +7 -0
  2. data/ChangeLog +159 -0
  3. data/LICENSE.txt +21 -0
  4. data/README.md +132 -0
  5. data/lib/sdl3.rb +150 -0
  6. data/lib/sdl3_assert.rb +61 -0
  7. data/lib/sdl3_asyncio.rb +68 -0
  8. data/lib/sdl3_atomic.rb +64 -0
  9. data/lib/sdl3_audio.rb +120 -0
  10. data/lib/sdl3_bits.rb +38 -0
  11. data/lib/sdl3_blendmode.rb +63 -0
  12. data/lib/sdl3_camera.rb +67 -0
  13. data/lib/sdl3_clipboard.rb +49 -0
  14. data/lib/sdl3_cpuinfo.rb +55 -0
  15. data/lib/sdl3_dialog.rb +60 -0
  16. data/lib/sdl3_endian.rb +39 -0
  17. data/lib/sdl3_error.rb +41 -0
  18. data/lib/sdl3_events.rb +680 -0
  19. data/lib/sdl3_filesystem.rb +82 -0
  20. data/lib/sdl3_gamepad.rb +216 -0
  21. data/lib/sdl3_gpu.rb +836 -0
  22. data/lib/sdl3_guid.rb +44 -0
  23. data/lib/sdl3_haptic.rb +209 -0
  24. data/lib/sdl3_hidapi.rb +84 -0
  25. data/lib/sdl3_hints.rb +285 -0
  26. data/lib/sdl3_image.rb +108 -0
  27. data/lib/sdl3_init.rb +71 -0
  28. data/lib/sdl3_iostream.rb +115 -0
  29. data/lib/sdl3_joystick.rb +174 -0
  30. data/lib/sdl3_keyboard.rb +81 -0
  31. data/lib/sdl3_keycode.rb +310 -0
  32. data/lib/sdl3_loadso.rb +39 -0
  33. data/lib/sdl3_locale.rb +44 -0
  34. data/lib/sdl3_log.rb +85 -0
  35. data/lib/sdl3_messagebox.rb +88 -0
  36. data/lib/sdl3_misc.rb +37 -0
  37. data/lib/sdl3_mixer.rb +179 -0
  38. data/lib/sdl3_mouse.rb +90 -0
  39. data/lib/sdl3_mutex.rb +77 -0
  40. data/lib/sdl3_pen.rb +56 -0
  41. data/lib/sdl3_pixels.rb +296 -0
  42. data/lib/sdl3_platform.rb +37 -0
  43. data/lib/sdl3_power.rb +44 -0
  44. data/lib/sdl3_process.rb +65 -0
  45. data/lib/sdl3_properties.rb +67 -0
  46. data/lib/sdl3_rect.rb +98 -0
  47. data/lib/sdl3_render.rb +240 -0
  48. data/lib/sdl3_revision.rb +37 -0
  49. data/lib/sdl3_scancode.rb +286 -0
  50. data/lib/sdl3_sensor.rb +61 -0
  51. data/lib/sdl3_sound.rb +98 -0
  52. data/lib/sdl3_stdinc.rb +229 -0
  53. data/lib/sdl3_storage.rb +70 -0
  54. data/lib/sdl3_surface.rb +122 -0
  55. data/lib/sdl3_thread.rb +65 -0
  56. data/lib/sdl3_time.rb +66 -0
  57. data/lib/sdl3_timer.rb +54 -0
  58. data/lib/sdl3_touch.rb +56 -0
  59. data/lib/sdl3_tray.rb +66 -0
  60. data/lib/sdl3_ttf.rb +216 -0
  61. data/lib/sdl3_version.rb +41 -0
  62. data/lib/sdl3_video.rb +341 -0
  63. data/lib/sdl3_vulkan.rb +46 -0
  64. metadata +118 -0
@@ -0,0 +1,286 @@
1
+ # Ruby-SDL3 : SDL3 wrapper for Ruby
2
+ #
3
+ # * https://github.com/vaiorabbit/sdl3-bindings
4
+ #
5
+ # [NOTICE] Autogenerated. Do not edit.
6
+
7
+ require 'ffi'
8
+
9
+ module SDL
10
+ extend FFI::Library
11
+ # Define/Macro
12
+
13
+
14
+ # Enum
15
+
16
+ SCANCODE_UNKNOWN = 0
17
+ SCANCODE_A = 4
18
+ SCANCODE_B = 5
19
+ SCANCODE_C = 6
20
+ SCANCODE_D = 7
21
+ SCANCODE_E = 8
22
+ SCANCODE_F = 9
23
+ SCANCODE_G = 10
24
+ SCANCODE_H = 11
25
+ SCANCODE_I = 12
26
+ SCANCODE_J = 13
27
+ SCANCODE_K = 14
28
+ SCANCODE_L = 15
29
+ SCANCODE_M = 16
30
+ SCANCODE_N = 17
31
+ SCANCODE_O = 18
32
+ SCANCODE_P = 19
33
+ SCANCODE_Q = 20
34
+ SCANCODE_R = 21
35
+ SCANCODE_S = 22
36
+ SCANCODE_T = 23
37
+ SCANCODE_U = 24
38
+ SCANCODE_V = 25
39
+ SCANCODE_W = 26
40
+ SCANCODE_X = 27
41
+ SCANCODE_Y = 28
42
+ SCANCODE_Z = 29
43
+ SCANCODE_1 = 30
44
+ SCANCODE_2 = 31
45
+ SCANCODE_3 = 32
46
+ SCANCODE_4 = 33
47
+ SCANCODE_5 = 34
48
+ SCANCODE_6 = 35
49
+ SCANCODE_7 = 36
50
+ SCANCODE_8 = 37
51
+ SCANCODE_9 = 38
52
+ SCANCODE_0 = 39
53
+ SCANCODE_RETURN = 40
54
+ SCANCODE_ESCAPE = 41
55
+ SCANCODE_BACKSPACE = 42
56
+ SCANCODE_TAB = 43
57
+ SCANCODE_SPACE = 44
58
+ SCANCODE_MINUS = 45
59
+ SCANCODE_EQUALS = 46
60
+ SCANCODE_LEFTBRACKET = 47
61
+ SCANCODE_RIGHTBRACKET = 48
62
+ SCANCODE_BACKSLASH = 49
63
+ SCANCODE_NONUSHASH = 50
64
+ SCANCODE_SEMICOLON = 51
65
+ SCANCODE_APOSTROPHE = 52
66
+ SCANCODE_GRAVE = 53
67
+ SCANCODE_COMMA = 54
68
+ SCANCODE_PERIOD = 55
69
+ SCANCODE_SLASH = 56
70
+ SCANCODE_CAPSLOCK = 57
71
+ SCANCODE_F1 = 58
72
+ SCANCODE_F2 = 59
73
+ SCANCODE_F3 = 60
74
+ SCANCODE_F4 = 61
75
+ SCANCODE_F5 = 62
76
+ SCANCODE_F6 = 63
77
+ SCANCODE_F7 = 64
78
+ SCANCODE_F8 = 65
79
+ SCANCODE_F9 = 66
80
+ SCANCODE_F10 = 67
81
+ SCANCODE_F11 = 68
82
+ SCANCODE_F12 = 69
83
+ SCANCODE_PRINTSCREEN = 70
84
+ SCANCODE_SCROLLLOCK = 71
85
+ SCANCODE_PAUSE = 72
86
+ SCANCODE_INSERT = 73
87
+ SCANCODE_HOME = 74
88
+ SCANCODE_PAGEUP = 75
89
+ SCANCODE_DELETE = 76
90
+ SCANCODE_END = 77
91
+ SCANCODE_PAGEDOWN = 78
92
+ SCANCODE_RIGHT = 79
93
+ SCANCODE_LEFT = 80
94
+ SCANCODE_DOWN = 81
95
+ SCANCODE_UP = 82
96
+ SCANCODE_NUMLOCKCLEAR = 83
97
+ SCANCODE_KP_DIVIDE = 84
98
+ SCANCODE_KP_MULTIPLY = 85
99
+ SCANCODE_KP_MINUS = 86
100
+ SCANCODE_KP_PLUS = 87
101
+ SCANCODE_KP_ENTER = 88
102
+ SCANCODE_KP_1 = 89
103
+ SCANCODE_KP_2 = 90
104
+ SCANCODE_KP_3 = 91
105
+ SCANCODE_KP_4 = 92
106
+ SCANCODE_KP_5 = 93
107
+ SCANCODE_KP_6 = 94
108
+ SCANCODE_KP_7 = 95
109
+ SCANCODE_KP_8 = 96
110
+ SCANCODE_KP_9 = 97
111
+ SCANCODE_KP_0 = 98
112
+ SCANCODE_KP_PERIOD = 99
113
+ SCANCODE_NONUSBACKSLASH = 100
114
+ SCANCODE_APPLICATION = 101
115
+ SCANCODE_POWER = 102
116
+ SCANCODE_KP_EQUALS = 103
117
+ SCANCODE_F13 = 104
118
+ SCANCODE_F14 = 105
119
+ SCANCODE_F15 = 106
120
+ SCANCODE_F16 = 107
121
+ SCANCODE_F17 = 108
122
+ SCANCODE_F18 = 109
123
+ SCANCODE_F19 = 110
124
+ SCANCODE_F20 = 111
125
+ SCANCODE_F21 = 112
126
+ SCANCODE_F22 = 113
127
+ SCANCODE_F23 = 114
128
+ SCANCODE_F24 = 115
129
+ SCANCODE_EXECUTE = 116
130
+ SCANCODE_HELP = 117
131
+ SCANCODE_MENU = 118
132
+ SCANCODE_SELECT = 119
133
+ SCANCODE_STOP = 120
134
+ SCANCODE_AGAIN = 121
135
+ SCANCODE_UNDO = 122
136
+ SCANCODE_CUT = 123
137
+ SCANCODE_COPY = 124
138
+ SCANCODE_PASTE = 125
139
+ SCANCODE_FIND = 126
140
+ SCANCODE_MUTE = 127
141
+ SCANCODE_VOLUMEUP = 128
142
+ SCANCODE_VOLUMEDOWN = 129
143
+ SCANCODE_KP_COMMA = 133
144
+ SCANCODE_KP_EQUALSAS400 = 134
145
+ SCANCODE_INTERNATIONAL1 = 135
146
+ SCANCODE_INTERNATIONAL2 = 136
147
+ SCANCODE_INTERNATIONAL3 = 137
148
+ SCANCODE_INTERNATIONAL4 = 138
149
+ SCANCODE_INTERNATIONAL5 = 139
150
+ SCANCODE_INTERNATIONAL6 = 140
151
+ SCANCODE_INTERNATIONAL7 = 141
152
+ SCANCODE_INTERNATIONAL8 = 142
153
+ SCANCODE_INTERNATIONAL9 = 143
154
+ SCANCODE_LANG1 = 144
155
+ SCANCODE_LANG2 = 145
156
+ SCANCODE_LANG3 = 146
157
+ SCANCODE_LANG4 = 147
158
+ SCANCODE_LANG5 = 148
159
+ SCANCODE_LANG6 = 149
160
+ SCANCODE_LANG7 = 150
161
+ SCANCODE_LANG8 = 151
162
+ SCANCODE_LANG9 = 152
163
+ SCANCODE_ALTERASE = 153
164
+ SCANCODE_SYSREQ = 154
165
+ SCANCODE_CANCEL = 155
166
+ SCANCODE_CLEAR = 156
167
+ SCANCODE_PRIOR = 157
168
+ SCANCODE_RETURN2 = 158
169
+ SCANCODE_SEPARATOR = 159
170
+ SCANCODE_OUT = 160
171
+ SCANCODE_OPER = 161
172
+ SCANCODE_CLEARAGAIN = 162
173
+ SCANCODE_CRSEL = 163
174
+ SCANCODE_EXSEL = 164
175
+ SCANCODE_KP_00 = 176
176
+ SCANCODE_KP_000 = 177
177
+ SCANCODE_THOUSANDSSEPARATOR = 178
178
+ SCANCODE_DECIMALSEPARATOR = 179
179
+ SCANCODE_CURRENCYUNIT = 180
180
+ SCANCODE_CURRENCYSUBUNIT = 181
181
+ SCANCODE_KP_LEFTPAREN = 182
182
+ SCANCODE_KP_RIGHTPAREN = 183
183
+ SCANCODE_KP_LEFTBRACE = 184
184
+ SCANCODE_KP_RIGHTBRACE = 185
185
+ SCANCODE_KP_TAB = 186
186
+ SCANCODE_KP_BACKSPACE = 187
187
+ SCANCODE_KP_A = 188
188
+ SCANCODE_KP_B = 189
189
+ SCANCODE_KP_C = 190
190
+ SCANCODE_KP_D = 191
191
+ SCANCODE_KP_E = 192
192
+ SCANCODE_KP_F = 193
193
+ SCANCODE_KP_XOR = 194
194
+ SCANCODE_KP_POWER = 195
195
+ SCANCODE_KP_PERCENT = 196
196
+ SCANCODE_KP_LESS = 197
197
+ SCANCODE_KP_GREATER = 198
198
+ SCANCODE_KP_AMPERSAND = 199
199
+ SCANCODE_KP_DBLAMPERSAND = 200
200
+ SCANCODE_KP_VERTICALBAR = 201
201
+ SCANCODE_KP_DBLVERTICALBAR = 202
202
+ SCANCODE_KP_COLON = 203
203
+ SCANCODE_KP_HASH = 204
204
+ SCANCODE_KP_SPACE = 205
205
+ SCANCODE_KP_AT = 206
206
+ SCANCODE_KP_EXCLAM = 207
207
+ SCANCODE_KP_MEMSTORE = 208
208
+ SCANCODE_KP_MEMRECALL = 209
209
+ SCANCODE_KP_MEMCLEAR = 210
210
+ SCANCODE_KP_MEMADD = 211
211
+ SCANCODE_KP_MEMSUBTRACT = 212
212
+ SCANCODE_KP_MEMMULTIPLY = 213
213
+ SCANCODE_KP_MEMDIVIDE = 214
214
+ SCANCODE_KP_PLUSMINUS = 215
215
+ SCANCODE_KP_CLEAR = 216
216
+ SCANCODE_KP_CLEARENTRY = 217
217
+ SCANCODE_KP_BINARY = 218
218
+ SCANCODE_KP_OCTAL = 219
219
+ SCANCODE_KP_DECIMAL = 220
220
+ SCANCODE_KP_HEXADECIMAL = 221
221
+ SCANCODE_LCTRL = 224
222
+ SCANCODE_LSHIFT = 225
223
+ SCANCODE_LALT = 226
224
+ SCANCODE_LGUI = 227
225
+ SCANCODE_RCTRL = 228
226
+ SCANCODE_RSHIFT = 229
227
+ SCANCODE_RALT = 230
228
+ SCANCODE_RGUI = 231
229
+ SCANCODE_MODE = 257
230
+ SCANCODE_SLEEP = 258
231
+ SCANCODE_WAKE = 259
232
+ SCANCODE_CHANNEL_INCREMENT = 260
233
+ SCANCODE_CHANNEL_DECREMENT = 261
234
+ SCANCODE_MEDIA_PLAY = 262
235
+ SCANCODE_MEDIA_PAUSE = 263
236
+ SCANCODE_MEDIA_RECORD = 264
237
+ SCANCODE_MEDIA_FAST_FORWARD = 265
238
+ SCANCODE_MEDIA_REWIND = 266
239
+ SCANCODE_MEDIA_NEXT_TRACK = 267
240
+ SCANCODE_MEDIA_PREVIOUS_TRACK = 268
241
+ SCANCODE_MEDIA_STOP = 269
242
+ SCANCODE_MEDIA_EJECT = 270
243
+ SCANCODE_MEDIA_PLAY_PAUSE = 271
244
+ SCANCODE_MEDIA_SELECT = 272
245
+ SCANCODE_AC_NEW = 273
246
+ SCANCODE_AC_OPEN = 274
247
+ SCANCODE_AC_CLOSE = 275
248
+ SCANCODE_AC_EXIT = 276
249
+ SCANCODE_AC_SAVE = 277
250
+ SCANCODE_AC_PRINT = 278
251
+ SCANCODE_AC_PROPERTIES = 279
252
+ SCANCODE_AC_SEARCH = 280
253
+ SCANCODE_AC_HOME = 281
254
+ SCANCODE_AC_BACK = 282
255
+ SCANCODE_AC_FORWARD = 283
256
+ SCANCODE_AC_STOP = 284
257
+ SCANCODE_AC_REFRESH = 285
258
+ SCANCODE_AC_BOOKMARKS = 286
259
+ SCANCODE_SOFTLEFT = 287
260
+ SCANCODE_SOFTRIGHT = 288
261
+ SCANCODE_CALL = 289
262
+ SCANCODE_ENDCALL = 290
263
+ SCANCODE_RESERVED = 400
264
+ SCANCODE_COUNT = 512
265
+
266
+ # Typedef
267
+
268
+ typedef :int, :SDL_Scancode
269
+
270
+ # Struct
271
+
272
+
273
+ # Function
274
+
275
+ def self.setup_scancode_symbols(output_error = false)
276
+ entries = [
277
+ ]
278
+ entries.each do |entry|
279
+ attach_function entry[0], entry[1], entry[2], entry[3]
280
+ rescue FFI::NotFoundError => e
281
+ warn "[Warning] Failed to import #{entry[0]} (#{e})." if output_error
282
+ end
283
+ end
284
+
285
+ end
286
+
@@ -0,0 +1,61 @@
1
+ # Ruby-SDL3 : SDL3 wrapper for Ruby
2
+ #
3
+ # * https://github.com/vaiorabbit/sdl3-bindings
4
+ #
5
+ # [NOTICE] Autogenerated. Do not edit.
6
+
7
+ require 'ffi'
8
+
9
+ module SDL
10
+ extend FFI::Library
11
+ # Define/Macro
12
+
13
+ STANDARD_GRAVITY = 9.80665
14
+
15
+ # Enum
16
+
17
+ SENSOR_INVALID = -1
18
+ SENSOR_UNKNOWN = 0
19
+ SENSOR_ACCEL = 1
20
+ SENSOR_GYRO = 2
21
+ SENSOR_ACCEL_L = 3
22
+ SENSOR_GYRO_L = 4
23
+ SENSOR_ACCEL_R = 5
24
+ SENSOR_GYRO_R = 6
25
+
26
+ # Typedef
27
+
28
+ typedef :uint, :SDL_SensorID
29
+ typedef :int, :SDL_SensorType
30
+
31
+ # Struct
32
+
33
+
34
+ # Function
35
+
36
+ def self.setup_sensor_symbols(output_error = false)
37
+ entries = [
38
+ [:GetSensors, :SDL_GetSensors, [:pointer], :pointer],
39
+ [:GetSensorNameForID, :SDL_GetSensorNameForID, [:uint], :pointer],
40
+ [:GetSensorTypeForID, :SDL_GetSensorTypeForID, [:uint], :int],
41
+ [:GetSensorNonPortableTypeForID, :SDL_GetSensorNonPortableTypeForID, [:uint], :int],
42
+ [:OpenSensor, :SDL_OpenSensor, [:uint], :pointer],
43
+ [:GetSensorFromID, :SDL_GetSensorFromID, [:uint], :pointer],
44
+ [:GetSensorProperties, :SDL_GetSensorProperties, [:pointer], :uint],
45
+ [:GetSensorName, :SDL_GetSensorName, [:pointer], :pointer],
46
+ [:GetSensorType, :SDL_GetSensorType, [:pointer], :int],
47
+ [:GetSensorNonPortableType, :SDL_GetSensorNonPortableType, [:pointer], :int],
48
+ [:GetSensorID, :SDL_GetSensorID, [:pointer], :uint],
49
+ [:GetSensorData, :SDL_GetSensorData, [:pointer, :pointer, :int], :bool],
50
+ [:CloseSensor, :SDL_CloseSensor, [:pointer], :void],
51
+ [:UpdateSensors, :SDL_UpdateSensors, [], :void],
52
+ ]
53
+ entries.each do |entry|
54
+ attach_function entry[0], entry[1], entry[2], entry[3]
55
+ rescue FFI::NotFoundError => e
56
+ warn "[Warning] Failed to import #{entry[0]} (#{e})." if output_error
57
+ end
58
+ end
59
+
60
+ end
61
+
data/lib/sdl3_sound.rb ADDED
@@ -0,0 +1,98 @@
1
+ # Ruby-SDL3 : SDL3 wrapper for Ruby
2
+ #
3
+ # * https://github.com/vaiorabbit/sdl3-bindings
4
+ #
5
+ # [NOTICE] Autogenerated. Do not edit.
6
+
7
+ require 'ffi'
8
+
9
+ module SDL
10
+ extend FFI::Library
11
+ # Define/Macro
12
+
13
+ SOUND_VER_MAJOR = 3
14
+ SOUND_VER_MINOR = 0
15
+ SOUND_VER_PATCH = 0
16
+
17
+ # Enum
18
+
19
+ SOUND_SAMPLEFLAG_NONE = 0
20
+ SOUND_SAMPLEFLAG_CANSEEK = 1
21
+ SOUND_SAMPLEFLAG_EOF = 536870912
22
+ SOUND_SAMPLEFLAG_ERROR = 1073741824
23
+ SOUND_SAMPLEFLAG_EAGAIN = -2147483648
24
+
25
+ # Typedef
26
+
27
+ typedef :int, :Sound_SampleFlags
28
+
29
+ # Struct
30
+
31
+ class Sound_AudioInfo < FFI::Struct
32
+ layout(
33
+ :format, :ushort,
34
+ :channels, :uchar,
35
+ :rate, :uint,
36
+ )
37
+ end
38
+
39
+ class Sound_DecoderInfo < FFI::Struct
40
+ layout(
41
+ :extensions, :pointer,
42
+ :description, :pointer,
43
+ :author, :pointer,
44
+ :url, :pointer,
45
+ )
46
+ end
47
+
48
+ class Sound_Sample < FFI::Struct
49
+ layout(
50
+ :opaque, :pointer,
51
+ :decoder, :pointer,
52
+ :desired, Sound_AudioInfo,
53
+ :actual, Sound_AudioInfo,
54
+ :buffer, :pointer,
55
+ :buffer_size, :uint,
56
+ :flags, :int,
57
+ )
58
+ end
59
+
60
+ class Sound_Version < FFI::Struct
61
+ layout(
62
+ :major, :int,
63
+ :minor, :int,
64
+ :patch, :int,
65
+ )
66
+ end
67
+
68
+
69
+ # Function
70
+
71
+ def self.setup_sound_symbols(output_error = false)
72
+ entries = [
73
+ [:Sound_GetLinkedVersion, :Sound_GetLinkedVersion, [:pointer], :void],
74
+ [:Sound_Init, :Sound_Init, [], :int],
75
+ [:Sound_Quit, :Sound_Quit, [], :int],
76
+ [:Sound_AvailableDecoders, :Sound_AvailableDecoders, [], :pointer],
77
+ [:Sound_GetError, :Sound_GetError, [], :pointer],
78
+ [:Sound_ClearError, :Sound_ClearError, [], :void],
79
+ [:Sound_NewSample, :Sound_NewSample, [:pointer, :pointer, :pointer, :uint], :pointer],
80
+ [:Sound_NewSampleFromMem, :Sound_NewSampleFromMem, [:pointer, :uint, :pointer, :pointer, :uint], :pointer],
81
+ [:Sound_NewSampleFromFile, :Sound_NewSampleFromFile, [:pointer, :pointer, :uint], :pointer],
82
+ [:Sound_FreeSample, :Sound_FreeSample, [:pointer], :void],
83
+ [:Sound_GetDuration, :Sound_GetDuration, [:pointer], :int],
84
+ [:Sound_SetBufferSize, :Sound_SetBufferSize, [:pointer, :uint], :int],
85
+ [:Sound_Decode, :Sound_Decode, [:pointer], :uint],
86
+ [:Sound_DecodeAll, :Sound_DecodeAll, [:pointer], :uint],
87
+ [:Sound_Rewind, :Sound_Rewind, [:pointer], :int],
88
+ [:Sound_Seek, :Sound_Seek, [:pointer, :uint], :int],
89
+ ]
90
+ entries.each do |entry|
91
+ attach_function entry[0], entry[1], entry[2], entry[3]
92
+ rescue FFI::NotFoundError => e
93
+ warn "[Warning] Failed to import #{entry[0]} (#{e})." if output_error
94
+ end
95
+ end
96
+
97
+ end
98
+
@@ -0,0 +1,229 @@
1
+ # Ruby-SDL3 : SDL3 wrapper for Ruby
2
+ #
3
+ # * https://github.com/vaiorabbit/sdl3-bindings
4
+ #
5
+ # [NOTICE] Autogenerated. Do not edit.
6
+
7
+ require 'ffi'
8
+
9
+ module SDL
10
+ extend FFI::Library
11
+ # Define/Macro
12
+
13
+
14
+ # Enum
15
+
16
+
17
+ # Typedef
18
+
19
+ typedef :char, :Sint8
20
+ typedef :uchar, :Uint8
21
+ typedef :short, :Sint16
22
+ typedef :ushort, :Uint16
23
+ typedef :int, :Sint32
24
+ typedef :uint, :Uint32
25
+ typedef :long_long, :Sint64
26
+ typedef :ulong_long, :Uint64
27
+ typedef :long_long, :SDL_Time
28
+ callback :SDL_malloc_func, [:ulong_long], :pointer
29
+ callback :SDL_calloc_func, [:ulong_long, :ulong_long], :pointer
30
+ callback :SDL_realloc_func, [:pointer, :ulong_long], :pointer
31
+ callback :SDL_free_func, [:pointer], :void
32
+ callback :SDL_CompareCallback, [:pointer, :pointer], :int
33
+ callback :SDL_CompareCallback_r, [:pointer, :pointer, :pointer], :int
34
+ typedef :pointer, :SDL_iconv_t
35
+ callback :SDL_FunctionPointer, [], :void
36
+
37
+ # Struct
38
+
39
+ class Alignment_test < FFI::Struct
40
+ layout(
41
+ :a, :uchar,
42
+ :b, :pointer,
43
+ )
44
+ end
45
+
46
+
47
+ # Function
48
+
49
+ def self.setup_stdinc_symbols(output_error = false)
50
+ entries = [
51
+ [:malloc, :SDL_malloc, [:ulong_long], :pointer],
52
+ [:calloc, :SDL_calloc, [:ulong_long, :ulong_long], :pointer],
53
+ [:realloc, :SDL_realloc, [:pointer, :ulong_long], :pointer],
54
+ [:free, :SDL_free, [:pointer], :void],
55
+ [:GetOriginalMemoryFunctions, :SDL_GetOriginalMemoryFunctions, [:pointer, :pointer, :pointer, :pointer], :void],
56
+ [:GetMemoryFunctions, :SDL_GetMemoryFunctions, [:pointer, :pointer, :pointer, :pointer], :void],
57
+ [:SetMemoryFunctions, :SDL_SetMemoryFunctions, [:SDL_malloc_func, :SDL_calloc_func, :SDL_realloc_func, :SDL_free_func], :bool],
58
+ [:aligned_alloc, :SDL_aligned_alloc, [:ulong_long, :ulong_long], :pointer],
59
+ [:aligned_free, :SDL_aligned_free, [:pointer], :void],
60
+ [:GetNumAllocations, :SDL_GetNumAllocations, [], :int],
61
+ [:GetEnvironment, :SDL_GetEnvironment, [], :pointer],
62
+ [:CreateEnvironment, :SDL_CreateEnvironment, [:bool], :pointer],
63
+ [:GetEnvironmentVariable, :SDL_GetEnvironmentVariable, [:pointer, :pointer], :pointer],
64
+ [:GetEnvironmentVariables, :SDL_GetEnvironmentVariables, [:pointer], :pointer],
65
+ [:SetEnvironmentVariable, :SDL_SetEnvironmentVariable, [:pointer, :pointer, :pointer, :bool], :bool],
66
+ [:UnsetEnvironmentVariable, :SDL_UnsetEnvironmentVariable, [:pointer, :pointer], :bool],
67
+ [:DestroyEnvironment, :SDL_DestroyEnvironment, [:pointer], :void],
68
+ [:getenv, :SDL_getenv, [:pointer], :pointer],
69
+ [:getenv_unsafe, :SDL_getenv_unsafe, [:pointer], :pointer],
70
+ [:setenv_unsafe, :SDL_setenv_unsafe, [:pointer, :pointer, :int], :int],
71
+ [:unsetenv_unsafe, :SDL_unsetenv_unsafe, [:pointer], :int],
72
+ [:qsort, :SDL_qsort, [:pointer, :ulong_long, :ulong_long, :SDL_CompareCallback], :void],
73
+ [:bsearch, :SDL_bsearch, [:pointer, :pointer, :ulong_long, :ulong_long, :SDL_CompareCallback], :pointer],
74
+ [:qsort_r, :SDL_qsort_r, [:pointer, :ulong_long, :ulong_long, :SDL_CompareCallback_r, :pointer], :void],
75
+ [:bsearch_r, :SDL_bsearch_r, [:pointer, :pointer, :ulong_long, :ulong_long, :SDL_CompareCallback_r, :pointer], :pointer],
76
+ [:abs, :SDL_abs, [:int], :int],
77
+ [:isalpha, :SDL_isalpha, [:int], :int],
78
+ [:isalnum, :SDL_isalnum, [:int], :int],
79
+ [:isblank, :SDL_isblank, [:int], :int],
80
+ [:iscntrl, :SDL_iscntrl, [:int], :int],
81
+ [:isdigit, :SDL_isdigit, [:int], :int],
82
+ [:isxdigit, :SDL_isxdigit, [:int], :int],
83
+ [:ispunct, :SDL_ispunct, [:int], :int],
84
+ [:isspace, :SDL_isspace, [:int], :int],
85
+ [:isupper, :SDL_isupper, [:int], :int],
86
+ [:islower, :SDL_islower, [:int], :int],
87
+ [:isprint, :SDL_isprint, [:int], :int],
88
+ [:isgraph, :SDL_isgraph, [:int], :int],
89
+ [:toupper, :SDL_toupper, [:int], :int],
90
+ [:tolower, :SDL_tolower, [:int], :int],
91
+ [:crc16, :SDL_crc16, [:ushort, :pointer, :ulong_long], :ushort],
92
+ [:crc32, :SDL_crc32, [:uint, :pointer, :ulong_long], :uint],
93
+ [:murmur3_32, :SDL_murmur3_32, [:pointer, :ulong_long, :uint], :uint],
94
+ [:memcpy, :SDL_memcpy, [:pointer, :pointer, :ulong_long], :pointer],
95
+ [:memmove, :SDL_memmove, [:pointer, :pointer, :ulong_long], :pointer],
96
+ [:memset, :SDL_memset, [:pointer, :int, :ulong_long], :pointer],
97
+ [:memcmp, :SDL_memcmp, [:pointer, :pointer, :ulong_long], :int],
98
+ [:wcslen, :SDL_wcslen, [:pointer], :ulong_long],
99
+ [:wcsnlen, :SDL_wcsnlen, [:pointer, :ulong_long], :ulong_long],
100
+ [:wcslcpy, :SDL_wcslcpy, [:pointer, :pointer, :ulong_long], :ulong_long],
101
+ [:wcslcat, :SDL_wcslcat, [:pointer, :pointer, :ulong_long], :ulong_long],
102
+ [:wcsdup, :SDL_wcsdup, [:pointer], :pointer],
103
+ [:wcsstr, :SDL_wcsstr, [:pointer, :pointer], :pointer],
104
+ [:wcsnstr, :SDL_wcsnstr, [:pointer, :pointer, :ulong_long], :pointer],
105
+ [:wcscmp, :SDL_wcscmp, [:pointer, :pointer], :int],
106
+ [:wcsncmp, :SDL_wcsncmp, [:pointer, :pointer, :ulong_long], :int],
107
+ [:wcscasecmp, :SDL_wcscasecmp, [:pointer, :pointer], :int],
108
+ [:wcsncasecmp, :SDL_wcsncasecmp, [:pointer, :pointer, :ulong_long], :int],
109
+ [:wcstol, :SDL_wcstol, [:pointer, :pointer, :int], :long],
110
+ [:strlen, :SDL_strlen, [:pointer], :ulong_long],
111
+ [:strnlen, :SDL_strnlen, [:pointer, :ulong_long], :ulong_long],
112
+ [:strlcpy, :SDL_strlcpy, [:pointer, :pointer, :ulong_long], :ulong_long],
113
+ [:utf8strlcpy, :SDL_utf8strlcpy, [:pointer, :pointer, :ulong_long], :ulong_long],
114
+ [:strlcat, :SDL_strlcat, [:pointer, :pointer, :ulong_long], :ulong_long],
115
+ [:strdup, :SDL_strdup, [:pointer], :pointer],
116
+ [:strndup, :SDL_strndup, [:pointer, :ulong_long], :pointer],
117
+ [:strrev, :SDL_strrev, [:pointer], :pointer],
118
+ [:strupr, :SDL_strupr, [:pointer], :pointer],
119
+ [:strlwr, :SDL_strlwr, [:pointer], :pointer],
120
+ [:strchr, :SDL_strchr, [:pointer, :int], :pointer],
121
+ [:strrchr, :SDL_strrchr, [:pointer, :int], :pointer],
122
+ [:strstr, :SDL_strstr, [:pointer, :pointer], :pointer],
123
+ [:strnstr, :SDL_strnstr, [:pointer, :pointer, :ulong_long], :pointer],
124
+ [:strcasestr, :SDL_strcasestr, [:pointer, :pointer], :pointer],
125
+ [:strtok_r, :SDL_strtok_r, [:pointer, :pointer, :pointer], :pointer],
126
+ [:utf8strlen, :SDL_utf8strlen, [:pointer], :ulong_long],
127
+ [:utf8strnlen, :SDL_utf8strnlen, [:pointer, :ulong_long], :ulong_long],
128
+ [:itoa, :SDL_itoa, [:int, :pointer, :int], :pointer],
129
+ [:uitoa, :SDL_uitoa, [:uint, :pointer, :int], :pointer],
130
+ [:ltoa, :SDL_ltoa, [:long, :pointer, :int], :pointer],
131
+ [:ultoa, :SDL_ultoa, [:ulong, :pointer, :int], :pointer],
132
+ [:lltoa, :SDL_lltoa, [:long_long, :pointer, :int], :pointer],
133
+ [:ulltoa, :SDL_ulltoa, [:ulong_long, :pointer, :int], :pointer],
134
+ [:atoi, :SDL_atoi, [:pointer], :int],
135
+ [:atof, :SDL_atof, [:pointer], :double],
136
+ [:strtol, :SDL_strtol, [:pointer, :pointer, :int], :long],
137
+ [:strtoul, :SDL_strtoul, [:pointer, :pointer, :int], :ulong],
138
+ [:strtoll, :SDL_strtoll, [:pointer, :pointer, :int], :long_long],
139
+ [:strtoull, :SDL_strtoull, [:pointer, :pointer, :int], :ulong_long],
140
+ [:strtod, :SDL_strtod, [:pointer, :pointer], :double],
141
+ [:strcmp, :SDL_strcmp, [:pointer, :pointer], :int],
142
+ [:strncmp, :SDL_strncmp, [:pointer, :pointer, :ulong_long], :int],
143
+ [:strcasecmp, :SDL_strcasecmp, [:pointer, :pointer], :int],
144
+ [:strncasecmp, :SDL_strncasecmp, [:pointer, :pointer, :ulong_long], :int],
145
+ [:strpbrk, :SDL_strpbrk, [:pointer, :pointer], :pointer],
146
+ [:StepUTF8, :SDL_StepUTF8, [:pointer, :pointer], :uint],
147
+ [:StepBackUTF8, :SDL_StepBackUTF8, [:pointer, :pointer], :uint],
148
+ [:UCS4ToUTF8, :SDL_UCS4ToUTF8, [:uint, :pointer], :pointer],
149
+ [:sscanf, :SDL_sscanf, [:pointer, :pointer], :int],
150
+ [:vsscanf, :SDL_vsscanf, [:pointer, :pointer, :pointer], :int],
151
+ [:snprintf, :SDL_snprintf, [:pointer, :ulong_long, :pointer], :int],
152
+ [:swprintf, :SDL_swprintf, [:pointer, :ulong_long, :pointer], :int],
153
+ [:vsnprintf, :SDL_vsnprintf, [:pointer, :ulong_long, :pointer, :pointer], :int],
154
+ [:vswprintf, :SDL_vswprintf, [:pointer, :ulong_long, :pointer, :pointer], :int],
155
+ [:asprintf, :SDL_asprintf, [:pointer, :pointer], :int],
156
+ [:vasprintf, :SDL_vasprintf, [:pointer, :pointer, :pointer], :int],
157
+ [:srand, :SDL_srand, [:ulong_long], :void],
158
+ [:rand, :SDL_rand, [:int], :int],
159
+ [:randf, :SDL_randf, [], :float],
160
+ [:rand_bits, :SDL_rand_bits, [], :uint],
161
+ [:rand_r, :SDL_rand_r, [:pointer, :int], :int],
162
+ [:randf_r, :SDL_randf_r, [:pointer], :float],
163
+ [:rand_bits_r, :SDL_rand_bits_r, [:pointer], :uint],
164
+ [:acos, :SDL_acos, [:double], :double],
165
+ [:acosf, :SDL_acosf, [:float], :float],
166
+ [:asin, :SDL_asin, [:double], :double],
167
+ [:asinf, :SDL_asinf, [:float], :float],
168
+ [:atan, :SDL_atan, [:double], :double],
169
+ [:atanf, :SDL_atanf, [:float], :float],
170
+ [:atan2, :SDL_atan2, [:double, :double], :double],
171
+ [:atan2f, :SDL_atan2f, [:float, :float], :float],
172
+ [:ceil, :SDL_ceil, [:double], :double],
173
+ [:ceilf, :SDL_ceilf, [:float], :float],
174
+ [:copysign, :SDL_copysign, [:double, :double], :double],
175
+ [:copysignf, :SDL_copysignf, [:float, :float], :float],
176
+ [:cos, :SDL_cos, [:double], :double],
177
+ [:cosf, :SDL_cosf, [:float], :float],
178
+ [:exp, :SDL_exp, [:double], :double],
179
+ [:expf, :SDL_expf, [:float], :float],
180
+ [:fabs, :SDL_fabs, [:double], :double],
181
+ [:fabsf, :SDL_fabsf, [:float], :float],
182
+ [:floor, :SDL_floor, [:double], :double],
183
+ [:floorf, :SDL_floorf, [:float], :float],
184
+ [:trunc, :SDL_trunc, [:double], :double],
185
+ [:truncf, :SDL_truncf, [:float], :float],
186
+ [:fmod, :SDL_fmod, [:double, :double], :double],
187
+ [:fmodf, :SDL_fmodf, [:float, :float], :float],
188
+ [:isinf, :SDL_isinf, [:double], :int],
189
+ [:isinff, :SDL_isinff, [:float], :int],
190
+ [:isnan, :SDL_isnan, [:double], :int],
191
+ [:isnanf, :SDL_isnanf, [:float], :int],
192
+ [:log, :SDL_log, [:double], :double],
193
+ [:logf, :SDL_logf, [:float], :float],
194
+ [:log10, :SDL_log10, [:double], :double],
195
+ [:log10f, :SDL_log10f, [:float], :float],
196
+ [:modf, :SDL_modf, [:double, :pointer], :double],
197
+ [:modff, :SDL_modff, [:float, :pointer], :float],
198
+ [:pow, :SDL_pow, [:double, :double], :double],
199
+ [:powf, :SDL_powf, [:float, :float], :float],
200
+ [:round, :SDL_round, [:double], :double],
201
+ [:roundf, :SDL_roundf, [:float], :float],
202
+ [:lround, :SDL_lround, [:double], :long],
203
+ [:lroundf, :SDL_lroundf, [:float], :long],
204
+ [:scalbn, :SDL_scalbn, [:double, :int], :double],
205
+ [:scalbnf, :SDL_scalbnf, [:float, :int], :float],
206
+ [:sin, :SDL_sin, [:double], :double],
207
+ [:sinf, :SDL_sinf, [:float], :float],
208
+ [:sqrt, :SDL_sqrt, [:double], :double],
209
+ [:sqrtf, :SDL_sqrtf, [:float], :float],
210
+ [:tan, :SDL_tan, [:double], :double],
211
+ [:tanf, :SDL_tanf, [:float], :float],
212
+ [:iconv_open, :SDL_iconv_open, [:pointer, :pointer], :pointer],
213
+ [:iconv_close, :SDL_iconv_close, [:pointer], :int],
214
+ [:iconv, :SDL_iconv, [:pointer, :pointer, :pointer, :pointer, :pointer], :ulong_long],
215
+ [:iconv_string, :SDL_iconv_string, [:pointer, :pointer, :pointer, :ulong_long], :pointer],
216
+ [:size_mul_check_overflow, :SDL_size_mul_check_overflow, [:ulong_long, :ulong_long, :pointer], :bool],
217
+ [:size_mul_check_overflow_builtin, :SDL_size_mul_check_overflow_builtin, [:ulong_long, :ulong_long, :pointer], :bool],
218
+ [:size_add_check_overflow, :SDL_size_add_check_overflow, [:ulong_long, :ulong_long, :pointer], :bool],
219
+ [:size_add_check_overflow_builtin, :SDL_size_add_check_overflow_builtin, [:ulong_long, :ulong_long, :pointer], :bool],
220
+ ]
221
+ entries.each do |entry|
222
+ attach_function entry[0], entry[1], entry[2], entry[3]
223
+ rescue FFI::NotFoundError => e
224
+ warn "[Warning] Failed to import #{entry[0]} (#{e})." if output_error
225
+ end
226
+ end
227
+
228
+ end
229
+