sdl3-bindings 1.0.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. checksums.yaml +7 -0
  2. data/ChangeLog +159 -0
  3. data/LICENSE.txt +21 -0
  4. data/README.md +132 -0
  5. data/lib/sdl3.rb +150 -0
  6. data/lib/sdl3_assert.rb +61 -0
  7. data/lib/sdl3_asyncio.rb +68 -0
  8. data/lib/sdl3_atomic.rb +64 -0
  9. data/lib/sdl3_audio.rb +120 -0
  10. data/lib/sdl3_bits.rb +38 -0
  11. data/lib/sdl3_blendmode.rb +63 -0
  12. data/lib/sdl3_camera.rb +67 -0
  13. data/lib/sdl3_clipboard.rb +49 -0
  14. data/lib/sdl3_cpuinfo.rb +55 -0
  15. data/lib/sdl3_dialog.rb +60 -0
  16. data/lib/sdl3_endian.rb +39 -0
  17. data/lib/sdl3_error.rb +41 -0
  18. data/lib/sdl3_events.rb +680 -0
  19. data/lib/sdl3_filesystem.rb +82 -0
  20. data/lib/sdl3_gamepad.rb +216 -0
  21. data/lib/sdl3_gpu.rb +836 -0
  22. data/lib/sdl3_guid.rb +44 -0
  23. data/lib/sdl3_haptic.rb +209 -0
  24. data/lib/sdl3_hidapi.rb +84 -0
  25. data/lib/sdl3_hints.rb +285 -0
  26. data/lib/sdl3_image.rb +108 -0
  27. data/lib/sdl3_init.rb +71 -0
  28. data/lib/sdl3_iostream.rb +115 -0
  29. data/lib/sdl3_joystick.rb +174 -0
  30. data/lib/sdl3_keyboard.rb +81 -0
  31. data/lib/sdl3_keycode.rb +310 -0
  32. data/lib/sdl3_loadso.rb +39 -0
  33. data/lib/sdl3_locale.rb +44 -0
  34. data/lib/sdl3_log.rb +85 -0
  35. data/lib/sdl3_messagebox.rb +88 -0
  36. data/lib/sdl3_misc.rb +37 -0
  37. data/lib/sdl3_mixer.rb +179 -0
  38. data/lib/sdl3_mouse.rb +90 -0
  39. data/lib/sdl3_mutex.rb +77 -0
  40. data/lib/sdl3_pen.rb +56 -0
  41. data/lib/sdl3_pixels.rb +296 -0
  42. data/lib/sdl3_platform.rb +37 -0
  43. data/lib/sdl3_power.rb +44 -0
  44. data/lib/sdl3_process.rb +65 -0
  45. data/lib/sdl3_properties.rb +67 -0
  46. data/lib/sdl3_rect.rb +98 -0
  47. data/lib/sdl3_render.rb +240 -0
  48. data/lib/sdl3_revision.rb +37 -0
  49. data/lib/sdl3_scancode.rb +286 -0
  50. data/lib/sdl3_sensor.rb +61 -0
  51. data/lib/sdl3_sound.rb +98 -0
  52. data/lib/sdl3_stdinc.rb +229 -0
  53. data/lib/sdl3_storage.rb +70 -0
  54. data/lib/sdl3_surface.rb +122 -0
  55. data/lib/sdl3_thread.rb +65 -0
  56. data/lib/sdl3_time.rb +66 -0
  57. data/lib/sdl3_timer.rb +54 -0
  58. data/lib/sdl3_touch.rb +56 -0
  59. data/lib/sdl3_tray.rb +66 -0
  60. data/lib/sdl3_ttf.rb +216 -0
  61. data/lib/sdl3_version.rb +41 -0
  62. data/lib/sdl3_video.rb +341 -0
  63. data/lib/sdl3_vulkan.rb +46 -0
  64. metadata +118 -0
@@ -0,0 +1,70 @@
1
+ # Ruby-SDL3 : SDL3 wrapper for Ruby
2
+ #
3
+ # * https://github.com/vaiorabbit/sdl3-bindings
4
+ #
5
+ # [NOTICE] Autogenerated. Do not edit.
6
+
7
+ require 'ffi'
8
+
9
+ module SDL
10
+ extend FFI::Library
11
+ # Define/Macro
12
+
13
+
14
+ # Enum
15
+
16
+
17
+ # Typedef
18
+
19
+
20
+ # Struct
21
+
22
+ class StorageInterface < FFI::Struct
23
+ layout(
24
+ :version, :uint,
25
+ :close, :pointer,
26
+ :ready, :pointer,
27
+ :enumerate, :pointer,
28
+ :info, :pointer,
29
+ :read_file, :pointer,
30
+ :write_file, :pointer,
31
+ :mkdir, :pointer,
32
+ :remove, :pointer,
33
+ :rename, :pointer,
34
+ :copy, :pointer,
35
+ :space_remaining, :pointer,
36
+ )
37
+ end
38
+
39
+
40
+ # Function
41
+
42
+ def self.setup_storage_symbols(output_error = false)
43
+ entries = [
44
+ [:OpenTitleStorage, :SDL_OpenTitleStorage, [:pointer, :uint], :pointer],
45
+ [:OpenUserStorage, :SDL_OpenUserStorage, [:pointer, :pointer, :uint], :pointer],
46
+ [:OpenFileStorage, :SDL_OpenFileStorage, [:pointer], :pointer],
47
+ [:OpenStorage, :SDL_OpenStorage, [:pointer, :pointer], :pointer],
48
+ [:CloseStorage, :SDL_CloseStorage, [:pointer], :bool],
49
+ [:StorageReady, :SDL_StorageReady, [:pointer], :bool],
50
+ [:GetStorageFileSize, :SDL_GetStorageFileSize, [:pointer, :pointer, :pointer], :bool],
51
+ [:ReadStorageFile, :SDL_ReadStorageFile, [:pointer, :pointer, :pointer, :ulong_long], :bool],
52
+ [:WriteStorageFile, :SDL_WriteStorageFile, [:pointer, :pointer, :pointer, :ulong_long], :bool],
53
+ [:CreateStorageDirectory, :SDL_CreateStorageDirectory, [:pointer, :pointer], :bool],
54
+ [:EnumerateStorageDirectory, :SDL_EnumerateStorageDirectory, [:pointer, :pointer, :SDL_EnumerateDirectoryCallback, :pointer], :bool],
55
+ [:RemoveStoragePath, :SDL_RemoveStoragePath, [:pointer, :pointer], :bool],
56
+ [:RenameStoragePath, :SDL_RenameStoragePath, [:pointer, :pointer, :pointer], :bool],
57
+ [:CopyStorageFile, :SDL_CopyStorageFile, [:pointer, :pointer, :pointer], :bool],
58
+ [:GetStoragePathInfo, :SDL_GetStoragePathInfo, [:pointer, :pointer, :pointer], :bool],
59
+ [:GetStorageSpaceRemaining, :SDL_GetStorageSpaceRemaining, [:pointer], :ulong_long],
60
+ [:GlobStorageDirectory, :SDL_GlobStorageDirectory, [:pointer, :pointer, :pointer, :uint, :pointer], :pointer],
61
+ ]
62
+ entries.each do |entry|
63
+ attach_function entry[0], entry[1], entry[2], entry[3]
64
+ rescue FFI::NotFoundError => e
65
+ warn "[Warning] Failed to import #{entry[0]} (#{e})." if output_error
66
+ end
67
+ end
68
+
69
+ end
70
+
@@ -0,0 +1,122 @@
1
+ # Ruby-SDL3 : SDL3 wrapper for Ruby
2
+ #
3
+ # * https://github.com/vaiorabbit/sdl3-bindings
4
+ #
5
+ # [NOTICE] Autogenerated. Do not edit.
6
+
7
+ require 'ffi'
8
+ require_relative 'sdl3_rect'
9
+
10
+ module SDL
11
+ extend FFI::Library
12
+ # Define/Macro
13
+
14
+ SURFACE_PREALLOCATED = 0x00000001
15
+ SURFACE_LOCK_NEEDED = 0x00000002
16
+ SURFACE_LOCKED = 0x00000004
17
+ SURFACE_SIMD_ALIGNED = 0x00000008
18
+ PROP_SURFACE_SDR_WHITE_POINT_FLOAT = "SDL.surface.SDR_white_point"
19
+ PROP_SURFACE_HDR_HEADROOM_FLOAT = "SDL.surface.HDR_headroom"
20
+ PROP_SURFACE_TONEMAP_OPERATOR_STRING = "SDL.surface.tonemap"
21
+
22
+ # Enum
23
+
24
+ SCALEMODE_NEAREST = 0
25
+ SCALEMODE_LINEAR = 1
26
+ FLIP_NONE = 0
27
+ FLIP_HORIZONTAL = 1
28
+ FLIP_VERTICAL = 2
29
+
30
+ # Typedef
31
+
32
+ typedef :uint, :SDL_SurfaceFlags
33
+ typedef :int, :SDL_ScaleMode
34
+ typedef :int, :SDL_FlipMode
35
+
36
+ # Struct
37
+
38
+ class Surface < FFI::Struct
39
+ layout(
40
+ :flags, :uint,
41
+ :format, :int,
42
+ :w, :int,
43
+ :h, :int,
44
+ :pitch, :int,
45
+ :pixels, :pointer,
46
+ :refcount, :int,
47
+ :reserved, :pointer,
48
+ )
49
+ end
50
+
51
+
52
+ # Function
53
+
54
+ def self.setup_surface_symbols(output_error = false)
55
+ entries = [
56
+ [:CreateSurface, :SDL_CreateSurface, [:int, :int, :int], :pointer],
57
+ [:CreateSurfaceFrom, :SDL_CreateSurfaceFrom, [:int, :int, :int, :pointer, :int], :pointer],
58
+ [:DestroySurface, :SDL_DestroySurface, [:pointer], :void],
59
+ [:GetSurfaceProperties, :SDL_GetSurfaceProperties, [:pointer], :uint],
60
+ [:SetSurfaceColorspace, :SDL_SetSurfaceColorspace, [:pointer, :int], :bool],
61
+ [:GetSurfaceColorspace, :SDL_GetSurfaceColorspace, [:pointer], :int],
62
+ [:CreateSurfacePalette, :SDL_CreateSurfacePalette, [:pointer], :pointer],
63
+ [:SetSurfacePalette, :SDL_SetSurfacePalette, [:pointer, :pointer], :bool],
64
+ [:GetSurfacePalette, :SDL_GetSurfacePalette, [:pointer], :pointer],
65
+ [:AddSurfaceAlternateImage, :SDL_AddSurfaceAlternateImage, [:pointer, :pointer], :bool],
66
+ [:SurfaceHasAlternateImages, :SDL_SurfaceHasAlternateImages, [:pointer], :bool],
67
+ [:GetSurfaceImages, :SDL_GetSurfaceImages, [:pointer, :pointer], :pointer],
68
+ [:RemoveSurfaceAlternateImages, :SDL_RemoveSurfaceAlternateImages, [:pointer], :void],
69
+ [:LockSurface, :SDL_LockSurface, [:pointer], :bool],
70
+ [:UnlockSurface, :SDL_UnlockSurface, [:pointer], :void],
71
+ [:LoadBMP_IO, :SDL_LoadBMP_IO, [:pointer, :bool], :pointer],
72
+ [:LoadBMP, :SDL_LoadBMP, [:pointer], :pointer],
73
+ [:SaveBMP_IO, :SDL_SaveBMP_IO, [:pointer, :pointer, :bool], :bool],
74
+ [:SaveBMP, :SDL_SaveBMP, [:pointer, :pointer], :bool],
75
+ [:SetSurfaceRLE, :SDL_SetSurfaceRLE, [:pointer, :bool], :bool],
76
+ [:SurfaceHasRLE, :SDL_SurfaceHasRLE, [:pointer], :bool],
77
+ [:SetSurfaceColorKey, :SDL_SetSurfaceColorKey, [:pointer, :bool, :uint], :bool],
78
+ [:SurfaceHasColorKey, :SDL_SurfaceHasColorKey, [:pointer], :bool],
79
+ [:GetSurfaceColorKey, :SDL_GetSurfaceColorKey, [:pointer, :pointer], :bool],
80
+ [:SetSurfaceColorMod, :SDL_SetSurfaceColorMod, [:pointer, :uchar, :uchar, :uchar], :bool],
81
+ [:GetSurfaceColorMod, :SDL_GetSurfaceColorMod, [:pointer, :pointer, :pointer, :pointer], :bool],
82
+ [:SetSurfaceAlphaMod, :SDL_SetSurfaceAlphaMod, [:pointer, :uchar], :bool],
83
+ [:GetSurfaceAlphaMod, :SDL_GetSurfaceAlphaMod, [:pointer, :pointer], :bool],
84
+ [:SetSurfaceBlendMode, :SDL_SetSurfaceBlendMode, [:pointer, :uint], :bool],
85
+ [:GetSurfaceBlendMode, :SDL_GetSurfaceBlendMode, [:pointer, :pointer], :bool],
86
+ [:SetSurfaceClipRect, :SDL_SetSurfaceClipRect, [:pointer, :pointer], :bool],
87
+ [:GetSurfaceClipRect, :SDL_GetSurfaceClipRect, [:pointer, :pointer], :bool],
88
+ [:FlipSurface, :SDL_FlipSurface, [:pointer, :int], :bool],
89
+ [:DuplicateSurface, :SDL_DuplicateSurface, [:pointer], :pointer],
90
+ [:ScaleSurface, :SDL_ScaleSurface, [:pointer, :int, :int, :int], :pointer],
91
+ [:ConvertSurface, :SDL_ConvertSurface, [:pointer, :int], :pointer],
92
+ [:ConvertSurfaceAndColorspace, :SDL_ConvertSurfaceAndColorspace, [:pointer, :int, :pointer, :int, :uint], :pointer],
93
+ [:ConvertPixels, :SDL_ConvertPixels, [:int, :int, :int, :pointer, :int, :int, :pointer, :int], :bool],
94
+ [:ConvertPixelsAndColorspace, :SDL_ConvertPixelsAndColorspace, [:int, :int, :int, :int, :uint, :pointer, :int, :int, :int, :uint, :pointer, :int], :bool],
95
+ [:PremultiplyAlpha, :SDL_PremultiplyAlpha, [:int, :int, :int, :pointer, :int, :int, :pointer, :int, :bool], :bool],
96
+ [:PremultiplySurfaceAlpha, :SDL_PremultiplySurfaceAlpha, [:pointer, :bool], :bool],
97
+ [:ClearSurface, :SDL_ClearSurface, [:pointer, :float, :float, :float, :float], :bool],
98
+ [:FillSurfaceRect, :SDL_FillSurfaceRect, [:pointer, :pointer, :uint], :bool],
99
+ [:FillSurfaceRects, :SDL_FillSurfaceRects, [:pointer, :pointer, :int, :uint], :bool],
100
+ [:BlitSurface, :SDL_BlitSurface, [:pointer, :pointer, :pointer, :pointer], :bool],
101
+ [:BlitSurfaceUnchecked, :SDL_BlitSurfaceUnchecked, [:pointer, :pointer, :pointer, :pointer], :bool],
102
+ [:BlitSurfaceScaled, :SDL_BlitSurfaceScaled, [:pointer, :pointer, :pointer, :pointer, :int], :bool],
103
+ [:BlitSurfaceUncheckedScaled, :SDL_BlitSurfaceUncheckedScaled, [:pointer, :pointer, :pointer, :pointer, :int], :bool],
104
+ [:BlitSurfaceTiled, :SDL_BlitSurfaceTiled, [:pointer, :pointer, :pointer, :pointer], :bool],
105
+ [:BlitSurfaceTiledWithScale, :SDL_BlitSurfaceTiledWithScale, [:pointer, :pointer, :float, :int, :pointer, :pointer], :bool],
106
+ [:BlitSurface9Grid, :SDL_BlitSurface9Grid, [:pointer, :pointer, :int, :int, :int, :int, :float, :int, :pointer, :pointer], :bool],
107
+ [:MapSurfaceRGB, :SDL_MapSurfaceRGB, [:pointer, :uchar, :uchar, :uchar], :uint],
108
+ [:MapSurfaceRGBA, :SDL_MapSurfaceRGBA, [:pointer, :uchar, :uchar, :uchar, :uchar], :uint],
109
+ [:ReadSurfacePixel, :SDL_ReadSurfacePixel, [:pointer, :int, :int, :pointer, :pointer, :pointer, :pointer], :bool],
110
+ [:ReadSurfacePixelFloat, :SDL_ReadSurfacePixelFloat, [:pointer, :int, :int, :pointer, :pointer, :pointer, :pointer], :bool],
111
+ [:WriteSurfacePixel, :SDL_WriteSurfacePixel, [:pointer, :int, :int, :uchar, :uchar, :uchar, :uchar], :bool],
112
+ [:WriteSurfacePixelFloat, :SDL_WriteSurfacePixelFloat, [:pointer, :int, :int, :float, :float, :float, :float], :bool],
113
+ ]
114
+ entries.each do |entry|
115
+ attach_function entry[0], entry[1], entry[2], entry[3]
116
+ rescue FFI::NotFoundError => e
117
+ warn "[Warning] Failed to import #{entry[0]} (#{e})." if output_error
118
+ end
119
+ end
120
+
121
+ end
122
+
@@ -0,0 +1,65 @@
1
+ # Ruby-SDL3 : SDL3 wrapper for Ruby
2
+ #
3
+ # * https://github.com/vaiorabbit/sdl3-bindings
4
+ #
5
+ # [NOTICE] Autogenerated. Do not edit.
6
+
7
+ require 'ffi'
8
+
9
+ module SDL
10
+ extend FFI::Library
11
+ # Define/Macro
12
+
13
+ PROP_THREAD_CREATE_ENTRY_FUNCTION_POINTER = "SDL.thread.create.entry_function"
14
+ PROP_THREAD_CREATE_NAME_STRING = "SDL.thread.create.name"
15
+ PROP_THREAD_CREATE_USERDATA_POINTER = "SDL.thread.create.userdata"
16
+ PROP_THREAD_CREATE_STACKSIZE_NUMBER = "SDL.thread.create.stacksize"
17
+
18
+ # Enum
19
+
20
+ THREAD_PRIORITY_LOW = 0
21
+ THREAD_PRIORITY_NORMAL = 1
22
+ THREAD_PRIORITY_HIGH = 2
23
+ THREAD_PRIORITY_TIME_CRITICAL = 3
24
+ THREAD_UNKNOWN = 0
25
+ THREAD_ALIVE = 1
26
+ THREAD_DETACHED = 2
27
+ THREAD_COMPLETE = 3
28
+
29
+ # Typedef
30
+
31
+ typedef :ulong_long, :SDL_ThreadID
32
+ typedef :int, :SDL_ThreadPriority
33
+ typedef :int, :SDL_ThreadState
34
+ callback :SDL_ThreadFunction, [:pointer], :int
35
+ callback :SDL_TLSDestructorCallback, [:pointer], :void
36
+
37
+ # Struct
38
+
39
+
40
+ # Function
41
+
42
+ def self.setup_thread_symbols(output_error = false)
43
+ entries = [
44
+ [:CreateThreadRuntime, :SDL_CreateThreadRuntime, [:SDL_ThreadFunction, :pointer, :pointer, :SDL_FunctionPointer, :SDL_FunctionPointer], :pointer],
45
+ [:CreateThreadWithPropertiesRuntime, :SDL_CreateThreadWithPropertiesRuntime, [:uint, :SDL_FunctionPointer, :SDL_FunctionPointer], :pointer],
46
+ [:GetThreadName, :SDL_GetThreadName, [:pointer], :pointer],
47
+ [:GetCurrentThreadID, :SDL_GetCurrentThreadID, [], :ulong_long],
48
+ [:GetThreadID, :SDL_GetThreadID, [:pointer], :ulong_long],
49
+ [:SetCurrentThreadPriority, :SDL_SetCurrentThreadPriority, [:int], :bool],
50
+ [:WaitThread, :SDL_WaitThread, [:pointer, :pointer], :void],
51
+ [:GetThreadState, :SDL_GetThreadState, [:pointer], :int],
52
+ [:DetachThread, :SDL_DetachThread, [:pointer], :void],
53
+ [:GetTLS, :SDL_GetTLS, [:pointer], :pointer],
54
+ [:SetTLS, :SDL_SetTLS, [:pointer, :pointer, :SDL_TLSDestructorCallback], :bool],
55
+ [:CleanupTLS, :SDL_CleanupTLS, [], :void],
56
+ ]
57
+ entries.each do |entry|
58
+ attach_function entry[0], entry[1], entry[2], entry[3]
59
+ rescue FFI::NotFoundError => e
60
+ warn "[Warning] Failed to import #{entry[0]} (#{e})." if output_error
61
+ end
62
+ end
63
+
64
+ end
65
+
data/lib/sdl3_time.rb ADDED
@@ -0,0 +1,66 @@
1
+ # Ruby-SDL3 : SDL3 wrapper for Ruby
2
+ #
3
+ # * https://github.com/vaiorabbit/sdl3-bindings
4
+ #
5
+ # [NOTICE] Autogenerated. Do not edit.
6
+
7
+ require 'ffi'
8
+
9
+ module SDL
10
+ extend FFI::Library
11
+ # Define/Macro
12
+
13
+
14
+ # Enum
15
+
16
+ DATE_FORMAT_YYYYMMDD = 0
17
+ DATE_FORMAT_DDMMYYYY = 1
18
+ DATE_FORMAT_MMDDYYYY = 2
19
+ TIME_FORMAT_24HR = 0
20
+ TIME_FORMAT_12HR = 1
21
+
22
+ # Typedef
23
+
24
+ typedef :int, :SDL_DateFormat
25
+ typedef :int, :SDL_TimeFormat
26
+
27
+ # Struct
28
+
29
+ class DateTime < FFI::Struct
30
+ layout(
31
+ :year, :int,
32
+ :month, :int,
33
+ :day, :int,
34
+ :hour, :int,
35
+ :minute, :int,
36
+ :second, :int,
37
+ :nanosecond, :int,
38
+ :day_of_week, :int,
39
+ :utc_offset, :int,
40
+ )
41
+ end
42
+
43
+
44
+ # Function
45
+
46
+ def self.setup_time_symbols(output_error = false)
47
+ entries = [
48
+ [:GetDateTimeLocalePreferences, :SDL_GetDateTimeLocalePreferences, [:pointer, :pointer], :bool],
49
+ [:GetCurrentTime, :SDL_GetCurrentTime, [:pointer], :bool],
50
+ [:TimeToDateTime, :SDL_TimeToDateTime, [:long_long, :pointer, :bool], :bool],
51
+ [:DateTimeToTime, :SDL_DateTimeToTime, [:pointer, :pointer], :bool],
52
+ [:TimeToWindows, :SDL_TimeToWindows, [:long_long, :pointer, :pointer], :void],
53
+ [:TimeFromWindows, :SDL_TimeFromWindows, [:uint, :uint], :long_long],
54
+ [:GetDaysInMonth, :SDL_GetDaysInMonth, [:int, :int], :int],
55
+ [:GetDayOfYear, :SDL_GetDayOfYear, [:int, :int, :int], :int],
56
+ [:GetDayOfWeek, :SDL_GetDayOfWeek, [:int, :int, :int], :int],
57
+ ]
58
+ entries.each do |entry|
59
+ attach_function entry[0], entry[1], entry[2], entry[3]
60
+ rescue FFI::NotFoundError => e
61
+ warn "[Warning] Failed to import #{entry[0]} (#{e})." if output_error
62
+ end
63
+ end
64
+
65
+ end
66
+
data/lib/sdl3_timer.rb ADDED
@@ -0,0 +1,54 @@
1
+ # Ruby-SDL3 : SDL3 wrapper for Ruby
2
+ #
3
+ # * https://github.com/vaiorabbit/sdl3-bindings
4
+ #
5
+ # [NOTICE] Autogenerated. Do not edit.
6
+
7
+ require 'ffi'
8
+
9
+ module SDL
10
+ extend FFI::Library
11
+ # Define/Macro
12
+
13
+ MS_PER_SECOND = 1000
14
+ US_PER_SECOND = 1000000
15
+ NS_PER_SECOND = 1000000000
16
+ NS_PER_MS = 1000000
17
+ NS_PER_US = 1000
18
+
19
+ # Enum
20
+
21
+
22
+ # Typedef
23
+
24
+ typedef :uint, :SDL_TimerID
25
+ callback :SDL_TimerCallback, [:pointer, :uint, :uint], :uint
26
+ callback :SDL_NSTimerCallback, [:pointer, :uint, :ulong_long], :ulong_long
27
+
28
+ # Struct
29
+
30
+
31
+ # Function
32
+
33
+ def self.setup_timer_symbols(output_error = false)
34
+ entries = [
35
+ [:GetTicks, :SDL_GetTicks, [], :ulong_long],
36
+ [:GetTicksNS, :SDL_GetTicksNS, [], :ulong_long],
37
+ [:GetPerformanceCounter, :SDL_GetPerformanceCounter, [], :ulong_long],
38
+ [:GetPerformanceFrequency, :SDL_GetPerformanceFrequency, [], :ulong_long],
39
+ [:Delay, :SDL_Delay, [:uint], :void],
40
+ [:DelayNS, :SDL_DelayNS, [:ulong_long], :void],
41
+ [:DelayPrecise, :SDL_DelayPrecise, [:ulong_long], :void],
42
+ [:AddTimer, :SDL_AddTimer, [:uint, :SDL_TimerCallback, :pointer], :uint],
43
+ [:AddTimerNS, :SDL_AddTimerNS, [:ulong_long, :SDL_NSTimerCallback, :pointer], :uint],
44
+ [:RemoveTimer, :SDL_RemoveTimer, [:uint], :bool],
45
+ ]
46
+ entries.each do |entry|
47
+ attach_function entry[0], entry[1], entry[2], entry[3]
48
+ rescue FFI::NotFoundError => e
49
+ warn "[Warning] Failed to import #{entry[0]} (#{e})." if output_error
50
+ end
51
+ end
52
+
53
+ end
54
+
data/lib/sdl3_touch.rb ADDED
@@ -0,0 +1,56 @@
1
+ # Ruby-SDL3 : SDL3 wrapper for Ruby
2
+ #
3
+ # * https://github.com/vaiorabbit/sdl3-bindings
4
+ #
5
+ # [NOTICE] Autogenerated. Do not edit.
6
+
7
+ require 'ffi'
8
+
9
+ module SDL
10
+ extend FFI::Library
11
+ # Define/Macro
12
+
13
+
14
+ # Enum
15
+
16
+ TOUCH_DEVICE_INVALID = -1
17
+ TOUCH_DEVICE_DIRECT = 0
18
+ TOUCH_DEVICE_INDIRECT_ABSOLUTE = 1
19
+ TOUCH_DEVICE_INDIRECT_RELATIVE = 2
20
+
21
+ # Typedef
22
+
23
+ typedef :ulong_long, :SDL_TouchID
24
+ typedef :ulong_long, :SDL_FingerID
25
+ typedef :int, :SDL_TouchDeviceType
26
+
27
+ # Struct
28
+
29
+ class Finger < FFI::Struct
30
+ layout(
31
+ :id, :ulong_long,
32
+ :x, :float,
33
+ :y, :float,
34
+ :pressure, :float,
35
+ )
36
+ end
37
+
38
+
39
+ # Function
40
+
41
+ def self.setup_touch_symbols(output_error = false)
42
+ entries = [
43
+ [:GetTouchDevices, :SDL_GetTouchDevices, [:pointer], :pointer],
44
+ [:GetTouchDeviceName, :SDL_GetTouchDeviceName, [:ulong_long], :pointer],
45
+ [:GetTouchDeviceType, :SDL_GetTouchDeviceType, [:ulong_long], :int],
46
+ [:GetTouchFingers, :SDL_GetTouchFingers, [:ulong_long, :pointer], :pointer],
47
+ ]
48
+ entries.each do |entry|
49
+ attach_function entry[0], entry[1], entry[2], entry[3]
50
+ rescue FFI::NotFoundError => e
51
+ warn "[Warning] Failed to import #{entry[0]} (#{e})." if output_error
52
+ end
53
+ end
54
+
55
+ end
56
+
data/lib/sdl3_tray.rb ADDED
@@ -0,0 +1,66 @@
1
+ # Ruby-SDL3 : SDL3 wrapper for Ruby
2
+ #
3
+ # * https://github.com/vaiorabbit/sdl3-bindings
4
+ #
5
+ # [NOTICE] Autogenerated. Do not edit.
6
+
7
+ require 'ffi'
8
+
9
+ module SDL
10
+ extend FFI::Library
11
+ # Define/Macro
12
+
13
+ TRAYENTRY_BUTTON = 0x00000001
14
+ TRAYENTRY_CHECKBOX = 0x00000002
15
+ TRAYENTRY_SUBMENU = 0x00000004
16
+ TRAYENTRY_DISABLED = 0x80000000
17
+ TRAYENTRY_CHECKED = 0x40000000
18
+
19
+ # Enum
20
+
21
+
22
+ # Typedef
23
+
24
+ typedef :uint, :SDL_TrayEntryFlags
25
+ callback :SDL_TrayCallback, [:pointer, :pointer], :void
26
+
27
+ # Struct
28
+
29
+
30
+ # Function
31
+
32
+ def self.setup_tray_symbols(output_error = false)
33
+ entries = [
34
+ [:CreateTray, :SDL_CreateTray, [:pointer, :pointer], :pointer],
35
+ [:SetTrayIcon, :SDL_SetTrayIcon, [:pointer, :pointer], :void],
36
+ [:SetTrayTooltip, :SDL_SetTrayTooltip, [:pointer, :pointer], :void],
37
+ [:CreateTrayMenu, :SDL_CreateTrayMenu, [:pointer], :pointer],
38
+ [:CreateTraySubmenu, :SDL_CreateTraySubmenu, [:pointer], :pointer],
39
+ [:GetTrayMenu, :SDL_GetTrayMenu, [:pointer], :pointer],
40
+ [:GetTraySubmenu, :SDL_GetTraySubmenu, [:pointer], :pointer],
41
+ [:GetTrayEntries, :SDL_GetTrayEntries, [:pointer, :pointer], :pointer],
42
+ [:RemoveTrayEntry, :SDL_RemoveTrayEntry, [:pointer], :void],
43
+ [:InsertTrayEntryAt, :SDL_InsertTrayEntryAt, [:pointer, :int, :pointer, :uint], :pointer],
44
+ [:SetTrayEntryLabel, :SDL_SetTrayEntryLabel, [:pointer, :pointer], :void],
45
+ [:GetTrayEntryLabel, :SDL_GetTrayEntryLabel, [:pointer], :pointer],
46
+ [:SetTrayEntryChecked, :SDL_SetTrayEntryChecked, [:pointer, :bool], :void],
47
+ [:GetTrayEntryChecked, :SDL_GetTrayEntryChecked, [:pointer], :bool],
48
+ [:SetTrayEntryEnabled, :SDL_SetTrayEntryEnabled, [:pointer, :bool], :void],
49
+ [:GetTrayEntryEnabled, :SDL_GetTrayEntryEnabled, [:pointer], :bool],
50
+ [:SetTrayEntryCallback, :SDL_SetTrayEntryCallback, [:pointer, :SDL_TrayCallback, :pointer], :void],
51
+ [:ClickTrayEntry, :SDL_ClickTrayEntry, [:pointer], :void],
52
+ [:DestroyTray, :SDL_DestroyTray, [:pointer], :void],
53
+ [:GetTrayEntryParent, :SDL_GetTrayEntryParent, [:pointer], :pointer],
54
+ [:GetTrayMenuParentEntry, :SDL_GetTrayMenuParentEntry, [:pointer], :pointer],
55
+ [:GetTrayMenuParentTray, :SDL_GetTrayMenuParentTray, [:pointer], :pointer],
56
+ [:UpdateTrays, :SDL_UpdateTrays, [], :void],
57
+ ]
58
+ entries.each do |entry|
59
+ attach_function entry[0], entry[1], entry[2], entry[3]
60
+ rescue FFI::NotFoundError => e
61
+ warn "[Warning] Failed to import #{entry[0]} (#{e})." if output_error
62
+ end
63
+ end
64
+
65
+ end
66
+