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,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
+