melonjs 14.1.2 → 14.2.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.
Files changed (237) hide show
  1. package/README.md +3 -4
  2. package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +1 -1
  3. package/dist/melonjs.mjs/_virtual/arraymultimap.js +1 -1
  4. package/dist/melonjs.mjs/_virtual/earcut.js +7 -3
  5. package/dist/melonjs.mjs/_virtual/howler.js +1 -1
  6. package/dist/melonjs.mjs/_virtual/index.js +1 -1
  7. package/dist/melonjs.mjs/_virtual/index2.js +7 -3
  8. package/dist/melonjs.mjs/_virtual/make-built-in.js +10 -0
  9. package/dist/melonjs.mjs/_virtual/multimap.js +1 -1
  10. package/dist/melonjs.mjs/_virtual/object-define-property.js +10 -0
  11. package/dist/melonjs.mjs/_virtual/object-get-own-property-descriptor.js +10 -0
  12. package/dist/melonjs.mjs/_virtual/object-get-own-property-names.js +10 -0
  13. package/dist/melonjs.mjs/_virtual/object-get-own-property-symbols.js +10 -0
  14. package/dist/melonjs.mjs/_virtual/object-property-is-enumerable.js +10 -0
  15. package/dist/melonjs.mjs/_virtual/setmultimap.js +1 -1
  16. package/dist/melonjs.mjs/_virtual/shared.js +10 -0
  17. package/dist/melonjs.mjs/application/application.js +21 -14
  18. package/dist/melonjs.mjs/application/resize.js +119 -0
  19. package/dist/melonjs.mjs/audio/audio.js +1 -1
  20. package/dist/melonjs.mjs/camera/camera2d.js +1 -1
  21. package/dist/melonjs.mjs/entity/entity.js +1 -1
  22. package/dist/melonjs.mjs/game.js +1 -1
  23. package/dist/melonjs.mjs/geometries/ellipse.js +1 -1
  24. package/dist/melonjs.mjs/geometries/line.js +1 -1
  25. package/dist/melonjs.mjs/geometries/path2d.js +3 -3
  26. package/dist/melonjs.mjs/geometries/point.js +1 -1
  27. package/dist/melonjs.mjs/geometries/poly.js +3 -3
  28. package/dist/melonjs.mjs/geometries/rectangle.js +1 -1
  29. package/dist/melonjs.mjs/geometries/roundrect.js +1 -1
  30. package/dist/melonjs.mjs/index.js +3 -34
  31. package/dist/melonjs.mjs/input/gamepad.js +1 -1
  32. package/dist/melonjs.mjs/input/input.js +1 -1
  33. package/dist/melonjs.mjs/input/keyboard.js +1 -1
  34. package/dist/melonjs.mjs/input/pointer.js +1 -1
  35. package/dist/melonjs.mjs/input/pointerevent.js +6 -7
  36. package/dist/melonjs.mjs/lang/deprecated.js +1 -1
  37. package/dist/melonjs.mjs/level/level.js +1 -1
  38. package/dist/melonjs.mjs/level/tiled/TMXGroup.js +1 -1
  39. package/dist/melonjs.mjs/level/tiled/TMXLayer.js +1 -1
  40. package/dist/melonjs.mjs/level/tiled/TMXObject.js +1 -1
  41. package/dist/melonjs.mjs/level/tiled/TMXTile.js +1 -1
  42. package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +1 -1
  43. package/dist/melonjs.mjs/level/tiled/TMXTileset.js +1 -1
  44. package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +1 -1
  45. package/dist/melonjs.mjs/level/tiled/TMXUtils.js +1 -1
  46. package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +1 -1
  47. package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +1 -1
  48. package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +1 -1
  49. package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +1 -1
  50. package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +1 -1
  51. package/dist/melonjs.mjs/loader/loader.js +1 -1
  52. package/dist/melonjs.mjs/loader/loadingscreen.js +1 -1
  53. package/dist/melonjs.mjs/loader/melonjs_logo.png.js +1 -1
  54. package/dist/melonjs.mjs/math/color.js +1 -1
  55. package/dist/melonjs.mjs/math/math.js +1 -1
  56. package/dist/melonjs.mjs/math/matrix2.js +1 -1
  57. package/dist/melonjs.mjs/math/matrix3.js +1 -1
  58. package/dist/melonjs.mjs/math/observable_vector2.js +1 -1
  59. package/dist/melonjs.mjs/math/observable_vector3.js +1 -1
  60. package/dist/melonjs.mjs/math/vector2.js +1 -1
  61. package/dist/melonjs.mjs/math/vector3.js +1 -1
  62. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/arraymultimap.js +3 -2
  63. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/index.js +1 -1
  64. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/multimap.js +3 -2
  65. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/setmultimap.js +3 -2
  66. package/dist/melonjs.mjs/node_modules/core-js/es/string/trim-end.js +13 -0
  67. package/dist/melonjs.mjs/node_modules/core-js/es/string/trim-start.js +13 -0
  68. package/dist/melonjs.mjs/node_modules/core-js/internals/a-callable.js +22 -0
  69. package/dist/melonjs.mjs/node_modules/core-js/internals/an-object.js +21 -0
  70. package/dist/melonjs.mjs/node_modules/core-js/internals/array-includes.js +45 -0
  71. package/dist/melonjs.mjs/node_modules/core-js/internals/classof-raw.js +19 -0
  72. package/dist/melonjs.mjs/node_modules/core-js/internals/classof.js +43 -0
  73. package/dist/melonjs.mjs/node_modules/core-js/internals/copy-constructor-properties.js +32 -0
  74. package/dist/melonjs.mjs/node_modules/core-js/internals/create-non-enumerable-property.js +24 -0
  75. package/dist/melonjs.mjs/node_modules/core-js/internals/create-property-descriptor.js +17 -0
  76. package/dist/melonjs.mjs/node_modules/core-js/internals/define-built-in.js +43 -0
  77. package/dist/melonjs.mjs/node_modules/core-js/internals/define-global-property.js +23 -0
  78. package/dist/melonjs.mjs/node_modules/core-js/internals/descriptors.js +18 -0
  79. package/dist/melonjs.mjs/node_modules/core-js/internals/document-all.js +18 -0
  80. package/dist/melonjs.mjs/node_modules/core-js/internals/document-create-element.js +22 -0
  81. package/dist/melonjs.mjs/node_modules/core-js/internals/engine-user-agent.js +14 -0
  82. package/dist/melonjs.mjs/node_modules/core-js/internals/engine-v8-version.js +39 -0
  83. package/dist/melonjs.mjs/node_modules/core-js/internals/entry-unbind.js +18 -0
  84. package/dist/melonjs.mjs/node_modules/core-js/internals/enum-bug-keys.js +19 -0
  85. package/dist/melonjs.mjs/node_modules/core-js/internals/export.js +72 -0
  86. package/dist/melonjs.mjs/node_modules/core-js/internals/fails.js +16 -0
  87. package/dist/melonjs.mjs/node_modules/core-js/internals/function-bind-native.js +19 -0
  88. package/dist/melonjs.mjs/node_modules/core-js/internals/function-call.js +18 -0
  89. package/dist/melonjs.mjs/node_modules/core-js/internals/function-name.js +29 -0
  90. package/dist/melonjs.mjs/node_modules/core-js/internals/function-uncurry-this.js +22 -0
  91. package/dist/melonjs.mjs/node_modules/core-js/internals/get-built-in.js +22 -0
  92. package/dist/melonjs.mjs/node_modules/core-js/internals/get-method.js +21 -0
  93. package/dist/melonjs.mjs/node_modules/core-js/internals/global.js +25 -0
  94. package/dist/melonjs.mjs/node_modules/core-js/internals/has-own-property.js +23 -0
  95. package/dist/melonjs.mjs/node_modules/core-js/internals/hidden-keys.js +10 -0
  96. package/dist/melonjs.mjs/node_modules/core-js/internals/ie8-dom-define.js +24 -0
  97. package/dist/melonjs.mjs/node_modules/core-js/internals/indexed-object.js +28 -0
  98. package/dist/melonjs.mjs/node_modules/core-js/internals/inspect-source.js +27 -0
  99. package/dist/melonjs.mjs/node_modules/core-js/internals/internal-state.js +88 -0
  100. package/dist/melonjs.mjs/node_modules/core-js/internals/is-callable.js +22 -0
  101. package/dist/melonjs.mjs/node_modules/core-js/internals/is-forced.js +34 -0
  102. package/dist/melonjs.mjs/node_modules/core-js/internals/is-null-or-undefined.js +14 -0
  103. package/dist/melonjs.mjs/node_modules/core-js/internals/is-object.js +22 -0
  104. package/dist/melonjs.mjs/node_modules/core-js/internals/is-symbol.js +27 -0
  105. package/dist/melonjs.mjs/node_modules/core-js/internals/length-of-array-like.js +18 -0
  106. package/dist/melonjs.mjs/node_modules/core-js/internals/make-built-in.js +68 -0
  107. package/dist/melonjs.mjs/node_modules/core-js/internals/math-trunc.js +19 -0
  108. package/dist/melonjs.mjs/node_modules/core-js/internals/object-define-property.js +58 -0
  109. package/dist/melonjs.mjs/node_modules/core-js/internals/object-get-own-property-descriptor.js +41 -0
  110. package/dist/melonjs.mjs/node_modules/core-js/internals/object-get-own-property-names.js +23 -0
  111. package/dist/melonjs.mjs/node_modules/core-js/internals/object-get-own-property-symbols.js +12 -0
  112. package/dist/melonjs.mjs/node_modules/core-js/internals/object-is-prototype-of.js +14 -0
  113. package/dist/melonjs.mjs/node_modules/core-js/internals/object-keys-internal.js +35 -0
  114. package/dist/melonjs.mjs/node_modules/core-js/internals/object-property-is-enumerable.js +23 -0
  115. package/dist/melonjs.mjs/node_modules/core-js/internals/ordinary-to-primitive.js +28 -0
  116. package/dist/melonjs.mjs/node_modules/core-js/internals/own-keys.js +31 -0
  117. package/dist/melonjs.mjs/node_modules/core-js/internals/require-object-coercible.js +21 -0
  118. package/dist/melonjs.mjs/node_modules/core-js/internals/shared-key.js +21 -0
  119. package/dist/melonjs.mjs/node_modules/core-js/internals/shared-store.js +19 -0
  120. package/dist/melonjs.mjs/node_modules/core-js/internals/shared.js +24 -0
  121. package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim-end.js +22 -0
  122. package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim-forced.js +28 -0
  123. package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim-start.js +22 -0
  124. package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim.js +45 -0
  125. package/dist/melonjs.mjs/node_modules/core-js/internals/symbol-constructor-detection.js +26 -0
  126. package/dist/melonjs.mjs/node_modules/core-js/internals/to-absolute-index.js +23 -0
  127. package/dist/melonjs.mjs/node_modules/core-js/internals/to-indexed-object.js +19 -0
  128. package/dist/melonjs.mjs/node_modules/core-js/internals/to-integer-or-infinity.js +20 -0
  129. package/dist/melonjs.mjs/node_modules/core-js/internals/to-length.js +20 -0
  130. package/dist/melonjs.mjs/node_modules/core-js/internals/to-object.js +20 -0
  131. package/dist/melonjs.mjs/node_modules/core-js/internals/to-primitive.js +41 -0
  132. package/dist/melonjs.mjs/node_modules/core-js/internals/to-property-key.js +21 -0
  133. package/dist/melonjs.mjs/node_modules/core-js/internals/to-string-tag-support.js +19 -0
  134. package/dist/melonjs.mjs/node_modules/core-js/internals/to-string.js +19 -0
  135. package/dist/melonjs.mjs/node_modules/core-js/internals/try-to-string.js +18 -0
  136. package/dist/melonjs.mjs/node_modules/core-js/internals/uid.js +20 -0
  137. package/dist/melonjs.mjs/node_modules/core-js/internals/use-symbol-as-uid.js +18 -0
  138. package/dist/melonjs.mjs/node_modules/core-js/internals/v8-prototype-define-bug.js +24 -0
  139. package/dist/melonjs.mjs/node_modules/core-js/internals/weak-map-basic-detection.js +18 -0
  140. package/dist/melonjs.mjs/node_modules/core-js/internals/well-known-symbol.js +41 -0
  141. package/dist/melonjs.mjs/node_modules/core-js/internals/whitespaces.js +12 -0
  142. package/dist/melonjs.mjs/node_modules/core-js/modules/es.global-this.js +18 -0
  143. package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-end.js +22 -0
  144. package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-left.js +19 -0
  145. package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-right.js +19 -0
  146. package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-start.js +22 -0
  147. package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +4 -5
  148. package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +3 -3
  149. package/dist/melonjs.mjs/node_modules/eventemitter3/index.mjs.js +9 -0
  150. package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +5 -2
  151. package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +3 -2
  152. package/dist/melonjs.mjs/particles/emitter.js +1 -1
  153. package/dist/melonjs.mjs/particles/particle.js +1 -1
  154. package/dist/melonjs.mjs/particles/settings.js +1 -1
  155. package/dist/melonjs.mjs/physics/body.js +1 -1
  156. package/dist/melonjs.mjs/physics/bounds.js +1 -1
  157. package/dist/melonjs.mjs/physics/collision.js +1 -1
  158. package/dist/melonjs.mjs/physics/detector.js +1 -1
  159. package/dist/melonjs.mjs/physics/quadtree.js +1 -1
  160. package/dist/melonjs.mjs/physics/response.js +1 -1
  161. package/dist/melonjs.mjs/physics/sat.js +1 -1
  162. package/dist/melonjs.mjs/physics/world.js +1 -1
  163. package/dist/melonjs.mjs/plugin/plugin.js +4 -4
  164. package/dist/melonjs.mjs/polyfill/console.js +18 -0
  165. package/dist/melonjs.mjs/polyfill/performance.js +27 -0
  166. package/dist/melonjs.mjs/polyfill/requestAnimationFrame.js +46 -0
  167. package/dist/melonjs.mjs/polyfill/roundrect.js +242 -0
  168. package/dist/melonjs.mjs/renderable/collectable.js +1 -1
  169. package/dist/melonjs.mjs/renderable/colorlayer.js +1 -1
  170. package/dist/melonjs.mjs/renderable/container.js +1 -1
  171. package/dist/melonjs.mjs/renderable/dragndrop.js +1 -1
  172. package/dist/melonjs.mjs/renderable/imagelayer.js +1 -1
  173. package/dist/melonjs.mjs/renderable/light2d.js +1 -1
  174. package/dist/melonjs.mjs/renderable/nineslicesprite.js +1 -1
  175. package/dist/melonjs.mjs/renderable/re_container.js +1016 -0
  176. package/dist/melonjs.mjs/renderable/renderable.js +1 -1
  177. package/dist/melonjs.mjs/renderable/sprite.js +1 -1
  178. package/dist/melonjs.mjs/renderable/trigger.js +1 -1
  179. package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +1 -1
  180. package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +1 -1
  181. package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +1 -1
  182. package/dist/melonjs.mjs/state/stage.js +1 -1
  183. package/dist/melonjs.mjs/state/state.js +1 -1
  184. package/dist/melonjs.mjs/system/device.js +8 -8
  185. package/dist/melonjs.mjs/system/dom.js +3 -2
  186. package/dist/melonjs.mjs/system/event.js +1 -1
  187. package/dist/melonjs.mjs/system/platform.js +1 -1
  188. package/dist/melonjs.mjs/system/pooling.js +1 -1
  189. package/dist/melonjs.mjs/system/save.js +1 -1
  190. package/dist/melonjs.mjs/system/timer.js +1 -1
  191. package/dist/melonjs.mjs/text/bitmaptext.js +1 -1
  192. package/dist/melonjs.mjs/text/bitmaptextdata.js +1 -1
  193. package/dist/melonjs.mjs/text/glyph.js +1 -1
  194. package/dist/melonjs.mjs/text/text.js +1 -1
  195. package/dist/melonjs.mjs/text/textmetrics.js +1 -1
  196. package/dist/melonjs.mjs/text/textstyle.js +1 -1
  197. package/dist/melonjs.mjs/tweens/easing.js +1 -1
  198. package/dist/melonjs.mjs/tweens/interpolation.js +1 -1
  199. package/dist/melonjs.mjs/tweens/tween.js +1 -1
  200. package/dist/melonjs.mjs/utils/agent.js +1 -1
  201. package/dist/melonjs.mjs/utils/array.js +1 -1
  202. package/dist/melonjs.mjs/utils/file.js +1 -1
  203. package/dist/melonjs.mjs/utils/function.js +1 -1
  204. package/dist/melonjs.mjs/utils/string.js +1 -1
  205. package/dist/melonjs.mjs/utils/utils.js +4 -29
  206. package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +1 -1
  207. package/dist/melonjs.mjs/video/renderer.js +19 -6
  208. package/dist/melonjs.mjs/video/texture/atlas.js +1 -1
  209. package/dist/melonjs.mjs/video/texture/cache.js +1 -1
  210. package/dist/melonjs.mjs/video/texture/canvas_texture.js +20 -1
  211. package/dist/melonjs.mjs/video/utils/resize.js +116 -0
  212. package/dist/melonjs.mjs/video/video.js +20 -162
  213. package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +1 -1
  214. package/dist/melonjs.mjs/video/webgl/glshader.js +1 -1
  215. package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +1 -1
  216. package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +1 -1
  217. package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +1 -1
  218. package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +1 -1
  219. package/dist/melonjs.mjs/video/webgl/utils/attributes.js +1 -1
  220. package/dist/melonjs.mjs/video/webgl/utils/precision.js +1 -1
  221. package/dist/melonjs.mjs/video/webgl/utils/program.js +1 -1
  222. package/dist/melonjs.mjs/video/webgl/utils/string.js +1 -1
  223. package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +1 -1
  224. package/dist/melonjs.mjs/video/webgl/webgl_compositor.js +1 -1
  225. package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +1 -1
  226. package/dist/melonjs.module.js +23849 -22258
  227. package/package.json +13 -13
  228. package/src/application/application.js +20 -13
  229. package/src/input/pointerevent.js +5 -6
  230. package/src/plugin/plugin.js +1 -1
  231. package/src/system/device.js +7 -7
  232. package/src/system/dom.js +2 -1
  233. package/src/utils/utils.js +3 -28
  234. package/src/video/renderer.js +20 -7
  235. package/src/video/texture/canvas_texture.js +19 -0
  236. package/src/video/utils/resize.js +107 -0
  237. package/src/video/video.js +17 -159
@@ -1,21 +1,16 @@
1
- import Vector2d from "./../math/vector2.js";
2
1
  import WebGLRenderer from "./webgl/webgl_renderer.js";
3
2
  import CanvasRenderer from "./canvas/canvas_renderer.js";
4
3
  import utils from "./../utils/utils.js";
5
4
  import * as event from "./../system/event.js";
6
- import game from "./../game.js";
7
5
  import * as device from "./../system/device.js";
8
6
  import { initialized, version } from "./../index.js";
7
+ import game from "./../game.js";
8
+ import { onresize } from "./utils/resize.js";
9
9
 
10
10
  /**
11
- * video functions
12
11
  * @namespace video
13
12
  */
14
13
 
15
- var designRatio = 1;
16
- var designWidth = 0;
17
- var designHeight = 0;
18
-
19
14
  // default video settings
20
15
  var settings = {
21
16
  parent : undefined,
@@ -50,84 +45,9 @@ function autoDetectRenderer(options) {
50
45
  return new CanvasRenderer(options);
51
46
  }
52
47
 
53
- /**
54
- * callback for window resize event
55
- * @ignore
56
- */
57
- function onresize() {
58
- var settings = renderer.settings;
59
- var scaleX = 1, scaleY = 1;
60
-
61
- if (settings.autoScale) {
62
-
63
- // set max the canvas max size if CSS values are defined
64
- var canvasMaxWidth = Infinity;
65
- var canvasMaxHeight = Infinity;
66
-
67
- if (globalThis.getComputedStyle) {
68
- var style = globalThis.getComputedStyle(renderer.getCanvas(), null);
69
- canvasMaxWidth = parseInt(style.maxWidth, 10) || Infinity;
70
- canvasMaxHeight = parseInt(style.maxHeight, 10) || Infinity;
71
- }
72
-
73
- // get the maximum canvas size within the parent div containing the canvas container
74
- var nodeBounds = device.getParentBounds(getParent());
75
-
76
- var _max_width = Math.min(canvasMaxWidth, nodeBounds.width);
77
- var _max_height = Math.min(canvasMaxHeight, nodeBounds.height);
78
-
79
- // calculate final canvas width & height
80
- var screenRatio = _max_width / _max_height;
81
-
82
- if ((settings.scaleMethod === "fill-min" && screenRatio > designRatio) ||
83
- (settings.scaleMethod === "fill-max" && screenRatio < designRatio) ||
84
- (settings.scaleMethod === "flex-width")
85
- ) {
86
- // resize the display canvas to fill the parent container
87
- var sWidth = Math.min(canvasMaxWidth, designHeight * screenRatio);
88
- scaleX = scaleY = _max_width / sWidth;
89
- renderer.resize(Math.floor(sWidth), designHeight);
90
- }
91
- else if ((settings.scaleMethod === "fill-min" && screenRatio < designRatio) ||
92
- (settings.scaleMethod === "fill-max" && screenRatio > designRatio) ||
93
- (settings.scaleMethod === "flex-height")
94
- ) {
95
- // resize the display canvas to fill the parent container
96
- var sHeight = Math.min(canvasMaxHeight, designWidth * (_max_height / _max_width));
97
- scaleX = scaleY = _max_height / sHeight;
98
- renderer.resize(designWidth, Math.floor(sHeight));
99
- }
100
- else if (settings.scaleMethod === "flex") {
101
- // resize the display canvas to fill the parent container
102
- renderer.resize(Math.floor(_max_width), Math.floor(_max_height));
103
- }
104
- else if (settings.scaleMethod === "stretch") {
105
- // scale the display canvas to fit with the parent container
106
- scaleX = _max_width / designWidth;
107
- scaleY = _max_height / designHeight;
108
- }
109
- else {
110
- // scale the display canvas to fit the parent container
111
- // make sure we maintain the original aspect ratio
112
- if (screenRatio < designRatio) {
113
- scaleX = scaleY = _max_width / designWidth;
114
- }
115
- else {
116
- scaleX = scaleY = _max_height / designHeight;
117
- }
118
- }
119
-
120
- // adjust scaling ratio based on the new scaling ratio
121
- scale(scaleX, scaleY);
122
- } else {
123
- // adjust scaling ratio based on the given settings
124
- scale(settings.scale, settings.scale);
125
- }
126
- }
127
48
 
128
49
  /**
129
50
  * Select the HTML5 Canvas renderer
130
- * @name CANVAS
131
51
  * @memberof video
132
52
  * @constant
133
53
  */
@@ -135,7 +55,6 @@ export const CANVAS = 0;
135
55
 
136
56
  /**
137
57
  * Select the WebGL renderer
138
- * @name WEBGL
139
58
  * @memberof video
140
59
  * @constant
141
60
  */
@@ -143,36 +62,15 @@ export const WEBGL = 1;
143
62
 
144
63
  /**
145
64
  * Auto-select the renderer (Attempt WebGL first, with fallback to Canvas)
146
- * @name AUTO
147
65
  * @memberof video
148
66
  * @constant
149
67
  */
150
68
  export const AUTO = 2;
151
69
 
152
- /**
153
- * the parent container of the main canvas element
154
- * @ignore
155
- * @type {HTMLElement}
156
- * @readonly
157
- * @name parent
158
- * @memberof video
159
- */
160
- export let parent = null;
161
-
162
- /**
163
- * the scaling ratio to be applied to the display canvas
164
- * @name scaleRatio
165
- * @type {Vector2d}
166
- * @default <1,1>
167
- * @memberof video
168
- */
169
- export let scaleRatio = new Vector2d(1, 1);
170
-
171
70
  /**
172
71
  * A reference to the active Canvas or WebGL active renderer renderer
173
- * @name renderer
174
- * @type {CanvasRenderer|WebGLRenderer}
175
72
  * @memberof video
73
+ * @type {CanvasRenderer|WebGLRenderer}
176
74
  */
177
75
  export let renderer = null;
178
76
 
@@ -193,7 +91,7 @@ export let renderer = null;
193
91
  * <center><img src="images/scale-flex-height.png"/></center><br>
194
92
  * - <i><b>`stretch`</b></i> : Canvas is resized to fit; content is scaled to screen aspect ratio
195
93
  * <center><img src="images/scale-stretch.png"/></center><br>
196
- * @function video.init
94
+ * @memberof video
197
95
  * @param {number} width - The width of the canvas viewport
198
96
  * @param {number} height - The height of the canvas viewport
199
97
  * @param {object} [options] - The optional video/renderer parameters.<br> (see Renderer(s) documentation for further specific options)
@@ -261,16 +159,10 @@ export function init(width, height, options) {
261
159
 
262
160
  // normalize scale
263
161
  settings.scale = (settings.autoScale) ? 1.0 : (+settings.scale || 1.0);
264
- scaleRatio.set(settings.scale, settings.scale);
265
-
266
- // hold the requested video size ratio
267
- designRatio = width / height;
268
- designWidth = width;
269
- designHeight = height;
270
162
 
271
163
  // default scaled size value
272
- settings.zoomX = width * scaleRatio.x;
273
- settings.zoomY = height * scaleRatio.y;
164
+ settings.zoomX = width * settings.scale;
165
+ settings.zoomY = height * settings.scale;
274
166
 
275
167
  //add a channel for the onresize/onorientationchange event
276
168
  globalThis.addEventListener(
@@ -310,10 +202,6 @@ export function init(width, height, options) {
310
202
  event.emit(event.WINDOW_ONSCROLL, e);
311
203
  }, 100), false);
312
204
 
313
- // register to the channel
314
- event.on(event.WINDOW_ONRESIZE, onresize, this);
315
- event.on(event.WINDOW_ONORIENTATION_CHANGE, onresize, this);
316
-
317
205
  try {
318
206
  switch (settings.renderer) {
319
207
  case AUTO:
@@ -330,9 +218,13 @@ export function init(width, height, options) {
330
218
  return false;
331
219
  }
332
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
+
333
225
  // add our canvas (default to document.body if settings.parent is undefined)
334
- parent = device.getElement(typeof settings.parent !== "undefined" ? settings.parent : document.body);
335
- parent.appendChild(renderer.getCanvas());
226
+ game.parentElement = device.getElement(typeof settings.parent !== "undefined" ? settings.parent : document.body);
227
+ game.parentElement.appendChild(renderer.getCanvas());
336
228
 
337
229
  // Mobile browser hacks
338
230
  if (device.platform.isMobile) {
@@ -341,15 +233,15 @@ export function init(width, height, options) {
341
233
  }
342
234
 
343
235
  // trigger an initial resize();
344
- onresize();
236
+ onresize(renderer);
345
237
 
346
238
  // add an observer to detect when the dom tree is modified
347
239
  if ("MutationObserver" in globalThis) {
348
240
  // Create an observer instance linked to the callback function
349
- var observer = new MutationObserver(onresize.bind(this));
241
+ var observer = new MutationObserver(onresize.bind(this, renderer));
350
242
 
351
243
  // Start observing the target node for configured mutations
352
- observer.observe(parent, {
244
+ observer.observe(game.parentElement, {
353
245
  attributes: false, childList: true, subtree: true
354
246
  });
355
247
  }
@@ -380,7 +272,7 @@ export function init(width, height, options) {
380
272
 
381
273
  /**
382
274
  * Create and return a new Canvas element
383
- * @function video.createCanvas
275
+ * @memberof video
384
276
  * @param {number} width - width
385
277
  * @param {number} height - height
386
278
  * @param {boolean} [returnOffscreenCanvas=false] - will return an OffscreenCanvas if supported
@@ -412,42 +304,8 @@ export function createCanvas(width, height, returnOffscreenCanvas = false) {
412
304
 
413
305
  /**
414
306
  * return a reference to the parent DOM element holding the main canvas
415
- * @function video.getParent
416
307
  * @returns {HTMLElement}
417
308
  */
418
309
  export function getParent() {
419
- return parent;
420
- }
421
-
422
- /**
423
- * scale the "displayed" canvas by the given scalar.
424
- * this will modify the size of canvas element directly.
425
- * Only use this if you are not using the automatic scaling feature.
426
- * @function video.scale
427
- * @see video.init
428
- * @param {number} x - x scaling multiplier
429
- * @param {number} y - y scaling multiplier
430
- */
431
- export function scale(x, y) {
432
- var canvas = renderer.getCanvas();
433
- var context = renderer.getContext();
434
- var settings = renderer.settings;
435
- var pixelRatio = device.devicePixelRatio;
436
-
437
- var w = settings.zoomX = canvas.width * x * pixelRatio;
438
- var h = settings.zoomY = canvas.height * y * pixelRatio;
439
-
440
- // update the global scale variable
441
- scaleRatio.set(x * pixelRatio, y * pixelRatio);
442
-
443
- // adjust CSS style based on device pixel ratio
444
- canvas.style.width = (w / pixelRatio) + "px";
445
- canvas.style.height = (h / pixelRatio) + "px";
446
-
447
- // if anti-alias and blend mode were resetted (e.g. Canvas mode)
448
- renderer.setAntiAlias(context, settings.antiAlias);
449
- renderer.setBlendMode(settings.blendMode, context);
450
-
451
- // force repaint
452
- game.repaint();
310
+ return game.getParentElement();
453
311
  }