sdl2-bindings 0.0.6 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ChangeLog +25 -0
- data/LICENSE.txt +1 -1
- data/README.md +38 -19
- data/lib/sdl2.rb +56 -99
- data/lib/sdl2_audio.rb +62 -20
- data/lib/sdl2_blendmode.rb +28 -25
- data/lib/sdl2_clipboard.rb +9 -4
- data/lib/sdl2_cpuinfo.rb +31 -8
- data/lib/sdl2_error.rb +17 -10
- data/lib/sdl2_events.rb +152 -130
- data/lib/sdl2_filesystem.rb +8 -4
- data/lib/sdl2_framerate.rb +11 -4
- data/lib/sdl2_gamecontroller.rb +130 -55
- data/lib/sdl2_gesture.rb +10 -4
- data/lib/sdl2_gfxPrimitives.rb +65 -4
- data/lib/sdl2_haptic.rb +76 -44
- data/lib/sdl2_hidapi.rb +139 -0
- data/lib/sdl2_hints.rb +146 -113
- data/lib/sdl2_image.rb +54 -7
- data/lib/sdl2_imageFilter.rb +36 -4
- data/lib/sdl2_joystick.rb +102 -38
- data/lib/sdl2_keyboard.rb +23 -5
- data/lib/sdl2_keycode.rb +8 -5
- data/lib/sdl2_log.rb +48 -32
- data/lib/sdl2_main.rb +21 -14
- data/lib/sdl2_messagebox.rb +26 -22
- data/lib/sdl2_misc.rb +48 -0
- data/lib/sdl2_mixer.rb +86 -11
- data/lib/sdl2_mouse.rb +44 -25
- data/lib/sdl2_pixels.rb +115 -99
- data/lib/sdl2_platform.rb +7 -4
- data/lib/sdl2_power.rb +12 -9
- data/lib/sdl2_rect.rb +18 -11
- data/lib/sdl2_render.rb +135 -21
- data/lib/sdl2_rotozoom.rb +14 -4
- data/lib/sdl2_rwops.rb +69 -39
- data/lib/sdl2_scancode.rb +250 -248
- data/lib/sdl2_sensor.rb +115 -0
- data/lib/sdl2_shape.rb +17 -11
- data/lib/sdl2_stdinc.rb +213 -42
- data/lib/sdl2_surface.rb +62 -15
- data/lib/sdl2_syswm.rb +47 -41
- data/lib/sdl2_timer.rb +16 -4
- data/lib/sdl2_touch.rb +18 -9
- data/lib/sdl2_ttf.rb +180 -25
- data/lib/sdl2_version.rb +13 -8
- data/lib/sdl2_video.rb +232 -103
- data/lib/sdl2_vulkan.rb +12 -4
- metadata +21 -4
data/lib/sdl2_shape.rb
CHANGED
@@ -7,13 +7,13 @@
|
|
7
7
|
require 'ffi'
|
8
8
|
require_relative 'sdl2_pixels'
|
9
9
|
|
10
|
-
module
|
10
|
+
module SDL
|
11
11
|
extend FFI::Library
|
12
12
|
# Define/Macro
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
|
14
|
+
NONSHAPEABLE_WINDOW = -1
|
15
|
+
INVALID_SHAPE_ARGUMENT = -2
|
16
|
+
WINDOW_LACKS_SHAPE = -3
|
17
17
|
|
18
18
|
# Enum
|
19
19
|
|
@@ -28,30 +28,36 @@ module SDL2
|
|
28
28
|
|
29
29
|
# Struct
|
30
30
|
|
31
|
-
class
|
31
|
+
class WindowShapeParams < FFI::Union
|
32
32
|
layout(
|
33
33
|
:binarizationCutoff, :uchar,
|
34
|
-
:colorKey,
|
34
|
+
:colorKey, Color,
|
35
35
|
)
|
36
36
|
end
|
37
37
|
|
38
|
-
class
|
38
|
+
class WindowShapeMode < FFI::Struct
|
39
39
|
layout(
|
40
40
|
:mode, :int,
|
41
|
-
:parameters,
|
41
|
+
:parameters, WindowShapeParams,
|
42
42
|
)
|
43
43
|
end
|
44
44
|
|
45
45
|
|
46
46
|
# Function
|
47
47
|
|
48
|
-
def self.setup_shape_symbols()
|
48
|
+
def self.setup_shape_symbols(output_error = false)
|
49
49
|
symbols = [
|
50
50
|
:SDL_CreateShapedWindow,
|
51
51
|
:SDL_IsShapedWindow,
|
52
52
|
:SDL_SetWindowShape,
|
53
53
|
:SDL_GetShapedWindowMode,
|
54
54
|
]
|
55
|
+
apis = {
|
56
|
+
:SDL_CreateShapedWindow => :CreateShapedWindow,
|
57
|
+
:SDL_IsShapedWindow => :IsShapedWindow,
|
58
|
+
:SDL_SetWindowShape => :SetWindowShape,
|
59
|
+
:SDL_GetShapedWindowMode => :GetShapedWindowMode,
|
60
|
+
}
|
55
61
|
args = {
|
56
62
|
:SDL_CreateShapedWindow => [:pointer, :uint, :uint, :uint, :uint, :uint],
|
57
63
|
:SDL_IsShapedWindow => [:pointer],
|
@@ -66,9 +72,9 @@ module SDL2
|
|
66
72
|
}
|
67
73
|
symbols.each do |sym|
|
68
74
|
begin
|
69
|
-
attach_function sym, args[sym], retvals[sym]
|
75
|
+
attach_function apis[sym], sym, args[sym], retvals[sym]
|
70
76
|
rescue FFI::NotFoundError => error
|
71
|
-
$stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
|
77
|
+
$stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
|
72
78
|
end
|
73
79
|
end
|
74
80
|
end
|
data/lib/sdl2_stdinc.rb
CHANGED
@@ -6,15 +6,19 @@
|
|
6
6
|
|
7
7
|
require 'ffi'
|
8
8
|
|
9
|
-
module
|
9
|
+
module SDL
|
10
10
|
extend FFI::Library
|
11
11
|
# Define/Macro
|
12
12
|
|
13
|
+
ICONV_ERROR = -1
|
14
|
+
ICONV_E2BIG = -2
|
15
|
+
ICONV_EILSEQ = -3
|
16
|
+
ICONV_EINVAL = -4
|
13
17
|
|
14
18
|
# Enum
|
15
19
|
|
16
|
-
|
17
|
-
|
20
|
+
FALSE = 0
|
21
|
+
TRUE = 1
|
18
22
|
|
19
23
|
# Typedef
|
20
24
|
|
@@ -35,9 +39,9 @@ module SDL2
|
|
35
39
|
typedef :uint, :Uint32
|
36
40
|
typedef :long_long, :Sint64
|
37
41
|
typedef :ulong_long, :Uint64
|
38
|
-
callback :SDL_malloc_func, [:
|
39
|
-
callback :SDL_calloc_func, [:
|
40
|
-
callback :SDL_realloc_func, [:pointer, :
|
42
|
+
callback :SDL_malloc_func, [:int], :pointer
|
43
|
+
callback :SDL_calloc_func, [:int, :int], :pointer
|
44
|
+
callback :SDL_realloc_func, [:pointer, :int], :pointer
|
41
45
|
callback :SDL_free_func, [:pointer], :void
|
42
46
|
typedef :pointer, :SDL_iconv_t
|
43
47
|
|
@@ -46,7 +50,7 @@ module SDL2
|
|
46
50
|
|
47
51
|
# Function
|
48
52
|
|
49
|
-
def self.setup_stdinc_symbols()
|
53
|
+
def self.setup_stdinc_symbols(output_error = false)
|
50
54
|
symbols = [
|
51
55
|
:SDL_malloc,
|
52
56
|
:SDL_calloc,
|
@@ -59,10 +63,18 @@ module SDL2
|
|
59
63
|
:SDL_setenv,
|
60
64
|
:SDL_qsort,
|
61
65
|
:SDL_abs,
|
66
|
+
:SDL_isalpha,
|
67
|
+
:SDL_isalnum,
|
68
|
+
:SDL_isblank,
|
69
|
+
:SDL_iscntrl,
|
62
70
|
:SDL_isdigit,
|
71
|
+
:SDL_isxdigit,
|
72
|
+
:SDL_ispunct,
|
63
73
|
:SDL_isspace,
|
64
74
|
:SDL_isupper,
|
65
75
|
:SDL_islower,
|
76
|
+
:SDL_isprint,
|
77
|
+
:SDL_isgraph,
|
66
78
|
:SDL_toupper,
|
67
79
|
:SDL_tolower,
|
68
80
|
:SDL_crc32,
|
@@ -114,6 +126,8 @@ module SDL2
|
|
114
126
|
:SDL_vsscanf,
|
115
127
|
:SDL_snprintf,
|
116
128
|
:SDL_vsnprintf,
|
129
|
+
:SDL_asprintf,
|
130
|
+
:SDL_vasprintf,
|
117
131
|
:SDL_acos,
|
118
132
|
:SDL_acosf,
|
119
133
|
:SDL_asin,
|
@@ -144,6 +158,10 @@ module SDL2
|
|
144
158
|
:SDL_log10f,
|
145
159
|
:SDL_pow,
|
146
160
|
:SDL_powf,
|
161
|
+
:SDL_round,
|
162
|
+
:SDL_roundf,
|
163
|
+
:SDL_lround,
|
164
|
+
:SDL_lroundf,
|
147
165
|
:SDL_scalbn,
|
148
166
|
:SDL_scalbnf,
|
149
167
|
:SDL_sin,
|
@@ -158,43 +176,176 @@ module SDL2
|
|
158
176
|
:SDL_iconv_string,
|
159
177
|
:SDL_memcpy4,
|
160
178
|
]
|
179
|
+
apis = {
|
180
|
+
:SDL_malloc => :malloc,
|
181
|
+
:SDL_calloc => :calloc,
|
182
|
+
:SDL_realloc => :realloc,
|
183
|
+
:SDL_free => :free,
|
184
|
+
:SDL_GetMemoryFunctions => :GetMemoryFunctions,
|
185
|
+
:SDL_SetMemoryFunctions => :SetMemoryFunctions,
|
186
|
+
:SDL_GetNumAllocations => :GetNumAllocations,
|
187
|
+
:SDL_getenv => :getenv,
|
188
|
+
:SDL_setenv => :setenv,
|
189
|
+
:SDL_qsort => :qsort,
|
190
|
+
:SDL_abs => :abs,
|
191
|
+
:SDL_isalpha => :isalpha,
|
192
|
+
:SDL_isalnum => :isalnum,
|
193
|
+
:SDL_isblank => :isblank,
|
194
|
+
:SDL_iscntrl => :iscntrl,
|
195
|
+
:SDL_isdigit => :isdigit,
|
196
|
+
:SDL_isxdigit => :isxdigit,
|
197
|
+
:SDL_ispunct => :ispunct,
|
198
|
+
:SDL_isspace => :isspace,
|
199
|
+
:SDL_isupper => :isupper,
|
200
|
+
:SDL_islower => :islower,
|
201
|
+
:SDL_isprint => :isprint,
|
202
|
+
:SDL_isgraph => :isgraph,
|
203
|
+
:SDL_toupper => :toupper,
|
204
|
+
:SDL_tolower => :tolower,
|
205
|
+
:SDL_crc32 => :crc32,
|
206
|
+
:SDL_memset => :memset,
|
207
|
+
:SDL_memset4 => :memset4,
|
208
|
+
:SDL_memcpy => :memcpy,
|
209
|
+
:SDL_memmove => :memmove,
|
210
|
+
:SDL_memcmp => :memcmp,
|
211
|
+
:SDL_wcslen => :wcslen,
|
212
|
+
:SDL_wcslcpy => :wcslcpy,
|
213
|
+
:SDL_wcslcat => :wcslcat,
|
214
|
+
:SDL_wcsdup => :wcsdup,
|
215
|
+
:SDL_wcsstr => :wcsstr,
|
216
|
+
:SDL_wcscmp => :wcscmp,
|
217
|
+
:SDL_wcsncmp => :wcsncmp,
|
218
|
+
:SDL_wcscasecmp => :wcscasecmp,
|
219
|
+
:SDL_wcsncasecmp => :wcsncasecmp,
|
220
|
+
:SDL_strlen => :strlen,
|
221
|
+
:SDL_strlcpy => :strlcpy,
|
222
|
+
:SDL_utf8strlcpy => :utf8strlcpy,
|
223
|
+
:SDL_strlcat => :strlcat,
|
224
|
+
:SDL_strdup => :strdup,
|
225
|
+
:SDL_strrev => :strrev,
|
226
|
+
:SDL_strupr => :strupr,
|
227
|
+
:SDL_strlwr => :strlwr,
|
228
|
+
:SDL_strchr => :strchr,
|
229
|
+
:SDL_strrchr => :strrchr,
|
230
|
+
:SDL_strstr => :strstr,
|
231
|
+
:SDL_strtokr => :strtokr,
|
232
|
+
:SDL_utf8strlen => :utf8strlen,
|
233
|
+
:SDL_itoa => :itoa,
|
234
|
+
:SDL_uitoa => :uitoa,
|
235
|
+
:SDL_ltoa => :ltoa,
|
236
|
+
:SDL_ultoa => :ultoa,
|
237
|
+
:SDL_lltoa => :lltoa,
|
238
|
+
:SDL_ulltoa => :ulltoa,
|
239
|
+
:SDL_atoi => :atoi,
|
240
|
+
:SDL_atof => :atof,
|
241
|
+
:SDL_strtol => :strtol,
|
242
|
+
:SDL_strtoul => :strtoul,
|
243
|
+
:SDL_strtoll => :strtoll,
|
244
|
+
:SDL_strtoull => :strtoull,
|
245
|
+
:SDL_strtod => :strtod,
|
246
|
+
:SDL_strcmp => :strcmp,
|
247
|
+
:SDL_strncmp => :strncmp,
|
248
|
+
:SDL_strcasecmp => :strcasecmp,
|
249
|
+
:SDL_strncasecmp => :strncasecmp,
|
250
|
+
:SDL_sscanf => :sscanf,
|
251
|
+
:SDL_vsscanf => :vsscanf,
|
252
|
+
:SDL_snprintf => :snprintf,
|
253
|
+
:SDL_vsnprintf => :vsnprintf,
|
254
|
+
:SDL_asprintf => :asprintf,
|
255
|
+
:SDL_vasprintf => :vasprintf,
|
256
|
+
:SDL_acos => :acos,
|
257
|
+
:SDL_acosf => :acosf,
|
258
|
+
:SDL_asin => :asin,
|
259
|
+
:SDL_asinf => :asinf,
|
260
|
+
:SDL_atan => :atan,
|
261
|
+
:SDL_atanf => :atanf,
|
262
|
+
:SDL_atan2 => :atan2,
|
263
|
+
:SDL_atan2f => :atan2f,
|
264
|
+
:SDL_ceil => :ceil,
|
265
|
+
:SDL_ceilf => :ceilf,
|
266
|
+
:SDL_copysign => :copysign,
|
267
|
+
:SDL_copysignf => :copysignf,
|
268
|
+
:SDL_cos => :cos,
|
269
|
+
:SDL_cosf => :cosf,
|
270
|
+
:SDL_exp => :exp,
|
271
|
+
:SDL_expf => :expf,
|
272
|
+
:SDL_fabs => :fabs,
|
273
|
+
:SDL_fabsf => :fabsf,
|
274
|
+
:SDL_floor => :floor,
|
275
|
+
:SDL_floorf => :floorf,
|
276
|
+
:SDL_trunc => :trunc,
|
277
|
+
:SDL_truncf => :truncf,
|
278
|
+
:SDL_fmod => :fmod,
|
279
|
+
:SDL_fmodf => :fmodf,
|
280
|
+
:SDL_log => :log,
|
281
|
+
:SDL_logf => :logf,
|
282
|
+
:SDL_log10 => :log10,
|
283
|
+
:SDL_log10f => :log10f,
|
284
|
+
:SDL_pow => :pow,
|
285
|
+
:SDL_powf => :powf,
|
286
|
+
:SDL_round => :round,
|
287
|
+
:SDL_roundf => :roundf,
|
288
|
+
:SDL_lround => :lround,
|
289
|
+
:SDL_lroundf => :lroundf,
|
290
|
+
:SDL_scalbn => :scalbn,
|
291
|
+
:SDL_scalbnf => :scalbnf,
|
292
|
+
:SDL_sin => :sin,
|
293
|
+
:SDL_sinf => :sinf,
|
294
|
+
:SDL_sqrt => :sqrt,
|
295
|
+
:SDL_sqrtf => :sqrtf,
|
296
|
+
:SDL_tan => :tan,
|
297
|
+
:SDL_tanf => :tanf,
|
298
|
+
:SDL_iconv_open => :iconv_open,
|
299
|
+
:SDL_iconv_close => :iconv_close,
|
300
|
+
:SDL_iconv => :iconv,
|
301
|
+
:SDL_iconv_string => :iconv_string,
|
302
|
+
:SDL_memcpy4 => :memcpy4,
|
303
|
+
}
|
161
304
|
args = {
|
162
|
-
:SDL_malloc => [:
|
163
|
-
:SDL_calloc => [:
|
164
|
-
:SDL_realloc => [:pointer, :
|
305
|
+
:SDL_malloc => [:int],
|
306
|
+
:SDL_calloc => [:int, :int],
|
307
|
+
:SDL_realloc => [:pointer, :int],
|
165
308
|
:SDL_free => [:pointer],
|
166
309
|
:SDL_GetMemoryFunctions => [:pointer, :pointer, :pointer, :pointer],
|
167
310
|
:SDL_SetMemoryFunctions => [:SDL_malloc_func, :SDL_calloc_func, :SDL_realloc_func, :SDL_free_func],
|
168
311
|
:SDL_GetNumAllocations => [],
|
169
312
|
:SDL_getenv => [:pointer],
|
170
313
|
:SDL_setenv => [:pointer, :pointer, :int],
|
171
|
-
:SDL_qsort => [:pointer, :
|
314
|
+
:SDL_qsort => [:pointer, :int, :int, :pointer],
|
172
315
|
:SDL_abs => [:int],
|
316
|
+
:SDL_isalpha => [:int],
|
317
|
+
:SDL_isalnum => [:int],
|
318
|
+
:SDL_isblank => [:int],
|
319
|
+
:SDL_iscntrl => [:int],
|
173
320
|
:SDL_isdigit => [:int],
|
321
|
+
:SDL_isxdigit => [:int],
|
322
|
+
:SDL_ispunct => [:int],
|
174
323
|
:SDL_isspace => [:int],
|
175
324
|
:SDL_isupper => [:int],
|
176
325
|
:SDL_islower => [:int],
|
326
|
+
:SDL_isprint => [:int],
|
327
|
+
:SDL_isgraph => [:int],
|
177
328
|
:SDL_toupper => [:int],
|
178
329
|
:SDL_tolower => [:int],
|
179
|
-
:SDL_crc32 => [:uint, :pointer, :
|
180
|
-
:SDL_memset => [:pointer, :int, :
|
181
|
-
:SDL_memset4 => [:pointer, :uint, :
|
182
|
-
:SDL_memcpy => [:pointer, :pointer, :
|
183
|
-
:SDL_memmove => [:pointer, :pointer, :
|
184
|
-
:SDL_memcmp => [:pointer, :pointer, :
|
330
|
+
:SDL_crc32 => [:uint, :pointer, :int],
|
331
|
+
:SDL_memset => [:pointer, :int, :int],
|
332
|
+
:SDL_memset4 => [:pointer, :uint, :int],
|
333
|
+
:SDL_memcpy => [:pointer, :pointer, :int],
|
334
|
+
:SDL_memmove => [:pointer, :pointer, :int],
|
335
|
+
:SDL_memcmp => [:pointer, :pointer, :int],
|
185
336
|
:SDL_wcslen => [:pointer],
|
186
|
-
:SDL_wcslcpy => [:pointer, :pointer, :
|
187
|
-
:SDL_wcslcat => [:pointer, :pointer, :
|
337
|
+
:SDL_wcslcpy => [:pointer, :pointer, :int],
|
338
|
+
:SDL_wcslcat => [:pointer, :pointer, :int],
|
188
339
|
:SDL_wcsdup => [:pointer],
|
189
340
|
:SDL_wcsstr => [:pointer, :pointer],
|
190
341
|
:SDL_wcscmp => [:pointer, :pointer],
|
191
|
-
:SDL_wcsncmp => [:pointer, :pointer, :
|
342
|
+
:SDL_wcsncmp => [:pointer, :pointer, :int],
|
192
343
|
:SDL_wcscasecmp => [:pointer, :pointer],
|
193
|
-
:SDL_wcsncasecmp => [:pointer, :pointer, :
|
344
|
+
:SDL_wcsncasecmp => [:pointer, :pointer, :int],
|
194
345
|
:SDL_strlen => [:pointer],
|
195
|
-
:SDL_strlcpy => [:pointer, :pointer, :
|
196
|
-
:SDL_utf8strlcpy => [:pointer, :pointer, :
|
197
|
-
:SDL_strlcat => [:pointer, :pointer, :
|
346
|
+
:SDL_strlcpy => [:pointer, :pointer, :int],
|
347
|
+
:SDL_utf8strlcpy => [:pointer, :pointer, :int],
|
348
|
+
:SDL_strlcat => [:pointer, :pointer, :int],
|
198
349
|
:SDL_strdup => [:pointer],
|
199
350
|
:SDL_strrev => [:pointer],
|
200
351
|
:SDL_strupr => [:pointer],
|
@@ -218,13 +369,15 @@ module SDL2
|
|
218
369
|
:SDL_strtoull => [:pointer, :pointer, :int],
|
219
370
|
:SDL_strtod => [:pointer, :pointer],
|
220
371
|
:SDL_strcmp => [:pointer, :pointer],
|
221
|
-
:SDL_strncmp => [:pointer, :pointer, :
|
372
|
+
:SDL_strncmp => [:pointer, :pointer, :int],
|
222
373
|
:SDL_strcasecmp => [:pointer, :pointer],
|
223
|
-
:SDL_strncasecmp => [:pointer, :pointer, :
|
374
|
+
:SDL_strncasecmp => [:pointer, :pointer, :int],
|
224
375
|
:SDL_sscanf => [:pointer, :pointer],
|
225
|
-
:SDL_vsscanf => [:pointer, :pointer, :
|
226
|
-
:SDL_snprintf => [:pointer, :
|
227
|
-
:SDL_vsnprintf => [:pointer, :
|
376
|
+
:SDL_vsscanf => [:pointer, :pointer, :int],
|
377
|
+
:SDL_snprintf => [:pointer, :int, :pointer],
|
378
|
+
:SDL_vsnprintf => [:pointer, :int, :pointer, :int],
|
379
|
+
:SDL_asprintf => [:pointer, :pointer],
|
380
|
+
:SDL_vasprintf => [:pointer, :pointer, :int],
|
228
381
|
:SDL_acos => [:double],
|
229
382
|
:SDL_acosf => [:float],
|
230
383
|
:SDL_asin => [:double],
|
@@ -255,6 +408,10 @@ module SDL2
|
|
255
408
|
:SDL_log10f => [:float],
|
256
409
|
:SDL_pow => [:double, :double],
|
257
410
|
:SDL_powf => [:float, :float],
|
411
|
+
:SDL_round => [:double],
|
412
|
+
:SDL_roundf => [:float],
|
413
|
+
:SDL_lround => [:double],
|
414
|
+
:SDL_lroundf => [:float],
|
258
415
|
:SDL_scalbn => [:double, :int],
|
259
416
|
:SDL_scalbnf => [:float, :int],
|
260
417
|
:SDL_sin => [:double],
|
@@ -266,8 +423,8 @@ module SDL2
|
|
266
423
|
:SDL_iconv_open => [:pointer, :pointer],
|
267
424
|
:SDL_iconv_close => [:pointer],
|
268
425
|
:SDL_iconv => [:pointer, :pointer, :pointer, :pointer, :pointer],
|
269
|
-
:SDL_iconv_string => [:pointer, :pointer, :pointer, :
|
270
|
-
:SDL_memcpy4 => [:pointer, :pointer, :
|
426
|
+
:SDL_iconv_string => [:pointer, :pointer, :pointer, :int],
|
427
|
+
:SDL_memcpy4 => [:pointer, :pointer, :int],
|
271
428
|
}
|
272
429
|
retvals = {
|
273
430
|
:SDL_malloc => :pointer,
|
@@ -281,10 +438,18 @@ module SDL2
|
|
281
438
|
:SDL_setenv => :int,
|
282
439
|
:SDL_qsort => :void,
|
283
440
|
:SDL_abs => :int,
|
441
|
+
:SDL_isalpha => :int,
|
442
|
+
:SDL_isalnum => :int,
|
443
|
+
:SDL_isblank => :int,
|
444
|
+
:SDL_iscntrl => :int,
|
284
445
|
:SDL_isdigit => :int,
|
446
|
+
:SDL_isxdigit => :int,
|
447
|
+
:SDL_ispunct => :int,
|
285
448
|
:SDL_isspace => :int,
|
286
449
|
:SDL_isupper => :int,
|
287
450
|
:SDL_islower => :int,
|
451
|
+
:SDL_isprint => :int,
|
452
|
+
:SDL_isgraph => :int,
|
288
453
|
:SDL_toupper => :int,
|
289
454
|
:SDL_tolower => :int,
|
290
455
|
:SDL_crc32 => :uint,
|
@@ -293,19 +458,19 @@ module SDL2
|
|
293
458
|
:SDL_memcpy => :pointer,
|
294
459
|
:SDL_memmove => :pointer,
|
295
460
|
:SDL_memcmp => :int,
|
296
|
-
:SDL_wcslen => :
|
297
|
-
:SDL_wcslcpy => :
|
298
|
-
:SDL_wcslcat => :
|
461
|
+
:SDL_wcslen => :int,
|
462
|
+
:SDL_wcslcpy => :int,
|
463
|
+
:SDL_wcslcat => :int,
|
299
464
|
:SDL_wcsdup => :pointer,
|
300
465
|
:SDL_wcsstr => :pointer,
|
301
466
|
:SDL_wcscmp => :int,
|
302
467
|
:SDL_wcsncmp => :int,
|
303
468
|
:SDL_wcscasecmp => :int,
|
304
469
|
:SDL_wcsncasecmp => :int,
|
305
|
-
:SDL_strlen => :
|
306
|
-
:SDL_strlcpy => :
|
307
|
-
:SDL_utf8strlcpy => :
|
308
|
-
:SDL_strlcat => :
|
470
|
+
:SDL_strlen => :int,
|
471
|
+
:SDL_strlcpy => :int,
|
472
|
+
:SDL_utf8strlcpy => :int,
|
473
|
+
:SDL_strlcat => :int,
|
309
474
|
:SDL_strdup => :pointer,
|
310
475
|
:SDL_strrev => :pointer,
|
311
476
|
:SDL_strupr => :pointer,
|
@@ -314,7 +479,7 @@ module SDL2
|
|
314
479
|
:SDL_strrchr => :pointer,
|
315
480
|
:SDL_strstr => :pointer,
|
316
481
|
:SDL_strtokr => :pointer,
|
317
|
-
:SDL_utf8strlen => :
|
482
|
+
:SDL_utf8strlen => :int,
|
318
483
|
:SDL_itoa => :pointer,
|
319
484
|
:SDL_uitoa => :pointer,
|
320
485
|
:SDL_ltoa => :pointer,
|
@@ -336,6 +501,8 @@ module SDL2
|
|
336
501
|
:SDL_vsscanf => :int,
|
337
502
|
:SDL_snprintf => :int,
|
338
503
|
:SDL_vsnprintf => :int,
|
504
|
+
:SDL_asprintf => :int,
|
505
|
+
:SDL_vasprintf => :int,
|
339
506
|
:SDL_acos => :double,
|
340
507
|
:SDL_acosf => :float,
|
341
508
|
:SDL_asin => :double,
|
@@ -366,6 +533,10 @@ module SDL2
|
|
366
533
|
:SDL_log10f => :float,
|
367
534
|
:SDL_pow => :double,
|
368
535
|
:SDL_powf => :float,
|
536
|
+
:SDL_round => :double,
|
537
|
+
:SDL_roundf => :float,
|
538
|
+
:SDL_lround => :long,
|
539
|
+
:SDL_lroundf => :long,
|
369
540
|
:SDL_scalbn => :double,
|
370
541
|
:SDL_scalbnf => :float,
|
371
542
|
:SDL_sin => :double,
|
@@ -376,15 +547,15 @@ module SDL2
|
|
376
547
|
:SDL_tanf => :float,
|
377
548
|
:SDL_iconv_open => :pointer,
|
378
549
|
:SDL_iconv_close => :int,
|
379
|
-
:SDL_iconv => :
|
550
|
+
:SDL_iconv => :int,
|
380
551
|
:SDL_iconv_string => :pointer,
|
381
552
|
:SDL_memcpy4 => :pointer,
|
382
553
|
}
|
383
554
|
symbols.each do |sym|
|
384
555
|
begin
|
385
|
-
attach_function sym, args[sym], retvals[sym]
|
556
|
+
attach_function apis[sym], sym, args[sym], retvals[sym]
|
386
557
|
rescue FFI::NotFoundError => error
|
387
|
-
$stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
|
558
|
+
$stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
|
388
559
|
end
|
389
560
|
end
|
390
561
|
end
|
data/lib/sdl2_surface.rb
CHANGED
@@ -7,22 +7,22 @@
|
|
7
7
|
require 'ffi'
|
8
8
|
require_relative 'sdl2_rect'
|
9
9
|
|
10
|
-
module
|
10
|
+
module SDL
|
11
11
|
extend FFI::Library
|
12
12
|
# Define/Macro
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
14
|
+
SWSURFACE = 0
|
15
|
+
PREALLOC = 0x00000001
|
16
|
+
RLEACCEL = 0x00000002
|
17
|
+
DONTFREE = 0x00000004
|
18
|
+
SIMD_ALIGNED = 0x00000008
|
19
19
|
|
20
20
|
# Enum
|
21
21
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
22
|
+
YUV_CONVERSION_JPEG = 0
|
23
|
+
YUV_CONVERSION_BT601 = 1
|
24
|
+
YUV_CONVERSION_BT709 = 2
|
25
|
+
YUV_CONVERSION_AUTOMATIC = 3
|
26
26
|
|
27
27
|
# Typedef
|
28
28
|
|
@@ -31,7 +31,7 @@ module SDL2
|
|
31
31
|
|
32
32
|
# Struct
|
33
33
|
|
34
|
-
class
|
34
|
+
class Surface < FFI::Struct
|
35
35
|
layout(
|
36
36
|
:flags, :uint,
|
37
37
|
:format, :pointer,
|
@@ -42,7 +42,7 @@ module SDL2
|
|
42
42
|
:userdata, :pointer,
|
43
43
|
:locked, :int,
|
44
44
|
:list_blitmap, :pointer,
|
45
|
-
:clip_rect,
|
45
|
+
:clip_rect, Rect,
|
46
46
|
:map, :pointer,
|
47
47
|
:refcount, :int,
|
48
48
|
)
|
@@ -51,7 +51,7 @@ module SDL2
|
|
51
51
|
|
52
52
|
# Function
|
53
53
|
|
54
|
-
def self.setup_surface_symbols()
|
54
|
+
def self.setup_surface_symbols(output_error = false)
|
55
55
|
symbols = [
|
56
56
|
:SDL_CreateRGBSurface,
|
57
57
|
:SDL_CreateRGBSurfaceWithFormat,
|
@@ -80,17 +80,60 @@ module SDL2
|
|
80
80
|
:SDL_ConvertSurface,
|
81
81
|
:SDL_ConvertSurfaceFormat,
|
82
82
|
:SDL_ConvertPixels,
|
83
|
+
:SDL_PremultiplyAlpha,
|
83
84
|
:SDL_FillRect,
|
84
85
|
:SDL_FillRects,
|
85
86
|
:SDL_UpperBlit,
|
86
87
|
:SDL_LowerBlit,
|
87
88
|
:SDL_SoftStretch,
|
89
|
+
:SDL_SoftStretchLinear,
|
88
90
|
:SDL_UpperBlitScaled,
|
89
91
|
:SDL_LowerBlitScaled,
|
90
92
|
:SDL_SetYUVConversionMode,
|
91
93
|
:SDL_GetYUVConversionMode,
|
92
94
|
:SDL_GetYUVConversionModeForResolution,
|
93
95
|
]
|
96
|
+
apis = {
|
97
|
+
:SDL_CreateRGBSurface => :CreateRGBSurface,
|
98
|
+
:SDL_CreateRGBSurfaceWithFormat => :CreateRGBSurfaceWithFormat,
|
99
|
+
:SDL_CreateRGBSurfaceFrom => :CreateRGBSurfaceFrom,
|
100
|
+
:SDL_CreateRGBSurfaceWithFormatFrom => :CreateRGBSurfaceWithFormatFrom,
|
101
|
+
:SDL_FreeSurface => :FreeSurface,
|
102
|
+
:SDL_SetSurfacePalette => :SetSurfacePalette,
|
103
|
+
:SDL_LockSurface => :LockSurface,
|
104
|
+
:SDL_UnlockSurface => :UnlockSurface,
|
105
|
+
:SDL_LoadBMP_RW => :LoadBMP_RW,
|
106
|
+
:SDL_SaveBMP_RW => :SaveBMP_RW,
|
107
|
+
:SDL_SetSurfaceRLE => :SetSurfaceRLE,
|
108
|
+
:SDL_HasSurfaceRLE => :HasSurfaceRLE,
|
109
|
+
:SDL_SetColorKey => :SetColorKey,
|
110
|
+
:SDL_HasColorKey => :HasColorKey,
|
111
|
+
:SDL_GetColorKey => :GetColorKey,
|
112
|
+
:SDL_SetSurfaceColorMod => :SetSurfaceColorMod,
|
113
|
+
:SDL_GetSurfaceColorMod => :GetSurfaceColorMod,
|
114
|
+
:SDL_SetSurfaceAlphaMod => :SetSurfaceAlphaMod,
|
115
|
+
:SDL_GetSurfaceAlphaMod => :GetSurfaceAlphaMod,
|
116
|
+
:SDL_SetSurfaceBlendMode => :SetSurfaceBlendMode,
|
117
|
+
:SDL_GetSurfaceBlendMode => :GetSurfaceBlendMode,
|
118
|
+
:SDL_SetClipRect => :SetClipRect,
|
119
|
+
:SDL_GetClipRect => :GetClipRect,
|
120
|
+
:SDL_DuplicateSurface => :DuplicateSurface,
|
121
|
+
:SDL_ConvertSurface => :ConvertSurface,
|
122
|
+
:SDL_ConvertSurfaceFormat => :ConvertSurfaceFormat,
|
123
|
+
:SDL_ConvertPixels => :ConvertPixels,
|
124
|
+
:SDL_PremultiplyAlpha => :PremultiplyAlpha,
|
125
|
+
:SDL_FillRect => :FillRect,
|
126
|
+
:SDL_FillRects => :FillRects,
|
127
|
+
:SDL_UpperBlit => :UpperBlit,
|
128
|
+
:SDL_LowerBlit => :LowerBlit,
|
129
|
+
:SDL_SoftStretch => :SoftStretch,
|
130
|
+
:SDL_SoftStretchLinear => :SoftStretchLinear,
|
131
|
+
:SDL_UpperBlitScaled => :UpperBlitScaled,
|
132
|
+
:SDL_LowerBlitScaled => :LowerBlitScaled,
|
133
|
+
:SDL_SetYUVConversionMode => :SetYUVConversionMode,
|
134
|
+
:SDL_GetYUVConversionMode => :GetYUVConversionMode,
|
135
|
+
:SDL_GetYUVConversionModeForResolution => :GetYUVConversionModeForResolution,
|
136
|
+
}
|
94
137
|
args = {
|
95
138
|
:SDL_CreateRGBSurface => [:uint, :int, :int, :int, :uint, :uint, :uint, :uint],
|
96
139
|
:SDL_CreateRGBSurfaceWithFormat => [:uint, :int, :int, :int, :uint],
|
@@ -119,11 +162,13 @@ module SDL2
|
|
119
162
|
:SDL_ConvertSurface => [:pointer, :pointer, :uint],
|
120
163
|
:SDL_ConvertSurfaceFormat => [:pointer, :uint, :uint],
|
121
164
|
:SDL_ConvertPixels => [:int, :int, :uint, :pointer, :int, :uint, :pointer, :int],
|
165
|
+
:SDL_PremultiplyAlpha => [:int, :int, :uint, :pointer, :int, :uint, :pointer, :int],
|
122
166
|
:SDL_FillRect => [:pointer, :pointer, :uint],
|
123
167
|
:SDL_FillRects => [:pointer, :pointer, :int, :uint],
|
124
168
|
:SDL_UpperBlit => [:pointer, :pointer, :pointer, :pointer],
|
125
169
|
:SDL_LowerBlit => [:pointer, :pointer, :pointer, :pointer],
|
126
170
|
:SDL_SoftStretch => [:pointer, :pointer, :pointer, :pointer],
|
171
|
+
:SDL_SoftStretchLinear => [:pointer, :pointer, :pointer, :pointer],
|
127
172
|
:SDL_UpperBlitScaled => [:pointer, :pointer, :pointer, :pointer],
|
128
173
|
:SDL_LowerBlitScaled => [:pointer, :pointer, :pointer, :pointer],
|
129
174
|
:SDL_SetYUVConversionMode => [:int],
|
@@ -158,11 +203,13 @@ module SDL2
|
|
158
203
|
:SDL_ConvertSurface => :pointer,
|
159
204
|
:SDL_ConvertSurfaceFormat => :pointer,
|
160
205
|
:SDL_ConvertPixels => :int,
|
206
|
+
:SDL_PremultiplyAlpha => :int,
|
161
207
|
:SDL_FillRect => :int,
|
162
208
|
:SDL_FillRects => :int,
|
163
209
|
:SDL_UpperBlit => :int,
|
164
210
|
:SDL_LowerBlit => :int,
|
165
211
|
:SDL_SoftStretch => :int,
|
212
|
+
:SDL_SoftStretchLinear => :int,
|
166
213
|
:SDL_UpperBlitScaled => :int,
|
167
214
|
:SDL_LowerBlitScaled => :int,
|
168
215
|
:SDL_SetYUVConversionMode => :void,
|
@@ -171,9 +218,9 @@ module SDL2
|
|
171
218
|
}
|
172
219
|
symbols.each do |sym|
|
173
220
|
begin
|
174
|
-
attach_function sym, args[sym], retvals[sym]
|
221
|
+
attach_function apis[sym], sym, args[sym], retvals[sym]
|
175
222
|
rescue FFI::NotFoundError => error
|
176
|
-
$stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
|
223
|
+
$stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
|
177
224
|
end
|
178
225
|
end
|
179
226
|
end
|