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,28 +1,23 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.1.2
2
+ * melonJS Game Engine - v14.2.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 Vector2d from '../math/vector2.js';
9
8
  import WebGLRenderer from './webgl/webgl_renderer.js';
10
9
  import CanvasRenderer from './canvas/canvas_renderer.js';
11
10
  import utils from '../utils/utils.js';
12
11
  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';
12
+ import { offscreenCanvas, screenOrientation, getElement, platform, enableSwipe, devicePixelRatio, getScreenOrientation, language, isWebGLSupported, hasWebAudio } from '../system/device.js';
15
13
  import { initialized, version } from '../index.js';
14
+ import game from '../game.js';
15
+ import { onresize } from './utils/resize.js';
16
16
 
17
17
  /**
18
- * video functions
19
18
  * @namespace video
20
19
  */
21
20
 
22
- var designRatio = 1;
23
- var designWidth = 0;
24
- var designHeight = 0;
25
-
26
21
  // default video settings
27
22
  var settings = {
28
23
  parent : undefined,
@@ -57,84 +52,9 @@ function autoDetectRenderer(options) {
57
52
  return new CanvasRenderer(options);
58
53
  }
59
54
 
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
55
 
135
56
  /**
136
57
  * Select the HTML5 Canvas renderer
137
- * @name CANVAS
138
58
  * @memberof video
139
59
  * @constant
140
60
  */
@@ -142,7 +62,6 @@ const CANVAS = 0;
142
62
 
143
63
  /**
144
64
  * Select the WebGL renderer
145
- * @name WEBGL
146
65
  * @memberof video
147
66
  * @constant
148
67
  */
@@ -150,36 +69,15 @@ const WEBGL = 1;
150
69
 
151
70
  /**
152
71
  * Auto-select the renderer (Attempt WebGL first, with fallback to Canvas)
153
- * @name AUTO
154
72
  * @memberof video
155
73
  * @constant
156
74
  */
157
75
  const AUTO = 2;
158
76
 
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
77
  /**
179
78
  * A reference to the active Canvas or WebGL active renderer renderer
180
- * @name renderer
181
- * @type {CanvasRenderer|WebGLRenderer}
182
79
  * @memberof video
80
+ * @type {CanvasRenderer|WebGLRenderer}
183
81
  */
184
82
  let renderer = null;
185
83
 
@@ -200,7 +98,7 @@ let renderer = null;
200
98
  * <center><img src="images/scale-flex-height.png"/></center><br>
201
99
  * - <i><b>`stretch`</b></i> : Canvas is resized to fit; content is scaled to screen aspect ratio
202
100
  * <center><img src="images/scale-stretch.png"/></center><br>
203
- * @function video.init
101
+ * @memberof video
204
102
  * @param {number} width - The width of the canvas viewport
205
103
  * @param {number} height - The height of the canvas viewport
206
104
  * @param {object} [options] - The optional video/renderer parameters.<br> (see Renderer(s) documentation for further specific options)
@@ -268,16 +166,10 @@ function init(width, height, options) {
268
166
 
269
167
  // normalize scale
270
168
  settings.scale = (settings.autoScale) ? 1.0 : (+settings.scale || 1.0);
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
169
 
278
170
  // default scaled size value
279
- settings.zoomX = width * scaleRatio.x;
280
- settings.zoomY = height * scaleRatio.y;
171
+ settings.zoomX = width * settings.scale;
172
+ settings.zoomY = height * settings.scale;
281
173
 
282
174
  //add a channel for the onresize/onorientationchange event
283
175
  globalThis.addEventListener(
@@ -317,10 +209,6 @@ function init(width, height, options) {
317
209
  emit(WINDOW_ONSCROLL, e);
318
210
  }, 100), false);
319
211
 
320
- // register to the channel
321
- on(WINDOW_ONRESIZE, onresize, this);
322
- on(WINDOW_ONORIENTATION_CHANGE, onresize, this);
323
-
324
212
  try {
325
213
  switch (settings.renderer) {
326
214
  case AUTO:
@@ -337,9 +225,13 @@ function init(width, height, options) {
337
225
  return false;
338
226
  }
339
227
 
228
+ // register to the channel
229
+ on(WINDOW_ONRESIZE, () => { onresize(renderer); }, this);
230
+ on(WINDOW_ONORIENTATION_CHANGE, () => { onresize(renderer); }, this);
231
+
340
232
  // 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());
233
+ game.parentElement = getElement(typeof settings.parent !== "undefined" ? settings.parent : document.body);
234
+ game.parentElement.appendChild(renderer.getCanvas());
343
235
 
344
236
  // Mobile browser hacks
345
237
  if (platform.isMobile) {
@@ -348,15 +240,15 @@ function init(width, height, options) {
348
240
  }
349
241
 
350
242
  // trigger an initial resize();
351
- onresize();
243
+ onresize(renderer);
352
244
 
353
245
  // add an observer to detect when the dom tree is modified
354
246
  if ("MutationObserver" in globalThis) {
355
247
  // Create an observer instance linked to the callback function
356
- var observer = new MutationObserver(onresize.bind(this));
248
+ var observer = new MutationObserver(onresize.bind(this, renderer));
357
249
 
358
250
  // Start observing the target node for configured mutations
359
- observer.observe(parent, {
251
+ observer.observe(game.parentElement, {
360
252
  attributes: false, childList: true, subtree: true
361
253
  });
362
254
  }
@@ -387,7 +279,7 @@ function init(width, height, options) {
387
279
 
388
280
  /**
389
281
  * Create and return a new Canvas element
390
- * @function video.createCanvas
282
+ * @memberof video
391
283
  * @param {number} width - width
392
284
  * @param {number} height - height
393
285
  * @param {boolean} [returnOffscreenCanvas=false] - will return an OffscreenCanvas if supported
@@ -419,44 +311,10 @@ function createCanvas(width, height, returnOffscreenCanvas = false) {
419
311
 
420
312
  /**
421
313
  * return a reference to the parent DOM element holding the main canvas
422
- * @function video.getParent
423
314
  * @returns {HTMLElement}
424
315
  */
425
316
  function getParent() {
426
- return parent;
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();
317
+ return game.getParentElement();
460
318
  }
461
319
 
462
- export { AUTO, CANVAS, WEBGL, createCanvas, getParent, init, parent, renderer, scale, scaleRatio };
320
+ export { AUTO, CANVAS, WEBGL, createCanvas, getParent, init, renderer };
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.1.2
2
+ * melonJS Game Engine - v14.2.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
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.1.2
2
+ * melonJS Game Engine - v14.2.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
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.1.2
2
+ * melonJS Game Engine - v14.2.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
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.1.2
2
+ * melonJS Game Engine - v14.2.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
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.1.2
2
+ * melonJS Game Engine - v14.2.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
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.1.2
2
+ * melonJS Game Engine - v14.2.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
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.1.2
2
+ * melonJS Game Engine - v14.2.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
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.1.2
2
+ * melonJS Game Engine - v14.2.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
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.1.2
2
+ * melonJS Game Engine - v14.2.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
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.1.2
2
+ * melonJS Game Engine - v14.2.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
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.1.2
2
+ * melonJS Game Engine - v14.2.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
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.1.2
2
+ * melonJS Game Engine - v14.2.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
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.1.2
2
+ * melonJS Game Engine - v14.2.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