sfml3-rb 0.2.2 → 0.3.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 (137) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +9 -0
  3. data/CHANGELOG.md +43 -17
  4. data/README.md +97 -29
  5. data/ext/audio/audio_enums.c +58 -20
  6. data/ext/audio/listener.c +89 -6
  7. data/ext/audio/music.c +206 -5
  8. data/ext/audio/sound.c +175 -5
  9. data/ext/audio/sound_buffer.c +189 -47
  10. data/ext/audio/sound_buffer_recorder.c +83 -16
  11. data/ext/audio/sound_recorder.c +172 -52
  12. data/ext/audio/sound_source_cone.c +108 -29
  13. data/ext/audio/sound_stream.c +178 -5
  14. data/ext/core/exceptions.c +10 -8
  15. data/ext/core/unicode.c +12 -2
  16. data/ext/ext.c +4 -0
  17. data/ext/graphics/blend_mode.c +203 -53
  18. data/ext/graphics/circle.c +271 -4
  19. data/ext/graphics/color.c +240 -90
  20. data/ext/graphics/drawable.c +15 -4
  21. data/ext/graphics/font.c +138 -25
  22. data/ext/graphics/glyph.c +31 -8
  23. data/ext/graphics/image.c +180 -37
  24. data/ext/graphics/polygon.c +293 -26
  25. data/ext/graphics/rect.c +211 -54
  26. data/ext/graphics/rectangle.c +279 -26
  27. data/ext/graphics/render_state.c +116 -2
  28. data/ext/graphics/render_texture.c +163 -2
  29. data/ext/graphics/shader.c +283 -17
  30. data/ext/graphics/shape.c +252 -26
  31. data/ext/graphics/sprite.c +216 -25
  32. data/ext/graphics/stencil_mode.c +148 -39
  33. data/ext/graphics/target.c +67 -22
  34. data/ext/graphics/target.h +15 -15
  35. data/ext/graphics/text.c +306 -6
  36. data/ext/graphics/texture.c +257 -3
  37. data/ext/graphics/transform.c +178 -5
  38. data/ext/graphics/transformable.c +126 -2
  39. data/ext/graphics/vertex.c +79 -2
  40. data/ext/graphics/vertex_array.c +128 -16
  41. data/ext/graphics/vertex_buffer.c +124 -2
  42. data/ext/graphics/view.c +130 -2
  43. data/ext/network/ftp.c +249 -10
  44. data/ext/network/http.c +156 -38
  45. data/ext/network/ip_address.c +107 -26
  46. data/ext/network/network_enums.c +248 -141
  47. data/ext/network/packet.c +273 -39
  48. data/ext/network/socket_selector.c +91 -19
  49. data/ext/network/tcp_listener.c +75 -16
  50. data/ext/network/tcp_socket.c +128 -25
  51. data/ext/network/udp_socket.c +122 -26
  52. data/ext/ports.rb +7 -0
  53. data/ext/system/buffer.c +41 -12
  54. data/ext/system/clock.c +68 -9
  55. data/ext/system/input_stream.c +94 -42
  56. data/ext/system/sleep.c +10 -2
  57. data/ext/system/time.c +172 -34
  58. data/ext/system/vec2.c +156 -35
  59. data/ext/system/vec3.c +166 -35
  60. data/ext/window/clipboard.c +47 -17
  61. data/ext/window/context.c +59 -9
  62. data/ext/window/context_settings.c +116 -38
  63. data/ext/window/cursor.c +39 -9
  64. data/ext/window/event.c +163 -42
  65. data/ext/window/joystick.c +69 -3
  66. data/ext/window/keyboard.c +168 -116
  67. data/ext/window/mouse.c +36 -2
  68. data/ext/window/sensor.c +28 -2
  69. data/ext/window/touch.c +20 -2
  70. data/ext/window/video_mode.c +90 -19
  71. data/ext/window/vulkan.c +34 -6
  72. data/ext/window/window.c +340 -16
  73. data/lib/sfml/version.rb +1 -1
  74. data/sig/audio/audio_enums.rbs +30 -0
  75. data/sig/audio/listener.rbs +16 -0
  76. data/sig/audio/music.rbs +56 -0
  77. data/sig/audio/sound.rbs +51 -0
  78. data/sig/audio/sound_buffer.rbs +17 -0
  79. data/sig/audio/sound_buffer_recorder.rbs +14 -0
  80. data/sig/audio/sound_recorder.rbs +17 -0
  81. data/sig/audio/sound_source_cone.rbs +14 -0
  82. data/sig/audio/sound_stream.rbs +51 -0
  83. data/sig/graphics/blend_mode.rbs +29 -0
  84. data/sig/graphics/circle.rbs +44 -0
  85. data/sig/graphics/color.rbs +39 -0
  86. data/sig/graphics/drawable.rbs +5 -0
  87. data/sig/graphics/font.rbs +20 -0
  88. data/sig/graphics/glyph.rbs +7 -0
  89. data/sig/graphics/image.rbs +22 -0
  90. data/sig/graphics/polygon.rbs +42 -0
  91. data/sig/graphics/rect.rbs +33 -0
  92. data/sig/graphics/rectangle.rbs +42 -0
  93. data/sig/graphics/render_state.rbs +21 -0
  94. data/sig/graphics/render_texture.rbs +37 -0
  95. data/sig/graphics/shader.rbs +39 -0
  96. data/sig/graphics/shape.rbs +38 -0
  97. data/sig/graphics/sprite.rbs +34 -0
  98. data/sig/graphics/stencil_mode.rbs +18 -0
  99. data/sig/graphics/target.rbs +10 -0
  100. data/sig/graphics/text.rbs +48 -0
  101. data/sig/graphics/texture.rbs +34 -0
  102. data/sig/graphics/transform.rbs +37 -0
  103. data/sig/graphics/transformable.rbs +25 -0
  104. data/sig/graphics/vertex.rbs +17 -0
  105. data/sig/graphics/vertex_array.rbs +17 -0
  106. data/sig/graphics/vertex_buffer.rbs +22 -0
  107. data/sig/graphics/view.rbs +24 -0
  108. data/sig/network/ftp.rbs +46 -0
  109. data/sig/network/http.rbs +27 -0
  110. data/sig/network/ip_address.rbs +22 -0
  111. data/sig/network/network_enums.rbs +95 -0
  112. data/sig/network/packet.rbs +40 -0
  113. data/sig/network/socket_selector.rbs +14 -0
  114. data/sig/network/tcp_listener.rbs +13 -0
  115. data/sig/network/tcp_socket.rbs +18 -0
  116. data/sig/network/udp_socket.rbs +17 -0
  117. data/sig/system/buffer.rbs +11 -0
  118. data/sig/system/clock.rbs +13 -0
  119. data/sig/system/input_stream.rbs +7 -0
  120. data/sig/system/sleep.rbs +3 -0
  121. data/sig/system/time.rbs +28 -0
  122. data/sig/system/vec2.rbs +26 -0
  123. data/sig/system/vec3.rbs +27 -0
  124. data/sig/window/clipboard.rbs +8 -0
  125. data/sig/window/context.rbs +11 -0
  126. data/sig/window/context_settings.rbs +20 -0
  127. data/sig/window/cursor.rbs +6 -0
  128. data/sig/window/event.rbs +20 -0
  129. data/sig/window/joystick.rbs +15 -0
  130. data/sig/window/keyboard.rbs +10 -0
  131. data/sig/window/mouse.rbs +9 -0
  132. data/sig/window/sensor.rbs +8 -0
  133. data/sig/window/touch.rbs +6 -0
  134. data/sig/window/video_mode.rbs +16 -0
  135. data/sig/window/vulkan.rbs +7 -0
  136. data/sig/window/window.rbs +57 -0
  137. metadata +66 -2
@@ -0,0 +1,11 @@
1
+ module SFML
2
+ class Context
3
+ def self.new: () -> Context
4
+ def self.extension_available?: (String name) -> bool
5
+ def self.function: (String name) -> Integer
6
+ def self.active_context_id: () -> Integer
7
+
8
+ def active=: (bool value) -> bool
9
+ def settings: () -> ContextSettings
10
+ end
11
+ end
@@ -0,0 +1,20 @@
1
+ module SFML
2
+ class ContextSettings
3
+ def self.new: (?Integer depth_bits, ?Integer stencil_bits, ?Integer antialiasing_level, ?Integer major_version, ?Integer minor_version, ?(Symbol | Array[Symbol] | Integer) flags, ?bool srgb_capable) -> ContextSettings
4
+
5
+ def depth_bits: () -> Integer
6
+ def depth_bits=: (Integer value) -> Integer
7
+ def stencil_bits: () -> Integer
8
+ def stencil_bits=: (Integer value) -> Integer
9
+ def antialiasing_level: () -> Integer
10
+ def antialiasing_level=: (Integer value) -> Integer
11
+ def major_version: () -> Integer
12
+ def major_version=: (Integer value) -> Integer
13
+ def minor_version: () -> Integer
14
+ def minor_version=: (Integer value) -> Integer
15
+ def attribute_flags: () -> Array[Symbol]
16
+ def attribute_flags=: (Symbol | Array[Symbol] | Integer value) -> (Symbol | Array[Symbol] | Integer)
17
+ def srgb_capable?: () -> bool
18
+ def srgb_capable=: (bool value) -> bool
19
+ end
20
+ end
@@ -0,0 +1,6 @@
1
+ module SFML
2
+ class Cursor
3
+ def self.from_pixels: (String pixels, untyped size, untyped hotspot) -> Cursor
4
+ def self.from_system: (Symbol | Integer type) -> Cursor
5
+ end
6
+ end
@@ -0,0 +1,20 @@
1
+ module SFML
2
+ class Event
3
+ def self.new: () -> Event
4
+
5
+ def type: () -> String
6
+ def size: () -> Vector2
7
+ def key: () -> Hash[Symbol, untyped]
8
+ def text: () -> String
9
+ def mouse_move: () -> Vector2
10
+ def mouse_move_raw: () -> Vector2
11
+ def mouse_button: () -> Hash[Symbol, untyped]
12
+ def mouse_wheel_scroll: () -> Hash[Symbol, untyped]
13
+ def mouse_wheel: () -> Hash[Symbol, untyped]
14
+ def joystick_move: () -> Hash[Symbol, untyped]
15
+ def joystick_button: () -> Hash[Symbol, untyped]
16
+ def joystick_connect: () -> Hash[Symbol, untyped]
17
+ def touch: () -> Hash[Symbol, untyped]
18
+ def sensor: () -> Hash[Symbol, untyped]
19
+ end
20
+ end
@@ -0,0 +1,15 @@
1
+ module SFML
2
+ module Joystick
3
+ COUNT: Integer
4
+ BUTTON_COUNT: Integer
5
+ AXIS_COUNT: Integer
6
+
7
+ def self.connected?: (Integer joystick) -> bool
8
+ def self.button_count: (Integer joystick) -> Integer
9
+ def self.has_axis?: (Integer joystick, Symbol | Integer axis) -> bool
10
+ def self.button_pressed?: (Integer joystick, Integer button) -> bool
11
+ def self.axis_position: (Integer joystick, Symbol | Integer axis) -> Float
12
+ def self.identification: (Integer joystick) -> Hash[Symbol, untyped]
13
+ def self.update!: () -> nil
14
+ end
15
+ end
@@ -0,0 +1,10 @@
1
+ module SFML
2
+ module Keyboard
3
+ def self.pressed?: (Symbol | String | Integer key) -> bool
4
+ def self.scancode_pressed?: (Integer scancode) -> bool
5
+ def self.localize: (Integer scancode) -> Symbol
6
+ def self.delocalize: (Symbol | String | Integer key) -> Integer
7
+ def self.description: (Integer scancode) -> String
8
+ def self.virtual_keyboard_visible=: (bool value) -> bool
9
+ end
10
+ end
@@ -0,0 +1,9 @@
1
+ module SFML
2
+ module Mouse
3
+ def self.button_pressed?: (Symbol | Integer button) -> bool
4
+ def self.pressed?: (Symbol | Integer button) -> bool
5
+ def self.position: (?Window? window) -> Vector2
6
+ def self.set_position: (Vector2 | Array[Float] position, ?Window? window) -> Vector2
7
+ def self.position=: (Vector2 | Array[Float] value) -> Vector2
8
+ end
9
+ end
@@ -0,0 +1,8 @@
1
+ module SFML
2
+ module Sensor
3
+ def self.available?: (Symbol | Integer type) -> bool
4
+ def self.set_enabled: (Symbol | Integer type, bool value) -> bool
5
+ def self.enabled=: (Symbol | Integer type, bool value) -> bool
6
+ def self.value: (Symbol | Integer type) -> Vector3
7
+ end
8
+ end
@@ -0,0 +1,6 @@
1
+ module SFML
2
+ module Touch
3
+ def self.down?: (Integer finger) -> bool
4
+ def self.position: (Integer finger, ?Window? window) -> Vector2
5
+ end
6
+ end
@@ -0,0 +1,16 @@
1
+ module SFML
2
+ class VideoMode
3
+ def self.new: (Integer width, Integer height, Integer bits_per_pixel) -> VideoMode
4
+ def self.desktop_mode: () -> VideoMode
5
+ def self.fullscreen_modes: () -> Array[VideoMode]
6
+
7
+ def valid?: () -> bool
8
+ def available?: () -> bool
9
+ def size: () -> Vector2
10
+ def ==: (untyped other) -> bool
11
+
12
+ attr_reader width: Integer
13
+ attr_reader height: Integer
14
+ attr_reader bits: Integer
15
+ end
16
+ end
@@ -0,0 +1,7 @@
1
+ module SFML
2
+ module Vulkan
3
+ def self.available?: (?bool require_graphics) -> bool
4
+ def self.function: (String name) -> Integer
5
+ def self.graphics_required_instance_extensions: () -> Array[String]
6
+ end
7
+ end
@@ -0,0 +1,57 @@
1
+ module SFML
2
+ class Window
3
+ def self.new: (VideoMode video_mode, String title, ?Symbol | Array[Symbol] | Integer style, ?Symbol state, ?ContextSettings? settings) -> Window
4
+ def self.from_handle: (Integer handle, ?ContextSettings? settings) -> Window
5
+
6
+ def is_open?: () -> bool
7
+ def close!: () -> self
8
+ def clear: (?untyped color) -> self
9
+ def display: () -> self
10
+ def poll_event!: (Event event) -> bool
11
+ def wait_event!: (Event event) -> bool
12
+
13
+ def frame_rate=: (Integer value) -> self
14
+ def framerate_limit=: (Integer value) -> self
15
+ def size=: (Vector2 | Array[Float] value) -> self
16
+ def minimum_size=: (Vector2 | Array[Float] value) -> (Vector2 | Array[Float])
17
+ def maximum_size=: (Vector2 | Array[Float] value) -> (Vector2 | Array[Float])
18
+ def title=: (String value) -> self
19
+ def set_icon: (Vector2 | Array[Float] size, String pixels) -> String
20
+ def visible=: (bool value) -> self
21
+ def active=: (bool value) -> bool
22
+ def vertical_sync_enabled=: (bool value) -> self
23
+ def cursor_visible=: (bool value) -> self
24
+ def cursor_grabbed=: (bool value) -> self
25
+ def mouse_cursor=: (Cursor? value) -> Cursor?
26
+ def cursor=: (Cursor? value) -> Cursor?
27
+ def key_repeat_enabled=: (bool value) -> self
28
+ def joystick_threshold=: (Float value) -> Float
29
+ def position=: (Vector2 | Array[Float] value) -> (Vector2 | Array[Float])
30
+ def view=: (untyped value) -> self
31
+
32
+ def request_focus: () -> self
33
+ def focus?: () -> bool
34
+ def draw: (untyped drawable, ?untyped state) -> self
35
+ def position: () -> Vector2
36
+ def size: () -> Vector2
37
+ def view: () -> untyped
38
+ def default_view: () -> untyped
39
+ def settings: () -> ContextSettings
40
+ def native_handle: () -> Integer
41
+ def create_vulkan_surface: (Integer instance, ?Integer? allocator) -> Integer?
42
+
43
+ # Shared with RenderTexture, via ext/graphics/render_target.inc.
44
+ def srgb?: () -> bool
45
+ def clear_stencil: (Integer value) -> self
46
+ def clear_color_and_stencil: (untyped color, Integer stencil) -> self
47
+ def viewport: (?untyped view) -> untyped
48
+ def scissor: (?untyped view) -> untyped
49
+ def map_pixel_to_coords: (untyped point, ?untyped view) -> untyped
50
+ def map_coords_to_pixel: (untyped point, ?untyped view) -> untyped
51
+ def push_gl_states: () -> self
52
+ def pop_gl_states: () -> self
53
+ def reset_gl_states: () -> self
54
+ def draw_primitives: (untyped vertices, untyped primitive, ?untyped state) -> self
55
+ def draw_vertex_buffer_range: (untyped buffer, Integer first, Integer count, ?untyped state) -> self
56
+ end
57
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sfml3-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Algaves
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2026-09-18 00:00:00.000000000 Z
12
+ date: 2026-09-19 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Ruby bindings for SFML 3 via CSFML. Precompiled binaries are published
15
15
  for common platforms; elsewhere SFML and CSFML are downloaded and built from source
@@ -24,6 +24,7 @@ extra_rdoc_files:
24
24
  - LICENSE.md
25
25
  - TODO.md
26
26
  files:
27
+ - ".yardopts"
27
28
  - CHANGELOG.md
28
29
  - LICENSE.md
29
30
  - README.md
@@ -178,6 +179,69 @@ files:
178
179
  - ext/window/window.h
179
180
  - lib/sfml.rb
180
181
  - lib/sfml/version.rb
182
+ - sig/audio/audio_enums.rbs
183
+ - sig/audio/listener.rbs
184
+ - sig/audio/music.rbs
185
+ - sig/audio/sound.rbs
186
+ - sig/audio/sound_buffer.rbs
187
+ - sig/audio/sound_buffer_recorder.rbs
188
+ - sig/audio/sound_recorder.rbs
189
+ - sig/audio/sound_source_cone.rbs
190
+ - sig/audio/sound_stream.rbs
191
+ - sig/graphics/blend_mode.rbs
192
+ - sig/graphics/circle.rbs
193
+ - sig/graphics/color.rbs
194
+ - sig/graphics/drawable.rbs
195
+ - sig/graphics/font.rbs
196
+ - sig/graphics/glyph.rbs
197
+ - sig/graphics/image.rbs
198
+ - sig/graphics/polygon.rbs
199
+ - sig/graphics/rect.rbs
200
+ - sig/graphics/rectangle.rbs
201
+ - sig/graphics/render_state.rbs
202
+ - sig/graphics/render_texture.rbs
203
+ - sig/graphics/shader.rbs
204
+ - sig/graphics/shape.rbs
205
+ - sig/graphics/sprite.rbs
206
+ - sig/graphics/stencil_mode.rbs
207
+ - sig/graphics/target.rbs
208
+ - sig/graphics/text.rbs
209
+ - sig/graphics/texture.rbs
210
+ - sig/graphics/transform.rbs
211
+ - sig/graphics/transformable.rbs
212
+ - sig/graphics/vertex.rbs
213
+ - sig/graphics/vertex_array.rbs
214
+ - sig/graphics/vertex_buffer.rbs
215
+ - sig/graphics/view.rbs
216
+ - sig/network/ftp.rbs
217
+ - sig/network/http.rbs
218
+ - sig/network/ip_address.rbs
219
+ - sig/network/network_enums.rbs
220
+ - sig/network/packet.rbs
221
+ - sig/network/socket_selector.rbs
222
+ - sig/network/tcp_listener.rbs
223
+ - sig/network/tcp_socket.rbs
224
+ - sig/network/udp_socket.rbs
225
+ - sig/system/buffer.rbs
226
+ - sig/system/clock.rbs
227
+ - sig/system/input_stream.rbs
228
+ - sig/system/sleep.rbs
229
+ - sig/system/time.rbs
230
+ - sig/system/vec2.rbs
231
+ - sig/system/vec3.rbs
232
+ - sig/window/clipboard.rbs
233
+ - sig/window/context.rbs
234
+ - sig/window/context_settings.rbs
235
+ - sig/window/cursor.rbs
236
+ - sig/window/event.rbs
237
+ - sig/window/joystick.rbs
238
+ - sig/window/keyboard.rbs
239
+ - sig/window/mouse.rbs
240
+ - sig/window/sensor.rbs
241
+ - sig/window/touch.rbs
242
+ - sig/window/video_mode.rbs
243
+ - sig/window/vulkan.rbs
244
+ - sig/window/window.rbs
181
245
  homepage: https://github.com/algaves/sfml3.rb
182
246
  licenses:
183
247
  - 0BSD