sdl2-bindings 0.0.0.pre

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,277 @@
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
+ SDL_RENDERER_SOFTWARE = 1
17
+ SDL_RENDERER_ACCELERATED = 2
18
+ SDL_RENDERER_PRESENTVSYNC = 4
19
+ SDL_RENDERER_TARGETTEXTURE = 8
20
+ SDL_TEXTUREACCESS_STATIC = 0
21
+ SDL_TEXTUREACCESS_STREAMING = 1
22
+ SDL_TEXTUREACCESS_TARGET = 2
23
+ SDL_TEXTUREMODULATE_NONE = 0
24
+ SDL_TEXTUREMODULATE_COLOR = 1
25
+ SDL_TEXTUREMODULATE_ALPHA = 2
26
+ SDL_FLIP_NONE = 0
27
+ SDL_FLIP_HORIZONTAL = 1
28
+ SDL_FLIP_VERTICAL = 2
29
+
30
+ # Typedef
31
+
32
+ typedef :int, :SDL_RendererFlags
33
+ typedef :int, :SDL_TextureAccess
34
+ typedef :int, :SDL_TextureModulate
35
+ typedef :int, :SDL_RendererFlip
36
+
37
+ # Struct
38
+
39
+ class SDL_RendererInfo < FFI::Struct
40
+ layout(
41
+ :name, :pointer,
42
+ :flags, :uint,
43
+ :num_texture_formats, :uint,
44
+ :texture_formats, [:uint, 16],
45
+ :max_texture_width, :int,
46
+ :max_texture_height, :int,
47
+ )
48
+ end
49
+
50
+
51
+ # Function
52
+
53
+ def self.setup_render_symbols()
54
+ symbols = [
55
+ :SDL_GetNumRenderDrivers,
56
+ :SDL_GetRenderDriverInfo,
57
+ :SDL_CreateWindowAndRenderer,
58
+ :SDL_CreateRenderer,
59
+ :SDL_CreateSoftwareRenderer,
60
+ :SDL_GetRenderer,
61
+ :SDL_GetRendererInfo,
62
+ :SDL_GetRendererOutputSize,
63
+ :SDL_CreateTexture,
64
+ :SDL_CreateTextureFromSurface,
65
+ :SDL_QueryTexture,
66
+ :SDL_SetTextureColorMod,
67
+ :SDL_GetTextureColorMod,
68
+ :SDL_SetTextureAlphaMod,
69
+ :SDL_GetTextureAlphaMod,
70
+ :SDL_SetTextureBlendMode,
71
+ :SDL_GetTextureBlendMode,
72
+ :SDL_UpdateTexture,
73
+ :SDL_UpdateYUVTexture,
74
+ :SDL_LockTexture,
75
+ :SDL_UnlockTexture,
76
+ :SDL_RenderTargetSupported,
77
+ :SDL_SetRenderTarget,
78
+ :SDL_GetRenderTarget,
79
+ :SDL_RenderSetLogicalSize,
80
+ :SDL_RenderGetLogicalSize,
81
+ :SDL_RenderSetIntegerScale,
82
+ :SDL_RenderGetIntegerScale,
83
+ :SDL_RenderSetViewport,
84
+ :SDL_RenderGetViewport,
85
+ :SDL_RenderSetClipRect,
86
+ :SDL_RenderGetClipRect,
87
+ :SDL_RenderIsClipEnabled,
88
+ :SDL_RenderSetScale,
89
+ :SDL_RenderGetScale,
90
+ :SDL_SetRenderDrawColor,
91
+ :SDL_GetRenderDrawColor,
92
+ :SDL_SetRenderDrawBlendMode,
93
+ :SDL_GetRenderDrawBlendMode,
94
+ :SDL_RenderClear,
95
+ :SDL_RenderDrawPoint,
96
+ :SDL_RenderDrawPoints,
97
+ :SDL_RenderDrawLine,
98
+ :SDL_RenderDrawLines,
99
+ :SDL_RenderDrawRect,
100
+ :SDL_RenderDrawRects,
101
+ :SDL_RenderFillRect,
102
+ :SDL_RenderFillRects,
103
+ :SDL_RenderCopy,
104
+ :SDL_RenderCopyEx,
105
+ :SDL_RenderDrawPointF,
106
+ :SDL_RenderDrawPointsF,
107
+ :SDL_RenderDrawLineF,
108
+ :SDL_RenderDrawLinesF,
109
+ :SDL_RenderDrawRectF,
110
+ :SDL_RenderDrawRectsF,
111
+ :SDL_RenderFillRectF,
112
+ :SDL_RenderFillRectsF,
113
+ :SDL_RenderCopyF,
114
+ :SDL_RenderCopyExF,
115
+ :SDL_RenderReadPixels,
116
+ :SDL_RenderPresent,
117
+ :SDL_DestroyTexture,
118
+ :SDL_DestroyRenderer,
119
+ :SDL_RenderFlush,
120
+ :SDL_GL_BindTexture,
121
+ :SDL_GL_UnbindTexture,
122
+ :SDL_RenderGetMetalLayer,
123
+ :SDL_RenderGetMetalCommandEncoder,
124
+ ]
125
+ args = {
126
+ :SDL_GetNumRenderDrivers => [],
127
+ :SDL_GetRenderDriverInfo => [:int, :pointer],
128
+ :SDL_CreateWindowAndRenderer => [:int, :int, :uint, :pointer, :pointer],
129
+ :SDL_CreateRenderer => [:pointer, :int, :uint],
130
+ :SDL_CreateSoftwareRenderer => [:pointer],
131
+ :SDL_GetRenderer => [:pointer],
132
+ :SDL_GetRendererInfo => [:pointer, :pointer],
133
+ :SDL_GetRendererOutputSize => [:pointer, :pointer, :pointer],
134
+ :SDL_CreateTexture => [:pointer, :uint, :int, :int, :int],
135
+ :SDL_CreateTextureFromSurface => [:pointer, :pointer],
136
+ :SDL_QueryTexture => [:pointer, :pointer, :pointer, :pointer, :pointer],
137
+ :SDL_SetTextureColorMod => [:pointer, :uchar, :uchar, :uchar],
138
+ :SDL_GetTextureColorMod => [:pointer, :pointer, :pointer, :pointer],
139
+ :SDL_SetTextureAlphaMod => [:pointer, :uchar],
140
+ :SDL_GetTextureAlphaMod => [:pointer, :pointer],
141
+ :SDL_SetTextureBlendMode => [:pointer, :int],
142
+ :SDL_GetTextureBlendMode => [:pointer, :pointer],
143
+ :SDL_UpdateTexture => [:pointer, :pointer, :pointer, :int],
144
+ :SDL_UpdateYUVTexture => [:pointer, :pointer, :pointer, :int, :pointer, :int, :pointer, :int],
145
+ :SDL_LockTexture => [:pointer, :pointer, :pointer, :pointer],
146
+ :SDL_UnlockTexture => [:pointer],
147
+ :SDL_RenderTargetSupported => [:pointer],
148
+ :SDL_SetRenderTarget => [:pointer, :pointer],
149
+ :SDL_GetRenderTarget => [:pointer],
150
+ :SDL_RenderSetLogicalSize => [:pointer, :int, :int],
151
+ :SDL_RenderGetLogicalSize => [:pointer, :pointer, :pointer],
152
+ :SDL_RenderSetIntegerScale => [:pointer, :int],
153
+ :SDL_RenderGetIntegerScale => [:pointer],
154
+ :SDL_RenderSetViewport => [:pointer, :pointer],
155
+ :SDL_RenderGetViewport => [:pointer, :pointer],
156
+ :SDL_RenderSetClipRect => [:pointer, :pointer],
157
+ :SDL_RenderGetClipRect => [:pointer, :pointer],
158
+ :SDL_RenderIsClipEnabled => [:pointer],
159
+ :SDL_RenderSetScale => [:pointer, :float, :float],
160
+ :SDL_RenderGetScale => [:pointer, :pointer, :pointer],
161
+ :SDL_SetRenderDrawColor => [:pointer, :uchar, :uchar, :uchar, :uchar],
162
+ :SDL_GetRenderDrawColor => [:pointer, :pointer, :pointer, :pointer, :pointer],
163
+ :SDL_SetRenderDrawBlendMode => [:pointer, :int],
164
+ :SDL_GetRenderDrawBlendMode => [:pointer, :pointer],
165
+ :SDL_RenderClear => [:pointer],
166
+ :SDL_RenderDrawPoint => [:pointer, :int, :int],
167
+ :SDL_RenderDrawPoints => [:pointer, :pointer, :int],
168
+ :SDL_RenderDrawLine => [:pointer, :int, :int, :int, :int],
169
+ :SDL_RenderDrawLines => [:pointer, :pointer, :int],
170
+ :SDL_RenderDrawRect => [:pointer, :pointer],
171
+ :SDL_RenderDrawRects => [:pointer, :pointer, :int],
172
+ :SDL_RenderFillRect => [:pointer, :pointer],
173
+ :SDL_RenderFillRects => [:pointer, :pointer, :int],
174
+ :SDL_RenderCopy => [:pointer, :pointer, :pointer, :pointer],
175
+ :SDL_RenderCopyEx => [:pointer, :pointer, :pointer, :pointer, :double, :pointer, :int],
176
+ :SDL_RenderDrawPointF => [:pointer, :float, :float],
177
+ :SDL_RenderDrawPointsF => [:pointer, :pointer, :int],
178
+ :SDL_RenderDrawLineF => [:pointer, :float, :float, :float, :float],
179
+ :SDL_RenderDrawLinesF => [:pointer, :pointer, :int],
180
+ :SDL_RenderDrawRectF => [:pointer, :pointer],
181
+ :SDL_RenderDrawRectsF => [:pointer, :pointer, :int],
182
+ :SDL_RenderFillRectF => [:pointer, :pointer],
183
+ :SDL_RenderFillRectsF => [:pointer, :pointer, :int],
184
+ :SDL_RenderCopyF => [:pointer, :pointer, :pointer, :pointer],
185
+ :SDL_RenderCopyExF => [:pointer, :pointer, :pointer, :pointer, :double, :pointer, :int],
186
+ :SDL_RenderReadPixels => [:pointer, :pointer, :uint, :pointer, :int],
187
+ :SDL_RenderPresent => [:pointer],
188
+ :SDL_DestroyTexture => [:pointer],
189
+ :SDL_DestroyRenderer => [:pointer],
190
+ :SDL_RenderFlush => [:pointer],
191
+ :SDL_GL_BindTexture => [:pointer, :pointer, :pointer],
192
+ :SDL_GL_UnbindTexture => [:pointer],
193
+ :SDL_RenderGetMetalLayer => [:pointer],
194
+ :SDL_RenderGetMetalCommandEncoder => [:pointer],
195
+ }
196
+ retvals = {
197
+ :SDL_GetNumRenderDrivers => :int,
198
+ :SDL_GetRenderDriverInfo => :int,
199
+ :SDL_CreateWindowAndRenderer => :int,
200
+ :SDL_CreateRenderer => :pointer,
201
+ :SDL_CreateSoftwareRenderer => :pointer,
202
+ :SDL_GetRenderer => :pointer,
203
+ :SDL_GetRendererInfo => :int,
204
+ :SDL_GetRendererOutputSize => :int,
205
+ :SDL_CreateTexture => :pointer,
206
+ :SDL_CreateTextureFromSurface => :pointer,
207
+ :SDL_QueryTexture => :int,
208
+ :SDL_SetTextureColorMod => :int,
209
+ :SDL_GetTextureColorMod => :int,
210
+ :SDL_SetTextureAlphaMod => :int,
211
+ :SDL_GetTextureAlphaMod => :int,
212
+ :SDL_SetTextureBlendMode => :int,
213
+ :SDL_GetTextureBlendMode => :int,
214
+ :SDL_UpdateTexture => :int,
215
+ :SDL_UpdateYUVTexture => :int,
216
+ :SDL_LockTexture => :int,
217
+ :SDL_UnlockTexture => :void,
218
+ :SDL_RenderTargetSupported => :int,
219
+ :SDL_SetRenderTarget => :int,
220
+ :SDL_GetRenderTarget => :pointer,
221
+ :SDL_RenderSetLogicalSize => :int,
222
+ :SDL_RenderGetLogicalSize => :void,
223
+ :SDL_RenderSetIntegerScale => :int,
224
+ :SDL_RenderGetIntegerScale => :int,
225
+ :SDL_RenderSetViewport => :int,
226
+ :SDL_RenderGetViewport => :void,
227
+ :SDL_RenderSetClipRect => :int,
228
+ :SDL_RenderGetClipRect => :void,
229
+ :SDL_RenderIsClipEnabled => :int,
230
+ :SDL_RenderSetScale => :int,
231
+ :SDL_RenderGetScale => :void,
232
+ :SDL_SetRenderDrawColor => :int,
233
+ :SDL_GetRenderDrawColor => :int,
234
+ :SDL_SetRenderDrawBlendMode => :int,
235
+ :SDL_GetRenderDrawBlendMode => :int,
236
+ :SDL_RenderClear => :int,
237
+ :SDL_RenderDrawPoint => :int,
238
+ :SDL_RenderDrawPoints => :int,
239
+ :SDL_RenderDrawLine => :int,
240
+ :SDL_RenderDrawLines => :int,
241
+ :SDL_RenderDrawRect => :int,
242
+ :SDL_RenderDrawRects => :int,
243
+ :SDL_RenderFillRect => :int,
244
+ :SDL_RenderFillRects => :int,
245
+ :SDL_RenderCopy => :int,
246
+ :SDL_RenderCopyEx => :int,
247
+ :SDL_RenderDrawPointF => :int,
248
+ :SDL_RenderDrawPointsF => :int,
249
+ :SDL_RenderDrawLineF => :int,
250
+ :SDL_RenderDrawLinesF => :int,
251
+ :SDL_RenderDrawRectF => :int,
252
+ :SDL_RenderDrawRectsF => :int,
253
+ :SDL_RenderFillRectF => :int,
254
+ :SDL_RenderFillRectsF => :int,
255
+ :SDL_RenderCopyF => :int,
256
+ :SDL_RenderCopyExF => :int,
257
+ :SDL_RenderReadPixels => :int,
258
+ :SDL_RenderPresent => :void,
259
+ :SDL_DestroyTexture => :void,
260
+ :SDL_DestroyRenderer => :void,
261
+ :SDL_RenderFlush => :int,
262
+ :SDL_GL_BindTexture => :int,
263
+ :SDL_GL_UnbindTexture => :int,
264
+ :SDL_RenderGetMetalLayer => :pointer,
265
+ :SDL_RenderGetMetalCommandEncoder => :pointer,
266
+ }
267
+ symbols.each do |sym|
268
+ begin
269
+ attach_function sym, args[sym], retvals[sym]
270
+ rescue FFI::NotFoundError => error
271
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
272
+ end
273
+ end
274
+ end
275
+
276
+ end
277
+
@@ -0,0 +1,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 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
+
@@ -0,0 +1,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 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, :ulong, :ulong],
149
+ :SDL_RWwrite => [:pointer, :pointer, :ulong, :ulong],
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 => :size_t,
179
+ :SDL_RWwrite => :size_t,
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 => :size_t,
191
+ :SDL_WriteLE16 => :size_t,
192
+ :SDL_WriteBE16 => :size_t,
193
+ :SDL_WriteLE32 => :size_t,
194
+ :SDL_WriteBE32 => :size_t,
195
+ :SDL_WriteLE64 => :size_t,
196
+ :SDL_WriteBE64 => :size_t,
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
+