sdl3-bindings 1.0.0.beta.5 → 1.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3bb5882fb2e1c11b04a384f01e62373f2f7f36c1c250309d35c08f3b63857c00
4
- data.tar.gz: cc9637126d926dd0ce3e9cb0fcf7c1d9ad135912984750b6500479755432d3ac
3
+ metadata.gz: 7b774bb4f1ac6496e89db960c4bc6e75bc78c6a63169f746f769d00901478bc7
4
+ data.tar.gz: 7ee1b499852bba110c501dd9c052ee9707f8f954c076b67e3e7211453b6be4bb
5
5
  SHA512:
6
- metadata.gz: cd81798980a65f5878eac2e63eeae4eef01954eb9fe597f63c790933b64469ca43112d35824fde7226f7f7aec0ef6e8b7700fd10e1097a7d69d172fd7fd23fdf
7
- data.tar.gz: 16956a53849700784dfa16b41d2a878bfa374b7933f67343d84a448366e65ce8f8b114d624911982131d1f1ee60fc8cddcd236e7f7142c076417194e7a6885d8
6
+ metadata.gz: a6c94bdaba07ec88ace683965cdfdcaa50a96c8f147487c944fc0c5e5158a8ad0af5de3f2de924f979fb3cafd9c119179e8dddb174be4dd26bc4901b81a850e4
7
+ data.tar.gz: 1cd02de85363f81d2da049668008b4511d4fb9cbede8967262fb66db1c3a8a6bbd9e687c69b0f49c409b82d3935d871de33c43ba57a66ad9380f2aaeb3cf9912
data/ChangeLog CHANGED
@@ -1,3 +1,16 @@
1
+ 2026-01-10 vaiorabbit <http://twitter.com/vaiorabbit>
2
+
3
+ * SDL 3.4.0 ( https://github.com/libsdl-org/SDL/releases/tag/release-3.4.0 )
4
+ * SDL_image 3.2.6 ( https://github.com/libsdl-org/SDL_image/releases/tag/release-3.2.6 )
5
+ * SDL_mixer 63f2c5a21760e3f1ad406ec8a8b18c6346f204b3 ( https://github.com/libsdl-org/SDL_mixer/commit/63f2c5a21760e3f1ad406ec8a8b18c6346f204b3 )
6
+ * SDL_sound 0d55b53a78f2c82683b8723c4c8cecdc20396f7d ( https://github.com/icculus/SDL_sound/commit/0d55b53a78f2c82683b8723c4c8cecdc20396f7d )
7
+ * SDL_ttf 24990fdfd68936022d9b9f6158f80a48ad3c30ab ( https://github.com/libsdl-org/SDL_ttf/commit/24990fdfd68936022d9b9f6158f80a48ad3c30ab )
8
+ * Added AUDIO_DEVICE_DEFAULT_PLAYBACK and AUDIO_DEVICE_DEFAULT_RECORDING
9
+
10
+ 2025-12-28 vaiorabbit <http://twitter.com/vaiorabbit>
11
+
12
+ * SDL 3.2.28 ( https://github.com/libsdl-org/SDL/releases/tag/release-3.2.28 )
13
+
1
14
  2025-07-19 vaiorabbit <http://twitter.com/vaiorabbit>
2
15
 
3
16
  * SDL 3.2.18 ( https://github.com/libsdl-org/SDL/releases/tag/release-3.2.18 )
data/LICENSE.txt CHANGED
@@ -1,5 +1,5 @@
1
1
  sdl3-bindings : SDL3 wrapper for Ruby
2
- Copyright (c) 2015-2025 vaiorabbit <http://twitter.com/vaiorabbit>
2
+ Copyright (c) 2015-2026 vaiorabbit <http://twitter.com/vaiorabbit>
3
3
 
4
4
  This software is provided 'as-is', without any express or implied
5
5
  warranty. In no event will the authors be held liable for any damages
data/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  # sdl3-bindings : SDL3 wrapper for Ruby #
4
4
 
5
5
  * Created : 2015-09-19
6
- * Last modified : 2025-07-19
6
+ * Last modified : 2026-01-10
7
7
 
8
8
  ## Features ##
9
9
 
@@ -23,12 +23,12 @@ See the project below to learn how to use this library:
23
23
 
24
24
  ## Target version ##
25
25
 
26
- * [2025-05-10]
27
- * SDL : 3.2.18
28
- * SDL_image : 3.2.4
29
- * SDL_mixer : dd801fdd9af752c99c32a2356d2ebdf1ebb7ebaa
30
- * SDL_sound : 68d18fe0a1105d1043b9f62d5e37fca19c0cd2c1
31
- * SDL_ttf : 3.2.2
26
+ * [2026-01-20]
27
+ * SDL : [3.4.0](https://github.com/libsdl-org/SDL/releases/tag/release-3.4.0)
28
+ * SDL_image : [3.2.6](https://github.com/libsdl-org/SDL_image/releases/tag/release-3.2.6)
29
+ * SDL_mixer : [63f2c5a21760e3f1ad406ec8a8b18c6346f204b3](https://github.com/libsdl-org/SDL_mixer/commit/63f2c5a21760e3f1ad406ec8a8b18c6346f204b3)
30
+ * SDL_sound : [0d55b53a78f2c82683b8723c4c8cecdc20396f7d](https://github.com/icculus/SDL_sound/commit/0d55b53a78f2c82683b8723c4c8cecdc20396f7d)
31
+ * SDL_ttf : [24990fdfd68936022d9b9f6158f80a48ad3c30ab](https://github.com/libsdl-org/SDL_ttf/commit/24990fdfd68936022d9b9f6158f80a48ad3c30ab)
32
32
 
33
33
 
34
34
  <details>
@@ -108,16 +108,30 @@ See the project below to learn how to use this library:
108
108
  * SDL_mixer : b3a6fa8b5ad183f0a1bad02527d89a00c3c90106
109
109
  * SDL_sound : 68d18fe0a1105d1043b9f62d5e37fca19c0cd2c1
110
110
  * SDL_ttf : 3.2.2
111
+ * [2025-05-10]
112
+ * SDL : 3.2.18
113
+ * SDL_image : 3.2.4
114
+ * SDL_mixer : dd801fdd9af752c99c32a2356d2ebdf1ebb7ebaa
115
+ * SDL_sound : 68d18fe0a1105d1043b9f62d5e37fca19c0cd2c1
116
+ * SDL_ttf : 3.2.2
117
+ * [2025-12-28]
118
+ * SDL : 3.2.28
119
+ * SDL_image : 3.2.4
120
+ * SDL_mixer : dd801fdd9af752c99c32a2356d2ebdf1ebb7ebaa
121
+ * SDL_sound : 68d18fe0a1105d1043b9f62d5e37fca19c0cd2c1
122
+ * SDL_ttf : 3.2.2
111
123
 
112
124
  </details>
113
125
 
114
126
  ## Tested Environments ##
115
127
 
116
- * [2025-03-29] Windows 11 (24H2), ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +PRISM [x64-mingw-ucrt]
128
+ * [2026-01-10] Windows 11 (25H2), ruby 4.0.0 (2025-12-25 revision 553f1675f3) +PRISM [x64-mingw-ucrt]
117
129
 
118
130
  <details>
119
131
  <summary>Older Environments</summary>
120
132
 
133
+ * [2025-12-28] Windows 11 (25H2), ruby 4.0.0 (2025-12-25 revision 553f1675f3) +PRISM [x64-mingw-ucrt]
134
+ * [2025-03-29] Windows 11 (24H2), ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +PRISM [x64-mingw-ucrt]
121
135
  * [2025-01-26] Windows 11 (24H2), ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +PRISM [x64-mingw-ucrt]
122
136
  * [2023-02-05] Ubuntu Linux 22.04 LTS (jammy) on WSL/Windows 11, ruby 3.2.0 (2022-12-25 revision a528908271) [x86_64-linux]
123
137
  * [2023-01-07] Windows 11 (22H2), ruby 3.2.0 (2022-12-25 revision a528908271) [x64-mingw-ucrt]
data/lib/sdl3_atomic.rb CHANGED
@@ -49,6 +49,7 @@ module SDL
49
49
  [:CompareAndSwapAtomicU32, :SDL_CompareAndSwapAtomicU32, [:pointer, :uint, :uint], :bool],
50
50
  [:SetAtomicU32, :SDL_SetAtomicU32, [:pointer, :uint], :uint],
51
51
  [:GetAtomicU32, :SDL_GetAtomicU32, [:pointer], :uint],
52
+ [:AddAtomicU32, :SDL_AddAtomicU32, [:pointer, :int], :uint],
52
53
  [:CompareAndSwapAtomicPointer, :SDL_CompareAndSwapAtomicPointer, [:pointer, :pointer, :pointer], :bool],
53
54
  [:SetAtomicPointer, :SDL_SetAtomicPointer, [:pointer, :pointer], :pointer],
54
55
  [:GetAtomicPointer, :SDL_GetAtomicPointer, [:pointer], :pointer],
data/lib/sdl3_audio.rb CHANGED
@@ -14,6 +14,8 @@ module SDL
14
14
  AUDIO_MASK_FLOAT = 1 << 8
15
15
  AUDIO_MASK_BIG_ENDIAN = 1 << 12
16
16
  AUDIO_MASK_SIGNED = 1 << 15
17
+ AUDIO_DEVICE_DEFAULT_PLAYBACK = 0xFFFFFFFF
18
+ AUDIO_DEVICE_DEFAULT_RECORDING = 0xFFFFFFFE
17
19
 
18
20
  # Enum
19
21
 
@@ -34,6 +36,7 @@ module SDL
34
36
 
35
37
  typedef :int, :SDL_AudioFormat
36
38
  typedef :uint, :SDL_AudioDeviceID
39
+ callback :SDL_AudioStreamDataCompleteCallback, [:pointer, :pointer, :int], :void
37
40
  callback :SDL_AudioStreamCallback, [:pointer, :pointer, :int, :int], :void
38
41
  callback :SDL_AudioPostmixCallback, [:pointer, :pointer, :pointer, :int], :void
39
42
 
@@ -87,6 +90,8 @@ module SDL
87
90
  [:SetAudioStreamInputChannelMap, :SDL_SetAudioStreamInputChannelMap, [:pointer, :pointer, :int], :bool],
88
91
  [:SetAudioStreamOutputChannelMap, :SDL_SetAudioStreamOutputChannelMap, [:pointer, :pointer, :int], :bool],
89
92
  [:PutAudioStreamData, :SDL_PutAudioStreamData, [:pointer, :pointer, :int], :bool],
93
+ [:PutAudioStreamDataNoCopy, :SDL_PutAudioStreamDataNoCopy, [:pointer, :pointer, :int, :SDL_AudioStreamDataCompleteCallback, :pointer], :bool],
94
+ [:PutAudioStreamPlanarData, :SDL_PutAudioStreamPlanarData, [:pointer, :pointer, :int, :int], :bool],
90
95
  [:GetAudioStreamData, :SDL_GetAudioStreamData, [:pointer, :pointer, :int], :int],
91
96
  [:GetAudioStreamAvailable, :SDL_GetAudioStreamAvailable, [:pointer], :int],
92
97
  [:GetAudioStreamQueued, :SDL_GetAudioStreamQueued, [:pointer], :int],
data/lib/sdl3_camera.rb CHANGED
@@ -16,11 +16,15 @@ module SDL
16
16
  CAMERA_POSITION_UNKNOWN = 0
17
17
  CAMERA_POSITION_FRONT_FACING = 1
18
18
  CAMERA_POSITION_BACK_FACING = 2
19
+ CAMERA_PERMISSION_STATE_DENIED = -1
20
+ CAMERA_PERMISSION_STATE_PENDING = 0
21
+ CAMERA_PERMISSION_STATE_APPROVED = 1
19
22
 
20
23
  # Typedef
21
24
 
22
25
  typedef :uint, :SDL_CameraID
23
26
  typedef :int, :SDL_CameraPosition
27
+ typedef :int, :SDL_CameraPermissionState
24
28
 
25
29
  # Struct
26
30
 
data/lib/sdl3_cpuinfo.rb CHANGED
@@ -43,6 +43,7 @@ module SDL
43
43
  [:HasLASX, :SDL_HasLASX, [], :bool],
44
44
  [:GetSystemRAM, :SDL_GetSystemRAM, [], :int],
45
45
  [:GetSIMDAlignment, :SDL_GetSIMDAlignment, [], :ulong_long],
46
+ [:GetSystemPageSize, :SDL_GetSystemPageSize, [], :int],
46
47
  ]
47
48
  entries.each do |entry|
48
49
  attach_function entry[0], entry[1], entry[2], entry[3]
data/lib/sdl3_events.rb CHANGED
@@ -30,8 +30,9 @@ module SDL
30
30
  EVENT_DISPLAY_DESKTOP_MODE_CHANGED = 341
31
31
  EVENT_DISPLAY_CURRENT_MODE_CHANGED = 342
32
32
  EVENT_DISPLAY_CONTENT_SCALE_CHANGED = 343
33
+ EVENT_DISPLAY_USABLE_BOUNDS_CHANGED = 344
33
34
  EVENT_DISPLAY_FIRST = 337
34
- EVENT_DISPLAY_LAST = 343
35
+ EVENT_DISPLAY_LAST = 344
35
36
  EVENT_WINDOW_SHOWN = 514
36
37
  EVENT_WINDOW_HIDDEN = 515
37
38
  EVENT_WINDOW_EXPOSED = 516
@@ -67,6 +68,8 @@ module SDL
67
68
  EVENT_KEYBOARD_ADDED = 773
68
69
  EVENT_KEYBOARD_REMOVED = 774
69
70
  EVENT_TEXT_EDITING_CANDIDATES = 775
71
+ EVENT_SCREEN_KEYBOARD_SHOWN = 776
72
+ EVENT_SCREEN_KEYBOARD_HIDDEN = 777
70
73
  EVENT_MOUSE_MOTION = 1024
71
74
  EVENT_MOUSE_BUTTON_DOWN = 1025
72
75
  EVENT_MOUSE_BUTTON_UP = 1026
@@ -98,6 +101,9 @@ module SDL
98
101
  EVENT_FINGER_UP = 1793
99
102
  EVENT_FINGER_MOTION = 1794
100
103
  EVENT_FINGER_CANCELED = 1795
104
+ EVENT_PINCH_BEGIN = 1808
105
+ EVENT_PINCH_UPDATE = 1809
106
+ EVENT_PINCH_END = 1810
101
107
  EVENT_CLIPBOARD_UPDATE = 2304
102
108
  EVENT_DROP_FILE = 4096
103
109
  EVENT_DROP_TEXT = 4097
@@ -479,6 +485,16 @@ module SDL
479
485
  )
480
486
  end
481
487
 
488
+ class PinchFingerEvent < FFI::Struct
489
+ layout(
490
+ :type, :int,
491
+ :reserved, :uint,
492
+ :timestamp, :ulong_long,
493
+ :scale, :float,
494
+ :windowID, :uint,
495
+ )
496
+ end
497
+
482
498
  class PenProximityEvent < FFI::Struct
483
499
  layout(
484
500
  :type, :int,
@@ -634,6 +650,7 @@ module SDL
634
650
  :quit, QuitEvent,
635
651
  :user, UserEvent,
636
652
  :tfinger, TouchFingerEvent,
653
+ :pinch, PinchFingerEvent,
637
654
  :pproximity, PenProximityEvent,
638
655
  :ptouch, PenTouchEvent,
639
656
  :pmotion, PenMotionEvent,
@@ -670,6 +687,7 @@ module SDL
670
687
  [:EventEnabled, :SDL_EventEnabled, [:uint], :bool],
671
688
  [:RegisterEvents, :SDL_RegisterEvents, [:int], :uint],
672
689
  [:GetWindowFromEvent, :SDL_GetWindowFromEvent, [:pointer], :pointer],
690
+ [:GetEventDescription, :SDL_GetEventDescription, [:pointer, :pointer, :int], :int],
673
691
  ]
674
692
  entries.each do |entry|
675
693
  attach_function entry[0], entry[1], entry[2], entry[3]
data/lib/sdl3_gamepad.rb CHANGED
@@ -25,7 +25,8 @@ module SDL
25
25
  GAMEPAD_TYPE_NINTENDO_SWITCH_JOYCON_LEFT = 8
26
26
  GAMEPAD_TYPE_NINTENDO_SWITCH_JOYCON_RIGHT = 9
27
27
  GAMEPAD_TYPE_NINTENDO_SWITCH_JOYCON_PAIR = 10
28
- GAMEPAD_TYPE_COUNT = 11
28
+ GAMEPAD_TYPE_GAMECUBE = 11
29
+ GAMEPAD_TYPE_COUNT = 12
29
30
  GAMEPAD_BUTTON_INVALID = -1
30
31
  GAMEPAD_BUTTON_SOUTH = 0
31
32
  GAMEPAD_BUTTON_EAST = 1
data/lib/sdl3_gpu.rb CHANGED
@@ -37,14 +37,26 @@ module SDL
37
37
  GPU_COLORCOMPONENT_A = 1 << 3
38
38
  PROP_GPU_DEVICE_CREATE_DEBUGMODE_BOOLEAN = "SDL.gpu.device.create.debugmode"
39
39
  PROP_GPU_DEVICE_CREATE_PREFERLOWPOWER_BOOLEAN = "SDL.gpu.device.create.preferlowpower"
40
+ PROP_GPU_DEVICE_CREATE_VERBOSE_BOOLEAN = "SDL.gpu.device.create.verbose"
40
41
  PROP_GPU_DEVICE_CREATE_NAME_STRING = "SDL.gpu.device.create.name"
42
+ PROP_GPU_DEVICE_CREATE_FEATURE_CLIP_DISTANCE_BOOLEAN = "SDL.gpu.device.create.feature.clip_distance"
43
+ PROP_GPU_DEVICE_CREATE_FEATURE_DEPTH_CLAMPING_BOOLEAN = "SDL.gpu.device.create.feature.depth_clamping"
44
+ PROP_GPU_DEVICE_CREATE_FEATURE_INDIRECT_DRAW_FIRST_INSTANCE_BOOLEAN = "SDL.gpu.device.create.feature.indirect_draw_first_instance"
45
+ PROP_GPU_DEVICE_CREATE_FEATURE_ANISOTROPY_BOOLEAN = "SDL.gpu.device.create.feature.anisotropy"
41
46
  PROP_GPU_DEVICE_CREATE_SHADERS_PRIVATE_BOOLEAN = "SDL.gpu.device.create.shaders.private"
42
47
  PROP_GPU_DEVICE_CREATE_SHADERS_SPIRV_BOOLEAN = "SDL.gpu.device.create.shaders.spirv"
43
48
  PROP_GPU_DEVICE_CREATE_SHADERS_DXBC_BOOLEAN = "SDL.gpu.device.create.shaders.dxbc"
44
49
  PROP_GPU_DEVICE_CREATE_SHADERS_DXIL_BOOLEAN = "SDL.gpu.device.create.shaders.dxil"
45
50
  PROP_GPU_DEVICE_CREATE_SHADERS_MSL_BOOLEAN = "SDL.gpu.device.create.shaders.msl"
46
51
  PROP_GPU_DEVICE_CREATE_SHADERS_METALLIB_BOOLEAN = "SDL.gpu.device.create.shaders.metallib"
52
+ PROP_GPU_DEVICE_CREATE_D3D12_ALLOW_FEWER_RESOURCE_SLOTS_BOOLEAN = "SDL.gpu.device.create.d3d12.allowtier1resourcebinding"
47
53
  PROP_GPU_DEVICE_CREATE_D3D12_SEMANTIC_NAME_STRING = "SDL.gpu.device.create.d3d12.semantic"
54
+ PROP_GPU_DEVICE_CREATE_VULKAN_REQUIRE_HARDWARE_ACCELERATION_BOOLEAN = "SDL.gpu.device.create.vulkan.requirehardwareacceleration"
55
+ PROP_GPU_DEVICE_CREATE_VULKAN_OPTIONS_POINTER = "SDL.gpu.device.create.vulkan.options"
56
+ PROP_GPU_DEVICE_NAME_STRING = "SDL.gpu.device.name"
57
+ PROP_GPU_DEVICE_DRIVER_NAME_STRING = "SDL.gpu.device.driver_name"
58
+ PROP_GPU_DEVICE_DRIVER_VERSION_STRING = "SDL.gpu.device.driver_version"
59
+ PROP_GPU_DEVICE_DRIVER_INFO_STRING = "SDL.gpu.device.driver_info"
48
60
  PROP_GPU_COMPUTEPIPELINE_CREATE_NAME_STRING = "SDL.gpu.computepipeline.create.name"
49
61
  PROP_GPU_GRAPHICSPIPELINE_CREATE_NAME_STRING = "SDL.gpu.graphicspipeline.create.name"
50
62
  PROP_GPU_SAMPLER_CREATE_NAME_STRING = "SDL.gpu.sampler.create.name"
@@ -569,7 +581,7 @@ module SDL
569
581
  :sample_count, :int,
570
582
  :sample_mask, :uint,
571
583
  :enable_mask, :bool,
572
- :padding1, :uchar,
584
+ :enable_alpha_to_coverage, :bool,
573
585
  :padding2, :uchar,
574
586
  :padding3, :uchar,
575
587
  )
@@ -671,8 +683,8 @@ module SDL
671
683
  :stencil_store_op, :int,
672
684
  :cycle, :bool,
673
685
  :clear_stencil, :uchar,
674
- :padding1, :uchar,
675
- :padding2, :uchar,
686
+ :mip_level, :uchar,
687
+ :layer, :uchar,
676
688
  )
677
689
  end
678
690
 
@@ -727,6 +739,18 @@ module SDL
727
739
  )
728
740
  end
729
741
 
742
+ class GPUVulkanOptions < FFI::Struct
743
+ layout(
744
+ :vulkan_api_version, :uint,
745
+ :feature_list, :pointer,
746
+ :vulkan_10_physical_device_features, :pointer,
747
+ :device_extension_count, :uint,
748
+ :device_extension_names, :pointer,
749
+ :instance_extension_count, :uint,
750
+ :instance_extension_names, :pointer,
751
+ )
752
+ end
753
+
730
754
 
731
755
  # Function
732
756
 
@@ -741,6 +765,7 @@ module SDL
741
765
  [:GetGPUDriver, :SDL_GetGPUDriver, [:int], :pointer],
742
766
  [:GetGPUDeviceDriver, :SDL_GetGPUDeviceDriver, [:pointer], :pointer],
743
767
  [:GetGPUShaderFormats, :SDL_GetGPUShaderFormats, [:pointer], :uint],
768
+ [:GetGPUDeviceProperties, :SDL_GetGPUDeviceProperties, [:pointer], :uint],
744
769
  [:CreateGPUComputePipeline, :SDL_CreateGPUComputePipeline, [:pointer, :pointer], :pointer],
745
770
  [:CreateGPUGraphicsPipeline, :SDL_CreateGPUGraphicsPipeline, [:pointer, :pointer], :pointer],
746
771
  [:CreateGPUSampler, :SDL_CreateGPUSampler, [:pointer, :pointer], :pointer],
@@ -824,6 +849,8 @@ module SDL
824
849
  [:GPUTextureSupportsFormat, :SDL_GPUTextureSupportsFormat, [:pointer, :int, :int, :uint], :bool],
825
850
  [:GPUTextureSupportsSampleCount, :SDL_GPUTextureSupportsSampleCount, [:pointer, :int, :int], :bool],
826
851
  [:CalculateGPUTextureFormatSize, :SDL_CalculateGPUTextureFormatSize, [:int, :uint, :uint, :uint], :uint],
852
+ [:GetPixelFormatFromGPUTextureFormat, :SDL_GetPixelFormatFromGPUTextureFormat, [:int], :int],
853
+ [:GetGPUTextureFormatFromPixelFormat, :SDL_GetGPUTextureFormatFromPixelFormat, [:int], :int],
827
854
  ]
828
855
  entries.each do |entry|
829
856
  attach_function entry[0], entry[1], entry[2], entry[3]
data/lib/sdl3_haptic.rb CHANGED
@@ -10,6 +10,7 @@ module SDL
10
10
  extend FFI::Library
11
11
  # Define/Macro
12
12
 
13
+ HAPTIC_INFINITY = 4294967295
13
14
  HAPTIC_CONSTANT = 1 << 0
14
15
  HAPTIC_SINE = 1 << 1
15
16
  HAPTIC_SQUARE = 1 << 2
@@ -34,13 +35,15 @@ module SDL
34
35
  HAPTIC_CARTESIAN = 1
35
36
  HAPTIC_SPHERICAL = 2
36
37
  HAPTIC_STEERING_AXIS = 3
37
- HAPTIC_INFINITY = 4294967295
38
38
 
39
39
  # Enum
40
40
 
41
41
 
42
42
  # Typedef
43
43
 
44
+ typedef :ushort, :SDL_HapticEffectType
45
+ typedef :uchar, :SDL_HapticDirectionType
46
+ typedef :int, :SDL_HapticEffectID
44
47
  typedef :uint, :SDL_HapticID
45
48
 
46
49
  # Struct
data/lib/sdl3_hidapi.rb CHANGED
@@ -57,6 +57,7 @@ module SDL
57
57
  [:hid_free_enumeration, :SDL_hid_free_enumeration, [:pointer], :void],
58
58
  [:hid_open, :SDL_hid_open, [:ushort, :ushort, :pointer], :pointer],
59
59
  [:hid_open_path, :SDL_hid_open_path, [:pointer], :pointer],
60
+ [:hid_get_properties, :SDL_hid_get_properties, [:pointer], :uint],
60
61
  [:hid_write, :SDL_hid_write, [:pointer, :pointer, :ulong_long], :int],
61
62
  [:hid_read_timeout, :SDL_hid_read_timeout, [:pointer, :pointer, :ulong_long, :int], :int],
62
63
  [:hid_read, :SDL_hid_read, [:pointer, :pointer, :ulong_long], :int],
data/lib/sdl3_hints.rb CHANGED
@@ -28,6 +28,7 @@ module SDL
28
28
  HINT_AUDIO_DEVICE_SAMPLE_FRAMES = "SDL_AUDIO_DEVICE_SAMPLE_FRAMES"
29
29
  HINT_AUDIO_DEVICE_STREAM_NAME = "SDL_AUDIO_DEVICE_STREAM_NAME"
30
30
  HINT_AUDIO_DEVICE_STREAM_ROLE = "SDL_AUDIO_DEVICE_STREAM_ROLE"
31
+ HINT_AUDIO_DEVICE_RAW_STREAM = "SDL_AUDIO_DEVICE_RAW_STREAM"
31
32
  HINT_AUDIO_DISK_INPUT_FILE = "SDL_AUDIO_DISK_INPUT_FILE"
32
33
  HINT_AUDIO_DISK_OUTPUT_FILE = "SDL_AUDIO_DISK_OUTPUT_FILE"
33
34
  HINT_AUDIO_DISK_TIMESCALE = "SDL_AUDIO_DISK_TIMESCALE"
@@ -44,6 +45,7 @@ module SDL
44
45
  HINT_JOYSTICK_DIRECTINPUT = "SDL_JOYSTICK_DIRECTINPUT"
45
46
  HINT_FILE_DIALOG_DRIVER = "SDL_FILE_DIALOG_DRIVER"
46
47
  HINT_DISPLAY_USABLE_BOUNDS = "SDL_DISPLAY_USABLE_BOUNDS"
48
+ HINT_INVALID_PARAM_CHECKS = "SDL_INVALID_PARAM_CHECKS"
47
49
  HINT_EMSCRIPTEN_ASYNCIFY = "SDL_EMSCRIPTEN_ASYNCIFY"
48
50
  HINT_EMSCRIPTEN_CANVAS_SELECTOR = "SDL_EMSCRIPTEN_CANVAS_SELECTOR"
49
51
  HINT_EMSCRIPTEN_KEYBOARD_ELEMENT = "SDL_EMSCRIPTEN_KEYBOARD_ELEMENT"
@@ -64,6 +66,7 @@ module SDL
64
66
  HINT_GDK_TEXTINPUT_SCOPE = "SDL_GDK_TEXTINPUT_SCOPE"
65
67
  HINT_GDK_TEXTINPUT_TITLE = "SDL_GDK_TEXTINPUT_TITLE"
66
68
  HINT_HIDAPI_LIBUSB = "SDL_HIDAPI_LIBUSB"
69
+ HINT_HIDAPI_LIBUSB_GAMECUBE = "SDL_HIDAPI_LIBUSB_GAMECUBE"
67
70
  HINT_HIDAPI_LIBUSB_WHITELIST = "SDL_HIDAPI_LIBUSB_WHITELIST"
68
71
  HINT_HIDAPI_UDEV = "SDL_HIDAPI_UDEV"
69
72
  HINT_GPU_DRIVER = "SDL_GPU_DRIVER"
@@ -103,9 +106,15 @@ module SDL
103
106
  HINT_JOYSTICK_HIDAPI_STEAM_HOME_LED = "SDL_JOYSTICK_HIDAPI_STEAM_HOME_LED"
104
107
  HINT_JOYSTICK_HIDAPI_STEAMDECK = "SDL_JOYSTICK_HIDAPI_STEAMDECK"
105
108
  HINT_JOYSTICK_HIDAPI_STEAM_HORI = "SDL_JOYSTICK_HIDAPI_STEAM_HORI"
109
+ HINT_JOYSTICK_HIDAPI_LG4FF = "SDL_JOYSTICK_HIDAPI_LG4FF"
110
+ HINT_JOYSTICK_HIDAPI_8BITDO = "SDL_JOYSTICK_HIDAPI_8BITDO"
111
+ HINT_JOYSTICK_HIDAPI_SINPUT = "SDL_JOYSTICK_HIDAPI_SINPUT"
112
+ HINT_JOYSTICK_HIDAPI_ZUIKI = "SDL_JOYSTICK_HIDAPI_ZUIKI"
113
+ HINT_JOYSTICK_HIDAPI_FLYDIGI = "SDL_JOYSTICK_HIDAPI_FLYDIGI"
106
114
  HINT_JOYSTICK_HIDAPI_SWITCH = "SDL_JOYSTICK_HIDAPI_SWITCH"
107
115
  HINT_JOYSTICK_HIDAPI_SWITCH_HOME_LED = "SDL_JOYSTICK_HIDAPI_SWITCH_HOME_LED"
108
116
  HINT_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED = "SDL_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED"
117
+ HINT_JOYSTICK_HIDAPI_SWITCH2 = "SDL_JOYSTICK_HIDAPI_SWITCH2"
109
118
  HINT_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS = "SDL_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS"
110
119
  HINT_JOYSTICK_HIDAPI_WII = "SDL_JOYSTICK_HIDAPI_WII"
111
120
  HINT_JOYSTICK_HIDAPI_WII_PLAYER_LED = "SDL_JOYSTICK_HIDAPI_WII_PLAYER_LED"
@@ -115,6 +124,8 @@ module SDL
115
124
  HINT_JOYSTICK_HIDAPI_XBOX_360_WIRELESS = "SDL_JOYSTICK_HIDAPI_XBOX_360_WIRELESS"
116
125
  HINT_JOYSTICK_HIDAPI_XBOX_ONE = "SDL_JOYSTICK_HIDAPI_XBOX_ONE"
117
126
  HINT_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED = "SDL_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED"
127
+ HINT_JOYSTICK_HIDAPI_GIP = "SDL_JOYSTICK_HIDAPI_GIP"
128
+ HINT_JOYSTICK_HIDAPI_GIP_RESET_FOR_METADATA = "SDL_JOYSTICK_HIDAPI_GIP_RESET_FOR_METADATA"
118
129
  HINT_JOYSTICK_IOKIT = "SDL_JOYSTICK_IOKIT"
119
130
  HINT_JOYSTICK_LINUX_CLASSIC = "SDL_JOYSTICK_LINUX_CLASSIC"
120
131
  HINT_JOYSTICK_LINUX_DEADZONES = "SDL_JOYSTICK_LINUX_DEADZONES"
@@ -135,17 +146,20 @@ module SDL
135
146
  HINT_KEYCODE_OPTIONS = "SDL_KEYCODE_OPTIONS"
136
147
  HINT_KMSDRM_DEVICE_INDEX = "SDL_KMSDRM_DEVICE_INDEX"
137
148
  HINT_KMSDRM_REQUIRE_DRM_MASTER = "SDL_KMSDRM_REQUIRE_DRM_MASTER"
149
+ HINT_KMSDRM_ATOMIC = "SDL_KMSDRM_ATOMIC"
138
150
  HINT_LOGGING = "SDL_LOGGING"
139
151
  HINT_MAC_BACKGROUND_APP = "SDL_MAC_BACKGROUND_APP"
140
152
  HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK = "SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK"
141
153
  HINT_MAC_OPENGL_ASYNC_DISPATCH = "SDL_MAC_OPENGL_ASYNC_DISPATCH"
142
154
  HINT_MAC_OPTION_AS_ALT = "SDL_MAC_OPTION_AS_ALT"
143
155
  HINT_MAC_SCROLL_MOMENTUM = "SDL_MAC_SCROLL_MOMENTUM"
156
+ HINT_MAC_PRESS_AND_HOLD = "SDL_MAC_PRESS_AND_HOLD"
144
157
  HINT_MAIN_CALLBACK_RATE = "SDL_MAIN_CALLBACK_RATE"
145
158
  HINT_MOUSE_AUTO_CAPTURE = "SDL_MOUSE_AUTO_CAPTURE"
146
159
  HINT_MOUSE_DOUBLE_CLICK_RADIUS = "SDL_MOUSE_DOUBLE_CLICK_RADIUS"
147
160
  HINT_MOUSE_DOUBLE_CLICK_TIME = "SDL_MOUSE_DOUBLE_CLICK_TIME"
148
161
  HINT_MOUSE_DEFAULT_SYSTEM_CURSOR = "SDL_MOUSE_DEFAULT_SYSTEM_CURSOR"
162
+ HINT_MOUSE_DPI_SCALE_CURSORS = "SDL_MOUSE_DPI_SCALE_CURSORS"
149
163
  HINT_MOUSE_EMULATE_WARP_WITH_RELATIVE = "SDL_MOUSE_EMULATE_WARP_WITH_RELATIVE"
150
164
  HINT_MOUSE_FOCUS_CLICKTHROUGH = "SDL_MOUSE_FOCUS_CLICKTHROUGH"
151
165
  HINT_MOUSE_NORMAL_SPEED_SCALE = "SDL_MOUSE_NORMAL_SPEED_SCALE"
@@ -167,6 +181,7 @@ module SDL
167
181
  HINT_QUIT_ON_LAST_WINDOW_CLOSE = "SDL_QUIT_ON_LAST_WINDOW_CLOSE"
168
182
  HINT_RENDER_DIRECT3D_THREADSAFE = "SDL_RENDER_DIRECT3D_THREADSAFE"
169
183
  HINT_RENDER_DIRECT3D11_DEBUG = "SDL_RENDER_DIRECT3D11_DEBUG"
184
+ HINT_RENDER_DIRECT3D11_WARP = "SDL_RENDER_DIRECT3D11_WARP"
170
185
  HINT_RENDER_VULKAN_DEBUG = "SDL_RENDER_VULKAN_DEBUG"
171
186
  HINT_RENDER_GPU_DEBUG = "SDL_RENDER_GPU_DEBUG"
172
187
  HINT_RENDER_GPU_LOW_POWER = "SDL_RENDER_GPU_LOW_POWER"
@@ -177,6 +192,10 @@ module SDL
177
192
  HINT_RETURN_KEY_HIDES_IME = "SDL_RETURN_KEY_HIDES_IME"
178
193
  HINT_ROG_GAMEPAD_MICE = "SDL_ROG_GAMEPAD_MICE"
179
194
  HINT_ROG_GAMEPAD_MICE_EXCLUDED = "SDL_ROG_GAMEPAD_MICE_EXCLUDED"
195
+ HINT_PS2_GS_WIDTH = "SDL_PS2_GS_WIDTH"
196
+ HINT_PS2_GS_HEIGHT = "SDL_PS2_GS_HEIGHT"
197
+ HINT_PS2_GS_PROGRESSIVE = "SDL_PS2_GS_PROGRESSIVE"
198
+ HINT_PS2_GS_MODE = "SDL_PS2_GS_MODE"
180
199
  HINT_RPI_VIDEO_LAYER = "SDL_RPI_VIDEO_LAYER"
181
200
  HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME = "SDL_SCREENSAVER_INHIBIT_ACTIVITY_NAME"
182
201
  HINT_SHUTDOWN_DBUS_ON_QUIT = "SDL_SHUTDOWN_DBUS_ON_QUIT"
@@ -197,6 +216,8 @@ module SDL
197
216
  HINT_VIDEO_FORCE_EGL = "SDL_VIDEO_FORCE_EGL"
198
217
  HINT_VIDEO_MAC_FULLSCREEN_SPACES = "SDL_VIDEO_MAC_FULLSCREEN_SPACES"
199
218
  HINT_VIDEO_MAC_FULLSCREEN_MENU_VISIBILITY = "SDL_VIDEO_MAC_FULLSCREEN_MENU_VISIBILITY"
219
+ HINT_VIDEO_METAL_AUTO_RESIZE_DRAWABLE = "SDL_VIDEO_METAL_AUTO_RESIZE_DRAWABLE"
220
+ HINT_VIDEO_MATCH_EXCLUSIVE_MODE_ON_MOVE = "SDL_VIDEO_MATCH_EXCLUSIVE_MODE_ON_MOVE"
200
221
  HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS = "SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS"
201
222
  HINT_VIDEO_OFFSCREEN_SAVE_FRAMES = "SDL_VIDEO_OFFSCREEN_SAVE_FRAMES"
202
223
  HINT_VIDEO_SYNC_WINDOW_OPERATIONS = "SDL_VIDEO_SYNC_WINDOW_OPERATIONS"
@@ -236,6 +257,7 @@ module SDL
236
257
  HINT_WINDOWS_ENABLE_MESSAGELOOP = "SDL_WINDOWS_ENABLE_MESSAGELOOP"
237
258
  HINT_WINDOWS_GAMEINPUT = "SDL_WINDOWS_GAMEINPUT"
238
259
  HINT_WINDOWS_RAW_KEYBOARD = "SDL_WINDOWS_RAW_KEYBOARD"
260
+ HINT_WINDOWS_RAW_KEYBOARD_EXCLUDE_HOTKEYS = "SDL_WINDOWS_RAW_KEYBOARD_EXCLUDE_HOTKEYS"
239
261
  HINT_WINDOWS_FORCE_SEMAPHORE_KERNEL = "SDL_WINDOWS_FORCE_SEMAPHORE_KERNEL"
240
262
  HINT_WINDOWS_INTRESOURCE_ICON = "SDL_WINDOWS_INTRESOURCE_ICON"
241
263
  HINT_WINDOWS_INTRESOURCE_ICON_SMALL = "SDL_WINDOWS_INTRESOURCE_ICON_SMALL"
data/lib/sdl3_image.rb CHANGED
@@ -12,7 +12,7 @@ module SDL
12
12
 
13
13
  IMAGE_MAJOR_VERSION = 3
14
14
  IMAGE_MINOR_VERSION = 2
15
- IMAGE_MICRO_VERSION = 4
15
+ IMAGE_MICRO_VERSION = 6
16
16
 
17
17
  # Enum
18
18
 
data/lib/sdl3_iostream.rb CHANGED
@@ -16,6 +16,7 @@ module SDL
16
16
  PROP_IOSTREAM_ANDROID_AASSET_POINTER = "SDL.iostream.android.aasset"
17
17
  PROP_IOSTREAM_MEMORY_POINTER = "SDL.iostream.memory.base"
18
18
  PROP_IOSTREAM_MEMORY_SIZE_NUMBER = "SDL.iostream.memory.size"
19
+ PROP_IOSTREAM_MEMORY_FREE_FUNC_POINTER = "SDL.iostream.memory.free"
19
20
  PROP_IOSTREAM_DYNAMIC_MEMORY_POINTER = "SDL.iostream.dynamic.memory"
20
21
  PROP_IOSTREAM_DYNAMIC_CHUNKSIZE_NUMBER = "SDL.iostream.dynamic.chunksize"
21
22