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_version.rb
CHANGED
@@ -6,13 +6,13 @@
|
|
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
|
-
|
13
|
+
MAJOR_VERSION = 2
|
14
|
+
MINOR_VERSION = 0
|
15
|
+
PATCHLEVEL = 20
|
16
16
|
|
17
17
|
# Enum
|
18
18
|
|
@@ -22,7 +22,7 @@ module SDL2
|
|
22
22
|
|
23
23
|
# Struct
|
24
24
|
|
25
|
-
class
|
25
|
+
class Version < FFI::Struct
|
26
26
|
layout(
|
27
27
|
:major, :uchar,
|
28
28
|
:minor, :uchar,
|
@@ -33,12 +33,17 @@ module SDL2
|
|
33
33
|
|
34
34
|
# Function
|
35
35
|
|
36
|
-
def self.setup_version_symbols()
|
36
|
+
def self.setup_version_symbols(output_error = false)
|
37
37
|
symbols = [
|
38
38
|
:SDL_GetVersion,
|
39
39
|
:SDL_GetRevision,
|
40
40
|
:SDL_GetRevisionNumber,
|
41
41
|
]
|
42
|
+
apis = {
|
43
|
+
:SDL_GetVersion => :GetVersion,
|
44
|
+
:SDL_GetRevision => :GetRevision,
|
45
|
+
:SDL_GetRevisionNumber => :GetRevisionNumber,
|
46
|
+
}
|
42
47
|
args = {
|
43
48
|
:SDL_GetVersion => [:pointer],
|
44
49
|
:SDL_GetRevision => [],
|
@@ -51,9 +56,9 @@ module SDL2
|
|
51
56
|
}
|
52
57
|
symbols.each do |sym|
|
53
58
|
begin
|
54
|
-
attach_function sym, args[sym], retvals[sym]
|
59
|
+
attach_function apis[sym], sym, args[sym], retvals[sym]
|
55
60
|
rescue FFI::NotFoundError => error
|
56
|
-
$stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
|
61
|
+
$stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
|
57
62
|
end
|
58
63
|
end
|
59
64
|
end
|
data/lib/sdl2_video.rb
CHANGED
@@ -6,111 +6,118 @@
|
|
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
|
-
|
13
|
+
WINDOWPOS_UNDEFINED_MASK = 0x1FFF0000
|
14
|
+
WINDOWPOS_CENTERED_MASK = 0x2FFF0000
|
15
15
|
|
16
16
|
# Enum
|
17
17
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
18
|
+
WINDOW_FULLSCREEN = 1
|
19
|
+
WINDOW_OPENGL = 2
|
20
|
+
WINDOW_SHOWN = 4
|
21
|
+
WINDOW_HIDDEN = 8
|
22
|
+
WINDOW_BORDERLESS = 16
|
23
|
+
WINDOW_RESIZABLE = 32
|
24
|
+
WINDOW_MINIMIZED = 64
|
25
|
+
WINDOW_MAXIMIZED = 128
|
26
|
+
WINDOW_MOUSE_GRABBED = 256
|
27
|
+
WINDOW_INPUT_FOCUS = 512
|
28
|
+
WINDOW_MOUSE_FOCUS = 1024
|
29
|
+
WINDOW_FULLSCREEN_DESKTOP = 4097
|
30
|
+
WINDOW_FOREIGN = 2048
|
31
|
+
WINDOW_ALLOW_HIGHDPI = 8192
|
32
|
+
WINDOW_MOUSE_CAPTURE = 16384
|
33
|
+
WINDOW_ALWAYS_ON_TOP = 32768
|
34
|
+
WINDOW_SKIP_TASKBAR = 65536
|
35
|
+
WINDOW_UTILITY = 131072
|
36
|
+
WINDOW_TOOLTIP = 262144
|
37
|
+
WINDOW_POPUP_MENU = 524288
|
38
|
+
WINDOW_KEYBOARD_GRABBED = 1048576
|
39
|
+
WINDOW_VULKAN = 268435456
|
40
|
+
WINDOW_METAL = 536870912
|
41
|
+
WINDOW_INPUT_GRABBED = 256
|
42
|
+
WINDOWEVENT_NONE = 0
|
43
|
+
WINDOWEVENT_SHOWN = 1
|
44
|
+
WINDOWEVENT_HIDDEN = 2
|
45
|
+
WINDOWEVENT_EXPOSED = 3
|
46
|
+
WINDOWEVENT_MOVED = 4
|
47
|
+
WINDOWEVENT_RESIZED = 5
|
48
|
+
WINDOWEVENT_SIZE_CHANGED = 6
|
49
|
+
WINDOWEVENT_MINIMIZED = 7
|
50
|
+
WINDOWEVENT_MAXIMIZED = 8
|
51
|
+
WINDOWEVENT_RESTORED = 9
|
52
|
+
WINDOWEVENT_ENTER = 10
|
53
|
+
WINDOWEVENT_LEAVE = 11
|
54
|
+
WINDOWEVENT_FOCUS_GAINED = 12
|
55
|
+
WINDOWEVENT_FOCUS_LOST = 13
|
56
|
+
WINDOWEVENT_CLOSE = 14
|
57
|
+
WINDOWEVENT_TAKE_FOCUS = 15
|
58
|
+
WINDOWEVENT_HIT_TEST = 16
|
59
|
+
WINDOWEVENT_ICCPROF_CHANGED = 17
|
60
|
+
WINDOWEVENT_DISPLAY_CHANGED = 18
|
61
|
+
DISPLAYEVENT_NONE = 0
|
62
|
+
DISPLAYEVENT_ORIENTATION = 1
|
63
|
+
DISPLAYEVENT_CONNECTED = 2
|
64
|
+
DISPLAYEVENT_DISCONNECTED = 3
|
65
|
+
ORIENTATION_UNKNOWN = 0
|
66
|
+
ORIENTATION_LANDSCAPE = 1
|
67
|
+
ORIENTATION_LANDSCAPE_FLIPPED = 2
|
68
|
+
ORIENTATION_PORTRAIT = 3
|
69
|
+
ORIENTATION_PORTRAIT_FLIPPED = 4
|
70
|
+
FLASH_CANCEL = 0
|
71
|
+
FLASH_BRIEFLY = 1
|
72
|
+
FLASH_UNTIL_FOCUSED = 2
|
73
|
+
GL_RED_SIZE = 0
|
74
|
+
GL_GREEN_SIZE = 1
|
75
|
+
GL_BLUE_SIZE = 2
|
76
|
+
GL_ALPHA_SIZE = 3
|
77
|
+
GL_BUFFER_SIZE = 4
|
78
|
+
GL_DOUBLEBUFFER = 5
|
79
|
+
GL_DEPTH_SIZE = 6
|
80
|
+
GL_STENCIL_SIZE = 7
|
81
|
+
GL_ACCUM_RED_SIZE = 8
|
82
|
+
GL_ACCUM_GREEN_SIZE = 9
|
83
|
+
GL_ACCUM_BLUE_SIZE = 10
|
84
|
+
GL_ACCUM_ALPHA_SIZE = 11
|
85
|
+
GL_STEREO = 12
|
86
|
+
GL_MULTISAMPLEBUFFERS = 13
|
87
|
+
GL_MULTISAMPLESAMPLES = 14
|
88
|
+
GL_ACCELERATED_VISUAL = 15
|
89
|
+
GL_RETAINED_BACKING = 16
|
90
|
+
GL_CONTEXT_MAJOR_VERSION = 17
|
91
|
+
GL_CONTEXT_MINOR_VERSION = 18
|
92
|
+
GL_CONTEXT_EGL = 19
|
93
|
+
GL_CONTEXT_FLAGS = 20
|
94
|
+
GL_CONTEXT_PROFILE_MASK = 21
|
95
|
+
GL_SHARE_WITH_CURRENT_CONTEXT = 22
|
96
|
+
GL_FRAMEBUFFER_SRGB_CAPABLE = 23
|
97
|
+
GL_CONTEXT_RELEASE_BEHAVIOR = 24
|
98
|
+
GL_CONTEXT_RESET_NOTIFICATION = 25
|
99
|
+
GL_CONTEXT_NO_ERROR = 26
|
100
|
+
GL_CONTEXT_PROFILE_CORE = 1
|
101
|
+
GL_CONTEXT_PROFILE_COMPATIBILITY = 2
|
102
|
+
GL_CONTEXT_PROFILE_ES = 4
|
103
|
+
GL_CONTEXT_DEBUG_FLAG = 1
|
104
|
+
GL_CONTEXT_FORWARD_COMPATIBLE_FLAG = 2
|
105
|
+
GL_CONTEXT_ROBUST_ACCESS_FLAG = 4
|
106
|
+
GL_CONTEXT_RESET_ISOLATION_FLAG = 8
|
107
|
+
GL_CONTEXT_RELEASE_BEHAVIOR_NONE = 0
|
108
|
+
GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = 1
|
109
|
+
GL_CONTEXT_RESET_NO_NOTIFICATION = 0
|
110
|
+
GL_CONTEXT_RESET_LOSE_CONTEXT = 1
|
111
|
+
HITTEST_NORMAL = 0
|
112
|
+
HITTEST_DRAGGABLE = 1
|
113
|
+
HITTEST_RESIZE_TOPLEFT = 2
|
114
|
+
HITTEST_RESIZE_TOP = 3
|
115
|
+
HITTEST_RESIZE_TOPRIGHT = 4
|
116
|
+
HITTEST_RESIZE_RIGHT = 5
|
117
|
+
HITTEST_RESIZE_BOTTOMRIGHT = 6
|
118
|
+
HITTEST_RESIZE_BOTTOM = 7
|
119
|
+
HITTEST_RESIZE_BOTTOMLEFT = 8
|
120
|
+
HITTEST_RESIZE_LEFT = 9
|
114
121
|
|
115
122
|
# Typedef
|
116
123
|
|
@@ -118,6 +125,7 @@ module SDL2
|
|
118
125
|
typedef :int, :SDL_WindowEventID
|
119
126
|
typedef :int, :SDL_DisplayEventID
|
120
127
|
typedef :int, :SDL_DisplayOrientation
|
128
|
+
typedef :int, :SDL_FlashOperation
|
121
129
|
typedef :pointer, :SDL_GLContext
|
122
130
|
typedef :int, :SDL_GLattr
|
123
131
|
typedef :int, :SDL_GLprofile
|
@@ -129,7 +137,7 @@ module SDL2
|
|
129
137
|
|
130
138
|
# Struct
|
131
139
|
|
132
|
-
class
|
140
|
+
class DisplayMode < FFI::Struct
|
133
141
|
layout(
|
134
142
|
:format, :uint,
|
135
143
|
:w, :int,
|
@@ -142,7 +150,7 @@ module SDL2
|
|
142
150
|
|
143
151
|
# Function
|
144
152
|
|
145
|
-
def self.setup_video_symbols()
|
153
|
+
def self.setup_video_symbols(output_error = false)
|
146
154
|
symbols = [
|
147
155
|
:SDL_GetNumVideoDrivers,
|
148
156
|
:SDL_GetVideoDriver,
|
@@ -163,6 +171,7 @@ module SDL2
|
|
163
171
|
:SDL_GetWindowDisplayIndex,
|
164
172
|
:SDL_SetWindowDisplayMode,
|
165
173
|
:SDL_GetWindowDisplayMode,
|
174
|
+
:SDL_GetWindowICCProfile,
|
166
175
|
:SDL_GetWindowPixelFormat,
|
167
176
|
:SDL_CreateWindow,
|
168
177
|
:SDL_CreateWindowFrom,
|
@@ -185,6 +194,7 @@ module SDL2
|
|
185
194
|
:SDL_GetWindowMaximumSize,
|
186
195
|
:SDL_SetWindowBordered,
|
187
196
|
:SDL_SetWindowResizable,
|
197
|
+
:SDL_SetWindowAlwaysOnTop,
|
188
198
|
:SDL_ShowWindow,
|
189
199
|
:SDL_HideWindow,
|
190
200
|
:SDL_RaiseWindow,
|
@@ -196,8 +206,14 @@ module SDL2
|
|
196
206
|
:SDL_UpdateWindowSurface,
|
197
207
|
:SDL_UpdateWindowSurfaceRects,
|
198
208
|
:SDL_SetWindowGrab,
|
209
|
+
:SDL_SetWindowKeyboardGrab,
|
210
|
+
:SDL_SetWindowMouseGrab,
|
199
211
|
:SDL_GetWindowGrab,
|
212
|
+
:SDL_GetWindowKeyboardGrab,
|
213
|
+
:SDL_GetWindowMouseGrab,
|
200
214
|
:SDL_GetGrabbedWindow,
|
215
|
+
:SDL_SetWindowMouseRect,
|
216
|
+
:SDL_GetWindowMouseRect,
|
201
217
|
:SDL_SetWindowBrightness,
|
202
218
|
:SDL_GetWindowBrightness,
|
203
219
|
:SDL_SetWindowOpacity,
|
@@ -207,6 +223,7 @@ module SDL2
|
|
207
223
|
:SDL_SetWindowGammaRamp,
|
208
224
|
:SDL_GetWindowGammaRamp,
|
209
225
|
:SDL_SetWindowHitTest,
|
226
|
+
:SDL_FlashWindow,
|
210
227
|
:SDL_DestroyWindow,
|
211
228
|
:SDL_IsScreenSaverEnabled,
|
212
229
|
:SDL_EnableScreenSaver,
|
@@ -228,6 +245,100 @@ module SDL2
|
|
228
245
|
:SDL_GL_SwapWindow,
|
229
246
|
:SDL_GL_DeleteContext,
|
230
247
|
]
|
248
|
+
apis = {
|
249
|
+
:SDL_GetNumVideoDrivers => :GetNumVideoDrivers,
|
250
|
+
:SDL_GetVideoDriver => :GetVideoDriver,
|
251
|
+
:SDL_VideoInit => :VideoInit,
|
252
|
+
:SDL_VideoQuit => :VideoQuit,
|
253
|
+
:SDL_GetCurrentVideoDriver => :GetCurrentVideoDriver,
|
254
|
+
:SDL_GetNumVideoDisplays => :GetNumVideoDisplays,
|
255
|
+
:SDL_GetDisplayName => :GetDisplayName,
|
256
|
+
:SDL_GetDisplayBounds => :GetDisplayBounds,
|
257
|
+
:SDL_GetDisplayUsableBounds => :GetDisplayUsableBounds,
|
258
|
+
:SDL_GetDisplayDPI => :GetDisplayDPI,
|
259
|
+
:SDL_GetDisplayOrientation => :GetDisplayOrientation,
|
260
|
+
:SDL_GetNumDisplayModes => :GetNumDisplayModes,
|
261
|
+
:SDL_GetDisplayMode => :GetDisplayMode,
|
262
|
+
:SDL_GetDesktopDisplayMode => :GetDesktopDisplayMode,
|
263
|
+
:SDL_GetCurrentDisplayMode => :GetCurrentDisplayMode,
|
264
|
+
:SDL_GetClosestDisplayMode => :GetClosestDisplayMode,
|
265
|
+
:SDL_GetWindowDisplayIndex => :GetWindowDisplayIndex,
|
266
|
+
:SDL_SetWindowDisplayMode => :SetWindowDisplayMode,
|
267
|
+
:SDL_GetWindowDisplayMode => :GetWindowDisplayMode,
|
268
|
+
:SDL_GetWindowICCProfile => :GetWindowICCProfile,
|
269
|
+
:SDL_GetWindowPixelFormat => :GetWindowPixelFormat,
|
270
|
+
:SDL_CreateWindow => :CreateWindow,
|
271
|
+
:SDL_CreateWindowFrom => :CreateWindowFrom,
|
272
|
+
:SDL_GetWindowID => :GetWindowID,
|
273
|
+
:SDL_GetWindowFromID => :GetWindowFromID,
|
274
|
+
:SDL_GetWindowFlags => :GetWindowFlags,
|
275
|
+
:SDL_SetWindowTitle => :SetWindowTitle,
|
276
|
+
:SDL_GetWindowTitle => :GetWindowTitle,
|
277
|
+
:SDL_SetWindowIcon => :SetWindowIcon,
|
278
|
+
:SDL_SetWindowData => :SetWindowData,
|
279
|
+
:SDL_GetWindowData => :GetWindowData,
|
280
|
+
:SDL_SetWindowPosition => :SetWindowPosition,
|
281
|
+
:SDL_GetWindowPosition => :GetWindowPosition,
|
282
|
+
:SDL_SetWindowSize => :SetWindowSize,
|
283
|
+
:SDL_GetWindowSize => :GetWindowSize,
|
284
|
+
:SDL_GetWindowBordersSize => :GetWindowBordersSize,
|
285
|
+
:SDL_SetWindowMinimumSize => :SetWindowMinimumSize,
|
286
|
+
:SDL_GetWindowMinimumSize => :GetWindowMinimumSize,
|
287
|
+
:SDL_SetWindowMaximumSize => :SetWindowMaximumSize,
|
288
|
+
:SDL_GetWindowMaximumSize => :GetWindowMaximumSize,
|
289
|
+
:SDL_SetWindowBordered => :SetWindowBordered,
|
290
|
+
:SDL_SetWindowResizable => :SetWindowResizable,
|
291
|
+
:SDL_SetWindowAlwaysOnTop => :SetWindowAlwaysOnTop,
|
292
|
+
:SDL_ShowWindow => :ShowWindow,
|
293
|
+
:SDL_HideWindow => :HideWindow,
|
294
|
+
:SDL_RaiseWindow => :RaiseWindow,
|
295
|
+
:SDL_MaximizeWindow => :MaximizeWindow,
|
296
|
+
:SDL_MinimizeWindow => :MinimizeWindow,
|
297
|
+
:SDL_RestoreWindow => :RestoreWindow,
|
298
|
+
:SDL_SetWindowFullscreen => :SetWindowFullscreen,
|
299
|
+
:SDL_GetWindowSurface => :GetWindowSurface,
|
300
|
+
:SDL_UpdateWindowSurface => :UpdateWindowSurface,
|
301
|
+
:SDL_UpdateWindowSurfaceRects => :UpdateWindowSurfaceRects,
|
302
|
+
:SDL_SetWindowGrab => :SetWindowGrab,
|
303
|
+
:SDL_SetWindowKeyboardGrab => :SetWindowKeyboardGrab,
|
304
|
+
:SDL_SetWindowMouseGrab => :SetWindowMouseGrab,
|
305
|
+
:SDL_GetWindowGrab => :GetWindowGrab,
|
306
|
+
:SDL_GetWindowKeyboardGrab => :GetWindowKeyboardGrab,
|
307
|
+
:SDL_GetWindowMouseGrab => :GetWindowMouseGrab,
|
308
|
+
:SDL_GetGrabbedWindow => :GetGrabbedWindow,
|
309
|
+
:SDL_SetWindowMouseRect => :SetWindowMouseRect,
|
310
|
+
:SDL_GetWindowMouseRect => :GetWindowMouseRect,
|
311
|
+
:SDL_SetWindowBrightness => :SetWindowBrightness,
|
312
|
+
:SDL_GetWindowBrightness => :GetWindowBrightness,
|
313
|
+
:SDL_SetWindowOpacity => :SetWindowOpacity,
|
314
|
+
:SDL_GetWindowOpacity => :GetWindowOpacity,
|
315
|
+
:SDL_SetWindowModalFor => :SetWindowModalFor,
|
316
|
+
:SDL_SetWindowInputFocus => :SetWindowInputFocus,
|
317
|
+
:SDL_SetWindowGammaRamp => :SetWindowGammaRamp,
|
318
|
+
:SDL_GetWindowGammaRamp => :GetWindowGammaRamp,
|
319
|
+
:SDL_SetWindowHitTest => :SetWindowHitTest,
|
320
|
+
:SDL_FlashWindow => :FlashWindow,
|
321
|
+
:SDL_DestroyWindow => :DestroyWindow,
|
322
|
+
:SDL_IsScreenSaverEnabled => :IsScreenSaverEnabled,
|
323
|
+
:SDL_EnableScreenSaver => :EnableScreenSaver,
|
324
|
+
:SDL_DisableScreenSaver => :DisableScreenSaver,
|
325
|
+
:SDL_GL_LoadLibrary => :GL_LoadLibrary,
|
326
|
+
:SDL_GL_GetProcAddress => :GL_GetProcAddress,
|
327
|
+
:SDL_GL_UnloadLibrary => :GL_UnloadLibrary,
|
328
|
+
:SDL_GL_ExtensionSupported => :GL_ExtensionSupported,
|
329
|
+
:SDL_GL_ResetAttributes => :GL_ResetAttributes,
|
330
|
+
:SDL_GL_SetAttribute => :GL_SetAttribute,
|
331
|
+
:SDL_GL_GetAttribute => :GL_GetAttribute,
|
332
|
+
:SDL_GL_CreateContext => :GL_CreateContext,
|
333
|
+
:SDL_GL_MakeCurrent => :GL_MakeCurrent,
|
334
|
+
:SDL_GL_GetCurrentWindow => :GL_GetCurrentWindow,
|
335
|
+
:SDL_GL_GetCurrentContext => :GL_GetCurrentContext,
|
336
|
+
:SDL_GL_GetDrawableSize => :GL_GetDrawableSize,
|
337
|
+
:SDL_GL_SetSwapInterval => :GL_SetSwapInterval,
|
338
|
+
:SDL_GL_GetSwapInterval => :GL_GetSwapInterval,
|
339
|
+
:SDL_GL_SwapWindow => :GL_SwapWindow,
|
340
|
+
:SDL_GL_DeleteContext => :GL_DeleteContext,
|
341
|
+
}
|
231
342
|
args = {
|
232
343
|
:SDL_GetNumVideoDrivers => [],
|
233
344
|
:SDL_GetVideoDriver => [:int],
|
@@ -248,6 +359,7 @@ module SDL2
|
|
248
359
|
:SDL_GetWindowDisplayIndex => [:pointer],
|
249
360
|
:SDL_SetWindowDisplayMode => [:pointer, :pointer],
|
250
361
|
:SDL_GetWindowDisplayMode => [:pointer, :pointer],
|
362
|
+
:SDL_GetWindowICCProfile => [:pointer, :pointer],
|
251
363
|
:SDL_GetWindowPixelFormat => [:pointer],
|
252
364
|
:SDL_CreateWindow => [:pointer, :int, :int, :int, :int, :uint],
|
253
365
|
:SDL_CreateWindowFrom => [:pointer],
|
@@ -270,6 +382,7 @@ module SDL2
|
|
270
382
|
:SDL_GetWindowMaximumSize => [:pointer, :pointer, :pointer],
|
271
383
|
:SDL_SetWindowBordered => [:pointer, :int],
|
272
384
|
:SDL_SetWindowResizable => [:pointer, :int],
|
385
|
+
:SDL_SetWindowAlwaysOnTop => [:pointer, :int],
|
273
386
|
:SDL_ShowWindow => [:pointer],
|
274
387
|
:SDL_HideWindow => [:pointer],
|
275
388
|
:SDL_RaiseWindow => [:pointer],
|
@@ -281,8 +394,14 @@ module SDL2
|
|
281
394
|
:SDL_UpdateWindowSurface => [:pointer],
|
282
395
|
:SDL_UpdateWindowSurfaceRects => [:pointer, :pointer, :int],
|
283
396
|
:SDL_SetWindowGrab => [:pointer, :int],
|
397
|
+
:SDL_SetWindowKeyboardGrab => [:pointer, :int],
|
398
|
+
:SDL_SetWindowMouseGrab => [:pointer, :int],
|
284
399
|
:SDL_GetWindowGrab => [:pointer],
|
400
|
+
:SDL_GetWindowKeyboardGrab => [:pointer],
|
401
|
+
:SDL_GetWindowMouseGrab => [:pointer],
|
285
402
|
:SDL_GetGrabbedWindow => [],
|
403
|
+
:SDL_SetWindowMouseRect => [:pointer, :pointer],
|
404
|
+
:SDL_GetWindowMouseRect => [:pointer],
|
286
405
|
:SDL_SetWindowBrightness => [:pointer, :float],
|
287
406
|
:SDL_GetWindowBrightness => [:pointer],
|
288
407
|
:SDL_SetWindowOpacity => [:pointer, :float],
|
@@ -292,6 +411,7 @@ module SDL2
|
|
292
411
|
:SDL_SetWindowGammaRamp => [:pointer, :pointer, :pointer, :pointer],
|
293
412
|
:SDL_GetWindowGammaRamp => [:pointer, :pointer, :pointer, :pointer],
|
294
413
|
:SDL_SetWindowHitTest => [:pointer, :SDL_HitTest, :pointer],
|
414
|
+
:SDL_FlashWindow => [:pointer, :int],
|
295
415
|
:SDL_DestroyWindow => [:pointer],
|
296
416
|
:SDL_IsScreenSaverEnabled => [],
|
297
417
|
:SDL_EnableScreenSaver => [],
|
@@ -333,6 +453,7 @@ module SDL2
|
|
333
453
|
:SDL_GetWindowDisplayIndex => :int,
|
334
454
|
:SDL_SetWindowDisplayMode => :int,
|
335
455
|
:SDL_GetWindowDisplayMode => :int,
|
456
|
+
:SDL_GetWindowICCProfile => :pointer,
|
336
457
|
:SDL_GetWindowPixelFormat => :uint,
|
337
458
|
:SDL_CreateWindow => :pointer,
|
338
459
|
:SDL_CreateWindowFrom => :pointer,
|
@@ -355,6 +476,7 @@ module SDL2
|
|
355
476
|
:SDL_GetWindowMaximumSize => :void,
|
356
477
|
:SDL_SetWindowBordered => :void,
|
357
478
|
:SDL_SetWindowResizable => :void,
|
479
|
+
:SDL_SetWindowAlwaysOnTop => :void,
|
358
480
|
:SDL_ShowWindow => :void,
|
359
481
|
:SDL_HideWindow => :void,
|
360
482
|
:SDL_RaiseWindow => :void,
|
@@ -366,8 +488,14 @@ module SDL2
|
|
366
488
|
:SDL_UpdateWindowSurface => :int,
|
367
489
|
:SDL_UpdateWindowSurfaceRects => :int,
|
368
490
|
:SDL_SetWindowGrab => :void,
|
491
|
+
:SDL_SetWindowKeyboardGrab => :void,
|
492
|
+
:SDL_SetWindowMouseGrab => :void,
|
369
493
|
:SDL_GetWindowGrab => :int,
|
494
|
+
:SDL_GetWindowKeyboardGrab => :int,
|
495
|
+
:SDL_GetWindowMouseGrab => :int,
|
370
496
|
:SDL_GetGrabbedWindow => :pointer,
|
497
|
+
:SDL_SetWindowMouseRect => :int,
|
498
|
+
:SDL_GetWindowMouseRect => :pointer,
|
371
499
|
:SDL_SetWindowBrightness => :int,
|
372
500
|
:SDL_GetWindowBrightness => :float,
|
373
501
|
:SDL_SetWindowOpacity => :int,
|
@@ -377,6 +505,7 @@ module SDL2
|
|
377
505
|
:SDL_SetWindowGammaRamp => :int,
|
378
506
|
:SDL_GetWindowGammaRamp => :int,
|
379
507
|
:SDL_SetWindowHitTest => :int,
|
508
|
+
:SDL_FlashWindow => :int,
|
380
509
|
:SDL_DestroyWindow => :void,
|
381
510
|
:SDL_IsScreenSaverEnabled => :int,
|
382
511
|
:SDL_EnableScreenSaver => :void,
|
@@ -400,9 +529,9 @@ module SDL2
|
|
400
529
|
}
|
401
530
|
symbols.each do |sym|
|
402
531
|
begin
|
403
|
-
attach_function sym, args[sym], retvals[sym]
|
532
|
+
attach_function apis[sym], sym, args[sym], retvals[sym]
|
404
533
|
rescue FFI::NotFoundError => error
|
405
|
-
$stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
|
534
|
+
$stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
|
406
535
|
end
|
407
536
|
end
|
408
537
|
end
|
data/lib/sdl2_vulkan.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
|
|
@@ -26,7 +26,7 @@ module SDL2
|
|
26
26
|
|
27
27
|
# Function
|
28
28
|
|
29
|
-
def self.setup_vulkan_symbols()
|
29
|
+
def self.setup_vulkan_symbols(output_error = false)
|
30
30
|
symbols = [
|
31
31
|
:SDL_Vulkan_LoadLibrary,
|
32
32
|
:SDL_Vulkan_GetVkGetInstanceProcAddr,
|
@@ -35,6 +35,14 @@ module SDL2
|
|
35
35
|
:SDL_Vulkan_CreateSurface,
|
36
36
|
:SDL_Vulkan_GetDrawableSize,
|
37
37
|
]
|
38
|
+
apis = {
|
39
|
+
:SDL_Vulkan_LoadLibrary => :Vulkan_LoadLibrary,
|
40
|
+
:SDL_Vulkan_GetVkGetInstanceProcAddr => :Vulkan_GetVkGetInstanceProcAddr,
|
41
|
+
:SDL_Vulkan_UnloadLibrary => :Vulkan_UnloadLibrary,
|
42
|
+
:SDL_Vulkan_GetInstanceExtensions => :Vulkan_GetInstanceExtensions,
|
43
|
+
:SDL_Vulkan_CreateSurface => :Vulkan_CreateSurface,
|
44
|
+
:SDL_Vulkan_GetDrawableSize => :Vulkan_GetDrawableSize,
|
45
|
+
}
|
38
46
|
args = {
|
39
47
|
:SDL_Vulkan_LoadLibrary => [:pointer],
|
40
48
|
:SDL_Vulkan_GetVkGetInstanceProcAddr => [],
|
@@ -53,9 +61,9 @@ module SDL2
|
|
53
61
|
}
|
54
62
|
symbols.each do |sym|
|
55
63
|
begin
|
56
|
-
attach_function sym, args[sym], retvals[sym]
|
64
|
+
attach_function apis[sym], sym, args[sym], retvals[sym]
|
57
65
|
rescue FFI::NotFoundError => error
|
58
|
-
$stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
|
66
|
+
$stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
|
59
67
|
end
|
60
68
|
end
|
61
69
|
end
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sdl2-bindings
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- vaiorabbit
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
12
|
-
dependencies:
|
11
|
+
date: 2022-02-12 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: ffi
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.15'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.15'
|
13
27
|
description: 'Ruby bindings for SDL2.
|
14
28
|
|
15
29
|
'
|
@@ -35,6 +49,7 @@ files:
|
|
35
49
|
- lib/sdl2_gesture.rb
|
36
50
|
- lib/sdl2_gfxPrimitives.rb
|
37
51
|
- lib/sdl2_haptic.rb
|
52
|
+
- lib/sdl2_hidapi.rb
|
38
53
|
- lib/sdl2_hints.rb
|
39
54
|
- lib/sdl2_image.rb
|
40
55
|
- lib/sdl2_imageFilter.rb
|
@@ -44,6 +59,7 @@ files:
|
|
44
59
|
- lib/sdl2_log.rb
|
45
60
|
- lib/sdl2_main.rb
|
46
61
|
- lib/sdl2_messagebox.rb
|
62
|
+
- lib/sdl2_misc.rb
|
47
63
|
- lib/sdl2_mixer.rb
|
48
64
|
- lib/sdl2_mouse.rb
|
49
65
|
- lib/sdl2_pixels.rb
|
@@ -54,6 +70,7 @@ files:
|
|
54
70
|
- lib/sdl2_rotozoom.rb
|
55
71
|
- lib/sdl2_rwops.rb
|
56
72
|
- lib/sdl2_scancode.rb
|
73
|
+
- lib/sdl2_sensor.rb
|
57
74
|
- lib/sdl2_shape.rb
|
58
75
|
- lib/sdl2_stdinc.rb
|
59
76
|
- lib/sdl2_surface.rb
|
@@ -83,7 +100,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
83
100
|
- !ruby/object:Gem::Version
|
84
101
|
version: '0'
|
85
102
|
requirements: []
|
86
|
-
rubygems_version: 3.
|
103
|
+
rubygems_version: 3.3.4
|
87
104
|
signing_key:
|
88
105
|
specification_version: 4
|
89
106
|
summary: Bindings for SDL2
|