ruby2d 0.12.1 → 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.
Files changed (620) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.md +7 -0
  3. data/README.md +141 -0
  4. data/USAGE.md +2435 -0
  5. data/assets/Rakefile +637 -0
  6. data/assets/build_support/CMakeLists.txt +94 -0
  7. data/assets/build_support/mruby/build_config.rb +34 -0
  8. data/assets/build_support/mruby/build_config_wasm.rb +30 -0
  9. data/assets/build_support/sdl_test.c +174 -0
  10. data/assets/deps.yaml +16 -0
  11. data/assets/platform/include/SDL3/SDL.h +91 -0
  12. data/assets/platform/include/SDL3/SDL_assert.h +705 -0
  13. data/assets/platform/include/SDL3/SDL_asyncio.h +550 -0
  14. data/assets/platform/include/SDL3/SDL_atomic.h +692 -0
  15. data/assets/platform/include/SDL3/SDL_audio.h +2370 -0
  16. data/assets/platform/include/SDL3/SDL_begin_code.h +553 -0
  17. data/assets/{include/SDL2 → platform/include/SDL3}/SDL_bits.h +47 -27
  18. data/assets/{include/SDL2 → platform/include/SDL3}/SDL_blendmode.h +59 -55
  19. data/assets/platform/include/SDL3/SDL_camera.h +535 -0
  20. data/assets/platform/include/SDL3/SDL_clipboard.h +331 -0
  21. data/assets/{include/SDL2/close_code.h → platform/include/SDL3/SDL_close_code.h} +9 -8
  22. data/assets/{include/SDL2 → platform/include/SDL3}/SDL_copying.h +3 -1
  23. data/assets/platform/include/SDL3/SDL_cpuinfo.h +374 -0
  24. data/assets/platform/include/SDL3/SDL_dialog.h +343 -0
  25. data/assets/platform/include/SDL3/SDL_dlopennote.h +234 -0
  26. data/assets/{include/SDL2 → platform/include/SDL3}/SDL_egl.h +11 -8
  27. data/assets/platform/include/SDL3/SDL_endian.h +645 -0
  28. data/assets/platform/include/SDL3/SDL_error.h +226 -0
  29. data/assets/platform/include/SDL3/SDL_events.h +1645 -0
  30. data/assets/platform/include/SDL3/SDL_filesystem.h +537 -0
  31. data/assets/platform/include/SDL3/SDL_gamepad.h +1656 -0
  32. data/assets/platform/include/SDL3/SDL_gpu.h +4608 -0
  33. data/assets/platform/include/SDL3/SDL_guid.h +106 -0
  34. data/assets/platform/include/SDL3/SDL_haptic.h +1461 -0
  35. data/assets/platform/include/SDL3/SDL_hidapi.h +571 -0
  36. data/assets/platform/include/SDL3/SDL_hints.h +5001 -0
  37. data/assets/platform/include/SDL3/SDL_init.h +507 -0
  38. data/assets/platform/include/SDL3/SDL_intrin.h +410 -0
  39. data/assets/platform/include/SDL3/SDL_iostream.h +1379 -0
  40. data/assets/platform/include/SDL3/SDL_joystick.h +1385 -0
  41. data/assets/platform/include/SDL3/SDL_keyboard.h +608 -0
  42. data/assets/platform/include/SDL3/SDL_keycode.h +347 -0
  43. data/assets/platform/include/SDL3/SDL_loadso.h +145 -0
  44. data/assets/{include/SDL2 → platform/include/SDL3}/SDL_locale.h +40 -24
  45. data/assets/platform/include/SDL3/SDL_log.h +541 -0
  46. data/assets/platform/include/SDL3/SDL_main.h +704 -0
  47. data/assets/platform/include/SDL3/SDL_main_impl.h +151 -0
  48. data/assets/{include/SDL2 → platform/include/SDL3}/SDL_messagebox.h +85 -48
  49. data/assets/{include/SDL2 → platform/include/SDL3}/SDL_metal.h +29 -29
  50. data/assets/{include/SDL2 → platform/include/SDL3}/SDL_misc.h +13 -12
  51. data/assets/platform/include/SDL3/SDL_mouse.h +813 -0
  52. data/assets/platform/include/SDL3/SDL_mutex.h +1117 -0
  53. data/assets/platform/include/SDL3/SDL_oldnames.h +1339 -0
  54. data/assets/{include/SDL2 → platform/include/SDL3}/SDL_opengl.h +1247 -278
  55. data/assets/{include/SDL2 → platform/include/SDL3}/SDL_opengl_glext.h +5 -1
  56. data/assets/{include/SDL2 → platform/include/SDL3}/SDL_opengles.h +6 -7
  57. data/assets/{include/SDL2 → platform/include/SDL3}/SDL_opengles2.h +10 -11
  58. data/assets/platform/include/SDL3/SDL_pen.h +198 -0
  59. data/assets/platform/include/SDL3/SDL_pixels.h +1441 -0
  60. data/assets/{include/SDL2/SDL_test_log.h → platform/include/SDL3/SDL_platform.h} +25 -26
  61. data/assets/platform/include/SDL3/SDL_platform_defines.h +497 -0
  62. data/assets/{include/SDL2 → platform/include/SDL3}/SDL_power.h +40 -20
  63. data/assets/platform/include/SDL3/SDL_process.h +441 -0
  64. data/assets/platform/include/SDL3/SDL_properties.h +572 -0
  65. data/assets/platform/include/SDL3/SDL_rect.h +528 -0
  66. data/assets/platform/include/SDL3/SDL_render.h +3028 -0
  67. data/assets/platform/include/SDL3/SDL_revision.h +59 -0
  68. data/assets/{include/SDL2 → platform/include/SDL3}/SDL_scancode.h +59 -68
  69. data/assets/platform/include/SDL3/SDL_sensor.h +321 -0
  70. data/assets/platform/include/SDL3/SDL_stdinc.h +6186 -0
  71. data/assets/platform/include/SDL3/SDL_storage.h +686 -0
  72. data/assets/platform/include/SDL3/SDL_surface.h +1769 -0
  73. data/assets/platform/include/SDL3/SDL_system.h +840 -0
  74. data/assets/{include/SDL2 → platform/include/SDL3}/SDL_test.h +16 -22
  75. data/assets/{include/SDL2 → platform/include/SDL3}/SDL_test_assert.h +27 -34
  76. data/assets/{include/SDL2 → platform/include/SDL3}/SDL_test_common.h +109 -52
  77. data/assets/{include/SDL2 → platform/include/SDL3}/SDL_test_compare.h +22 -14
  78. data/assets/{include/SDL2 → platform/include/SDL3}/SDL_test_crc32.h +27 -30
  79. data/assets/{include/SDL2 → platform/include/SDL3}/SDL_test_font.h +50 -49
  80. data/assets/{include/SDL2 → platform/include/SDL3}/SDL_test_fuzzer.h +64 -79
  81. data/assets/{include/SDL2 → platform/include/SDL3}/SDL_test_harness.h +47 -30
  82. data/assets/platform/include/SDL3/SDL_test_log.h +83 -0
  83. data/assets/{include/SDL2 → platform/include/SDL3}/SDL_test_md5.h +21 -28
  84. data/assets/{include/SDL2 → platform/include/SDL3}/SDL_test_memory.h +19 -16
  85. data/assets/platform/include/SDL3/SDL_thread.h +602 -0
  86. data/assets/platform/include/SDL3/SDL_time.h +249 -0
  87. data/assets/platform/include/SDL3/SDL_timer.h +454 -0
  88. data/assets/platform/include/SDL3/SDL_touch.h +184 -0
  89. data/assets/platform/include/SDL3/SDL_tray.h +544 -0
  90. data/assets/platform/include/SDL3/SDL_version.h +198 -0
  91. data/assets/platform/include/SDL3/SDL_video.h +3497 -0
  92. data/assets/platform/include/SDL3/SDL_vulkan.h +287 -0
  93. data/assets/platform/include/SDL3_image/SDL_image.h +3328 -0
  94. data/assets/platform/include/SDL3_mixer/SDL_mixer.h +3369 -0
  95. data/assets/platform/include/SDL3_ttf/SDL_textengine.h +181 -0
  96. data/assets/platform/include/SDL3_ttf/SDL_ttf.h +2833 -0
  97. data/assets/{include → platform/include}/mrbconf.h +42 -31
  98. data/assets/{include → platform/include}/mruby/array.h +3 -4
  99. data/assets/{include → platform/include}/mruby/boxing_nan.h +10 -0
  100. data/assets/platform/include/mruby/boxing_no.h +59 -0
  101. data/assets/{include → platform/include}/mruby/boxing_word.h +72 -26
  102. data/assets/platform/include/mruby/class.h +157 -0
  103. data/assets/{include → platform/include}/mruby/common.h +30 -1
  104. data/assets/{include → platform/include}/mruby/compile.h +52 -74
  105. data/assets/{include → platform/include}/mruby/data.h +2 -2
  106. data/assets/{include → platform/include}/mruby/debug.h +12 -5
  107. data/assets/{include → platform/include}/mruby/dump.h +7 -9
  108. data/assets/{include → platform/include}/mruby/endian.h +1 -1
  109. data/assets/platform/include/mruby/error.h +173 -0
  110. data/assets/platform/include/mruby/gc.h +79 -0
  111. data/assets/{include → platform/include}/mruby/hash.h +1 -7
  112. data/assets/platform/include/mruby/internal.h +282 -0
  113. data/assets/platform/include/mruby/irep.h +143 -0
  114. data/assets/{include → platform/include}/mruby/istruct.h +1 -1
  115. data/assets/platform/include/mruby/khash.h +455 -0
  116. data/assets/platform/include/mruby/mempool.h +19 -0
  117. data/assets/{include → platform/include}/mruby/numeric.h +7 -10
  118. data/assets/platform/include/mruby/object.h +51 -0
  119. data/assets/{include → platform/include}/mruby/opcode.h +5 -5
  120. data/assets/{include → platform/include}/mruby/ops.h +19 -6
  121. data/assets/platform/include/mruby/presym/id.h +1447 -0
  122. data/assets/{include → platform/include}/mruby/presym/scanning.h +10 -7
  123. data/assets/platform/include/mruby/presym/table.h +2893 -0
  124. data/assets/platform/include/mruby/presym.h +65 -0
  125. data/assets/platform/include/mruby/proc.h +184 -0
  126. data/assets/{include → platform/include}/mruby/range.h +0 -2
  127. data/assets/{include → platform/include}/mruby/string.h +33 -53
  128. data/assets/platform/include/mruby/throw.h +81 -0
  129. data/assets/{include → platform/include}/mruby/value.h +64 -29
  130. data/assets/{include → platform/include}/mruby/variable.h +6 -23
  131. data/assets/{include → platform/include}/mruby/version.h +7 -7
  132. data/assets/{include → platform/include}/mruby.h +238 -116
  133. data/assets/platform/macos-arm64/bin/mrbc +0 -0
  134. data/assets/platform/macos-arm64/lib/libSDL3.a +0 -0
  135. data/assets/platform/macos-arm64/lib/libSDL3_image.a +0 -0
  136. data/assets/platform/macos-arm64/lib/libSDL3_mixer.a +0 -0
  137. data/assets/platform/macos-arm64/lib/libSDL3_ttf.a +0 -0
  138. data/assets/platform/macos-arm64/lib/libmruby.a +0 -0
  139. data/assets/platform/wasm/lib/libFLAC.a +0 -0
  140. data/assets/platform/wasm/lib/libSDL3.a +0 -0
  141. data/assets/platform/wasm/lib/libSDL3_image.a +0 -0
  142. data/assets/platform/wasm/lib/libSDL3_mixer.a +0 -0
  143. data/assets/platform/wasm/lib/libSDL3_ttf.a +0 -0
  144. data/assets/platform/wasm/lib/libfreetype.a +0 -0
  145. data/assets/platform/wasm/lib/libharfbuzz.a +0 -0
  146. data/assets/platform/wasm/lib/libmruby.a +0 -0
  147. data/assets/platform/wasm/lib/libogg.a +0 -0
  148. data/assets/platform/wasm/lib/libplutosvg.a +0 -0
  149. data/assets/platform/wasm/lib/libplutovg.a +0 -0
  150. data/assets/platform/wasm/lib/libpng.a +0 -0
  151. data/assets/platform/wasm/lib/libpng16.a +0 -0
  152. data/assets/platform/wasm/lib/libvorbis.a +0 -0
  153. data/assets/platform/wasm/lib/libvorbisfile.a +0 -0
  154. data/assets/platform/wasm/lib/libzlibstatic.a +0 -0
  155. data/assets/platform/windows-arm64-mingw-ucrt/bin/mrbc.exe +0 -0
  156. data/assets/platform/windows-arm64-mingw-ucrt/lib/libSDL3.a +0 -0
  157. data/assets/platform/windows-arm64-mingw-ucrt/lib/libSDL3_image.a +0 -0
  158. data/assets/platform/windows-arm64-mingw-ucrt/lib/libSDL3_mixer.a +0 -0
  159. data/assets/platform/windows-arm64-mingw-ucrt/lib/libSDL3_ttf.a +0 -0
  160. data/assets/platform/windows-arm64-mingw-ucrt/lib/libmruby.a +0 -0
  161. data/assets/platform/windows-x86_64-mingw-ucrt/bin/mrbc.exe +0 -0
  162. data/assets/platform/windows-x86_64-mingw-ucrt/lib/libSDL3.a +0 -0
  163. data/assets/platform/windows-x86_64-mingw-ucrt/lib/libSDL3_image.a +0 -0
  164. data/assets/platform/windows-x86_64-mingw-ucrt/lib/libSDL3_mixer.a +0 -0
  165. data/assets/platform/windows-x86_64-mingw-ucrt/lib/libSDL3_ttf.a +0 -0
  166. data/assets/platform/windows-x86_64-mingw-ucrt/lib/libmruby.a +0 -0
  167. data/assets/resources/fonts/outfit/OFL.txt +93 -0
  168. data/assets/resources/fonts/outfit/outfit.ttf +0 -0
  169. data/assets/resources/fonts/roboto_mono/OFL.txt +91 -0
  170. data/assets/resources/fonts/roboto_mono/roboto_mono.ttf +0 -0
  171. data/assets/resources/icons/icon.icns +0 -0
  172. data/assets/resources/icons/icon.png +0 -0
  173. data/assets/resources/spritesheets/License.txt +28 -0
  174. data/assets/resources/spritesheets/spritesheet-backgrounds.png +0 -0
  175. data/assets/resources/spritesheets/spritesheet-backgrounds.xml +16 -0
  176. data/assets/resources/spritesheets/spritesheet-characters.png +0 -0
  177. data/assets/resources/spritesheets/spritesheet-characters.xml +47 -0
  178. data/assets/resources/spritesheets/spritesheet-enemies.png +0 -0
  179. data/assets/resources/spritesheets/spritesheet-enemies.xml +62 -0
  180. data/assets/resources/spritesheets/spritesheet-tiles.png +0 -0
  181. data/assets/resources/spritesheets/spritesheet-tiles.xml +316 -0
  182. data/assets/{wasm → resources/web}/template.html +1 -1
  183. data/assets/target.rb +131 -0
  184. data/bin/ruby2d +281 -82
  185. data/examples/astar.rb +269 -0
  186. data/examples/asteroids.rb +403 -0
  187. data/examples/bezier_editor.rb +96 -0
  188. data/examples/boids.rb +191 -0
  189. data/examples/bouncing_balls.rb +119 -0
  190. data/examples/breakout.rb +186 -0
  191. data/examples/constellations.rb +100 -0
  192. data/examples/dashboard.rb +133 -0
  193. data/examples/double_pendulum.rb +254 -0
  194. data/examples/falling_sand.rb +291 -0
  195. data/examples/fireworks.rb +110 -0
  196. data/examples/fluid_dynamics.rb +340 -0
  197. data/examples/fourier_epicycles.rb +142 -0
  198. data/examples/fractal_tree.rb +326 -0
  199. data/examples/game_of_life.rb +148 -0
  200. data/examples/gamepads.rb +333 -0
  201. data/examples/hill_driver.rb +613 -0
  202. data/examples/logo_animation.rb +251 -0
  203. data/examples/lorenz_attractor.rb +115 -0
  204. data/examples/mandelbrot.rb +207 -0
  205. data/examples/marching_squares.rb +200 -0
  206. data/examples/maze.rb +323 -0
  207. data/examples/nbody.rb +338 -0
  208. data/examples/outrun.rb +391 -0
  209. data/examples/pixel_paint.rb +313 -0
  210. data/examples/platformer.rb +335 -0
  211. data/examples/ray_casting_maze.rb +175 -0
  212. data/examples/shadow_casting.rb +151 -0
  213. data/examples/shape_recognizer.rb +908 -0
  214. data/examples/snake.rb +144 -0
  215. data/examples/sprite_sheets.rb +246 -0
  216. data/examples/swarm.rb +206 -0
  217. data/examples/tsp_annealing.rb +104 -0
  218. data/examples/ui_controls.rb +163 -0
  219. data/examples/wireframe_3d.rb +139 -0
  220. data/ext/ruby2d/audio.c +324 -0
  221. data/ext/ruby2d/canvas.c +1715 -494
  222. data/ext/ruby2d/ext.c +541 -0
  223. data/ext/ruby2d/extconf.rb +122 -145
  224. data/ext/ruby2d/font.c +566 -20
  225. data/ext/ruby2d/fps.c +92 -0
  226. data/ext/ruby2d/image.c +466 -41
  227. data/ext/ruby2d/ruby2d.c +374 -1890
  228. data/ext/ruby2d/ruby2d.h +840 -460
  229. data/ext/ruby2d/shapes.c +931 -101
  230. data/ext/ruby2d/text.c +586 -21
  231. data/ext/ruby2d/window.c +1693 -283
  232. data/lib/ruby2d/atlas_parser.rb +194 -0
  233. data/lib/ruby2d/audio.rb +73 -0
  234. data/lib/ruby2d/benchmark.rb +259 -0
  235. data/lib/ruby2d/bitmap_text.rb +155 -0
  236. data/lib/ruby2d/button.rb +402 -0
  237. data/lib/ruby2d/canvas.rb +703 -279
  238. data/lib/ruby2d/circle.rb +206 -29
  239. data/lib/ruby2d/cli/browser.rb +314 -0
  240. data/lib/ruby2d/cli/build.rb +471 -257
  241. data/lib/ruby2d/cli/colorize.rb +7 -5
  242. data/lib/ruby2d/cli/examples.rb +127 -0
  243. data/lib/ruby2d/cli/launch.rb +24 -39
  244. data/lib/ruby2d/cli/lib_files.rb +48 -0
  245. data/lib/ruby2d/cli/messages.rb +40 -0
  246. data/lib/ruby2d/cli/setup.rb +273 -0
  247. data/lib/ruby2d/cli/static_server.rb +160 -0
  248. data/lib/ruby2d/cli/usage.rb +255 -0
  249. data/lib/ruby2d/color.rb +191 -69
  250. data/lib/ruby2d/core.rb +37 -19
  251. data/lib/ruby2d/deps_help.rb +89 -0
  252. data/lib/ruby2d/dsl.rb +51 -12
  253. data/lib/ruby2d/ellipse.rb +228 -0
  254. data/lib/ruby2d/exceptions.rb +0 -2
  255. data/lib/ruby2d/font.rb +34 -74
  256. data/lib/ruby2d/gamepad.rb +323 -0
  257. data/lib/ruby2d/gem_paths.rb +19 -0
  258. data/lib/ruby2d/image.rb +155 -52
  259. data/lib/ruby2d/interactive.rb +103 -0
  260. data/lib/ruby2d/json_parser.rb +268 -0
  261. data/lib/ruby2d/line.rb +194 -85
  262. data/lib/ruby2d/mruby_compat.rb +12 -0
  263. data/lib/ruby2d/polygon.rb +297 -0
  264. data/lib/ruby2d/polyline.rb +368 -0
  265. data/lib/ruby2d/quad.rb +358 -94
  266. data/lib/ruby2d/rectangle.rb +77 -19
  267. data/lib/ruby2d/renderable.rb +411 -11
  268. data/lib/ruby2d/sprite.rb +471 -180
  269. data/lib/ruby2d/sprite_sheet.rb +64 -0
  270. data/lib/ruby2d/square.rb +29 -17
  271. data/lib/ruby2d/text.rb +196 -65
  272. data/lib/ruby2d/tileset.rb +139 -81
  273. data/lib/ruby2d/triangle.rb +324 -89
  274. data/lib/ruby2d/version.rb +1 -3
  275. data/lib/ruby2d/vertices.rb +62 -85
  276. data/lib/ruby2d/warnings.rb +29 -0
  277. data/lib/ruby2d/window/class_methods.rb +218 -0
  278. data/lib/ruby2d/window/gamepad_events.rb +141 -0
  279. data/lib/ruby2d/window/key_events.rb +74 -0
  280. data/lib/ruby2d/window/mouse_events.rb +171 -0
  281. data/lib/ruby2d/window/object_events.rb +168 -0
  282. data/lib/ruby2d/window.rb +632 -585
  283. data/lib/ruby2d.rb +14 -19
  284. metadata +275 -443
  285. data/assets/app.icns +0 -0
  286. data/assets/include/GL/glew.h +0 -26427
  287. data/assets/include/GLES2/gl2.h +0 -656
  288. data/assets/include/GLES2/gl2ext.h +0 -3949
  289. data/assets/include/GLES2/gl2ext_angle.h +0 -701
  290. data/assets/include/GLES2/gl2platform.h +0 -27
  291. data/assets/include/GLES3/gl3.h +0 -1192
  292. data/assets/include/GLES3/gl31.h +0 -1507
  293. data/assets/include/GLES3/gl32.h +0 -1808
  294. data/assets/include/GLES3/gl3platform.h +0 -27
  295. data/assets/include/KHR/khrplatform.h +0 -290
  296. data/assets/include/SDL2/SDL.h +0 -233
  297. data/assets/include/SDL2/SDL_assert.h +0 -326
  298. data/assets/include/SDL2/SDL_atomic.h +0 -415
  299. data/assets/include/SDL2/SDL_audio.h +0 -1500
  300. data/assets/include/SDL2/SDL_clipboard.h +0 -141
  301. data/assets/include/SDL2/SDL_config.h +0 -61
  302. data/assets/include/SDL2/SDL_config_android.h +0 -194
  303. data/assets/include/SDL2/SDL_config_emscripten.h +0 -218
  304. data/assets/include/SDL2/SDL_config_iphoneos.h +0 -217
  305. data/assets/include/SDL2/SDL_config_macosx.h +0 -277
  306. data/assets/include/SDL2/SDL_config_minimal.h +0 -95
  307. data/assets/include/SDL2/SDL_config_ngage.h +0 -89
  308. data/assets/include/SDL2/SDL_config_os2.h +0 -207
  309. data/assets/include/SDL2/SDL_config_pandora.h +0 -141
  310. data/assets/include/SDL2/SDL_config_windows.h +0 -331
  311. data/assets/include/SDL2/SDL_config_wingdk.h +0 -253
  312. data/assets/include/SDL2/SDL_config_winrt.h +0 -220
  313. data/assets/include/SDL2/SDL_config_xbox.h +0 -235
  314. data/assets/include/SDL2/SDL_cpuinfo.h +0 -594
  315. data/assets/include/SDL2/SDL_endian.h +0 -348
  316. data/assets/include/SDL2/SDL_error.h +0 -163
  317. data/assets/include/SDL2/SDL_events.h +0 -1166
  318. data/assets/include/SDL2/SDL_filesystem.h +0 -149
  319. data/assets/include/SDL2/SDL_gamecontroller.h +0 -1074
  320. data/assets/include/SDL2/SDL_gesture.h +0 -117
  321. data/assets/include/SDL2/SDL_guid.h +0 -100
  322. data/assets/include/SDL2/SDL_haptic.h +0 -1341
  323. data/assets/include/SDL2/SDL_hidapi.h +0 -451
  324. data/assets/include/SDL2/SDL_hints.h +0 -2569
  325. data/assets/include/SDL2/SDL_image.h +0 -2173
  326. data/assets/include/SDL2/SDL_joystick.h +0 -1066
  327. data/assets/include/SDL2/SDL_keyboard.h +0 -353
  328. data/assets/include/SDL2/SDL_keycode.h +0 -358
  329. data/assets/include/SDL2/SDL_loadso.h +0 -115
  330. data/assets/include/SDL2/SDL_log.h +0 -404
  331. data/assets/include/SDL2/SDL_main.h +0 -275
  332. data/assets/include/SDL2/SDL_mixer.h +0 -2784
  333. data/assets/include/SDL2/SDL_mouse.h +0 -465
  334. data/assets/include/SDL2/SDL_mutex.h +0 -471
  335. data/assets/include/SDL2/SDL_name.h +0 -33
  336. data/assets/include/SDL2/SDL_pixels.h +0 -644
  337. data/assets/include/SDL2/SDL_platform.h +0 -261
  338. data/assets/include/SDL2/SDL_quit.h +0 -58
  339. data/assets/include/SDL2/SDL_rect.h +0 -376
  340. data/assets/include/SDL2/SDL_render.h +0 -1919
  341. data/assets/include/SDL2/SDL_revision.h +0 -6
  342. data/assets/include/SDL2/SDL_rwops.h +0 -841
  343. data/assets/include/SDL2/SDL_sensor.h +0 -322
  344. data/assets/include/SDL2/SDL_shape.h +0 -155
  345. data/assets/include/SDL2/SDL_stdinc.h +0 -830
  346. data/assets/include/SDL2/SDL_surface.h +0 -997
  347. data/assets/include/SDL2/SDL_system.h +0 -623
  348. data/assets/include/SDL2/SDL_syswm.h +0 -386
  349. data/assets/include/SDL2/SDL_test_images.h +0 -78
  350. data/assets/include/SDL2/SDL_test_random.h +0 -115
  351. data/assets/include/SDL2/SDL_thread.h +0 -464
  352. data/assets/include/SDL2/SDL_timer.h +0 -222
  353. data/assets/include/SDL2/SDL_touch.h +0 -150
  354. data/assets/include/SDL2/SDL_ttf.h +0 -2316
  355. data/assets/include/SDL2/SDL_types.h +0 -29
  356. data/assets/include/SDL2/SDL_version.h +0 -204
  357. data/assets/include/SDL2/SDL_video.h +0 -2150
  358. data/assets/include/SDL2/SDL_vulkan.h +0 -215
  359. data/assets/include/SDL2/begin_code.h +0 -187
  360. data/assets/include/mruby/boxing_no.h +0 -58
  361. data/assets/include/mruby/class.h +0 -108
  362. data/assets/include/mruby/error.h +0 -147
  363. data/assets/include/mruby/gc.h +0 -94
  364. data/assets/include/mruby/irep.h +0 -147
  365. data/assets/include/mruby/khash.h +0 -284
  366. data/assets/include/mruby/object.h +0 -43
  367. data/assets/include/mruby/presym/disable.h +0 -70
  368. data/assets/include/mruby/presym/enable.h +0 -37
  369. data/assets/include/mruby/presym.h +0 -40
  370. data/assets/include/mruby/proc.h +0 -211
  371. data/assets/include/mruby/throw.h +0 -66
  372. data/assets/macos/universal/bin/mrbc +0 -0
  373. data/assets/macos/universal/lib/libFLAC.a +0 -0
  374. data/assets/macos/universal/lib/libSDL2.a +0 -0
  375. data/assets/macos/universal/lib/libSDL2_image.a +0 -0
  376. data/assets/macos/universal/lib/libSDL2_mixer.a +0 -0
  377. data/assets/macos/universal/lib/libSDL2_ttf.a +0 -0
  378. data/assets/macos/universal/lib/libavif.a +0 -0
  379. data/assets/macos/universal/lib/libbrotlicommon-static.a +0 -0
  380. data/assets/macos/universal/lib/libbrotlidec-static.a +0 -0
  381. data/assets/macos/universal/lib/libfreetype.a +0 -0
  382. data/assets/macos/universal/lib/libgraphite2.a +0 -0
  383. data/assets/macos/universal/lib/libharfbuzz.a +0 -0
  384. data/assets/macos/universal/lib/libhwy.a +0 -0
  385. data/assets/macos/universal/lib/libjpeg.a +0 -0
  386. data/assets/macos/universal/lib/libjxl.a +0 -0
  387. data/assets/macos/universal/lib/libmodplug.a +0 -0
  388. data/assets/macos/universal/lib/libmpg123.a +0 -0
  389. data/assets/macos/universal/lib/libmruby.a +0 -0
  390. data/assets/macos/universal/lib/libogg.a +0 -0
  391. data/assets/macos/universal/lib/libpng.a +0 -0
  392. data/assets/macos/universal/lib/libtiff.a +0 -0
  393. data/assets/macos/universal/lib/libvorbis.a +0 -0
  394. data/assets/macos/universal/lib/libvorbisfile.a +0 -0
  395. data/assets/macos/universal/lib/libwebp.a +0 -0
  396. data/assets/macos/universal/lib/libzstd.a +0 -0
  397. data/assets/test_media/README.md +0 -3
  398. data/assets/test_media/bitstream_vera/COPYRIGHT.txt +0 -124
  399. data/assets/test_media/bitstream_vera/vera.ttf +0 -0
  400. data/assets/test_media/boom.png +0 -0
  401. data/assets/test_media/coin.png +0 -0
  402. data/assets/test_media/colors.png +0 -0
  403. data/assets/test_media/controller.png +0 -0
  404. data/assets/test_media/dial.wav +0 -0
  405. data/assets/test_media/hero.png +0 -0
  406. data/assets/test_media/image.bmp +0 -0
  407. data/assets/test_media/image.jpg +0 -0
  408. data/assets/test_media/image.png +0 -0
  409. data/assets/test_media/music.flac +0 -0
  410. data/assets/test_media/music.mp3 +0 -0
  411. data/assets/test_media/music.ogg +0 -0
  412. data/assets/test_media/music.wav +0 -0
  413. data/assets/test_media/originals/boom.pxm +0 -0
  414. data/assets/test_media/originals/coin.pxm +0 -0
  415. data/assets/test_media/originals/controller.sketch +0 -0
  416. data/assets/test_media/originals/hero.pxm +0 -0
  417. data/assets/test_media/originals/image.pxm +0 -0
  418. data/assets/test_media/originals/music.caf +0 -0
  419. data/assets/test_media/originals/texture_atlas.pxm +0 -0
  420. data/assets/test_media/rondo_alla_turka.ogg +0 -0
  421. data/assets/test_media/sound.flac +0 -0
  422. data/assets/test_media/sound.mp3 +0 -0
  423. data/assets/test_media/sound.ogg +0 -0
  424. data/assets/test_media/sound.wav +0 -0
  425. data/assets/test_media/sprite_sheet.png +0 -0
  426. data/assets/test_media/texture_atlas.png +0 -0
  427. data/assets/wasm/libmruby.a +0 -0
  428. data/assets/windows/mingw-w64-ucrt-x86_64/bin/mrbc.exe +0 -0
  429. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libFLAC.a +0 -0
  430. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libLerc.a +0 -0
  431. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libSDL2.a +0 -0
  432. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libSDL2_image.a +0 -0
  433. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libSDL2_mixer.a +0 -0
  434. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libSDL2_ttf.a +0 -0
  435. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libbrotlicommon.a +0 -0
  436. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libbrotlidec.a +0 -0
  437. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libbz2.a +0 -0
  438. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libdeflate.a +0 -0
  439. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libfreetype.a +0 -0
  440. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libglew32.a +0 -0
  441. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libgraphite2.a +0 -0
  442. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libharfbuzz.a +0 -0
  443. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libhwy.a +0 -0
  444. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libjbig.a +0 -0
  445. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libjpeg.a +0 -0
  446. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libjxl.a +0 -0
  447. data/assets/windows/mingw-w64-ucrt-x86_64/lib/liblzma.a +0 -0
  448. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libmodplug.a +0 -0
  449. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libmpg123.a +0 -0
  450. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libmruby.a +0 -0
  451. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libogg.a +0 -0
  452. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libopus.a +0 -0
  453. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libopusfile.a +0 -0
  454. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libpng.a +0 -0
  455. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libsndfile.a +0 -0
  456. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libssp.a +0 -1
  457. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libstdc++.a +0 -0
  458. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libtiff.a +0 -0
  459. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libvorbis.a +0 -0
  460. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libvorbisfile.a +0 -0
  461. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libwebp.a +0 -0
  462. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libz.a +0 -0
  463. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libzstd.a +0 -0
  464. data/assets/windows/mingw-w64-x86_64/bin/mrbc.exe +0 -0
  465. data/assets/windows/mingw-w64-x86_64/lib/libFLAC.a +0 -0
  466. data/assets/windows/mingw-w64-x86_64/lib/libLerc.a +0 -0
  467. data/assets/windows/mingw-w64-x86_64/lib/libSDL2.a +0 -0
  468. data/assets/windows/mingw-w64-x86_64/lib/libSDL2_image.a +0 -0
  469. data/assets/windows/mingw-w64-x86_64/lib/libSDL2_mixer.a +0 -0
  470. data/assets/windows/mingw-w64-x86_64/lib/libSDL2_ttf.a +0 -0
  471. data/assets/windows/mingw-w64-x86_64/lib/libbrotlicommon.a +0 -0
  472. data/assets/windows/mingw-w64-x86_64/lib/libbrotlidec.a +0 -0
  473. data/assets/windows/mingw-w64-x86_64/lib/libbz2.a +0 -0
  474. data/assets/windows/mingw-w64-x86_64/lib/libdeflate.a +0 -0
  475. data/assets/windows/mingw-w64-x86_64/lib/libfreetype.a +0 -0
  476. data/assets/windows/mingw-w64-x86_64/lib/libglew32.a +0 -0
  477. data/assets/windows/mingw-w64-x86_64/lib/libgraphite2.a +0 -0
  478. data/assets/windows/mingw-w64-x86_64/lib/libharfbuzz.a +0 -0
  479. data/assets/windows/mingw-w64-x86_64/lib/libhwy.a +0 -0
  480. data/assets/windows/mingw-w64-x86_64/lib/libjbig.a +0 -0
  481. data/assets/windows/mingw-w64-x86_64/lib/libjpeg.a +0 -0
  482. data/assets/windows/mingw-w64-x86_64/lib/libjxl.a +0 -0
  483. data/assets/windows/mingw-w64-x86_64/lib/liblzma.a +0 -0
  484. data/assets/windows/mingw-w64-x86_64/lib/libmodplug.a +0 -0
  485. data/assets/windows/mingw-w64-x86_64/lib/libmpg123.a +0 -0
  486. data/assets/windows/mingw-w64-x86_64/lib/libmruby.a +0 -0
  487. data/assets/windows/mingw-w64-x86_64/lib/libogg.a +0 -0
  488. data/assets/windows/mingw-w64-x86_64/lib/libopus.a +0 -0
  489. data/assets/windows/mingw-w64-x86_64/lib/libopusfile.a +0 -0
  490. data/assets/windows/mingw-w64-x86_64/lib/libpng.a +0 -0
  491. data/assets/windows/mingw-w64-x86_64/lib/libsndfile.a +0 -0
  492. data/assets/windows/mingw-w64-x86_64/lib/libssp.a +0 -1
  493. data/assets/windows/mingw-w64-x86_64/lib/libstdc++.a +0 -0
  494. data/assets/windows/mingw-w64-x86_64/lib/libtiff.a +0 -0
  495. data/assets/windows/mingw-w64-x86_64/lib/libvorbis.a +0 -0
  496. data/assets/windows/mingw-w64-x86_64/lib/libvorbisfile.a +0 -0
  497. data/assets/windows/mingw-w64-x86_64/lib/libwebp.a +0 -0
  498. data/assets/windows/mingw-w64-x86_64/lib/libz.a +0 -0
  499. data/assets/windows/mingw-w64-x86_64/lib/libzstd.a +0 -0
  500. data/assets/xcode/ios/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -98
  501. data/assets/xcode/ios/Assets.xcassets/Contents.json +0 -6
  502. data/assets/xcode/ios/Base.lproj/LaunchScreen.storyboard +0 -27
  503. data/assets/xcode/ios/Info.plist +0 -43
  504. data/assets/xcode/ios/MRuby.framework/Headers/mrbconf.h +0 -143
  505. data/assets/xcode/ios/MRuby.framework/Headers/mruby/array.h +0 -280
  506. data/assets/xcode/ios/MRuby.framework/Headers/mruby/boxing_nan.h +0 -102
  507. data/assets/xcode/ios/MRuby.framework/Headers/mruby/boxing_no.h +0 -56
  508. data/assets/xcode/ios/MRuby.framework/Headers/mruby/boxing_word.h +0 -144
  509. data/assets/xcode/ios/MRuby.framework/Headers/mruby/class.h +0 -97
  510. data/assets/xcode/ios/MRuby.framework/Headers/mruby/common.h +0 -77
  511. data/assets/xcode/ios/MRuby.framework/Headers/mruby/compile.h +0 -195
  512. data/assets/xcode/ios/MRuby.framework/Headers/mruby/data.h +0 -75
  513. data/assets/xcode/ios/MRuby.framework/Headers/mruby/debug.h +0 -67
  514. data/assets/xcode/ios/MRuby.framework/Headers/mruby/dump.h +0 -196
  515. data/assets/xcode/ios/MRuby.framework/Headers/mruby/error.h +0 -75
  516. data/assets/xcode/ios/MRuby.framework/Headers/mruby/gc.h +0 -91
  517. data/assets/xcode/ios/MRuby.framework/Headers/mruby/hash.h +0 -215
  518. data/assets/xcode/ios/MRuby.framework/Headers/mruby/irep.h +0 -75
  519. data/assets/xcode/ios/MRuby.framework/Headers/mruby/istruct.h +0 -47
  520. data/assets/xcode/ios/MRuby.framework/Headers/mruby/khash.h +0 -274
  521. data/assets/xcode/ios/MRuby.framework/Headers/mruby/numeric.h +0 -161
  522. data/assets/xcode/ios/MRuby.framework/Headers/mruby/object.h +0 -44
  523. data/assets/xcode/ios/MRuby.framework/Headers/mruby/opcode.h +0 -69
  524. data/assets/xcode/ios/MRuby.framework/Headers/mruby/ops.h +0 -117
  525. data/assets/xcode/ios/MRuby.framework/Headers/mruby/proc.h +0 -131
  526. data/assets/xcode/ios/MRuby.framework/Headers/mruby/range.h +0 -49
  527. data/assets/xcode/ios/MRuby.framework/Headers/mruby/re.h +0 -16
  528. data/assets/xcode/ios/MRuby.framework/Headers/mruby/string.h +0 -444
  529. data/assets/xcode/ios/MRuby.framework/Headers/mruby/throw.h +0 -55
  530. data/assets/xcode/ios/MRuby.framework/Headers/mruby/value.h +0 -309
  531. data/assets/xcode/ios/MRuby.framework/Headers/mruby/variable.h +0 -136
  532. data/assets/xcode/ios/MRuby.framework/Headers/mruby/version.h +0 -110
  533. data/assets/xcode/ios/MRuby.framework/Headers/mruby.h +0 -1282
  534. data/assets/xcode/ios/MRuby.framework/Info.plist +0 -20
  535. data/assets/xcode/ios/MRuby.framework/MRuby +0 -0
  536. data/assets/xcode/ios/MyApp.xcodeproj/project.pbxproj +0 -368
  537. data/assets/xcode/ios/MyApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  538. data/assets/xcode/ios/MyApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  539. data/assets/xcode/ios/MyApp.xcodeproj/project.xcworkspace/xcshareddata/MyApp.xcscmblueprint +0 -30
  540. data/assets/xcode/ios/main.c +0 -1
  541. data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Content.imageset/Contents.json +0 -16
  542. data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Contents.json +0 -6
  543. data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Contents.json +0 -17
  544. data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Content.imageset/Contents.json +0 -16
  545. data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Contents.json +0 -6
  546. data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json +0 -16
  547. data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Contents.json +0 -6
  548. data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Content.imageset/Contents.json +0 -16
  549. data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Contents.json +0 -6
  550. data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Contents.json +0 -17
  551. data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Content.imageset/Contents.json +0 -16
  552. data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Contents.json +0 -6
  553. data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json +0 -16
  554. data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Contents.json +0 -6
  555. data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Contents.json +0 -32
  556. data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image Wide.imageset/Contents.json +0 -16
  557. data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/Contents.json +0 -16
  558. data/assets/xcode/tvos/Assets.xcassets/Contents.json +0 -6
  559. data/assets/xcode/tvos/Assets.xcassets/LaunchImage.launchimage/Contents.json +0 -22
  560. data/assets/xcode/tvos/Info.plist +0 -30
  561. data/assets/xcode/tvos/MRuby.framework/Headers/mrbconf.h +0 -143
  562. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/array.h +0 -280
  563. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/boxing_nan.h +0 -102
  564. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/boxing_no.h +0 -56
  565. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/boxing_word.h +0 -144
  566. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/class.h +0 -97
  567. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/common.h +0 -77
  568. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/compile.h +0 -195
  569. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/data.h +0 -75
  570. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/debug.h +0 -67
  571. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/dump.h +0 -196
  572. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/error.h +0 -75
  573. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/gc.h +0 -91
  574. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/hash.h +0 -215
  575. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/irep.h +0 -75
  576. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/istruct.h +0 -47
  577. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/khash.h +0 -274
  578. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/numeric.h +0 -161
  579. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/object.h +0 -44
  580. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/opcode.h +0 -69
  581. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/ops.h +0 -117
  582. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/proc.h +0 -131
  583. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/range.h +0 -49
  584. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/re.h +0 -16
  585. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/string.h +0 -444
  586. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/throw.h +0 -55
  587. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/value.h +0 -309
  588. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/variable.h +0 -136
  589. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/version.h +0 -110
  590. data/assets/xcode/tvos/MRuby.framework/Headers/mruby.h +0 -1282
  591. data/assets/xcode/tvos/MRuby.framework/Info.plist +0 -20
  592. data/assets/xcode/tvos/MRuby.framework/MRuby +0 -0
  593. data/assets/xcode/tvos/MyApp.xcodeproj/project.pbxproj +0 -350
  594. data/assets/xcode/tvos/MyApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  595. data/assets/xcode/tvos/MyApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  596. data/assets/xcode/tvos/MyApp.xcodeproj/project.xcworkspace/xcshareddata/MyApp.xcscmblueprint +0 -30
  597. data/assets/xcode/tvos/main.c +0 -1
  598. data/ext/ruby2d/common.c +0 -185
  599. data/ext/ruby2d/controllers.c +0 -110
  600. data/ext/ruby2d/gl.c +0 -398
  601. data/ext/ruby2d/gl2.c +0 -86
  602. data/ext/ruby2d/gl3.c +0 -304
  603. data/ext/ruby2d/gles.c +0 -302
  604. data/ext/ruby2d/input.c +0 -48
  605. data/ext/ruby2d/music.c +0 -127
  606. data/ext/ruby2d/sound.c +0 -132
  607. data/lib/ruby2d/cli/console.rb +0 -65
  608. data/lib/ruby2d/cli/enable_console.rb +0 -7
  609. data/lib/ruby2d/cli/platform.rb +0 -17
  610. data/lib/ruby2d/music.rb +0 -77
  611. data/lib/ruby2d/pixel.rb +0 -18
  612. data/lib/ruby2d/pixmap.rb +0 -39
  613. data/lib/ruby2d/pixmap_atlas.rb +0 -56
  614. data/lib/ruby2d/sound.rb +0 -61
  615. data/lib/ruby2d/texture.rb +0 -38
  616. /data/assets/{include/SDL2 → platform/include/SDL3}/SDL_opengles2_gl2.h +0 -0
  617. /data/assets/{include/SDL2 → platform/include/SDL3}/SDL_opengles2_gl2ext.h +0 -0
  618. /data/assets/{include/SDL2 → platform/include/SDL3}/SDL_opengles2_gl2platform.h +0 -0
  619. /data/assets/{include/SDL2 → platform/include/SDL3}/SDL_opengles2_khrplatform.h +0 -0
  620. /data/assets/{include → platform/include}/mruby/re.h +0 -0
@@ -0,0 +1,686 @@
1
+ /*
2
+ Simple DirectMedia Layer
3
+ Copyright (C) 1997-2026 Sam Lantinga <slouken@libsdl.org>
4
+
5
+ This software is provided 'as-is', without any express or implied
6
+ warranty. In no event will the authors be held liable for any damages
7
+ arising from the use of this software.
8
+
9
+ Permission is granted to anyone to use this software for any purpose,
10
+ including commercial applications, and to alter it and redistribute it
11
+ freely, subject to the following restrictions:
12
+
13
+ 1. The origin of this software must not be misrepresented; you must not
14
+ claim that you wrote the original software. If you use this software
15
+ in a product, an acknowledgment in the product documentation would be
16
+ appreciated but is not required.
17
+ 2. Altered source versions must be plainly marked as such, and must not be
18
+ misrepresented as being the original software.
19
+ 3. This notice may not be removed or altered from any source distribution.
20
+ */
21
+
22
+ /**
23
+ * # CategoryStorage
24
+ *
25
+ * The storage API is a high-level API designed to abstract away the
26
+ * portability issues that come up when using something lower-level (in SDL's
27
+ * case, this sits on top of the [Filesystem](CategoryFilesystem) and
28
+ * [IOStream](CategoryIOStream) subsystems). It is significantly more
29
+ * restrictive than a typical filesystem API, for a number of reasons:
30
+ *
31
+ * 1. **What to Access:** A common pitfall with existing filesystem APIs is
32
+ * the assumption that all storage is monolithic. However, many other
33
+ * platforms (game consoles in particular) are more strict about what _type_
34
+ * of filesystem is being accessed; for example, game content and user data
35
+ * are usually two separate storage devices with entirely different
36
+ * characteristics (and possibly different low-level APIs altogether!).
37
+ *
38
+ * 2. **How to Access:** Another common mistake is applications assuming that
39
+ * all storage is universally writeable - again, many platforms treat game
40
+ * content and user data as two separate storage devices, and only user data
41
+ * is writeable while game content is read-only.
42
+ *
43
+ * 3. **When to Access:** The most common portability issue with filesystem
44
+ * access is _timing_ - you cannot always assume that the storage device is
45
+ * always accessible all of the time, nor can you assume that there are no
46
+ * limits to how long you have access to a particular device.
47
+ *
48
+ * Consider the following example:
49
+ *
50
+ * ```c
51
+ * void ReadGameData(void)
52
+ * {
53
+ * extern char** fileNames;
54
+ * extern size_t numFiles;
55
+ * for (size_t i = 0; i < numFiles; i += 1) {
56
+ * FILE *data = fopen(fileNames[i], "rwb");
57
+ * if (data == NULL) {
58
+ * // Something bad happened!
59
+ * } else {
60
+ * // A bunch of stuff happens here
61
+ * fclose(data);
62
+ * }
63
+ * }
64
+ * }
65
+ *
66
+ * void ReadSave(void)
67
+ * {
68
+ * FILE *save = fopen("saves/save0.sav", "rb");
69
+ * if (save == NULL) {
70
+ * // Something bad happened!
71
+ * } else {
72
+ * // A bunch of stuff happens here
73
+ * fclose(save);
74
+ * }
75
+ * }
76
+ *
77
+ * void WriteSave(void)
78
+ * {
79
+ * FILE *save = fopen("saves/save0.sav", "wb");
80
+ * if (save == NULL) {
81
+ * // Something bad happened!
82
+ * } else {
83
+ * // A bunch of stuff happens here
84
+ * fclose(save);
85
+ * }
86
+ * }
87
+ * ```
88
+ *
89
+ * Going over the bullet points again:
90
+ *
91
+ * 1. **What to Access:** This code accesses a global filesystem; game data
92
+ * and saves are all presumed to be in the current working directory (which
93
+ * may or may not be the game's installation folder!).
94
+ *
95
+ * 2. **How to Access:** This code assumes that content paths are writeable,
96
+ * and that save data is also writeable despite being in the same location as
97
+ * the game data.
98
+ *
99
+ * 3. **When to Access:** This code assumes that they can be called at any
100
+ * time, since the filesystem is always accessible and has no limits on how
101
+ * long the filesystem is being accessed.
102
+ *
103
+ * Due to these assumptions, the filesystem code is not portable and will fail
104
+ * under these common scenarios:
105
+ *
106
+ * - The game is installed on a device that is read-only, both content loading
107
+ * and game saves will fail or crash outright
108
+ * - Game/User storage is not implicitly mounted, so no files will be found
109
+ * for either scenario when a platform requires explicitly mounting
110
+ * filesystems
111
+ * - Save data may not be safe since the I/O is not being flushed or
112
+ * validated, so an error occurring elsewhere in the program may result in
113
+ * missing/corrupted save data
114
+ *
115
+ * When using SDL_Storage, these types of problems are virtually impossible to
116
+ * trip over:
117
+ *
118
+ * ```c
119
+ * void ReadGameData(void)
120
+ * {
121
+ * extern char** fileNames;
122
+ * extern size_t numFiles;
123
+ *
124
+ * SDL_Storage *title = SDL_OpenTitleStorage(NULL, 0);
125
+ * if (title == NULL) {
126
+ * // Something bad happened!
127
+ * }
128
+ * while (!SDL_StorageReady(title)) {
129
+ * SDL_Delay(1);
130
+ * }
131
+ *
132
+ * for (size_t i = 0; i < numFiles; i += 1) {
133
+ * void* dst;
134
+ * Uint64 dstLen = 0;
135
+ *
136
+ * if (SDL_GetStorageFileSize(title, fileNames[i], &dstLen) && dstLen > 0) {
137
+ * dst = SDL_malloc(dstLen);
138
+ * if (SDL_ReadStorageFile(title, fileNames[i], dst, dstLen)) {
139
+ * // A bunch of stuff happens here
140
+ * } else {
141
+ * // Something bad happened!
142
+ * }
143
+ * SDL_free(dst);
144
+ * } else {
145
+ * // Something bad happened!
146
+ * }
147
+ * }
148
+ *
149
+ * SDL_CloseStorage(title);
150
+ * }
151
+ *
152
+ * void ReadSave(void)
153
+ * {
154
+ * SDL_Storage *user = SDL_OpenUserStorage("libsdl", "Storage Example", 0);
155
+ * if (user == NULL) {
156
+ * // Something bad happened!
157
+ * }
158
+ * while (!SDL_StorageReady(user)) {
159
+ * SDL_Delay(1);
160
+ * }
161
+ *
162
+ * Uint64 saveLen = 0;
163
+ * if (SDL_GetStorageFileSize(user, "save0.sav", &saveLen) && saveLen > 0) {
164
+ * void* dst = SDL_malloc(saveLen);
165
+ * if (SDL_ReadStorageFile(user, "save0.sav", dst, saveLen)) {
166
+ * // A bunch of stuff happens here
167
+ * } else {
168
+ * // Something bad happened!
169
+ * }
170
+ * SDL_free(dst);
171
+ * } else {
172
+ * // Something bad happened!
173
+ * }
174
+ *
175
+ * SDL_CloseStorage(user);
176
+ * }
177
+ *
178
+ * void WriteSave(void)
179
+ * {
180
+ * SDL_Storage *user = SDL_OpenUserStorage("libsdl", "Storage Example", 0);
181
+ * if (user == NULL) {
182
+ * // Something bad happened!
183
+ * }
184
+ * while (!SDL_StorageReady(user)) {
185
+ * SDL_Delay(1);
186
+ * }
187
+ *
188
+ * extern void *saveData; // A bunch of stuff happened here...
189
+ * extern Uint64 saveLen;
190
+ * if (!SDL_WriteStorageFile(user, "save0.sav", saveData, saveLen)) {
191
+ * // Something bad happened!
192
+ * }
193
+ *
194
+ * SDL_CloseStorage(user);
195
+ * }
196
+ * ```
197
+ *
198
+ * Note the improvements that SDL_Storage makes:
199
+ *
200
+ * 1. **What to Access:** This code explicitly reads from a title or user
201
+ * storage device based on the context of the function.
202
+ *
203
+ * 2. **How to Access:** This code explicitly uses either a read or write
204
+ * function based on the context of the function.
205
+ *
206
+ * 3. **When to Access:** This code explicitly opens the device when it needs
207
+ * to, and closes it when it is finished working with the filesystem.
208
+ *
209
+ * The result is an application that is significantly more robust against the
210
+ * increasing demands of platforms and their filesystems!
211
+ *
212
+ * A publicly available example of an SDL_Storage backend is the
213
+ * [Steam Cloud](https://partner.steamgames.com/doc/features/cloud)
214
+ * backend - you can initialize Steamworks when starting the program, and then
215
+ * SDL will recognize that Steamworks is initialized and automatically use
216
+ * ISteamRemoteStorage when the application opens user storage. More
217
+ * importantly, when you _open_ storage it knows to begin a "batch" of
218
+ * filesystem operations, and when you _close_ storage it knows to end and
219
+ * flush the batch. This is used by Steam to support
220
+ * [Dynamic Cloud Sync](https://steamcommunity.com/groups/steamworks/announcements/detail/3142949576401813670)
221
+ * ; users can save data on one PC, put the device to sleep, and then continue
222
+ * playing on another PC (and vice versa) with the save data fully
223
+ * synchronized across all devices, allowing for a seamless experience without
224
+ * having to do full restarts of the program.
225
+ *
226
+ * ## Notes on valid paths
227
+ *
228
+ * All paths in the Storage API use Unix-style path separators ('/'). Using a
229
+ * different path separator will not work, even if the underlying platform
230
+ * would otherwise accept it. This is to keep code using the Storage API
231
+ * portable between platforms and Storage implementations and simplify app
232
+ * code.
233
+ *
234
+ * Paths with relative directories ("." and "..") are forbidden by the Storage
235
+ * API.
236
+ *
237
+ * All valid UTF-8 strings (discounting the NULL terminator character and the
238
+ * '/' path separator) are usable for filenames, however, an underlying
239
+ * Storage implementation may not support particularly strange sequences and
240
+ * refuse to create files with those names, etc.
241
+ */
242
+
243
+ #ifndef SDL_storage_h_
244
+ #define SDL_storage_h_
245
+
246
+ #include <SDL3/SDL_stdinc.h>
247
+ #include <SDL3/SDL_error.h>
248
+ #include <SDL3/SDL_filesystem.h>
249
+ #include <SDL3/SDL_properties.h>
250
+
251
+ #include <SDL3/SDL_begin_code.h>
252
+
253
+ /* Set up for C function definitions, even when using C++ */
254
+ #ifdef __cplusplus
255
+ extern "C" {
256
+ #endif
257
+
258
+ /**
259
+ * Function interface for SDL_Storage.
260
+ *
261
+ * Apps that want to supply a custom implementation of SDL_Storage will fill
262
+ * in all the functions in this struct, and then pass it to SDL_OpenStorage to
263
+ * create a custom SDL_Storage object.
264
+ *
265
+ * It is not usually necessary to do this; SDL provides standard
266
+ * implementations for many things you might expect to do with an SDL_Storage.
267
+ *
268
+ * This structure should be initialized using SDL_INIT_INTERFACE()
269
+ *
270
+ * \since This struct is available since SDL 3.2.0.
271
+ *
272
+ * \sa SDL_INIT_INTERFACE
273
+ */
274
+ typedef struct SDL_StorageInterface
275
+ {
276
+ /* The version of this interface */
277
+ Uint32 version;
278
+
279
+ /* Called when the storage is closed */
280
+ bool (SDLCALL *close)(void *userdata);
281
+
282
+ /* Optional, returns whether the storage is currently ready for access */
283
+ bool (SDLCALL *ready)(void *userdata);
284
+
285
+ /* Enumerate a directory, optional for write-only storage */
286
+ bool (SDLCALL *enumerate)(void *userdata, const char *path, SDL_EnumerateDirectoryCallback callback, void *callback_userdata);
287
+
288
+ /* Get path information, optional for write-only storage */
289
+ bool (SDLCALL *info)(void *userdata, const char *path, SDL_PathInfo *info);
290
+
291
+ /* Read a file from storage, optional for write-only storage */
292
+ bool (SDLCALL *read_file)(void *userdata, const char *path, void *destination, Uint64 length);
293
+
294
+ /* Write a file to storage, optional for read-only storage */
295
+ bool (SDLCALL *write_file)(void *userdata, const char *path, const void *source, Uint64 length);
296
+
297
+ /* Create a directory, optional for read-only storage */
298
+ bool (SDLCALL *mkdir)(void *userdata, const char *path);
299
+
300
+ /* Remove a file or empty directory, optional for read-only storage */
301
+ bool (SDLCALL *remove)(void *userdata, const char *path);
302
+
303
+ /* Rename a path, optional for read-only storage */
304
+ bool (SDLCALL *rename)(void *userdata, const char *oldpath, const char *newpath);
305
+
306
+ /* Copy a file, optional for read-only storage */
307
+ bool (SDLCALL *copy)(void *userdata, const char *oldpath, const char *newpath);
308
+
309
+ /* Get the space remaining, optional for read-only storage */
310
+ Uint64 (SDLCALL *space_remaining)(void *userdata);
311
+ } SDL_StorageInterface;
312
+
313
+ /* Check the size of SDL_StorageInterface
314
+ *
315
+ * If this assert fails, either the compiler is padding to an unexpected size,
316
+ * or the interface has been updated and this should be updated to match and
317
+ * the code using this interface should be updated to handle the old version.
318
+ */
319
+ SDL_COMPILE_TIME_ASSERT(SDL_StorageInterface_SIZE,
320
+ (sizeof(void *) == 4 && sizeof(SDL_StorageInterface) == 48) ||
321
+ (sizeof(void *) == 8 && sizeof(SDL_StorageInterface) == 96));
322
+
323
+ /**
324
+ * An abstract interface for filesystem access.
325
+ *
326
+ * This is an opaque datatype. One can create this object using standard SDL
327
+ * functions like SDL_OpenTitleStorage or SDL_OpenUserStorage, etc, or create
328
+ * an object with a custom implementation using SDL_OpenStorage.
329
+ *
330
+ * \since This struct is available since SDL 3.2.0.
331
+ */
332
+ typedef struct SDL_Storage SDL_Storage;
333
+
334
+ /**
335
+ * Opens up a read-only container for the application's filesystem.
336
+ *
337
+ * By default, SDL_OpenTitleStorage uses the generic storage implementation.
338
+ * When the path override is not provided, the generic implementation will use
339
+ * the output of SDL_GetBasePath as the base path.
340
+ *
341
+ * \param override a path to override the backend's default title root.
342
+ * \param props a property list that may contain backend-specific information.
343
+ * \returns a title storage container on success or NULL on failure; call
344
+ * SDL_GetError() for more information.
345
+ *
346
+ * \since This function is available since SDL 3.2.0.
347
+ *
348
+ * \sa SDL_CloseStorage
349
+ * \sa SDL_GetStorageFileSize
350
+ * \sa SDL_OpenUserStorage
351
+ * \sa SDL_ReadStorageFile
352
+ */
353
+ extern SDL_DECLSPEC SDL_Storage * SDLCALL SDL_OpenTitleStorage(const char *override, SDL_PropertiesID props);
354
+
355
+ /**
356
+ * Opens up a container for a user's unique read/write filesystem.
357
+ *
358
+ * While title storage can generally be kept open throughout runtime, user
359
+ * storage should only be opened when the client is ready to read/write files.
360
+ * This allows the backend to properly batch file operations and flush them
361
+ * when the container has been closed; ensuring safe and optimal save I/O.
362
+ *
363
+ * \param org the name of your organization.
364
+ * \param app the name of your application.
365
+ * \param props a property list that may contain backend-specific information.
366
+ * \returns a user storage container on success or NULL on failure; call
367
+ * SDL_GetError() for more information.
368
+ *
369
+ * \since This function is available since SDL 3.2.0.
370
+ *
371
+ * \sa SDL_CloseStorage
372
+ * \sa SDL_GetStorageFileSize
373
+ * \sa SDL_GetStorageSpaceRemaining
374
+ * \sa SDL_OpenTitleStorage
375
+ * \sa SDL_ReadStorageFile
376
+ * \sa SDL_StorageReady
377
+ * \sa SDL_WriteStorageFile
378
+ */
379
+ extern SDL_DECLSPEC SDL_Storage * SDLCALL SDL_OpenUserStorage(const char *org, const char *app, SDL_PropertiesID props);
380
+
381
+ /**
382
+ * Opens up a container for local filesystem storage.
383
+ *
384
+ * This is provided for development and tools. Portable applications should
385
+ * use SDL_OpenTitleStorage() for access to game data and
386
+ * SDL_OpenUserStorage() for access to user data.
387
+ *
388
+ * \param path the base path prepended to all storage paths, or NULL for no
389
+ * base path.
390
+ * \returns a filesystem storage container on success or NULL on failure; call
391
+ * SDL_GetError() for more information.
392
+ *
393
+ * \since This function is available since SDL 3.2.0.
394
+ *
395
+ * \sa SDL_CloseStorage
396
+ * \sa SDL_GetStorageFileSize
397
+ * \sa SDL_GetStorageSpaceRemaining
398
+ * \sa SDL_OpenTitleStorage
399
+ * \sa SDL_OpenUserStorage
400
+ * \sa SDL_ReadStorageFile
401
+ * \sa SDL_WriteStorageFile
402
+ */
403
+ extern SDL_DECLSPEC SDL_Storage * SDLCALL SDL_OpenFileStorage(const char *path);
404
+
405
+ /**
406
+ * Opens up a container using a client-provided storage interface.
407
+ *
408
+ * Applications do not need to use this function unless they are providing
409
+ * their own SDL_Storage implementation. If you just need an SDL_Storage, you
410
+ * should use the built-in implementations in SDL, like SDL_OpenTitleStorage()
411
+ * or SDL_OpenUserStorage().
412
+ *
413
+ * This function makes a copy of `iface` and the caller does not need to keep
414
+ * it around after this call.
415
+ *
416
+ * \param iface the interface that implements this storage, initialized using
417
+ * SDL_INIT_INTERFACE().
418
+ * \param userdata the pointer that will be passed to the interface functions.
419
+ * \returns a storage container on success or NULL on failure; call
420
+ * SDL_GetError() for more information.
421
+ *
422
+ * \since This function is available since SDL 3.2.0.
423
+ *
424
+ * \sa SDL_CloseStorage
425
+ * \sa SDL_GetStorageFileSize
426
+ * \sa SDL_GetStorageSpaceRemaining
427
+ * \sa SDL_INIT_INTERFACE
428
+ * \sa SDL_ReadStorageFile
429
+ * \sa SDL_StorageReady
430
+ * \sa SDL_WriteStorageFile
431
+ */
432
+ extern SDL_DECLSPEC SDL_Storage * SDLCALL SDL_OpenStorage(const SDL_StorageInterface *iface, void *userdata);
433
+
434
+ /**
435
+ * Closes and frees a storage container.
436
+ *
437
+ * \param storage a storage container to close.
438
+ * \returns true if the container was freed with no errors, false otherwise;
439
+ * call SDL_GetError() for more information. Even if the function
440
+ * returns an error, the container data will be freed; the error is
441
+ * only for informational purposes.
442
+ *
443
+ * \since This function is available since SDL 3.2.0.
444
+ *
445
+ * \sa SDL_OpenFileStorage
446
+ * \sa SDL_OpenStorage
447
+ * \sa SDL_OpenTitleStorage
448
+ * \sa SDL_OpenUserStorage
449
+ */
450
+ extern SDL_DECLSPEC bool SDLCALL SDL_CloseStorage(SDL_Storage *storage);
451
+
452
+ /**
453
+ * Checks if the storage container is ready to use.
454
+ *
455
+ * This function should be called in regular intervals until it returns true -
456
+ * however, it is not recommended to spinwait on this call, as the backend may
457
+ * depend on a synchronous message loop. You might instead poll this in your
458
+ * game's main loop while processing events and drawing a loading screen.
459
+ *
460
+ * \param storage a storage container to query.
461
+ * \returns true if the container is ready, false otherwise.
462
+ *
463
+ * \since This function is available since SDL 3.2.0.
464
+ */
465
+ extern SDL_DECLSPEC bool SDLCALL SDL_StorageReady(SDL_Storage *storage);
466
+
467
+ /**
468
+ * Query the size of a file within a storage container.
469
+ *
470
+ * \param storage a storage container to query.
471
+ * \param path the relative path of the file to query.
472
+ * \param length a pointer to be filled with the file's length.
473
+ * \returns true if the file could be queried or false on failure; call
474
+ * SDL_GetError() for more information.
475
+ *
476
+ * \since This function is available since SDL 3.2.0.
477
+ *
478
+ * \sa SDL_ReadStorageFile
479
+ * \sa SDL_StorageReady
480
+ */
481
+ extern SDL_DECLSPEC bool SDLCALL SDL_GetStorageFileSize(SDL_Storage *storage, const char *path, Uint64 *length);
482
+
483
+ /**
484
+ * Synchronously read a file from a storage container into a client-provided
485
+ * buffer.
486
+ *
487
+ * The value of `length` must match the length of the file exactly; call
488
+ * SDL_GetStorageFileSize() to get this value. This behavior may be relaxed in
489
+ * a future release.
490
+ *
491
+ * \param storage a storage container to read from.
492
+ * \param path the relative path of the file to read.
493
+ * \param destination a client-provided buffer to read the file into.
494
+ * \param length the length of the destination buffer.
495
+ * \returns true if the file was read or false on failure; call SDL_GetError()
496
+ * for more information.
497
+ *
498
+ * \since This function is available since SDL 3.2.0.
499
+ *
500
+ * \sa SDL_GetStorageFileSize
501
+ * \sa SDL_StorageReady
502
+ * \sa SDL_WriteStorageFile
503
+ */
504
+ extern SDL_DECLSPEC bool SDLCALL SDL_ReadStorageFile(SDL_Storage *storage, const char *path, void *destination, Uint64 length);
505
+
506
+ /**
507
+ * Synchronously write a file from client memory into a storage container.
508
+ *
509
+ * \param storage a storage container to write to.
510
+ * \param path the relative path of the file to write.
511
+ * \param source a client-provided buffer to write from.
512
+ * \param length the length of the source buffer.
513
+ * \returns true if the file was written or false on failure; call
514
+ * SDL_GetError() for more information.
515
+ *
516
+ * \since This function is available since SDL 3.2.0.
517
+ *
518
+ * \sa SDL_GetStorageSpaceRemaining
519
+ * \sa SDL_ReadStorageFile
520
+ * \sa SDL_StorageReady
521
+ */
522
+ extern SDL_DECLSPEC bool SDLCALL SDL_WriteStorageFile(SDL_Storage *storage, const char *path, const void *source, Uint64 length);
523
+
524
+ /**
525
+ * Create a directory in a writable storage container.
526
+ *
527
+ * \param storage a storage container.
528
+ * \param path the path of the directory to create.
529
+ * \returns true on success or false on failure; call SDL_GetError() for more
530
+ * information.
531
+ *
532
+ * \since This function is available since SDL 3.2.0.
533
+ *
534
+ * \sa SDL_StorageReady
535
+ */
536
+ extern SDL_DECLSPEC bool SDLCALL SDL_CreateStorageDirectory(SDL_Storage *storage, const char *path);
537
+
538
+ /**
539
+ * Enumerate a directory in a storage container through a callback function.
540
+ *
541
+ * This function provides every directory entry through an app-provided
542
+ * callback, called once for each directory entry, until all results have been
543
+ * provided or the callback returns either SDL_ENUM_SUCCESS or
544
+ * SDL_ENUM_FAILURE.
545
+ *
546
+ * This will return false if there was a system problem in general, or if a
547
+ * callback returns SDL_ENUM_FAILURE. A successful return means a callback
548
+ * returned SDL_ENUM_SUCCESS to halt enumeration, or all directory entries
549
+ * were enumerated.
550
+ *
551
+ * If `path` is NULL, this is treated as a request to enumerate the root of
552
+ * the storage container's tree. An empty string also works for this.
553
+ *
554
+ * \param storage a storage container.
555
+ * \param path the path of the directory to enumerate, or NULL for the root.
556
+ * \param callback a function that is called for each entry in the directory.
557
+ * \param userdata a pointer that is passed to `callback`.
558
+ * \returns true on success or false on failure; call SDL_GetError() for more
559
+ * information.
560
+ *
561
+ * \since This function is available since SDL 3.2.0.
562
+ *
563
+ * \sa SDL_StorageReady
564
+ */
565
+ extern SDL_DECLSPEC bool SDLCALL SDL_EnumerateStorageDirectory(SDL_Storage *storage, const char *path, SDL_EnumerateDirectoryCallback callback, void *userdata);
566
+
567
+ /**
568
+ * Remove a file or an empty directory in a writable storage container.
569
+ *
570
+ * \param storage a storage container.
571
+ * \param path the path to remove from the filesystem.
572
+ * \returns true on success or false on failure; call SDL_GetError() for more
573
+ * information.
574
+ *
575
+ * \since This function is available since SDL 3.2.0.
576
+ *
577
+ * \sa SDL_StorageReady
578
+ */
579
+ extern SDL_DECLSPEC bool SDLCALL SDL_RemoveStoragePath(SDL_Storage *storage, const char *path);
580
+
581
+ /**
582
+ * Rename a file or directory in a writable storage container.
583
+ *
584
+ * \param storage a storage container.
585
+ * \param oldpath the old path.
586
+ * \param newpath the new path.
587
+ * \returns true on success or false on failure; call SDL_GetError() for more
588
+ * information.
589
+ *
590
+ * \since This function is available since SDL 3.2.0.
591
+ *
592
+ * \sa SDL_StorageReady
593
+ */
594
+ extern SDL_DECLSPEC bool SDLCALL SDL_RenameStoragePath(SDL_Storage *storage, const char *oldpath, const char *newpath);
595
+
596
+ /**
597
+ * Copy a file in a writable storage container.
598
+ *
599
+ * \param storage a storage container.
600
+ * \param oldpath the old path.
601
+ * \param newpath the new path.
602
+ * \returns true on success or false on failure; call SDL_GetError() for more
603
+ * information.
604
+ *
605
+ * \since This function is available since SDL 3.2.0.
606
+ *
607
+ * \sa SDL_StorageReady
608
+ */
609
+ extern SDL_DECLSPEC bool SDLCALL SDL_CopyStorageFile(SDL_Storage *storage, const char *oldpath, const char *newpath);
610
+
611
+ /**
612
+ * Get information about a filesystem path in a storage container.
613
+ *
614
+ * \param storage a storage container.
615
+ * \param path the path to query.
616
+ * \param info a pointer filled in with information about the path, or NULL to
617
+ * check for the existence of a file.
618
+ * \returns true on success or false if the file doesn't exist, or another
619
+ * failure; call SDL_GetError() for more information.
620
+ *
621
+ * \since This function is available since SDL 3.2.0.
622
+ *
623
+ * \sa SDL_StorageReady
624
+ */
625
+ extern SDL_DECLSPEC bool SDLCALL SDL_GetStoragePathInfo(SDL_Storage *storage, const char *path, SDL_PathInfo *info);
626
+
627
+ /**
628
+ * Queries the remaining space in a storage container.
629
+ *
630
+ * \param storage a storage container to query.
631
+ * \returns the amount of remaining space, in bytes.
632
+ *
633
+ * \since This function is available since SDL 3.2.0.
634
+ *
635
+ * \sa SDL_StorageReady
636
+ * \sa SDL_WriteStorageFile
637
+ */
638
+ extern SDL_DECLSPEC Uint64 SDLCALL SDL_GetStorageSpaceRemaining(SDL_Storage *storage);
639
+
640
+ /**
641
+ * Enumerate a directory tree, filtered by pattern, and return a list.
642
+ *
643
+ * Files are filtered out if they don't match the string in `pattern`, which
644
+ * may contain wildcard characters `*` (match everything) and `?` (match one
645
+ * character). If pattern is NULL, no filtering is done and all results are
646
+ * returned. Subdirectories are permitted, and are specified with a path
647
+ * separator of '/'. Wildcard characters `*` and `?` never match a path
648
+ * separator.
649
+ *
650
+ * `flags` may be set to SDL_GLOB_CASEINSENSITIVE to make the pattern matching
651
+ * case-insensitive.
652
+ *
653
+ * The returned array is always NULL-terminated, for your iterating
654
+ * convenience, but if `count` is non-NULL, on return it will contain the
655
+ * number of items in the array, not counting the NULL terminator.
656
+ *
657
+ * If `path` is NULL, this is treated as a request to enumerate the root of
658
+ * the storage container's tree. An empty string also works for this.
659
+ *
660
+ * \param storage a storage container.
661
+ * \param path the path of the directory to enumerate, or NULL for the root.
662
+ * \param pattern the pattern that files in the directory must match. Can be
663
+ * NULL.
664
+ * \param flags `SDL_GLOB_*` bitflags that affect this search.
665
+ * \param count on return, will be set to the number of items in the returned
666
+ * array. Can be NULL.
667
+ * \returns an array of strings on success or NULL on failure; call
668
+ * SDL_GetError() for more information. The caller should pass the
669
+ * returned pointer to SDL_free when done with it. This is a single
670
+ * allocation that should be freed with SDL_free() when it is no
671
+ * longer needed.
672
+ *
673
+ * \threadsafety It is safe to call this function from any thread, assuming
674
+ * the `storage` object is thread-safe.
675
+ *
676
+ * \since This function is available since SDL 3.2.0.
677
+ */
678
+ extern SDL_DECLSPEC char ** SDLCALL SDL_GlobStorageDirectory(SDL_Storage *storage, const char *path, const char *pattern, SDL_GlobFlags flags, int *count);
679
+
680
+ /* Ends C function definitions when using C++ */
681
+ #ifdef __cplusplus
682
+ }
683
+ #endif
684
+ #include <SDL3/SDL_close_code.h>
685
+
686
+ #endif /* SDL_storage_h_ */