sdl2-bindings 0.0.9 → 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 +12 -0
- data/README.md +39 -26
- data/lib/sdl2.rb +54 -99
- data/lib/sdl2_audio.rb +59 -20
- data/lib/sdl2_blendmode.rb +28 -25
- data/lib/sdl2_clipboard.rb +9 -4
- data/lib/sdl2_cpuinfo.rb +28 -5
- data/lib/sdl2_error.rb +17 -10
- data/lib/sdl2_events.rb +150 -131
- data/lib/sdl2_filesystem.rb +8 -4
- data/lib/sdl2_framerate.rb +11 -4
- data/lib/sdl2_gamecontroller.rb +112 -57
- 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 +26 -5
- data/lib/sdl2_hints.rb +146 -137
- data/lib/sdl2_image.rb +54 -7
- data/lib/sdl2_imageFilter.rb +36 -4
- data/lib/sdl2_joystick.rb +93 -38
- data/lib/sdl2_keyboard.rb +23 -5
- data/lib/sdl2_keycode.rb +6 -4
- 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 +7 -4
- 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 +107 -25
- data/lib/sdl2_rotozoom.rb +14 -4
- data/lib/sdl2_rwops.rb +58 -28
- data/lib/sdl2_scancode.rb +250 -248
- data/lib/sdl2_sensor.rb +27 -9
- data/lib/sdl2_shape.rb +17 -11
- data/lib/sdl2_stdinc.rb +135 -10
- data/lib/sdl2_surface.rb +56 -15
- data/lib/sdl2_syswm.rb +47 -44
- data/lib/sdl2_timer.rb +13 -4
- data/lib/sdl2_touch.rb +18 -11
- data/lib/sdl2_ttf.rb +180 -25
- data/lib/sdl2_version.rb +13 -8
- data/lib/sdl2_video.rb +204 -110
- data/lib/sdl2_vulkan.rb +12 -4
- metadata +17 -3
data/lib/sdl2_render.rb
CHANGED
@@ -6,29 +6,29 @@
|
|
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
13
|
|
14
14
|
# Enum
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
16
|
+
RENDERER_SOFTWARE = 1
|
17
|
+
RENDERER_ACCELERATED = 2
|
18
|
+
RENDERER_PRESENTVSYNC = 4
|
19
|
+
RENDERER_TARGETTEXTURE = 8
|
20
|
+
ScaleModeNearest = 0
|
21
|
+
ScaleModeLinear = 1
|
22
|
+
ScaleModeBest = 2
|
23
|
+
TEXTUREACCESS_STATIC = 0
|
24
|
+
TEXTUREACCESS_STREAMING = 1
|
25
|
+
TEXTUREACCESS_TARGET = 2
|
26
|
+
TEXTUREMODULATE_NONE = 0
|
27
|
+
TEXTUREMODULATE_COLOR = 1
|
28
|
+
TEXTUREMODULATE_ALPHA = 2
|
29
|
+
FLIP_NONE = 0
|
30
|
+
FLIP_HORIZONTAL = 1
|
31
|
+
FLIP_VERTICAL = 2
|
32
32
|
|
33
33
|
# Typedef
|
34
34
|
|
@@ -40,7 +40,7 @@ module SDL2
|
|
40
40
|
|
41
41
|
# Struct
|
42
42
|
|
43
|
-
class
|
43
|
+
class RendererInfo < FFI::Struct
|
44
44
|
layout(
|
45
45
|
:name, :pointer,
|
46
46
|
:flags, :uint,
|
@@ -51,18 +51,18 @@ module SDL2
|
|
51
51
|
)
|
52
52
|
end
|
53
53
|
|
54
|
-
class
|
54
|
+
class Vertex < FFI::Struct
|
55
55
|
layout(
|
56
|
-
:position,
|
57
|
-
:color,
|
58
|
-
:tex_coord,
|
56
|
+
:position, FPoint,
|
57
|
+
:color, Color,
|
58
|
+
:tex_coord, FPoint,
|
59
59
|
)
|
60
60
|
end
|
61
61
|
|
62
62
|
|
63
63
|
# Function
|
64
64
|
|
65
|
-
def self.setup_render_symbols()
|
65
|
+
def self.setup_render_symbols(output_error = false)
|
66
66
|
symbols = [
|
67
67
|
:SDL_GetNumRenderDrivers,
|
68
68
|
:SDL_GetRenderDriverInfo,
|
@@ -145,6 +145,88 @@ module SDL2
|
|
145
145
|
:SDL_RenderGetMetalCommandEncoder,
|
146
146
|
:SDL_RenderSetVSync,
|
147
147
|
]
|
148
|
+
apis = {
|
149
|
+
:SDL_GetNumRenderDrivers => :GetNumRenderDrivers,
|
150
|
+
:SDL_GetRenderDriverInfo => :GetRenderDriverInfo,
|
151
|
+
:SDL_CreateWindowAndRenderer => :CreateWindowAndRenderer,
|
152
|
+
:SDL_CreateRenderer => :CreateRenderer,
|
153
|
+
:SDL_CreateSoftwareRenderer => :CreateSoftwareRenderer,
|
154
|
+
:SDL_GetRenderer => :GetRenderer,
|
155
|
+
:SDL_GetRendererInfo => :GetRendererInfo,
|
156
|
+
:SDL_GetRendererOutputSize => :GetRendererOutputSize,
|
157
|
+
:SDL_CreateTexture => :CreateTexture,
|
158
|
+
:SDL_CreateTextureFromSurface => :CreateTextureFromSurface,
|
159
|
+
:SDL_QueryTexture => :QueryTexture,
|
160
|
+
:SDL_SetTextureColorMod => :SetTextureColorMod,
|
161
|
+
:SDL_GetTextureColorMod => :GetTextureColorMod,
|
162
|
+
:SDL_SetTextureAlphaMod => :SetTextureAlphaMod,
|
163
|
+
:SDL_GetTextureAlphaMod => :GetTextureAlphaMod,
|
164
|
+
:SDL_SetTextureBlendMode => :SetTextureBlendMode,
|
165
|
+
:SDL_GetTextureBlendMode => :GetTextureBlendMode,
|
166
|
+
:SDL_SetTextureScaleMode => :SetTextureScaleMode,
|
167
|
+
:SDL_GetTextureScaleMode => :GetTextureScaleMode,
|
168
|
+
:SDL_SetTextureUserData => :SetTextureUserData,
|
169
|
+
:SDL_GetTextureUserData => :GetTextureUserData,
|
170
|
+
:SDL_UpdateTexture => :UpdateTexture,
|
171
|
+
:SDL_UpdateYUVTexture => :UpdateYUVTexture,
|
172
|
+
:SDL_UpdateNVTexture => :UpdateNVTexture,
|
173
|
+
:SDL_LockTexture => :LockTexture,
|
174
|
+
:SDL_LockTextureToSurface => :LockTextureToSurface,
|
175
|
+
:SDL_UnlockTexture => :UnlockTexture,
|
176
|
+
:SDL_RenderTargetSupported => :RenderTargetSupported,
|
177
|
+
:SDL_SetRenderTarget => :SetRenderTarget,
|
178
|
+
:SDL_GetRenderTarget => :GetRenderTarget,
|
179
|
+
:SDL_RenderSetLogicalSize => :RenderSetLogicalSize,
|
180
|
+
:SDL_RenderGetLogicalSize => :RenderGetLogicalSize,
|
181
|
+
:SDL_RenderSetIntegerScale => :RenderSetIntegerScale,
|
182
|
+
:SDL_RenderGetIntegerScale => :RenderGetIntegerScale,
|
183
|
+
:SDL_RenderSetViewport => :RenderSetViewport,
|
184
|
+
:SDL_RenderGetViewport => :RenderGetViewport,
|
185
|
+
:SDL_RenderSetClipRect => :RenderSetClipRect,
|
186
|
+
:SDL_RenderGetClipRect => :RenderGetClipRect,
|
187
|
+
:SDL_RenderIsClipEnabled => :RenderIsClipEnabled,
|
188
|
+
:SDL_RenderSetScale => :RenderSetScale,
|
189
|
+
:SDL_RenderGetScale => :RenderGetScale,
|
190
|
+
:SDL_RenderWindowToLogical => :RenderWindowToLogical,
|
191
|
+
:SDL_RenderLogicalToWindow => :RenderLogicalToWindow,
|
192
|
+
:SDL_SetRenderDrawColor => :SetRenderDrawColor,
|
193
|
+
:SDL_GetRenderDrawColor => :GetRenderDrawColor,
|
194
|
+
:SDL_SetRenderDrawBlendMode => :SetRenderDrawBlendMode,
|
195
|
+
:SDL_GetRenderDrawBlendMode => :GetRenderDrawBlendMode,
|
196
|
+
:SDL_RenderClear => :RenderClear,
|
197
|
+
:SDL_RenderDrawPoint => :RenderDrawPoint,
|
198
|
+
:SDL_RenderDrawPoints => :RenderDrawPoints,
|
199
|
+
:SDL_RenderDrawLine => :RenderDrawLine,
|
200
|
+
:SDL_RenderDrawLines => :RenderDrawLines,
|
201
|
+
:SDL_RenderDrawRect => :RenderDrawRect,
|
202
|
+
:SDL_RenderDrawRects => :RenderDrawRects,
|
203
|
+
:SDL_RenderFillRect => :RenderFillRect,
|
204
|
+
:SDL_RenderFillRects => :RenderFillRects,
|
205
|
+
:SDL_RenderCopy => :RenderCopy,
|
206
|
+
:SDL_RenderCopyEx => :RenderCopyEx,
|
207
|
+
:SDL_RenderDrawPointF => :RenderDrawPointF,
|
208
|
+
:SDL_RenderDrawPointsF => :RenderDrawPointsF,
|
209
|
+
:SDL_RenderDrawLineF => :RenderDrawLineF,
|
210
|
+
:SDL_RenderDrawLinesF => :RenderDrawLinesF,
|
211
|
+
:SDL_RenderDrawRectF => :RenderDrawRectF,
|
212
|
+
:SDL_RenderDrawRectsF => :RenderDrawRectsF,
|
213
|
+
:SDL_RenderFillRectF => :RenderFillRectF,
|
214
|
+
:SDL_RenderFillRectsF => :RenderFillRectsF,
|
215
|
+
:SDL_RenderCopyF => :RenderCopyF,
|
216
|
+
:SDL_RenderCopyExF => :RenderCopyExF,
|
217
|
+
:SDL_RenderGeometry => :RenderGeometry,
|
218
|
+
:SDL_RenderGeometryRaw => :RenderGeometryRaw,
|
219
|
+
:SDL_RenderReadPixels => :RenderReadPixels,
|
220
|
+
:SDL_RenderPresent => :RenderPresent,
|
221
|
+
:SDL_DestroyTexture => :DestroyTexture,
|
222
|
+
:SDL_DestroyRenderer => :DestroyRenderer,
|
223
|
+
:SDL_RenderFlush => :RenderFlush,
|
224
|
+
:SDL_GL_BindTexture => :GL_BindTexture,
|
225
|
+
:SDL_GL_UnbindTexture => :GL_UnbindTexture,
|
226
|
+
:SDL_RenderGetMetalLayer => :RenderGetMetalLayer,
|
227
|
+
:SDL_RenderGetMetalCommandEncoder => :RenderGetMetalCommandEncoder,
|
228
|
+
:SDL_RenderSetVSync => :RenderSetVSync,
|
229
|
+
}
|
148
230
|
args = {
|
149
231
|
:SDL_GetNumRenderDrivers => [],
|
150
232
|
:SDL_GetRenderDriverInfo => [:int, :pointer],
|
@@ -311,9 +393,9 @@ module SDL2
|
|
311
393
|
}
|
312
394
|
symbols.each do |sym|
|
313
395
|
begin
|
314
|
-
attach_function sym, args[sym], retvals[sym]
|
396
|
+
attach_function apis[sym], sym, args[sym], retvals[sym]
|
315
397
|
rescue FFI::NotFoundError => error
|
316
|
-
$stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
|
398
|
+
$stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
|
317
399
|
end
|
318
400
|
end
|
319
401
|
end
|
data/lib/sdl2_rotozoom.rb
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
require 'ffi'
|
8
8
|
|
9
|
-
module
|
9
|
+
module SDL
|
10
10
|
extend FFI::Library
|
11
11
|
# Define/Macro
|
12
12
|
|
@@ -22,7 +22,7 @@ module SDL2
|
|
22
22
|
|
23
23
|
# Function
|
24
24
|
|
25
|
-
def self.setup_gfx_rotozoom_symbols()
|
25
|
+
def self.setup_gfx_rotozoom_symbols(output_error = false)
|
26
26
|
symbols = [
|
27
27
|
:rotozoomSurface,
|
28
28
|
:rotozoomSurfaceXY,
|
@@ -33,6 +33,16 @@ module SDL2
|
|
33
33
|
:shrinkSurface,
|
34
34
|
:rotateSurface90Degrees,
|
35
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
|
+
}
|
36
46
|
args = {
|
37
47
|
:rotozoomSurface => [:pointer, :double, :double, :int],
|
38
48
|
:rotozoomSurfaceXY => [:pointer, :double, :double, :double, :int],
|
@@ -55,9 +65,9 @@ module SDL2
|
|
55
65
|
}
|
56
66
|
symbols.each do |sym|
|
57
67
|
begin
|
58
|
-
attach_function sym, args[sym], retvals[sym]
|
68
|
+
attach_function apis[sym], sym, args[sym], retvals[sym]
|
59
69
|
rescue FFI::NotFoundError => error
|
60
|
-
$stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
|
70
|
+
$stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
|
61
71
|
end
|
62
72
|
end
|
63
73
|
end
|
data/lib/sdl2_rwops.rb
CHANGED
@@ -6,16 +6,16 @@
|
|
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
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
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
19
|
|
20
20
|
# Enum
|
21
21
|
|
@@ -23,7 +23,7 @@ module SDL2
|
|
23
23
|
# Typedef
|
24
24
|
|
25
25
|
|
26
|
-
class
|
26
|
+
class RWops_mem < FFI::Struct
|
27
27
|
layout(
|
28
28
|
:base, :pointer,
|
29
29
|
:here, :pointer,
|
@@ -31,13 +31,13 @@ module SDL2
|
|
31
31
|
)
|
32
32
|
end
|
33
33
|
|
34
|
-
class
|
34
|
+
class RWops_unknown < FFI::Struct
|
35
35
|
layout(
|
36
36
|
:data1, :pointer,
|
37
37
|
:data2, :pointer,
|
38
38
|
)
|
39
39
|
end
|
40
|
-
class
|
40
|
+
class RWops_windowsio_buffer < FFI::Struct
|
41
41
|
layout(
|
42
42
|
:data, :pointer,
|
43
43
|
:size, :size_t,
|
@@ -45,30 +45,30 @@ module SDL2
|
|
45
45
|
)
|
46
46
|
end
|
47
47
|
|
48
|
-
class
|
48
|
+
class RWops_windowsio < FFI::Struct
|
49
49
|
layout(
|
50
50
|
:append, :int,
|
51
51
|
:h, :pointer,
|
52
|
-
:buffer,
|
52
|
+
:buffer, RWops_windowsio_buffer,
|
53
53
|
)
|
54
54
|
end
|
55
55
|
|
56
|
-
class
|
56
|
+
class Default_RWops_hidden < FFI::Union
|
57
57
|
layout(
|
58
|
-
:mem,
|
59
|
-
:unknown,
|
58
|
+
:mem, RWops_mem,
|
59
|
+
:unknown, RWops_unknown,
|
60
60
|
)
|
61
61
|
end
|
62
62
|
|
63
|
-
class
|
63
|
+
class Win32_RWops_hidden < FFI::Union
|
64
64
|
layout(
|
65
|
-
:mem,
|
66
|
-
:unknown,
|
67
|
-
:windowsio,
|
65
|
+
:mem, RWops_mem,
|
66
|
+
:unknown, RWops_unknown,
|
67
|
+
:windowsio, RWops_windowsio,
|
68
68
|
)
|
69
69
|
end
|
70
70
|
|
71
|
-
class
|
71
|
+
class Default_RWops < FFI::Struct
|
72
72
|
layout(
|
73
73
|
:size, :pointer,
|
74
74
|
:seek, :pointer,
|
@@ -76,11 +76,11 @@ module SDL2
|
|
76
76
|
:write, :pointer,
|
77
77
|
:close, :pointer,
|
78
78
|
:type, :uint,
|
79
|
-
:hidden,
|
79
|
+
:hidden, Default_RWops_hidden,
|
80
80
|
)
|
81
81
|
end
|
82
82
|
|
83
|
-
class
|
83
|
+
class Win32_RWops < FFI::Struct
|
84
84
|
layout(
|
85
85
|
:size, :pointer,
|
86
86
|
:seek, :pointer,
|
@@ -88,14 +88,14 @@ module SDL2
|
|
88
88
|
:write, :pointer,
|
89
89
|
:close, :pointer,
|
90
90
|
:type, :uint,
|
91
|
-
:hidden,
|
91
|
+
:hidden, Win32_RWops_hidden
|
92
92
|
)
|
93
93
|
end
|
94
94
|
|
95
95
|
if RUBY_PLATFORM =~ /mswin|msys|mingw|cygwin/
|
96
|
-
|
96
|
+
RWops = Win32_RWops
|
97
97
|
else
|
98
|
-
|
98
|
+
RWops = Default_RWops
|
99
99
|
end
|
100
100
|
|
101
101
|
|
@@ -104,7 +104,7 @@ module SDL2
|
|
104
104
|
|
105
105
|
# Function
|
106
106
|
|
107
|
-
def self.setup_rwops_symbols()
|
107
|
+
def self.setup_rwops_symbols(output_error = false)
|
108
108
|
symbols = [
|
109
109
|
:SDL_RWFromFile,
|
110
110
|
:SDL_RWFromFP,
|
@@ -135,6 +135,36 @@ module SDL2
|
|
135
135
|
:SDL_WriteLE64,
|
136
136
|
:SDL_WriteBE64,
|
137
137
|
]
|
138
|
+
apis = {
|
139
|
+
:SDL_RWFromFile => :RWFromFile,
|
140
|
+
:SDL_RWFromFP => :RWFromFP,
|
141
|
+
:SDL_RWFromMem => :RWFromMem,
|
142
|
+
:SDL_RWFromConstMem => :RWFromConstMem,
|
143
|
+
:SDL_AllocRW => :AllocRW,
|
144
|
+
:SDL_FreeRW => :FreeRW,
|
145
|
+
:SDL_RWsize => :RWsize,
|
146
|
+
:SDL_RWseek => :RWseek,
|
147
|
+
:SDL_RWtell => :RWtell,
|
148
|
+
:SDL_RWread => :RWread,
|
149
|
+
:SDL_RWwrite => :RWwrite,
|
150
|
+
:SDL_RWclose => :RWclose,
|
151
|
+
:SDL_LoadFile_RW => :LoadFile_RW,
|
152
|
+
:SDL_LoadFile => :LoadFile,
|
153
|
+
:SDL_ReadU8 => :ReadU8,
|
154
|
+
:SDL_ReadLE16 => :ReadLE16,
|
155
|
+
:SDL_ReadBE16 => :ReadBE16,
|
156
|
+
:SDL_ReadLE32 => :ReadLE32,
|
157
|
+
:SDL_ReadBE32 => :ReadBE32,
|
158
|
+
:SDL_ReadLE64 => :ReadLE64,
|
159
|
+
:SDL_ReadBE64 => :ReadBE64,
|
160
|
+
:SDL_WriteU8 => :WriteU8,
|
161
|
+
:SDL_WriteLE16 => :WriteLE16,
|
162
|
+
:SDL_WriteBE16 => :WriteBE16,
|
163
|
+
:SDL_WriteLE32 => :WriteLE32,
|
164
|
+
:SDL_WriteBE32 => :WriteBE32,
|
165
|
+
:SDL_WriteLE64 => :WriteLE64,
|
166
|
+
:SDL_WriteBE64 => :WriteBE64,
|
167
|
+
}
|
138
168
|
args = {
|
139
169
|
:SDL_RWFromFile => [:pointer, :pointer],
|
140
170
|
:SDL_RWFromFP => [:pointer, :int],
|
@@ -197,9 +227,9 @@ module SDL2
|
|
197
227
|
}
|
198
228
|
symbols.each do |sym|
|
199
229
|
begin
|
200
|
-
attach_function sym, args[sym], retvals[sym]
|
230
|
+
attach_function apis[sym], sym, args[sym], retvals[sym]
|
201
231
|
rescue FFI::NotFoundError => error
|
202
|
-
$stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
|
232
|
+
$stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
|
203
233
|
end
|
204
234
|
end
|
205
235
|
end
|