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.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/ChangeLog +25 -0
  3. data/LICENSE.txt +1 -1
  4. data/README.md +38 -19
  5. data/lib/sdl2.rb +56 -99
  6. data/lib/sdl2_audio.rb +62 -20
  7. data/lib/sdl2_blendmode.rb +28 -25
  8. data/lib/sdl2_clipboard.rb +9 -4
  9. data/lib/sdl2_cpuinfo.rb +31 -8
  10. data/lib/sdl2_error.rb +17 -10
  11. data/lib/sdl2_events.rb +152 -130
  12. data/lib/sdl2_filesystem.rb +8 -4
  13. data/lib/sdl2_framerate.rb +11 -4
  14. data/lib/sdl2_gamecontroller.rb +130 -55
  15. data/lib/sdl2_gesture.rb +10 -4
  16. data/lib/sdl2_gfxPrimitives.rb +65 -4
  17. data/lib/sdl2_haptic.rb +76 -44
  18. data/lib/sdl2_hidapi.rb +139 -0
  19. data/lib/sdl2_hints.rb +146 -113
  20. data/lib/sdl2_image.rb +54 -7
  21. data/lib/sdl2_imageFilter.rb +36 -4
  22. data/lib/sdl2_joystick.rb +102 -38
  23. data/lib/sdl2_keyboard.rb +23 -5
  24. data/lib/sdl2_keycode.rb +8 -5
  25. data/lib/sdl2_log.rb +48 -32
  26. data/lib/sdl2_main.rb +21 -14
  27. data/lib/sdl2_messagebox.rb +26 -22
  28. data/lib/sdl2_misc.rb +48 -0
  29. data/lib/sdl2_mixer.rb +86 -11
  30. data/lib/sdl2_mouse.rb +44 -25
  31. data/lib/sdl2_pixels.rb +115 -99
  32. data/lib/sdl2_platform.rb +7 -4
  33. data/lib/sdl2_power.rb +12 -9
  34. data/lib/sdl2_rect.rb +18 -11
  35. data/lib/sdl2_render.rb +135 -21
  36. data/lib/sdl2_rotozoom.rb +14 -4
  37. data/lib/sdl2_rwops.rb +69 -39
  38. data/lib/sdl2_scancode.rb +250 -248
  39. data/lib/sdl2_sensor.rb +115 -0
  40. data/lib/sdl2_shape.rb +17 -11
  41. data/lib/sdl2_stdinc.rb +213 -42
  42. data/lib/sdl2_surface.rb +62 -15
  43. data/lib/sdl2_syswm.rb +47 -41
  44. data/lib/sdl2_timer.rb +16 -4
  45. data/lib/sdl2_touch.rb +18 -9
  46. data/lib/sdl2_ttf.rb +180 -25
  47. data/lib/sdl2_version.rb +13 -8
  48. data/lib/sdl2_video.rb +232 -103
  49. data/lib/sdl2_vulkan.rb +12 -4
  50. metadata +21 -4
data/lib/sdl2_version.rb CHANGED
@@ -6,13 +6,13 @@
6
6
 
7
7
  require 'ffi'
8
8
 
9
- module SDL2
9
+ module SDL
10
10
  extend FFI::Library
11
11
  # Define/Macro
12
12
 
13
- SDL_MAJOR_VERSION = 2
14
- SDL_MINOR_VERSION = 0
15
- SDL_PATCHLEVEL = 14
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 SDL_version < FFI::Struct
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 SDL2
9
+ module SDL
10
10
  extend FFI::Library
11
11
  # Define/Macro
12
12
 
13
- SDL_WINDOWPOS_UNDEFINED_MASK = 0x1FFF0000
14
- SDL_WINDOWPOS_CENTERED_MASK = 0x2FFF0000
13
+ WINDOWPOS_UNDEFINED_MASK = 0x1FFF0000
14
+ WINDOWPOS_CENTERED_MASK = 0x2FFF0000
15
15
 
16
16
  # Enum
17
17
 
18
- SDL_WINDOW_FULLSCREEN = 1
19
- SDL_WINDOW_OPENGL = 2
20
- SDL_WINDOW_SHOWN = 4
21
- SDL_WINDOW_HIDDEN = 8
22
- SDL_WINDOW_BORDERLESS = 16
23
- SDL_WINDOW_RESIZABLE = 32
24
- SDL_WINDOW_MINIMIZED = 64
25
- SDL_WINDOW_MAXIMIZED = 128
26
- SDL_WINDOW_INPUT_GRABBED = 256
27
- SDL_WINDOW_INPUT_FOCUS = 512
28
- SDL_WINDOW_MOUSE_FOCUS = 1024
29
- SDL_WINDOW_FULLSCREEN_DESKTOP = 4097
30
- SDL_WINDOW_FOREIGN = 2048
31
- SDL_WINDOW_ALLOW_HIGHDPI = 8192
32
- SDL_WINDOW_MOUSE_CAPTURE = 16384
33
- SDL_WINDOW_ALWAYS_ON_TOP = 32768
34
- SDL_WINDOW_SKIP_TASKBAR = 65536
35
- SDL_WINDOW_UTILITY = 131072
36
- SDL_WINDOW_TOOLTIP = 262144
37
- SDL_WINDOW_POPUP_MENU = 524288
38
- SDL_WINDOW_VULKAN = 268435456
39
- SDL_WINDOW_METAL = 536870912
40
- SDL_WINDOWEVENT_NONE = 0
41
- SDL_WINDOWEVENT_SHOWN = 1
42
- SDL_WINDOWEVENT_HIDDEN = 2
43
- SDL_WINDOWEVENT_EXPOSED = 3
44
- SDL_WINDOWEVENT_MOVED = 4
45
- SDL_WINDOWEVENT_RESIZED = 5
46
- SDL_WINDOWEVENT_SIZE_CHANGED = 6
47
- SDL_WINDOWEVENT_MINIMIZED = 7
48
- SDL_WINDOWEVENT_MAXIMIZED = 8
49
- SDL_WINDOWEVENT_RESTORED = 9
50
- SDL_WINDOWEVENT_ENTER = 10
51
- SDL_WINDOWEVENT_LEAVE = 11
52
- SDL_WINDOWEVENT_FOCUS_GAINED = 12
53
- SDL_WINDOWEVENT_FOCUS_LOST = 13
54
- SDL_WINDOWEVENT_CLOSE = 14
55
- SDL_WINDOWEVENT_TAKE_FOCUS = 15
56
- SDL_WINDOWEVENT_HIT_TEST = 16
57
- SDL_DISPLAYEVENT_NONE = 0
58
- SDL_DISPLAYEVENT_ORIENTATION = 1
59
- SDL_DISPLAYEVENT_CONNECTED = 2
60
- SDL_DISPLAYEVENT_DISCONNECTED = 3
61
- SDL_ORIENTATION_UNKNOWN = 0
62
- SDL_ORIENTATION_LANDSCAPE = 1
63
- SDL_ORIENTATION_LANDSCAPE_FLIPPED = 2
64
- SDL_ORIENTATION_PORTRAIT = 3
65
- SDL_ORIENTATION_PORTRAIT_FLIPPED = 4
66
- SDL_GL_RED_SIZE = 0
67
- SDL_GL_GREEN_SIZE = 1
68
- SDL_GL_BLUE_SIZE = 2
69
- SDL_GL_ALPHA_SIZE = 3
70
- SDL_GL_BUFFER_SIZE = 4
71
- SDL_GL_DOUBLEBUFFER = 5
72
- SDL_GL_DEPTH_SIZE = 6
73
- SDL_GL_STENCIL_SIZE = 7
74
- SDL_GL_ACCUM_RED_SIZE = 8
75
- SDL_GL_ACCUM_GREEN_SIZE = 9
76
- SDL_GL_ACCUM_BLUE_SIZE = 10
77
- SDL_GL_ACCUM_ALPHA_SIZE = 11
78
- SDL_GL_STEREO = 12
79
- SDL_GL_MULTISAMPLEBUFFERS = 13
80
- SDL_GL_MULTISAMPLESAMPLES = 14
81
- SDL_GL_ACCELERATED_VISUAL = 15
82
- SDL_GL_RETAINED_BACKING = 16
83
- SDL_GL_CONTEXT_MAJOR_VERSION = 17
84
- SDL_GL_CONTEXT_MINOR_VERSION = 18
85
- SDL_GL_CONTEXT_EGL = 19
86
- SDL_GL_CONTEXT_FLAGS = 20
87
- SDL_GL_CONTEXT_PROFILE_MASK = 21
88
- SDL_GL_SHARE_WITH_CURRENT_CONTEXT = 22
89
- SDL_GL_FRAMEBUFFER_SRGB_CAPABLE = 23
90
- SDL_GL_CONTEXT_RELEASE_BEHAVIOR = 24
91
- SDL_GL_CONTEXT_RESET_NOTIFICATION = 25
92
- SDL_GL_CONTEXT_NO_ERROR = 26
93
- SDL_GL_CONTEXT_PROFILE_CORE = 1
94
- SDL_GL_CONTEXT_PROFILE_COMPATIBILITY = 2
95
- SDL_GL_CONTEXT_PROFILE_ES = 4
96
- SDL_GL_CONTEXT_DEBUG_FLAG = 1
97
- SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG = 2
98
- SDL_GL_CONTEXT_ROBUST_ACCESS_FLAG = 4
99
- SDL_GL_CONTEXT_RESET_ISOLATION_FLAG = 8
100
- SDL_GL_CONTEXT_RELEASE_BEHAVIOR_NONE = 0
101
- SDL_GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = 1
102
- SDL_GL_CONTEXT_RESET_NO_NOTIFICATION = 0
103
- SDL_GL_CONTEXT_RESET_LOSE_CONTEXT = 1
104
- SDL_HITTEST_NORMAL = 0
105
- SDL_HITTEST_DRAGGABLE = 1
106
- SDL_HITTEST_RESIZE_TOPLEFT = 2
107
- SDL_HITTEST_RESIZE_TOP = 3
108
- SDL_HITTEST_RESIZE_TOPRIGHT = 4
109
- SDL_HITTEST_RESIZE_RIGHT = 5
110
- SDL_HITTEST_RESIZE_BOTTOMRIGHT = 6
111
- SDL_HITTEST_RESIZE_BOTTOM = 7
112
- SDL_HITTEST_RESIZE_BOTTOMLEFT = 8
113
- SDL_HITTEST_RESIZE_LEFT = 9
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 SDL_DisplayMode < FFI::Struct
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 SDL2
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.6
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: 2021-02-21 00:00:00.000000000 Z
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.2.3
103
+ rubygems_version: 3.3.4
87
104
  signing_key:
88
105
  specification_version: 4
89
106
  summary: Bindings for SDL2