ruby2d 0.12.0 → 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 (619) 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 -428
  285. data/assets/app.icns +0 -0
  286. data/assets/include/GLES2/gl2.h +0 -656
  287. data/assets/include/GLES2/gl2ext.h +0 -3949
  288. data/assets/include/GLES2/gl2ext_angle.h +0 -701
  289. data/assets/include/GLES2/gl2platform.h +0 -27
  290. data/assets/include/GLES3/gl3.h +0 -1192
  291. data/assets/include/GLES3/gl31.h +0 -1507
  292. data/assets/include/GLES3/gl32.h +0 -1808
  293. data/assets/include/GLES3/gl3platform.h +0 -27
  294. data/assets/include/KHR/khrplatform.h +0 -290
  295. data/assets/include/SDL2/SDL.h +0 -233
  296. data/assets/include/SDL2/SDL_assert.h +0 -326
  297. data/assets/include/SDL2/SDL_atomic.h +0 -415
  298. data/assets/include/SDL2/SDL_audio.h +0 -1500
  299. data/assets/include/SDL2/SDL_clipboard.h +0 -141
  300. data/assets/include/SDL2/SDL_config.h +0 -61
  301. data/assets/include/SDL2/SDL_config_android.h +0 -194
  302. data/assets/include/SDL2/SDL_config_emscripten.h +0 -218
  303. data/assets/include/SDL2/SDL_config_iphoneos.h +0 -217
  304. data/assets/include/SDL2/SDL_config_macosx.h +0 -277
  305. data/assets/include/SDL2/SDL_config_minimal.h +0 -95
  306. data/assets/include/SDL2/SDL_config_ngage.h +0 -89
  307. data/assets/include/SDL2/SDL_config_os2.h +0 -207
  308. data/assets/include/SDL2/SDL_config_pandora.h +0 -141
  309. data/assets/include/SDL2/SDL_config_windows.h +0 -331
  310. data/assets/include/SDL2/SDL_config_wingdk.h +0 -253
  311. data/assets/include/SDL2/SDL_config_winrt.h +0 -220
  312. data/assets/include/SDL2/SDL_config_xbox.h +0 -235
  313. data/assets/include/SDL2/SDL_cpuinfo.h +0 -594
  314. data/assets/include/SDL2/SDL_endian.h +0 -348
  315. data/assets/include/SDL2/SDL_error.h +0 -163
  316. data/assets/include/SDL2/SDL_events.h +0 -1166
  317. data/assets/include/SDL2/SDL_filesystem.h +0 -149
  318. data/assets/include/SDL2/SDL_gamecontroller.h +0 -1074
  319. data/assets/include/SDL2/SDL_gesture.h +0 -117
  320. data/assets/include/SDL2/SDL_guid.h +0 -100
  321. data/assets/include/SDL2/SDL_haptic.h +0 -1341
  322. data/assets/include/SDL2/SDL_hidapi.h +0 -451
  323. data/assets/include/SDL2/SDL_hints.h +0 -2569
  324. data/assets/include/SDL2/SDL_image.h +0 -2173
  325. data/assets/include/SDL2/SDL_joystick.h +0 -1066
  326. data/assets/include/SDL2/SDL_keyboard.h +0 -353
  327. data/assets/include/SDL2/SDL_keycode.h +0 -358
  328. data/assets/include/SDL2/SDL_loadso.h +0 -115
  329. data/assets/include/SDL2/SDL_log.h +0 -404
  330. data/assets/include/SDL2/SDL_main.h +0 -275
  331. data/assets/include/SDL2/SDL_mixer.h +0 -2784
  332. data/assets/include/SDL2/SDL_mouse.h +0 -465
  333. data/assets/include/SDL2/SDL_mutex.h +0 -471
  334. data/assets/include/SDL2/SDL_name.h +0 -33
  335. data/assets/include/SDL2/SDL_pixels.h +0 -644
  336. data/assets/include/SDL2/SDL_platform.h +0 -261
  337. data/assets/include/SDL2/SDL_quit.h +0 -58
  338. data/assets/include/SDL2/SDL_rect.h +0 -376
  339. data/assets/include/SDL2/SDL_render.h +0 -1919
  340. data/assets/include/SDL2/SDL_revision.h +0 -6
  341. data/assets/include/SDL2/SDL_rwops.h +0 -841
  342. data/assets/include/SDL2/SDL_sensor.h +0 -322
  343. data/assets/include/SDL2/SDL_shape.h +0 -155
  344. data/assets/include/SDL2/SDL_stdinc.h +0 -830
  345. data/assets/include/SDL2/SDL_surface.h +0 -997
  346. data/assets/include/SDL2/SDL_system.h +0 -623
  347. data/assets/include/SDL2/SDL_syswm.h +0 -386
  348. data/assets/include/SDL2/SDL_test_images.h +0 -78
  349. data/assets/include/SDL2/SDL_test_random.h +0 -115
  350. data/assets/include/SDL2/SDL_thread.h +0 -464
  351. data/assets/include/SDL2/SDL_timer.h +0 -222
  352. data/assets/include/SDL2/SDL_touch.h +0 -150
  353. data/assets/include/SDL2/SDL_ttf.h +0 -2316
  354. data/assets/include/SDL2/SDL_types.h +0 -29
  355. data/assets/include/SDL2/SDL_version.h +0 -204
  356. data/assets/include/SDL2/SDL_video.h +0 -2150
  357. data/assets/include/SDL2/SDL_vulkan.h +0 -215
  358. data/assets/include/SDL2/begin_code.h +0 -187
  359. data/assets/include/mruby/boxing_no.h +0 -58
  360. data/assets/include/mruby/class.h +0 -108
  361. data/assets/include/mruby/error.h +0 -147
  362. data/assets/include/mruby/gc.h +0 -94
  363. data/assets/include/mruby/irep.h +0 -147
  364. data/assets/include/mruby/khash.h +0 -284
  365. data/assets/include/mruby/object.h +0 -43
  366. data/assets/include/mruby/presym/disable.h +0 -70
  367. data/assets/include/mruby/presym/enable.h +0 -37
  368. data/assets/include/mruby/presym.h +0 -40
  369. data/assets/include/mruby/proc.h +0 -211
  370. data/assets/include/mruby/throw.h +0 -66
  371. data/assets/macos/universal/bin/mrbc +0 -0
  372. data/assets/macos/universal/lib/libFLAC.a +0 -0
  373. data/assets/macos/universal/lib/libSDL2.a +0 -0
  374. data/assets/macos/universal/lib/libSDL2_image.a +0 -0
  375. data/assets/macos/universal/lib/libSDL2_mixer.a +0 -0
  376. data/assets/macos/universal/lib/libSDL2_ttf.a +0 -0
  377. data/assets/macos/universal/lib/libavif.a +0 -0
  378. data/assets/macos/universal/lib/libbrotlicommon-static.a +0 -0
  379. data/assets/macos/universal/lib/libbrotlidec-static.a +0 -0
  380. data/assets/macos/universal/lib/libfreetype.a +0 -0
  381. data/assets/macos/universal/lib/libgraphite2.a +0 -0
  382. data/assets/macos/universal/lib/libharfbuzz.a +0 -0
  383. data/assets/macos/universal/lib/libhwy.a +0 -0
  384. data/assets/macos/universal/lib/libjpeg.a +0 -0
  385. data/assets/macos/universal/lib/libjxl.a +0 -0
  386. data/assets/macos/universal/lib/libmodplug.a +0 -0
  387. data/assets/macos/universal/lib/libmpg123.a +0 -0
  388. data/assets/macos/universal/lib/libmruby.a +0 -0
  389. data/assets/macos/universal/lib/libogg.a +0 -0
  390. data/assets/macos/universal/lib/libpng.a +0 -0
  391. data/assets/macos/universal/lib/libtiff.a +0 -0
  392. data/assets/macos/universal/lib/libvorbis.a +0 -0
  393. data/assets/macos/universal/lib/libvorbisfile.a +0 -0
  394. data/assets/macos/universal/lib/libwebp.a +0 -0
  395. data/assets/macos/universal/lib/libzstd.a +0 -0
  396. data/assets/test_media/README.md +0 -3
  397. data/assets/test_media/bitstream_vera/COPYRIGHT.txt +0 -124
  398. data/assets/test_media/bitstream_vera/vera.ttf +0 -0
  399. data/assets/test_media/boom.png +0 -0
  400. data/assets/test_media/coin.png +0 -0
  401. data/assets/test_media/colors.png +0 -0
  402. data/assets/test_media/controller.png +0 -0
  403. data/assets/test_media/dial.wav +0 -0
  404. data/assets/test_media/hero.png +0 -0
  405. data/assets/test_media/image.bmp +0 -0
  406. data/assets/test_media/image.jpg +0 -0
  407. data/assets/test_media/image.png +0 -0
  408. data/assets/test_media/music.flac +0 -0
  409. data/assets/test_media/music.mp3 +0 -0
  410. data/assets/test_media/music.ogg +0 -0
  411. data/assets/test_media/music.wav +0 -0
  412. data/assets/test_media/originals/boom.pxm +0 -0
  413. data/assets/test_media/originals/coin.pxm +0 -0
  414. data/assets/test_media/originals/controller.sketch +0 -0
  415. data/assets/test_media/originals/hero.pxm +0 -0
  416. data/assets/test_media/originals/image.pxm +0 -0
  417. data/assets/test_media/originals/music.caf +0 -0
  418. data/assets/test_media/originals/texture_atlas.pxm +0 -0
  419. data/assets/test_media/rondo_alla_turka.ogg +0 -0
  420. data/assets/test_media/sound.flac +0 -0
  421. data/assets/test_media/sound.mp3 +0 -0
  422. data/assets/test_media/sound.ogg +0 -0
  423. data/assets/test_media/sound.wav +0 -0
  424. data/assets/test_media/sprite_sheet.png +0 -0
  425. data/assets/test_media/texture_atlas.png +0 -0
  426. data/assets/wasm/libmruby.a +0 -0
  427. data/assets/windows/mingw-w64-ucrt-x86_64/bin/mrbc.exe +0 -0
  428. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libFLAC.a +0 -0
  429. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libLerc.a +0 -0
  430. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libSDL2.a +0 -0
  431. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libSDL2_image.a +0 -0
  432. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libSDL2_mixer.a +0 -0
  433. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libSDL2_ttf.a +0 -0
  434. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libbrotlicommon.a +0 -0
  435. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libbrotlidec.a +0 -0
  436. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libbz2.a +0 -0
  437. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libdeflate.a +0 -0
  438. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libfreetype.a +0 -0
  439. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libglew32.a +0 -0
  440. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libgraphite2.a +0 -0
  441. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libharfbuzz.a +0 -0
  442. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libhwy.a +0 -0
  443. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libjbig.a +0 -0
  444. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libjpeg.a +0 -0
  445. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libjxl.a +0 -0
  446. data/assets/windows/mingw-w64-ucrt-x86_64/lib/liblzma.a +0 -0
  447. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libmodplug.a +0 -0
  448. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libmpg123.a +0 -0
  449. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libmruby.a +0 -0
  450. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libogg.a +0 -0
  451. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libopus.a +0 -0
  452. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libopusfile.a +0 -0
  453. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libpng.a +0 -0
  454. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libsndfile.a +0 -0
  455. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libssp.a +0 -1
  456. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libstdc++.a +0 -0
  457. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libtiff.a +0 -0
  458. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libvorbis.a +0 -0
  459. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libvorbisfile.a +0 -0
  460. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libwebp.a +0 -0
  461. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libz.a +0 -0
  462. data/assets/windows/mingw-w64-ucrt-x86_64/lib/libzstd.a +0 -0
  463. data/assets/windows/mingw-w64-x86_64/bin/mrbc.exe +0 -0
  464. data/assets/windows/mingw-w64-x86_64/lib/libFLAC.a +0 -0
  465. data/assets/windows/mingw-w64-x86_64/lib/libLerc.a +0 -0
  466. data/assets/windows/mingw-w64-x86_64/lib/libSDL2.a +0 -0
  467. data/assets/windows/mingw-w64-x86_64/lib/libSDL2_image.a +0 -0
  468. data/assets/windows/mingw-w64-x86_64/lib/libSDL2_mixer.a +0 -0
  469. data/assets/windows/mingw-w64-x86_64/lib/libSDL2_ttf.a +0 -0
  470. data/assets/windows/mingw-w64-x86_64/lib/libbrotlicommon.a +0 -0
  471. data/assets/windows/mingw-w64-x86_64/lib/libbrotlidec.a +0 -0
  472. data/assets/windows/mingw-w64-x86_64/lib/libbz2.a +0 -0
  473. data/assets/windows/mingw-w64-x86_64/lib/libdeflate.a +0 -0
  474. data/assets/windows/mingw-w64-x86_64/lib/libfreetype.a +0 -0
  475. data/assets/windows/mingw-w64-x86_64/lib/libglew32.a +0 -0
  476. data/assets/windows/mingw-w64-x86_64/lib/libgraphite2.a +0 -0
  477. data/assets/windows/mingw-w64-x86_64/lib/libharfbuzz.a +0 -0
  478. data/assets/windows/mingw-w64-x86_64/lib/libhwy.a +0 -0
  479. data/assets/windows/mingw-w64-x86_64/lib/libjbig.a +0 -0
  480. data/assets/windows/mingw-w64-x86_64/lib/libjpeg.a +0 -0
  481. data/assets/windows/mingw-w64-x86_64/lib/libjxl.a +0 -0
  482. data/assets/windows/mingw-w64-x86_64/lib/liblzma.a +0 -0
  483. data/assets/windows/mingw-w64-x86_64/lib/libmodplug.a +0 -0
  484. data/assets/windows/mingw-w64-x86_64/lib/libmpg123.a +0 -0
  485. data/assets/windows/mingw-w64-x86_64/lib/libmruby.a +0 -0
  486. data/assets/windows/mingw-w64-x86_64/lib/libogg.a +0 -0
  487. data/assets/windows/mingw-w64-x86_64/lib/libopus.a +0 -0
  488. data/assets/windows/mingw-w64-x86_64/lib/libopusfile.a +0 -0
  489. data/assets/windows/mingw-w64-x86_64/lib/libpng.a +0 -0
  490. data/assets/windows/mingw-w64-x86_64/lib/libsndfile.a +0 -0
  491. data/assets/windows/mingw-w64-x86_64/lib/libssp.a +0 -1
  492. data/assets/windows/mingw-w64-x86_64/lib/libstdc++.a +0 -0
  493. data/assets/windows/mingw-w64-x86_64/lib/libtiff.a +0 -0
  494. data/assets/windows/mingw-w64-x86_64/lib/libvorbis.a +0 -0
  495. data/assets/windows/mingw-w64-x86_64/lib/libvorbisfile.a +0 -0
  496. data/assets/windows/mingw-w64-x86_64/lib/libwebp.a +0 -0
  497. data/assets/windows/mingw-w64-x86_64/lib/libz.a +0 -0
  498. data/assets/windows/mingw-w64-x86_64/lib/libzstd.a +0 -0
  499. data/assets/xcode/ios/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -98
  500. data/assets/xcode/ios/Assets.xcassets/Contents.json +0 -6
  501. data/assets/xcode/ios/Base.lproj/LaunchScreen.storyboard +0 -27
  502. data/assets/xcode/ios/Info.plist +0 -43
  503. data/assets/xcode/ios/MRuby.framework/Headers/mrbconf.h +0 -143
  504. data/assets/xcode/ios/MRuby.framework/Headers/mruby/array.h +0 -280
  505. data/assets/xcode/ios/MRuby.framework/Headers/mruby/boxing_nan.h +0 -102
  506. data/assets/xcode/ios/MRuby.framework/Headers/mruby/boxing_no.h +0 -56
  507. data/assets/xcode/ios/MRuby.framework/Headers/mruby/boxing_word.h +0 -144
  508. data/assets/xcode/ios/MRuby.framework/Headers/mruby/class.h +0 -97
  509. data/assets/xcode/ios/MRuby.framework/Headers/mruby/common.h +0 -77
  510. data/assets/xcode/ios/MRuby.framework/Headers/mruby/compile.h +0 -195
  511. data/assets/xcode/ios/MRuby.framework/Headers/mruby/data.h +0 -75
  512. data/assets/xcode/ios/MRuby.framework/Headers/mruby/debug.h +0 -67
  513. data/assets/xcode/ios/MRuby.framework/Headers/mruby/dump.h +0 -196
  514. data/assets/xcode/ios/MRuby.framework/Headers/mruby/error.h +0 -75
  515. data/assets/xcode/ios/MRuby.framework/Headers/mruby/gc.h +0 -91
  516. data/assets/xcode/ios/MRuby.framework/Headers/mruby/hash.h +0 -215
  517. data/assets/xcode/ios/MRuby.framework/Headers/mruby/irep.h +0 -75
  518. data/assets/xcode/ios/MRuby.framework/Headers/mruby/istruct.h +0 -47
  519. data/assets/xcode/ios/MRuby.framework/Headers/mruby/khash.h +0 -274
  520. data/assets/xcode/ios/MRuby.framework/Headers/mruby/numeric.h +0 -161
  521. data/assets/xcode/ios/MRuby.framework/Headers/mruby/object.h +0 -44
  522. data/assets/xcode/ios/MRuby.framework/Headers/mruby/opcode.h +0 -69
  523. data/assets/xcode/ios/MRuby.framework/Headers/mruby/ops.h +0 -117
  524. data/assets/xcode/ios/MRuby.framework/Headers/mruby/proc.h +0 -131
  525. data/assets/xcode/ios/MRuby.framework/Headers/mruby/range.h +0 -49
  526. data/assets/xcode/ios/MRuby.framework/Headers/mruby/re.h +0 -16
  527. data/assets/xcode/ios/MRuby.framework/Headers/mruby/string.h +0 -444
  528. data/assets/xcode/ios/MRuby.framework/Headers/mruby/throw.h +0 -55
  529. data/assets/xcode/ios/MRuby.framework/Headers/mruby/value.h +0 -309
  530. data/assets/xcode/ios/MRuby.framework/Headers/mruby/variable.h +0 -136
  531. data/assets/xcode/ios/MRuby.framework/Headers/mruby/version.h +0 -110
  532. data/assets/xcode/ios/MRuby.framework/Headers/mruby.h +0 -1282
  533. data/assets/xcode/ios/MRuby.framework/Info.plist +0 -20
  534. data/assets/xcode/ios/MRuby.framework/MRuby +0 -0
  535. data/assets/xcode/ios/MyApp.xcodeproj/project.pbxproj +0 -368
  536. data/assets/xcode/ios/MyApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  537. data/assets/xcode/ios/MyApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  538. data/assets/xcode/ios/MyApp.xcodeproj/project.xcworkspace/xcshareddata/MyApp.xcscmblueprint +0 -30
  539. data/assets/xcode/ios/main.c +0 -1
  540. data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Content.imageset/Contents.json +0 -16
  541. data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Contents.json +0 -6
  542. data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Contents.json +0 -17
  543. data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Content.imageset/Contents.json +0 -16
  544. data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Contents.json +0 -6
  545. data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json +0 -16
  546. data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Contents.json +0 -6
  547. data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Content.imageset/Contents.json +0 -16
  548. data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Contents.json +0 -6
  549. data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Contents.json +0 -17
  550. data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Content.imageset/Contents.json +0 -16
  551. data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Contents.json +0 -6
  552. data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json +0 -16
  553. data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Contents.json +0 -6
  554. data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Contents.json +0 -32
  555. data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image Wide.imageset/Contents.json +0 -16
  556. data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/Contents.json +0 -16
  557. data/assets/xcode/tvos/Assets.xcassets/Contents.json +0 -6
  558. data/assets/xcode/tvos/Assets.xcassets/LaunchImage.launchimage/Contents.json +0 -22
  559. data/assets/xcode/tvos/Info.plist +0 -30
  560. data/assets/xcode/tvos/MRuby.framework/Headers/mrbconf.h +0 -143
  561. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/array.h +0 -280
  562. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/boxing_nan.h +0 -102
  563. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/boxing_no.h +0 -56
  564. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/boxing_word.h +0 -144
  565. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/class.h +0 -97
  566. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/common.h +0 -77
  567. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/compile.h +0 -195
  568. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/data.h +0 -75
  569. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/debug.h +0 -67
  570. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/dump.h +0 -196
  571. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/error.h +0 -75
  572. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/gc.h +0 -91
  573. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/hash.h +0 -215
  574. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/irep.h +0 -75
  575. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/istruct.h +0 -47
  576. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/khash.h +0 -274
  577. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/numeric.h +0 -161
  578. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/object.h +0 -44
  579. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/opcode.h +0 -69
  580. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/ops.h +0 -117
  581. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/proc.h +0 -131
  582. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/range.h +0 -49
  583. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/re.h +0 -16
  584. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/string.h +0 -444
  585. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/throw.h +0 -55
  586. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/value.h +0 -309
  587. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/variable.h +0 -136
  588. data/assets/xcode/tvos/MRuby.framework/Headers/mruby/version.h +0 -110
  589. data/assets/xcode/tvos/MRuby.framework/Headers/mruby.h +0 -1282
  590. data/assets/xcode/tvos/MRuby.framework/Info.plist +0 -20
  591. data/assets/xcode/tvos/MRuby.framework/MRuby +0 -0
  592. data/assets/xcode/tvos/MyApp.xcodeproj/project.pbxproj +0 -350
  593. data/assets/xcode/tvos/MyApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  594. data/assets/xcode/tvos/MyApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  595. data/assets/xcode/tvos/MyApp.xcodeproj/project.xcworkspace/xcshareddata/MyApp.xcscmblueprint +0 -30
  596. data/assets/xcode/tvos/main.c +0 -1
  597. data/ext/ruby2d/common.c +0 -185
  598. data/ext/ruby2d/controllers.c +0 -110
  599. data/ext/ruby2d/gl.c +0 -398
  600. data/ext/ruby2d/gl2.c +0 -86
  601. data/ext/ruby2d/gl3.c +0 -304
  602. data/ext/ruby2d/gles.c +0 -302
  603. data/ext/ruby2d/input.c +0 -48
  604. data/ext/ruby2d/music.c +0 -127
  605. data/ext/ruby2d/sound.c +0 -132
  606. data/lib/ruby2d/cli/console.rb +0 -65
  607. data/lib/ruby2d/cli/enable_console.rb +0 -7
  608. data/lib/ruby2d/cli/platform.rb +0 -17
  609. data/lib/ruby2d/music.rb +0 -77
  610. data/lib/ruby2d/pixel.rb +0 -18
  611. data/lib/ruby2d/pixmap.rb +0 -39
  612. data/lib/ruby2d/pixmap_atlas.rb +0 -56
  613. data/lib/ruby2d/sound.rb +0 -61
  614. data/lib/ruby2d/texture.rb +0 -38
  615. /data/assets/{include/SDL2 → platform/include/SDL3}/SDL_opengles2_gl2.h +0 -0
  616. /data/assets/{include/SDL2 → platform/include/SDL3}/SDL_opengles2_gl2ext.h +0 -0
  617. /data/assets/{include/SDL2 → platform/include/SDL3}/SDL_opengles2_gl2platform.h +0 -0
  618. /data/assets/{include/SDL2 → platform/include/SDL3}/SDL_opengles2_khrplatform.h +0 -0
  619. /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