melonjs 14.1.2 → 14.3.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/README.md +3 -4
- package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +1 -1
- package/dist/melonjs.mjs/_virtual/arraymultimap.js +1 -1
- package/dist/melonjs.mjs/_virtual/earcut.js +7 -3
- package/dist/melonjs.mjs/_virtual/howler.js +1 -1
- package/dist/melonjs.mjs/_virtual/index.js +1 -1
- package/dist/melonjs.mjs/_virtual/index2.js +7 -3
- package/dist/melonjs.mjs/_virtual/make-built-in.js +10 -0
- package/dist/melonjs.mjs/_virtual/multimap.js +1 -1
- package/dist/melonjs.mjs/_virtual/object-define-property.js +10 -0
- package/dist/melonjs.mjs/_virtual/object-get-own-property-descriptor.js +10 -0
- package/dist/melonjs.mjs/_virtual/object-get-own-property-names.js +10 -0
- package/dist/melonjs.mjs/_virtual/object-get-own-property-symbols.js +10 -0
- package/dist/melonjs.mjs/_virtual/object-property-is-enumerable.js +10 -0
- package/dist/melonjs.mjs/_virtual/setmultimap.js +1 -1
- package/dist/melonjs.mjs/_virtual/shared.js +10 -0
- package/dist/melonjs.mjs/application/application.js +173 -22
- package/dist/melonjs.mjs/application/header.js +34 -0
- package/dist/melonjs.mjs/application/resize.js +119 -0
- package/dist/melonjs.mjs/application/settings.js +28 -0
- package/dist/melonjs.mjs/audio/audio.js +1 -1
- package/dist/melonjs.mjs/camera/camera2d.js +2 -2
- package/dist/melonjs.mjs/entity/entity.js +1 -1
- package/dist/melonjs.mjs/game.js +1 -1
- package/dist/melonjs.mjs/geometries/ellipse.js +1 -1
- package/dist/melonjs.mjs/geometries/line.js +1 -1
- package/dist/melonjs.mjs/geometries/path2d.js +3 -3
- package/dist/melonjs.mjs/geometries/point.js +1 -1
- package/dist/melonjs.mjs/geometries/poly.js +3 -3
- package/dist/melonjs.mjs/geometries/rectangle.js +1 -1
- package/dist/melonjs.mjs/geometries/roundrect.js +1 -1
- package/dist/melonjs.mjs/index.js +41 -61
- package/dist/melonjs.mjs/input/gamepad.js +1 -1
- package/dist/melonjs.mjs/input/input.js +1 -1
- package/dist/melonjs.mjs/input/keyboard.js +1 -1
- package/dist/melonjs.mjs/input/pointer.js +2 -2
- package/dist/melonjs.mjs/input/pointerevent.js +7 -8
- package/dist/melonjs.mjs/lang/deprecated.js +1 -1
- package/dist/melonjs.mjs/level/level.js +2 -2
- package/dist/melonjs.mjs/level/tiled/TMXGroup.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXLayer.js +2 -2
- package/dist/melonjs.mjs/level/tiled/TMXObject.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXTile.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +2 -2
- package/dist/melonjs.mjs/level/tiled/TMXTileset.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXUtils.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +1 -1
- package/dist/melonjs.mjs/loader/loader.js +1 -1
- package/dist/melonjs.mjs/loader/loadingscreen.js +2 -2
- package/dist/melonjs.mjs/loader/melonjs_logo.png.js +1 -1
- package/dist/melonjs.mjs/math/color.js +1 -1
- package/dist/melonjs.mjs/math/math.js +1 -1
- package/dist/melonjs.mjs/math/matrix2.js +1 -1
- package/dist/melonjs.mjs/math/matrix3.js +1 -1
- package/dist/melonjs.mjs/math/observable_vector2.js +1 -1
- package/dist/melonjs.mjs/math/observable_vector3.js +1 -1
- package/dist/melonjs.mjs/math/vector2.js +1 -1
- package/dist/melonjs.mjs/math/vector3.js +1 -1
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/arraymultimap.js +3 -2
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/index.js +1 -1
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/multimap.js +3 -2
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/setmultimap.js +3 -2
- package/dist/melonjs.mjs/node_modules/core-js/es/string/trim-end.js +13 -0
- package/dist/melonjs.mjs/node_modules/core-js/es/string/trim-start.js +13 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/a-callable.js +22 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/an-object.js +21 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/array-includes.js +45 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/classof-raw.js +19 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/classof.js +43 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/copy-constructor-properties.js +32 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/create-non-enumerable-property.js +24 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/create-property-descriptor.js +17 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/define-built-in.js +43 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/define-global-property.js +23 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/descriptors.js +18 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/document-all.js +18 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/document-create-element.js +22 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/engine-user-agent.js +14 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/engine-v8-version.js +39 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/entry-unbind.js +18 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/enum-bug-keys.js +19 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/export.js +72 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/fails.js +16 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/function-bind-native.js +19 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/function-call.js +18 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/function-name.js +29 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/function-uncurry-this.js +22 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/get-built-in.js +22 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/get-method.js +21 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/global.js +25 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/has-own-property.js +23 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/hidden-keys.js +10 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/ie8-dom-define.js +24 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/indexed-object.js +28 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/inspect-source.js +27 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/internal-state.js +88 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/is-callable.js +22 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/is-forced.js +34 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/is-null-or-undefined.js +14 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/is-object.js +22 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/is-symbol.js +27 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/length-of-array-like.js +18 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/make-built-in.js +68 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/math-trunc.js +19 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-define-property.js +58 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-get-own-property-descriptor.js +41 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-get-own-property-names.js +23 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-get-own-property-symbols.js +12 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-is-prototype-of.js +14 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-keys-internal.js +35 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-property-is-enumerable.js +23 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/ordinary-to-primitive.js +28 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/own-keys.js +31 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/require-object-coercible.js +21 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/shared-key.js +21 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/shared-store.js +19 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/shared.js +24 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim-end.js +22 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim-forced.js +28 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim-start.js +22 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim.js +45 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/symbol-constructor-detection.js +26 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-absolute-index.js +23 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-indexed-object.js +19 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-integer-or-infinity.js +20 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-length.js +20 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-object.js +20 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-primitive.js +41 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-property-key.js +21 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-string-tag-support.js +19 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-string.js +19 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/try-to-string.js +18 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/uid.js +20 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/use-symbol-as-uid.js +18 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/v8-prototype-define-bug.js +24 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/weak-map-basic-detection.js +18 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/well-known-symbol.js +41 -0
- package/dist/melonjs.mjs/node_modules/core-js/internals/whitespaces.js +12 -0
- package/dist/melonjs.mjs/node_modules/core-js/modules/es.global-this.js +18 -0
- package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-end.js +22 -0
- package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-left.js +19 -0
- package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-right.js +19 -0
- package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-start.js +22 -0
- package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +4 -5
- package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +3 -3
- package/dist/melonjs.mjs/node_modules/eventemitter3/index.mjs.js +9 -0
- package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +5 -2
- package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +3 -2
- package/dist/melonjs.mjs/particles/emitter.js +1 -1
- package/dist/melonjs.mjs/particles/particle.js +1 -1
- package/dist/melonjs.mjs/particles/settings.js +1 -1
- package/dist/melonjs.mjs/physics/body.js +1 -1
- package/dist/melonjs.mjs/physics/bounds.js +1 -1
- package/dist/melonjs.mjs/physics/collision.js +3 -3
- package/dist/melonjs.mjs/physics/detector.js +174 -146
- package/dist/melonjs.mjs/physics/quadtree.js +1 -1
- package/dist/melonjs.mjs/physics/response.js +1 -1
- package/dist/melonjs.mjs/physics/sat.js +1 -1
- package/dist/melonjs.mjs/physics/world.js +10 -30
- package/dist/melonjs.mjs/plugin/plugin.js +4 -4
- package/dist/melonjs.mjs/polyfill/console.js +18 -0
- package/dist/melonjs.mjs/polyfill/performance.js +27 -0
- package/dist/melonjs.mjs/polyfill/requestAnimationFrame.js +46 -0
- package/dist/melonjs.mjs/polyfill/roundrect.js +242 -0
- package/dist/melonjs.mjs/renderable/collectable.js +1 -1
- package/dist/melonjs.mjs/renderable/colorlayer.js +1 -1
- package/dist/melonjs.mjs/renderable/container.js +3 -87
- package/dist/melonjs.mjs/renderable/dragndrop.js +1 -1
- package/dist/melonjs.mjs/renderable/imagelayer.js +2 -2
- package/dist/melonjs.mjs/renderable/light2d.js +1 -1
- package/dist/melonjs.mjs/renderable/nineslicesprite.js +1 -1
- package/dist/melonjs.mjs/renderable/re_container.js +1016 -0
- package/dist/melonjs.mjs/renderable/renderable.js +1 -1
- package/dist/melonjs.mjs/renderable/sprite.js +1 -1
- package/dist/melonjs.mjs/renderable/trigger.js +2 -2
- package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +1 -1
- package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +1 -1
- package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +1 -1
- package/dist/melonjs.mjs/state/stage.js +2 -2
- package/dist/melonjs.mjs/state/state.js +2 -2
- package/dist/melonjs.mjs/system/device.js +9 -29
- package/dist/melonjs.mjs/system/dom.js +3 -2
- package/dist/melonjs.mjs/system/event.js +1 -1
- package/dist/melonjs.mjs/system/platform.js +1 -1
- package/dist/melonjs.mjs/system/pooling.js +1 -1
- package/dist/melonjs.mjs/system/save.js +1 -1
- package/dist/melonjs.mjs/system/timer.js +1 -1
- package/dist/melonjs.mjs/text/bitmaptext.js +1 -1
- package/dist/melonjs.mjs/text/bitmaptextdata.js +1 -1
- package/dist/melonjs.mjs/text/glyph.js +1 -1
- package/dist/melonjs.mjs/text/text.js +1 -1
- package/dist/melonjs.mjs/text/textmetrics.js +1 -1
- package/dist/melonjs.mjs/text/textstyle.js +1 -1
- package/dist/melonjs.mjs/tweens/easing.js +1 -1
- package/dist/melonjs.mjs/tweens/interpolation.js +1 -1
- package/dist/melonjs.mjs/tweens/tween.js +2 -2
- package/dist/melonjs.mjs/utils/agent.js +1 -1
- package/dist/melonjs.mjs/utils/array.js +1 -1
- package/dist/melonjs.mjs/utils/file.js +1 -1
- package/dist/melonjs.mjs/utils/function.js +1 -1
- package/dist/melonjs.mjs/utils/string.js +1 -1
- package/dist/melonjs.mjs/utils/utils.js +4 -29
- package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +4 -1
- package/dist/melonjs.mjs/video/renderer.js +26 -6
- package/dist/melonjs.mjs/video/texture/atlas.js +1 -1
- package/dist/melonjs.mjs/video/texture/cache.js +1 -1
- package/dist/melonjs.mjs/video/texture/canvas_texture.js +21 -1
- package/dist/melonjs.mjs/video/utils/autodetect.js +27 -0
- package/dist/melonjs.mjs/video/utils/resize.js +116 -0
- package/dist/melonjs.mjs/video/video.js +20 -294
- package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +1 -1
- package/dist/melonjs.mjs/video/webgl/glshader.js +2 -3
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/attributes.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/precision.js +20 -2
- package/dist/melonjs.mjs/video/webgl/utils/program.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/string.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +1 -1
- package/dist/melonjs.mjs/video/webgl/webgl_compositor.js +1 -1
- package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +4 -1
- package/dist/melonjs.module.js +28551 -26959
- package/dist/types/application/application.d.ts +144 -0
- package/dist/types/application/header.d.ts +5 -0
- package/dist/types/application/resize.d.ts +5 -0
- package/dist/types/application/settings.d.ts +18 -0
- package/dist/types/audio/audio.d.ts +267 -0
- package/dist/types/camera/camera2d.d.ts +289 -0
- package/dist/types/entity/entity.d.ts +98 -0
- package/{src/game.js → dist/types/game.d.ts} +3 -14
- package/dist/types/geometries/ellipse.d.ts +154 -0
- package/dist/types/geometries/line.d.ts +11 -0
- package/dist/types/geometries/path2d.d.ts +121 -0
- package/dist/types/geometries/point.d.ts +53 -0
- package/dist/types/geometries/poly.d.ts +222 -0
- package/dist/types/geometries/rectangle.d.ts +176 -0
- package/dist/types/geometries/roundrect.d.ts +52 -0
- package/dist/types/index.d.ts +3 -2
- package/dist/types/input/gamepad.d.ts +95 -0
- package/dist/types/input/input.d.ts +15 -0
- package/dist/types/input/keyboard.d.ts +205 -0
- package/dist/types/input/pointer.d.ts +270 -0
- package/dist/types/input/pointerevent.d.ts +181 -0
- package/dist/types/lang/deprecated.d.ts +53 -0
- package/dist/types/level/level.d.ts +134 -0
- package/dist/types/level/tiled/TMXGroup.d.ts +82 -0
- package/dist/types/level/tiled/TMXLayer.d.ts +180 -0
- package/dist/types/level/tiled/TMXObject.d.ts +195 -0
- package/dist/types/level/tiled/TMXTile.d.ts +78 -0
- package/dist/types/level/tiled/TMXTileMap.d.ts +180 -0
- package/dist/types/level/tiled/TMXTileset.d.ts +94 -0
- package/dist/types/level/tiled/TMXTilesetGroup.d.ts +32 -0
- package/dist/types/level/tiled/TMXUtils.d.ts +47 -0
- package/dist/types/level/tiled/renderer/TMXHexagonalRenderer.d.ts +87 -0
- package/dist/types/level/tiled/renderer/TMXIsometricRenderer.d.ts +55 -0
- package/dist/types/level/tiled/renderer/TMXOrthogonalRenderer.d.ts +43 -0
- package/dist/types/level/tiled/renderer/TMXRenderer.d.ts +75 -0
- package/dist/types/level/tiled/renderer/TMXStaggeredRenderer.d.ts +8 -0
- package/dist/types/loader/loader.d.ts +181 -0
- package/dist/types/loader/loadingscreen.d.ts +18 -0
- package/dist/types/math/color.d.ts +170 -0
- package/dist/types/math/math.d.ts +165 -0
- package/dist/types/math/matrix2.d.ts +209 -0
- package/dist/types/math/matrix3.d.ts +236 -0
- package/dist/types/math/observable_vector2.d.ts +278 -0
- package/dist/types/math/observable_vector3.d.ts +277 -0
- package/dist/types/math/vector2.d.ts +327 -0
- package/dist/types/math/vector3.d.ts +332 -0
- package/dist/types/particles/emitter.d.ts +188 -0
- package/dist/types/particles/particle.d.ts +32 -0
- package/dist/types/particles/settings.d.ts +32 -0
- package/dist/types/physics/body.d.ts +330 -0
- package/dist/types/physics/bounds.d.ts +250 -0
- package/dist/types/physics/collision.d.ts +44 -0
- package/dist/types/physics/detector.d.ts +64 -0
- package/dist/types/physics/quadtree.d.ts +79 -0
- package/dist/types/physics/response.d.ts +37 -0
- package/dist/types/physics/sat.d.ts +48 -0
- package/dist/types/physics/world.d.ts +83 -0
- package/dist/types/plugin/plugin.d.ts +10 -0
- package/dist/types/polyfill/console.d.ts +0 -0
- package/dist/types/polyfill/index.d.ts +1 -0
- package/dist/types/polyfill/performance.d.ts +0 -0
- package/dist/types/polyfill/requestAnimationFrame.d.ts +1 -0
- package/dist/types/polyfill/roundrect.d.ts +0 -0
- package/dist/types/renderable/collectable.d.ts +19 -0
- package/dist/types/renderable/colorlayer.d.ts +28 -0
- package/dist/types/renderable/container.d.ts +302 -0
- package/dist/types/renderable/dragndrop.d.ts +118 -0
- package/dist/types/renderable/imagelayer.d.ts +106 -0
- package/dist/types/renderable/light2d.d.ts +58 -0
- package/dist/types/renderable/nineslicesprite.d.ts +59 -0
- package/dist/types/renderable/renderable.d.ts +402 -0
- package/dist/types/renderable/sprite.d.ts +268 -0
- package/dist/types/renderable/trigger.d.ts +61 -0
- package/dist/types/renderable/ui/uibaseelement.d.ts +95 -0
- package/dist/types/renderable/ui/uispriteelement.d.ts +127 -0
- package/dist/types/renderable/ui/uitextbutton.d.ts +54 -0
- package/dist/types/state/stage.d.ts +116 -0
- package/dist/types/state/state.d.ts +170 -0
- package/dist/types/system/device.d.ts +579 -0
- package/dist/types/system/dom.d.ts +1 -0
- package/dist/types/system/event.d.ts +473 -0
- package/dist/types/system/platform.d.ts +31 -0
- package/dist/types/system/pooling.d.ts +101 -0
- package/dist/types/system/save.d.ts +25 -0
- package/dist/types/system/timer.d.ts +126 -0
- package/dist/types/text/bitmaptext.d.ts +151 -0
- package/dist/types/text/bitmaptextdata.d.ts +35 -0
- package/dist/types/text/glyph.d.ts +28 -0
- package/dist/types/text/text.d.ts +173 -0
- package/dist/types/text/textmetrics.d.ts +47 -0
- package/dist/types/text/textstyle.d.ts +5 -0
- package/dist/types/tweens/easing.d.ts +46 -0
- package/dist/types/tweens/interpolation.d.ts +18 -0
- package/dist/types/tweens/tween.d.ts +195 -0
- package/dist/types/utils/agent.d.ts +21 -0
- package/dist/types/utils/array.d.ts +39 -0
- package/dist/types/utils/file.d.ts +18 -0
- package/dist/types/utils/function.d.ts +32 -0
- package/dist/types/utils/string.d.ts +50 -0
- package/dist/types/utils/utils.d.ts +17 -0
- package/dist/types/video/canvas/canvas_renderer.d.ts +380 -0
- package/dist/types/video/renderer.d.ts +222 -0
- package/dist/types/video/texture/atlas.d.ts +201 -0
- package/dist/types/video/texture/cache.d.ts +45 -0
- package/dist/types/video/texture/canvas_texture.d.ts +78 -0
- package/dist/types/video/utils/autodetect.d.ts +7 -0
- package/dist/types/video/utils/resize.d.ts +4 -0
- package/dist/types/video/video.d.ts +92 -0
- package/dist/types/video/webgl/buffer/vertex.d.ts +56 -0
- package/dist/types/video/webgl/glshader.d.ts +93 -0
- package/dist/types/video/webgl/utils/attributes.d.ts +4 -0
- package/dist/types/video/webgl/utils/precision.d.ts +13 -0
- package/dist/types/video/webgl/utils/program.d.ts +5 -0
- package/dist/types/video/webgl/utils/string.d.ts +5 -0
- package/dist/types/video/webgl/utils/uniforms.d.ts +4 -0
- package/dist/types/video/webgl/webgl_compositor.d.ts +174 -0
- package/dist/types/video/webgl/webgl_renderer.d.ts +429 -0
- package/package.json +14 -14
- package/src/application/application.js +171 -20
- package/src/application/header.js +25 -0
- package/src/application/resize.js +110 -0
- package/src/application/settings.js +19 -0
- package/src/camera/camera2d.js +1 -1
- package/src/index.js +34 -23
- package/src/input/pointer.js +1 -1
- package/src/input/pointerevent.js +6 -7
- package/src/level/level.js +1 -1
- package/src/level/tiled/TMXLayer.js +1 -1
- package/src/level/tiled/TMXTileMap.js +2 -2
- package/src/loader/loadingscreen.js +1 -1
- package/src/physics/collision.js +2 -2
- package/src/physics/detector.js +172 -145
- package/src/physics/world.js +10 -30
- package/src/plugin/plugin.js +1 -1
- package/src/renderable/container.js +7 -91
- package/src/renderable/imagelayer.js +1 -1
- package/src/renderable/trigger.js +1 -1
- package/src/renderable/ui/uibaseelement.js +1 -1
- package/src/state/stage.js +1 -1
- package/src/state/state.js +1 -1
- package/src/system/device.js +7 -27
- package/src/system/dom.js +2 -1
- package/src/tweens/tween.js +1 -1
- package/src/utils/utils.js +3 -28
- package/src/video/canvas/canvas_renderer.js +3 -0
- package/src/video/renderer.js +27 -7
- package/src/video/texture/canvas_texture.js +20 -0
- package/src/video/utils/autodetect.js +18 -0
- package/src/video/video.js +17 -291
- package/src/video/webgl/glshader.js +3 -4
- package/src/video/webgl/utils/precision.js +18 -0
- package/src/video/webgl/webgl_renderer.js +3 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* melonJS Game Engine - v14.3.0
|
|
3
|
+
* http://www.melonjs.org
|
|
4
|
+
* melonjs is licensed under the MIT License.
|
|
5
|
+
* http://www.opensource.org/licenses/mit-license
|
|
6
|
+
* @copyright (C) 2011 - 2022 Olivier Biot (AltByte Pte Ltd)
|
|
7
|
+
*/
|
|
8
|
+
import { getParentBounds, devicePixelRatio } from '../../system/device.js';
|
|
9
|
+
import game from '../../game.js';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* scale the "displayed" canvas by the given scalar.
|
|
13
|
+
* this will modify the size of canvas element directly.
|
|
14
|
+
* Only use this if you are not using the automatic scaling feature.
|
|
15
|
+
* @param {number} x - x scaling multiplier
|
|
16
|
+
* @param {number} y - y scaling multiplier
|
|
17
|
+
*/
|
|
18
|
+
function scale(renderer, x, y) {
|
|
19
|
+
var canvas = renderer.getCanvas();
|
|
20
|
+
var context = renderer.getContext();
|
|
21
|
+
var settings = renderer.settings;
|
|
22
|
+
var pixelRatio = devicePixelRatio;
|
|
23
|
+
|
|
24
|
+
var w = settings.zoomX = canvas.width * x * pixelRatio;
|
|
25
|
+
var h = settings.zoomY = canvas.height * y * pixelRatio;
|
|
26
|
+
|
|
27
|
+
// update the global scale variable
|
|
28
|
+
renderer.scaleRatio.set(x * pixelRatio, y * pixelRatio);
|
|
29
|
+
|
|
30
|
+
// adjust CSS style based on device pixel ratio
|
|
31
|
+
canvas.style.width = (w / pixelRatio) + "px";
|
|
32
|
+
canvas.style.height = (h / pixelRatio) + "px";
|
|
33
|
+
|
|
34
|
+
// if anti-alias and blend mode were resetted (e.g. Canvas mode)
|
|
35
|
+
renderer.setAntiAlias(context, settings.antiAlias);
|
|
36
|
+
renderer.setBlendMode(settings.blendMode, context);
|
|
37
|
+
|
|
38
|
+
// force repaint
|
|
39
|
+
game.repaint();
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* callback for window resize event
|
|
44
|
+
*/
|
|
45
|
+
function onresize(renderer) {
|
|
46
|
+
var settings = renderer.settings;
|
|
47
|
+
var scaleX = 1, scaleY = 1;
|
|
48
|
+
|
|
49
|
+
if (settings.autoScale) {
|
|
50
|
+
|
|
51
|
+
// set max the canvas max size if CSS values are defined
|
|
52
|
+
var canvasMaxWidth = Infinity;
|
|
53
|
+
var canvasMaxHeight = Infinity;
|
|
54
|
+
|
|
55
|
+
if (globalThis.getComputedStyle) {
|
|
56
|
+
var style = globalThis.getComputedStyle(renderer.getCanvas(), null);
|
|
57
|
+
canvasMaxWidth = parseInt(style.maxWidth, 10) || Infinity;
|
|
58
|
+
canvasMaxHeight = parseInt(style.maxHeight, 10) || Infinity;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// get the maximum canvas size within the parent div containing the canvas container
|
|
62
|
+
var nodeBounds = getParentBounds(game.getParentElement());
|
|
63
|
+
|
|
64
|
+
var _max_width = Math.min(canvasMaxWidth, nodeBounds.width);
|
|
65
|
+
var _max_height = Math.min(canvasMaxHeight, nodeBounds.height);
|
|
66
|
+
|
|
67
|
+
// calculate final canvas width & height
|
|
68
|
+
var screenRatio = _max_width / _max_height;
|
|
69
|
+
|
|
70
|
+
if ((settings.scaleMethod === "fill-min" && screenRatio > renderer.designRatio) ||
|
|
71
|
+
(settings.scaleMethod === "fill-max" && screenRatio < renderer.designRatio) ||
|
|
72
|
+
(settings.scaleMethod === "flex-width")
|
|
73
|
+
) {
|
|
74
|
+
// resize the display canvas to fill the parent container
|
|
75
|
+
var sWidth = Math.min(canvasMaxWidth, settings.height * screenRatio);
|
|
76
|
+
scaleX = scaleY = _max_width / sWidth;
|
|
77
|
+
renderer.resize(Math.floor(sWidth), settings.height);
|
|
78
|
+
}
|
|
79
|
+
else if ((settings.scaleMethod === "fill-min" && screenRatio < renderer.designRatio) ||
|
|
80
|
+
(settings.scaleMethod === "fill-max" && screenRatio > renderer.designRatio) ||
|
|
81
|
+
(settings.scaleMethod === "flex-height")
|
|
82
|
+
) {
|
|
83
|
+
// resize the display canvas to fill the parent container
|
|
84
|
+
var sHeight = Math.min(canvasMaxHeight, settings.width * (_max_height / _max_width));
|
|
85
|
+
scaleX = scaleY = _max_height / sHeight;
|
|
86
|
+
renderer.resize(settings.width, Math.floor(sHeight));
|
|
87
|
+
}
|
|
88
|
+
else if (settings.scaleMethod === "flex") {
|
|
89
|
+
// resize the display canvas to fill the parent container
|
|
90
|
+
renderer.resize(Math.floor(_max_width), Math.floor(_max_height));
|
|
91
|
+
}
|
|
92
|
+
else if (settings.scaleMethod === "stretch") {
|
|
93
|
+
// scale the display canvas to fit with the parent container
|
|
94
|
+
scaleX = _max_width / settings.width;
|
|
95
|
+
scaleY = _max_height / settings.height;
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
// scale the display canvas to fit the parent container
|
|
99
|
+
// make sure we maintain the original aspect ratio
|
|
100
|
+
if (screenRatio < renderer.designRatio) {
|
|
101
|
+
scaleX = scaleY = _max_width / settings.width;
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
scaleX = scaleY = _max_height / settings.height;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// adjust scaling ratio based on the new scaling ratio
|
|
109
|
+
scale(renderer, scaleX, scaleY);
|
|
110
|
+
} else {
|
|
111
|
+
// adjust scaling ratio based on the given settings
|
|
112
|
+
scale(renderer, settings.scale, settings.scale);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export { onresize };
|
|
@@ -1,140 +1,21 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v14.
|
|
2
|
+
* melonJS Game Engine - v14.3.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
6
6
|
* @copyright (C) 2011 - 2022 Olivier Biot (AltByte Pte Ltd)
|
|
7
7
|
*/
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
8
|
+
import { emit, WINDOW_ONRESIZE, WINDOW_ONORIENTATION_CHANGE, WINDOW_ONSCROLL, VIDEO_INIT } from '../system/event.js';
|
|
9
|
+
import { game, initialized } from '../index.js';
|
|
10
|
+
import { offscreenCanvas, screenOrientation } from '../system/device.js';
|
|
11
11
|
import utils from '../utils/utils.js';
|
|
12
|
-
import { emit, WINDOW_ONRESIZE, WINDOW_ONORIENTATION_CHANGE, WINDOW_ONSCROLL, on, VIDEO_INIT } from '../system/event.js';
|
|
13
|
-
import game from '../game.js';
|
|
14
|
-
import { offscreenCanvas, screenOrientation, getElement, platform, enableSwipe, devicePixelRatio, getScreenOrientation, language, isWebGLSupported, getParentBounds, hasWebAudio } from '../system/device.js';
|
|
15
|
-
import { initialized, version } from '../index.js';
|
|
16
12
|
|
|
17
13
|
/**
|
|
18
|
-
* video functions
|
|
19
14
|
* @namespace video
|
|
20
15
|
*/
|
|
21
16
|
|
|
22
|
-
var designRatio = 1;
|
|
23
|
-
var designWidth = 0;
|
|
24
|
-
var designHeight = 0;
|
|
25
|
-
|
|
26
|
-
// default video settings
|
|
27
|
-
var settings = {
|
|
28
|
-
parent : undefined,
|
|
29
|
-
renderer : 2, // AUTO
|
|
30
|
-
autoScale : false,
|
|
31
|
-
scale : 1.0,
|
|
32
|
-
scaleMethod : "manual",
|
|
33
|
-
transparent : false,
|
|
34
|
-
premultipliedAlpha: true,
|
|
35
|
-
blendMode : "normal",
|
|
36
|
-
antiAlias : false,
|
|
37
|
-
failIfMajorPerformanceCaveat : true,
|
|
38
|
-
subPixel : false,
|
|
39
|
-
preferWebGL1 : false,
|
|
40
|
-
powerPreference : "default",
|
|
41
|
-
verbose : false,
|
|
42
|
-
consoleHeader : true
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Auto-detect the best renderer to use
|
|
47
|
-
* @ignore
|
|
48
|
-
*/
|
|
49
|
-
function autoDetectRenderer(options) {
|
|
50
|
-
try {
|
|
51
|
-
if (isWebGLSupported(options)) {
|
|
52
|
-
return new WebGLRenderer(options);
|
|
53
|
-
}
|
|
54
|
-
} catch (e) {
|
|
55
|
-
console.log("Error creating WebGL renderer :" + e.message);
|
|
56
|
-
}
|
|
57
|
-
return new CanvasRenderer(options);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* callback for window resize event
|
|
62
|
-
* @ignore
|
|
63
|
-
*/
|
|
64
|
-
function onresize() {
|
|
65
|
-
var settings = renderer.settings;
|
|
66
|
-
var scaleX = 1, scaleY = 1;
|
|
67
|
-
|
|
68
|
-
if (settings.autoScale) {
|
|
69
|
-
|
|
70
|
-
// set max the canvas max size if CSS values are defined
|
|
71
|
-
var canvasMaxWidth = Infinity;
|
|
72
|
-
var canvasMaxHeight = Infinity;
|
|
73
|
-
|
|
74
|
-
if (globalThis.getComputedStyle) {
|
|
75
|
-
var style = globalThis.getComputedStyle(renderer.getCanvas(), null);
|
|
76
|
-
canvasMaxWidth = parseInt(style.maxWidth, 10) || Infinity;
|
|
77
|
-
canvasMaxHeight = parseInt(style.maxHeight, 10) || Infinity;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
// get the maximum canvas size within the parent div containing the canvas container
|
|
81
|
-
var nodeBounds = getParentBounds(getParent());
|
|
82
|
-
|
|
83
|
-
var _max_width = Math.min(canvasMaxWidth, nodeBounds.width);
|
|
84
|
-
var _max_height = Math.min(canvasMaxHeight, nodeBounds.height);
|
|
85
|
-
|
|
86
|
-
// calculate final canvas width & height
|
|
87
|
-
var screenRatio = _max_width / _max_height;
|
|
88
|
-
|
|
89
|
-
if ((settings.scaleMethod === "fill-min" && screenRatio > designRatio) ||
|
|
90
|
-
(settings.scaleMethod === "fill-max" && screenRatio < designRatio) ||
|
|
91
|
-
(settings.scaleMethod === "flex-width")
|
|
92
|
-
) {
|
|
93
|
-
// resize the display canvas to fill the parent container
|
|
94
|
-
var sWidth = Math.min(canvasMaxWidth, designHeight * screenRatio);
|
|
95
|
-
scaleX = scaleY = _max_width / sWidth;
|
|
96
|
-
renderer.resize(Math.floor(sWidth), designHeight);
|
|
97
|
-
}
|
|
98
|
-
else if ((settings.scaleMethod === "fill-min" && screenRatio < designRatio) ||
|
|
99
|
-
(settings.scaleMethod === "fill-max" && screenRatio > designRatio) ||
|
|
100
|
-
(settings.scaleMethod === "flex-height")
|
|
101
|
-
) {
|
|
102
|
-
// resize the display canvas to fill the parent container
|
|
103
|
-
var sHeight = Math.min(canvasMaxHeight, designWidth * (_max_height / _max_width));
|
|
104
|
-
scaleX = scaleY = _max_height / sHeight;
|
|
105
|
-
renderer.resize(designWidth, Math.floor(sHeight));
|
|
106
|
-
}
|
|
107
|
-
else if (settings.scaleMethod === "flex") {
|
|
108
|
-
// resize the display canvas to fill the parent container
|
|
109
|
-
renderer.resize(Math.floor(_max_width), Math.floor(_max_height));
|
|
110
|
-
}
|
|
111
|
-
else if (settings.scaleMethod === "stretch") {
|
|
112
|
-
// scale the display canvas to fit with the parent container
|
|
113
|
-
scaleX = _max_width / designWidth;
|
|
114
|
-
scaleY = _max_height / designHeight;
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
// scale the display canvas to fit the parent container
|
|
118
|
-
// make sure we maintain the original aspect ratio
|
|
119
|
-
if (screenRatio < designRatio) {
|
|
120
|
-
scaleX = scaleY = _max_width / designWidth;
|
|
121
|
-
}
|
|
122
|
-
else {
|
|
123
|
-
scaleX = scaleY = _max_height / designHeight;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
// adjust scaling ratio based on the new scaling ratio
|
|
128
|
-
scale(scaleX, scaleY);
|
|
129
|
-
} else {
|
|
130
|
-
// adjust scaling ratio based on the given settings
|
|
131
|
-
scale(settings.scale, settings.scale);
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
17
|
/**
|
|
136
18
|
* Select the HTML5 Canvas renderer
|
|
137
|
-
* @name CANVAS
|
|
138
19
|
* @memberof video
|
|
139
20
|
* @constant
|
|
140
21
|
*/
|
|
@@ -142,7 +23,6 @@ const CANVAS = 0;
|
|
|
142
23
|
|
|
143
24
|
/**
|
|
144
25
|
* Select the WebGL renderer
|
|
145
|
-
* @name WEBGL
|
|
146
26
|
* @memberof video
|
|
147
27
|
* @constant
|
|
148
28
|
*/
|
|
@@ -150,36 +30,15 @@ const WEBGL = 1;
|
|
|
150
30
|
|
|
151
31
|
/**
|
|
152
32
|
* Auto-select the renderer (Attempt WebGL first, with fallback to Canvas)
|
|
153
|
-
* @name AUTO
|
|
154
33
|
* @memberof video
|
|
155
34
|
* @constant
|
|
156
35
|
*/
|
|
157
36
|
const AUTO = 2;
|
|
158
37
|
|
|
159
|
-
/**
|
|
160
|
-
* the parent container of the main canvas element
|
|
161
|
-
* @ignore
|
|
162
|
-
* @type {HTMLElement}
|
|
163
|
-
* @readonly
|
|
164
|
-
* @name parent
|
|
165
|
-
* @memberof video
|
|
166
|
-
*/
|
|
167
|
-
let parent = null;
|
|
168
|
-
|
|
169
|
-
/**
|
|
170
|
-
* the scaling ratio to be applied to the display canvas
|
|
171
|
-
* @name scaleRatio
|
|
172
|
-
* @type {Vector2d}
|
|
173
|
-
* @default <1,1>
|
|
174
|
-
* @memberof video
|
|
175
|
-
*/
|
|
176
|
-
let scaleRatio = new Vector2d(1, 1);
|
|
177
|
-
|
|
178
38
|
/**
|
|
179
39
|
* A reference to the active Canvas or WebGL active renderer renderer
|
|
180
|
-
* @name renderer
|
|
181
|
-
* @type {CanvasRenderer|WebGLRenderer}
|
|
182
40
|
* @memberof video
|
|
41
|
+
* @type {CanvasRenderer|WebGLRenderer}
|
|
183
42
|
*/
|
|
184
43
|
let renderer = null;
|
|
185
44
|
|
|
@@ -200,12 +59,12 @@ let renderer = null;
|
|
|
200
59
|
* <center><img src="images/scale-flex-height.png"/></center><br>
|
|
201
60
|
* - <i><b>`stretch`</b></i> : Canvas is resized to fit; content is scaled to screen aspect ratio
|
|
202
61
|
* <center><img src="images/scale-stretch.png"/></center><br>
|
|
203
|
-
* @
|
|
62
|
+
* @memberof video
|
|
204
63
|
* @param {number} width - The width of the canvas viewport
|
|
205
64
|
* @param {number} height - The height of the canvas viewport
|
|
206
65
|
* @param {object} [options] - The optional video/renderer parameters.<br> (see Renderer(s) documentation for further specific options)
|
|
207
66
|
* @param {string|HTMLElement} [options.parent=document.body] - the DOM parent element to hold the canvas in the HTML file
|
|
208
|
-
* @param {number} [options.renderer=video.AUTO] - renderer to use (me.video.CANVAS, me.video.WEBGL, me.video.AUTO)
|
|
67
|
+
* @param {number|Renderer} [options.renderer=video.AUTO] - renderer to use (me.video.CANVAS, me.video.WEBGL, me.video.AUTO), or a custom renderer class
|
|
209
68
|
* @param {number|string} [options.scale=1.0] - enable scaling of the canvas ('auto' for automatic scaling)
|
|
210
69
|
* @param {string} [options.scaleMethod="fit"] - screen scaling modes ('fit','fill-min','fill-max','flex','flex-width','flex-height','stretch')
|
|
211
70
|
* @param {boolean} [options.preferWebGL1=false] - if true the renderer will only use WebGL 1
|
|
@@ -224,60 +83,22 @@ let renderer = null;
|
|
|
224
83
|
* });
|
|
225
84
|
*/
|
|
226
85
|
function init(width, height, options) {
|
|
227
|
-
|
|
228
86
|
// ensure melonjs has been properly initialized
|
|
229
87
|
if (!initialized) {
|
|
230
88
|
throw new Error("me.video.init() called before engine initialization.");
|
|
231
89
|
}
|
|
232
90
|
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
settings.antiAlias = !!(settings.antiAlias);
|
|
241
|
-
settings.failIfMajorPerformanceCaveat = !!(settings.failIfMajorPerformanceCaveat);
|
|
242
|
-
settings.subPixel = !!(settings.subPixel);
|
|
243
|
-
settings.verbose = !!(settings.verbose);
|
|
244
|
-
if (settings.scaleMethod.search(/^(fill-(min|max)|fit|flex(-(width|height))?|stretch)$/) !== -1) {
|
|
245
|
-
settings.autoScale = (settings.scale === "auto") || true;
|
|
246
|
-
} else {
|
|
247
|
-
// default scaling method
|
|
248
|
-
settings.scaleMethod = "fit";
|
|
249
|
-
settings.autoScale = (settings.scale === "auto") || false;
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
// display melonJS version
|
|
253
|
-
if (settings.consoleHeader !== false) {
|
|
254
|
-
// output video information in the console
|
|
255
|
-
console.log("melonJS 2 (v" + version + ") | http://melonjs.org" );
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
// override renderer settings if &webgl or &canvas is defined in the URL
|
|
259
|
-
var uriFragment = utils.getUriFragment();
|
|
260
|
-
if (uriFragment.webgl === true || uriFragment.webgl1 === true || uriFragment.webgl2 === true) {
|
|
261
|
-
settings.renderer = WEBGL;
|
|
262
|
-
if (uriFragment.webgl1 === true) {
|
|
263
|
-
settings.preferWebGL1 = true;
|
|
264
|
-
}
|
|
265
|
-
} else if (uriFragment.canvas === true) {
|
|
266
|
-
settings.renderer = CANVAS;
|
|
91
|
+
try {
|
|
92
|
+
// initialize the default game Application with the given options
|
|
93
|
+
game.init(width, height, options);
|
|
94
|
+
} catch (e) {
|
|
95
|
+
console(e.message);
|
|
96
|
+
// me.video.init() historically returns false if failing at creating/using a HTML5 canvas
|
|
97
|
+
return false;
|
|
267
98
|
}
|
|
268
99
|
|
|
269
|
-
//
|
|
270
|
-
|
|
271
|
-
scaleRatio.set(settings.scale, settings.scale);
|
|
272
|
-
|
|
273
|
-
// hold the requested video size ratio
|
|
274
|
-
designRatio = width / height;
|
|
275
|
-
designWidth = width;
|
|
276
|
-
designHeight = height;
|
|
277
|
-
|
|
278
|
-
// default scaled size value
|
|
279
|
-
settings.zoomX = width * scaleRatio.x;
|
|
280
|
-
settings.zoomY = height * scaleRatio.y;
|
|
100
|
+
// assign the default renderer
|
|
101
|
+
renderer = game.renderer;
|
|
281
102
|
|
|
282
103
|
//add a channel for the onresize/onorientationchange event
|
|
283
104
|
globalThis.addEventListener(
|
|
@@ -297,6 +118,7 @@ function init(width, height, options) {
|
|
|
297
118
|
},
|
|
298
119
|
false
|
|
299
120
|
);
|
|
121
|
+
|
|
300
122
|
// pre-fixed implementation on mozzila
|
|
301
123
|
globalThis.addEventListener(
|
|
302
124
|
"onmozorientationchange",
|
|
@@ -317,68 +139,6 @@ function init(width, height, options) {
|
|
|
317
139
|
emit(WINDOW_ONSCROLL, e);
|
|
318
140
|
}, 100), false);
|
|
319
141
|
|
|
320
|
-
// register to the channel
|
|
321
|
-
on(WINDOW_ONRESIZE, onresize, this);
|
|
322
|
-
on(WINDOW_ONORIENTATION_CHANGE, onresize, this);
|
|
323
|
-
|
|
324
|
-
try {
|
|
325
|
-
switch (settings.renderer) {
|
|
326
|
-
case AUTO:
|
|
327
|
-
case WEBGL:
|
|
328
|
-
renderer = autoDetectRenderer(settings);
|
|
329
|
-
break;
|
|
330
|
-
default:
|
|
331
|
-
renderer = new CanvasRenderer(settings);
|
|
332
|
-
break;
|
|
333
|
-
}
|
|
334
|
-
} catch (e) {
|
|
335
|
-
console(e.message);
|
|
336
|
-
// me.video.init() returns false if failing at creating/using a HTML5 canvas
|
|
337
|
-
return false;
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
// add our canvas (default to document.body if settings.parent is undefined)
|
|
341
|
-
parent = getElement(typeof settings.parent !== "undefined" ? settings.parent : document.body);
|
|
342
|
-
parent.appendChild(renderer.getCanvas());
|
|
343
|
-
|
|
344
|
-
// Mobile browser hacks
|
|
345
|
-
if (platform.isMobile) {
|
|
346
|
-
// Prevent the webview from moving on a swipe
|
|
347
|
-
enableSwipe(false);
|
|
348
|
-
}
|
|
349
|
-
|
|
350
|
-
// trigger an initial resize();
|
|
351
|
-
onresize();
|
|
352
|
-
|
|
353
|
-
// add an observer to detect when the dom tree is modified
|
|
354
|
-
if ("MutationObserver" in globalThis) {
|
|
355
|
-
// Create an observer instance linked to the callback function
|
|
356
|
-
var observer = new MutationObserver(onresize.bind(this));
|
|
357
|
-
|
|
358
|
-
// Start observing the target node for configured mutations
|
|
359
|
-
observer.observe(parent, {
|
|
360
|
-
attributes: false, childList: true, subtree: true
|
|
361
|
-
});
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
if (settings.consoleHeader !== false) {
|
|
365
|
-
var renderType = (renderer instanceof CanvasRenderer) ? "CANVAS" : "WebGL" + renderer.WebGLVersion;
|
|
366
|
-
var audioType = hasWebAudio ? "Web Audio" : "HTML5 Audio";
|
|
367
|
-
var gpu_renderer = (typeof renderer.GPURenderer === "string") ? " (" + renderer.GPURenderer + ")" : "";
|
|
368
|
-
// output video information in the console
|
|
369
|
-
console.log(
|
|
370
|
-
renderType + " renderer" + gpu_renderer + " | " +
|
|
371
|
-
audioType + " | " +
|
|
372
|
-
"pixel ratio " + devicePixelRatio + " | " +
|
|
373
|
-
(platform.nodeJS ? "node.js" : platform.isMobile ? "mobile" : "desktop") + " | " +
|
|
374
|
-
getScreenOrientation() + " | " +
|
|
375
|
-
language
|
|
376
|
-
);
|
|
377
|
-
console.log( "resolution: " + "requested " + width + "x" + height +
|
|
378
|
-
", got " + renderer.getWidth() + "x" + renderer.getHeight()
|
|
379
|
-
);
|
|
380
|
-
}
|
|
381
|
-
|
|
382
142
|
// notify the video has been initialized
|
|
383
143
|
emit(VIDEO_INIT);
|
|
384
144
|
|
|
@@ -387,7 +147,7 @@ function init(width, height, options) {
|
|
|
387
147
|
|
|
388
148
|
/**
|
|
389
149
|
* Create and return a new Canvas element
|
|
390
|
-
* @
|
|
150
|
+
* @memberof video
|
|
391
151
|
* @param {number} width - width
|
|
392
152
|
* @param {number} height - height
|
|
393
153
|
* @param {boolean} [returnOffscreenCanvas=false] - will return an OffscreenCanvas if supported
|
|
@@ -419,44 +179,10 @@ function createCanvas(width, height, returnOffscreenCanvas = false) {
|
|
|
419
179
|
|
|
420
180
|
/**
|
|
421
181
|
* return a reference to the parent DOM element holding the main canvas
|
|
422
|
-
* @function video.getParent
|
|
423
182
|
* @returns {HTMLElement}
|
|
424
183
|
*/
|
|
425
184
|
function getParent() {
|
|
426
|
-
return
|
|
427
|
-
}
|
|
428
|
-
|
|
429
|
-
/**
|
|
430
|
-
* scale the "displayed" canvas by the given scalar.
|
|
431
|
-
* this will modify the size of canvas element directly.
|
|
432
|
-
* Only use this if you are not using the automatic scaling feature.
|
|
433
|
-
* @function video.scale
|
|
434
|
-
* @see video.init
|
|
435
|
-
* @param {number} x - x scaling multiplier
|
|
436
|
-
* @param {number} y - y scaling multiplier
|
|
437
|
-
*/
|
|
438
|
-
function scale(x, y) {
|
|
439
|
-
var canvas = renderer.getCanvas();
|
|
440
|
-
var context = renderer.getContext();
|
|
441
|
-
var settings = renderer.settings;
|
|
442
|
-
var pixelRatio = devicePixelRatio;
|
|
443
|
-
|
|
444
|
-
var w = settings.zoomX = canvas.width * x * pixelRatio;
|
|
445
|
-
var h = settings.zoomY = canvas.height * y * pixelRatio;
|
|
446
|
-
|
|
447
|
-
// update the global scale variable
|
|
448
|
-
scaleRatio.set(x * pixelRatio, y * pixelRatio);
|
|
449
|
-
|
|
450
|
-
// adjust CSS style based on device pixel ratio
|
|
451
|
-
canvas.style.width = (w / pixelRatio) + "px";
|
|
452
|
-
canvas.style.height = (h / pixelRatio) + "px";
|
|
453
|
-
|
|
454
|
-
// if anti-alias and blend mode were resetted (e.g. Canvas mode)
|
|
455
|
-
renderer.setAntiAlias(context, settings.antiAlias);
|
|
456
|
-
renderer.setBlendMode(settings.blendMode, context);
|
|
457
|
-
|
|
458
|
-
// force repaint
|
|
459
|
-
game.repaint();
|
|
185
|
+
return game.getParentElement();
|
|
460
186
|
}
|
|
461
187
|
|
|
462
|
-
export { AUTO, CANVAS, WEBGL, createCanvas, getParent, init,
|
|
188
|
+
export { AUTO, CANVAS, WEBGL, createCanvas, getParent, init, renderer };
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v14.
|
|
2
|
+
* melonJS Game Engine - v14.3.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
6
6
|
* @copyright (C) 2011 - 2022 Olivier Biot (AltByte Pte Ltd)
|
|
7
7
|
*/
|
|
8
8
|
import { on, ONCONTEXT_LOST } from '../../system/event.js';
|
|
9
|
-
import { getMaxShaderPrecision } from '../../system/device.js';
|
|
10
9
|
import { extractUniforms } from './utils/uniforms.js';
|
|
11
10
|
import { extractAttributes } from './utils/attributes.js';
|
|
12
11
|
import { compileProgram } from './utils/program.js';
|
|
13
|
-
import { setPrecision } from './utils/precision.js';
|
|
12
|
+
import { setPrecision, getMaxShaderPrecision } from './utils/precision.js';
|
|
14
13
|
import { minify } from './utils/string.js';
|
|
15
14
|
|
|
16
15
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v14.
|
|
2
|
+
* melonJS Game Engine - v14.3.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
@@ -17,4 +17,22 @@ function setPrecision(src, precision) {
|
|
|
17
17
|
return src;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
/**
|
|
21
|
+
* return the highest precision format supported by this device for GL Shaders
|
|
22
|
+
* @ignore
|
|
23
|
+
* @param {WebGLRenderingContext} gl
|
|
24
|
+
* @returns {boolean} "lowp", "mediump", or "highp"
|
|
25
|
+
*/
|
|
26
|
+
function getMaxShaderPrecision(gl) {
|
|
27
|
+
if (gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.HIGH_FLOAT ).precision > 0 &&
|
|
28
|
+
gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_FLOAT ).precision > 0) {
|
|
29
|
+
return "highp";
|
|
30
|
+
}
|
|
31
|
+
if (gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.MEDIUM_FLOAT ).precision > 0 &&
|
|
32
|
+
gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.MEDIUM_FLOAT ).precision > 0) {
|
|
33
|
+
return "mediump";
|
|
34
|
+
}
|
|
35
|
+
return "lowp";
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export { getMaxShaderPrecision, setPrecision };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v14.
|
|
2
|
+
* melonJS Game Engine - v14.3.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
@@ -143,6 +143,9 @@ import { isPowerOfTwo, nextPowerOfTwo } from '../../math/math.js';
|
|
|
143
143
|
// Create a texture cache
|
|
144
144
|
this.cache = new TextureCache(this.maxTextures);
|
|
145
145
|
|
|
146
|
+
// set the renderer type
|
|
147
|
+
this.type = "WebGL" + this.WebGLVersion;
|
|
148
|
+
|
|
146
149
|
// to simulate context lost and restore in WebGL:
|
|
147
150
|
// var ctx = me.video.renderer.context.getExtension('WEBGL_lose_context');
|
|
148
151
|
// ctx.loseContext()
|