sdl2-bindings 0.0.9 → 0.1.2

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 (51) hide show
  1. checksums.yaml +4 -4
  2. data/ChangeLog +129 -96
  3. data/LICENSE.txt +0 -0
  4. data/README.md +78 -55
  5. data/lib/sdl2.rb +131 -172
  6. data/lib/sdl2_audio.rb +261 -222
  7. data/lib/sdl2_blendmode.rb +72 -69
  8. data/lib/sdl2_clipboard.rb +56 -51
  9. data/lib/sdl2_cpuinfo.rb +129 -106
  10. data/lib/sdl2_error.rb +71 -64
  11. data/lib/sdl2_events.rb +564 -533
  12. data/lib/sdl2_filesystem.rb +52 -48
  13. data/lib/sdl2_framerate.rb +74 -67
  14. data/lib/sdl2_gamecontroller.rb +329 -274
  15. data/lib/sdl2_gesture.rb +61 -55
  16. data/lib/sdl2_gfxPrimitives.rb +283 -222
  17. data/lib/sdl2_haptic.rb +301 -269
  18. data/lib/sdl2_hidapi.rb +139 -118
  19. data/lib/sdl2_hints.rb +221 -198
  20. data/lib/sdl2_image.rb +232 -185
  21. data/lib/sdl2_imageFilter.rb +164 -132
  22. data/lib/sdl2_joystick.rb +294 -239
  23. data/lib/sdl2_keyboard.rb +125 -99
  24. data/lib/sdl2_keycode.rb +307 -305
  25. data/lib/sdl2_log.rb +131 -115
  26. data/lib/sdl2_main.rb +74 -67
  27. data/lib/sdl2_messagebox.rb +102 -98
  28. data/lib/sdl2_misc.rb +48 -45
  29. data/lib/sdl2_mixer.rb +392 -317
  30. data/lib/sdl2_mouse.rb +136 -117
  31. data/lib/sdl2_pixels.rb +240 -224
  32. data/lib/sdl2_platform.rb +48 -45
  33. data/lib/sdl2_power.rb +54 -51
  34. data/lib/sdl2_rect.rb +145 -102
  35. data/lib/sdl2_render.rb +408 -322
  36. data/lib/sdl2_rotozoom.rb +76 -66
  37. data/lib/sdl2_rwops.rb +242 -208
  38. data/lib/sdl2_scancode.rb +289 -287
  39. data/lib/sdl2_sensor.rb +115 -97
  40. data/lib/sdl2_shape.rb +83 -77
  41. data/lib/sdl2_sound.rb +154 -0
  42. data/lib/sdl2_stdinc.rb +556 -439
  43. data/lib/sdl2_surface.rb +229 -188
  44. data/lib/sdl2_syswm.rb +160 -157
  45. data/lib/sdl2_timer.rb +74 -65
  46. data/lib/sdl2_touch.rb +86 -75
  47. data/lib/sdl2_ttf.rb +358 -202
  48. data/lib/sdl2_version.rb +67 -62
  49. data/lib/sdl2_video.rb +540 -446
  50. data/lib/sdl2_vulkan.rb +72 -64
  51. metadata +18 -3
data/lib/sdl2_rotozoom.rb CHANGED
@@ -1,66 +1,76 @@
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 SDL2
10
- extend FFI::Library
11
- # Define/Macro
12
-
13
-
14
- # Enum
15
-
16
-
17
- # Typedef
18
-
19
-
20
- # Struct
21
-
22
-
23
- # Function
24
-
25
- def self.setup_gfx_rotozoom_symbols()
26
- symbols = [
27
- :rotozoomSurface,
28
- :rotozoomSurfaceXY,
29
- :rotozoomSurfaceSize,
30
- :rotozoomSurfaceSizeXY,
31
- :zoomSurface,
32
- :zoomSurfaceSize,
33
- :shrinkSurface,
34
- :rotateSurface90Degrees,
35
- ]
36
- args = {
37
- :rotozoomSurface => [:pointer, :double, :double, :int],
38
- :rotozoomSurfaceXY => [:pointer, :double, :double, :double, :int],
39
- :rotozoomSurfaceSize => [:int, :int, :double, :double, :pointer, :pointer],
40
- :rotozoomSurfaceSizeXY => [:int, :int, :double, :double, :double, :pointer, :pointer],
41
- :zoomSurface => [:pointer, :double, :double, :int],
42
- :zoomSurfaceSize => [:int, :int, :double, :double, :pointer, :pointer],
43
- :shrinkSurface => [:pointer, :int, :int],
44
- :rotateSurface90Degrees => [:pointer, :int],
45
- }
46
- retvals = {
47
- :rotozoomSurface => :pointer,
48
- :rotozoomSurfaceXY => :pointer,
49
- :rotozoomSurfaceSize => :void,
50
- :rotozoomSurfaceSizeXY => :void,
51
- :zoomSurface => :pointer,
52
- :zoomSurfaceSize => :void,
53
- :shrinkSurface => :pointer,
54
- :rotateSurface90Degrees => :pointer,
55
- }
56
- symbols.each do |sym|
57
- begin
58
- attach_function sym, args[sym], retvals[sym]
59
- rescue FFI::NotFoundError => error
60
- $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
61
- end
62
- end
63
- end
64
-
65
- end
66
-
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
+
14
+ # Enum
15
+
16
+
17
+ # Typedef
18
+
19
+
20
+ # Struct
21
+
22
+
23
+ # Function
24
+
25
+ def self.setup_gfx_rotozoom_symbols(output_error = false)
26
+ symbols = [
27
+ :rotozoomSurface,
28
+ :rotozoomSurfaceXY,
29
+ :rotozoomSurfaceSize,
30
+ :rotozoomSurfaceSizeXY,
31
+ :zoomSurface,
32
+ :zoomSurfaceSize,
33
+ :shrinkSurface,
34
+ :rotateSurface90Degrees,
35
+ ]
36
+ apis = {
37
+ :rotozoomSurface => :rotozoomSurface,
38
+ :rotozoomSurfaceXY => :rotozoomSurfaceXY,
39
+ :rotozoomSurfaceSize => :rotozoomSurfaceSize,
40
+ :rotozoomSurfaceSizeXY => :rotozoomSurfaceSizeXY,
41
+ :zoomSurface => :zoomSurface,
42
+ :zoomSurfaceSize => :zoomSurfaceSize,
43
+ :shrinkSurface => :shrinkSurface,
44
+ :rotateSurface90Degrees => :rotateSurface90Degrees,
45
+ }
46
+ args = {
47
+ :rotozoomSurface => [:pointer, :double, :double, :int],
48
+ :rotozoomSurfaceXY => [:pointer, :double, :double, :double, :int],
49
+ :rotozoomSurfaceSize => [:int, :int, :double, :double, :pointer, :pointer],
50
+ :rotozoomSurfaceSizeXY => [:int, :int, :double, :double, :double, :pointer, :pointer],
51
+ :zoomSurface => [:pointer, :double, :double, :int],
52
+ :zoomSurfaceSize => [:int, :int, :double, :double, :pointer, :pointer],
53
+ :shrinkSurface => [:pointer, :int, :int],
54
+ :rotateSurface90Degrees => [:pointer, :int],
55
+ }
56
+ retvals = {
57
+ :rotozoomSurface => :pointer,
58
+ :rotozoomSurfaceXY => :pointer,
59
+ :rotozoomSurfaceSize => :void,
60
+ :rotozoomSurfaceSizeXY => :void,
61
+ :zoomSurface => :pointer,
62
+ :zoomSurfaceSize => :void,
63
+ :shrinkSurface => :pointer,
64
+ :rotateSurface90Degrees => :pointer,
65
+ }
66
+ symbols.each do |sym|
67
+ begin
68
+ attach_function apis[sym], sym, args[sym], retvals[sym]
69
+ rescue FFI::NotFoundError => error
70
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
71
+ end
72
+ end
73
+ end
74
+
75
+ end
76
+
data/lib/sdl2_rwops.rb CHANGED
@@ -1,208 +1,242 @@
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 SDL2
10
- extend FFI::Library
11
- # Define/Macro
12
-
13
- SDL_RWOPS_UNKNOWN = 0
14
- SDL_RWOPS_WINFILE = 1
15
- SDL_RWOPS_STDFILE = 2
16
- SDL_RWOPS_JNIFILE = 3
17
- SDL_RWOPS_MEMORY = 4
18
- SDL_RWOPS_MEMORY_RO = 5
19
-
20
- # Enum
21
-
22
-
23
- # Typedef
24
-
25
-
26
- class SDL_RWops_mem < FFI::Struct
27
- layout(
28
- :base, :pointer,
29
- :here, :pointer,
30
- :stop, :pointer,
31
- )
32
- end
33
-
34
- class SDL_RWops_unknown < FFI::Struct
35
- layout(
36
- :data1, :pointer,
37
- :data2, :pointer,
38
- )
39
- end
40
- class SDL_RWops_windowsio_buffer < FFI::Struct
41
- layout(
42
- :data, :pointer,
43
- :size, :size_t,
44
- :left, :size_t,
45
- )
46
- end
47
-
48
- class SDL_RWops_windowsio < FFI::Struct
49
- layout(
50
- :append, :int,
51
- :h, :pointer,
52
- :buffer, SDL_RWops_windowsio_buffer.by_value,
53
- )
54
- end
55
-
56
- class SDL_Default_RWops_hidden < FFI::Union
57
- layout(
58
- :mem, SDL_RWops_mem.by_value,
59
- :unknown, SDL_RWops_unknown.by_value,
60
- )
61
- end
62
-
63
- class SDL_Win32_RWops_hidden < FFI::Union
64
- layout(
65
- :mem, SDL_RWops_mem.by_value,
66
- :unknown, SDL_RWops_unknown.by_value,
67
- :windowsio, SDL_RWops_windowsio.by_value,
68
- )
69
- end
70
-
71
- class SDL_Default_RWops < FFI::Struct
72
- layout(
73
- :size, :pointer,
74
- :seek, :pointer,
75
- :read, :pointer,
76
- :write, :pointer,
77
- :close, :pointer,
78
- :type, :uint,
79
- :hidden, SDL_Default_RWops_hidden.by_value,
80
- )
81
- end
82
-
83
- class SDL_Win32_RWops < FFI::Struct
84
- layout(
85
- :size, :pointer,
86
- :seek, :pointer,
87
- :read, :pointer,
88
- :write, :pointer,
89
- :close, :pointer,
90
- :type, :uint,
91
- :hidden, SDL_Win32_RWops_hidden.by_value
92
- )
93
- end
94
-
95
- if RUBY_PLATFORM =~ /mswin|msys|mingw|cygwin/
96
- SDL_RWops = SDL_Win32_RWops
97
- else
98
- SDL_RWops = SDL_Default_RWops
99
- end
100
-
101
-
102
- # Struct
103
-
104
-
105
- # Function
106
-
107
- def self.setup_rwops_symbols()
108
- symbols = [
109
- :SDL_RWFromFile,
110
- :SDL_RWFromFP,
111
- :SDL_RWFromMem,
112
- :SDL_RWFromConstMem,
113
- :SDL_AllocRW,
114
- :SDL_FreeRW,
115
- :SDL_RWsize,
116
- :SDL_RWseek,
117
- :SDL_RWtell,
118
- :SDL_RWread,
119
- :SDL_RWwrite,
120
- :SDL_RWclose,
121
- :SDL_LoadFile_RW,
122
- :SDL_LoadFile,
123
- :SDL_ReadU8,
124
- :SDL_ReadLE16,
125
- :SDL_ReadBE16,
126
- :SDL_ReadLE32,
127
- :SDL_ReadBE32,
128
- :SDL_ReadLE64,
129
- :SDL_ReadBE64,
130
- :SDL_WriteU8,
131
- :SDL_WriteLE16,
132
- :SDL_WriteBE16,
133
- :SDL_WriteLE32,
134
- :SDL_WriteBE32,
135
- :SDL_WriteLE64,
136
- :SDL_WriteBE64,
137
- ]
138
- args = {
139
- :SDL_RWFromFile => [:pointer, :pointer],
140
- :SDL_RWFromFP => [:pointer, :int],
141
- :SDL_RWFromMem => [:pointer, :int],
142
- :SDL_RWFromConstMem => [:pointer, :int],
143
- :SDL_AllocRW => [],
144
- :SDL_FreeRW => [:pointer],
145
- :SDL_RWsize => [:pointer],
146
- :SDL_RWseek => [:pointer, :long_long, :int],
147
- :SDL_RWtell => [:pointer],
148
- :SDL_RWread => [:pointer, :pointer, :int, :int],
149
- :SDL_RWwrite => [:pointer, :pointer, :int, :int],
150
- :SDL_RWclose => [:pointer],
151
- :SDL_LoadFile_RW => [:pointer, :pointer, :int],
152
- :SDL_LoadFile => [:pointer, :pointer],
153
- :SDL_ReadU8 => [:pointer],
154
- :SDL_ReadLE16 => [:pointer],
155
- :SDL_ReadBE16 => [:pointer],
156
- :SDL_ReadLE32 => [:pointer],
157
- :SDL_ReadBE32 => [:pointer],
158
- :SDL_ReadLE64 => [:pointer],
159
- :SDL_ReadBE64 => [:pointer],
160
- :SDL_WriteU8 => [:pointer, :uchar],
161
- :SDL_WriteLE16 => [:pointer, :ushort],
162
- :SDL_WriteBE16 => [:pointer, :ushort],
163
- :SDL_WriteLE32 => [:pointer, :uint],
164
- :SDL_WriteBE32 => [:pointer, :uint],
165
- :SDL_WriteLE64 => [:pointer, :ulong_long],
166
- :SDL_WriteBE64 => [:pointer, :ulong_long],
167
- }
168
- retvals = {
169
- :SDL_RWFromFile => :pointer,
170
- :SDL_RWFromFP => :pointer,
171
- :SDL_RWFromMem => :pointer,
172
- :SDL_RWFromConstMem => :pointer,
173
- :SDL_AllocRW => :pointer,
174
- :SDL_FreeRW => :void,
175
- :SDL_RWsize => :long_long,
176
- :SDL_RWseek => :long_long,
177
- :SDL_RWtell => :long_long,
178
- :SDL_RWread => :int,
179
- :SDL_RWwrite => :int,
180
- :SDL_RWclose => :int,
181
- :SDL_LoadFile_RW => :pointer,
182
- :SDL_LoadFile => :pointer,
183
- :SDL_ReadU8 => :uchar,
184
- :SDL_ReadLE16 => :ushort,
185
- :SDL_ReadBE16 => :ushort,
186
- :SDL_ReadLE32 => :uint,
187
- :SDL_ReadBE32 => :uint,
188
- :SDL_ReadLE64 => :ulong_long,
189
- :SDL_ReadBE64 => :ulong_long,
190
- :SDL_WriteU8 => :int,
191
- :SDL_WriteLE16 => :int,
192
- :SDL_WriteBE16 => :int,
193
- :SDL_WriteLE32 => :int,
194
- :SDL_WriteBE32 => :int,
195
- :SDL_WriteLE64 => :int,
196
- :SDL_WriteBE64 => :int,
197
- }
198
- symbols.each do |sym|
199
- begin
200
- attach_function sym, args[sym], retvals[sym]
201
- rescue FFI::NotFoundError => error
202
- $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
203
- end
204
- end
205
- end
206
-
207
- end
208
-
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
+ RWOPS_UNKNOWN = 0
14
+ RWOPS_WINFILE = 1
15
+ RWOPS_STDFILE = 2
16
+ RWOPS_JNIFILE = 3
17
+ RWOPS_MEMORY = 4
18
+ RWOPS_MEMORY_RO = 5
19
+
20
+ # Enum
21
+
22
+
23
+ # Typedef
24
+
25
+
26
+ RW_SEEK_SET = 0
27
+ RW_SEEK_CUR = 1
28
+ RW_SEEK_END = 2
29
+
30
+ class RWops_mem < FFI::Struct
31
+ layout(
32
+ :base, :pointer,
33
+ :here, :pointer,
34
+ :stop, :pointer,
35
+ )
36
+ end
37
+
38
+ class RWops_unknown < FFI::Struct
39
+ layout(
40
+ :data1, :pointer,
41
+ :data2, :pointer,
42
+ )
43
+ end
44
+ class RWops_windowsio_buffer < FFI::Struct
45
+ layout(
46
+ :data, :pointer,
47
+ :size, :size_t,
48
+ :left, :size_t,
49
+ )
50
+ end
51
+
52
+ class RWops_windowsio < FFI::Struct
53
+ layout(
54
+ :append, :int,
55
+ :h, :pointer,
56
+ :buffer, RWops_windowsio_buffer,
57
+ )
58
+ end
59
+
60
+ class Default_RWops_hidden < FFI::Union
61
+ layout(
62
+ :mem, RWops_mem,
63
+ :unknown, RWops_unknown,
64
+ )
65
+ end
66
+
67
+ class Win32_RWops_hidden < FFI::Union
68
+ layout(
69
+ :mem, RWops_mem,
70
+ :unknown, RWops_unknown,
71
+ :windowsio, RWops_windowsio,
72
+ )
73
+ end
74
+
75
+ class Default_RWops < FFI::Struct
76
+ layout(
77
+ :size, :pointer,
78
+ :seek, :pointer,
79
+ :read, :pointer,
80
+ :write, :pointer,
81
+ :close, :pointer,
82
+ :type, :uint,
83
+ :hidden, Default_RWops_hidden,
84
+ )
85
+ end
86
+
87
+ class Win32_RWops < FFI::Struct
88
+ layout(
89
+ :size, :pointer,
90
+ :seek, :pointer,
91
+ :read, :pointer,
92
+ :write, :pointer,
93
+ :close, :pointer,
94
+ :type, :uint,
95
+ :hidden, Win32_RWops_hidden
96
+ )
97
+ end
98
+
99
+ if RUBY_PLATFORM =~ /mswin|msys|mingw|cygwin/
100
+ RWops = Win32_RWops
101
+ else
102
+ RWops = Default_RWops
103
+ end
104
+
105
+
106
+ # Struct
107
+
108
+
109
+ # Function
110
+
111
+ def self.setup_rwops_symbols(output_error = false)
112
+ symbols = [
113
+ :SDL_RWFromFile,
114
+ :SDL_RWFromFP,
115
+ :SDL_RWFromMem,
116
+ :SDL_RWFromConstMem,
117
+ :SDL_AllocRW,
118
+ :SDL_FreeRW,
119
+ :SDL_RWsize,
120
+ :SDL_RWseek,
121
+ :SDL_RWtell,
122
+ :SDL_RWread,
123
+ :SDL_RWwrite,
124
+ :SDL_RWclose,
125
+ :SDL_LoadFile_RW,
126
+ :SDL_LoadFile,
127
+ :SDL_ReadU8,
128
+ :SDL_ReadLE16,
129
+ :SDL_ReadBE16,
130
+ :SDL_ReadLE32,
131
+ :SDL_ReadBE32,
132
+ :SDL_ReadLE64,
133
+ :SDL_ReadBE64,
134
+ :SDL_WriteU8,
135
+ :SDL_WriteLE16,
136
+ :SDL_WriteBE16,
137
+ :SDL_WriteLE32,
138
+ :SDL_WriteBE32,
139
+ :SDL_WriteLE64,
140
+ :SDL_WriteBE64,
141
+ ]
142
+ apis = {
143
+ :SDL_RWFromFile => :RWFromFile,
144
+ :SDL_RWFromFP => :RWFromFP,
145
+ :SDL_RWFromMem => :RWFromMem,
146
+ :SDL_RWFromConstMem => :RWFromConstMem,
147
+ :SDL_AllocRW => :AllocRW,
148
+ :SDL_FreeRW => :FreeRW,
149
+ :SDL_RWsize => :RWsize,
150
+ :SDL_RWseek => :RWseek,
151
+ :SDL_RWtell => :RWtell,
152
+ :SDL_RWread => :RWread,
153
+ :SDL_RWwrite => :RWwrite,
154
+ :SDL_RWclose => :RWclose,
155
+ :SDL_LoadFile_RW => :LoadFile_RW,
156
+ :SDL_LoadFile => :LoadFile,
157
+ :SDL_ReadU8 => :ReadU8,
158
+ :SDL_ReadLE16 => :ReadLE16,
159
+ :SDL_ReadBE16 => :ReadBE16,
160
+ :SDL_ReadLE32 => :ReadLE32,
161
+ :SDL_ReadBE32 => :ReadBE32,
162
+ :SDL_ReadLE64 => :ReadLE64,
163
+ :SDL_ReadBE64 => :ReadBE64,
164
+ :SDL_WriteU8 => :WriteU8,
165
+ :SDL_WriteLE16 => :WriteLE16,
166
+ :SDL_WriteBE16 => :WriteBE16,
167
+ :SDL_WriteLE32 => :WriteLE32,
168
+ :SDL_WriteBE32 => :WriteBE32,
169
+ :SDL_WriteLE64 => :WriteLE64,
170
+ :SDL_WriteBE64 => :WriteBE64,
171
+ }
172
+ args = {
173
+ :SDL_RWFromFile => [:pointer, :pointer],
174
+ :SDL_RWFromFP => [:pointer, :int],
175
+ :SDL_RWFromMem => [:pointer, :int],
176
+ :SDL_RWFromConstMem => [:pointer, :int],
177
+ :SDL_AllocRW => [],
178
+ :SDL_FreeRW => [:pointer],
179
+ :SDL_RWsize => [:pointer],
180
+ :SDL_RWseek => [:pointer, :long_long, :int],
181
+ :SDL_RWtell => [:pointer],
182
+ :SDL_RWread => [:pointer, :pointer, :int, :int],
183
+ :SDL_RWwrite => [:pointer, :pointer, :int, :int],
184
+ :SDL_RWclose => [:pointer],
185
+ :SDL_LoadFile_RW => [:pointer, :pointer, :int],
186
+ :SDL_LoadFile => [:pointer, :pointer],
187
+ :SDL_ReadU8 => [:pointer],
188
+ :SDL_ReadLE16 => [:pointer],
189
+ :SDL_ReadBE16 => [:pointer],
190
+ :SDL_ReadLE32 => [:pointer],
191
+ :SDL_ReadBE32 => [:pointer],
192
+ :SDL_ReadLE64 => [:pointer],
193
+ :SDL_ReadBE64 => [:pointer],
194
+ :SDL_WriteU8 => [:pointer, :uchar],
195
+ :SDL_WriteLE16 => [:pointer, :ushort],
196
+ :SDL_WriteBE16 => [:pointer, :ushort],
197
+ :SDL_WriteLE32 => [:pointer, :uint],
198
+ :SDL_WriteBE32 => [:pointer, :uint],
199
+ :SDL_WriteLE64 => [:pointer, :ulong_long],
200
+ :SDL_WriteBE64 => [:pointer, :ulong_long],
201
+ }
202
+ retvals = {
203
+ :SDL_RWFromFile => :pointer,
204
+ :SDL_RWFromFP => :pointer,
205
+ :SDL_RWFromMem => :pointer,
206
+ :SDL_RWFromConstMem => :pointer,
207
+ :SDL_AllocRW => :pointer,
208
+ :SDL_FreeRW => :void,
209
+ :SDL_RWsize => :long_long,
210
+ :SDL_RWseek => :long_long,
211
+ :SDL_RWtell => :long_long,
212
+ :SDL_RWread => :int,
213
+ :SDL_RWwrite => :int,
214
+ :SDL_RWclose => :int,
215
+ :SDL_LoadFile_RW => :pointer,
216
+ :SDL_LoadFile => :pointer,
217
+ :SDL_ReadU8 => :uchar,
218
+ :SDL_ReadLE16 => :ushort,
219
+ :SDL_ReadBE16 => :ushort,
220
+ :SDL_ReadLE32 => :uint,
221
+ :SDL_ReadBE32 => :uint,
222
+ :SDL_ReadLE64 => :ulong_long,
223
+ :SDL_ReadBE64 => :ulong_long,
224
+ :SDL_WriteU8 => :int,
225
+ :SDL_WriteLE16 => :int,
226
+ :SDL_WriteBE16 => :int,
227
+ :SDL_WriteLE32 => :int,
228
+ :SDL_WriteBE32 => :int,
229
+ :SDL_WriteLE64 => :int,
230
+ :SDL_WriteBE64 => :int,
231
+ }
232
+ symbols.each do |sym|
233
+ begin
234
+ attach_function apis[sym], sym, args[sym], retvals[sym]
235
+ rescue FFI::NotFoundError => error
236
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
237
+ end
238
+ end
239
+ end
240
+
241
+ end
242
+