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.
- checksums.yaml +4 -4
- data/LICENSE.md +7 -0
- data/README.md +141 -0
- data/USAGE.md +2435 -0
- data/assets/Rakefile +637 -0
- data/assets/build_support/CMakeLists.txt +94 -0
- data/assets/build_support/mruby/build_config.rb +34 -0
- data/assets/build_support/mruby/build_config_wasm.rb +30 -0
- data/assets/build_support/sdl_test.c +174 -0
- data/assets/deps.yaml +16 -0
- data/assets/platform/include/SDL3/SDL.h +91 -0
- data/assets/platform/include/SDL3/SDL_assert.h +705 -0
- data/assets/platform/include/SDL3/SDL_asyncio.h +550 -0
- data/assets/platform/include/SDL3/SDL_atomic.h +692 -0
- data/assets/platform/include/SDL3/SDL_audio.h +2370 -0
- data/assets/platform/include/SDL3/SDL_begin_code.h +553 -0
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_bits.h +47 -27
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_blendmode.h +59 -55
- data/assets/platform/include/SDL3/SDL_camera.h +535 -0
- data/assets/platform/include/SDL3/SDL_clipboard.h +331 -0
- data/assets/{include/SDL2/close_code.h → platform/include/SDL3/SDL_close_code.h} +9 -8
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_copying.h +3 -1
- data/assets/platform/include/SDL3/SDL_cpuinfo.h +374 -0
- data/assets/platform/include/SDL3/SDL_dialog.h +343 -0
- data/assets/platform/include/SDL3/SDL_dlopennote.h +234 -0
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_egl.h +11 -8
- data/assets/platform/include/SDL3/SDL_endian.h +645 -0
- data/assets/platform/include/SDL3/SDL_error.h +226 -0
- data/assets/platform/include/SDL3/SDL_events.h +1645 -0
- data/assets/platform/include/SDL3/SDL_filesystem.h +537 -0
- data/assets/platform/include/SDL3/SDL_gamepad.h +1656 -0
- data/assets/platform/include/SDL3/SDL_gpu.h +4608 -0
- data/assets/platform/include/SDL3/SDL_guid.h +106 -0
- data/assets/platform/include/SDL3/SDL_haptic.h +1461 -0
- data/assets/platform/include/SDL3/SDL_hidapi.h +571 -0
- data/assets/platform/include/SDL3/SDL_hints.h +5001 -0
- data/assets/platform/include/SDL3/SDL_init.h +507 -0
- data/assets/platform/include/SDL3/SDL_intrin.h +410 -0
- data/assets/platform/include/SDL3/SDL_iostream.h +1379 -0
- data/assets/platform/include/SDL3/SDL_joystick.h +1385 -0
- data/assets/platform/include/SDL3/SDL_keyboard.h +608 -0
- data/assets/platform/include/SDL3/SDL_keycode.h +347 -0
- data/assets/platform/include/SDL3/SDL_loadso.h +145 -0
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_locale.h +40 -24
- data/assets/platform/include/SDL3/SDL_log.h +541 -0
- data/assets/platform/include/SDL3/SDL_main.h +704 -0
- data/assets/platform/include/SDL3/SDL_main_impl.h +151 -0
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_messagebox.h +85 -48
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_metal.h +29 -29
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_misc.h +13 -12
- data/assets/platform/include/SDL3/SDL_mouse.h +813 -0
- data/assets/platform/include/SDL3/SDL_mutex.h +1117 -0
- data/assets/platform/include/SDL3/SDL_oldnames.h +1339 -0
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_opengl.h +1247 -278
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_opengl_glext.h +5 -1
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_opengles.h +6 -7
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_opengles2.h +10 -11
- data/assets/platform/include/SDL3/SDL_pen.h +198 -0
- data/assets/platform/include/SDL3/SDL_pixels.h +1441 -0
- data/assets/{include/SDL2/SDL_test_log.h → platform/include/SDL3/SDL_platform.h} +25 -26
- data/assets/platform/include/SDL3/SDL_platform_defines.h +497 -0
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_power.h +40 -20
- data/assets/platform/include/SDL3/SDL_process.h +441 -0
- data/assets/platform/include/SDL3/SDL_properties.h +572 -0
- data/assets/platform/include/SDL3/SDL_rect.h +528 -0
- data/assets/platform/include/SDL3/SDL_render.h +3028 -0
- data/assets/platform/include/SDL3/SDL_revision.h +59 -0
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_scancode.h +59 -68
- data/assets/platform/include/SDL3/SDL_sensor.h +321 -0
- data/assets/platform/include/SDL3/SDL_stdinc.h +6186 -0
- data/assets/platform/include/SDL3/SDL_storage.h +686 -0
- data/assets/platform/include/SDL3/SDL_surface.h +1769 -0
- data/assets/platform/include/SDL3/SDL_system.h +840 -0
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_test.h +16 -22
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_test_assert.h +27 -34
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_test_common.h +109 -52
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_test_compare.h +22 -14
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_test_crc32.h +27 -30
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_test_font.h +50 -49
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_test_fuzzer.h +64 -79
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_test_harness.h +47 -30
- data/assets/platform/include/SDL3/SDL_test_log.h +83 -0
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_test_md5.h +21 -28
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_test_memory.h +19 -16
- data/assets/platform/include/SDL3/SDL_thread.h +602 -0
- data/assets/platform/include/SDL3/SDL_time.h +249 -0
- data/assets/platform/include/SDL3/SDL_timer.h +454 -0
- data/assets/platform/include/SDL3/SDL_touch.h +184 -0
- data/assets/platform/include/SDL3/SDL_tray.h +544 -0
- data/assets/platform/include/SDL3/SDL_version.h +198 -0
- data/assets/platform/include/SDL3/SDL_video.h +3497 -0
- data/assets/platform/include/SDL3/SDL_vulkan.h +287 -0
- data/assets/platform/include/SDL3_image/SDL_image.h +3328 -0
- data/assets/platform/include/SDL3_mixer/SDL_mixer.h +3369 -0
- data/assets/platform/include/SDL3_ttf/SDL_textengine.h +181 -0
- data/assets/platform/include/SDL3_ttf/SDL_ttf.h +2833 -0
- data/assets/{include → platform/include}/mrbconf.h +42 -31
- data/assets/{include → platform/include}/mruby/array.h +3 -4
- data/assets/{include → platform/include}/mruby/boxing_nan.h +10 -0
- data/assets/platform/include/mruby/boxing_no.h +59 -0
- data/assets/{include → platform/include}/mruby/boxing_word.h +72 -26
- data/assets/platform/include/mruby/class.h +157 -0
- data/assets/{include → platform/include}/mruby/common.h +30 -1
- data/assets/{include → platform/include}/mruby/compile.h +52 -74
- data/assets/{include → platform/include}/mruby/data.h +2 -2
- data/assets/{include → platform/include}/mruby/debug.h +12 -5
- data/assets/{include → platform/include}/mruby/dump.h +7 -9
- data/assets/{include → platform/include}/mruby/endian.h +1 -1
- data/assets/platform/include/mruby/error.h +173 -0
- data/assets/platform/include/mruby/gc.h +79 -0
- data/assets/{include → platform/include}/mruby/hash.h +1 -7
- data/assets/platform/include/mruby/internal.h +282 -0
- data/assets/platform/include/mruby/irep.h +143 -0
- data/assets/{include → platform/include}/mruby/istruct.h +1 -1
- data/assets/platform/include/mruby/khash.h +455 -0
- data/assets/platform/include/mruby/mempool.h +19 -0
- data/assets/{include → platform/include}/mruby/numeric.h +7 -10
- data/assets/platform/include/mruby/object.h +51 -0
- data/assets/{include → platform/include}/mruby/opcode.h +5 -5
- data/assets/{include → platform/include}/mruby/ops.h +19 -6
- data/assets/platform/include/mruby/presym/id.h +1447 -0
- data/assets/{include → platform/include}/mruby/presym/scanning.h +10 -7
- data/assets/platform/include/mruby/presym/table.h +2893 -0
- data/assets/platform/include/mruby/presym.h +65 -0
- data/assets/platform/include/mruby/proc.h +184 -0
- data/assets/{include → platform/include}/mruby/range.h +0 -2
- data/assets/{include → platform/include}/mruby/string.h +33 -53
- data/assets/platform/include/mruby/throw.h +81 -0
- data/assets/{include → platform/include}/mruby/value.h +64 -29
- data/assets/{include → platform/include}/mruby/variable.h +6 -23
- data/assets/{include → platform/include}/mruby/version.h +7 -7
- data/assets/{include → platform/include}/mruby.h +238 -116
- data/assets/platform/macos-arm64/bin/mrbc +0 -0
- data/assets/platform/macos-arm64/lib/libSDL3.a +0 -0
- data/assets/platform/macos-arm64/lib/libSDL3_image.a +0 -0
- data/assets/platform/macos-arm64/lib/libSDL3_mixer.a +0 -0
- data/assets/platform/macos-arm64/lib/libSDL3_ttf.a +0 -0
- data/assets/platform/macos-arm64/lib/libmruby.a +0 -0
- data/assets/platform/wasm/lib/libFLAC.a +0 -0
- data/assets/platform/wasm/lib/libSDL3.a +0 -0
- data/assets/platform/wasm/lib/libSDL3_image.a +0 -0
- data/assets/platform/wasm/lib/libSDL3_mixer.a +0 -0
- data/assets/platform/wasm/lib/libSDL3_ttf.a +0 -0
- data/assets/platform/wasm/lib/libfreetype.a +0 -0
- data/assets/platform/wasm/lib/libharfbuzz.a +0 -0
- data/assets/platform/wasm/lib/libmruby.a +0 -0
- data/assets/platform/wasm/lib/libogg.a +0 -0
- data/assets/platform/wasm/lib/libplutosvg.a +0 -0
- data/assets/platform/wasm/lib/libplutovg.a +0 -0
- data/assets/platform/wasm/lib/libpng.a +0 -0
- data/assets/platform/wasm/lib/libpng16.a +0 -0
- data/assets/platform/wasm/lib/libvorbis.a +0 -0
- data/assets/platform/wasm/lib/libvorbisfile.a +0 -0
- data/assets/platform/wasm/lib/libzlibstatic.a +0 -0
- data/assets/platform/windows-arm64-mingw-ucrt/bin/mrbc.exe +0 -0
- data/assets/platform/windows-arm64-mingw-ucrt/lib/libSDL3.a +0 -0
- data/assets/platform/windows-arm64-mingw-ucrt/lib/libSDL3_image.a +0 -0
- data/assets/platform/windows-arm64-mingw-ucrt/lib/libSDL3_mixer.a +0 -0
- data/assets/platform/windows-arm64-mingw-ucrt/lib/libSDL3_ttf.a +0 -0
- data/assets/platform/windows-arm64-mingw-ucrt/lib/libmruby.a +0 -0
- data/assets/platform/windows-x86_64-mingw-ucrt/bin/mrbc.exe +0 -0
- data/assets/platform/windows-x86_64-mingw-ucrt/lib/libSDL3.a +0 -0
- data/assets/platform/windows-x86_64-mingw-ucrt/lib/libSDL3_image.a +0 -0
- data/assets/platform/windows-x86_64-mingw-ucrt/lib/libSDL3_mixer.a +0 -0
- data/assets/platform/windows-x86_64-mingw-ucrt/lib/libSDL3_ttf.a +0 -0
- data/assets/platform/windows-x86_64-mingw-ucrt/lib/libmruby.a +0 -0
- data/assets/resources/fonts/outfit/OFL.txt +93 -0
- data/assets/resources/fonts/outfit/outfit.ttf +0 -0
- data/assets/resources/fonts/roboto_mono/OFL.txt +91 -0
- data/assets/resources/fonts/roboto_mono/roboto_mono.ttf +0 -0
- data/assets/resources/icons/icon.icns +0 -0
- data/assets/resources/icons/icon.png +0 -0
- data/assets/resources/spritesheets/License.txt +28 -0
- data/assets/resources/spritesheets/spritesheet-backgrounds.png +0 -0
- data/assets/resources/spritesheets/spritesheet-backgrounds.xml +16 -0
- data/assets/resources/spritesheets/spritesheet-characters.png +0 -0
- data/assets/resources/spritesheets/spritesheet-characters.xml +47 -0
- data/assets/resources/spritesheets/spritesheet-enemies.png +0 -0
- data/assets/resources/spritesheets/spritesheet-enemies.xml +62 -0
- data/assets/resources/spritesheets/spritesheet-tiles.png +0 -0
- data/assets/resources/spritesheets/spritesheet-tiles.xml +316 -0
- data/assets/{wasm → resources/web}/template.html +1 -1
- data/assets/target.rb +131 -0
- data/bin/ruby2d +281 -82
- data/examples/astar.rb +269 -0
- data/examples/asteroids.rb +403 -0
- data/examples/bezier_editor.rb +96 -0
- data/examples/boids.rb +191 -0
- data/examples/bouncing_balls.rb +119 -0
- data/examples/breakout.rb +186 -0
- data/examples/constellations.rb +100 -0
- data/examples/dashboard.rb +133 -0
- data/examples/double_pendulum.rb +254 -0
- data/examples/falling_sand.rb +291 -0
- data/examples/fireworks.rb +110 -0
- data/examples/fluid_dynamics.rb +340 -0
- data/examples/fourier_epicycles.rb +142 -0
- data/examples/fractal_tree.rb +326 -0
- data/examples/game_of_life.rb +148 -0
- data/examples/gamepads.rb +333 -0
- data/examples/hill_driver.rb +613 -0
- data/examples/logo_animation.rb +251 -0
- data/examples/lorenz_attractor.rb +115 -0
- data/examples/mandelbrot.rb +207 -0
- data/examples/marching_squares.rb +200 -0
- data/examples/maze.rb +323 -0
- data/examples/nbody.rb +338 -0
- data/examples/outrun.rb +391 -0
- data/examples/pixel_paint.rb +313 -0
- data/examples/platformer.rb +335 -0
- data/examples/ray_casting_maze.rb +175 -0
- data/examples/shadow_casting.rb +151 -0
- data/examples/shape_recognizer.rb +908 -0
- data/examples/snake.rb +144 -0
- data/examples/sprite_sheets.rb +246 -0
- data/examples/swarm.rb +206 -0
- data/examples/tsp_annealing.rb +104 -0
- data/examples/ui_controls.rb +163 -0
- data/examples/wireframe_3d.rb +139 -0
- data/ext/ruby2d/audio.c +324 -0
- data/ext/ruby2d/canvas.c +1715 -494
- data/ext/ruby2d/ext.c +541 -0
- data/ext/ruby2d/extconf.rb +122 -145
- data/ext/ruby2d/font.c +566 -20
- data/ext/ruby2d/fps.c +92 -0
- data/ext/ruby2d/image.c +466 -41
- data/ext/ruby2d/ruby2d.c +374 -1890
- data/ext/ruby2d/ruby2d.h +840 -460
- data/ext/ruby2d/shapes.c +931 -101
- data/ext/ruby2d/text.c +586 -21
- data/ext/ruby2d/window.c +1693 -283
- data/lib/ruby2d/atlas_parser.rb +194 -0
- data/lib/ruby2d/audio.rb +73 -0
- data/lib/ruby2d/benchmark.rb +259 -0
- data/lib/ruby2d/bitmap_text.rb +155 -0
- data/lib/ruby2d/button.rb +402 -0
- data/lib/ruby2d/canvas.rb +703 -279
- data/lib/ruby2d/circle.rb +206 -29
- data/lib/ruby2d/cli/browser.rb +314 -0
- data/lib/ruby2d/cli/build.rb +471 -257
- data/lib/ruby2d/cli/colorize.rb +7 -5
- data/lib/ruby2d/cli/examples.rb +127 -0
- data/lib/ruby2d/cli/launch.rb +24 -39
- data/lib/ruby2d/cli/lib_files.rb +48 -0
- data/lib/ruby2d/cli/messages.rb +40 -0
- data/lib/ruby2d/cli/setup.rb +273 -0
- data/lib/ruby2d/cli/static_server.rb +160 -0
- data/lib/ruby2d/cli/usage.rb +255 -0
- data/lib/ruby2d/color.rb +191 -69
- data/lib/ruby2d/core.rb +37 -19
- data/lib/ruby2d/deps_help.rb +89 -0
- data/lib/ruby2d/dsl.rb +51 -12
- data/lib/ruby2d/ellipse.rb +228 -0
- data/lib/ruby2d/exceptions.rb +0 -2
- data/lib/ruby2d/font.rb +34 -74
- data/lib/ruby2d/gamepad.rb +323 -0
- data/lib/ruby2d/gem_paths.rb +19 -0
- data/lib/ruby2d/image.rb +155 -52
- data/lib/ruby2d/interactive.rb +103 -0
- data/lib/ruby2d/json_parser.rb +268 -0
- data/lib/ruby2d/line.rb +194 -85
- data/lib/ruby2d/mruby_compat.rb +12 -0
- data/lib/ruby2d/polygon.rb +297 -0
- data/lib/ruby2d/polyline.rb +368 -0
- data/lib/ruby2d/quad.rb +358 -94
- data/lib/ruby2d/rectangle.rb +77 -19
- data/lib/ruby2d/renderable.rb +411 -11
- data/lib/ruby2d/sprite.rb +471 -180
- data/lib/ruby2d/sprite_sheet.rb +64 -0
- data/lib/ruby2d/square.rb +29 -17
- data/lib/ruby2d/text.rb +196 -65
- data/lib/ruby2d/tileset.rb +139 -81
- data/lib/ruby2d/triangle.rb +324 -89
- data/lib/ruby2d/version.rb +1 -3
- data/lib/ruby2d/vertices.rb +62 -85
- data/lib/ruby2d/warnings.rb +29 -0
- data/lib/ruby2d/window/class_methods.rb +218 -0
- data/lib/ruby2d/window/gamepad_events.rb +141 -0
- data/lib/ruby2d/window/key_events.rb +74 -0
- data/lib/ruby2d/window/mouse_events.rb +171 -0
- data/lib/ruby2d/window/object_events.rb +168 -0
- data/lib/ruby2d/window.rb +632 -585
- data/lib/ruby2d.rb +14 -19
- metadata +275 -443
- data/assets/app.icns +0 -0
- data/assets/include/GL/glew.h +0 -26427
- data/assets/include/GLES2/gl2.h +0 -656
- data/assets/include/GLES2/gl2ext.h +0 -3949
- data/assets/include/GLES2/gl2ext_angle.h +0 -701
- data/assets/include/GLES2/gl2platform.h +0 -27
- data/assets/include/GLES3/gl3.h +0 -1192
- data/assets/include/GLES3/gl31.h +0 -1507
- data/assets/include/GLES3/gl32.h +0 -1808
- data/assets/include/GLES3/gl3platform.h +0 -27
- data/assets/include/KHR/khrplatform.h +0 -290
- data/assets/include/SDL2/SDL.h +0 -233
- data/assets/include/SDL2/SDL_assert.h +0 -326
- data/assets/include/SDL2/SDL_atomic.h +0 -415
- data/assets/include/SDL2/SDL_audio.h +0 -1500
- data/assets/include/SDL2/SDL_clipboard.h +0 -141
- data/assets/include/SDL2/SDL_config.h +0 -61
- data/assets/include/SDL2/SDL_config_android.h +0 -194
- data/assets/include/SDL2/SDL_config_emscripten.h +0 -218
- data/assets/include/SDL2/SDL_config_iphoneos.h +0 -217
- data/assets/include/SDL2/SDL_config_macosx.h +0 -277
- data/assets/include/SDL2/SDL_config_minimal.h +0 -95
- data/assets/include/SDL2/SDL_config_ngage.h +0 -89
- data/assets/include/SDL2/SDL_config_os2.h +0 -207
- data/assets/include/SDL2/SDL_config_pandora.h +0 -141
- data/assets/include/SDL2/SDL_config_windows.h +0 -331
- data/assets/include/SDL2/SDL_config_wingdk.h +0 -253
- data/assets/include/SDL2/SDL_config_winrt.h +0 -220
- data/assets/include/SDL2/SDL_config_xbox.h +0 -235
- data/assets/include/SDL2/SDL_cpuinfo.h +0 -594
- data/assets/include/SDL2/SDL_endian.h +0 -348
- data/assets/include/SDL2/SDL_error.h +0 -163
- data/assets/include/SDL2/SDL_events.h +0 -1166
- data/assets/include/SDL2/SDL_filesystem.h +0 -149
- data/assets/include/SDL2/SDL_gamecontroller.h +0 -1074
- data/assets/include/SDL2/SDL_gesture.h +0 -117
- data/assets/include/SDL2/SDL_guid.h +0 -100
- data/assets/include/SDL2/SDL_haptic.h +0 -1341
- data/assets/include/SDL2/SDL_hidapi.h +0 -451
- data/assets/include/SDL2/SDL_hints.h +0 -2569
- data/assets/include/SDL2/SDL_image.h +0 -2173
- data/assets/include/SDL2/SDL_joystick.h +0 -1066
- data/assets/include/SDL2/SDL_keyboard.h +0 -353
- data/assets/include/SDL2/SDL_keycode.h +0 -358
- data/assets/include/SDL2/SDL_loadso.h +0 -115
- data/assets/include/SDL2/SDL_log.h +0 -404
- data/assets/include/SDL2/SDL_main.h +0 -275
- data/assets/include/SDL2/SDL_mixer.h +0 -2784
- data/assets/include/SDL2/SDL_mouse.h +0 -465
- data/assets/include/SDL2/SDL_mutex.h +0 -471
- data/assets/include/SDL2/SDL_name.h +0 -33
- data/assets/include/SDL2/SDL_pixels.h +0 -644
- data/assets/include/SDL2/SDL_platform.h +0 -261
- data/assets/include/SDL2/SDL_quit.h +0 -58
- data/assets/include/SDL2/SDL_rect.h +0 -376
- data/assets/include/SDL2/SDL_render.h +0 -1919
- data/assets/include/SDL2/SDL_revision.h +0 -6
- data/assets/include/SDL2/SDL_rwops.h +0 -841
- data/assets/include/SDL2/SDL_sensor.h +0 -322
- data/assets/include/SDL2/SDL_shape.h +0 -155
- data/assets/include/SDL2/SDL_stdinc.h +0 -830
- data/assets/include/SDL2/SDL_surface.h +0 -997
- data/assets/include/SDL2/SDL_system.h +0 -623
- data/assets/include/SDL2/SDL_syswm.h +0 -386
- data/assets/include/SDL2/SDL_test_images.h +0 -78
- data/assets/include/SDL2/SDL_test_random.h +0 -115
- data/assets/include/SDL2/SDL_thread.h +0 -464
- data/assets/include/SDL2/SDL_timer.h +0 -222
- data/assets/include/SDL2/SDL_touch.h +0 -150
- data/assets/include/SDL2/SDL_ttf.h +0 -2316
- data/assets/include/SDL2/SDL_types.h +0 -29
- data/assets/include/SDL2/SDL_version.h +0 -204
- data/assets/include/SDL2/SDL_video.h +0 -2150
- data/assets/include/SDL2/SDL_vulkan.h +0 -215
- data/assets/include/SDL2/begin_code.h +0 -187
- data/assets/include/mruby/boxing_no.h +0 -58
- data/assets/include/mruby/class.h +0 -108
- data/assets/include/mruby/error.h +0 -147
- data/assets/include/mruby/gc.h +0 -94
- data/assets/include/mruby/irep.h +0 -147
- data/assets/include/mruby/khash.h +0 -284
- data/assets/include/mruby/object.h +0 -43
- data/assets/include/mruby/presym/disable.h +0 -70
- data/assets/include/mruby/presym/enable.h +0 -37
- data/assets/include/mruby/presym.h +0 -40
- data/assets/include/mruby/proc.h +0 -211
- data/assets/include/mruby/throw.h +0 -66
- data/assets/macos/universal/bin/mrbc +0 -0
- data/assets/macos/universal/lib/libFLAC.a +0 -0
- data/assets/macos/universal/lib/libSDL2.a +0 -0
- data/assets/macos/universal/lib/libSDL2_image.a +0 -0
- data/assets/macos/universal/lib/libSDL2_mixer.a +0 -0
- data/assets/macos/universal/lib/libSDL2_ttf.a +0 -0
- data/assets/macos/universal/lib/libavif.a +0 -0
- data/assets/macos/universal/lib/libbrotlicommon-static.a +0 -0
- data/assets/macos/universal/lib/libbrotlidec-static.a +0 -0
- data/assets/macos/universal/lib/libfreetype.a +0 -0
- data/assets/macos/universal/lib/libgraphite2.a +0 -0
- data/assets/macos/universal/lib/libharfbuzz.a +0 -0
- data/assets/macos/universal/lib/libhwy.a +0 -0
- data/assets/macos/universal/lib/libjpeg.a +0 -0
- data/assets/macos/universal/lib/libjxl.a +0 -0
- data/assets/macos/universal/lib/libmodplug.a +0 -0
- data/assets/macos/universal/lib/libmpg123.a +0 -0
- data/assets/macos/universal/lib/libmruby.a +0 -0
- data/assets/macos/universal/lib/libogg.a +0 -0
- data/assets/macos/universal/lib/libpng.a +0 -0
- data/assets/macos/universal/lib/libtiff.a +0 -0
- data/assets/macos/universal/lib/libvorbis.a +0 -0
- data/assets/macos/universal/lib/libvorbisfile.a +0 -0
- data/assets/macos/universal/lib/libwebp.a +0 -0
- data/assets/macos/universal/lib/libzstd.a +0 -0
- data/assets/test_media/README.md +0 -3
- data/assets/test_media/bitstream_vera/COPYRIGHT.txt +0 -124
- data/assets/test_media/bitstream_vera/vera.ttf +0 -0
- data/assets/test_media/boom.png +0 -0
- data/assets/test_media/coin.png +0 -0
- data/assets/test_media/colors.png +0 -0
- data/assets/test_media/controller.png +0 -0
- data/assets/test_media/dial.wav +0 -0
- data/assets/test_media/hero.png +0 -0
- data/assets/test_media/image.bmp +0 -0
- data/assets/test_media/image.jpg +0 -0
- data/assets/test_media/image.png +0 -0
- data/assets/test_media/music.flac +0 -0
- data/assets/test_media/music.mp3 +0 -0
- data/assets/test_media/music.ogg +0 -0
- data/assets/test_media/music.wav +0 -0
- data/assets/test_media/originals/boom.pxm +0 -0
- data/assets/test_media/originals/coin.pxm +0 -0
- data/assets/test_media/originals/controller.sketch +0 -0
- data/assets/test_media/originals/hero.pxm +0 -0
- data/assets/test_media/originals/image.pxm +0 -0
- data/assets/test_media/originals/music.caf +0 -0
- data/assets/test_media/originals/texture_atlas.pxm +0 -0
- data/assets/test_media/rondo_alla_turka.ogg +0 -0
- data/assets/test_media/sound.flac +0 -0
- data/assets/test_media/sound.mp3 +0 -0
- data/assets/test_media/sound.ogg +0 -0
- data/assets/test_media/sound.wav +0 -0
- data/assets/test_media/sprite_sheet.png +0 -0
- data/assets/test_media/texture_atlas.png +0 -0
- data/assets/wasm/libmruby.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/bin/mrbc.exe +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libFLAC.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libLerc.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libSDL2.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libSDL2_image.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libSDL2_mixer.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libSDL2_ttf.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libbrotlicommon.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libbrotlidec.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libbz2.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libdeflate.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libfreetype.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libglew32.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libgraphite2.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libharfbuzz.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libhwy.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libjbig.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libjpeg.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libjxl.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/liblzma.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libmodplug.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libmpg123.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libmruby.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libogg.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libopus.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libopusfile.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libpng.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libsndfile.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libssp.a +0 -1
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libstdc++.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libtiff.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libvorbis.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libvorbisfile.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libwebp.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libz.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libzstd.a +0 -0
- data/assets/windows/mingw-w64-x86_64/bin/mrbc.exe +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libFLAC.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libLerc.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libSDL2.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libSDL2_image.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libSDL2_mixer.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libSDL2_ttf.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libbrotlicommon.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libbrotlidec.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libbz2.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libdeflate.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libfreetype.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libglew32.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libgraphite2.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libharfbuzz.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libhwy.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libjbig.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libjpeg.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libjxl.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/liblzma.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libmodplug.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libmpg123.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libmruby.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libogg.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libopus.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libopusfile.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libpng.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libsndfile.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libssp.a +0 -1
- data/assets/windows/mingw-w64-x86_64/lib/libstdc++.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libtiff.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libvorbis.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libvorbisfile.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libwebp.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libz.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libzstd.a +0 -0
- data/assets/xcode/ios/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -98
- data/assets/xcode/ios/Assets.xcassets/Contents.json +0 -6
- data/assets/xcode/ios/Base.lproj/LaunchScreen.storyboard +0 -27
- data/assets/xcode/ios/Info.plist +0 -43
- data/assets/xcode/ios/MRuby.framework/Headers/mrbconf.h +0 -143
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/array.h +0 -280
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/boxing_nan.h +0 -102
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/boxing_no.h +0 -56
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/boxing_word.h +0 -144
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/class.h +0 -97
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/common.h +0 -77
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/compile.h +0 -195
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/data.h +0 -75
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/debug.h +0 -67
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/dump.h +0 -196
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/error.h +0 -75
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/gc.h +0 -91
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/hash.h +0 -215
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/irep.h +0 -75
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/istruct.h +0 -47
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/khash.h +0 -274
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/numeric.h +0 -161
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/object.h +0 -44
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/opcode.h +0 -69
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/ops.h +0 -117
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/proc.h +0 -131
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/range.h +0 -49
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/re.h +0 -16
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/string.h +0 -444
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/throw.h +0 -55
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/value.h +0 -309
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/variable.h +0 -136
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/version.h +0 -110
- data/assets/xcode/ios/MRuby.framework/Headers/mruby.h +0 -1282
- data/assets/xcode/ios/MRuby.framework/Info.plist +0 -20
- data/assets/xcode/ios/MRuby.framework/MRuby +0 -0
- data/assets/xcode/ios/MyApp.xcodeproj/project.pbxproj +0 -368
- data/assets/xcode/ios/MyApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- data/assets/xcode/ios/MyApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
- data/assets/xcode/ios/MyApp.xcodeproj/project.xcworkspace/xcshareddata/MyApp.xcscmblueprint +0 -30
- data/assets/xcode/ios/main.c +0 -1
- data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Content.imageset/Contents.json +0 -16
- data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Contents.json +0 -6
- data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Contents.json +0 -17
- data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Content.imageset/Contents.json +0 -16
- data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Contents.json +0 -6
- data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json +0 -16
- data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Contents.json +0 -6
- data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Content.imageset/Contents.json +0 -16
- data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Contents.json +0 -6
- data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Contents.json +0 -17
- data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Content.imageset/Contents.json +0 -16
- data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Contents.json +0 -6
- data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json +0 -16
- data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Contents.json +0 -6
- data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Contents.json +0 -32
- data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image Wide.imageset/Contents.json +0 -16
- data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/Contents.json +0 -16
- data/assets/xcode/tvos/Assets.xcassets/Contents.json +0 -6
- data/assets/xcode/tvos/Assets.xcassets/LaunchImage.launchimage/Contents.json +0 -22
- data/assets/xcode/tvos/Info.plist +0 -30
- data/assets/xcode/tvos/MRuby.framework/Headers/mrbconf.h +0 -143
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/array.h +0 -280
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/boxing_nan.h +0 -102
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/boxing_no.h +0 -56
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/boxing_word.h +0 -144
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/class.h +0 -97
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/common.h +0 -77
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/compile.h +0 -195
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/data.h +0 -75
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/debug.h +0 -67
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/dump.h +0 -196
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/error.h +0 -75
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/gc.h +0 -91
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/hash.h +0 -215
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/irep.h +0 -75
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/istruct.h +0 -47
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/khash.h +0 -274
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/numeric.h +0 -161
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/object.h +0 -44
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/opcode.h +0 -69
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/ops.h +0 -117
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/proc.h +0 -131
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/range.h +0 -49
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/re.h +0 -16
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/string.h +0 -444
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/throw.h +0 -55
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/value.h +0 -309
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/variable.h +0 -136
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/version.h +0 -110
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby.h +0 -1282
- data/assets/xcode/tvos/MRuby.framework/Info.plist +0 -20
- data/assets/xcode/tvos/MRuby.framework/MRuby +0 -0
- data/assets/xcode/tvos/MyApp.xcodeproj/project.pbxproj +0 -350
- data/assets/xcode/tvos/MyApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- data/assets/xcode/tvos/MyApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
- data/assets/xcode/tvos/MyApp.xcodeproj/project.xcworkspace/xcshareddata/MyApp.xcscmblueprint +0 -30
- data/assets/xcode/tvos/main.c +0 -1
- data/ext/ruby2d/common.c +0 -185
- data/ext/ruby2d/controllers.c +0 -110
- data/ext/ruby2d/gl.c +0 -398
- data/ext/ruby2d/gl2.c +0 -86
- data/ext/ruby2d/gl3.c +0 -304
- data/ext/ruby2d/gles.c +0 -302
- data/ext/ruby2d/input.c +0 -48
- data/ext/ruby2d/music.c +0 -127
- data/ext/ruby2d/sound.c +0 -132
- data/lib/ruby2d/cli/console.rb +0 -65
- data/lib/ruby2d/cli/enable_console.rb +0 -7
- data/lib/ruby2d/cli/platform.rb +0 -17
- data/lib/ruby2d/music.rb +0 -77
- data/lib/ruby2d/pixel.rb +0 -18
- data/lib/ruby2d/pixmap.rb +0 -39
- data/lib/ruby2d/pixmap_atlas.rb +0 -56
- data/lib/ruby2d/sound.rb +0 -61
- data/lib/ruby2d/texture.rb +0 -38
- /data/assets/{include/SDL2 → platform/include/SDL3}/SDL_opengles2_gl2.h +0 -0
- /data/assets/{include/SDL2 → platform/include/SDL3}/SDL_opengles2_gl2ext.h +0 -0
- /data/assets/{include/SDL2 → platform/include/SDL3}/SDL_opengles2_gl2platform.h +0 -0
- /data/assets/{include/SDL2 → platform/include/SDL3}/SDL_opengles2_khrplatform.h +0 -0
- /data/assets/{include → platform/include}/mruby/re.h +0 -0
data/ext/ruby2d/music.c
DELETED
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
// music.c
|
|
2
|
-
|
|
3
|
-
#include "ruby2d.h"
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
/*
|
|
7
|
-
* Create the music
|
|
8
|
-
*/
|
|
9
|
-
R2D_Music *R2D_CreateMusic(const char *path) {
|
|
10
|
-
R2D_Init();
|
|
11
|
-
|
|
12
|
-
// Check if music file exists
|
|
13
|
-
if (!R2D_FileExists(path)) {
|
|
14
|
-
R2D_Error("R2D_CreateMusic", "Music file `%s` not found", path);
|
|
15
|
-
return NULL;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
// Allocate the music structure
|
|
19
|
-
R2D_Music *mus = (R2D_Music *) malloc(sizeof(R2D_Music));
|
|
20
|
-
if (!mus) {
|
|
21
|
-
R2D_Error("R2D_CreateMusic", "Out of memory!");
|
|
22
|
-
return NULL;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
// Load the music data from file
|
|
26
|
-
mus->data = Mix_LoadMUS(path);
|
|
27
|
-
if (!mus->data) {
|
|
28
|
-
R2D_Error("Mix_LoadMUS", Mix_GetError());
|
|
29
|
-
free(mus);
|
|
30
|
-
return NULL;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
// Initialize values
|
|
34
|
-
mus->path = path;
|
|
35
|
-
|
|
36
|
-
// Calculate the length of music by creating a temporary R2D_Sound object
|
|
37
|
-
R2D_Sound *snd = R2D_CreateSound(path);
|
|
38
|
-
mus->length = R2D_GetSoundLength(snd);
|
|
39
|
-
R2D_FreeSound(snd);
|
|
40
|
-
|
|
41
|
-
return mus;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
/*
|
|
46
|
-
* Play the music
|
|
47
|
-
*/
|
|
48
|
-
void R2D_PlayMusic(R2D_Music *mus, bool loop) {
|
|
49
|
-
if (!mus) return;
|
|
50
|
-
|
|
51
|
-
// If looping, set to -1 times; else 0
|
|
52
|
-
int times = loop ? -1 : 0;
|
|
53
|
-
|
|
54
|
-
// times: 0 == once, -1 == forever
|
|
55
|
-
if (Mix_PlayMusic(mus->data, times) == -1) {
|
|
56
|
-
// No music for you
|
|
57
|
-
R2D_Error("R2D_PlayMusic", Mix_GetError());
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
/*
|
|
63
|
-
* Pause the playing music
|
|
64
|
-
*/
|
|
65
|
-
void R2D_PauseMusic() {
|
|
66
|
-
Mix_PauseMusic();
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
/*
|
|
71
|
-
* Resume the current music
|
|
72
|
-
*/
|
|
73
|
-
void R2D_ResumeMusic() {
|
|
74
|
-
Mix_ResumeMusic();
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
/*
|
|
79
|
-
* Stop the playing music; interrupts fader effects
|
|
80
|
-
*/
|
|
81
|
-
void R2D_StopMusic() {
|
|
82
|
-
Mix_HaltMusic();
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
/*
|
|
87
|
-
* Get the music volume
|
|
88
|
-
*/
|
|
89
|
-
int R2D_GetMusicVolume() {
|
|
90
|
-
// Get music volume as percentage of maximum mix volume
|
|
91
|
-
return ceil(Mix_VolumeMusic(-1) * (100.0 / MIX_MAX_VOLUME));
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
/*
|
|
96
|
-
* Set the music volume a given percentage
|
|
97
|
-
*/
|
|
98
|
-
void R2D_SetMusicVolume(int volume) {
|
|
99
|
-
// Set volume to be a percentage of the maximum mix volume
|
|
100
|
-
Mix_VolumeMusic((volume / 100.0) * MIX_MAX_VOLUME);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
/*
|
|
105
|
-
* Fade out the playing music
|
|
106
|
-
*/
|
|
107
|
-
void R2D_FadeOutMusic(int ms) {
|
|
108
|
-
Mix_FadeOutMusic(ms);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
/*
|
|
113
|
-
* Get the length of the music in seconds
|
|
114
|
-
*/
|
|
115
|
-
int R2D_GetMusicLength(R2D_Music *mus) {
|
|
116
|
-
return mus->length;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
/*
|
|
121
|
-
* Free the music
|
|
122
|
-
*/
|
|
123
|
-
void R2D_FreeMusic(R2D_Music *mus) {
|
|
124
|
-
if (!mus) return;
|
|
125
|
-
Mix_FreeMusic(mus->data);
|
|
126
|
-
free(mus);
|
|
127
|
-
}
|
data/ext/ruby2d/sound.c
DELETED
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
// sound.c
|
|
2
|
-
|
|
3
|
-
#include "ruby2d.h"
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
/*
|
|
7
|
-
* Create a sound, given an audio file path
|
|
8
|
-
*/
|
|
9
|
-
R2D_Sound *R2D_CreateSound(const char *path) {
|
|
10
|
-
R2D_Init();
|
|
11
|
-
|
|
12
|
-
// Check if sound file exists
|
|
13
|
-
if (!R2D_FileExists(path)) {
|
|
14
|
-
R2D_Error("R2D_CreateSound", "Sound file `%s` not found", path);
|
|
15
|
-
return NULL;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
// Allocate the sound structure
|
|
19
|
-
R2D_Sound *snd = (R2D_Sound *) malloc(sizeof(R2D_Sound));
|
|
20
|
-
if (!snd) {
|
|
21
|
-
R2D_Error("R2D_CreateSound", "Out of memory!");
|
|
22
|
-
return NULL;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
// Load the sound data from file
|
|
26
|
-
snd->data = Mix_LoadWAV(path);
|
|
27
|
-
if (!snd->data) {
|
|
28
|
-
R2D_Error("Mix_LoadWAV", Mix_GetError());
|
|
29
|
-
free(snd);
|
|
30
|
-
return NULL;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
// Initialize values
|
|
34
|
-
snd->path = path;
|
|
35
|
-
|
|
36
|
-
return snd;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
/*
|
|
41
|
-
* Play the sound
|
|
42
|
-
*/
|
|
43
|
-
void R2D_PlaySound(R2D_Sound *snd, bool loop) {
|
|
44
|
-
if (!snd) return;
|
|
45
|
-
|
|
46
|
-
// If looping, set to -1 times; else 0
|
|
47
|
-
int times = loop ? -1 : 0;
|
|
48
|
-
|
|
49
|
-
// times: 0 == once, -1 == forever
|
|
50
|
-
snd->channel = Mix_PlayChannel(-1, snd->data, times);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/*
|
|
54
|
-
* Stop the sound
|
|
55
|
-
*/
|
|
56
|
-
void R2D_StopSound(R2D_Sound *snd) {
|
|
57
|
-
if (!snd) return;
|
|
58
|
-
|
|
59
|
-
Mix_HaltChannel(snd->channel);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
/*
|
|
64
|
-
* Get the sound's length in seconds
|
|
65
|
-
*/
|
|
66
|
-
int R2D_GetSoundLength(R2D_Sound *snd) {
|
|
67
|
-
float points = 0;
|
|
68
|
-
float frames = 0;
|
|
69
|
-
int frequency = 0;
|
|
70
|
-
Uint16 format = 0;
|
|
71
|
-
int channels = 0;
|
|
72
|
-
|
|
73
|
-
// Populate the frequency, format and channel variables
|
|
74
|
-
if (!Mix_QuerySpec(&frequency, &format, &channels)) return -1; // Querying audio details failed
|
|
75
|
-
if (!snd) return -1;
|
|
76
|
-
|
|
77
|
-
// points = bytes / samplesize
|
|
78
|
-
points = (snd->data->alen / ((format & 0xFF) / 8));
|
|
79
|
-
|
|
80
|
-
// frames = sample points / channels
|
|
81
|
-
frames = (points / channels);
|
|
82
|
-
|
|
83
|
-
// frames / frequency is seconds of audio
|
|
84
|
-
return ceil(frames / frequency);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
/*
|
|
89
|
-
* Get the sound's volume
|
|
90
|
-
*/
|
|
91
|
-
int R2D_GetSoundVolume(R2D_Sound *snd) {
|
|
92
|
-
if (!snd) return -1;
|
|
93
|
-
return ceil(Mix_VolumeChunk(snd->data, -1) * (100.0 / MIX_MAX_VOLUME));
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
/*
|
|
98
|
-
* Set the sound's volume a given percentage
|
|
99
|
-
*/
|
|
100
|
-
void R2D_SetSoundVolume(R2D_Sound *snd, int volume) {
|
|
101
|
-
if (!snd) return;
|
|
102
|
-
// Set volume to be a percentage of the maximum mix volume
|
|
103
|
-
Mix_VolumeChunk(snd->data, (volume / 100.0) * MIX_MAX_VOLUME);
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
/*
|
|
108
|
-
* Get the sound mixer volume
|
|
109
|
-
*/
|
|
110
|
-
int R2D_GetSoundMixVolume() {
|
|
111
|
-
return ceil(Mix_Volume(-1, -1) * (100.0 / MIX_MAX_VOLUME));
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
/*
|
|
116
|
-
* Set the sound mixer volume a given percentage
|
|
117
|
-
*/
|
|
118
|
-
void R2D_SetSoundMixVolume(int volume) {
|
|
119
|
-
// This sets the volume value across all channels
|
|
120
|
-
// Set volume to be a percentage of the maximum mix volume
|
|
121
|
-
Mix_Volume(-1, (volume / 100.0) * MIX_MAX_VOLUME);
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
/*
|
|
126
|
-
* Free the sound
|
|
127
|
-
*/
|
|
128
|
-
void R2D_FreeSound(R2D_Sound *snd) {
|
|
129
|
-
if (!snd) return;
|
|
130
|
-
Mix_FreeChunk(snd->data);
|
|
131
|
-
free(snd);
|
|
132
|
-
}
|
data/lib/ruby2d/cli/console.rb
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
# Interactive Ruby 2D console
|
|
2
|
-
|
|
3
|
-
# Save the Ruby file from the command-line arguments
|
|
4
|
-
rb_file = ARGV[1]
|
|
5
|
-
|
|
6
|
-
# Check if source file provided is good
|
|
7
|
-
if !rb_file
|
|
8
|
-
puts "Provide a Ruby file to run"
|
|
9
|
-
exit 1
|
|
10
|
-
elsif !File.exist? rb_file
|
|
11
|
-
puts "Can't find file: #{rb_file}"
|
|
12
|
-
exit 1
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
# Add libraries
|
|
16
|
-
require 'open3'
|
|
17
|
-
require 'readline'
|
|
18
|
-
require 'io/wait'
|
|
19
|
-
|
|
20
|
-
line = 1 # the current line number
|
|
21
|
-
|
|
22
|
-
# Open a new process for the Ruby file
|
|
23
|
-
stdin, stdout, stderr, wait_thr = Open3.popen3("ruby -r 'ruby2d/cli/enable_console' #{rb_file}")
|
|
24
|
-
|
|
25
|
-
# Request input and send commands
|
|
26
|
-
loop do
|
|
27
|
-
|
|
28
|
-
# Read the next command
|
|
29
|
-
cmd = Readline.readline("ruby2d:#{line}> ", true)
|
|
30
|
-
|
|
31
|
-
# Quit if command is 'exit'
|
|
32
|
-
if cmd == 'exit'
|
|
33
|
-
Process.kill 'INT', wait_thr.pid
|
|
34
|
-
wait_thr.value
|
|
35
|
-
exit
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
# Try sending commands
|
|
39
|
-
begin
|
|
40
|
-
|
|
41
|
-
# Skip if command is an empty string
|
|
42
|
-
unless cmd.empty?
|
|
43
|
-
|
|
44
|
-
# Send command to the Ruby file
|
|
45
|
-
stdin.puts cmd
|
|
46
|
-
|
|
47
|
-
# Read and print output from the Ruby file
|
|
48
|
-
puts stdout.gets
|
|
49
|
-
while stdout.ready? do
|
|
50
|
-
puts stdout.gets
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
# Increment the line number
|
|
56
|
-
line += 1
|
|
57
|
-
|
|
58
|
-
# Rescue exception if can't send commands to the Ruby 2D window
|
|
59
|
-
rescue Errno::EPIPE
|
|
60
|
-
puts "Can't connect to the window (was it closed?)",
|
|
61
|
-
"For help, see: ruby2d.com/learn/console"
|
|
62
|
-
exit 1
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
end
|
data/lib/ruby2d/cli/platform.rb
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
# Set the OS and platform
|
|
2
|
-
|
|
3
|
-
case RUBY_PLATFORM
|
|
4
|
-
when /darwin/
|
|
5
|
-
$RUBY2D_PLATFORM = :macos
|
|
6
|
-
when /linux/
|
|
7
|
-
$RUBY2D_PLATFORM = :linux
|
|
8
|
-
if `cat /etc/os-release` =~ /raspbian/
|
|
9
|
-
$RUBY2D_PLATFORM = :linux_rpi
|
|
10
|
-
end
|
|
11
|
-
when /bsd/
|
|
12
|
-
$RUBY2D_PLATFORM = :bsd
|
|
13
|
-
when /mingw/
|
|
14
|
-
$RUBY2D_PLATFORM = :windows
|
|
15
|
-
else
|
|
16
|
-
$RUBY2D_PLATFORM = nil
|
|
17
|
-
end
|
data/lib/ruby2d/music.rb
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
# Ruby2D::Music
|
|
4
|
-
|
|
5
|
-
module Ruby2D
|
|
6
|
-
# Music is for longer pieces which can be played, paused, stopped, resumed,
|
|
7
|
-
# and faded out, like a background soundtrack.
|
|
8
|
-
class Music
|
|
9
|
-
attr_reader :path
|
|
10
|
-
attr_accessor :loop, :data
|
|
11
|
-
|
|
12
|
-
#
|
|
13
|
-
# Load music from a file
|
|
14
|
-
# @param [String] path File to load the music from
|
|
15
|
-
# @param [true, false] loop If +true+ playback will loop automatically, default is +false+
|
|
16
|
-
# @raise [Error] if file cannot be found or music could not be successfully loaded.
|
|
17
|
-
def initialize(path, loop: false)
|
|
18
|
-
raise Error, "Cannot find audio file `#{path}`" unless File.exist? path
|
|
19
|
-
|
|
20
|
-
@path = path
|
|
21
|
-
@loop = loop
|
|
22
|
-
raise Error, "Music `#{@path}` cannot be created" unless ext_init(@path)
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
# Play the music
|
|
26
|
-
def play
|
|
27
|
-
ext_play
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
# Pause the music
|
|
31
|
-
def pause
|
|
32
|
-
ext_pause
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
# Resume paused music
|
|
36
|
-
def resume
|
|
37
|
-
ext_resume
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
# Stop playing the music, start at beginning
|
|
41
|
-
def stop
|
|
42
|
-
ext_stop
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
class << self
|
|
46
|
-
# Returns the volume, in percentage
|
|
47
|
-
def volume
|
|
48
|
-
ext_get_volume
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
# Set music volume, 0 to 100%
|
|
52
|
-
def volume=(volume)
|
|
53
|
-
# Clamp value to between 0-100
|
|
54
|
-
ext_set_volume(volume.clamp(0, 100))
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
# Alias instance methods to class methods
|
|
59
|
-
def volume
|
|
60
|
-
Music.volume
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
def volume=(volume)
|
|
64
|
-
Music.volume = (volume)
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
# Fade out music over provided milliseconds
|
|
68
|
-
def fadeout(milliseconds)
|
|
69
|
-
ext_fadeout(milliseconds)
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
# Returns the length in seconds
|
|
73
|
-
def length
|
|
74
|
-
ext_length
|
|
75
|
-
end
|
|
76
|
-
end
|
|
77
|
-
end
|
data/lib/ruby2d/pixel.rb
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
# Ruby2D::Pixel
|
|
4
|
-
|
|
5
|
-
module Ruby2D
|
|
6
|
-
# Draw a single pixel by calling +Pixel.draw(...)+
|
|
7
|
-
class Pixel
|
|
8
|
-
def self.draw(x:, y:, size:, color:)
|
|
9
|
-
color = color.to_a if color.is_a? Color
|
|
10
|
-
|
|
11
|
-
ext_draw([x, y,
|
|
12
|
-
x + size, y,
|
|
13
|
-
x + size, y + size,
|
|
14
|
-
x, y + size,
|
|
15
|
-
color[0], color[1], color[2], color[3]])
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
end
|
data/lib/ruby2d/pixmap.rb
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
# Ruby2D::Pixmap
|
|
4
|
-
|
|
5
|
-
module Ruby2D
|
|
6
|
-
# Error when failed to load an image
|
|
7
|
-
class InvalidImageFileError < Ruby2D::Error
|
|
8
|
-
def initialize(file_path)
|
|
9
|
-
super("Failed to load image file: #{file_path}")
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
# Error finding image file
|
|
14
|
-
class UnknownImageFileError < Ruby2D::Error
|
|
15
|
-
def initialize(file_path)
|
|
16
|
-
super "Cannot find image file `#{file_path}`"
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
#
|
|
21
|
-
# A pixmap represents an image made up of pixel data of fixed width and height.
|
|
22
|
-
class Pixmap
|
|
23
|
-
attr_reader :width, :height, :path
|
|
24
|
-
|
|
25
|
-
def initialize(file_path)
|
|
26
|
-
file_path = file_path.to_s
|
|
27
|
-
raise UnknownImageFileError, file_path unless File.exist? file_path
|
|
28
|
-
|
|
29
|
-
ext_load_pixmap(file_path)
|
|
30
|
-
raise InvalidImageFileError, file_path unless @ext_pixel_data
|
|
31
|
-
|
|
32
|
-
@path = file_path
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
def texture
|
|
36
|
-
@texture ||= Texture.new(@ext_pixel_data, @width, @height)
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
end
|
data/lib/ruby2d/pixmap_atlas.rb
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
# Ruby2D::PixmapAtlas
|
|
4
|
-
|
|
5
|
-
module Ruby2D
|
|
6
|
-
#
|
|
7
|
-
# A pixmap is a 2D grid of pixel data of fixed width and height. A pixmap atlas
|
|
8
|
-
# is a dictionary of named pixmaps where each named pixmap is loaded once and can be re-used
|
|
9
|
-
# multiple times without the overhead of repeated loading and multiple copies.
|
|
10
|
-
class PixmapAtlas
|
|
11
|
-
def initialize
|
|
12
|
-
@atlas = {} # empty map
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
# Empty the atlas, eventually releasing all the loaded
|
|
16
|
-
# pixmaps (except for any that are referenced elsewhere)
|
|
17
|
-
def clear
|
|
18
|
-
@atlas.clear
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
# Find a previosly loaded Pixmap in the atlas by name
|
|
22
|
-
#
|
|
23
|
-
# @param [String] name
|
|
24
|
-
# @return [Pixmap, nil]
|
|
25
|
-
def [](name)
|
|
26
|
-
@atlas[name]
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
# Get the number of Pixmaps in the atlas
|
|
30
|
-
def count
|
|
31
|
-
@atlas.count
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
# Iterate through each Pixmap in the atlas
|
|
35
|
-
def each(&block)
|
|
36
|
-
@atlas.each(&block)
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
# Load a pixmap from an image +file_path+ and store it +as+ named for later lookup.
|
|
40
|
-
#
|
|
41
|
-
# @param [String] file_path The path to the image file to load as a +Pixmap+
|
|
42
|
-
# @param [String] as The name to associated with the Pixmap; if +nil+ then +file_path+ is used +as+ the name
|
|
43
|
-
#
|
|
44
|
-
# @raise [Pixmap::InvalidImageFileError] if the image file cannot be loaded
|
|
45
|
-
# @return [Pixmap] the new (or existing) Pixmap
|
|
46
|
-
def load_and_keep_image(file_path, as: nil)
|
|
47
|
-
name = as || file_path
|
|
48
|
-
if @atlas.member? name
|
|
49
|
-
@atlas[name]
|
|
50
|
-
else
|
|
51
|
-
pixmap = Pixmap.new file_path
|
|
52
|
-
@atlas[name] = pixmap
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
data/lib/ruby2d/sound.rb
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
# Ruby2D::Sound
|
|
4
|
-
|
|
5
|
-
module Ruby2D
|
|
6
|
-
# Sounds are intended to be short samples, played without interruption, like an effect.
|
|
7
|
-
class Sound
|
|
8
|
-
attr_reader :path
|
|
9
|
-
attr_accessor :loop, :data
|
|
10
|
-
|
|
11
|
-
#
|
|
12
|
-
# Load a sound from a file
|
|
13
|
-
# @param [String] path File to load the sound from
|
|
14
|
-
# @param [true, false] loop If +true+ playback will loop automatically, default is +false+
|
|
15
|
-
# @raise [Error] if file cannot be found or music could not be successfully loaded.
|
|
16
|
-
def initialize(path, loop: false)
|
|
17
|
-
raise Error, "Cannot find audio file `#{path}`" unless File.exist? path
|
|
18
|
-
|
|
19
|
-
@path = path
|
|
20
|
-
@loop = loop
|
|
21
|
-
raise Error, "Sound `#{@path}` cannot be created" unless ext_init(@path)
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
# Play the sound
|
|
25
|
-
def play
|
|
26
|
-
ext_play
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
# Stop the sound
|
|
30
|
-
def stop
|
|
31
|
-
ext_stop
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
# Returns the length in seconds
|
|
35
|
-
def length
|
|
36
|
-
ext_length
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
# Get the volume of the sound
|
|
40
|
-
def volume
|
|
41
|
-
ext_get_volume
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
# Set the volume of the sound
|
|
45
|
-
def volume=(volume)
|
|
46
|
-
# Clamp value to between 0-100
|
|
47
|
-
ext_set_volume(volume.clamp(0, 100))
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
# Get the volume of the sound mixer
|
|
51
|
-
def self.mix_volume
|
|
52
|
-
ext_get_mix_volume
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
# Set the volume of the sound mixer
|
|
56
|
-
def self.mix_volume=(volume)
|
|
57
|
-
# Clamp value to between 0-100
|
|
58
|
-
ext_set_mix_volume(volume.clamp(0, 100))
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
end
|
data/lib/ruby2d/texture.rb
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
# Ruby2D::Texture
|
|
4
|
-
|
|
5
|
-
module Ruby2D
|
|
6
|
-
# This internal class is used to hold raw pixel data which in turn is used to
|
|
7
|
-
# render textures via openGL rendering code.
|
|
8
|
-
class Texture
|
|
9
|
-
attr_reader :width, :height, :texture_id
|
|
10
|
-
|
|
11
|
-
WHITE_OPAQUE_AR = [1.0, 1.0, 1.0, 1.0].freeze
|
|
12
|
-
|
|
13
|
-
def initialize(pixel_data, width, height)
|
|
14
|
-
@pixel_data = pixel_data
|
|
15
|
-
@width = width
|
|
16
|
-
@height = height
|
|
17
|
-
@texture_id = 0
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
# Draw the texture
|
|
21
|
-
# @param coordinates [Array(x1, y1, x2, y2, x3, y3, x4, y4)] Destination coordinates
|
|
22
|
-
# @param texture_coordinates [Array(tx1, ty1, tx2, ty2, tx3, ty3, tx1, ty3)] Source (texture) coordinates
|
|
23
|
-
# @param color [Ruby2D::Color] Tint/blend the texture when it's drawn
|
|
24
|
-
def draw(coordinates, texture_coordinates, color = nil)
|
|
25
|
-
if @texture_id.zero?
|
|
26
|
-
@texture_id = ext_create(@pixel_data, @width, @height)
|
|
27
|
-
@pixel_data = nil
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
color = color.nil? ? WHITE_OPAQUE_AR : [color.r, color.g, color.b, color.a]
|
|
31
|
-
ext_draw(coordinates, texture_coordinates, color, @texture_id)
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def delete
|
|
35
|
-
ext_delete(@texture_id)
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
end
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|