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
@@ -1,91 +0,0 @@
1
- /*
2
- ** mruby/gc.h - garbage collector for mruby
3
- **
4
- ** See Copyright Notice in mruby.h
5
- */
6
-
7
- #ifndef MRUBY_GC_H
8
- #define MRUBY_GC_H
9
-
10
- #include "common.h"
11
-
12
- /**
13
- * Uncommon memory management stuffs.
14
- */
15
- MRB_BEGIN_DECL
16
-
17
-
18
- struct mrb_state;
19
-
20
- #define MRB_EACH_OBJ_OK 0
21
- #define MRB_EACH_OBJ_BREAK 1
22
- typedef int (mrb_each_object_callback)(struct mrb_state *mrb, struct RBasic *obj, void *data);
23
- void mrb_objspace_each_objects(struct mrb_state *mrb, mrb_each_object_callback *callback, void *data);
24
- MRB_API void mrb_free_context(struct mrb_state *mrb, struct mrb_context *c);
25
-
26
- #ifndef MRB_GC_ARENA_SIZE
27
- #define MRB_GC_ARENA_SIZE 100
28
- #endif
29
-
30
- typedef enum {
31
- MRB_GC_STATE_ROOT = 0,
32
- MRB_GC_STATE_MARK,
33
- MRB_GC_STATE_SWEEP
34
- } mrb_gc_state;
35
-
36
- /* Disable MSVC warning "C4200: nonstandard extension used: zero-sized array
37
- * in struct/union" when in C++ mode */
38
- #ifdef _MSC_VER
39
- #pragma warning(push)
40
- #pragma warning(disable : 4200)
41
- #endif
42
-
43
- typedef struct mrb_heap_page {
44
- struct RBasic *freelist;
45
- struct mrb_heap_page *prev;
46
- struct mrb_heap_page *next;
47
- struct mrb_heap_page *free_next;
48
- struct mrb_heap_page *free_prev;
49
- mrb_bool old:1;
50
- void *objects[];
51
- } mrb_heap_page;
52
-
53
- #ifdef _MSC_VER
54
- #pragma warning(pop)
55
- #endif
56
-
57
- typedef struct mrb_gc {
58
- mrb_heap_page *heaps; /* heaps for GC */
59
- mrb_heap_page *sweeps;
60
- mrb_heap_page *free_heaps;
61
- size_t live; /* count of live objects */
62
- #ifdef MRB_GC_FIXED_ARENA
63
- struct RBasic *arena[MRB_GC_ARENA_SIZE]; /* GC protection array */
64
- #else
65
- struct RBasic **arena; /* GC protection array */
66
- int arena_capa;
67
- #endif
68
- int arena_idx;
69
-
70
- mrb_gc_state state; /* state of gc */
71
- int current_white_part; /* make white object by white_part */
72
- struct RBasic *gray_list; /* list of gray objects to be traversed incrementally */
73
- struct RBasic *atomic_gray_list; /* list of objects to be traversed atomically */
74
- size_t live_after_mark;
75
- size_t threshold;
76
- int interval_ratio;
77
- int step_ratio;
78
- mrb_bool iterating :1;
79
- mrb_bool disabled :1;
80
- mrb_bool full :1;
81
- mrb_bool generational :1;
82
- mrb_bool out_of_memory :1;
83
- size_t majorgc_old_threshold;
84
- } mrb_gc;
85
-
86
- MRB_API mrb_bool
87
- mrb_object_dead_p(struct mrb_state *mrb, struct RBasic *object);
88
-
89
- MRB_END_DECL
90
-
91
- #endif /* MRUBY_GC_H */
@@ -1,215 +0,0 @@
1
- /*
2
- ** mruby/hash.h - Hash class
3
- **
4
- ** See Copyright Notice in mruby.h
5
- */
6
-
7
- #ifndef MRUBY_HASH_H
8
- #define MRUBY_HASH_H
9
-
10
- #include "common.h"
11
- #include <mruby/khash.h>
12
-
13
- /**
14
- * Hash class
15
- */
16
- MRB_BEGIN_DECL
17
-
18
- struct RHash {
19
- MRB_OBJECT_HEADER;
20
- struct iv_tbl *iv;
21
- struct htable *ht;
22
- };
23
-
24
- #define mrb_hash_ptr(v) ((struct RHash*)(mrb_ptr(v)))
25
- #define mrb_hash_value(p) mrb_obj_value((void*)(p))
26
-
27
- MRB_API mrb_value mrb_hash_new_capa(mrb_state*, mrb_int);
28
- MRB_API mrb_value mrb_ensure_hash_type(mrb_state *mrb, mrb_value hash);
29
- MRB_API mrb_value mrb_check_hash_type(mrb_state *mrb, mrb_value hash);
30
-
31
- /*
32
- * Initializes a new hash.
33
- *
34
- * Equivalent to:
35
- *
36
- * Hash.new
37
- *
38
- * @param mrb The mruby state reference.
39
- * @return The initialized hash.
40
- */
41
- MRB_API mrb_value mrb_hash_new(mrb_state *mrb);
42
-
43
- /*
44
- * Sets a keys and values to hashes.
45
- *
46
- * Equivalent to:
47
- *
48
- * hash[key] = val
49
- *
50
- * @param mrb The mruby state reference.
51
- * @param hash The target hash.
52
- * @param key The key to set.
53
- * @param val The value to set.
54
- * @return The value.
55
- */
56
- MRB_API void mrb_hash_set(mrb_state *mrb, mrb_value hash, mrb_value key, mrb_value val);
57
-
58
- /*
59
- * Gets a value from a key. If the key is not found, the default of the
60
- * hash is used.
61
- *
62
- * Equivalent to:
63
- *
64
- * hash[key]
65
- *
66
- * @param mrb The mruby state reference.
67
- * @param hash The target hash.
68
- * @param key The key to get.
69
- * @return The found value.
70
- */
71
- MRB_API mrb_value mrb_hash_get(mrb_state *mrb, mrb_value hash, mrb_value key);
72
-
73
- /*
74
- * Gets a value from a key. If the key is not found, the default parameter is
75
- * used.
76
- *
77
- * Equivalent to:
78
- *
79
- * hash.key?(key) ? hash[key] : def
80
- *
81
- * @param mrb The mruby state reference.
82
- * @param hash The target hash.
83
- * @param key The key to get.
84
- * @param def The default value.
85
- * @return The found value.
86
- */
87
- MRB_API mrb_value mrb_hash_fetch(mrb_state *mrb, mrb_value hash, mrb_value key, mrb_value def);
88
-
89
- /*
90
- * Deletes hash key and value pair.
91
- *
92
- * Equivalent to:
93
- *
94
- * hash.delete(key)
95
- *
96
- * @param mrb The mruby state reference.
97
- * @param hash The target hash.
98
- * @param key The key to delete.
99
- * @return The deleted value.
100
- */
101
- MRB_API mrb_value mrb_hash_delete_key(mrb_state *mrb, mrb_value hash, mrb_value key);
102
-
103
- /*
104
- * Gets an array of keys.
105
- *
106
- * Equivalent to:
107
- *
108
- * hash.keys
109
- *
110
- * @param mrb The mruby state reference.
111
- * @param hash The target hash.
112
- * @return An array with the keys of the hash.
113
- */
114
- MRB_API mrb_value mrb_hash_keys(mrb_state *mrb, mrb_value hash);
115
- /*
116
- * Check if the hash has the key.
117
- *
118
- * Equivalent to:
119
- *
120
- * hash.key?(key)
121
- *
122
- * @param mrb The mruby state reference.
123
- * @param hash The target hash.
124
- * @param key The key to check existence.
125
- * @return True if the hash has the key
126
- */
127
- MRB_API mrb_bool mrb_hash_key_p(mrb_state *mrb, mrb_value hash, mrb_value key);
128
-
129
- /*
130
- * Check if the hash is empty
131
- *
132
- * Equivalent to:
133
- *
134
- * hash.empty?
135
- *
136
- * @param mrb The mruby state reference.
137
- * @param self The target hash.
138
- * @return True if the hash is empty, false otherwise.
139
- */
140
- MRB_API mrb_bool mrb_hash_empty_p(mrb_state *mrb, mrb_value self);
141
-
142
- /*
143
- * Gets an array of values.
144
- *
145
- * Equivalent to:
146
- *
147
- * hash.values
148
- *
149
- * @param mrb The mruby state reference.
150
- * @param hash The target hash.
151
- * @return An array with the values of the hash.
152
- */
153
- MRB_API mrb_value mrb_hash_values(mrb_state *mrb, mrb_value hash);
154
-
155
- /*
156
- * Clears the hash.
157
- *
158
- * Equivalent to:
159
- *
160
- * hash.clear
161
- *
162
- * @param mrb The mruby state reference.
163
- * @param hash The target hash.
164
- * @return The hash
165
- */
166
- MRB_API mrb_value mrb_hash_clear(mrb_state *mrb, mrb_value hash);
167
-
168
- /*
169
- * Copies the hash.
170
- *
171
- *
172
- * @param mrb The mruby state reference.
173
- * @param hash The target hash.
174
- * @return The copy of the hash
175
- */
176
- MRB_API mrb_value mrb_hash_dup(mrb_state *mrb, mrb_value hash);
177
-
178
- /*
179
- * Merges two hashes. The first hash will be modified by the
180
- * second hash.
181
- *
182
- * @param mrb The mruby state reference.
183
- * @param hash1 The target hash.
184
- * @param hash2 Updating hash
185
- */
186
- MRB_API void mrb_hash_merge(mrb_state *mrb, mrb_value hash1, mrb_value hash2);
187
-
188
- /* declaration of struct kh_ht */
189
- /* be careful when you touch the internal */
190
- typedef struct {
191
- mrb_value v;
192
- mrb_int n;
193
- } mrb_hash_value;
194
-
195
- KHASH_DECLARE(ht, mrb_value, mrb_hash_value, TRUE)
196
-
197
- /* RHASH_TBL allocates st_table if not available. */
198
- #define RHASH(obj) ((struct RHash*)(mrb_ptr(obj)))
199
- #define RHASH_TBL(h) (RHASH(h)->ht)
200
- #define RHASH_IFNONE(h) mrb_iv_get(mrb, (h), mrb_intern_lit(mrb, "ifnone"))
201
- #define RHASH_PROCDEFAULT(h) RHASH_IFNONE(h)
202
-
203
- #define MRB_HASH_DEFAULT 1
204
- #define MRB_HASH_PROC_DEFAULT 2
205
- #define MRB_RHASH_DEFAULT_P(h) (RHASH(h)->flags & MRB_HASH_DEFAULT)
206
- #define MRB_RHASH_PROCDEFAULT_P(h) (RHASH(h)->flags & MRB_HASH_PROC_DEFAULT)
207
-
208
- /* GC functions */
209
- void mrb_gc_mark_hash(mrb_state*, struct RHash*);
210
- size_t mrb_gc_mark_hash_size(mrb_state*, struct RHash*);
211
- void mrb_gc_free_hash(mrb_state*, struct RHash*);
212
-
213
- MRB_END_DECL
214
-
215
- #endif /* MRUBY_HASH_H */
@@ -1,75 +0,0 @@
1
- /*
2
- ** mruby/irep.h - mrb_irep structure
3
- **
4
- ** See Copyright Notice in mruby.h
5
- */
6
-
7
- #ifndef MRUBY_IREP_H
8
- #define MRUBY_IREP_H
9
-
10
- #include "common.h"
11
- #include <mruby/compile.h>
12
-
13
- /**
14
- * Compiled mruby scripts.
15
- */
16
- MRB_BEGIN_DECL
17
-
18
- enum irep_pool_type {
19
- IREP_TT_STRING,
20
- IREP_TT_FIXNUM,
21
- IREP_TT_FLOAT,
22
- };
23
-
24
- struct mrb_locals {
25
- mrb_sym name;
26
- uint16_t r;
27
- };
28
-
29
- /* Program data array struct */
30
- typedef struct mrb_irep {
31
- uint16_t nlocals; /* Number of local variables */
32
- uint16_t nregs; /* Number of register variables */
33
- uint8_t flags;
34
-
35
- mrb_code *iseq;
36
- mrb_value *pool;
37
- mrb_sym *syms;
38
- struct mrb_irep **reps;
39
-
40
- struct mrb_locals *lv;
41
- /* debug info */
42
- struct mrb_irep_debug_info* debug_info;
43
-
44
- uint16_t ilen, plen, slen, rlen;
45
- uint32_t refcnt;
46
- } mrb_irep;
47
-
48
- #define MRB_ISEQ_NO_FREE 1
49
-
50
- MRB_API mrb_irep *mrb_add_irep(mrb_state *mrb);
51
-
52
- /* @param [const uint8_t*] irep code, expected as a literal */
53
- MRB_API mrb_value mrb_load_irep(mrb_state*, const uint8_t*);
54
-
55
- /* @param [const uint8_t*] irep code, expected as a literal */
56
- MRB_API mrb_value mrb_load_irep_cxt(mrb_state*, const uint8_t*, mrbc_context*);
57
-
58
- void mrb_irep_free(mrb_state*, struct mrb_irep*);
59
- void mrb_irep_incref(mrb_state*, struct mrb_irep*);
60
- void mrb_irep_decref(mrb_state*, struct mrb_irep*);
61
- void mrb_irep_cutref(mrb_state*, struct mrb_irep*);
62
- void mrb_irep_remove_lv(mrb_state *mrb, mrb_irep *irep);
63
-
64
- struct mrb_insn_data {
65
- uint8_t insn;
66
- uint16_t a;
67
- uint16_t b;
68
- uint8_t c;
69
- };
70
-
71
- struct mrb_insn_data mrb_decode_insn(mrb_code *pc);
72
-
73
- MRB_END_DECL
74
-
75
- #endif /* MRUBY_IREP_H */
@@ -1,47 +0,0 @@
1
- /*
2
- ** mruby/istruct.h - Inline structures
3
- **
4
- ** See Copyright Notice in mruby.h
5
- */
6
-
7
- #ifndef MRUBY_ISTRUCT_H
8
- #define MRUBY_ISTRUCT_H
9
-
10
- #include "common.h"
11
- #include <string.h>
12
-
13
- /**
14
- * Inline structures that fit in RVALUE
15
- *
16
- * They cannot have finalizer, and cannot have instance variables.
17
- */
18
- MRB_BEGIN_DECL
19
-
20
- #define ISTRUCT_DATA_SIZE (sizeof(void*) * 3)
21
-
22
- struct RIstruct {
23
- MRB_OBJECT_HEADER;
24
- char inline_data[ISTRUCT_DATA_SIZE];
25
- };
26
-
27
- #define RISTRUCT(obj) ((struct RIstruct*)(mrb_ptr(obj)))
28
- #define ISTRUCT_PTR(obj) (RISTRUCT(obj)->inline_data)
29
-
30
- MRB_INLINE mrb_int mrb_istruct_size()
31
- {
32
- return ISTRUCT_DATA_SIZE;
33
- }
34
-
35
- MRB_INLINE void* mrb_istruct_ptr(mrb_value object)
36
- {
37
- return ISTRUCT_PTR(object);
38
- }
39
-
40
- MRB_INLINE void mrb_istruct_copy(mrb_value dest, mrb_value src)
41
- {
42
- memcpy(ISTRUCT_PTR(dest), ISTRUCT_PTR(src), ISTRUCT_DATA_SIZE);
43
- }
44
-
45
- MRB_END_DECL
46
-
47
- #endif /* MRUBY_ISTRUCT_H */
@@ -1,274 +0,0 @@
1
- /*
2
- ** mruby/khash.c - Hash for mruby
3
- **
4
- ** See Copyright Notice in mruby.h
5
- */
6
-
7
- #ifndef MRUBY_KHASH_H
8
- #define MRUBY_KHASH_H
9
-
10
- #include <string.h>
11
-
12
- #include <mruby.h>
13
- #include "common.h"
14
-
15
- /**
16
- * khash definitions used in mruby's hash table.
17
- */
18
- MRB_BEGIN_DECL
19
-
20
- typedef uint32_t khint_t;
21
- typedef khint_t khiter_t;
22
-
23
- #ifndef KHASH_DEFAULT_SIZE
24
- # define KHASH_DEFAULT_SIZE 32
25
- #endif
26
- #define KHASH_MIN_SIZE 8
27
-
28
- #define UPPER_BOUND(x) ((x)>>2|(x)>>1)
29
-
30
- /* extern uint8_t __m[]; */
31
-
32
- /* mask for flags */
33
- static const uint8_t __m_empty[] = {0x02, 0x08, 0x20, 0x80};
34
- static const uint8_t __m_del[] = {0x01, 0x04, 0x10, 0x40};
35
- static const uint8_t __m_either[] = {0x03, 0x0c, 0x30, 0xc0};
36
-
37
-
38
- #define __ac_isempty(ed_flag, i) (ed_flag[(i)/4]&__m_empty[(i)%4])
39
- #define __ac_isdel(ed_flag, i) (ed_flag[(i)/4]&__m_del[(i)%4])
40
- #define __ac_iseither(ed_flag, i) (ed_flag[(i)/4]&__m_either[(i)%4])
41
- #define khash_power2(v) do { \
42
- v--;\
43
- v |= v >> 1;\
44
- v |= v >> 2;\
45
- v |= v >> 4;\
46
- v |= v >> 8;\
47
- v |= v >> 16;\
48
- v++;\
49
- } while (0)
50
- #define khash_mask(h) ((h)->n_buckets-1)
51
- #define khash_upper_bound(h) (UPPER_BOUND((h)->n_buckets))
52
-
53
- /* declare struct kh_xxx and kh_xxx_funcs
54
-
55
- name: hash name
56
- khkey_t: key data type
57
- khval_t: value data type
58
- kh_is_map: (0: hash set / 1: hash map)
59
- */
60
- #define KHASH_DECLARE(name, khkey_t, khval_t, kh_is_map) \
61
- typedef struct kh_##name { \
62
- khint_t n_buckets; \
63
- khint_t size; \
64
- khint_t n_occupied; \
65
- uint8_t *ed_flags; \
66
- khkey_t *keys; \
67
- khval_t *vals; \
68
- } kh_##name##_t; \
69
- void kh_alloc_##name(mrb_state *mrb, kh_##name##_t *h); \
70
- kh_##name##_t *kh_init_##name##_size(mrb_state *mrb, khint_t size); \
71
- kh_##name##_t *kh_init_##name(mrb_state *mrb); \
72
- void kh_destroy_##name(mrb_state *mrb, kh_##name##_t *h); \
73
- void kh_clear_##name(mrb_state *mrb, kh_##name##_t *h); \
74
- khint_t kh_get_##name(mrb_state *mrb, kh_##name##_t *h, khkey_t key); \
75
- khint_t kh_put_##name(mrb_state *mrb, kh_##name##_t *h, khkey_t key, int *ret); \
76
- void kh_resize_##name(mrb_state *mrb, kh_##name##_t *h, khint_t new_n_buckets); \
77
- void kh_del_##name(mrb_state *mrb, kh_##name##_t *h, khint_t x); \
78
- kh_##name##_t *kh_copy_##name(mrb_state *mrb, kh_##name##_t *h);
79
-
80
- static inline void
81
- kh_fill_flags(uint8_t *p, uint8_t c, size_t len)
82
- {
83
- while (len-- > 0) {
84
- *p++ = c;
85
- }
86
- }
87
-
88
- /* define kh_xxx_funcs
89
-
90
- name: hash name
91
- khkey_t: key data type
92
- khval_t: value data type
93
- kh_is_map: (0: hash set / 1: hash map)
94
- __hash_func: hash function
95
- __hash_equal: hash comparation function
96
- */
97
- #define KHASH_DEFINE(name, khkey_t, khval_t, kh_is_map, __hash_func, __hash_equal) \
98
- void kh_alloc_##name(mrb_state *mrb, kh_##name##_t *h) \
99
- { \
100
- khint_t sz = h->n_buckets; \
101
- size_t len = sizeof(khkey_t) + (kh_is_map ? sizeof(khval_t) : 0); \
102
- uint8_t *p = (uint8_t*)mrb_malloc(mrb, sizeof(uint8_t)*sz/4+len*sz); \
103
- h->size = h->n_occupied = 0; \
104
- h->keys = (khkey_t *)p; \
105
- h->vals = kh_is_map ? (khval_t *)(p+sizeof(khkey_t)*sz) : NULL; \
106
- h->ed_flags = p+len*sz; \
107
- kh_fill_flags(h->ed_flags, 0xaa, sz/4); \
108
- } \
109
- kh_##name##_t *kh_init_##name##_size(mrb_state *mrb, khint_t size) { \
110
- kh_##name##_t *h = (kh_##name##_t*)mrb_calloc(mrb, 1, sizeof(kh_##name##_t)); \
111
- if (size < KHASH_MIN_SIZE) \
112
- size = KHASH_MIN_SIZE; \
113
- khash_power2(size); \
114
- h->n_buckets = size; \
115
- kh_alloc_##name(mrb, h); \
116
- return h; \
117
- } \
118
- kh_##name##_t *kh_init_##name(mrb_state *mrb) { \
119
- return kh_init_##name##_size(mrb, KHASH_DEFAULT_SIZE); \
120
- } \
121
- void kh_destroy_##name(mrb_state *mrb, kh_##name##_t *h) \
122
- { \
123
- if (h) { \
124
- mrb_free(mrb, h->keys); \
125
- mrb_free(mrb, h); \
126
- } \
127
- } \
128
- void kh_clear_##name(mrb_state *mrb, kh_##name##_t *h) \
129
- { \
130
- (void)mrb; \
131
- if (h && h->ed_flags) { \
132
- kh_fill_flags(h->ed_flags, 0xaa, h->n_buckets/4); \
133
- h->size = h->n_occupied = 0; \
134
- } \
135
- } \
136
- khint_t kh_get_##name(mrb_state *mrb, kh_##name##_t *h, khkey_t key) \
137
- { \
138
- khint_t k = __hash_func(mrb,key) & khash_mask(h), step = 0; \
139
- (void)mrb; \
140
- while (!__ac_isempty(h->ed_flags, k)) { \
141
- if (!__ac_isdel(h->ed_flags, k)) { \
142
- if (__hash_equal(mrb,h->keys[k], key)) return k; \
143
- } \
144
- k = (k+(++step)) & khash_mask(h); \
145
- } \
146
- return kh_end(h); \
147
- } \
148
- void kh_resize_##name(mrb_state *mrb, kh_##name##_t *h, khint_t new_n_buckets) \
149
- { \
150
- if (new_n_buckets < KHASH_MIN_SIZE) \
151
- new_n_buckets = KHASH_MIN_SIZE; \
152
- khash_power2(new_n_buckets); \
153
- { \
154
- kh_##name##_t hh; \
155
- uint8_t *old_ed_flags = h->ed_flags; \
156
- khkey_t *old_keys = h->keys; \
157
- khval_t *old_vals = h->vals; \
158
- khint_t old_n_buckets = h->n_buckets; \
159
- khint_t i; \
160
- hh.n_buckets = new_n_buckets; \
161
- kh_alloc_##name(mrb, &hh); \
162
- /* relocate */ \
163
- for (i=0 ; i<old_n_buckets ; i++) { \
164
- if (!__ac_iseither(old_ed_flags, i)) { \
165
- khint_t k = kh_put_##name(mrb, &hh, old_keys[i], NULL); \
166
- if (kh_is_map) kh_value(&hh,k) = old_vals[i]; \
167
- } \
168
- } \
169
- /* copy hh to h */ \
170
- *h = hh; \
171
- mrb_free(mrb, old_keys); \
172
- } \
173
- } \
174
- khint_t kh_put_##name(mrb_state *mrb, kh_##name##_t *h, khkey_t key, int *ret) \
175
- { \
176
- khint_t k, del_k, step = 0; \
177
- if (h->n_occupied >= khash_upper_bound(h)) { \
178
- kh_resize_##name(mrb, h, h->n_buckets*2); \
179
- } \
180
- k = __hash_func(mrb,key) & khash_mask(h); \
181
- del_k = kh_end(h); \
182
- while (!__ac_isempty(h->ed_flags, k)) { \
183
- if (!__ac_isdel(h->ed_flags, k)) { \
184
- if (__hash_equal(mrb,h->keys[k], key)) { \
185
- if (ret) *ret = 0; \
186
- return k; \
187
- } \
188
- } \
189
- else if (del_k == kh_end(h)) { \
190
- del_k = k; \
191
- } \
192
- k = (k+(++step)) & khash_mask(h); \
193
- } \
194
- if (del_k != kh_end(h)) { \
195
- /* put at del */ \
196
- h->keys[del_k] = key; \
197
- h->ed_flags[del_k/4] &= ~__m_del[del_k%4]; \
198
- h->size++; \
199
- if (ret) *ret = 2; \
200
- return del_k; \
201
- } \
202
- else { \
203
- /* put at empty */ \
204
- h->keys[k] = key; \
205
- h->ed_flags[k/4] &= ~__m_empty[k%4]; \
206
- h->size++; \
207
- h->n_occupied++; \
208
- if (ret) *ret = 1; \
209
- return k; \
210
- } \
211
- } \
212
- void kh_del_##name(mrb_state *mrb, kh_##name##_t *h, khint_t x) \
213
- { \
214
- (void)mrb; \
215
- mrb_assert(x != h->n_buckets && !__ac_iseither(h->ed_flags, x)); \
216
- h->ed_flags[x/4] |= __m_del[x%4]; \
217
- h->size--; \
218
- } \
219
- kh_##name##_t *kh_copy_##name(mrb_state *mrb, kh_##name##_t *h) \
220
- { \
221
- kh_##name##_t *h2; \
222
- khiter_t k, k2; \
223
- \
224
- h2 = kh_init_##name(mrb); \
225
- for (k = kh_begin(h); k != kh_end(h); k++) { \
226
- if (kh_exist(h, k)) { \
227
- k2 = kh_put_##name(mrb, h2, kh_key(h, k), NULL); \
228
- if (kh_is_map) kh_value(h2, k2) = kh_value(h, k); \
229
- } \
230
- } \
231
- return h2; \
232
- }
233
-
234
-
235
- #define khash_t(name) kh_##name##_t
236
-
237
- #define kh_init_size(name,mrb,size) kh_init_##name##_size(mrb,size)
238
- #define kh_init(name,mrb) kh_init_##name(mrb)
239
- #define kh_destroy(name, mrb, h) kh_destroy_##name(mrb, h)
240
- #define kh_clear(name, mrb, h) kh_clear_##name(mrb, h)
241
- #define kh_resize(name, mrb, h, s) kh_resize_##name(mrb, h, s)
242
- #define kh_put(name, mrb, h, k) kh_put_##name(mrb, h, k, NULL)
243
- #define kh_put2(name, mrb, h, k, r) kh_put_##name(mrb, h, k, r)
244
- #define kh_get(name, mrb, h, k) kh_get_##name(mrb, h, k)
245
- #define kh_del(name, mrb, h, k) kh_del_##name(mrb, h, k)
246
- #define kh_copy(name, mrb, h) kh_copy_##name(mrb, h)
247
-
248
- #define kh_exist(h, x) (!__ac_iseither((h)->ed_flags, (x)))
249
- #define kh_key(h, x) ((h)->keys[x])
250
- #define kh_val(h, x) ((h)->vals[x])
251
- #define kh_value(h, x) ((h)->vals[x])
252
- #define kh_begin(h) (khint_t)(0)
253
- #define kh_end(h) ((h)->n_buckets)
254
- #define kh_size(h) ((h)->size)
255
- #define kh_n_buckets(h) ((h)->n_buckets)
256
-
257
- #define kh_int_hash_func(mrb,key) (khint_t)((key)^((key)<<2)^((key)>>2))
258
- #define kh_int_hash_equal(mrb,a, b) (a == b)
259
- #define kh_int64_hash_func(mrb,key) (khint_t)((key)>>33^(key)^(key)<<11)
260
- #define kh_int64_hash_equal(mrb,a, b) (a == b)
261
- static inline khint_t __ac_X31_hash_string(const char *s)
262
- {
263
- khint_t h = *s;
264
- if (h) for (++s ; *s; ++s) h = (h << 5) - h + *s;
265
- return h;
266
- }
267
- #define kh_str_hash_func(mrb,key) __ac_X31_hash_string(key)
268
- #define kh_str_hash_equal(mrb,a, b) (strcmp(a, b) == 0)
269
-
270
- typedef const char *kh_cstr_t;
271
-
272
- MRB_END_DECL
273
-
274
- #endif /* MRUBY_KHASH_H */