melonjs 17.4.0 → 18.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.
- package/{dist/types → build}/application/application.d.ts +9 -10
- package/build/application/application.d.ts.map +1 -0
- package/build/application/defaultApplicationSettings.d.ts +18 -0
- package/build/application/defaultApplicationSettings.d.ts.map +1 -0
- package/{dist/types → build}/application/header.d.ts +1 -0
- package/build/application/header.d.ts.map +1 -0
- package/{dist/types → build}/application/resize.d.ts +1 -0
- package/build/application/resize.d.ts.map +1 -0
- package/build/application/scaleMethods.d.ts +44 -0
- package/build/application/scaleMethods.d.ts.map +1 -0
- package/build/application/settings.d.ts +85 -0
- package/build/application/settings.d.ts.map +1 -0
- package/{dist/types → build}/audio/audio.d.ts +35 -58
- package/build/audio/audio.d.ts.map +1 -0
- package/{dist/types → build}/camera/camera2d.d.ts +38 -76
- package/build/camera/camera2d.d.ts.map +1 -0
- package/build/const.d.ts +14 -0
- package/build/const.d.ts.map +1 -0
- package/build/geometries/earcut.d.ts +3 -0
- package/build/geometries/earcut.d.ts.map +1 -0
- package/build/geometries/ellipse.d.ts +117 -0
- package/build/geometries/ellipse.d.ts.map +1 -0
- package/build/geometries/line.d.ts +39 -0
- package/build/geometries/line.d.ts.map +1 -0
- package/build/geometries/observablePoint.d.ts +75 -0
- package/build/geometries/observablePoint.d.ts.map +1 -0
- package/{dist/types → build}/geometries/path2d.d.ts +8 -7
- package/build/geometries/path2d.d.ts.map +1 -0
- package/build/geometries/point.d.ts +44 -0
- package/build/geometries/point.d.ts.map +1 -0
- package/build/geometries/polygon.d.ts +182 -0
- package/build/geometries/polygon.d.ts.map +1 -0
- package/build/geometries/rectangle.d.ts +135 -0
- package/build/geometries/rectangle.d.ts.map +1 -0
- package/build/geometries/roundrect.d.ts +67 -0
- package/build/geometries/roundrect.d.ts.map +1 -0
- package/build/geometries/toarccanvas.d.ts +28 -0
- package/build/geometries/toarccanvas.d.ts.map +1 -0
- package/{dist/types → build}/index.d.ts +41 -45
- package/build/index.d.ts.map +1 -0
- package/build/index.js +28318 -0
- package/build/index.js.map +7 -0
- package/{dist/types → build}/input/gamepad.d.ts +3 -11
- package/build/input/gamepad.d.ts.map +1 -0
- package/{dist/types → build}/input/input.d.ts +4 -2
- package/build/input/input.d.ts.map +1 -0
- package/build/input/key.d.ts +105 -0
- package/build/input/key.d.ts.map +1 -0
- package/build/input/keyboard.d.ts +72 -0
- package/build/input/keyboard.d.ts.map +1 -0
- package/build/input/pointer.d.ts +180 -0
- package/build/input/pointer.d.ts.map +1 -0
- package/{dist/types → build}/input/pointerevent.d.ts +17 -16
- package/build/input/pointerevent.d.ts.map +1 -0
- package/{dist/types → build}/lang/console.d.ts +1 -0
- package/build/lang/console.d.ts.map +1 -0
- package/build/lang/deprecated.d.ts +24 -0
- package/build/lang/deprecated.d.ts.map +1 -0
- package/{dist/types → build}/level/level.d.ts +7 -7
- package/build/level/level.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/TMXGroup.d.ts +2 -2
- package/build/level/tiled/TMXGroup.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/TMXLayer.d.ts +4 -4
- package/build/level/tiled/TMXLayer.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/TMXObject.d.ts +3 -3
- package/build/level/tiled/TMXObject.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/TMXTile.d.ts +4 -5
- package/build/level/tiled/TMXTile.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/TMXTileMap.d.ts +4 -4
- package/build/level/tiled/TMXTileMap.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/TMXTileset.d.ts +2 -2
- package/build/level/tiled/TMXTileset.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/TMXTilesetGroup.d.ts +1 -1
- package/build/level/tiled/TMXTilesetGroup.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/TMXUtils.d.ts +2 -1
- package/build/level/tiled/TMXUtils.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/constants.d.ts +1 -0
- package/build/level/tiled/constants.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/renderer/TMXHexagonalRenderer.d.ts +3 -4
- package/build/level/tiled/renderer/TMXHexagonalRenderer.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/renderer/TMXIsometricRenderer.d.ts +2 -3
- package/build/level/tiled/renderer/TMXIsometricRenderer.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/renderer/TMXOrthogonalRenderer.d.ts +1 -2
- package/build/level/tiled/renderer/TMXOrthogonalRenderer.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/renderer/TMXRenderer.d.ts +7 -7
- package/build/level/tiled/renderer/TMXRenderer.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/renderer/TMXStaggeredRenderer.d.ts +1 -2
- package/build/level/tiled/renderer/TMXStaggeredRenderer.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/renderer/autodetect.d.ts +4 -3
- package/build/level/tiled/renderer/autodetect.d.ts.map +1 -0
- package/build/loader/cache.d.ts +10 -0
- package/build/loader/cache.d.ts.map +1 -0
- package/{dist/types → build}/loader/loader.d.ts +19 -13
- package/build/loader/loader.d.ts.map +1 -0
- package/{dist/types → build}/loader/loadingscreen.d.ts +1 -0
- package/build/loader/loadingscreen.d.ts.map +1 -0
- package/{dist/types → build}/loader/parsers/binary.d.ts +2 -1
- package/build/loader/parsers/binary.d.ts.map +1 -0
- package/{dist/types → build}/loader/parsers/compressed_textures/compressed_image.d.ts +1 -0
- package/build/loader/parsers/compressed_textures/compressed_image.d.ts.map +1 -0
- package/build/loader/parsers/compressed_textures/parseDDS.d.ts +2 -0
- package/build/loader/parsers/compressed_textures/parseDDS.d.ts.map +1 -0
- package/build/loader/parsers/compressed_textures/parseKTX.d.ts +2 -0
- package/build/loader/parsers/compressed_textures/parseKTX.d.ts.map +1 -0
- package/build/loader/parsers/compressed_textures/parseKTX2.d.ts +2 -0
- package/build/loader/parsers/compressed_textures/parseKTX2.d.ts.map +1 -0
- package/build/loader/parsers/compressed_textures/parsePKM.d.ts +2 -0
- package/build/loader/parsers/compressed_textures/parsePKM.d.ts.map +1 -0
- package/build/loader/parsers/compressed_textures/parsePVR.d.ts +2 -0
- package/build/loader/parsers/compressed_textures/parsePVR.d.ts.map +1 -0
- package/{dist/types → build}/loader/parsers/fetchdata.d.ts +2 -1
- package/build/loader/parsers/fetchdata.d.ts.map +1 -0
- package/{dist/types → build}/loader/parsers/fontface.d.ts +2 -1
- package/build/loader/parsers/fontface.d.ts.map +1 -0
- package/{dist/types → build}/loader/parsers/image.d.ts +2 -1
- package/build/loader/parsers/image.d.ts.map +1 -0
- package/{dist/types → build}/loader/parsers/json.d.ts +2 -1
- package/build/loader/parsers/json.d.ts.map +1 -0
- package/{dist/types → build}/loader/parsers/script.d.ts +2 -1
- package/build/loader/parsers/script.d.ts.map +1 -0
- package/{dist/types → build}/loader/parsers/tmx.d.ts +2 -1
- package/build/loader/parsers/tmx.d.ts.map +1 -0
- package/{dist/types → build}/loader/parsers/video.d.ts +2 -1
- package/build/loader/parsers/video.d.ts.map +1 -0
- package/build/math/color.d.ts +192 -0
- package/build/math/color.d.ts.map +1 -0
- package/build/math/math.d.ts +128 -0
- package/build/math/math.d.ts.map +1 -0
- package/build/math/matrix2d.d.ts +163 -0
- package/build/math/matrix2d.d.ts.map +1 -0
- package/build/math/matrix3d.d.ts +188 -0
- package/build/math/matrix3d.d.ts.map +1 -0
- package/build/math/observableVector2d.d.ts +286 -0
- package/build/math/observableVector2d.d.ts.map +1 -0
- package/build/math/observableVector2d_old.d.ts +76 -0
- package/build/math/observableVector2d_old.d.ts.map +1 -0
- package/build/math/observableVector3d.d.ts +283 -0
- package/build/math/observableVector3d.d.ts.map +1 -0
- package/build/math/observableVector3d_old.d.ts +81 -0
- package/build/math/observableVector3d_old.d.ts.map +1 -0
- package/build/math/vector2d.d.ts +253 -0
- package/build/math/vector2d.d.ts.map +1 -0
- package/build/math/vector3d.d.ts +242 -0
- package/build/math/vector3d.d.ts.map +1 -0
- package/{dist/types → build}/particles/emitter.d.ts +7 -10
- package/build/particles/emitter.d.ts.map +1 -0
- package/build/particles/particle.d.ts +47 -0
- package/build/particles/particle.d.ts.map +1 -0
- package/{dist/types → build}/particles/settings.d.ts +1 -0
- package/build/particles/settings.d.ts.map +1 -0
- package/{dist/types → build}/physics/body.d.ts +27 -27
- package/build/physics/body.d.ts.map +1 -0
- package/build/physics/bounds.d.ts +192 -0
- package/build/physics/bounds.d.ts.map +1 -0
- package/{dist/types → build}/physics/collision.d.ts +5 -5
- package/build/physics/collision.d.ts.map +1 -0
- package/{dist/types → build}/physics/detector.d.ts +8 -6
- package/build/physics/detector.d.ts.map +1 -0
- package/{dist/types → build}/physics/quadtree.d.ts +5 -19
- package/build/physics/quadtree.d.ts.map +1 -0
- package/{dist/types → build}/physics/response.d.ts +46 -5
- package/build/physics/response.d.ts.map +1 -0
- package/{dist/types → build}/physics/sat.d.ts +3 -2
- package/build/physics/sat.d.ts.map +1 -0
- package/{dist/types → build}/physics/world.d.ts +5 -4
- package/build/physics/world.d.ts.map +1 -0
- package/{dist/types → build}/plugin/plugin.d.ts +8 -19
- package/build/plugin/plugin.d.ts.map +1 -0
- package/build/polyfill/console.d.ts +2 -0
- package/build/polyfill/console.d.ts.map +1 -0
- package/build/polyfill/index.d.ts +6 -0
- package/build/polyfill/index.d.ts.map +1 -0
- package/build/polyfill/roundrect.d.ts +2 -0
- package/build/polyfill/roundrect.d.ts.map +1 -0
- package/build/pool.d.ts +39 -0
- package/build/pool.d.ts.map +1 -0
- package/{dist/types → build}/renderable/collectable.d.ts +2 -2
- package/build/renderable/collectable.d.ts.map +1 -0
- package/{dist/types → build}/renderable/colorlayer.d.ts +6 -10
- package/build/renderable/colorlayer.d.ts.map +1 -0
- package/{dist/types → build}/renderable/container.d.ts +14 -15
- package/build/renderable/container.d.ts.map +1 -0
- package/{dist/types → build}/renderable/draggable.d.ts +5 -13
- package/build/renderable/draggable.d.ts.map +1 -0
- package/{dist/types → build}/renderable/dragndrop.d.ts +7 -21
- package/build/renderable/dragndrop.d.ts.map +1 -0
- package/{dist/types → build}/renderable/entity/entity.d.ts +12 -13
- package/build/renderable/entity/entity.d.ts.map +1 -0
- package/{dist/types → build}/renderable/imagelayer.d.ts +17 -9
- package/build/renderable/imagelayer.d.ts.map +1 -0
- package/build/renderable/light2d.d.ts +73 -0
- package/build/renderable/light2d.d.ts.map +1 -0
- package/{dist/types → build}/renderable/nineslicesprite.d.ts +3 -4
- package/build/renderable/nineslicesprite.d.ts.map +1 -0
- package/{dist/types → build}/renderable/renderable.d.ts +57 -60
- package/build/renderable/renderable.d.ts.map +1 -0
- package/{dist/types → build}/renderable/sprite.d.ts +28 -14
- package/build/renderable/sprite.d.ts.map +1 -0
- package/{dist/types → build}/renderable/text/bitmaptext.d.ts +6 -7
- package/build/renderable/text/bitmaptext.d.ts.map +1 -0
- package/build/renderable/text/bitmaptextdata.d.ts +17 -0
- package/build/renderable/text/bitmaptextdata.d.ts.map +1 -0
- package/{dist/types → build}/renderable/text/glyph.d.ts +15 -3
- package/build/renderable/text/glyph.d.ts.map +1 -0
- package/{dist/types → build}/renderable/text/text.d.ts +7 -16
- package/build/renderable/text/text.d.ts.map +1 -0
- package/{dist/types → build}/renderable/text/textmetrics.d.ts +8 -9
- package/build/renderable/text/textmetrics.d.ts.map +1 -0
- package/{dist/types → build}/renderable/text/textstyle.d.ts +1 -0
- package/build/renderable/text/textstyle.d.ts.map +1 -0
- package/{dist/types → build}/renderable/trigger.d.ts +18 -7
- package/build/renderable/trigger.d.ts.map +1 -0
- package/{dist/types → build}/renderable/ui/uibaseelement.d.ts +7 -7
- package/build/renderable/ui/uibaseelement.d.ts.map +1 -0
- package/{dist/types → build}/renderable/ui/uispriteelement.d.ts +4 -6
- package/build/renderable/ui/uispriteelement.d.ts.map +1 -0
- package/{dist/types → build}/renderable/ui/uitextbutton.d.ts +17 -4
- package/build/renderable/ui/uitextbutton.d.ts.map +1 -0
- package/{dist/types → build}/state/stage.d.ts +3 -3
- package/build/state/stage.d.ts.map +1 -0
- package/{dist/types → build}/state/state.d.ts +10 -9
- package/build/state/state.d.ts.map +1 -0
- package/{dist/types → build}/system/device.d.ts +49 -80
- package/build/system/device.d.ts.map +1 -0
- package/build/system/dom.d.ts +2 -0
- package/build/system/dom.d.ts.map +1 -0
- package/{dist/types → build}/system/event.d.ts +124 -291
- package/build/system/event.d.ts.map +1 -0
- package/build/system/eventEmitter.d.ts +19 -0
- package/build/system/eventEmitter.d.ts.map +1 -0
- package/build/system/eventEmitter.spec.d.ts +2 -0
- package/build/system/eventEmitter.spec.d.ts.map +1 -0
- package/{dist/types/system/pooling.d.ts → build/system/legacy_pool.d.ts} +22 -7
- package/build/system/legacy_pool.d.ts.map +1 -0
- package/build/system/platform.d.ts +34 -0
- package/build/system/platform.d.ts.map +1 -0
- package/build/system/pool.d.ts +26 -0
- package/build/system/pool.d.ts.map +1 -0
- package/build/system/save.d.ts +3 -0
- package/build/system/save.d.ts.map +1 -0
- package/build/system/timer.d.ts +118 -0
- package/build/system/timer.d.ts.map +1 -0
- package/build/tweens/easing.d.ts +93 -0
- package/build/tweens/easing.d.ts.map +1 -0
- package/build/tweens/interpolation.d.ts +7 -0
- package/build/tweens/interpolation.d.ts.map +1 -0
- package/build/tweens/tween.d.ts +234 -0
- package/build/tweens/tween.d.ts.map +1 -0
- package/build/utils/agent.d.ts +16 -0
- package/build/utils/agent.d.ts.map +1 -0
- package/build/utils/array-multimap.d.ts +14 -0
- package/build/utils/array-multimap.d.ts.map +1 -0
- package/build/utils/array.d.ts +30 -0
- package/build/utils/array.d.ts.map +1 -0
- package/build/utils/file.d.ts +16 -0
- package/build/utils/file.d.ts.map +1 -0
- package/build/utils/function.d.ts +24 -0
- package/build/utils/function.d.ts.map +1 -0
- package/build/utils/semver.d.ts +2 -0
- package/build/utils/semver.d.ts.map +1 -0
- package/build/utils/string.d.ts +35 -0
- package/build/utils/string.d.ts.map +1 -0
- package/build/utils/types.d.ts +5 -0
- package/build/utils/types.d.ts.map +1 -0
- package/build/utils/utils.d.ts +49 -0
- package/build/utils/utils.d.ts.map +1 -0
- package/build/version.d.ts +5 -0
- package/build/version.d.ts.map +1 -0
- package/{dist/types → build}/video/canvas/canvas_renderer.d.ts +40 -32
- package/build/video/canvas/canvas_renderer.d.ts.map +1 -0
- package/{dist/types → build}/video/renderer.d.ts +36 -29
- package/build/video/renderer.d.ts.map +1 -0
- package/{dist/types → build}/video/rendertarget/canvasrendertarget.d.ts +8 -26
- package/build/video/rendertarget/canvasrendertarget.d.ts.map +1 -0
- package/{dist/types → build}/video/texture/atlas.d.ts +8 -8
- package/build/video/texture/atlas.d.ts.map +1 -0
- package/{dist/types → build}/video/texture/cache.d.ts +4 -3
- package/build/video/texture/cache.d.ts.map +1 -0
- package/{dist/types → build}/video/texture/parser/aseprite.d.ts +1 -0
- package/build/video/texture/parser/aseprite.d.ts.map +1 -0
- package/{dist/types → build}/video/texture/parser/spritesheet.d.ts +1 -0
- package/build/video/texture/parser/spritesheet.d.ts.map +1 -0
- package/{dist/types → build}/video/texture/parser/texturepacker.d.ts +1 -0
- package/build/video/texture/parser/texturepacker.d.ts.map +1 -0
- package/build/video/utils/autodetect.d.ts +8 -0
- package/build/video/utils/autodetect.d.ts.map +1 -0
- package/{dist/types → build}/video/video.d.ts +4 -3
- package/build/video/video.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/buffer/vertex.d.ts +5 -6
- package/build/video/webgl/buffer/vertex.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/compositors/compositor.d.ts +4 -4
- package/build/video/webgl/compositors/compositor.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/compositors/primitive_compositor.d.ts +4 -5
- package/build/video/webgl/compositors/primitive_compositor.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/compositors/quad_compositor.d.ts +4 -5
- package/build/video/webgl/compositors/quad_compositor.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/glshader.d.ts +2 -2
- package/build/video/webgl/glshader.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/utils/attributes.d.ts +1 -0
- package/build/video/webgl/utils/attributes.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/utils/precision.d.ts +1 -0
- package/build/video/webgl/utils/precision.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/utils/program.d.ts +1 -0
- package/build/video/webgl/utils/program.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/utils/string.d.ts +1 -0
- package/build/video/webgl/utils/string.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/utils/uniforms.d.ts +1 -0
- package/build/video/webgl/utils/uniforms.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/webgl_renderer.d.ts +37 -29
- package/build/video/webgl/webgl_renderer.d.ts.map +1 -0
- package/package.json +83 -104
- package/LICENSE.md +0 -21
- package/README.md +0 -223
- package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +0 -14
- package/dist/melonjs.mjs/_virtual/earcut.js +0 -10
- package/dist/melonjs.mjs/_virtual/howler.js +0 -10
- package/dist/melonjs.mjs/_virtual/index.js +0 -10
- package/dist/melonjs.mjs/_virtual/re.js +0 -10
- package/dist/melonjs.mjs/application/application.js +0 -443
- package/dist/melonjs.mjs/application/header.js +0 -40
- package/dist/melonjs.mjs/application/resize.js +0 -128
- package/dist/melonjs.mjs/application/settings.js +0 -70
- package/dist/melonjs.mjs/audio/audio.js +0 -623
- package/dist/melonjs.mjs/camera/camera2d.js +0 -737
- package/dist/melonjs.mjs/const.js +0 -32
- package/dist/melonjs.mjs/geometries/ellipse.js +0 -253
- package/dist/melonjs.mjs/geometries/line.js +0 -113
- package/dist/melonjs.mjs/geometries/path2d.js +0 -479
- package/dist/melonjs.mjs/geometries/point.js +0 -85
- package/dist/melonjs.mjs/geometries/poly.js +0 -441
- package/dist/melonjs.mjs/geometries/rectangle.js +0 -335
- package/dist/melonjs.mjs/geometries/roundrect.js +0 -165
- package/dist/melonjs.mjs/geometries/toarccanvas.js +0 -103
- package/dist/melonjs.mjs/index.js +0 -239
- package/dist/melonjs.mjs/input/gamepad.js +0 -495
- package/dist/melonjs.mjs/input/input.js +0 -26
- package/dist/melonjs.mjs/input/keyboard.js +0 -470
- package/dist/melonjs.mjs/input/pointer.js +0 -393
- package/dist/melonjs.mjs/input/pointerevent.js +0 -807
- package/dist/melonjs.mjs/lang/console.js +0 -44
- package/dist/melonjs.mjs/lang/deprecated.js +0 -200
- package/dist/melonjs.mjs/level/level.js +0 -298
- package/dist/melonjs.mjs/level/tiled/TMXGroup.js +0 -120
- package/dist/melonjs.mjs/level/tiled/TMXLayer.js +0 -432
- package/dist/melonjs.mjs/level/tiled/TMXObject.js +0 -295
- package/dist/melonjs.mjs/level/tiled/TMXTile.js +0 -177
- package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +0 -574
- package/dist/melonjs.mjs/level/tiled/TMXTileset.js +0 -292
- package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +0 -74
- package/dist/melonjs.mjs/level/tiled/TMXUtils.js +0 -417
- package/dist/melonjs.mjs/level/tiled/constants.js +0 -17
- package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +0 -503
- package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +0 -215
- package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +0 -155
- package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +0 -113
- package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +0 -107
- package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +0 -38
- package/dist/melonjs.mjs/loader/cache.js +0 -30
- package/dist/melonjs.mjs/loader/loader.js +0 -729
- package/dist/melonjs.mjs/loader/loadingscreen.js +0 -118
- package/dist/melonjs.mjs/loader/melonjs_logo.png.js +0 -10
- package/dist/melonjs.mjs/loader/parsers/binary.js +0 -42
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/compressed_image.js +0 -58
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/parseDDS.js +0 -13
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/parseKTX.js +0 -13
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/parseKTX2.js +0 -13
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/parsePKM.js +0 -13
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/parsePVR.js +0 -136
- package/dist/melonjs.mjs/loader/parsers/fetchdata.js +0 -62
- package/dist/melonjs.mjs/loader/parsers/fontface.js +0 -62
- package/dist/melonjs.mjs/loader/parsers/image.js +0 -129
- package/dist/melonjs.mjs/loader/parsers/json.js +0 -43
- package/dist/melonjs.mjs/loader/parsers/script.js +0 -46
- package/dist/melonjs.mjs/loader/parsers/tmx.js +0 -103
- package/dist/melonjs.mjs/loader/parsers/video.js +0 -99
- package/dist/melonjs.mjs/math/color.js +0 -635
- package/dist/melonjs.mjs/math/math.js +0 -221
- package/dist/melonjs.mjs/math/matrix2.js +0 -495
- package/dist/melonjs.mjs/math/matrix3.js +0 -628
- package/dist/melonjs.mjs/math/observable_vector2.js +0 -468
- package/dist/melonjs.mjs/math/observable_vector3.js +0 -564
- package/dist/melonjs.mjs/math/vector2.js +0 -431
- package/dist/melonjs.mjs/math/vector3.js +0 -473
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/arraymultimap.js +0 -45
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/multimap.js +0 -130
- package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +0 -694
- package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +0 -352
- package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +0 -12
- package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +0 -3246
- package/dist/melonjs.mjs/node_modules/semver/classes/comparator.js +0 -165
- package/dist/melonjs.mjs/node_modules/semver/classes/range.js +0 -565
- package/dist/melonjs.mjs/node_modules/semver/classes/semver.js +0 -317
- package/dist/melonjs.mjs/node_modules/semver/functions/clean.js +0 -17
- package/dist/melonjs.mjs/node_modules/semver/functions/cmp.js +0 -68
- package/dist/melonjs.mjs/node_modules/semver/functions/coerce.js +0 -73
- package/dist/melonjs.mjs/node_modules/semver/functions/compare-build.js +0 -18
- package/dist/melonjs.mjs/node_modules/semver/functions/compare-loose.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/compare.js +0 -16
- package/dist/melonjs.mjs/node_modules/semver/functions/diff.js +0 -76
- package/dist/melonjs.mjs/node_modules/semver/functions/eq.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/gt.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/gte.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/inc.js +0 -30
- package/dist/melonjs.mjs/node_modules/semver/functions/lt.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/lte.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/major.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/minor.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/neq.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/parse.js +0 -27
- package/dist/melonjs.mjs/node_modules/semver/functions/patch.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/prerelease.js +0 -17
- package/dist/melonjs.mjs/node_modules/semver/functions/rcompare.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/rsort.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/satisfies.js +0 -21
- package/dist/melonjs.mjs/node_modules/semver/functions/sort.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/valid.js +0 -17
- package/dist/melonjs.mjs/node_modules/semver/index.js +0 -140
- package/dist/melonjs.mjs/node_modules/semver/internal/constants.js +0 -44
- package/dist/melonjs.mjs/node_modules/semver/internal/debug.js +0 -18
- package/dist/melonjs.mjs/node_modules/semver/internal/identifiers.js +0 -32
- package/dist/melonjs.mjs/node_modules/semver/internal/lrucache.js +0 -49
- package/dist/melonjs.mjs/node_modules/semver/internal/parse-options.js +0 -24
- package/dist/melonjs.mjs/node_modules/semver/internal/re.js +0 -234
- package/dist/melonjs.mjs/node_modules/semver/ranges/gtr.js +0 -15
- package/dist/melonjs.mjs/node_modules/semver/ranges/intersects.js +0 -18
- package/dist/melonjs.mjs/node_modules/semver/ranges/ltr.js +0 -15
- package/dist/melonjs.mjs/node_modules/semver/ranges/max-satisfying.js +0 -37
- package/dist/melonjs.mjs/node_modules/semver/ranges/min-satisfying.js +0 -36
- package/dist/melonjs.mjs/node_modules/semver/ranges/min-version.js +0 -74
- package/dist/melonjs.mjs/node_modules/semver/ranges/outside.js +0 -98
- package/dist/melonjs.mjs/node_modules/semver/ranges/simplify.js +0 -59
- package/dist/melonjs.mjs/node_modules/semver/ranges/subset.js +0 -261
- package/dist/melonjs.mjs/node_modules/semver/ranges/to-comparators.js +0 -19
- package/dist/melonjs.mjs/node_modules/semver/ranges/valid.js +0 -22
- package/dist/melonjs.mjs/particles/emitter.js +0 -265
- package/dist/melonjs.mjs/particles/particle.js +0 -190
- package/dist/melonjs.mjs/particles/settings.js +0 -317
- package/dist/melonjs.mjs/physics/body.js +0 -717
- package/dist/melonjs.mjs/physics/bounds.js +0 -415
- package/dist/melonjs.mjs/physics/collision.js +0 -135
- package/dist/melonjs.mjs/physics/detector.js +0 -227
- package/dist/melonjs.mjs/physics/quadtree.js +0 -402
- package/dist/melonjs.mjs/physics/response.js +0 -57
- package/dist/melonjs.mjs/physics/sat.js +0 -492
- package/dist/melonjs.mjs/physics/world.js +0 -228
- package/dist/melonjs.mjs/plugin/plugin.js +0 -172
- package/dist/melonjs.mjs/renderable/collectable.js +0 -60
- package/dist/melonjs.mjs/renderable/colorlayer.js +0 -83
- package/dist/melonjs.mjs/renderable/container.js +0 -1016
- package/dist/melonjs.mjs/renderable/draggable.js +0 -121
- package/dist/melonjs.mjs/renderable/dragndrop.js +0 -119
- package/dist/melonjs.mjs/renderable/entity/entity.js +0 -263
- package/dist/melonjs.mjs/renderable/imagelayer.js +0 -293
- package/dist/melonjs.mjs/renderable/light2d.js +0 -172
- package/dist/melonjs.mjs/renderable/nineslicesprite.js +0 -248
- package/dist/melonjs.mjs/renderable/renderable.js +0 -878
- package/dist/melonjs.mjs/renderable/sprite.js +0 -700
- package/dist/melonjs.mjs/renderable/text/bitmaptext.js +0 -421
- package/dist/melonjs.mjs/renderable/text/bitmaptextdata.js +0 -195
- package/dist/melonjs.mjs/renderable/text/glyph.js +0 -65
- package/dist/melonjs.mjs/renderable/text/text.js +0 -424
- package/dist/melonjs.mjs/renderable/text/textmetrics.js +0 -176
- package/dist/melonjs.mjs/renderable/text/textstyle.js +0 -21
- package/dist/melonjs.mjs/renderable/trigger.js +0 -163
- package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +0 -285
- package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +0 -231
- package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +0 -146
- package/dist/melonjs.mjs/state/stage.js +0 -235
- package/dist/melonjs.mjs/state/state.js +0 -548
- package/dist/melonjs.mjs/system/device.js +0 -872
- package/dist/melonjs.mjs/system/dom.js +0 -79
- package/dist/melonjs.mjs/system/event.js +0 -606
- package/dist/melonjs.mjs/system/platform.js +0 -43
- package/dist/melonjs.mjs/system/pooling.js +0 -182
- package/dist/melonjs.mjs/system/save.js +0 -157
- package/dist/melonjs.mjs/system/timer.js +0 -274
- package/dist/melonjs.mjs/tweens/easing.js +0 -334
- package/dist/melonjs.mjs/tweens/interpolation.js +0 -112
- package/dist/melonjs.mjs/tweens/tween.js +0 -479
- package/dist/melonjs.mjs/utils/agent.js +0 -77
- package/dist/melonjs.mjs/utils/array.js +0 -63
- package/dist/melonjs.mjs/utils/file.js +0 -54
- package/dist/melonjs.mjs/utils/function.js +0 -69
- package/dist/melonjs.mjs/utils/string.js +0 -82
- package/dist/melonjs.mjs/utils/utils.js +0 -139
- package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +0 -914
- package/dist/melonjs.mjs/video/renderer.js +0 -402
- package/dist/melonjs.mjs/video/rendertarget/canvasrendertarget.js +0 -316
- package/dist/melonjs.mjs/video/texture/atlas.js +0 -465
- package/dist/melonjs.mjs/video/texture/cache.js +0 -186
- package/dist/melonjs.mjs/video/texture/parser/aseprite.js +0 -78
- package/dist/melonjs.mjs/video/texture/parser/spritesheet.js +0 -77
- package/dist/melonjs.mjs/video/texture/parser/texturepacker.js +0 -64
- package/dist/melonjs.mjs/video/utils/autodetect.js +0 -27
- package/dist/melonjs.mjs/video/video.js +0 -142
- package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +0 -146
- package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +0 -240
- package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +0 -82
- package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +0 -259
- package/dist/melonjs.mjs/video/webgl/glshader.js +0 -166
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +0 -10
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +0 -10
- package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +0 -10
- package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +0 -10
- package/dist/melonjs.mjs/video/webgl/utils/attributes.js +0 -25
- package/dist/melonjs.mjs/video/webgl/utils/precision.js +0 -38
- package/dist/melonjs.mjs/video/webgl/utils/program.js +0 -67
- package/dist/melonjs.mjs/video/webgl/utils/string.js +0 -25
- package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +0 -92
- package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +0 -1246
- package/dist/melonjs.module.js +0 -43200
- package/dist/types/application/settings.d.ts +0 -106
- package/dist/types/const.d.ts +0 -21
- package/dist/types/geometries/ellipse.d.ts +0 -138
- package/dist/types/geometries/line.d.ts +0 -15
- package/dist/types/geometries/point.d.ts +0 -50
- package/dist/types/geometries/poly.d.ts +0 -186
- package/dist/types/geometries/rectangle.d.ts +0 -135
- package/dist/types/geometries/roundrect.d.ts +0 -43
- package/dist/types/geometries/toarccanvas.d.ts +0 -10
- package/dist/types/input/keyboard.d.ts +0 -205
- package/dist/types/input/pointer.d.ts +0 -261
- package/dist/types/lang/deprecated.d.ts +0 -68
- package/dist/types/loader/cache.d.ts +0 -9
- package/dist/types/loader/parsers/compressed_textures/parseDDS.d.ts +0 -1
- package/dist/types/loader/parsers/compressed_textures/parseKTX.d.ts +0 -1
- package/dist/types/loader/parsers/compressed_textures/parseKTX2.d.ts +0 -1
- package/dist/types/loader/parsers/compressed_textures/parsePKM.d.ts +0 -1
- package/dist/types/loader/parsers/compressed_textures/parsePVR.d.ts +0 -1
- package/dist/types/math/color.d.ts +0 -179
- package/dist/types/math/math.d.ts +0 -149
- package/dist/types/math/matrix2.d.ts +0 -174
- package/dist/types/math/matrix3.d.ts +0 -186
- package/dist/types/math/observable_vector2.d.ts +0 -278
- package/dist/types/math/observable_vector3.d.ts +0 -300
- package/dist/types/math/vector2.d.ts +0 -255
- package/dist/types/math/vector3.d.ts +0 -271
- package/dist/types/particles/particle.d.ts +0 -36
- package/dist/types/physics/bounds.d.ts +0 -203
- package/dist/types/polyfill/console.d.ts +0 -1
- package/dist/types/polyfill/index.d.ts +0 -1
- package/dist/types/polyfill/roundrect.d.ts +0 -1
- package/dist/types/renderable/light2d.d.ts +0 -60
- package/dist/types/renderable/text/bitmaptextdata.d.ts +0 -35
- package/dist/types/system/dom.d.ts +0 -1
- package/dist/types/system/platform.d.ts +0 -33
- package/dist/types/system/save.d.ts +0 -25
- package/dist/types/system/timer.d.ts +0 -126
- package/dist/types/tweens/easing.d.ts +0 -46
- package/dist/types/tweens/interpolation.d.ts +0 -18
- package/dist/types/tweens/tween.d.ts +0 -195
- package/dist/types/utils/agent.d.ts +0 -21
- package/dist/types/utils/array.d.ts +0 -39
- package/dist/types/utils/file.d.ts +0 -27
- package/dist/types/utils/function.d.ts +0 -31
- package/dist/types/utils/string.d.ts +0 -50
- package/dist/types/utils/utils.d.ts +0 -54
- package/dist/types/video/utils/autodetect.d.ts +0 -5
- package/src/application/application.js +0 -435
- package/src/application/header.js +0 -31
- package/src/application/resize.js +0 -119
- package/src/application/settings.js +0 -61
- package/src/audio/audio.js +0 -622
- package/src/camera/camera2d.js +0 -731
- package/src/const.js +0 -23
- package/src/geometries/ellipse.js +0 -244
- package/src/geometries/line.js +0 -104
- package/src/geometries/path2d.js +0 -470
- package/src/geometries/point.js +0 -76
- package/src/geometries/poly.js +0 -432
- package/src/geometries/rectangle.js +0 -326
- package/src/geometries/roundrect.js +0 -156
- package/src/geometries/toarccanvas.js +0 -94
- package/src/index.js +0 -315
- package/src/input/gamepad.js +0 -487
- package/src/input/input.js +0 -17
- package/src/input/keyboard.js +0 -461
- package/src/input/pointer.js +0 -386
- package/src/input/pointerevent.js +0 -798
- package/src/lang/console.js +0 -36
- package/src/lang/deprecated.js +0 -192
- package/src/level/level.js +0 -290
- package/src/level/tiled/TMXGroup.js +0 -111
- package/src/level/tiled/TMXLayer.js +0 -424
- package/src/level/tiled/TMXObject.js +0 -286
- package/src/level/tiled/TMXTile.js +0 -168
- package/src/level/tiled/TMXTileMap.js +0 -569
- package/src/level/tiled/TMXTileset.js +0 -284
- package/src/level/tiled/TMXTilesetGroup.js +0 -66
- package/src/level/tiled/TMXUtils.js +0 -408
- package/src/level/tiled/constants.js +0 -8
- package/src/level/tiled/renderer/TMXHexagonalRenderer.js +0 -497
- package/src/level/tiled/renderer/TMXIsometricRenderer.js +0 -208
- package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +0 -149
- package/src/level/tiled/renderer/TMXRenderer.js +0 -103
- package/src/level/tiled/renderer/TMXStaggeredRenderer.js +0 -100
- package/src/level/tiled/renderer/autodetect.js +0 -29
- package/src/loader/cache.js +0 -22
- package/src/loader/loader.js +0 -728
- package/src/loader/loadingscreen.js +0 -112
- package/src/loader/melonjs_logo.png +0 -0
- package/src/loader/parsers/binary.js +0 -33
- package/src/loader/parsers/compressed_textures/compressed_image.js +0 -49
- package/src/loader/parsers/compressed_textures/parseDDS.js +0 -5
- package/src/loader/parsers/compressed_textures/parseKTX.js +0 -5
- package/src/loader/parsers/compressed_textures/parseKTX2.js +0 -5
- package/src/loader/parsers/compressed_textures/parsePKM.js +0 -5
- package/src/loader/parsers/compressed_textures/parsePVR.js +0 -127
- package/src/loader/parsers/fetchdata.js +0 -53
- package/src/loader/parsers/fontface.js +0 -54
- package/src/loader/parsers/image.js +0 -120
- package/src/loader/parsers/json.js +0 -35
- package/src/loader/parsers/script.js +0 -37
- package/src/loader/parsers/tmx.js +0 -95
- package/src/loader/parsers/video.js +0 -90
- package/src/math/color.js +0 -627
- package/src/math/math.js +0 -212
- package/src/math/matrix2.js +0 -487
- package/src/math/matrix3.js +0 -620
- package/src/math/observable_vector2.js +0 -460
- package/src/math/observable_vector3.js +0 -556
- package/src/math/vector2.js +0 -423
- package/src/math/vector3.js +0 -465
- package/src/particles/emitter.js +0 -258
- package/src/particles/particle.js +0 -182
- package/src/particles/settings.js +0 -310
- package/src/physics/body.js +0 -709
- package/src/physics/bounds.js +0 -407
- package/src/physics/collision.js +0 -128
- package/src/physics/detector.js +0 -218
- package/src/physics/quadtree.js +0 -393
- package/src/physics/response.js +0 -48
- package/src/physics/sat.js +0 -483
- package/src/physics/world.js +0 -220
- package/src/plugin/plugin.js +0 -163
- package/src/polyfill/console.js +0 -11
- package/src/polyfill/index.js +0 -13
- package/src/polyfill/roundrect.js +0 -237
- package/src/renderable/collectable.js +0 -51
- package/src/renderable/colorlayer.js +0 -74
- package/src/renderable/container.js +0 -1008
- package/src/renderable/draggable.js +0 -114
- package/src/renderable/dragndrop.js +0 -110
- package/src/renderable/entity/entity.js +0 -254
- package/src/renderable/imagelayer.js +0 -284
- package/src/renderable/light2d.js +0 -163
- package/src/renderable/nineslicesprite.js +0 -239
- package/src/renderable/renderable.js +0 -869
- package/src/renderable/sprite.js +0 -691
- package/src/renderable/text/bitmaptext.js +0 -418
- package/src/renderable/text/bitmaptextdata.js +0 -186
- package/src/renderable/text/glyph.js +0 -57
- package/src/renderable/text/text.js +0 -415
- package/src/renderable/text/textmetrics.js +0 -167
- package/src/renderable/text/textstyle.js +0 -12
- package/src/renderable/trigger.js +0 -154
- package/src/renderable/ui/uibaseelement.js +0 -276
- package/src/renderable/ui/uispriteelement.js +0 -223
- package/src/renderable/ui/uitextbutton.js +0 -140
- package/src/state/stage.js +0 -226
- package/src/state/state.js +0 -541
- package/src/system/device.js +0 -863
- package/src/system/dom.js +0 -70
- package/src/system/event.js +0 -597
- package/src/system/platform.js +0 -34
- package/src/system/pooling.js +0 -190
- package/src/system/save.js +0 -148
- package/src/system/timer.js +0 -281
- package/src/tweens/easing.js +0 -325
- package/src/tweens/interpolation.js +0 -103
- package/src/tweens/tween.js +0 -470
- package/src/utils/agent.js +0 -68
- package/src/utils/array.js +0 -54
- package/src/utils/file.js +0 -46
- package/src/utils/function.js +0 -60
- package/src/utils/string.js +0 -73
- package/src/utils/utils.js +0 -127
- package/src/video/canvas/canvas_renderer.js +0 -905
- package/src/video/renderer.js +0 -393
- package/src/video/rendertarget/canvasrendertarget.js +0 -309
- package/src/video/texture/atlas.js +0 -456
- package/src/video/texture/cache.js +0 -178
- package/src/video/texture/parser/aseprite.js +0 -69
- package/src/video/texture/parser/spritesheet.js +0 -68
- package/src/video/texture/parser/texturepacker.js +0 -55
- package/src/video/utils/autodetect.js +0 -18
- package/src/video/video.js +0 -160
- package/src/video/webgl/buffer/vertex.js +0 -137
- package/src/video/webgl/compositors/compositor.js +0 -231
- package/src/video/webgl/compositors/primitive_compositor.js +0 -73
- package/src/video/webgl/compositors/quad_compositor.js +0 -250
- package/src/video/webgl/glshader.js +0 -158
- package/src/video/webgl/shaders/primitive.frag +0 -5
- package/src/video/webgl/shaders/primitive.vert +0 -15
- package/src/video/webgl/shaders/quad.frag +0 -7
- package/src/video/webgl/shaders/quad.vert +0 -18
- package/src/video/webgl/utils/attributes.js +0 -16
- package/src/video/webgl/utils/precision.js +0 -29
- package/src/video/webgl/utils/program.js +0 -58
- package/src/video/webgl/utils/string.js +0 -16
- package/src/video/webgl/utils/uniforms.js +0 -84
- package/src/video/webgl/webgl_renderer.js +0 -1237
package/src/video/renderer.js
DELETED
|
@@ -1,393 +0,0 @@
|
|
|
1
|
-
import Color from "./../math/color.js";
|
|
2
|
-
import Matrix3d from "./../math/matrix3.js";
|
|
3
|
-
import * as event from "./../system/event.js";
|
|
4
|
-
import Path2D from "./../geometries/path2d.js";
|
|
5
|
-
import Vector2d from "../math/vector2.js";
|
|
6
|
-
import CanvasRenderTarget from "./rendertarget/canvasrendertarget.js";
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* @import Rect from "./../geometries/rectangle.js";
|
|
10
|
-
* @import RoundRect from "./../geometries/roundrect.js";
|
|
11
|
-
* @import Polygon from "./../geometries/poly.js";
|
|
12
|
-
* @import Line from "./../geometries/line.js";
|
|
13
|
-
* @import Ellipse from "./../geometries/ellipse.js";
|
|
14
|
-
* @import Bounds from "./../physics/bounds.js";
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* @classdesc
|
|
19
|
-
* a base renderer object
|
|
20
|
-
*/
|
|
21
|
-
export default class Renderer {
|
|
22
|
-
/**
|
|
23
|
-
* @param {ApplicationSettings} [options] - optional parameters for the renderer
|
|
24
|
-
*/
|
|
25
|
-
constructor(options) {
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* The renderer renderTarget
|
|
29
|
-
* @name renderTarget
|
|
30
|
-
* @type {CanvasRenderTarget}
|
|
31
|
-
*/
|
|
32
|
-
this.renderTarget = new CanvasRenderTarget(options.width, options.height,
|
|
33
|
-
// support case when a global canvas is available, e.g. webapp adapter for wechat
|
|
34
|
-
typeof globalThis.canvas !== "undefined" ? Object.assign(options, { canvas: globalThis.canvas }) : options
|
|
35
|
-
);
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* The given constructor options
|
|
39
|
-
* @public
|
|
40
|
-
* @type {object}
|
|
41
|
-
*/
|
|
42
|
-
this.settings = options;
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* the requested video size ratio
|
|
46
|
-
* @public
|
|
47
|
-
* @type {number}
|
|
48
|
-
*/
|
|
49
|
-
this.designRatio = this.settings.width / this.settings.height;
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* the scaling ratio to be applied to the main canvas
|
|
53
|
-
* @type {Vector2d}
|
|
54
|
-
* @default <1,1>
|
|
55
|
-
*/
|
|
56
|
-
this.scaleRatio = new Vector2d(this.settings.scale, this.settings.scale);
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* true if the current rendering context is valid
|
|
60
|
-
* @default true
|
|
61
|
-
* @type {boolean}
|
|
62
|
-
*/
|
|
63
|
-
this.isContextValid = true;
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* the default method to sort object ("sorting", "z-buffer")
|
|
67
|
-
* @type {string}
|
|
68
|
-
* @default "sorting"
|
|
69
|
-
*/
|
|
70
|
-
this.depthTest = "sorting";
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* The Path2D instance used by the renderer to draw primitives
|
|
75
|
-
* @type {Path2D}
|
|
76
|
-
*/
|
|
77
|
-
this.path2D = new Path2D();
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* The renderer type : Canvas, WebGL, etc...
|
|
81
|
-
* (override this property with a specific value when implementing a custom renderer)
|
|
82
|
-
* @type {string}
|
|
83
|
-
*/
|
|
84
|
-
this.type = "Generic";
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* @ignore
|
|
88
|
-
*/
|
|
89
|
-
this.currentScissor = new Int32Array([ 0, 0, this.settings.width, this.settings.height ]);
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* @ignore
|
|
93
|
-
*/
|
|
94
|
-
this.maskLevel = 0;
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* @ignore
|
|
98
|
-
*/
|
|
99
|
-
this.currentBlendMode = "none";
|
|
100
|
-
|
|
101
|
-
// global color
|
|
102
|
-
this.currentColor = new Color(0, 0, 0, 1.0);
|
|
103
|
-
|
|
104
|
-
// global tint color
|
|
105
|
-
this.currentTint = new Color(255, 255, 255, 1.0);
|
|
106
|
-
|
|
107
|
-
// the projectionMatrix (set through setProjection)
|
|
108
|
-
this.projectionMatrix = new Matrix3d();
|
|
109
|
-
|
|
110
|
-
// default uvOffset
|
|
111
|
-
this.uvOffset = 0;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* return the height of the canvas which this renderer draws to
|
|
116
|
-
* @returns {number} height of the system Canvas
|
|
117
|
-
*/
|
|
118
|
-
get height() {
|
|
119
|
-
return this.getCanvas().height;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
set height(value) {
|
|
123
|
-
this.resize(this.width, value);
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* return the width of the canvas which this renderer draws to
|
|
128
|
-
* @returns {number} width of the system Canvas
|
|
129
|
-
*/
|
|
130
|
-
get width() {
|
|
131
|
-
return this.getCanvas().width;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
set width(value) {
|
|
135
|
-
this.resize(value, this.height);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
/**
|
|
139
|
-
* prepare the framebuffer for drawing a new frame
|
|
140
|
-
*/
|
|
141
|
-
clear() {}
|
|
142
|
-
|
|
143
|
-
/**
|
|
144
|
-
* render the main framebuffer on screen
|
|
145
|
-
*/
|
|
146
|
-
flush() {}
|
|
147
|
-
|
|
148
|
-
/**
|
|
149
|
-
* Reset context state
|
|
150
|
-
*/
|
|
151
|
-
reset() {
|
|
152
|
-
this.resetTransform();
|
|
153
|
-
this.setBlendMode(this.settings.blendMode);
|
|
154
|
-
this.setColor("#000000");
|
|
155
|
-
this.clearTint();
|
|
156
|
-
this.cache.clear();
|
|
157
|
-
this.currentScissor[0] = 0;
|
|
158
|
-
this.currentScissor[1] = 0;
|
|
159
|
-
this.currentScissor[2] = this.width;
|
|
160
|
-
this.currentScissor[3] = this.height;
|
|
161
|
-
this.clearMask();
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
/**
|
|
165
|
-
* return a reference to the current render target corresponding canvas which this renderer draws to
|
|
166
|
-
* @returns {HTMLCanvasElement}
|
|
167
|
-
*/
|
|
168
|
-
getCanvas() {
|
|
169
|
-
return this.renderTarget.canvas;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
/**
|
|
173
|
-
* return a reference to the current render target corresponding Context
|
|
174
|
-
* @returns {CanvasRenderingContext2D|WebGLRenderingContext}
|
|
175
|
-
*/
|
|
176
|
-
getContext() {
|
|
177
|
-
return this.renderTarget.context;
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
/**
|
|
181
|
-
* returns the current blend mode for this renderer
|
|
182
|
-
* @returns {string} blend mode
|
|
183
|
-
*/
|
|
184
|
-
getBlendMode() {
|
|
185
|
-
return this.currentBlendMode;
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
/**
|
|
189
|
-
* get the current fill & stroke style color.
|
|
190
|
-
* @returns {Color} current global color
|
|
191
|
-
*/
|
|
192
|
-
getColor() {
|
|
193
|
-
return this.currentColor;
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
/**
|
|
197
|
-
* return the current global alpha
|
|
198
|
-
* @returns {number}
|
|
199
|
-
*/
|
|
200
|
-
globalAlpha() {
|
|
201
|
-
return this.currentColor.glArray[3];
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
/**
|
|
205
|
-
* check if the given rect or bounds overlaps with the renderer screen coordinates
|
|
206
|
-
* @param {Rect|Bounds} bounds
|
|
207
|
-
* @returns {boolean} true if overlaps
|
|
208
|
-
*/
|
|
209
|
-
overlaps(bounds) {
|
|
210
|
-
return (
|
|
211
|
-
bounds.left <= this.width && bounds.right >= 0 &&
|
|
212
|
-
bounds.top <= this.height && bounds.bottom >= 0
|
|
213
|
-
);
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
/**
|
|
217
|
-
* resizes the system canvas
|
|
218
|
-
* @param {number} width - new width of the canvas
|
|
219
|
-
* @param {number} height - new height of the canvas
|
|
220
|
-
*/
|
|
221
|
-
resize(width, height) {
|
|
222
|
-
let canvas = this.getCanvas();
|
|
223
|
-
if (width !== canvas.width || height !== canvas.height) {
|
|
224
|
-
canvas.width = width;
|
|
225
|
-
canvas.height = height;
|
|
226
|
-
this.currentScissor[0] = 0;
|
|
227
|
-
this.currentScissor[1] = 0;
|
|
228
|
-
this.currentScissor[2] = width;
|
|
229
|
-
this.currentScissor[3] = height;
|
|
230
|
-
// publish the corresponding event
|
|
231
|
-
event.emit(event.CANVAS_ONRESIZE, width, height);
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
/**
|
|
236
|
-
* enable/disable image smoothing (scaling interpolation) for the current render target
|
|
237
|
-
* @param {boolean} [enable=false]
|
|
238
|
-
*/
|
|
239
|
-
setAntiAlias(enable = false) {
|
|
240
|
-
this.renderTarget.setAntiAlias(enable);
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
/**
|
|
244
|
-
* set/change the current projection matrix (WebGL only)
|
|
245
|
-
* @param {Matrix3d} matrix
|
|
246
|
-
*/
|
|
247
|
-
setProjection(matrix) {
|
|
248
|
-
this.projectionMatrix.copy(matrix);
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
/**
|
|
252
|
-
* stroke the given shape
|
|
253
|
-
* @param {Rect|RoundRect|Polygon|Line|Ellipse} shape - a shape object to stroke
|
|
254
|
-
* @param {boolean} [fill=false] - fill the shape with the current color if true
|
|
255
|
-
*/
|
|
256
|
-
stroke(shape, fill) {
|
|
257
|
-
switch (shape.type) {
|
|
258
|
-
|
|
259
|
-
// RoundRect
|
|
260
|
-
case "RoundRect":
|
|
261
|
-
this.strokeRoundRect(shape.left, shape.top, shape.width, shape.height, shape.radius, fill);
|
|
262
|
-
break;
|
|
263
|
-
|
|
264
|
-
// Rect or Bounds
|
|
265
|
-
case "Rectangle":
|
|
266
|
-
case "Bounds":
|
|
267
|
-
this.strokeRect(shape.left, shape.top, shape.width, shape.height, fill);
|
|
268
|
-
break;
|
|
269
|
-
|
|
270
|
-
// Polygon or Line
|
|
271
|
-
case "Polygon":
|
|
272
|
-
case "Line":
|
|
273
|
-
this.strokePolygon(shape, fill);
|
|
274
|
-
break;
|
|
275
|
-
|
|
276
|
-
case "Ellipse":
|
|
277
|
-
this.strokeEllipse(shape.pos.x, shape.pos.y, shape.radiusV.x, shape.radiusV.y, fill);
|
|
278
|
-
break;
|
|
279
|
-
|
|
280
|
-
// Point
|
|
281
|
-
case "Point":
|
|
282
|
-
this.strokePoint(shape.x, shape.y);
|
|
283
|
-
break;
|
|
284
|
-
|
|
285
|
-
default:
|
|
286
|
-
throw new Error("Invalid geometry for fill/stroke");
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
/**
|
|
291
|
-
* fill the given shape
|
|
292
|
-
* @param {Rect|RoundRect|Polygon|Line|Ellipse} shape - a shape object to fill
|
|
293
|
-
*/
|
|
294
|
-
fill(shape) {
|
|
295
|
-
this.stroke(shape, true);
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
/**
|
|
299
|
-
* tint the given image or canvas using the given color
|
|
300
|
-
* @param {HTMLImageElement|HTMLCanvasElement|OffscreenCanvas} src - the source image to be tinted
|
|
301
|
-
* @param {Color|string} color - the color that will be used to tint the image
|
|
302
|
-
* @param {string} [mode="multiply"] - the composition mode used to tint the image
|
|
303
|
-
* @returns {HTMLCanvasElement|OffscreenCanvas} a new canvas or offscreencanvas (if supported) element representing the tinted image
|
|
304
|
-
*/
|
|
305
|
-
tint(src, color, mode = "multiply") {
|
|
306
|
-
const attributes = { context:"2d", offscreenCanvas: true, transparent: true, antiAlias: this.settings.antiAlias };
|
|
307
|
-
let canvasTexture = new CanvasRenderTarget(src.width, src.height, attributes);
|
|
308
|
-
let context = canvasTexture.context;
|
|
309
|
-
|
|
310
|
-
context.fillStyle = color instanceof Color ? color.toRGB() : color;
|
|
311
|
-
context.fillRect(0, 0, src.width, src.height);
|
|
312
|
-
|
|
313
|
-
context.globalCompositeOperation = mode;
|
|
314
|
-
context.drawImage(src, 0, 0);
|
|
315
|
-
context.globalCompositeOperation = "destination-atop";
|
|
316
|
-
context.drawImage(src, 0, 0);
|
|
317
|
-
|
|
318
|
-
return canvasTexture.canvas;
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
/**
|
|
322
|
-
* A mask limits rendering elements to the shape and position of the given mask object.
|
|
323
|
-
* So, if the renderable is larger than the mask, only the intersecting part of the renderable will be visible.
|
|
324
|
-
* Mask are not preserved through renderer context save and restore.
|
|
325
|
-
* @param {Rect|RoundRect|Polygon|Line|Ellipse} [mask] - the shape defining the mask to be applied
|
|
326
|
-
* @param {boolean} [invert=false] - either the given shape should define what is visible (default) or the opposite
|
|
327
|
-
*/
|
|
328
|
-
// eslint-disable-next-line no-unused-vars
|
|
329
|
-
setMask(mask, invert = false) {}
|
|
330
|
-
|
|
331
|
-
/**
|
|
332
|
-
* disable (remove) the rendering mask set through setMask.
|
|
333
|
-
* @see Renderer#setMask
|
|
334
|
-
*/
|
|
335
|
-
clearMask() {}
|
|
336
|
-
|
|
337
|
-
/**
|
|
338
|
-
* set a coloring tint for sprite based renderables
|
|
339
|
-
* @param {Color} tint - the tint color
|
|
340
|
-
* @param {number} [alpha] - an alpha value to be applied to the tint
|
|
341
|
-
*/
|
|
342
|
-
setTint(tint, alpha = tint.alpha) {
|
|
343
|
-
// global tint color
|
|
344
|
-
this.currentTint.copy(tint);
|
|
345
|
-
this.currentTint.alpha *= alpha;
|
|
346
|
-
}
|
|
347
|
-
|
|
348
|
-
/**
|
|
349
|
-
* clear the rendering tint set through setTint.
|
|
350
|
-
* @see Renderer#setTint
|
|
351
|
-
*/
|
|
352
|
-
clearTint() {
|
|
353
|
-
// reset to default
|
|
354
|
-
this.currentTint.setFloat(1.0, 1.0, 1.0, 1.0);
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
/**
|
|
358
|
-
* creates a Blob object representing the last rendered frame
|
|
359
|
-
* @param {string} [type="image/png"] - A string indicating the image format
|
|
360
|
-
* @param {number} [quality] - A Number between 0 and 1 indicating the image quality to be used when creating images using file formats that support lossy compression (such as image/jpeg or image/webp). A user agent will use its default quality value if this option is not specified, or if the number is outside the allowed range.
|
|
361
|
-
* @returns {Promise} A Promise returning a Blob object representing the last rendered frame
|
|
362
|
-
* @example
|
|
363
|
-
* renderer.convertToBlob().then((blob) => console.log(blob));
|
|
364
|
-
*/
|
|
365
|
-
toBlob(type = "image/png", quality) {
|
|
366
|
-
return this.renderTarget.toBlob(type, quality);
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
/**
|
|
370
|
-
* creates an ImageBitmap object of the last frame rendered
|
|
371
|
-
* (not supported by standard Canvas)
|
|
372
|
-
* @param {string} [type="image/png"] - A string indicating the image format
|
|
373
|
-
* @param {number} [quality] - A Number between 0 and 1 indicating the image quality to be used when creating images using file formats that support lossy compression (such as image/jpeg or image/webp). A user agent will use its default quality value if this option is not specified, or if the number is outside the allowed range.
|
|
374
|
-
* @returns {Promise} A Promise returning an ImageBitmap.
|
|
375
|
-
* @example
|
|
376
|
-
* renderer.transferToImageBitmap().then((image) => console.log(image));
|
|
377
|
-
*/
|
|
378
|
-
toImageBitmap(type = "image/png", quality) {
|
|
379
|
-
return this.renderTarget.toImageBitmap(type, quality);
|
|
380
|
-
}
|
|
381
|
-
|
|
382
|
-
/**
|
|
383
|
-
* returns a data URL containing a representation of the last frame rendered
|
|
384
|
-
* @param {string} [type="image/png"] - A string indicating the image format
|
|
385
|
-
* @param {number} [quality] - A Number between 0 and 1 indicating the image quality to be used when creating images using file formats that support lossy compression (such as image/jpeg or image/webp). A user agent will use its default quality value if this option is not specified, or if the number is outside the allowed range.
|
|
386
|
-
* @returns {Promise} A Promise returning a string containing the requested data URL.
|
|
387
|
-
* @example
|
|
388
|
-
* renderer.toDataURL().then((dataURL) => console.log(dataURL));
|
|
389
|
-
*/
|
|
390
|
-
toDataURL(type = "image/png", quality) {
|
|
391
|
-
return this.renderTarget.toDataURL(type, quality);
|
|
392
|
-
}
|
|
393
|
-
}
|
|
@@ -1,309 +0,0 @@
|
|
|
1
|
-
import { createCanvas } from "../video.js";
|
|
2
|
-
import { setPrefixed } from "../../utils/agent.js";
|
|
3
|
-
import { clamp } from "../../math/math.js";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* additional import for TypeScript
|
|
7
|
-
* @import CanvasRenderer from "./../canvas/canvas_renderer.js";
|
|
8
|
-
* @import WebGLRenderer from "./../webgl/webgl_renderer.js";
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
// default canvas settings
|
|
12
|
-
let defaultAttributes = {
|
|
13
|
-
offscreenCanvas : false,
|
|
14
|
-
willReadFrequently : false,
|
|
15
|
-
antiAlias : false,
|
|
16
|
-
context: "2d",
|
|
17
|
-
transparent : false,
|
|
18
|
-
premultipliedAlpha: true,
|
|
19
|
-
stencil: true,
|
|
20
|
-
blendMode : "normal",
|
|
21
|
-
failIfMajorPerformanceCaveat : true,
|
|
22
|
-
preferWebGL1 : false,
|
|
23
|
-
powerPreference : "default"
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
// WebGL version (if a gl context is created)
|
|
27
|
-
let WebGLVersion;
|
|
28
|
-
|
|
29
|
-
// a helper function to create the 2d/webgl context
|
|
30
|
-
function createContext(canvas, attributes) {
|
|
31
|
-
let context;
|
|
32
|
-
|
|
33
|
-
if (attributes.context === "2d") {
|
|
34
|
-
// 2d/canvas mode
|
|
35
|
-
context = canvas.getContext(attributes.context, { willReadFrequently: attributes.willReadFrequently });
|
|
36
|
-
} else if (attributes.context === "webgl") {
|
|
37
|
-
let attr = {
|
|
38
|
-
alpha : attributes.transparent,
|
|
39
|
-
antialias : attributes.antiAlias,
|
|
40
|
-
depth : attributes.depth,
|
|
41
|
-
stencil: true,
|
|
42
|
-
preserveDrawingBuffer : false,
|
|
43
|
-
premultipliedAlpha: attributes.transparent ? attributes.premultipliedAlpha : false,
|
|
44
|
-
powerPreference: attributes.powerPreference,
|
|
45
|
-
failIfMajorPerformanceCaveat : attributes.failIfMajorPerformanceCaveat
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
// attempt to create a WebGL2 context unless not requested
|
|
49
|
-
if (attributes.preferWebGL1 !== true) {
|
|
50
|
-
context = canvas.getContext("webgl2", attr);
|
|
51
|
-
if (context) {
|
|
52
|
-
WebGLVersion = 2;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
// fallback to WebGL1
|
|
57
|
-
if (!context) {
|
|
58
|
-
WebGLVersion = 1;
|
|
59
|
-
context = canvas.getContext("webgl", attr) || canvas.getContext("experimental-webgl", attr);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
if (!context) {
|
|
63
|
-
throw new Error(
|
|
64
|
-
"A WebGL context could not be created."
|
|
65
|
-
);
|
|
66
|
-
}
|
|
67
|
-
} else {
|
|
68
|
-
throw new Error(
|
|
69
|
-
"Invalid context type. Must be one of '2d' or 'webgl'"
|
|
70
|
-
);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
// set the context size
|
|
74
|
-
return context;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* CanvasRenderTarget is 2D render target which exposes a Canvas interface.
|
|
79
|
-
*/
|
|
80
|
-
class CanvasRenderTarget {
|
|
81
|
-
/**
|
|
82
|
-
* @param {number} width - the desired width of the canvas
|
|
83
|
-
* @param {number} height - the desired height of the canvas
|
|
84
|
-
* @param {object} attributes - The attributes to create both the canvas and context
|
|
85
|
-
* @param {string} [attributes.context="2d"] - the context type to be created ("2d", "webgl")
|
|
86
|
-
* @param {boolean} [attributes.preferWebGL1=false] - set to true for force using WebGL1 instead of WebGL2 (if supported)
|
|
87
|
-
* @param {boolean} [attributes.transparent=false] - specify if the canvas contains an alpha channel
|
|
88
|
-
* @param {boolean} [attributes.offscreenCanvas=false] - will create an offscreenCanvas if true instead of a standard canvas
|
|
89
|
-
* @param {boolean} [attributes.willReadFrequently=false] - Indicates whether or not a lot of read-back operations are planned
|
|
90
|
-
* @param {boolean} [attributes.antiAlias=false] - Whether to enable anti-aliasing, use false (default) for a pixelated effect.
|
|
91
|
-
*/
|
|
92
|
-
constructor(width, height, attributes = defaultAttributes) {
|
|
93
|
-
/**
|
|
94
|
-
* the canvas created for this CanvasRenderTarget
|
|
95
|
-
* @type {HTMLCanvasElement|OffscreenCanvas}
|
|
96
|
-
*/
|
|
97
|
-
this.canvas;
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* the rendering context of this CanvasRenderTarget
|
|
101
|
-
* @type {CanvasRenderingContext2D|WebGLRenderingContext}
|
|
102
|
-
*/
|
|
103
|
-
this.context;
|
|
104
|
-
|
|
105
|
-
// clean up the given attributes
|
|
106
|
-
this.attributes = Object.assign({}, defaultAttributes, attributes);
|
|
107
|
-
|
|
108
|
-
// make sure context is defined
|
|
109
|
-
if (typeof attributes.context === "undefined") {
|
|
110
|
-
attributes.context = "2d";
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
// used the given canvas if any
|
|
114
|
-
if (typeof attributes.canvas !== "undefined") {
|
|
115
|
-
this.canvas = attributes.canvas;
|
|
116
|
-
} else {
|
|
117
|
-
this.canvas = createCanvas(width, height, this.attributes.offscreenCanvas);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
// create the context
|
|
121
|
-
this.context = createContext(this.canvas, this.attributes);
|
|
122
|
-
|
|
123
|
-
this.WebGLVersion = WebGLVersion;
|
|
124
|
-
|
|
125
|
-
// enable or disable antiAlias if specified
|
|
126
|
-
this.setAntiAlias(this.attributes.antiAlias);
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
/**
|
|
130
|
-
* @ignore
|
|
131
|
-
*/
|
|
132
|
-
onResetEvent(width, height) {
|
|
133
|
-
this.clear();
|
|
134
|
-
this.resize(width, height);
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
/**
|
|
138
|
-
* Clears the content of the canvas texture
|
|
139
|
-
*/
|
|
140
|
-
clear() {
|
|
141
|
-
this.context.setTransform(1, 0, 0, 1, 0, 0);
|
|
142
|
-
this.context.clearRect(0, 0, this.canvas.width, this.canvas.height);
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
/**
|
|
146
|
-
* enable/disable image smoothing (scaling interpolation)
|
|
147
|
-
* @param {boolean} [enable=false] - whether to enable or not image smoothing (scaling interpolation)
|
|
148
|
-
*/
|
|
149
|
-
setAntiAlias(enable = false) {
|
|
150
|
-
let canvas = this.canvas;
|
|
151
|
-
|
|
152
|
-
// enable/disable antialias on the given Context2d object
|
|
153
|
-
setPrefixed("imageSmoothingEnabled", enable, this.context);
|
|
154
|
-
|
|
155
|
-
// set antialias CSS property on the main canvas
|
|
156
|
-
if (typeof canvas.style !== "undefined") {
|
|
157
|
-
if (enable !== true) {
|
|
158
|
-
// https://developer.mozilla.org/en-US/docs/Web/CSS/image-rendering
|
|
159
|
-
canvas.style["image-rendering"] = "optimizeSpeed"; // legal fallback
|
|
160
|
-
canvas.style["image-rendering"] = "-moz-crisp-edges"; // Firefox
|
|
161
|
-
canvas.style["image-rendering"] = "-o-crisp-edges"; // Opera
|
|
162
|
-
canvas.style["image-rendering"] = "-webkit-optimize-contrast"; // Safari
|
|
163
|
-
canvas.style["image-rendering"] = "optimize-contrast"; // CSS 3
|
|
164
|
-
canvas.style["image-rendering"] = "crisp-edges"; // CSS 4
|
|
165
|
-
canvas.style["image-rendering"] = "pixelated"; // CSS 4
|
|
166
|
-
canvas.style.msInterpolationMode = "nearest-neighbor"; // IE8+
|
|
167
|
-
} else {
|
|
168
|
-
canvas.style["image-rendering"] = "auto";
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
/**
|
|
174
|
-
* Resizes the canvas texture to the given width and height.
|
|
175
|
-
* @param {number} width - the desired width
|
|
176
|
-
* @param {number} height - the desired height
|
|
177
|
-
*/
|
|
178
|
-
resize(width, height) {
|
|
179
|
-
this.canvas.width = Math.round(width);
|
|
180
|
-
this.canvas.height = Math.round(height);
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
/**
|
|
184
|
-
* Returns an ImageData object representing the underlying pixel data for a specified portion of this canvas texture.
|
|
185
|
-
* (Note: when using getImageData(), it is highly recommended to use the `willReadFrequently` attribute when creatimg the corresponding canvas texture)
|
|
186
|
-
* @param {number} x - The x-axis coordinate of the top-left corner of the rectangle from which the ImageData will be extracted
|
|
187
|
-
* @param {number} y - The y-axis coordinate of the top-left corner of the rectangle from which the ImageData will be extracted
|
|
188
|
-
* @param {number} width - The width of the rectangle from which the ImageData will be extracted. Positive values are to the right, and negative to the left
|
|
189
|
-
* @param {number} height - The height of the rectangle from which the ImageData will be extracted. Positive values are down, and negative are up
|
|
190
|
-
* @returns {ImageData} The ImageData extracted from this CanvasRenderTarget.
|
|
191
|
-
*/
|
|
192
|
-
getImageData(x, y, width, height) {
|
|
193
|
-
// clamp values
|
|
194
|
-
x = clamp(Math.floor(x), 0, this.canvas.width - 1);
|
|
195
|
-
y = clamp(Math.floor(y), 0, this.canvas.height - 1);
|
|
196
|
-
width = clamp(width, 1, this.canvas.width - x);
|
|
197
|
-
height = clamp(height, 1, this.canvas.height - y);
|
|
198
|
-
// return imageData
|
|
199
|
-
return this.context.getImageData(x, y, width, height);
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
/**
|
|
203
|
-
* creates a Blob object representing the image contained in this canvas texture
|
|
204
|
-
* @param {string} [type="image/png"] - A string indicating the image format
|
|
205
|
-
* @param {number} [quality] - A Number between 0 and 1 indicating the image quality to be used when creating images using file formats that support lossy compression (such as image/jpeg or image/webp). A user agent will use its default quality value if this option is not specified, or if the number is outside the allowed range.
|
|
206
|
-
* @returns {Promise} A Promise returning a Blob object representing the image contained in this canvas texture
|
|
207
|
-
* @example
|
|
208
|
-
* renderTarget.convertToBlob().then((blob) => console.log(blob));
|
|
209
|
-
*/
|
|
210
|
-
toBlob(type = "image/png", quality) {
|
|
211
|
-
if (typeof this.canvas.convertToBlob === "function") {
|
|
212
|
-
return this.canvas.convertToBlob(type, quality);
|
|
213
|
-
} else {
|
|
214
|
-
return new Promise(function(resolve) {
|
|
215
|
-
this.canvas.toBlob((blob) => {
|
|
216
|
-
resolve(blob);
|
|
217
|
-
}, type, quality);
|
|
218
|
-
});
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
/**
|
|
223
|
-
* creates an ImageBitmap object from the most recently rendered image of this canvas texture
|
|
224
|
-
* @param {string} [type="image/png"] - A string indicating the image format
|
|
225
|
-
* @param {number} [quality] - A Number between 0 and 1 indicating the image quality to be used when creating images using file formats that support lossy compression (such as image/jpeg or image/webp). A user agent will use its default quality value if this option is not specified, or if the number is outside the allowed range.
|
|
226
|
-
* @returns {Promise} A Promise returning an ImageBitmap.
|
|
227
|
-
* @example
|
|
228
|
-
* renderTarget.transferToImageBitmap().then((bitmap) => console.log(bitmap));
|
|
229
|
-
*/
|
|
230
|
-
toImageBitmap(type = "image/png", quality) {
|
|
231
|
-
return new Promise((resolve) => {
|
|
232
|
-
if (typeof this.canvas.transferToImageBitmap === "function") {
|
|
233
|
-
resolve(this.canvas.transferToImageBitmap());
|
|
234
|
-
} else {
|
|
235
|
-
let image = new Image();
|
|
236
|
-
image.src = this.canvas.toDataURL(type, quality);
|
|
237
|
-
image.onload = () => {
|
|
238
|
-
globalThis.createImageBitmap(image).then((bitmap) => resolve(bitmap));
|
|
239
|
-
};
|
|
240
|
-
}
|
|
241
|
-
});
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
/**
|
|
245
|
-
* returns a data URL containing a representation of the most recently rendered image of this canvas texture
|
|
246
|
-
* (not supported by OffscreenCanvas)
|
|
247
|
-
* @param {string} [type="image/png"] - A string indicating the image format
|
|
248
|
-
* @param {number} [quality] - A Number between 0 and 1 indicating the image quality to be used when creating images using file formats that support lossy compression (such as image/jpeg or image/webp). A user agent will use its default quality value if this option is not specified, or if the number is outside the allowed range.
|
|
249
|
-
* @returns {Promise} A Promise returning a string containing the requested data URL.
|
|
250
|
-
* @example
|
|
251
|
-
* renderer.toDataURL().then((dataURL) => console.log(dataURL));
|
|
252
|
-
*/
|
|
253
|
-
toDataURL(type = "image/png", quality) {
|
|
254
|
-
return new Promise((resolve) => {
|
|
255
|
-
resolve(this.canvas.toDataURL(type, quality));
|
|
256
|
-
});
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
/**
|
|
260
|
-
* invalidate the current CanvasRenderTarget, and force a reupload of the corresponding texture
|
|
261
|
-
* (call this if you modify the canvas content between two draw calls)
|
|
262
|
-
* @param {CanvasRenderer|WebGLRenderer} renderer - the renderer to which this canvas texture is attached
|
|
263
|
-
*/
|
|
264
|
-
invalidate(renderer) {
|
|
265
|
-
if (typeof renderer.gl !== "undefined") {
|
|
266
|
-
// make sure the right compositor is active
|
|
267
|
-
renderer.setCompositor("quad");
|
|
268
|
-
// invalidate the previous corresponding texture so that it can reuploaded once changed
|
|
269
|
-
this.glTextureUnit = renderer.cache.getUnit(renderer.cache.get(this.canvas));
|
|
270
|
-
renderer.currentCompositor.unbindTexture2D(null, this.glTextureUnit);
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
/**
|
|
275
|
-
* @ignore
|
|
276
|
-
*/
|
|
277
|
-
destroy() {
|
|
278
|
-
this.context = undefined;
|
|
279
|
-
this.canvas = undefined;
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
/**
|
|
283
|
-
* The width of this canvas texture in pixels
|
|
284
|
-
* @public
|
|
285
|
-
* @type {number}
|
|
286
|
-
*/
|
|
287
|
-
get width() {
|
|
288
|
-
return this.canvas.width;
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
set width(val) {
|
|
292
|
-
this.canvas.width = Math.round(val);
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
/**
|
|
296
|
-
* The height of this canvas texture in pixels
|
|
297
|
-
* @public
|
|
298
|
-
* @type {number}
|
|
299
|
-
*/
|
|
300
|
-
get height() {
|
|
301
|
-
return this.canvas.height;
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
set height(val) {
|
|
305
|
-
this.canvas.height = Math.round(val);
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
export default CanvasRenderTarget;
|