melonjs 14.1.2 → 14.3.0

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