sdl2-bindings 0.0.6 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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