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,268 @@
1
+ # Ruby2D::JsonParser
2
+
3
+ module Ruby2D
4
+ # Internal recursive-descent JSON parser. Hand-rolled so Ruby 2D pulls in no
5
+ # stdlib `require 'json'` and stays mruby-compatible without an mrbgem
6
+ # dependency. Public API: `Ruby2D::JsonParser.parse(str)`.
7
+ module JsonParser
8
+ class ParseError < StandardError; end
9
+
10
+ def self.parse(str)
11
+ Parser.new(str).parse
12
+ end
13
+
14
+ class Parser
15
+ # Cap nesting depth so pathological input fails with a ParseError rather
16
+ # than overflowing the Ruby stack with a SystemStackError. Real texture
17
+ # atlases nest only a handful of levels deep.
18
+ MAX_DEPTH = 500
19
+
20
+ def initialize(str)
21
+ @s = str
22
+ @i = 0
23
+ @depth = 0
24
+ end
25
+
26
+ def parse
27
+ skip_ws
28
+ value = parse_value
29
+ skip_ws
30
+ raise ParseError, "unexpected trailing data at offset #{@i}" if @i < @s.length
31
+
32
+ value
33
+ end
34
+
35
+ private
36
+
37
+ def parse_value
38
+ @depth += 1
39
+ raise ParseError, "nesting too deep (over #{MAX_DEPTH} levels)" if @depth > MAX_DEPTH
40
+
41
+ skip_ws
42
+ c = @s[@i]
43
+ case c
44
+ when '{' then parse_object
45
+ when '[' then parse_array
46
+ when '"' then parse_string
47
+ when 't', 'f' then parse_bool
48
+ when 'n' then parse_null
49
+ when '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' then parse_number
50
+ else
51
+ raise ParseError, "unexpected character #{c.inspect} at offset #{@i}"
52
+ end
53
+ ensure
54
+ @depth -= 1
55
+ end
56
+
57
+ def parse_object
58
+ @i += 1
59
+ obj = {}
60
+ skip_ws
61
+ if @s[@i] == '}'
62
+ @i += 1
63
+ return obj
64
+ end
65
+ loop do
66
+ skip_ws
67
+ raise ParseError, "expected string key at offset #{@i}" unless @s[@i] == '"'
68
+
69
+ key = parse_string
70
+ skip_ws
71
+ raise ParseError, "expected ':' at offset #{@i}" unless @s[@i] == ':'
72
+
73
+ @i += 1
74
+ obj[key] = parse_value
75
+ skip_ws
76
+ case @s[@i]
77
+ when ','
78
+ @i += 1
79
+ when '}'
80
+ @i += 1
81
+ return obj
82
+ else
83
+ raise ParseError, "expected ',' or '}' at offset #{@i}"
84
+ end
85
+ end
86
+ end
87
+
88
+ def parse_array
89
+ @i += 1
90
+ arr = []
91
+ skip_ws
92
+ if @s[@i] == ']'
93
+ @i += 1
94
+ return arr
95
+ end
96
+ loop do
97
+ arr << parse_value
98
+ skip_ws
99
+ case @s[@i]
100
+ when ','
101
+ @i += 1
102
+ when ']'
103
+ @i += 1
104
+ return arr
105
+ else
106
+ raise ParseError, "expected ',' or ']' at offset #{@i}"
107
+ end
108
+ end
109
+ end
110
+
111
+ def parse_string
112
+ @i += 1
113
+ result = ''.dup
114
+ while (c = @s[@i])
115
+ case c
116
+ when '"'
117
+ @i += 1
118
+ return result
119
+ when '\\'
120
+ result << parse_escape
121
+ else
122
+ result << c
123
+ @i += 1
124
+ end
125
+ end
126
+ raise ParseError, 'unterminated string'
127
+ end
128
+
129
+ def parse_escape
130
+ @i += 1
131
+ esc = @s[@i]
132
+ @i += 1
133
+ case esc
134
+ when '"' then '"'
135
+ when '\\' then '\\'
136
+ when '/' then '/'
137
+ when 'b' then "\b"
138
+ when 'f' then "\f"
139
+ when 'n' then "\n"
140
+ when 'r' then "\r"
141
+ when 't' then "\t"
142
+ when 'u' then parse_unicode_escape
143
+ else
144
+ raise ParseError, "bad escape \\#{esc} at offset #{@i - 1}"
145
+ end
146
+ end
147
+
148
+ def parse_unicode_escape
149
+ code = read_hex4
150
+ # Handle a UTF-16 surrogate pair
151
+ if code >= 0xD800 && code <= 0xDBFF
152
+ raise ParseError, "expected low surrogate at offset #{@i}" unless @s[@i, 2] == '\\u'
153
+
154
+ @i += 2
155
+ lo = read_hex4
156
+ raise ParseError, "invalid low surrogate at offset #{@i}" unless lo >= 0xDC00 && lo <= 0xDFFF
157
+
158
+ code = 0x10000 + ((code - 0xD800) * 0x400) + (lo - 0xDC00)
159
+ elsif code >= 0xDC00 && code <= 0xDFFF
160
+ # A low surrogate with no preceding high surrogate is not a valid
161
+ # scalar value; without this guard it would escape as a RangeError.
162
+ raise ParseError, "unexpected low surrogate at offset #{@i}"
163
+ end
164
+ encode_codepoint(code)
165
+ end
166
+
167
+ def read_hex4
168
+ hex = @s[@i, 4]
169
+ unless hex && hex.length == 4 && hex_only?(hex)
170
+ raise ParseError, "bad unicode escape at offset #{@i}"
171
+ end
172
+
173
+ @i += 4
174
+ hex.to_i(16)
175
+ end
176
+
177
+ def hex_only?(s)
178
+ s.each_char.all? { |c| (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F') }
179
+ end
180
+
181
+ # On CRuby, `Integer#chr(Encoding::UTF_8)` produces a properly tagged
182
+ # UTF-8 string. mruby (without the encoding mrbgem) lacks `Encoding`, so
183
+ # we fall back to a hand-rolled UTF-8 byte sequence.
184
+ def encode_codepoint(code)
185
+ code.chr(Encoding::UTF_8)
186
+ rescue NameError, ArgumentError
187
+ encode_codepoint_bytes(code)
188
+ end
189
+
190
+ def encode_codepoint_bytes(code)
191
+ if code < 0x80
192
+ code.chr
193
+ elsif code < 0x800
194
+ (0xC0 | (code >> 6)).chr +
195
+ (0x80 | (code & 0x3F)).chr
196
+ elsif code < 0x10000
197
+ (0xE0 | (code >> 12)).chr +
198
+ (0x80 | ((code >> 6) & 0x3F)).chr +
199
+ (0x80 | (code & 0x3F)).chr
200
+ else
201
+ (0xF0 | (code >> 18)).chr +
202
+ (0x80 | ((code >> 12) & 0x3F)).chr +
203
+ (0x80 | ((code >> 6) & 0x3F)).chr +
204
+ (0x80 | (code & 0x3F)).chr
205
+ end
206
+ end
207
+
208
+ def parse_number
209
+ start = @i
210
+ @i += 1 if @s[@i] == '-'
211
+ if @s[@i] == '0'
212
+ @i += 1
213
+ elsif digit?(@s[@i])
214
+ @i += 1 while digit?(@s[@i])
215
+ else
216
+ raise ParseError, "bad number at offset #{start}"
217
+ end
218
+ is_float = false
219
+ if @s[@i] == '.'
220
+ is_float = true
221
+ @i += 1
222
+ frac_start = @i
223
+ @i += 1 while digit?(@s[@i])
224
+ raise ParseError, "expected digits after '.' at offset #{frac_start}" if @i == frac_start
225
+ end
226
+ if @s[@i] == 'e' || @s[@i] == 'E'
227
+ is_float = true
228
+ @i += 1
229
+ @i += 1 if @s[@i] == '+' || @s[@i] == '-'
230
+ exp_start = @i
231
+ @i += 1 while digit?(@s[@i])
232
+ raise ParseError, "expected digits after exponent at offset #{exp_start}" if @i == exp_start
233
+ end
234
+ token = @s[start...@i]
235
+ is_float ? token.to_f : token.to_i
236
+ end
237
+
238
+ def digit?(c)
239
+ c && c >= '0' && c <= '9'
240
+ end
241
+
242
+ def parse_bool
243
+ if @s[@i, 4] == 'true'
244
+ @i += 4
245
+ true
246
+ elsif @s[@i, 5] == 'false'
247
+ @i += 5
248
+ false
249
+ else
250
+ raise ParseError, "bad literal at offset #{@i}"
251
+ end
252
+ end
253
+
254
+ def parse_null
255
+ raise ParseError, "bad literal at offset #{@i}" unless @s[@i, 4] == 'null'
256
+
257
+ @i += 4
258
+ nil
259
+ end
260
+
261
+ def skip_ws
262
+ while (c = @s[@i]) && (c == ' ' || c == "\t" || c == "\n" || c == "\r")
263
+ @i += 1
264
+ end
265
+ end
266
+ end
267
+ end
268
+ end
data/lib/ruby2d/line.rb CHANGED
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  # Ruby2D::Line
4
2
 
5
3
  module Ruby2D
@@ -7,46 +5,52 @@ module Ruby2D
7
5
  class Line
8
6
  include Renderable
9
7
 
10
- attr_accessor :x1, :x2, :y1, :y2, :width
11
-
12
- # Create an Line
13
- # @param [Numeric] x1
14
- # @param [Numeric] y1
15
- # @param [Numeric] x2
16
- # @param [Numeric] y2
17
- # @param [Numeric] width The +width+ or thickness of the line
18
- # @param [Numeric] z
19
- # @param [String, Array] color A single colour or an array of exactly 4 colours
20
- # @param [Numeric] opacity Opacity of the image when rendering
21
- # @raise [ArgumentError] if an array of colours does not have 4 entries
22
- def initialize(x1: 0, y1: 0, x2: 100, y2: 100, z: 0,
23
- width: 2, color: nil, colour: nil, opacity: nil)
8
+ attr_accessor :x1, :x2, :y1, :y2, :stroke_width, :rotate, :dash, :gap
9
+
10
+ # Create a line. Pass `dash:` (and optionally `gap:`) to draw a dashed line.
11
+ # Specify endpoints via `points:` or via `x1:`/`y1:`/`x2:`/`y2:`. `points:`
12
+ # takes precedence if both are given.
13
+ def initialize(x1: 0, y1: 0, x2: 100, y2: 100,
14
+ points: nil,
15
+ z: 0,
16
+ stroke_width: 1, dash: 0, gap: 5,
17
+ rotate: 0, rx: nil, ry: nil,
18
+ color: nil, colour: nil, opacity: nil,
19
+ add: true, visible: true)
20
+ if points
21
+ Line.send(:validate_points, points)
22
+ x1, y1 = points[0]
23
+ x2, y2 = points[1]
24
+ end
24
25
  @x1 = x1
25
26
  @y1 = y1
26
27
  @x2 = x2
27
28
  @y2 = y2
28
29
  @z = z
29
- @width = width
30
+ @stroke_width = stroke_width
31
+ @dash = dash
32
+ @gap = gap
33
+ @rotate = rotate
34
+ @_user_rx = rx
35
+ @_user_ry = ry
30
36
  self.color = color || colour || 'white'
31
- self.color.opacity = opacity unless opacity.nil?
32
- add
37
+ self.opacity = opacity unless opacity.nil?
38
+ @visible = visible
39
+ self.add if add
33
40
  end
34
41
 
35
- # Change the colour of the line
36
- # @param [String, Array] color A single colour or an array of exactly 4 colours
37
- # @raise [ArgumentError] if an array of colours does not have 4 entries
42
+ # Set the color of the line. Accepts a single color or a `Color::Set` of 2
43
+ # (start, end) for a gradient along the length.
38
44
  def color=(color)
39
- # convert to Color or Color::Set
40
45
  color = Color.set(color)
41
46
 
42
- # require 4 colours if multiple colours provided
43
- if color.is_a?(Color::Set) && color.length != 4
47
+ if color.is_a?(Color::Set) && color.length != 2
44
48
  raise ArgumentError,
45
- "`#{self.class}` requires 4 colors, one for each vertex. #{color.length} were given."
49
+ "`#{self.class}` requires 2 colors (start, end) for a gradient. #{color.length} were given."
46
50
  end
47
51
 
48
- @color = color # converted above
49
- invalidate_color_components
52
+ @color = color
53
+ @_cc = nil
50
54
  end
51
55
 
52
56
  # Return the length of the line
@@ -54,75 +58,180 @@ module Ruby2D
54
58
  points_distance(@x1, @y1, @x2, @y2)
55
59
  end
56
60
 
57
- # Line contains a point if the point is closer than the length of line from
58
- # both ends and if the distance from point to line is smaller than half of
59
- # the width. For reference:
60
- # https://en.wikipedia.org/wiki/Distance_from_a_point_to_a_line
61
+ # Bounding-box width and height (extent between the two endpoints)
62
+ def width
63
+ (@x1 - @x2).abs
64
+ end
65
+
66
+ def height
67
+ (@y1 - @y2).abs
68
+ end
69
+
70
+ # Check if the line contains the given point — within half the stroke width
71
+ # of the drawn segment and between its endpoints, so the hit region matches
72
+ # the rendered (butt-capped) rectangle rather than overhanging its ends.
73
+ # Shares the segment test with `Polyline`.
61
74
  def contains?(x, y)
62
- line_len = length
63
- points_distance(@x1, @y1, x, y) <= line_len &&
64
- points_distance(@x2, @y2, x, y) <= line_len &&
65
- (((@y2 - @y1) * x - (@x2 - @x1) * y + @x2 * @y1 - @y2 * @x1).abs / line_len) <= 0.5 * @width
66
- end
67
-
68
- # Draw a line without creating a Line
69
- # @param [Numeric] x1
70
- # @param [Numeric] y1
71
- # @param [Numeric] x2
72
- # @param [Numeric] y2
73
- # @param [Numeric] width The +width+ or thickness of the line
74
- # @param [Array] colors An array or 4 arrays of colour components.
75
- def self.draw(x1:, y1:, x2:, y2:, width:, color:)
75
+ return false if @stroke_width.negative?
76
+ x, y = _unrotate(x, y) if @rotate != 0
77
+ half = @stroke_width / 2.0
78
+ _point_on_segment?(x, y, @x1, @y1, @x2, @y2, half * half)
79
+ end
80
+
81
+ # Get the rotation center x coordinate
82
+ def rx
83
+ @_user_rx.nil? ? (@x1 + @x2) / 2.0 : @_user_rx
84
+ end
85
+
86
+ # Get the rotation center y coordinate
87
+ def ry
88
+ @_user_ry.nil? ? (@y1 + @y2) / 2.0 : @_user_ry
89
+ end
90
+
91
+ # Set the rotation center x coordinate
92
+ def rx=(val)
93
+ @_user_rx = val
94
+ end
95
+
96
+ # Set the rotation center y coordinate
97
+ def ry=(val)
98
+ @_user_ry = val
99
+ end
100
+
101
+ # Render a line without creating an instance
102
+ def self.render(x1: 0, y1: 0, x2: 100, y2: 100,
103
+ points: nil,
104
+ stroke_width: 1, dash: 0, gap: 5,
105
+ rotate: 0, rx: nil, ry: nil,
106
+ color: nil, colour: nil, opacity: nil)
76
107
  Window.render_ready_check
108
+ if points
109
+ validate_points(points)
110
+ x1, y1 = points[0]
111
+ x2, y2 = points[1]
112
+ end
77
113
 
78
- ext_draw([
79
- x1, y1, x2, y2, width,
80
- # splat each colour's components
81
- *color[0], *color[1], *color[2], *color[3]
82
- ])
114
+ input = color || colour
115
+ c = Color.for_render(input.nil? ? 'white' : input)
116
+ if c.is_a?(Color::Set) && c.length != 2
117
+ raise ArgumentError,
118
+ "`#{self}` requires 2 colors (start, end) for a gradient. #{c.length} were given."
119
+ end
120
+
121
+ # Expand to 4 vertex colors: start -> both start corners, end -> both end corners
122
+ c0 = c.vertex(0)
123
+ c1 = c.vertex(1)
124
+ c0a = opacity || c0.a
125
+ c1a = opacity || c1.a
126
+
127
+ if rotate != 0
128
+ cx = rx || (x1 + x2) / 2.0
129
+ cy = ry || (y1 + y2) / 2.0
130
+ rad = rotate * Math::PI / 180.0
131
+ sa = Math.sin(rad); ca = Math.cos(rad)
132
+ dx = x1 - cx; dy = y1 - cy
133
+ x1 = dx * ca - dy * sa + cx; y1 = dx * sa + dy * ca + cy
134
+ dx = x2 - cx; dy = y2 - cy
135
+ x2 = dx * ca - dy * sa + cx; y2 = dx * sa + dy * ca + cy
136
+ end
137
+
138
+ if dash > 0
139
+ Ext.draw_dashed_line(
140
+ x1, y1, x2, y2, stroke_width, dash, gap,
141
+ c0.r, c0.g, c0.b, c0a,
142
+ c0.r, c0.g, c0.b, c0a,
143
+ c1.r, c1.g, c1.b, c1a,
144
+ c1.r, c1.g, c1.b, c1a
145
+ )
146
+ else
147
+ Ext.draw_line(
148
+ x1, y1, x2, y2, stroke_width,
149
+ c0.r, c0.g, c0.b, c0a,
150
+ c0.r, c0.g, c0.b, c0a,
151
+ c1.r, c1.g, c1.b, c1a,
152
+ c1.r, c1.g, c1.b, c1a
153
+ )
154
+ end
83
155
  end
84
156
 
85
157
  private
86
158
 
159
+ def self.validate_points(points)
160
+ raise ArgumentError, 'Line requires exactly 2 points' unless points.length == 2
161
+ raise ArgumentError, 'points must be an array of [x, y] pairs' \
162
+ unless points.all? { |p| p.is_a?(Array) && p.length == 2 }
163
+ end
164
+ private_class_method :validate_points
165
+
87
166
  def render
88
- self.class.ext_draw([
89
- @x1, @y1, @x2, @y2, @width,
90
- # splat the colour components from helper
91
- *color_components
92
- ])
167
+ ensure_cc
168
+
169
+ x1 = @x1; y1 = @y1; x2 = @x2; y2 = @y2
170
+
171
+ if @rotate != 0
172
+ cx = rx; cy = ry
173
+ rad = @rotate * Math::PI / 180.0
174
+ sa = Math.sin(rad); ca = Math.cos(rad)
175
+ dx = x1 - cx; dy = y1 - cy
176
+ x1 = dx * ca - dy * sa + cx; y1 = dx * sa + dy * ca + cy
177
+ dx = x2 - cx; dy = y2 - cy
178
+ x2 = dx * ca - dy * sa + cx; y2 = dx * sa + dy * ca + cy
179
+ end
180
+
181
+ cc = @_cc
182
+ if @dash && @dash > 0
183
+ Ext.draw_dashed_line(
184
+ x1, y1, x2, y2, @stroke_width, @dash, @gap,
185
+ cc[0], cc[1], cc[2], cc[3],
186
+ cc[4], cc[5], cc[6], cc[7],
187
+ cc[8], cc[9], cc[10], cc[11],
188
+ cc[12], cc[13], cc[14], cc[15]
189
+ )
190
+ else
191
+ Ext.draw_line(
192
+ x1, y1, x2, y2, @stroke_width,
193
+ cc[0], cc[1], cc[2], cc[3],
194
+ cc[4], cc[5], cc[6], cc[7],
195
+ cc[8], cc[9], cc[10], cc[11],
196
+ cc[12], cc[13], cc[14], cc[15]
197
+ )
198
+ end
93
199
  end
94
200
 
201
+ # Scene-graph draw hook (see Renderable#_render_scene). Line's `render` is
202
+ # already zero-arg, so the hook is the same method under the scene name.
203
+ alias_method :_render_scene, :render
204
+ public :_render_scene
205
+
95
206
  # Calculate the distance between two points
96
207
  def points_distance(x1, y1, x2, y2)
97
- Math.sqrt((x1 - x2).abs2 + (y1 - y2).abs2)
98
- end
99
-
100
- # Return colours as a memoized flattened array of 4 x colour components
101
- def color_components
102
- check_if_opacity_changed
103
- @color_components ||= if @color.is_a? Color::Set
104
- # Splat the colours from the set; see +def color=+ where colour set
105
- # size is enforced
106
- [
107
- *@color[0].to_a, *@color[1].to_a, *@color[2].to_a, *@color[3].to_a
108
- ]
109
- else
110
- # All vertex colours are the same
111
- c_a = @color.to_a
112
- [
113
- *c_a, *c_a, *c_a, *c_a
114
- ]
115
- end
116
- end
117
-
118
- # Invalidate memoized colour components if opacity has been changed via +color=+
119
- def check_if_opacity_changed
120
- @color_components = nil if @color_components && @color_components[3] != @color.opacity
121
- end
122
-
123
- # Invalidate the memoized colour components. Called when Line's colour is changed
124
- def invalidate_color_components
125
- @color_components = nil
208
+ dx = x1 - x2
209
+ dy = y1 - y2
210
+ Math.sqrt(dx * dx + dy * dy)
211
+ end
212
+
213
+ # Build/rebuild flat color cache for the native extension. Line is a quad
214
+ # internally, so the 2-color gradient (start, end) expands to 4 vertex
215
+ # entries: start→both start corners, end→both end corners.
216
+ def ensure_cc
217
+ if @_cc.nil? || !cc_matches?
218
+ c0 = @color.vertex(0)
219
+ c1 = @color.vertex(1)
220
+ @_cc = [c0.r, c0.g, c0.b, c0.a,
221
+ c0.r, c0.g, c0.b, c0.a,
222
+ c1.r, c1.g, c1.b, c1.a,
223
+ c1.r, c1.g, c1.b, c1.a]
224
+ end
225
+ end
226
+
227
+ # Line's 4-vertex expansion is deterministic, so checking the two source
228
+ # entries (start and end) detects any Color::Set mutation.
229
+ def cc_matches?
230
+ c0 = @color.vertex(0)
231
+ c1 = @color.vertex(1)
232
+ return false if @_cc[0] != c0.r || @_cc[1] != c0.g || @_cc[2] != c0.b || @_cc[3] != c0.a
233
+ return false if @_cc[8] != c1.r || @_cc[9] != c1.g || @_cc[10] != c1.b || @_cc[11] != c1.a
234
+ true
126
235
  end
127
236
  end
128
237
  end
@@ -0,0 +1,12 @@
1
+ # CRuby idioms mruby doesn't implement, shimmed as no-ops. Both are visibility
2
+ # hints with no runtime effect, so dropping them on mruby is free — but without
3
+ # these stubs every file that calls one raises `NoMethodError` in the native and
4
+ # web builds while the CRuby specs stay green. CRuby never takes this branch, so
5
+ # the file reads as unused — it isn't.
6
+
7
+ if RUBY_ENGINE == 'mruby'
8
+ class Module
9
+ def private_class_method(*) = self
10
+ def private_constant(*) = self
11
+ end
12
+ end