melonjs 14.2.0 → 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/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +1 -1
- package/dist/melonjs.mjs/_virtual/arraymultimap.js +1 -1
- package/dist/melonjs.mjs/_virtual/earcut.js +1 -1
- 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 +1 -1
- package/dist/melonjs.mjs/_virtual/multimap.js +1 -1
- package/dist/melonjs.mjs/_virtual/setmultimap.js +1 -1
- package/dist/melonjs.mjs/application/application.js +153 -9
- package/dist/melonjs.mjs/application/header.js +34 -0
- package/dist/melonjs.mjs/application/resize.js +1 -1
- 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 +1 -1
- package/dist/melonjs.mjs/geometries/point.js +1 -1
- package/dist/melonjs.mjs/geometries/poly.js +1 -1
- 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 -30
- 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 +2 -2
- 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 +1 -1
- 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 +1 -1
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/setmultimap.js +1 -1
- package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +1 -1
- package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +1 -1
- package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +1 -1
- package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +1 -1
- 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 +3 -3
- 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/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 +2 -22
- package/dist/melonjs.mjs/system/dom.js +1 -1
- 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 +1 -1
- package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +4 -1
- package/dist/melonjs.mjs/video/renderer.js +8 -1
- 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 +3 -2
- package/dist/melonjs.mjs/video/utils/autodetect.js +27 -0
- package/dist/melonjs.mjs/video/utils/resize.js +1 -1
- package/dist/melonjs.mjs/video/video.js +15 -147
- 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 +20922 -20921
- 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 +4 -4
- package/src/application/application.js +151 -7
- package/src/application/header.js +25 -0
- package/src/{video/utils → application}/resize.js +9 -6
- 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 +1 -1
- 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/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 +0 -20
- package/src/tweens/tween.js +1 -1
- package/src/video/canvas/canvas_renderer.js +3 -0
- package/src/video/renderer.js +7 -0
- package/src/video/texture/canvas_texture.js +2 -1
- package/src/video/utils/autodetect.js +18 -0
- package/src/video/video.js +13 -145
- 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
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import Body from "
|
|
1
|
+
import Renderable from "./renderable";
|
|
2
|
+
import utils from "../utils/utils.js";
|
|
3
|
+
import { game } from "../index.js";
|
|
4
|
+
import * as event from "../system/event.js";
|
|
5
|
+
import pool from "../system/pooling.js";
|
|
6
|
+
import state from "../state/state.js";
|
|
7
|
+
import Body from "../physics/body.js";
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Private function to re-use for object removal in a defer
|
|
@@ -45,11 +45,8 @@ let globalFloatingCounter = 0;
|
|
|
45
45
|
|
|
46
46
|
/**
|
|
47
47
|
* whether the container is the root of the scene
|
|
48
|
-
* @public
|
|
49
48
|
* @type {boolean}
|
|
50
49
|
* @default false
|
|
51
|
-
* @name root
|
|
52
|
-
* @memberof Container
|
|
53
50
|
*/
|
|
54
51
|
this.root = root;
|
|
55
52
|
|
|
@@ -62,48 +59,34 @@ let globalFloatingCounter = 0;
|
|
|
62
59
|
/**
|
|
63
60
|
* The property of the child object that should be used to sort on <br>
|
|
64
61
|
* value : "x", "y", "z"
|
|
65
|
-
* @public
|
|
66
62
|
* @type {string}
|
|
67
63
|
* @default me.game.sortOn
|
|
68
|
-
* @name sortOn
|
|
69
|
-
* @memberof Container
|
|
70
64
|
*/
|
|
71
65
|
this.sortOn = game.sortOn;
|
|
72
66
|
|
|
73
67
|
/**
|
|
74
68
|
* Specify if the children list should be automatically sorted when adding a new child
|
|
75
|
-
* @public
|
|
76
69
|
* @type {boolean}
|
|
77
70
|
* @default true
|
|
78
|
-
* @name autoSort
|
|
79
|
-
* @memberof Container
|
|
80
71
|
*/
|
|
81
72
|
this.autoSort = true;
|
|
82
73
|
|
|
83
74
|
/**
|
|
84
75
|
* Specify if the children z index should automatically be managed by the parent container
|
|
85
|
-
* @public
|
|
86
76
|
* @type {boolean}
|
|
87
77
|
* @default true
|
|
88
|
-
* @name autoDepth
|
|
89
|
-
* @memberof Container
|
|
90
78
|
*/
|
|
91
79
|
this.autoDepth = true;
|
|
92
80
|
|
|
93
81
|
/**
|
|
94
82
|
* Specify if the container draw operation should clip his children to its own bounds
|
|
95
|
-
* @public
|
|
96
83
|
* @type {boolean}
|
|
97
84
|
* @default false
|
|
98
|
-
* @name clipping
|
|
99
|
-
* @memberof Container
|
|
100
85
|
*/
|
|
101
86
|
this.clipping = false;
|
|
102
87
|
|
|
103
88
|
/**
|
|
104
89
|
* a callback to be extended, triggered after a child has been added or removed
|
|
105
|
-
* @name onChildChange
|
|
106
|
-
* @memberof Container#
|
|
107
90
|
* @param {number} index - added or removed child index
|
|
108
91
|
*/
|
|
109
92
|
this.onChildChange = function (index) { // eslint-disable-line no-unused-vars
|
|
@@ -114,21 +97,15 @@ let globalFloatingCounter = 0;
|
|
|
114
97
|
* Specify if the container bounds should automatically take in account
|
|
115
98
|
* all child bounds when updated (this is expensive and disabled by default,
|
|
116
99
|
* only enable if necessary)
|
|
117
|
-
* @public
|
|
118
100
|
* @type {boolean}
|
|
119
101
|
* @default false
|
|
120
|
-
* @name enableChildBoundsUpdate
|
|
121
|
-
* @memberof Container
|
|
122
102
|
*/
|
|
123
103
|
this.enableChildBoundsUpdate = false;
|
|
124
104
|
|
|
125
105
|
/**
|
|
126
106
|
* define a background color for this container
|
|
127
|
-
* @public
|
|
128
107
|
* @type {Color}
|
|
129
|
-
* @name backgroundColor
|
|
130
108
|
* @default (0, 0, 0, 0.0)
|
|
131
|
-
* @memberof Container
|
|
132
109
|
* @example
|
|
133
110
|
* // add a red background color to this container
|
|
134
111
|
* this.backgroundColor.setColor(255, 0, 0);
|
|
@@ -158,8 +135,6 @@ let globalFloatingCounter = 0;
|
|
|
158
135
|
|
|
159
136
|
/**
|
|
160
137
|
* reset the container, removing all childrens, and reseting transforms.
|
|
161
|
-
* @name reset
|
|
162
|
-
* @memberof Container
|
|
163
138
|
*/
|
|
164
139
|
reset() {
|
|
165
140
|
// cancel any sort operation
|
|
@@ -195,8 +170,6 @@ let globalFloatingCounter = 0;
|
|
|
195
170
|
* will not be in any container. <br>
|
|
196
171
|
* if the given child implements a onActivateEvent method, that method will be called
|
|
197
172
|
* once the child is added to this container.
|
|
198
|
-
* @name addChild
|
|
199
|
-
* @memberof Container
|
|
200
173
|
* @param {Renderable} child
|
|
201
174
|
* @param {number} [z] - forces the z index of the child to the specified value
|
|
202
175
|
* @returns {Renderable} the added child
|
|
@@ -258,8 +231,6 @@ let globalFloatingCounter = 0;
|
|
|
258
231
|
/**
|
|
259
232
|
* Add a child to the container at the specified index<br>
|
|
260
233
|
* (the list won't be sorted after insertion)
|
|
261
|
-
* @name addChildAt
|
|
262
|
-
* @memberof Container
|
|
263
234
|
* @param {Renderable} child
|
|
264
235
|
* @param {number} index
|
|
265
236
|
* @returns {Renderable} the added child
|
|
@@ -316,8 +287,6 @@ let globalFloatingCounter = 0;
|
|
|
316
287
|
* - The current element being processed in the array <br>
|
|
317
288
|
* - The index of element in the array. <br>
|
|
318
289
|
* - The array forEach() was called upon. <br>
|
|
319
|
-
* @name forEach
|
|
320
|
-
* @memberof Container
|
|
321
290
|
* @param {Function} callback - fnction to execute on each element
|
|
322
291
|
* @param {object} [thisArg] - value to use as this(i.e reference Object) when executing callback.
|
|
323
292
|
* @example
|
|
@@ -352,8 +321,6 @@ let globalFloatingCounter = 0;
|
|
|
352
321
|
|
|
353
322
|
/**
|
|
354
323
|
* Swaps the position (z-index) of 2 children
|
|
355
|
-
* @name swapChildren
|
|
356
|
-
* @memberof Container
|
|
357
324
|
* @param {Renderable} child
|
|
358
325
|
* @param {Renderable} child2
|
|
359
326
|
*/
|
|
@@ -379,8 +346,6 @@ let globalFloatingCounter = 0;
|
|
|
379
346
|
|
|
380
347
|
/**
|
|
381
348
|
* Returns the Child at the specified index
|
|
382
|
-
* @name getChildAt
|
|
383
|
-
* @memberof Container
|
|
384
349
|
* @param {number} index
|
|
385
350
|
* @returns {Renderable} the child at the specified index
|
|
386
351
|
*/
|
|
@@ -395,8 +360,6 @@ let globalFloatingCounter = 0;
|
|
|
395
360
|
|
|
396
361
|
/**
|
|
397
362
|
* Returns the index of the given Child
|
|
398
|
-
* @name getChildIndex
|
|
399
|
-
* @memberof Container
|
|
400
363
|
* @param {Renderable} child
|
|
401
364
|
* @returns {number} index
|
|
402
365
|
*/
|
|
@@ -406,8 +369,6 @@ let globalFloatingCounter = 0;
|
|
|
406
369
|
|
|
407
370
|
/**
|
|
408
371
|
* Returns the next child within the container or undefined if none
|
|
409
|
-
* @name getNextChild
|
|
410
|
-
* @memberof Container
|
|
411
372
|
* @param {Renderable} child
|
|
412
373
|
* @returns {Renderable} child
|
|
413
374
|
*/
|
|
@@ -421,8 +382,6 @@ let globalFloatingCounter = 0;
|
|
|
421
382
|
|
|
422
383
|
/**
|
|
423
384
|
* Returns true if contains the specified Child
|
|
424
|
-
* @name hasChild
|
|
425
|
-
* @memberof Container
|
|
426
385
|
* @param {Renderable} child
|
|
427
386
|
* @returns {boolean}
|
|
428
387
|
*/
|
|
@@ -434,9 +393,6 @@ let globalFloatingCounter = 0;
|
|
|
434
393
|
* return the child corresponding to the given property and value.<br>
|
|
435
394
|
* note : avoid calling this function every frame since
|
|
436
395
|
* it parses the whole object tree each time
|
|
437
|
-
* @name getChildByProp
|
|
438
|
-
* @memberof Container
|
|
439
|
-
* @public
|
|
440
396
|
* @param {string} prop - Property name
|
|
441
397
|
* @param {string|RegExp|number|boolean} value - Value of the property
|
|
442
398
|
* @returns {Renderable[]} Array of childs
|
|
@@ -485,9 +441,6 @@ let globalFloatingCounter = 0;
|
|
|
485
441
|
|
|
486
442
|
/**
|
|
487
443
|
* returns the list of childs with the specified class type
|
|
488
|
-
* @name getChildByType
|
|
489
|
-
* @memberof Container
|
|
490
|
-
* @public
|
|
491
444
|
* @param {object} classType
|
|
492
445
|
* @returns {Renderable[]} Array of children
|
|
493
446
|
*/
|
|
@@ -511,9 +464,6 @@ let globalFloatingCounter = 0;
|
|
|
511
464
|
* as defined in Tiled (Name field of the Object Properties)<br>
|
|
512
465
|
* note : avoid calling this function every frame since
|
|
513
466
|
* it parses the whole object list each time
|
|
514
|
-
* @name getChildByName
|
|
515
|
-
* @memberof Container
|
|
516
|
-
* @public
|
|
517
467
|
* @param {string|RegExp|number|boolean} name - child name
|
|
518
468
|
* @returns {Renderable[]} Array of children
|
|
519
469
|
*/
|
|
@@ -525,9 +475,6 @@ let globalFloatingCounter = 0;
|
|
|
525
475
|
* return the child corresponding to the specified GUID<br>
|
|
526
476
|
* note : avoid calling this function every frame since
|
|
527
477
|
* it parses the whole object list each time
|
|
528
|
-
* @name getChildByGUID
|
|
529
|
-
* @memberof Container
|
|
530
|
-
* @public
|
|
531
478
|
* @param {string|RegExp|number|boolean} guid - child GUID
|
|
532
479
|
* @returns {Renderable} corresponding child or null
|
|
533
480
|
*/
|
|
@@ -538,9 +485,6 @@ let globalFloatingCounter = 0;
|
|
|
538
485
|
|
|
539
486
|
/**
|
|
540
487
|
* return all child in this container
|
|
541
|
-
* @name getChildren
|
|
542
|
-
* @memberof Container
|
|
543
|
-
* @public
|
|
544
488
|
* @returns {Renderable[]} an array of renderable object
|
|
545
489
|
*/
|
|
546
490
|
getChildren() {
|
|
@@ -553,8 +497,6 @@ let globalFloatingCounter = 0;
|
|
|
553
497
|
/**
|
|
554
498
|
* update the bounding box for this shape.
|
|
555
499
|
* @ignore
|
|
556
|
-
* @name updateBounds
|
|
557
|
-
* @memberof Renderable
|
|
558
500
|
* @returns {Bounds} this shape bounding box Rectangle object
|
|
559
501
|
*/
|
|
560
502
|
updateBounds(forceUpdateChildBounds = false) {
|
|
@@ -581,8 +523,6 @@ let globalFloatingCounter = 0;
|
|
|
581
523
|
/**
|
|
582
524
|
* Checks if this container is root or if it's attached to the root container.
|
|
583
525
|
* @private
|
|
584
|
-
* @name isAttachedToRoot
|
|
585
|
-
* @memberof Container
|
|
586
526
|
* @returns {boolean}
|
|
587
527
|
*/
|
|
588
528
|
isAttachedToRoot() {
|
|
@@ -603,8 +543,6 @@ let globalFloatingCounter = 0;
|
|
|
603
543
|
/**
|
|
604
544
|
* update the cointainer's bounding rect (private)
|
|
605
545
|
* @ignore
|
|
606
|
-
* @name updateBoundsPos
|
|
607
|
-
* @memberof Container
|
|
608
546
|
*/
|
|
609
547
|
updateBoundsPos(newX, newY) {
|
|
610
548
|
// call the parent method
|
|
@@ -638,9 +576,6 @@ let globalFloatingCounter = 0;
|
|
|
638
576
|
/**
|
|
639
577
|
* Invokes the removeChildNow in a defer, to ensure the child is removed safely after the update & draw stack has completed. <br>
|
|
640
578
|
* if the given child implements a onDeactivateEvent() method, that method will be called once the child is removed from this container.
|
|
641
|
-
* @name removeChild
|
|
642
|
-
* @memberof Container
|
|
643
|
-
* @public
|
|
644
579
|
* @param {Renderable} child
|
|
645
580
|
* @param {boolean} [keepalive=false] - true to prevent calling child.destroy()
|
|
646
581
|
*/
|
|
@@ -657,8 +592,6 @@ let globalFloatingCounter = 0;
|
|
|
657
592
|
* Removes (and optionally destroys) a child from the container.<br>
|
|
658
593
|
* (removal is immediate and unconditional)<br>
|
|
659
594
|
* Never use keepalive=true with objects from {@link pool}. Doing so will create a memory leak.
|
|
660
|
-
* @name removeChildNow
|
|
661
|
-
* @memberof Container
|
|
662
595
|
* @param {Renderable} child
|
|
663
596
|
* @param {boolean} [keepalive=False] - True to prevent calling child.destroy()
|
|
664
597
|
*/
|
|
@@ -709,8 +642,6 @@ let globalFloatingCounter = 0;
|
|
|
709
642
|
|
|
710
643
|
/**
|
|
711
644
|
* Automatically set the specified property of all childs to the given value
|
|
712
|
-
* @name setChildsProperty
|
|
713
|
-
* @memberof Container
|
|
714
645
|
* @param {string} prop - property name
|
|
715
646
|
* @param {object} value - property value
|
|
716
647
|
* @param {boolean} [recursive=false] - recursively apply the value to child containers if true
|
|
@@ -726,8 +657,6 @@ let globalFloatingCounter = 0;
|
|
|
726
657
|
|
|
727
658
|
/**
|
|
728
659
|
* Move the child in the group one step forward (z depth).
|
|
729
|
-
* @name moveUp
|
|
730
|
-
* @memberof Container
|
|
731
660
|
* @param {Renderable} child
|
|
732
661
|
*/
|
|
733
662
|
moveUp(child) {
|
|
@@ -742,8 +671,6 @@ let globalFloatingCounter = 0;
|
|
|
742
671
|
|
|
743
672
|
/**
|
|
744
673
|
* Move the child in the group one step backward (z depth).
|
|
745
|
-
* @name moveDown
|
|
746
|
-
* @memberof Container
|
|
747
674
|
* @param {Renderable} child
|
|
748
675
|
*/
|
|
749
676
|
moveDown(child) {
|
|
@@ -758,8 +685,6 @@ let globalFloatingCounter = 0;
|
|
|
758
685
|
|
|
759
686
|
/**
|
|
760
687
|
* Move the specified child to the top(z depth).
|
|
761
|
-
* @name moveToTop
|
|
762
|
-
* @memberof Container
|
|
763
688
|
* @param {Renderable} child
|
|
764
689
|
*/
|
|
765
690
|
moveToTop(child) {
|
|
@@ -777,8 +702,6 @@ let globalFloatingCounter = 0;
|
|
|
777
702
|
|
|
778
703
|
/**
|
|
779
704
|
* Move the specified child the bottom (z depth).
|
|
780
|
-
* @name moveToBottom
|
|
781
|
-
* @memberof Container
|
|
782
705
|
* @param {Renderable} child
|
|
783
706
|
*/
|
|
784
707
|
moveToBottom(child) {
|
|
@@ -796,9 +719,6 @@ let globalFloatingCounter = 0;
|
|
|
796
719
|
|
|
797
720
|
/**
|
|
798
721
|
* Manually trigger the sort of all the childs in the container</p>
|
|
799
|
-
* @name sort
|
|
800
|
-
* @memberof Container
|
|
801
|
-
* @public
|
|
802
722
|
* @param {boolean} [recursive=false] - recursively sort all containers if true
|
|
803
723
|
*/
|
|
804
724
|
sort(recursive) {
|
|
@@ -890,8 +810,6 @@ let globalFloatingCounter = 0;
|
|
|
890
810
|
/**
|
|
891
811
|
* container update function. <br>
|
|
892
812
|
* automatically called by the game manager {@link game}
|
|
893
|
-
* @name update
|
|
894
|
-
* @memberof Container
|
|
895
813
|
* @protected
|
|
896
814
|
* @param {number} dt - time since the last update in milliseconds.
|
|
897
815
|
* @returns {boolean} true if the Container is dirty
|
|
@@ -941,8 +859,6 @@ let globalFloatingCounter = 0;
|
|
|
941
859
|
|
|
942
860
|
/**
|
|
943
861
|
* draw this renderable (automatically called by melonJS)
|
|
944
|
-
* @name draw
|
|
945
|
-
* @memberof Container
|
|
946
862
|
* @protected
|
|
947
863
|
* @param {CanvasRenderer|WebGLRenderer} renderer - a renderer instance
|
|
948
864
|
* @param {Camera2d} [viewport] - the viewport to (re)draw
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { renderer } from "./../video/video.js";
|
|
2
2
|
import * as event from "./../system/event.js";
|
|
3
3
|
import pool from "./../system/pooling.js";
|
|
4
|
-
import game from "
|
|
4
|
+
import { game } from "../index.js";
|
|
5
5
|
import Sprite from "./sprite.js";
|
|
6
6
|
import * as stringUtil from "./../utils/string.js";
|
|
7
7
|
|
|
@@ -2,7 +2,7 @@ import Renderable from "./renderable.js";
|
|
|
2
2
|
import collision from "./../physics/collision.js";
|
|
3
3
|
import Body from "./../physics/body.js";
|
|
4
4
|
import level from "./../level/level.js";
|
|
5
|
-
import game from "
|
|
5
|
+
import { game } from "../index.js";
|
|
6
6
|
import pool from "./../system/pooling.js";
|
|
7
7
|
|
|
8
8
|
/**
|
package/src/state/stage.js
CHANGED
package/src/state/state.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { pauseTrack, resumeTrack } from "./../audio/audio.js";
|
|
2
2
|
import * as fctUtil from "./../utils/function.js";
|
|
3
3
|
import * as event from "./../system/event.js";
|
|
4
|
-
import game from "
|
|
4
|
+
import { game } from "../index.js";
|
|
5
5
|
import * as device from "./../system/device.js";
|
|
6
6
|
import Stage from "./../state/stage.js";
|
|
7
7
|
import DefaultLoadingScreen from "./../loader/loadingscreen.js";
|
package/src/system/device.js
CHANGED
|
@@ -729,26 +729,6 @@ export function isWebGLSupported(options) {
|
|
|
729
729
|
return _supported;
|
|
730
730
|
}
|
|
731
731
|
|
|
732
|
-
/**
|
|
733
|
-
* return the highest precision format supported by this device for GL Shaders
|
|
734
|
-
* @function getMaxShaderPrecision
|
|
735
|
-
* @memberof device
|
|
736
|
-
* @public
|
|
737
|
-
* @param {WebGLRenderingContext} gl
|
|
738
|
-
* @returns {boolean} "lowp", "mediump", or "highp"
|
|
739
|
-
*/
|
|
740
|
-
export function getMaxShaderPrecision(gl) {
|
|
741
|
-
if (gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.HIGH_FLOAT ).precision > 0 &&
|
|
742
|
-
gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_FLOAT ).precision > 0) {
|
|
743
|
-
return "highp";
|
|
744
|
-
}
|
|
745
|
-
if (gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.MEDIUM_FLOAT ).precision > 0 &&
|
|
746
|
-
gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.MEDIUM_FLOAT ).precision > 0) {
|
|
747
|
-
return "mediump";
|
|
748
|
-
}
|
|
749
|
-
return "lowp";
|
|
750
|
-
}
|
|
751
|
-
|
|
752
732
|
/**
|
|
753
733
|
* Makes a request to bring this device window to the front.
|
|
754
734
|
* @function focus
|
package/src/tweens/tween.js
CHANGED
|
@@ -45,6 +45,9 @@ import * as event from "./../../system/event.js";
|
|
|
45
45
|
this.uvOffset = 1;
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
+
// set the renderer type
|
|
49
|
+
this.type = "CANVAS";
|
|
50
|
+
|
|
48
51
|
// context lost & restore event for canvas
|
|
49
52
|
this.getCanvas().addEventListener("contextlost", (e) => {
|
|
50
53
|
e.preventDefault();
|
package/src/video/renderer.js
CHANGED
|
@@ -69,6 +69,13 @@ import Point from "../geometries/point.js";
|
|
|
69
69
|
*/
|
|
70
70
|
this.path2D = new Path2D();
|
|
71
71
|
|
|
72
|
+
/**
|
|
73
|
+
* The renderer type : Canvas, WebGL, etc...
|
|
74
|
+
* (override this property with a specific value when implementing a custom renderer)
|
|
75
|
+
* @type {string}
|
|
76
|
+
*/
|
|
77
|
+
this.type = "Generic";
|
|
78
|
+
|
|
72
79
|
/**
|
|
73
80
|
* @ignore
|
|
74
81
|
*/
|
|
@@ -99,7 +99,8 @@ class CanvasTexture {
|
|
|
99
99
|
}
|
|
100
100
|
|
|
101
101
|
/**
|
|
102
|
-
* Returns an ImageData object representing the underlying pixel data for a specified portion of this canvas texture
|
|
102
|
+
* Returns an ImageData object representing the underlying pixel data for a specified portion of this canvas texture.
|
|
103
|
+
* (Note: when using getImageData(), it is highly recommended to use the `willReadFrequently` attribute when creatimg the corresponding canvas texture)
|
|
103
104
|
* @param {number} x - The x-axis coordinate of the top-left corner of the rectangle from which the ImageData will be extracted
|
|
104
105
|
* @param {number} y - The y-axis coordinate of the top-left corner of the rectangle from which the ImageData will be extracted
|
|
105
106
|
* @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
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { isWebGLSupported } from "../../system/device";
|
|
2
|
+
import WebGLRenderer from "../webgl/webgl_renderer";
|
|
3
|
+
import CanvasRenderer from "../canvas/canvas_renderer";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Auto-detect the best renderer to use
|
|
7
|
+
* @ignore
|
|
8
|
+
*/
|
|
9
|
+
export function autoDetectRenderer(options) {
|
|
10
|
+
try {
|
|
11
|
+
if (isWebGLSupported(options)) {
|
|
12
|
+
return new WebGLRenderer(options);
|
|
13
|
+
}
|
|
14
|
+
} catch (e) {
|
|
15
|
+
console.log("Error creating WebGL renderer :" + e.message);
|
|
16
|
+
}
|
|
17
|
+
return new CanvasRenderer(options);
|
|
18
|
+
}
|
package/src/video/video.js
CHANGED
|
@@ -1,51 +1,12 @@
|
|
|
1
|
-
import WebGLRenderer from "./webgl/webgl_renderer.js";
|
|
2
|
-
import CanvasRenderer from "./canvas/canvas_renderer.js";
|
|
3
|
-
import utils from "./../utils/utils.js";
|
|
4
1
|
import * as event from "./../system/event.js";
|
|
2
|
+
import { initialized, game } from "./../index.js";
|
|
5
3
|
import * as device from "./../system/device.js";
|
|
6
|
-
import
|
|
7
|
-
import game from "./../game.js";
|
|
8
|
-
import { onresize } from "./utils/resize.js";
|
|
4
|
+
import utils from "./../utils/utils.js";
|
|
9
5
|
|
|
10
6
|
/**
|
|
11
7
|
* @namespace video
|
|
12
8
|
*/
|
|
13
9
|
|
|
14
|
-
// default video settings
|
|
15
|
-
var settings = {
|
|
16
|
-
parent : undefined,
|
|
17
|
-
renderer : 2, // AUTO
|
|
18
|
-
autoScale : false,
|
|
19
|
-
scale : 1.0,
|
|
20
|
-
scaleMethod : "manual",
|
|
21
|
-
transparent : false,
|
|
22
|
-
premultipliedAlpha: true,
|
|
23
|
-
blendMode : "normal",
|
|
24
|
-
antiAlias : false,
|
|
25
|
-
failIfMajorPerformanceCaveat : true,
|
|
26
|
-
subPixel : false,
|
|
27
|
-
preferWebGL1 : false,
|
|
28
|
-
powerPreference : "default",
|
|
29
|
-
verbose : false,
|
|
30
|
-
consoleHeader : true
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Auto-detect the best renderer to use
|
|
35
|
-
* @ignore
|
|
36
|
-
*/
|
|
37
|
-
function autoDetectRenderer(options) {
|
|
38
|
-
try {
|
|
39
|
-
if (device.isWebGLSupported(options)) {
|
|
40
|
-
return new WebGLRenderer(options);
|
|
41
|
-
}
|
|
42
|
-
} catch (e) {
|
|
43
|
-
console.log("Error creating WebGL renderer :" + e.message);
|
|
44
|
-
}
|
|
45
|
-
return new CanvasRenderer(options);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
|
|
49
10
|
/**
|
|
50
11
|
* Select the HTML5 Canvas renderer
|
|
51
12
|
* @memberof video
|
|
@@ -96,7 +57,7 @@ export let renderer = null;
|
|
|
96
57
|
* @param {number} height - The height of the canvas viewport
|
|
97
58
|
* @param {object} [options] - The optional video/renderer parameters.<br> (see Renderer(s) documentation for further specific options)
|
|
98
59
|
* @param {string|HTMLElement} [options.parent=document.body] - the DOM parent element to hold the canvas in the HTML file
|
|
99
|
-
* @param {number} [options.renderer=video.AUTO] - renderer to use (me.video.CANVAS, me.video.WEBGL, me.video.AUTO)
|
|
60
|
+
* @param {number|Renderer} [options.renderer=video.AUTO] - renderer to use (me.video.CANVAS, me.video.WEBGL, me.video.AUTO), or a custom renderer class
|
|
100
61
|
* @param {number|string} [options.scale=1.0] - enable scaling of the canvas ('auto' for automatic scaling)
|
|
101
62
|
* @param {string} [options.scaleMethod="fit"] - screen scaling modes ('fit','fill-min','fill-max','flex','flex-width','flex-height','stretch')
|
|
102
63
|
* @param {boolean} [options.preferWebGL1=false] - if true the renderer will only use WebGL 1
|
|
@@ -115,54 +76,22 @@ export let renderer = null;
|
|
|
115
76
|
* });
|
|
116
77
|
*/
|
|
117
78
|
export function init(width, height, options) {
|
|
118
|
-
|
|
119
79
|
// ensure melonjs has been properly initialized
|
|
120
80
|
if (!initialized) {
|
|
121
81
|
throw new Error("me.video.init() called before engine initialization.");
|
|
122
82
|
}
|
|
123
83
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
settings.antiAlias = !!(settings.antiAlias);
|
|
132
|
-
settings.failIfMajorPerformanceCaveat = !!(settings.failIfMajorPerformanceCaveat);
|
|
133
|
-
settings.subPixel = !!(settings.subPixel);
|
|
134
|
-
settings.verbose = !!(settings.verbose);
|
|
135
|
-
if (settings.scaleMethod.search(/^(fill-(min|max)|fit|flex(-(width|height))?|stretch)$/) !== -1) {
|
|
136
|
-
settings.autoScale = (settings.scale === "auto") || true;
|
|
137
|
-
} else {
|
|
138
|
-
// default scaling method
|
|
139
|
-
settings.scaleMethod = "fit";
|
|
140
|
-
settings.autoScale = (settings.scale === "auto") || false;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
// display melonJS version
|
|
144
|
-
if (settings.consoleHeader !== false) {
|
|
145
|
-
// output video information in the console
|
|
146
|
-
console.log("melonJS 2 (v" + version + ") | http://melonjs.org" );
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
// override renderer settings if &webgl or &canvas is defined in the URL
|
|
150
|
-
var uriFragment = utils.getUriFragment();
|
|
151
|
-
if (uriFragment.webgl === true || uriFragment.webgl1 === true || uriFragment.webgl2 === true) {
|
|
152
|
-
settings.renderer = WEBGL;
|
|
153
|
-
if (uriFragment.webgl1 === true) {
|
|
154
|
-
settings.preferWebGL1 = true;
|
|
155
|
-
}
|
|
156
|
-
} else if (uriFragment.canvas === true) {
|
|
157
|
-
settings.renderer = CANVAS;
|
|
84
|
+
try {
|
|
85
|
+
// initialize the default game Application with the given options
|
|
86
|
+
game.init(width, height, options);
|
|
87
|
+
} catch (e) {
|
|
88
|
+
console(e.message);
|
|
89
|
+
// me.video.init() historically returns false if failing at creating/using a HTML5 canvas
|
|
90
|
+
return false;
|
|
158
91
|
}
|
|
159
92
|
|
|
160
|
-
//
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
// default scaled size value
|
|
164
|
-
settings.zoomX = width * settings.scale;
|
|
165
|
-
settings.zoomY = height * settings.scale;
|
|
93
|
+
// assign the default renderer
|
|
94
|
+
renderer = game.renderer;
|
|
166
95
|
|
|
167
96
|
//add a channel for the onresize/onorientationchange event
|
|
168
97
|
globalThis.addEventListener(
|
|
@@ -182,6 +111,7 @@ export function init(width, height, options) {
|
|
|
182
111
|
},
|
|
183
112
|
false
|
|
184
113
|
);
|
|
114
|
+
|
|
185
115
|
// pre-fixed implementation on mozzila
|
|
186
116
|
globalThis.addEventListener(
|
|
187
117
|
"onmozorientationchange",
|
|
@@ -202,68 +132,6 @@ export function init(width, height, options) {
|
|
|
202
132
|
event.emit(event.WINDOW_ONSCROLL, e);
|
|
203
133
|
}, 100), false);
|
|
204
134
|
|
|
205
|
-
try {
|
|
206
|
-
switch (settings.renderer) {
|
|
207
|
-
case AUTO:
|
|
208
|
-
case WEBGL:
|
|
209
|
-
renderer = autoDetectRenderer(settings);
|
|
210
|
-
break;
|
|
211
|
-
default:
|
|
212
|
-
renderer = new CanvasRenderer(settings);
|
|
213
|
-
break;
|
|
214
|
-
}
|
|
215
|
-
} catch (e) {
|
|
216
|
-
console(e.message);
|
|
217
|
-
// me.video.init() returns false if failing at creating/using a HTML5 canvas
|
|
218
|
-
return false;
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
// register to the channel
|
|
222
|
-
event.on(event.WINDOW_ONRESIZE, () => { onresize(renderer); }, this);
|
|
223
|
-
event.on(event.WINDOW_ONORIENTATION_CHANGE, () => { onresize(renderer); }, this);
|
|
224
|
-
|
|
225
|
-
// add our canvas (default to document.body if settings.parent is undefined)
|
|
226
|
-
game.parentElement = device.getElement(typeof settings.parent !== "undefined" ? settings.parent : document.body);
|
|
227
|
-
game.parentElement.appendChild(renderer.getCanvas());
|
|
228
|
-
|
|
229
|
-
// Mobile browser hacks
|
|
230
|
-
if (device.platform.isMobile) {
|
|
231
|
-
// Prevent the webview from moving on a swipe
|
|
232
|
-
device.enableSwipe(false);
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
// trigger an initial resize();
|
|
236
|
-
onresize(renderer);
|
|
237
|
-
|
|
238
|
-
// add an observer to detect when the dom tree is modified
|
|
239
|
-
if ("MutationObserver" in globalThis) {
|
|
240
|
-
// Create an observer instance linked to the callback function
|
|
241
|
-
var observer = new MutationObserver(onresize.bind(this, renderer));
|
|
242
|
-
|
|
243
|
-
// Start observing the target node for configured mutations
|
|
244
|
-
observer.observe(game.parentElement, {
|
|
245
|
-
attributes: false, childList: true, subtree: true
|
|
246
|
-
});
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
if (settings.consoleHeader !== false) {
|
|
250
|
-
var renderType = (renderer instanceof CanvasRenderer) ? "CANVAS" : "WebGL" + renderer.WebGLVersion;
|
|
251
|
-
var audioType = device.hasWebAudio ? "Web Audio" : "HTML5 Audio";
|
|
252
|
-
var gpu_renderer = (typeof renderer.GPURenderer === "string") ? " (" + renderer.GPURenderer + ")" : "";
|
|
253
|
-
// output video information in the console
|
|
254
|
-
console.log(
|
|
255
|
-
renderType + " renderer" + gpu_renderer + " | " +
|
|
256
|
-
audioType + " | " +
|
|
257
|
-
"pixel ratio " + device.devicePixelRatio + " | " +
|
|
258
|
-
(device.platform.nodeJS ? "node.js" : device.platform.isMobile ? "mobile" : "desktop") + " | " +
|
|
259
|
-
device.getScreenOrientation() + " | " +
|
|
260
|
-
device.language
|
|
261
|
-
);
|
|
262
|
-
console.log( "resolution: " + "requested " + width + "x" + height +
|
|
263
|
-
", got " + renderer.getWidth() + "x" + renderer.getHeight()
|
|
264
|
-
);
|
|
265
|
-
}
|
|
266
|
-
|
|
267
135
|
// notify the video has been initialized
|
|
268
136
|
event.emit(event.VIDEO_INIT);
|
|
269
137
|
|