ruby2d 0.12.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 -428
- data/assets/app.icns +0 -0
- 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
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
# Ruby2D::Window::ClassMethods
|
|
2
|
+
|
|
3
|
+
module Ruby2D
|
|
4
|
+
class Window
|
|
5
|
+
# Class-level accessors that delegate to the DSL window instance
|
|
6
|
+
module ClassMethods
|
|
7
|
+
# Get the current window instance
|
|
8
|
+
def current
|
|
9
|
+
DSL.window
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# Get the window title
|
|
13
|
+
def title
|
|
14
|
+
DSL.window.title
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# Get the background color
|
|
18
|
+
def background
|
|
19
|
+
DSL.window.background
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# Get the window width
|
|
23
|
+
def width
|
|
24
|
+
DSL.window.width
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Get the window height
|
|
28
|
+
def height
|
|
29
|
+
DSL.window.height
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# Get the viewport width
|
|
33
|
+
def viewport_width
|
|
34
|
+
DSL.window.viewport_width
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# Get the viewport height
|
|
38
|
+
def viewport_height
|
|
39
|
+
DSL.window.viewport_height
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# Get the viewport scaling mode
|
|
43
|
+
def viewport_mode
|
|
44
|
+
DSL.window.viewport_mode
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# Get the display width
|
|
48
|
+
def display_width
|
|
49
|
+
DSL.window.display_width
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# Get the display height
|
|
53
|
+
def display_height
|
|
54
|
+
DSL.window.display_height
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# Get the display width in physical pixels
|
|
58
|
+
def display_pixel_width
|
|
59
|
+
DSL.window.display_pixel_width
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# Get the display height in physical pixels
|
|
63
|
+
def display_pixel_height
|
|
64
|
+
DSL.window.display_pixel_height
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# Get whether the window is resizable
|
|
68
|
+
def resizable
|
|
69
|
+
DSL.window.resizable
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
# Get whether high DPI mode is enabled
|
|
73
|
+
def highdpi
|
|
74
|
+
DSL.window.highdpi
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
# Get the pixel scale
|
|
78
|
+
def pixel_scale
|
|
79
|
+
DSL.window.pixel_scale
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
# Get the total number of rendered frames
|
|
83
|
+
def frames
|
|
84
|
+
DSL.window.frames
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
# Get the current frames per second
|
|
88
|
+
def fps
|
|
89
|
+
DSL.window.fps
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
# Get the most recent frame's delta time, in seconds (clamped to 0.1s).
|
|
93
|
+
# The same value passed to an `update do |dt|` block; the time source
|
|
94
|
+
# every animation advances on.
|
|
95
|
+
def delta_time
|
|
96
|
+
DSL.window.delta_time
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
# Get the FPS cap
|
|
100
|
+
def fps_cap
|
|
101
|
+
DSL.window.fps_cap
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
# Get the mouse x position
|
|
105
|
+
def mouse_x
|
|
106
|
+
DSL.window.mouse_x
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
# Get the mouse y position
|
|
110
|
+
def mouse_y
|
|
111
|
+
DSL.window.mouse_y
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
# Get the mouse position as [x, y]
|
|
115
|
+
def mouse_position
|
|
116
|
+
DSL.window.mouse_position
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
# Get whether diagnostics are enabled
|
|
120
|
+
def diagnostics
|
|
121
|
+
DSL.window.diagnostics
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
# Get whether FPS display is enabled
|
|
125
|
+
def show_fps
|
|
126
|
+
DSL.window.show_fps
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
# Take a screenshot, saving to `path` (or a timestamped file if omitted)
|
|
130
|
+
def screenshot(path = nil)
|
|
131
|
+
DSL.window.screenshot(path)
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
# Get a window attribute by name
|
|
135
|
+
def get(sym)
|
|
136
|
+
DSL.window.get(sym)
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
# Set window attributes
|
|
140
|
+
def set(opts)
|
|
141
|
+
DSL.window.set(opts)
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
# Register an event handler
|
|
145
|
+
def on(event = nil, **filters, &proc)
|
|
146
|
+
DSL.window.on(event, **filters, &proc)
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
# Remove an event handler
|
|
150
|
+
def off(event_descriptor)
|
|
151
|
+
DSL.window.off(event_descriptor)
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
# Add an object to the window
|
|
155
|
+
def add(object)
|
|
156
|
+
DSL.window.add(object)
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
# Remove an object from the window
|
|
160
|
+
def remove(object)
|
|
161
|
+
DSL.window.remove(object)
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
# Register an interactive object
|
|
165
|
+
def register_interactive(object)
|
|
166
|
+
DSL.window.register_interactive(object)
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
# Unregister an interactive object
|
|
170
|
+
def unregister_interactive(object)
|
|
171
|
+
DSL.window.unregister_interactive(object)
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
# Clear all objects from the window
|
|
175
|
+
def clear
|
|
176
|
+
DSL.window.clear
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
# Set the update callback
|
|
180
|
+
def update(&proc)
|
|
181
|
+
DSL.window.update(&proc)
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
# Set the render callback
|
|
185
|
+
def render(&proc)
|
|
186
|
+
DSL.window.render(&proc)
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
# Show the window
|
|
190
|
+
def show
|
|
191
|
+
DSL.window.show
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
# Get the current cursor state
|
|
195
|
+
def cursor
|
|
196
|
+
DSL.window.cursor
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
# Set the cursor: `:visible`, `:hidden`, or a system cursor name
|
|
200
|
+
def cursor=(name)
|
|
201
|
+
DSL.window.cursor = name
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
# Close the window
|
|
205
|
+
def close
|
|
206
|
+
DSL.window.close
|
|
207
|
+
end
|
|
208
|
+
|
|
209
|
+
# Check if the window is ready for rendering
|
|
210
|
+
def render_ready_check
|
|
211
|
+
return if shown?
|
|
212
|
+
|
|
213
|
+
raise Error,
|
|
214
|
+
'Attempting to draw before the window is ready. Please put calls to render() inside of a render block.'
|
|
215
|
+
end
|
|
216
|
+
end
|
|
217
|
+
end
|
|
218
|
+
end
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# Ruby2D::Window::GamepadEvents
|
|
2
|
+
|
|
3
|
+
module Ruby2D
|
|
4
|
+
class Window
|
|
5
|
+
# Multi-gamepad input handling. Owns the `gamepads` collection and the
|
|
6
|
+
# callback the C extension calls for every SDL gamepad event. Holds no
|
|
7
|
+
# ambient single-pad state — every event carries the `Gamepad` it came
|
|
8
|
+
# from, and polling lives on each `Gamepad` instance.
|
|
9
|
+
module GamepadEvents
|
|
10
|
+
# Default location for the user's gamepad mappings file. Loaded
|
|
11
|
+
# automatically from `show` if it exists.
|
|
12
|
+
DEFAULT_GAMEPAD_MAPPINGS_PATH = "#{File.expand_path('~')}/.ruby2d/gamepads.txt".freeze
|
|
13
|
+
|
|
14
|
+
# Internal dispatch structs for filter matching. Never exposed to user
|
|
15
|
+
# code — handlers receive unpacked args (gamepad / button / axis / value),
|
|
16
|
+
# not the struct.
|
|
17
|
+
GamepadConnectData = Struct.new(:gamepad) do
|
|
18
|
+
def gamepad?(other) = gamepad.equal?(other)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
GamepadButtonData = Struct.new(:gamepad, :button) do
|
|
22
|
+
def gamepad?(other) = gamepad.equal?(other)
|
|
23
|
+
def button?(name) = button == name
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
GamepadAxisData = Struct.new(:gamepad, :axis, :value) do
|
|
27
|
+
def gamepad?(other) = gamepad.equal?(other)
|
|
28
|
+
def axis?(name) = axis == name
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# Connected gamepads in connect order. Stable: index 0 is the
|
|
32
|
+
# first-connected pad still present.
|
|
33
|
+
def gamepads
|
|
34
|
+
@gamepads
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# Load gamepad mappings from a file or string. Smart-parses the
|
|
38
|
+
# argument: if it points at an existing file, loads it via
|
|
39
|
+
# `SDL_AddGamepadMappingsFromFile`; otherwise treats it as a single
|
|
40
|
+
# mapping string and forwards to `SDL_AddGamepadMapping`.
|
|
41
|
+
def add_gamepad_mapping(path_or_string)
|
|
42
|
+
if File.file?(path_or_string)
|
|
43
|
+
Ext.window_load_gamepad_mappings_file(self, path_or_string)
|
|
44
|
+
else
|
|
45
|
+
Ext.window_add_gamepad_mapping(self, path_or_string)
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# Auto-load mappings from the default user file. Called from `show`.
|
|
50
|
+
def load_default_gamepad_mappings
|
|
51
|
+
return unless File.exist?(DEFAULT_GAMEPAD_MAPPINGS_PATH)
|
|
52
|
+
|
|
53
|
+
Ext.window_load_gamepad_mappings_file(self, DEFAULT_GAMEPAD_MAPPINGS_PATH)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# Called from C for every gamepad event. Type is one of:
|
|
57
|
+
# :connect, :disconnect, :button_down, :button_held, :button_up, :axis.
|
|
58
|
+
# `data` is the button name (button events), axis name (axis events),
|
|
59
|
+
# or nil (connect/disconnect). `value` is the dead-zone-applied axis
|
|
60
|
+
# value, or nil. `name` is the gamepad's display name on connect/
|
|
61
|
+
# disconnect, otherwise nil.
|
|
62
|
+
def gamepad_callback(which, type, data, value, name = nil)
|
|
63
|
+
case type
|
|
64
|
+
when :connect
|
|
65
|
+
handle_gamepad_connect(which, name)
|
|
66
|
+
when :disconnect
|
|
67
|
+
handle_gamepad_disconnect(which)
|
|
68
|
+
when :button_down
|
|
69
|
+
handle_gamepad_button_down(which, data)
|
|
70
|
+
when :button_held
|
|
71
|
+
handle_gamepad_button_held(which, data)
|
|
72
|
+
when :button_up
|
|
73
|
+
handle_gamepad_button_up(which, data)
|
|
74
|
+
when :axis
|
|
75
|
+
handle_gamepad_axis(which, data, value)
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def init_gamepad_event_stores
|
|
80
|
+
@gamepads = []
|
|
81
|
+
@gamepads_by_id = {}
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def clear_gamepad_frame_state
|
|
85
|
+
@gamepads.each(&:_clear_frame_state)
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
private
|
|
89
|
+
|
|
90
|
+
def handle_gamepad_connect(id, name)
|
|
91
|
+
return if @gamepads_by_id.key?(id)
|
|
92
|
+
|
|
93
|
+
pad = Gamepad.new(self, id, name)
|
|
94
|
+
@gamepads << pad
|
|
95
|
+
@gamepads_by_id[id] = pad
|
|
96
|
+
|
|
97
|
+
fire_event_handlers(:gamepad_connect) { GamepadConnectData.new(pad) }
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
def handle_gamepad_disconnect(id)
|
|
101
|
+
pad = @gamepads_by_id.delete(id)
|
|
102
|
+
return unless pad
|
|
103
|
+
|
|
104
|
+
@gamepads.delete(pad)
|
|
105
|
+
pad._disconnect
|
|
106
|
+
|
|
107
|
+
fire_event_handlers(:gamepad_disconnect) { GamepadConnectData.new(pad) }
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
def handle_gamepad_button_down(id, button)
|
|
111
|
+
pad = @gamepads_by_id[id] or return
|
|
112
|
+
pad._apply_button_down(button)
|
|
113
|
+
fire_event_handlers(:gamepad_button_down) { GamepadButtonData.new(pad, button) }
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
def handle_gamepad_button_held(id, button)
|
|
117
|
+
pad = @gamepads_by_id[id] or return
|
|
118
|
+
pad._apply_button_held(button)
|
|
119
|
+
fire_event_handlers(:gamepad_button_held) { GamepadButtonData.new(pad, button) }
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
def handle_gamepad_button_up(id, button)
|
|
123
|
+
pad = @gamepads_by_id[id] or return
|
|
124
|
+
pad._apply_button_up(button)
|
|
125
|
+
fire_event_handlers(:gamepad_button_up) { GamepadButtonData.new(pad, button) }
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
# Suppress the event when the dead-zoned value didn't change since the
|
|
129
|
+
# last event for that axis — avoids spamming handlers with motion
|
|
130
|
+
# entirely inside the dead zone. `_apply_axis` returns the new value
|
|
131
|
+
# when it changed, or nil otherwise.
|
|
132
|
+
def handle_gamepad_axis(id, axis, raw_value)
|
|
133
|
+
pad = @gamepads_by_id[id] or return
|
|
134
|
+
new_value = pad._apply_axis(axis, raw_value)
|
|
135
|
+
return if new_value.nil?
|
|
136
|
+
|
|
137
|
+
fire_event_handlers(:gamepad_axis) { GamepadAxisData.new(pad, axis, new_value) }
|
|
138
|
+
end
|
|
139
|
+
end
|
|
140
|
+
end
|
|
141
|
+
end
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Ruby2D::Window::KeyEvents
|
|
2
|
+
|
|
3
|
+
module Ruby2D
|
|
4
|
+
class Window
|
|
5
|
+
# Keyboard input event handling
|
|
6
|
+
module KeyEvents
|
|
7
|
+
# Key down event method for class pattern
|
|
8
|
+
def key_pressed?(key)
|
|
9
|
+
@keys_down.include? key
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# Key held event method for class pattern
|
|
13
|
+
def key_held?(key)
|
|
14
|
+
@keys_held.include? key
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# Key up event method for class pattern
|
|
18
|
+
def key_released?(key)
|
|
19
|
+
@keys_up.include? key
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# Key callback method. `key` arrives already normalized (lowercased):
|
|
23
|
+
# from `dispatch_events` via the cached scancode-name table, or from a
|
|
24
|
+
# direct caller passing a lowercase key name.
|
|
25
|
+
def key_callback(type, key)
|
|
26
|
+
# All key events
|
|
27
|
+
fire_event_handlers(:key) { KeyEvent.new(type, key) }
|
|
28
|
+
|
|
29
|
+
case type
|
|
30
|
+
# When key is pressed, fired once
|
|
31
|
+
when :down
|
|
32
|
+
handle_key_down type, key
|
|
33
|
+
# When key is being held down, fired every frame
|
|
34
|
+
when :held
|
|
35
|
+
handle_key_held type, key
|
|
36
|
+
# When key released, fired once
|
|
37
|
+
when :up
|
|
38
|
+
handle_key_up type, key
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
private
|
|
43
|
+
|
|
44
|
+
def handle_key_down(type, key)
|
|
45
|
+
close if @close_on_esc && key == 'escape'
|
|
46
|
+
|
|
47
|
+
@keys_down << key unless @keys_down.include? key
|
|
48
|
+
|
|
49
|
+
fire_event_handlers(:key_down) { KeyEvent.new(type, key) }
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def handle_key_held(type, key)
|
|
53
|
+
@keys_held << key unless @keys_held.include? key
|
|
54
|
+
|
|
55
|
+
fire_event_handlers(:key_held) { KeyEvent.new(type, key) }
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def handle_key_up(type, key)
|
|
59
|
+
@keys_up << key unless @keys_up.include? key
|
|
60
|
+
|
|
61
|
+
fire_event_handlers(:key_up) { KeyEvent.new(type, key) }
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def init_key_event_stores
|
|
65
|
+
# Event stores for class pattern
|
|
66
|
+
@keys_down = []
|
|
67
|
+
@keys_held = []
|
|
68
|
+
@keys_up = []
|
|
69
|
+
# Scancode → frozen lowercased name, filled lazily by `key_name`
|
|
70
|
+
@key_names = []
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# Ruby2D::Window::MouseEvents
|
|
2
|
+
|
|
3
|
+
module Ruby2D
|
|
4
|
+
class Window
|
|
5
|
+
# Mouse input event handling
|
|
6
|
+
module MouseEvents
|
|
7
|
+
# Mouse down event method for class pattern
|
|
8
|
+
def mouse_pressed?(btn)
|
|
9
|
+
@mouse_buttons_down.include? btn
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# Mouse up event method for class pattern
|
|
13
|
+
def mouse_released?(btn)
|
|
14
|
+
@mouse_buttons_up.include? btn
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# Mouse held event method for class pattern
|
|
18
|
+
def mouse_held?(btn)
|
|
19
|
+
@mouse_buttons_held.include? btn
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# Current mouse position as a [x, y] pair, for the common case where
|
|
23
|
+
# both coordinates are needed together.
|
|
24
|
+
def mouse_position
|
|
25
|
+
[@mouse_x, @mouse_y]
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# True while the cursor is over the window. Toggles on :mouse_enter /
|
|
29
|
+
# :mouse_leave; starts false until SDL reports the first enter event.
|
|
30
|
+
def mouse_inside?
|
|
31
|
+
@mouse_inside
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Mouse scroll event method for class pattern
|
|
35
|
+
def mouse_scrolled?
|
|
36
|
+
@mouse_scroll_event
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# Get the scroll direction
|
|
40
|
+
def mouse_scroll_direction
|
|
41
|
+
@mouse_scroll_direction
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# Get the scroll delta x
|
|
45
|
+
def mouse_scroll_delta_x
|
|
46
|
+
@mouse_scroll_delta_x
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# Get the scroll delta y
|
|
50
|
+
def mouse_scroll_delta_y
|
|
51
|
+
@mouse_scroll_delta_y
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# Mouse move event method for class pattern
|
|
55
|
+
def mouse_moved?
|
|
56
|
+
@mouse_move_event
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# Get the mouse move delta x
|
|
60
|
+
def mouse_move_delta_x
|
|
61
|
+
@mouse_move_delta_x
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# Get the mouse move delta y
|
|
65
|
+
def mouse_move_delta_y
|
|
66
|
+
@mouse_move_delta_y
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# Mouse callback method, called by the native and web extentions
|
|
70
|
+
def mouse_callback(type, button, direction, x, y, delta_x, delta_y)
|
|
71
|
+
# All mouse events
|
|
72
|
+
fire_event_handlers(:mouse) { MouseEvent.new(type, button, direction, x, y, delta_x, delta_y) }
|
|
73
|
+
|
|
74
|
+
case type
|
|
75
|
+
# When mouse button pressed
|
|
76
|
+
when :down
|
|
77
|
+
handle_mouse_down type, button, x, y
|
|
78
|
+
# When mouse button released
|
|
79
|
+
when :up
|
|
80
|
+
handle_mouse_up type, button, x, y
|
|
81
|
+
# When mouse button is being held down, fired every frame
|
|
82
|
+
when :held
|
|
83
|
+
handle_mouse_held type, button, x, y
|
|
84
|
+
# When mouse scrolling, wheel or trackpad
|
|
85
|
+
when :scroll
|
|
86
|
+
handle_mouse_scroll type, direction, delta_x, delta_y
|
|
87
|
+
# When mouse motion / movement
|
|
88
|
+
when :move
|
|
89
|
+
handle_mouse_move type, x, y, delta_x, delta_y
|
|
90
|
+
# When cursor enters the window
|
|
91
|
+
when :enter
|
|
92
|
+
handle_mouse_enter type
|
|
93
|
+
# When cursor leaves the window
|
|
94
|
+
when :leave
|
|
95
|
+
handle_mouse_leave type
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
private
|
|
100
|
+
|
|
101
|
+
def handle_mouse_down(type, button, x, y)
|
|
102
|
+
@mouse_buttons_down << button unless @mouse_buttons_down.include? button
|
|
103
|
+
|
|
104
|
+
fire_event_handlers(:mouse_down) { MouseEvent.new(type, button, nil, x, y, nil, nil) }
|
|
105
|
+
|
|
106
|
+
dispatch_object_mouse_down(button, x, y)
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
def handle_mouse_up(type, button, x, y)
|
|
110
|
+
@mouse_buttons_up << button unless @mouse_buttons_up.include? button
|
|
111
|
+
|
|
112
|
+
fire_event_handlers(:mouse_up) { MouseEvent.new(type, button, nil, x, y, nil, nil) }
|
|
113
|
+
|
|
114
|
+
dispatch_object_mouse_up(button, x, y)
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
def handle_mouse_held(type, button, x, y)
|
|
118
|
+
@mouse_buttons_held << button unless @mouse_buttons_held.include? button
|
|
119
|
+
|
|
120
|
+
fire_event_handlers(:mouse_held) { MouseEvent.new(type, button, nil, x, y, nil, nil) }
|
|
121
|
+
|
|
122
|
+
dispatch_object_mouse_held(button, x, y)
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
def handle_mouse_scroll(type, direction, delta_x, delta_y)
|
|
126
|
+
@mouse_scroll_event = true
|
|
127
|
+
@mouse_scroll_direction = direction
|
|
128
|
+
@mouse_scroll_delta_x = delta_x
|
|
129
|
+
@mouse_scroll_delta_y = delta_y
|
|
130
|
+
|
|
131
|
+
fire_event_handlers(:mouse_scroll) { MouseEvent.new(type, nil, direction, nil, nil, delta_x, delta_y) }
|
|
132
|
+
|
|
133
|
+
dispatch_object_mouse_scroll(@mouse_x, @mouse_y, direction, delta_x, delta_y)
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
def handle_mouse_move(type, x, y, delta_x, delta_y)
|
|
137
|
+
@mouse_move_event = true
|
|
138
|
+
@mouse_move_delta_x = delta_x
|
|
139
|
+
@mouse_move_delta_y = delta_y
|
|
140
|
+
|
|
141
|
+
fire_event_handlers(:mouse_move) { MouseEvent.new(type, nil, nil, x, y, delta_x, delta_y) }
|
|
142
|
+
|
|
143
|
+
dispatch_object_mouse_move(x, y, delta_x, delta_y)
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
def handle_mouse_enter(type)
|
|
147
|
+
@mouse_inside = true
|
|
148
|
+
fire_event_handlers(:mouse_enter) { MouseEvent.new(type, nil, nil, nil, nil, nil, nil) }
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
def handle_mouse_leave(type)
|
|
152
|
+
@mouse_inside = false
|
|
153
|
+
fire_event_handlers(:mouse_leave) { MouseEvent.new(type, nil, nil, nil, nil, nil, nil) }
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
def init_mouse_event_stores
|
|
157
|
+
@mouse_buttons_down = []
|
|
158
|
+
@mouse_buttons_up = []
|
|
159
|
+
@mouse_buttons_held = []
|
|
160
|
+
@mouse_scroll_event = false
|
|
161
|
+
@mouse_scroll_direction = nil
|
|
162
|
+
@mouse_scroll_delta_x = 0
|
|
163
|
+
@mouse_scroll_delta_y = 0
|
|
164
|
+
@mouse_move_event = false
|
|
165
|
+
@mouse_move_delta_x = 0
|
|
166
|
+
@mouse_move_delta_y = 0
|
|
167
|
+
@mouse_inside = false
|
|
168
|
+
end
|
|
169
|
+
end
|
|
170
|
+
end
|
|
171
|
+
end
|