sdl2-bindings 0.0.0.pre

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.
@@ -0,0 +1,287 @@
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_SCANCODE_UNKNOWN = 0
17
+ SDL_SCANCODE_A = 4
18
+ SDL_SCANCODE_B = 5
19
+ SDL_SCANCODE_C = 6
20
+ SDL_SCANCODE_D = 7
21
+ SDL_SCANCODE_E = 8
22
+ SDL_SCANCODE_F = 9
23
+ SDL_SCANCODE_G = 10
24
+ SDL_SCANCODE_H = 11
25
+ SDL_SCANCODE_I = 12
26
+ SDL_SCANCODE_J = 13
27
+ SDL_SCANCODE_K = 14
28
+ SDL_SCANCODE_L = 15
29
+ SDL_SCANCODE_M = 16
30
+ SDL_SCANCODE_N = 17
31
+ SDL_SCANCODE_O = 18
32
+ SDL_SCANCODE_P = 19
33
+ SDL_SCANCODE_Q = 20
34
+ SDL_SCANCODE_R = 21
35
+ SDL_SCANCODE_S = 22
36
+ SDL_SCANCODE_T = 23
37
+ SDL_SCANCODE_U = 24
38
+ SDL_SCANCODE_V = 25
39
+ SDL_SCANCODE_W = 26
40
+ SDL_SCANCODE_X = 27
41
+ SDL_SCANCODE_Y = 28
42
+ SDL_SCANCODE_Z = 29
43
+ SDL_SCANCODE_1 = 30
44
+ SDL_SCANCODE_2 = 31
45
+ SDL_SCANCODE_3 = 32
46
+ SDL_SCANCODE_4 = 33
47
+ SDL_SCANCODE_5 = 34
48
+ SDL_SCANCODE_6 = 35
49
+ SDL_SCANCODE_7 = 36
50
+ SDL_SCANCODE_8 = 37
51
+ SDL_SCANCODE_9 = 38
52
+ SDL_SCANCODE_0 = 39
53
+ SDL_SCANCODE_RETURN = 40
54
+ SDL_SCANCODE_ESCAPE = 41
55
+ SDL_SCANCODE_BACKSPACE = 42
56
+ SDL_SCANCODE_TAB = 43
57
+ SDL_SCANCODE_SPACE = 44
58
+ SDL_SCANCODE_MINUS = 45
59
+ SDL_SCANCODE_EQUALS = 46
60
+ SDL_SCANCODE_LEFTBRACKET = 47
61
+ SDL_SCANCODE_RIGHTBRACKET = 48
62
+ SDL_SCANCODE_BACKSLASH = 49
63
+ SDL_SCANCODE_NONUSHASH = 50
64
+ SDL_SCANCODE_SEMICOLON = 51
65
+ SDL_SCANCODE_APOSTROPHE = 52
66
+ SDL_SCANCODE_GRAVE = 53
67
+ SDL_SCANCODE_COMMA = 54
68
+ SDL_SCANCODE_PERIOD = 55
69
+ SDL_SCANCODE_SLASH = 56
70
+ SDL_SCANCODE_CAPSLOCK = 57
71
+ SDL_SCANCODE_F1 = 58
72
+ SDL_SCANCODE_F2 = 59
73
+ SDL_SCANCODE_F3 = 60
74
+ SDL_SCANCODE_F4 = 61
75
+ SDL_SCANCODE_F5 = 62
76
+ SDL_SCANCODE_F6 = 63
77
+ SDL_SCANCODE_F7 = 64
78
+ SDL_SCANCODE_F8 = 65
79
+ SDL_SCANCODE_F9 = 66
80
+ SDL_SCANCODE_F10 = 67
81
+ SDL_SCANCODE_F11 = 68
82
+ SDL_SCANCODE_F12 = 69
83
+ SDL_SCANCODE_PRINTSCREEN = 70
84
+ SDL_SCANCODE_SCROLLLOCK = 71
85
+ SDL_SCANCODE_PAUSE = 72
86
+ SDL_SCANCODE_INSERT = 73
87
+ SDL_SCANCODE_HOME = 74
88
+ SDL_SCANCODE_PAGEUP = 75
89
+ SDL_SCANCODE_DELETE = 76
90
+ SDL_SCANCODE_END = 77
91
+ SDL_SCANCODE_PAGEDOWN = 78
92
+ SDL_SCANCODE_RIGHT = 79
93
+ SDL_SCANCODE_LEFT = 80
94
+ SDL_SCANCODE_DOWN = 81
95
+ SDL_SCANCODE_UP = 82
96
+ SDL_SCANCODE_NUMLOCKCLEAR = 83
97
+ SDL_SCANCODE_KP_DIVIDE = 84
98
+ SDL_SCANCODE_KP_MULTIPLY = 85
99
+ SDL_SCANCODE_KP_MINUS = 86
100
+ SDL_SCANCODE_KP_PLUS = 87
101
+ SDL_SCANCODE_KP_ENTER = 88
102
+ SDL_SCANCODE_KP_1 = 89
103
+ SDL_SCANCODE_KP_2 = 90
104
+ SDL_SCANCODE_KP_3 = 91
105
+ SDL_SCANCODE_KP_4 = 92
106
+ SDL_SCANCODE_KP_5 = 93
107
+ SDL_SCANCODE_KP_6 = 94
108
+ SDL_SCANCODE_KP_7 = 95
109
+ SDL_SCANCODE_KP_8 = 96
110
+ SDL_SCANCODE_KP_9 = 97
111
+ SDL_SCANCODE_KP_0 = 98
112
+ SDL_SCANCODE_KP_PERIOD = 99
113
+ SDL_SCANCODE_NONUSBACKSLASH = 100
114
+ SDL_SCANCODE_APPLICATION = 101
115
+ SDL_SCANCODE_POWER = 102
116
+ SDL_SCANCODE_KP_EQUALS = 103
117
+ SDL_SCANCODE_F13 = 104
118
+ SDL_SCANCODE_F14 = 105
119
+ SDL_SCANCODE_F15 = 106
120
+ SDL_SCANCODE_F16 = 107
121
+ SDL_SCANCODE_F17 = 108
122
+ SDL_SCANCODE_F18 = 109
123
+ SDL_SCANCODE_F19 = 110
124
+ SDL_SCANCODE_F20 = 111
125
+ SDL_SCANCODE_F21 = 112
126
+ SDL_SCANCODE_F22 = 113
127
+ SDL_SCANCODE_F23 = 114
128
+ SDL_SCANCODE_F24 = 115
129
+ SDL_SCANCODE_EXECUTE = 116
130
+ SDL_SCANCODE_HELP = 117
131
+ SDL_SCANCODE_MENU = 118
132
+ SDL_SCANCODE_SELECT = 119
133
+ SDL_SCANCODE_STOP = 120
134
+ SDL_SCANCODE_AGAIN = 121
135
+ SDL_SCANCODE_UNDO = 122
136
+ SDL_SCANCODE_CUT = 123
137
+ SDL_SCANCODE_COPY = 124
138
+ SDL_SCANCODE_PASTE = 125
139
+ SDL_SCANCODE_FIND = 126
140
+ SDL_SCANCODE_MUTE = 127
141
+ SDL_SCANCODE_VOLUMEUP = 128
142
+ SDL_SCANCODE_VOLUMEDOWN = 129
143
+ SDL_SCANCODE_KP_COMMA = 133
144
+ SDL_SCANCODE_KP_EQUALSAS400 = 134
145
+ SDL_SCANCODE_INTERNATIONAL1 = 135
146
+ SDL_SCANCODE_INTERNATIONAL2 = 136
147
+ SDL_SCANCODE_INTERNATIONAL3 = 137
148
+ SDL_SCANCODE_INTERNATIONAL4 = 138
149
+ SDL_SCANCODE_INTERNATIONAL5 = 139
150
+ SDL_SCANCODE_INTERNATIONAL6 = 140
151
+ SDL_SCANCODE_INTERNATIONAL7 = 141
152
+ SDL_SCANCODE_INTERNATIONAL8 = 142
153
+ SDL_SCANCODE_INTERNATIONAL9 = 143
154
+ SDL_SCANCODE_LANG1 = 144
155
+ SDL_SCANCODE_LANG2 = 145
156
+ SDL_SCANCODE_LANG3 = 146
157
+ SDL_SCANCODE_LANG4 = 147
158
+ SDL_SCANCODE_LANG5 = 148
159
+ SDL_SCANCODE_LANG6 = 149
160
+ SDL_SCANCODE_LANG7 = 150
161
+ SDL_SCANCODE_LANG8 = 151
162
+ SDL_SCANCODE_LANG9 = 152
163
+ SDL_SCANCODE_ALTERASE = 153
164
+ SDL_SCANCODE_SYSREQ = 154
165
+ SDL_SCANCODE_CANCEL = 155
166
+ SDL_SCANCODE_CLEAR = 156
167
+ SDL_SCANCODE_PRIOR = 157
168
+ SDL_SCANCODE_RETURN2 = 158
169
+ SDL_SCANCODE_SEPARATOR = 159
170
+ SDL_SCANCODE_OUT = 160
171
+ SDL_SCANCODE_OPER = 161
172
+ SDL_SCANCODE_CLEARAGAIN = 162
173
+ SDL_SCANCODE_CRSEL = 163
174
+ SDL_SCANCODE_EXSEL = 164
175
+ SDL_SCANCODE_KP_00 = 176
176
+ SDL_SCANCODE_KP_000 = 177
177
+ SDL_SCANCODE_THOUSANDSSEPARATOR = 178
178
+ SDL_SCANCODE_DECIMALSEPARATOR = 179
179
+ SDL_SCANCODE_CURRENCYUNIT = 180
180
+ SDL_SCANCODE_CURRENCYSUBUNIT = 181
181
+ SDL_SCANCODE_KP_LEFTPAREN = 182
182
+ SDL_SCANCODE_KP_RIGHTPAREN = 183
183
+ SDL_SCANCODE_KP_LEFTBRACE = 184
184
+ SDL_SCANCODE_KP_RIGHTBRACE = 185
185
+ SDL_SCANCODE_KP_TAB = 186
186
+ SDL_SCANCODE_KP_BACKSPACE = 187
187
+ SDL_SCANCODE_KP_A = 188
188
+ SDL_SCANCODE_KP_B = 189
189
+ SDL_SCANCODE_KP_C = 190
190
+ SDL_SCANCODE_KP_D = 191
191
+ SDL_SCANCODE_KP_E = 192
192
+ SDL_SCANCODE_KP_F = 193
193
+ SDL_SCANCODE_KP_XOR = 194
194
+ SDL_SCANCODE_KP_POWER = 195
195
+ SDL_SCANCODE_KP_PERCENT = 196
196
+ SDL_SCANCODE_KP_LESS = 197
197
+ SDL_SCANCODE_KP_GREATER = 198
198
+ SDL_SCANCODE_KP_AMPERSAND = 199
199
+ SDL_SCANCODE_KP_DBLAMPERSAND = 200
200
+ SDL_SCANCODE_KP_VERTICALBAR = 201
201
+ SDL_SCANCODE_KP_DBLVERTICALBAR = 202
202
+ SDL_SCANCODE_KP_COLON = 203
203
+ SDL_SCANCODE_KP_HASH = 204
204
+ SDL_SCANCODE_KP_SPACE = 205
205
+ SDL_SCANCODE_KP_AT = 206
206
+ SDL_SCANCODE_KP_EXCLAM = 207
207
+ SDL_SCANCODE_KP_MEMSTORE = 208
208
+ SDL_SCANCODE_KP_MEMRECALL = 209
209
+ SDL_SCANCODE_KP_MEMCLEAR = 210
210
+ SDL_SCANCODE_KP_MEMADD = 211
211
+ SDL_SCANCODE_KP_MEMSUBTRACT = 212
212
+ SDL_SCANCODE_KP_MEMMULTIPLY = 213
213
+ SDL_SCANCODE_KP_MEMDIVIDE = 214
214
+ SDL_SCANCODE_KP_PLUSMINUS = 215
215
+ SDL_SCANCODE_KP_CLEAR = 216
216
+ SDL_SCANCODE_KP_CLEARENTRY = 217
217
+ SDL_SCANCODE_KP_BINARY = 218
218
+ SDL_SCANCODE_KP_OCTAL = 219
219
+ SDL_SCANCODE_KP_DECIMAL = 220
220
+ SDL_SCANCODE_KP_HEXADECIMAL = 221
221
+ SDL_SCANCODE_LCTRL = 224
222
+ SDL_SCANCODE_LSHIFT = 225
223
+ SDL_SCANCODE_LALT = 226
224
+ SDL_SCANCODE_LGUI = 227
225
+ SDL_SCANCODE_RCTRL = 228
226
+ SDL_SCANCODE_RSHIFT = 229
227
+ SDL_SCANCODE_RALT = 230
228
+ SDL_SCANCODE_RGUI = 231
229
+ SDL_SCANCODE_MODE = 257
230
+ SDL_SCANCODE_AUDIONEXT = 258
231
+ SDL_SCANCODE_AUDIOPREV = 259
232
+ SDL_SCANCODE_AUDIOSTOP = 260
233
+ SDL_SCANCODE_AUDIOPLAY = 261
234
+ SDL_SCANCODE_AUDIOMUTE = 262
235
+ SDL_SCANCODE_MEDIASELECT = 263
236
+ SDL_SCANCODE_WWW = 264
237
+ SDL_SCANCODE_MAIL = 265
238
+ SDL_SCANCODE_CALCULATOR = 266
239
+ SDL_SCANCODE_COMPUTER = 267
240
+ SDL_SCANCODE_AC_SEARCH = 268
241
+ SDL_SCANCODE_AC_HOME = 269
242
+ SDL_SCANCODE_AC_BACK = 270
243
+ SDL_SCANCODE_AC_FORWARD = 271
244
+ SDL_SCANCODE_AC_STOP = 272
245
+ SDL_SCANCODE_AC_REFRESH = 273
246
+ SDL_SCANCODE_AC_BOOKMARKS = 274
247
+ SDL_SCANCODE_BRIGHTNESSDOWN = 275
248
+ SDL_SCANCODE_BRIGHTNESSUP = 276
249
+ SDL_SCANCODE_DISPLAYSWITCH = 277
250
+ SDL_SCANCODE_KBDILLUMTOGGLE = 278
251
+ SDL_SCANCODE_KBDILLUMDOWN = 279
252
+ SDL_SCANCODE_KBDILLUMUP = 280
253
+ SDL_SCANCODE_EJECT = 281
254
+ SDL_SCANCODE_SLEEP = 282
255
+ SDL_SCANCODE_APP1 = 283
256
+ SDL_SCANCODE_APP2 = 284
257
+ SDL_SCANCODE_AUDIOREWIND = 285
258
+ SDL_SCANCODE_AUDIOFASTFORWARD = 286
259
+ SDL_NUM_SCANCODES = 512
260
+
261
+ # Typedef
262
+
263
+ typedef :int, :SDL_Scancode
264
+
265
+ # Struct
266
+
267
+
268
+ # Function
269
+
270
+ def self.setup_scancode_symbols()
271
+ symbols = [
272
+ ]
273
+ args = {
274
+ }
275
+ retvals = {
276
+ }
277
+ symbols.each do |sym|
278
+ begin
279
+ attach_function sym, args[sym], retvals[sym]
280
+ rescue FFI::NotFoundError => error
281
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
282
+ end
283
+ end
284
+ end
285
+
286
+ end
287
+
@@ -0,0 +1,77 @@
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
+ require_relative 'sdl2_pixels'
9
+
10
+ module SDL2
11
+ extend FFI::Library
12
+ # Define/Macro
13
+
14
+ SDL_NONSHAPEABLE_WINDOW = -1
15
+ SDL_INVALID_SHAPE_ARGUMENT = -2
16
+ SDL_WINDOW_LACKS_SHAPE = -3
17
+
18
+ # Enum
19
+
20
+ ShapeModeDefault = 0
21
+ ShapeModeBinarizeAlpha = 1
22
+ ShapeModeReverseBinarizeAlpha = 2
23
+ ShapeModeColorKey = 3
24
+
25
+ # Typedef
26
+
27
+ typedef :int, :WindowShapeMode
28
+
29
+ # Struct
30
+
31
+ class SDL_WindowShapeParams < FFI::Union
32
+ layout(
33
+ :binarizationCutoff, :uchar,
34
+ :colorKey, SDL_Color,
35
+ )
36
+ end
37
+
38
+ class SDL_WindowShapeMode < FFI::Struct
39
+ layout(
40
+ :mode, :int,
41
+ :parameters, SDL_WindowShapeParams,
42
+ )
43
+ end
44
+
45
+
46
+ # Function
47
+
48
+ def self.setup_shape_symbols()
49
+ symbols = [
50
+ :SDL_CreateShapedWindow,
51
+ :SDL_IsShapedWindow,
52
+ :SDL_SetWindowShape,
53
+ :SDL_GetShapedWindowMode,
54
+ ]
55
+ args = {
56
+ :SDL_CreateShapedWindow => [:pointer, :uint, :uint, :uint, :uint, :uint],
57
+ :SDL_IsShapedWindow => [:pointer],
58
+ :SDL_SetWindowShape => [:pointer, :pointer, :pointer],
59
+ :SDL_GetShapedWindowMode => [:pointer, :pointer],
60
+ }
61
+ retvals = {
62
+ :SDL_CreateShapedWindow => :pointer,
63
+ :SDL_IsShapedWindow => :int,
64
+ :SDL_SetWindowShape => :int,
65
+ :SDL_GetShapedWindowMode => :int,
66
+ }
67
+ symbols.each do |sym|
68
+ begin
69
+ attach_function sym, args[sym], retvals[sym]
70
+ rescue FFI::NotFoundError => error
71
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
72
+ end
73
+ end
74
+ end
75
+
76
+ end
77
+
@@ -0,0 +1,179 @@
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
+ require_relative 'sdl2_rect'
9
+
10
+ module SDL2
11
+ extend FFI::Library
12
+ # Define/Macro
13
+
14
+ SDL_SWSURFACE = 0
15
+ SDL_PREALLOC = 0x00000001
16
+ SDL_RLEACCEL = 0x00000002
17
+ SDL_DONTFREE = 0x00000004
18
+ SDL_SIMD_ALIGNED = 0x00000008
19
+
20
+ # Enum
21
+
22
+ SDL_YUV_CONVERSION_JPEG = 0
23
+ SDL_YUV_CONVERSION_BT601 = 1
24
+ SDL_YUV_CONVERSION_BT709 = 2
25
+ SDL_YUV_CONVERSION_AUTOMATIC = 3
26
+
27
+ # Typedef
28
+
29
+ callback :SDL_blit, [:pointer, :pointer, :pointer, :pointer], :int
30
+ typedef :int, :SDL_YUV_CONVERSION_MODE
31
+
32
+ # Struct
33
+
34
+ class SDL_Surface < FFI::Struct
35
+ layout(
36
+ :flags, :uint,
37
+ :format, :pointer,
38
+ :w, :int,
39
+ :h, :int,
40
+ :pitch, :int,
41
+ :pixels, :pointer,
42
+ :userdata, :pointer,
43
+ :locked, :int,
44
+ :lock_data, :pointer,
45
+ :clip_rect, SDL_Rect,
46
+ :map, :pointer,
47
+ :refcount, :int,
48
+ )
49
+ end
50
+
51
+
52
+ # Function
53
+
54
+ def self.setup_surface_symbols()
55
+ symbols = [
56
+ :SDL_CreateRGBSurface,
57
+ :SDL_CreateRGBSurfaceWithFormat,
58
+ :SDL_CreateRGBSurfaceFrom,
59
+ :SDL_CreateRGBSurfaceWithFormatFrom,
60
+ :SDL_FreeSurface,
61
+ :SDL_SetSurfacePalette,
62
+ :SDL_LockSurface,
63
+ :SDL_UnlockSurface,
64
+ :SDL_LoadBMP_RW,
65
+ :SDL_SaveBMP_RW,
66
+ :SDL_SetSurfaceRLE,
67
+ :SDL_SetColorKey,
68
+ :SDL_HasColorKey,
69
+ :SDL_GetColorKey,
70
+ :SDL_SetSurfaceColorMod,
71
+ :SDL_GetSurfaceColorMod,
72
+ :SDL_SetSurfaceAlphaMod,
73
+ :SDL_GetSurfaceAlphaMod,
74
+ :SDL_SetSurfaceBlendMode,
75
+ :SDL_GetSurfaceBlendMode,
76
+ :SDL_SetClipRect,
77
+ :SDL_GetClipRect,
78
+ :SDL_DuplicateSurface,
79
+ :SDL_ConvertSurface,
80
+ :SDL_ConvertSurfaceFormat,
81
+ :SDL_ConvertPixels,
82
+ :SDL_FillRect,
83
+ :SDL_FillRects,
84
+ :SDL_UpperBlit,
85
+ :SDL_LowerBlit,
86
+ :SDL_SoftStretch,
87
+ :SDL_UpperBlitScaled,
88
+ :SDL_LowerBlitScaled,
89
+ :SDL_SetYUVConversionMode,
90
+ :SDL_GetYUVConversionMode,
91
+ :SDL_GetYUVConversionModeForResolution,
92
+ ]
93
+ args = {
94
+ :SDL_CreateRGBSurface => [:uint, :int, :int, :int, :uint, :uint, :uint, :uint],
95
+ :SDL_CreateRGBSurfaceWithFormat => [:uint, :int, :int, :int, :uint],
96
+ :SDL_CreateRGBSurfaceFrom => [:pointer, :int, :int, :int, :int, :uint, :uint, :uint, :uint],
97
+ :SDL_CreateRGBSurfaceWithFormatFrom => [:pointer, :int, :int, :int, :int, :uint],
98
+ :SDL_FreeSurface => [:pointer],
99
+ :SDL_SetSurfacePalette => [:pointer, :pointer],
100
+ :SDL_LockSurface => [:pointer],
101
+ :SDL_UnlockSurface => [:pointer],
102
+ :SDL_LoadBMP_RW => [:pointer, :int],
103
+ :SDL_SaveBMP_RW => [:pointer, :pointer, :int],
104
+ :SDL_SetSurfaceRLE => [:pointer, :int],
105
+ :SDL_SetColorKey => [:pointer, :int, :uint],
106
+ :SDL_HasColorKey => [:pointer],
107
+ :SDL_GetColorKey => [:pointer, :pointer],
108
+ :SDL_SetSurfaceColorMod => [:pointer, :uchar, :uchar, :uchar],
109
+ :SDL_GetSurfaceColorMod => [:pointer, :pointer, :pointer, :pointer],
110
+ :SDL_SetSurfaceAlphaMod => [:pointer, :uchar],
111
+ :SDL_GetSurfaceAlphaMod => [:pointer, :pointer],
112
+ :SDL_SetSurfaceBlendMode => [:pointer, :int],
113
+ :SDL_GetSurfaceBlendMode => [:pointer, :pointer],
114
+ :SDL_SetClipRect => [:pointer, :pointer],
115
+ :SDL_GetClipRect => [:pointer, :pointer],
116
+ :SDL_DuplicateSurface => [:pointer],
117
+ :SDL_ConvertSurface => [:pointer, :pointer, :uint],
118
+ :SDL_ConvertSurfaceFormat => [:pointer, :uint, :uint],
119
+ :SDL_ConvertPixels => [:int, :int, :uint, :pointer, :int, :uint, :pointer, :int],
120
+ :SDL_FillRect => [:pointer, :pointer, :uint],
121
+ :SDL_FillRects => [:pointer, :pointer, :int, :uint],
122
+ :SDL_UpperBlit => [:pointer, :pointer, :pointer, :pointer],
123
+ :SDL_LowerBlit => [:pointer, :pointer, :pointer, :pointer],
124
+ :SDL_SoftStretch => [:pointer, :pointer, :pointer, :pointer],
125
+ :SDL_UpperBlitScaled => [:pointer, :pointer, :pointer, :pointer],
126
+ :SDL_LowerBlitScaled => [:pointer, :pointer, :pointer, :pointer],
127
+ :SDL_SetYUVConversionMode => [:int],
128
+ :SDL_GetYUVConversionMode => [],
129
+ :SDL_GetYUVConversionModeForResolution => [:int, :int],
130
+ }
131
+ retvals = {
132
+ :SDL_CreateRGBSurface => :pointer,
133
+ :SDL_CreateRGBSurfaceWithFormat => :pointer,
134
+ :SDL_CreateRGBSurfaceFrom => :pointer,
135
+ :SDL_CreateRGBSurfaceWithFormatFrom => :pointer,
136
+ :SDL_FreeSurface => :void,
137
+ :SDL_SetSurfacePalette => :int,
138
+ :SDL_LockSurface => :int,
139
+ :SDL_UnlockSurface => :void,
140
+ :SDL_LoadBMP_RW => :pointer,
141
+ :SDL_SaveBMP_RW => :int,
142
+ :SDL_SetSurfaceRLE => :int,
143
+ :SDL_SetColorKey => :int,
144
+ :SDL_HasColorKey => :int,
145
+ :SDL_GetColorKey => :int,
146
+ :SDL_SetSurfaceColorMod => :int,
147
+ :SDL_GetSurfaceColorMod => :int,
148
+ :SDL_SetSurfaceAlphaMod => :int,
149
+ :SDL_GetSurfaceAlphaMod => :int,
150
+ :SDL_SetSurfaceBlendMode => :int,
151
+ :SDL_GetSurfaceBlendMode => :int,
152
+ :SDL_SetClipRect => :int,
153
+ :SDL_GetClipRect => :void,
154
+ :SDL_DuplicateSurface => :pointer,
155
+ :SDL_ConvertSurface => :pointer,
156
+ :SDL_ConvertSurfaceFormat => :pointer,
157
+ :SDL_ConvertPixels => :int,
158
+ :SDL_FillRect => :int,
159
+ :SDL_FillRects => :int,
160
+ :SDL_UpperBlit => :int,
161
+ :SDL_LowerBlit => :int,
162
+ :SDL_SoftStretch => :int,
163
+ :SDL_UpperBlitScaled => :int,
164
+ :SDL_LowerBlitScaled => :int,
165
+ :SDL_SetYUVConversionMode => :void,
166
+ :SDL_GetYUVConversionMode => :int,
167
+ :SDL_GetYUVConversionModeForResolution => :int,
168
+ }
169
+ symbols.each do |sym|
170
+ begin
171
+ attach_function sym, args[sym], retvals[sym]
172
+ rescue FFI::NotFoundError => error
173
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
174
+ end
175
+ end
176
+ end
177
+
178
+ end
179
+