sdl2-bindings 0.0.8 → 0.1.1

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 (51) hide show
  1. checksums.yaml +4 -4
  2. data/ChangeLog +124 -92
  3. data/LICENSE.txt +1 -1
  4. data/README.md +77 -53
  5. data/lib/sdl2.rb +131 -172
  6. data/lib/sdl2_audio.rb +261 -222
  7. data/lib/sdl2_blendmode.rb +72 -69
  8. data/lib/sdl2_clipboard.rb +56 -51
  9. data/lib/sdl2_cpuinfo.rb +129 -106
  10. data/lib/sdl2_error.rb +71 -64
  11. data/lib/sdl2_events.rb +564 -533
  12. data/lib/sdl2_filesystem.rb +52 -48
  13. data/lib/sdl2_framerate.rb +74 -67
  14. data/lib/sdl2_gamecontroller.rb +329 -274
  15. data/lib/sdl2_gesture.rb +61 -55
  16. data/lib/sdl2_gfxPrimitives.rb +283 -222
  17. data/lib/sdl2_haptic.rb +301 -269
  18. data/lib/sdl2_hidapi.rb +139 -118
  19. data/lib/sdl2_hints.rb +221 -197
  20. data/lib/sdl2_image.rb +232 -185
  21. data/lib/sdl2_imageFilter.rb +164 -132
  22. data/lib/sdl2_joystick.rb +294 -239
  23. data/lib/sdl2_keyboard.rb +125 -99
  24. data/lib/sdl2_keycode.rb +307 -305
  25. data/lib/sdl2_log.rb +131 -115
  26. data/lib/sdl2_main.rb +74 -67
  27. data/lib/sdl2_messagebox.rb +102 -98
  28. data/lib/sdl2_misc.rb +48 -45
  29. data/lib/sdl2_mixer.rb +392 -317
  30. data/lib/sdl2_mouse.rb +136 -117
  31. data/lib/sdl2_pixels.rb +240 -224
  32. data/lib/sdl2_platform.rb +48 -45
  33. data/lib/sdl2_power.rb +54 -51
  34. data/lib/sdl2_rect.rb +145 -102
  35. data/lib/sdl2_render.rb +408 -322
  36. data/lib/sdl2_rotozoom.rb +76 -66
  37. data/lib/sdl2_rwops.rb +238 -208
  38. data/lib/sdl2_scancode.rb +289 -287
  39. data/lib/sdl2_sensor.rb +115 -97
  40. data/lib/sdl2_shape.rb +83 -77
  41. data/lib/sdl2_sound.rb +154 -0
  42. data/lib/sdl2_stdinc.rb +556 -439
  43. data/lib/sdl2_surface.rb +229 -188
  44. data/lib/sdl2_syswm.rb +160 -156
  45. data/lib/sdl2_timer.rb +74 -65
  46. data/lib/sdl2_touch.rb +86 -75
  47. data/lib/sdl2_ttf.rb +358 -202
  48. data/lib/sdl2_version.rb +67 -62
  49. data/lib/sdl2_video.rb +540 -446
  50. data/lib/sdl2_vulkan.rb +72 -64
  51. metadata +19 -4
data/lib/sdl2_syswm.rb CHANGED
@@ -1,156 +1,160 @@
1
- # Ruby-SDL2 : Yet another SDL2 wrapper for Ruby
2
- #
3
- # * https://github.com/vaiorabbit/sdl2-bindings
4
- #
5
- # [NOTICE] This is an automatically generated file.
6
-
7
- require 'ffi'
8
- require_relative 'sdl2_version'
9
-
10
- module SDL2
11
- extend FFI::Library
12
- # Define/Macro
13
-
14
-
15
- # Enum
16
-
17
- SDL_SYSWM_UNKNOWN = 0
18
- SDL_SYSWM_WINDOWS = 1
19
- SDL_SYSWM_X11 = 2
20
- SDL_SYSWM_DIRECTFB = 3
21
- SDL_SYSWM_COCOA = 4
22
- SDL_SYSWM_UIKIT = 5
23
- SDL_SYSWM_WAYLAND = 6
24
- SDL_SYSWM_MIR = 7
25
- SDL_SYSWM_WINRT = 8
26
- SDL_SYSWM_ANDROID = 9
27
- SDL_SYSWM_VIVANTE = 10
28
- SDL_SYSWM_OS2 = 11
29
- SDL_SYSWM_HAIKU = 12
30
- SDL_SYSWM_KMSDRM = 13
31
- SDL_SYSWM_RISCOS = 14
32
-
33
- # Typedef
34
-
35
- typedef :int, :SDL_SYSWM_TYPE
36
-
37
- class SDL_SysWMmsg_def_win < FFI::Struct
38
- layout(
39
- :hwnd, :pointer,
40
- :msg, :uint32,
41
- :wParam, :uint64,
42
- :lParam, :int64
43
- )
44
- end
45
-
46
- class SDL_SysWMmsg_value_win < FFI::Union
47
- layout(
48
- :win, SDL_SysWMmsg_def_win.by_value,
49
- :dummy, :int
50
- )
51
- end
52
-
53
- class SDL_SysWMmsg_win < FFI::Struct
54
- layout(
55
- :version, SDL_version.by_value,
56
- :subsystem, :int,
57
- :msg, SDL_SysWMmsg_value_win.by_value
58
- )
59
- end
60
-
61
-
62
- class SDL_SysWMmsg_def_cocoa < FFI::Struct
63
- layout(
64
- :dummy, :int
65
- )
66
- end
67
-
68
- class SDL_SysWMmsg_value_cocoa < FFI::Union
69
- layout(
70
- :cocoa, SDL_SysWMmsg_def_cocoa.by_value,
71
- :dummy, :int
72
- )
73
- end
74
-
75
- class SDL_SysWMmsg_cocoa < FFI::Struct
76
- layout(
77
- :version, SDL_version.by_value,
78
- :subsystem, :int,
79
- :msg, SDL_SysWMmsg_value_cocoa.by_value
80
- )
81
- end
82
-
83
- ################################################################################
84
-
85
- class SDL_SysWMinfo_def_win < FFI::Struct
86
- layout(
87
- :window, :pointer,
88
- :hdc, :pointer,
89
- :hinstance, :pointer
90
- )
91
- end
92
-
93
- class SDL_SysWMinfo_value_win < FFI::Union
94
- layout(
95
- :win, SDL_SysWMinfo_def_win.by_value,
96
- :dummy, [:uint8, 64]
97
- )
98
- end
99
-
100
- class SDL_SysWMinfo_win < FFI::Struct
101
- layout(
102
- :version, SDL_version.by_value,
103
- :subsystem, :int,
104
- :info, SDL_SysWMinfo_value_win.by_value
105
- )
106
- end
107
-
108
-
109
- class SDL_SysWMinfo_def_cocoa < FFI::Struct
110
- layout(
111
- :window, :pointer
112
- )
113
- end
114
-
115
- class SDL_SysWMinfo_value_cocoa < FFI::Union
116
- layout(
117
- :cocoa, SDL_SysWMinfo_def_cocoa.by_value,
118
- :dummy, [:uint8, 64]
119
- )
120
- end
121
-
122
- class SDL_SysWMinfo_cocoa < FFI::Struct
123
- layout(
124
- :version, SDL_version.by_value,
125
- :subsystem, :int,
126
- :info, SDL_SysWMinfo_value_cocoa.by_value
127
- )
128
- end
129
-
130
-
131
- # Struct
132
-
133
-
134
- # Function
135
-
136
- def self.setup_syswm_symbols()
137
- symbols = [
138
- :SDL_GetWindowWMInfo,
139
- ]
140
- args = {
141
- :SDL_GetWindowWMInfo => [:pointer, :pointer],
142
- }
143
- retvals = {
144
- :SDL_GetWindowWMInfo => :int,
145
- }
146
- symbols.each do |sym|
147
- begin
148
- attach_function sym, args[sym], retvals[sym]
149
- rescue FFI::NotFoundError => error
150
- $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
151
- end
152
- end
153
- end
154
-
155
- end
156
-
1
+ # Ruby-SDL2 : Yet another SDL2 wrapper for Ruby
2
+ #
3
+ # * https://github.com/vaiorabbit/sdl2-bindings
4
+ #
5
+ # [NOTICE] This is an automatically generated file.
6
+
7
+ require 'ffi'
8
+ require_relative 'sdl2_version'
9
+
10
+ module SDL
11
+ extend FFI::Library
12
+ # Define/Macro
13
+
14
+ METALVIEW_TAG = 255
15
+
16
+ # Enum
17
+
18
+ SYSWM_UNKNOWN = 0
19
+ SYSWM_WINDOWS = 1
20
+ SYSWM_X11 = 2
21
+ SYSWM_DIRECTFB = 3
22
+ SYSWM_COCOA = 4
23
+ SYSWM_UIKIT = 5
24
+ SYSWM_WAYLAND = 6
25
+ SYSWM_MIR = 7
26
+ SYSWM_WINRT = 8
27
+ SYSWM_ANDROID = 9
28
+ SYSWM_VIVANTE = 10
29
+ SYSWM_OS2 = 11
30
+ SYSWM_HAIKU = 12
31
+ SYSWM_KMSDRM = 13
32
+ SYSWM_RISCOS = 14
33
+
34
+ # Typedef
35
+
36
+ typedef :int, :SDL_SYSWM_TYPE
37
+
38
+ class SysWMmsg_def_win < FFI::Struct
39
+ layout(
40
+ :hwnd, :pointer,
41
+ :msg, :uint32,
42
+ :wParam, :uint64,
43
+ :lParam, :int64
44
+ )
45
+ end
46
+
47
+ class SysWMmsg_value_win < FFI::Union
48
+ layout(
49
+ :win, SysWMmsg_def_win.by_value,
50
+ :dummy, :int
51
+ )
52
+ end
53
+
54
+ class SysWMmsg_win < FFI::Struct
55
+ layout(
56
+ :version, Version.by_value,
57
+ :subsystem, :int,
58
+ :msg, SysWMmsg_value_win.by_value
59
+ )
60
+ end
61
+
62
+
63
+ class SysWMmsg_def_cocoa < FFI::Struct
64
+ layout(
65
+ :dummy, :int
66
+ )
67
+ end
68
+
69
+ class SysWMmsg_value_cocoa < FFI::Union
70
+ layout(
71
+ :cocoa, SysWMmsg_def_cocoa.by_value,
72
+ :dummy, :int
73
+ )
74
+ end
75
+
76
+ class SysWMmsg_cocoa < FFI::Struct
77
+ layout(
78
+ :version, Version.by_value,
79
+ :subsystem, :int,
80
+ :msg, SysWMmsg_value_cocoa.by_value
81
+ )
82
+ end
83
+
84
+ ################################################################################
85
+
86
+ class SysWMinfo_def_win < FFI::Struct
87
+ layout(
88
+ :window, :pointer,
89
+ :hdc, :pointer,
90
+ :hinstance, :pointer
91
+ )
92
+ end
93
+
94
+ class SysWMinfo_value_win < FFI::Union
95
+ layout(
96
+ :win, SysWMinfo_def_win.by_value,
97
+ :dummy, [:uint8, 64]
98
+ )
99
+ end
100
+
101
+ class SysWMinfo_win < FFI::Struct
102
+ layout(
103
+ :version, Version.by_value,
104
+ :subsystem, :int,
105
+ :info, SysWMinfo_value_win.by_value
106
+ )
107
+ end
108
+
109
+
110
+ class SysWMinfo_def_cocoa < FFI::Struct
111
+ layout(
112
+ :window, :pointer
113
+ )
114
+ end
115
+
116
+ class SysWMinfo_value_cocoa < FFI::Union
117
+ layout(
118
+ :cocoa, SysWMinfo_def_cocoa.by_value,
119
+ :dummy, [:uint8, 64]
120
+ )
121
+ end
122
+
123
+ class SysWMinfo_cocoa < FFI::Struct
124
+ layout(
125
+ :version, Version.by_value,
126
+ :subsystem, :int,
127
+ :info, SysWMinfo_value_cocoa.by_value
128
+ )
129
+ end
130
+
131
+
132
+ # Struct
133
+
134
+
135
+ # Function
136
+
137
+ def self.setup_syswm_symbols(output_error = false)
138
+ symbols = [
139
+ :SDL_GetWindowWMInfo,
140
+ ]
141
+ apis = {
142
+ :SDL_GetWindowWMInfo => :GetWindowWMInfo,
143
+ }
144
+ args = {
145
+ :SDL_GetWindowWMInfo => [:pointer, :pointer],
146
+ }
147
+ retvals = {
148
+ :SDL_GetWindowWMInfo => :int,
149
+ }
150
+ symbols.each do |sym|
151
+ begin
152
+ attach_function apis[sym], sym, args[sym], retvals[sym]
153
+ rescue FFI::NotFoundError => error
154
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
155
+ end
156
+ end
157
+ end
158
+
159
+ end
160
+
data/lib/sdl2_timer.rb CHANGED
@@ -1,65 +1,74 @@
1
- # Ruby-SDL2 : Yet another SDL2 wrapper for Ruby
2
- #
3
- # * https://github.com/vaiorabbit/sdl2-bindings
4
- #
5
- # [NOTICE] This is an automatically generated file.
6
-
7
- require 'ffi'
8
-
9
- module SDL2
10
- extend FFI::Library
11
- # Define/Macro
12
-
13
-
14
- # Enum
15
-
16
-
17
- # Typedef
18
-
19
- callback :SDL_TimerCallback, [:uint, :pointer], :uint
20
- typedef :int, :SDL_TimerID
21
-
22
- # Struct
23
-
24
-
25
- # Function
26
-
27
- def self.setup_timer_symbols()
28
- symbols = [
29
- :SDL_GetTicks,
30
- :SDL_GetTicks64,
31
- :SDL_GetPerformanceCounter,
32
- :SDL_GetPerformanceFrequency,
33
- :SDL_Delay,
34
- :SDL_AddTimer,
35
- :SDL_RemoveTimer,
36
- ]
37
- args = {
38
- :SDL_GetTicks => [],
39
- :SDL_GetTicks64 => [],
40
- :SDL_GetPerformanceCounter => [],
41
- :SDL_GetPerformanceFrequency => [],
42
- :SDL_Delay => [:uint],
43
- :SDL_AddTimer => [:uint, :SDL_TimerCallback, :pointer],
44
- :SDL_RemoveTimer => [:int],
45
- }
46
- retvals = {
47
- :SDL_GetTicks => :uint,
48
- :SDL_GetTicks64 => :ulong_long,
49
- :SDL_GetPerformanceCounter => :ulong_long,
50
- :SDL_GetPerformanceFrequency => :ulong_long,
51
- :SDL_Delay => :void,
52
- :SDL_AddTimer => :int,
53
- :SDL_RemoveTimer => :int,
54
- }
55
- symbols.each do |sym|
56
- begin
57
- attach_function sym, args[sym], retvals[sym]
58
- rescue FFI::NotFoundError => error
59
- $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
60
- end
61
- end
62
- end
63
-
64
- end
65
-
1
+ # Ruby-SDL2 : Yet another SDL2 wrapper for Ruby
2
+ #
3
+ # * https://github.com/vaiorabbit/sdl2-bindings
4
+ #
5
+ # [NOTICE] This is an automatically generated file.
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
+ callback :SDL_TimerCallback, [:uint, :pointer], :uint
20
+ typedef :int, :SDL_TimerID
21
+
22
+ # Struct
23
+
24
+
25
+ # Function
26
+
27
+ def self.setup_timer_symbols(output_error = false)
28
+ symbols = [
29
+ :SDL_GetTicks,
30
+ :SDL_GetTicks64,
31
+ :SDL_GetPerformanceCounter,
32
+ :SDL_GetPerformanceFrequency,
33
+ :SDL_Delay,
34
+ :SDL_AddTimer,
35
+ :SDL_RemoveTimer,
36
+ ]
37
+ apis = {
38
+ :SDL_GetTicks => :GetTicks,
39
+ :SDL_GetTicks64 => :GetTicks64,
40
+ :SDL_GetPerformanceCounter => :GetPerformanceCounter,
41
+ :SDL_GetPerformanceFrequency => :GetPerformanceFrequency,
42
+ :SDL_Delay => :Delay,
43
+ :SDL_AddTimer => :AddTimer,
44
+ :SDL_RemoveTimer => :RemoveTimer,
45
+ }
46
+ args = {
47
+ :SDL_GetTicks => [],
48
+ :SDL_GetTicks64 => [],
49
+ :SDL_GetPerformanceCounter => [],
50
+ :SDL_GetPerformanceFrequency => [],
51
+ :SDL_Delay => [:uint],
52
+ :SDL_AddTimer => [:uint, :SDL_TimerCallback, :pointer],
53
+ :SDL_RemoveTimer => [:int],
54
+ }
55
+ retvals = {
56
+ :SDL_GetTicks => :uint,
57
+ :SDL_GetTicks64 => :ulong_long,
58
+ :SDL_GetPerformanceCounter => :ulong_long,
59
+ :SDL_GetPerformanceFrequency => :ulong_long,
60
+ :SDL_Delay => :void,
61
+ :SDL_AddTimer => :int,
62
+ :SDL_RemoveTimer => :int,
63
+ }
64
+ symbols.each do |sym|
65
+ begin
66
+ attach_function apis[sym], sym, args[sym], retvals[sym]
67
+ rescue FFI::NotFoundError => error
68
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
69
+ end
70
+ end
71
+ end
72
+
73
+ end
74
+
data/lib/sdl2_touch.rb CHANGED
@@ -1,75 +1,86 @@
1
- # Ruby-SDL2 : Yet another SDL2 wrapper for Ruby
2
- #
3
- # * https://github.com/vaiorabbit/sdl2-bindings
4
- #
5
- # [NOTICE] This is an automatically generated file.
6
-
7
- require 'ffi'
8
-
9
- module SDL2
10
- extend FFI::Library
11
- # Define/Macro
12
-
13
- SDL_TOUCH_MOUSEID = ( -1 )
14
- SDL_MOUSE_TOUCHID = ( -1 )
15
-
16
- # Enum
17
-
18
- SDL_TOUCH_DEVICE_INVALID = -1
19
- SDL_TOUCH_DEVICE_DIRECT = 0
20
- SDL_TOUCH_DEVICE_INDIRECT_ABSOLUTE = 1
21
- SDL_TOUCH_DEVICE_INDIRECT_RELATIVE = 2
22
-
23
- # Typedef
24
-
25
- typedef :long_long, :SDL_TouchID
26
- typedef :long_long, :SDL_FingerID
27
- typedef :int, :SDL_TouchDeviceType
28
-
29
- # Struct
30
-
31
- class SDL_Finger < FFI::Struct
32
- layout(
33
- :id, :long_long,
34
- :x, :float,
35
- :y, :float,
36
- :pressure, :float,
37
- )
38
- end
39
-
40
-
41
- # Function
42
-
43
- def self.setup_touch_symbols()
44
- symbols = [
45
- :SDL_GetNumTouchDevices,
46
- :SDL_GetTouchDevice,
47
- :SDL_GetTouchDeviceType,
48
- :SDL_GetNumTouchFingers,
49
- :SDL_GetTouchFinger,
50
- ]
51
- args = {
52
- :SDL_GetNumTouchDevices => [],
53
- :SDL_GetTouchDevice => [:int],
54
- :SDL_GetTouchDeviceType => [:long_long],
55
- :SDL_GetNumTouchFingers => [:long_long],
56
- :SDL_GetTouchFinger => [:long_long, :int],
57
- }
58
- retvals = {
59
- :SDL_GetNumTouchDevices => :int,
60
- :SDL_GetTouchDevice => :long_long,
61
- :SDL_GetTouchDeviceType => :int,
62
- :SDL_GetNumTouchFingers => :int,
63
- :SDL_GetTouchFinger => :pointer,
64
- }
65
- symbols.each do |sym|
66
- begin
67
- attach_function sym, args[sym], retvals[sym]
68
- rescue FFI::NotFoundError => error
69
- $stderr.puts("[Warning] Failed to import #{sym} (#{error}).")
70
- end
71
- end
72
- end
73
-
74
- end
75
-
1
+ # Ruby-SDL2 : Yet another SDL2 wrapper for Ruby
2
+ #
3
+ # * https://github.com/vaiorabbit/sdl2-bindings
4
+ #
5
+ # [NOTICE] This is an automatically generated file.
6
+
7
+ require 'ffi'
8
+
9
+ module SDL
10
+ extend FFI::Library
11
+ # Define/Macro
12
+
13
+ TOUCH_MOUSEID = -1
14
+ MOUSE_TOUCHID = -1
15
+
16
+ # Enum
17
+
18
+ TOUCH_DEVICE_INVALID = -1
19
+ TOUCH_DEVICE_DIRECT = 0
20
+ TOUCH_DEVICE_INDIRECT_ABSOLUTE = 1
21
+ TOUCH_DEVICE_INDIRECT_RELATIVE = 2
22
+
23
+ # Typedef
24
+
25
+ typedef :long_long, :SDL_TouchID
26
+ typedef :long_long, :SDL_FingerID
27
+ typedef :int, :SDL_TouchDeviceType
28
+
29
+ # Struct
30
+
31
+ class Finger < FFI::Struct
32
+ layout(
33
+ :id, :long_long,
34
+ :x, :float,
35
+ :y, :float,
36
+ :pressure, :float,
37
+ )
38
+ end
39
+
40
+
41
+ # Function
42
+
43
+ def self.setup_touch_symbols(output_error = false)
44
+ symbols = [
45
+ :SDL_GetNumTouchDevices,
46
+ :SDL_GetTouchDevice,
47
+ :SDL_GetTouchName,
48
+ :SDL_GetTouchDeviceType,
49
+ :SDL_GetNumTouchFingers,
50
+ :SDL_GetTouchFinger,
51
+ ]
52
+ apis = {
53
+ :SDL_GetNumTouchDevices => :GetNumTouchDevices,
54
+ :SDL_GetTouchDevice => :GetTouchDevice,
55
+ :SDL_GetTouchName => :GetTouchName,
56
+ :SDL_GetTouchDeviceType => :GetTouchDeviceType,
57
+ :SDL_GetNumTouchFingers => :GetNumTouchFingers,
58
+ :SDL_GetTouchFinger => :GetTouchFinger,
59
+ }
60
+ args = {
61
+ :SDL_GetNumTouchDevices => [],
62
+ :SDL_GetTouchDevice => [:int],
63
+ :SDL_GetTouchName => [:int],
64
+ :SDL_GetTouchDeviceType => [:long_long],
65
+ :SDL_GetNumTouchFingers => [:long_long],
66
+ :SDL_GetTouchFinger => [:long_long, :int],
67
+ }
68
+ retvals = {
69
+ :SDL_GetNumTouchDevices => :int,
70
+ :SDL_GetTouchDevice => :long_long,
71
+ :SDL_GetTouchName => :pointer,
72
+ :SDL_GetTouchDeviceType => :int,
73
+ :SDL_GetNumTouchFingers => :int,
74
+ :SDL_GetTouchFinger => :pointer,
75
+ }
76
+ symbols.each do |sym|
77
+ begin
78
+ attach_function apis[sym], sym, args[sym], retvals[sym]
79
+ rescue FFI::NotFoundError => error
80
+ $stderr.puts("[Warning] Failed to import #{sym} (#{error}).") if output_error
81
+ end
82
+ end
83
+ end
84
+
85
+ end
86
+