melonjs 14.2.0 → 14.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (283) hide show
  1. package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +1 -1
  2. package/dist/melonjs.mjs/_virtual/arraymultimap.js +1 -1
  3. package/dist/melonjs.mjs/_virtual/earcut.js +1 -1
  4. package/dist/melonjs.mjs/_virtual/howler.js +1 -1
  5. package/dist/melonjs.mjs/_virtual/index.js +1 -1
  6. package/dist/melonjs.mjs/_virtual/index2.js +1 -1
  7. package/dist/melonjs.mjs/_virtual/multimap.js +1 -1
  8. package/dist/melonjs.mjs/_virtual/setmultimap.js +1 -1
  9. package/dist/melonjs.mjs/application/application.js +153 -9
  10. package/dist/melonjs.mjs/application/header.js +34 -0
  11. package/dist/melonjs.mjs/application/resize.js +1 -1
  12. package/dist/melonjs.mjs/application/settings.js +28 -0
  13. package/dist/melonjs.mjs/audio/audio.js +1 -1
  14. package/dist/melonjs.mjs/camera/camera2d.js +2 -2
  15. package/dist/melonjs.mjs/entity/entity.js +1 -1
  16. package/dist/melonjs.mjs/game.js +1 -1
  17. package/dist/melonjs.mjs/geometries/ellipse.js +1 -1
  18. package/dist/melonjs.mjs/geometries/line.js +1 -1
  19. package/dist/melonjs.mjs/geometries/path2d.js +1 -1
  20. package/dist/melonjs.mjs/geometries/point.js +1 -1
  21. package/dist/melonjs.mjs/geometries/poly.js +1 -1
  22. package/dist/melonjs.mjs/geometries/rectangle.js +1 -1
  23. package/dist/melonjs.mjs/geometries/roundrect.js +1 -1
  24. package/dist/melonjs.mjs/index.js +41 -30
  25. package/dist/melonjs.mjs/input/gamepad.js +1 -1
  26. package/dist/melonjs.mjs/input/input.js +1 -1
  27. package/dist/melonjs.mjs/input/keyboard.js +1 -1
  28. package/dist/melonjs.mjs/input/pointer.js +2 -2
  29. package/dist/melonjs.mjs/input/pointerevent.js +2 -2
  30. package/dist/melonjs.mjs/lang/deprecated.js +1 -1
  31. package/dist/melonjs.mjs/level/level.js +2 -2
  32. package/dist/melonjs.mjs/level/tiled/TMXGroup.js +1 -1
  33. package/dist/melonjs.mjs/level/tiled/TMXLayer.js +2 -2
  34. package/dist/melonjs.mjs/level/tiled/TMXObject.js +1 -1
  35. package/dist/melonjs.mjs/level/tiled/TMXTile.js +1 -1
  36. package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +2 -2
  37. package/dist/melonjs.mjs/level/tiled/TMXTileset.js +1 -1
  38. package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +1 -1
  39. package/dist/melonjs.mjs/level/tiled/TMXUtils.js +1 -1
  40. package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +1 -1
  41. package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +1 -1
  42. package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +1 -1
  43. package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +1 -1
  44. package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +1 -1
  45. package/dist/melonjs.mjs/loader/loader.js +1 -1
  46. package/dist/melonjs.mjs/loader/loadingscreen.js +2 -2
  47. package/dist/melonjs.mjs/loader/melonjs_logo.png.js +1 -1
  48. package/dist/melonjs.mjs/math/color.js +1 -1
  49. package/dist/melonjs.mjs/math/math.js +1 -1
  50. package/dist/melonjs.mjs/math/matrix2.js +1 -1
  51. package/dist/melonjs.mjs/math/matrix3.js +1 -1
  52. package/dist/melonjs.mjs/math/observable_vector2.js +1 -1
  53. package/dist/melonjs.mjs/math/observable_vector3.js +1 -1
  54. package/dist/melonjs.mjs/math/vector2.js +1 -1
  55. package/dist/melonjs.mjs/math/vector3.js +1 -1
  56. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/arraymultimap.js +1 -1
  57. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/index.js +1 -1
  58. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/multimap.js +1 -1
  59. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/setmultimap.js +1 -1
  60. package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +1 -1
  61. package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +1 -1
  62. package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +1 -1
  63. package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +1 -1
  64. package/dist/melonjs.mjs/particles/emitter.js +1 -1
  65. package/dist/melonjs.mjs/particles/particle.js +1 -1
  66. package/dist/melonjs.mjs/particles/settings.js +1 -1
  67. package/dist/melonjs.mjs/physics/body.js +1 -1
  68. package/dist/melonjs.mjs/physics/bounds.js +1 -1
  69. package/dist/melonjs.mjs/physics/collision.js +3 -3
  70. package/dist/melonjs.mjs/physics/detector.js +174 -146
  71. package/dist/melonjs.mjs/physics/quadtree.js +1 -1
  72. package/dist/melonjs.mjs/physics/response.js +1 -1
  73. package/dist/melonjs.mjs/physics/sat.js +1 -1
  74. package/dist/melonjs.mjs/physics/world.js +10 -30
  75. package/dist/melonjs.mjs/plugin/plugin.js +3 -3
  76. package/dist/melonjs.mjs/renderable/collectable.js +1 -1
  77. package/dist/melonjs.mjs/renderable/colorlayer.js +1 -1
  78. package/dist/melonjs.mjs/renderable/container.js +3 -87
  79. package/dist/melonjs.mjs/renderable/dragndrop.js +1 -1
  80. package/dist/melonjs.mjs/renderable/imagelayer.js +2 -2
  81. package/dist/melonjs.mjs/renderable/light2d.js +1 -1
  82. package/dist/melonjs.mjs/renderable/nineslicesprite.js +1 -1
  83. package/dist/melonjs.mjs/renderable/renderable.js +1 -1
  84. package/dist/melonjs.mjs/renderable/sprite.js +1 -1
  85. package/dist/melonjs.mjs/renderable/trigger.js +2 -2
  86. package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +1 -1
  87. package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +1 -1
  88. package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +1 -1
  89. package/dist/melonjs.mjs/state/stage.js +2 -2
  90. package/dist/melonjs.mjs/state/state.js +2 -2
  91. package/dist/melonjs.mjs/system/device.js +2 -22
  92. package/dist/melonjs.mjs/system/dom.js +1 -1
  93. package/dist/melonjs.mjs/system/event.js +1 -1
  94. package/dist/melonjs.mjs/system/platform.js +1 -1
  95. package/dist/melonjs.mjs/system/pooling.js +1 -1
  96. package/dist/melonjs.mjs/system/save.js +1 -1
  97. package/dist/melonjs.mjs/system/timer.js +1 -1
  98. package/dist/melonjs.mjs/text/bitmaptext.js +1 -1
  99. package/dist/melonjs.mjs/text/bitmaptextdata.js +1 -1
  100. package/dist/melonjs.mjs/text/glyph.js +1 -1
  101. package/dist/melonjs.mjs/text/text.js +1 -1
  102. package/dist/melonjs.mjs/text/textmetrics.js +1 -1
  103. package/dist/melonjs.mjs/text/textstyle.js +1 -1
  104. package/dist/melonjs.mjs/tweens/easing.js +1 -1
  105. package/dist/melonjs.mjs/tweens/interpolation.js +1 -1
  106. package/dist/melonjs.mjs/tweens/tween.js +2 -2
  107. package/dist/melonjs.mjs/utils/agent.js +1 -1
  108. package/dist/melonjs.mjs/utils/array.js +1 -1
  109. package/dist/melonjs.mjs/utils/file.js +1 -1
  110. package/dist/melonjs.mjs/utils/function.js +1 -1
  111. package/dist/melonjs.mjs/utils/string.js +1 -1
  112. package/dist/melonjs.mjs/utils/utils.js +1 -1
  113. package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +4 -1
  114. package/dist/melonjs.mjs/video/renderer.js +8 -1
  115. package/dist/melonjs.mjs/video/texture/atlas.js +1 -1
  116. package/dist/melonjs.mjs/video/texture/cache.js +1 -1
  117. package/dist/melonjs.mjs/video/texture/canvas_texture.js +3 -2
  118. package/dist/melonjs.mjs/video/utils/autodetect.js +27 -0
  119. package/dist/melonjs.mjs/video/utils/resize.js +1 -1
  120. package/dist/melonjs.mjs/video/video.js +15 -147
  121. package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +1 -1
  122. package/dist/melonjs.mjs/video/webgl/glshader.js +2 -3
  123. package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +1 -1
  124. package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +1 -1
  125. package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +1 -1
  126. package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +1 -1
  127. package/dist/melonjs.mjs/video/webgl/utils/attributes.js +1 -1
  128. package/dist/melonjs.mjs/video/webgl/utils/precision.js +20 -2
  129. package/dist/melonjs.mjs/video/webgl/utils/program.js +1 -1
  130. package/dist/melonjs.mjs/video/webgl/utils/string.js +1 -1
  131. package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +1 -1
  132. package/dist/melonjs.mjs/video/webgl/webgl_compositor.js +1 -1
  133. package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +4 -1
  134. package/dist/melonjs.module.js +20922 -20921
  135. package/dist/types/application/application.d.ts +144 -0
  136. package/dist/types/application/header.d.ts +5 -0
  137. package/dist/types/application/resize.d.ts +5 -0
  138. package/dist/types/application/settings.d.ts +18 -0
  139. package/dist/types/audio/audio.d.ts +267 -0
  140. package/dist/types/camera/camera2d.d.ts +289 -0
  141. package/dist/types/entity/entity.d.ts +98 -0
  142. package/{src/game.js → dist/types/game.d.ts} +3 -14
  143. package/dist/types/geometries/ellipse.d.ts +154 -0
  144. package/dist/types/geometries/line.d.ts +11 -0
  145. package/dist/types/geometries/path2d.d.ts +121 -0
  146. package/dist/types/geometries/point.d.ts +53 -0
  147. package/dist/types/geometries/poly.d.ts +222 -0
  148. package/dist/types/geometries/rectangle.d.ts +176 -0
  149. package/dist/types/geometries/roundrect.d.ts +52 -0
  150. package/dist/types/index.d.ts +3 -2
  151. package/dist/types/input/gamepad.d.ts +95 -0
  152. package/dist/types/input/input.d.ts +15 -0
  153. package/dist/types/input/keyboard.d.ts +205 -0
  154. package/dist/types/input/pointer.d.ts +270 -0
  155. package/dist/types/input/pointerevent.d.ts +181 -0
  156. package/dist/types/lang/deprecated.d.ts +53 -0
  157. package/dist/types/level/level.d.ts +134 -0
  158. package/dist/types/level/tiled/TMXGroup.d.ts +82 -0
  159. package/dist/types/level/tiled/TMXLayer.d.ts +180 -0
  160. package/dist/types/level/tiled/TMXObject.d.ts +195 -0
  161. package/dist/types/level/tiled/TMXTile.d.ts +78 -0
  162. package/dist/types/level/tiled/TMXTileMap.d.ts +180 -0
  163. package/dist/types/level/tiled/TMXTileset.d.ts +94 -0
  164. package/dist/types/level/tiled/TMXTilesetGroup.d.ts +32 -0
  165. package/dist/types/level/tiled/TMXUtils.d.ts +47 -0
  166. package/dist/types/level/tiled/renderer/TMXHexagonalRenderer.d.ts +87 -0
  167. package/dist/types/level/tiled/renderer/TMXIsometricRenderer.d.ts +55 -0
  168. package/dist/types/level/tiled/renderer/TMXOrthogonalRenderer.d.ts +43 -0
  169. package/dist/types/level/tiled/renderer/TMXRenderer.d.ts +75 -0
  170. package/dist/types/level/tiled/renderer/TMXStaggeredRenderer.d.ts +8 -0
  171. package/dist/types/loader/loader.d.ts +181 -0
  172. package/dist/types/loader/loadingscreen.d.ts +18 -0
  173. package/dist/types/math/color.d.ts +170 -0
  174. package/dist/types/math/math.d.ts +165 -0
  175. package/dist/types/math/matrix2.d.ts +209 -0
  176. package/dist/types/math/matrix3.d.ts +236 -0
  177. package/dist/types/math/observable_vector2.d.ts +278 -0
  178. package/dist/types/math/observable_vector3.d.ts +277 -0
  179. package/dist/types/math/vector2.d.ts +327 -0
  180. package/dist/types/math/vector3.d.ts +332 -0
  181. package/dist/types/particles/emitter.d.ts +188 -0
  182. package/dist/types/particles/particle.d.ts +32 -0
  183. package/dist/types/particles/settings.d.ts +32 -0
  184. package/dist/types/physics/body.d.ts +330 -0
  185. package/dist/types/physics/bounds.d.ts +250 -0
  186. package/dist/types/physics/collision.d.ts +44 -0
  187. package/dist/types/physics/detector.d.ts +64 -0
  188. package/dist/types/physics/quadtree.d.ts +79 -0
  189. package/dist/types/physics/response.d.ts +37 -0
  190. package/dist/types/physics/sat.d.ts +48 -0
  191. package/dist/types/physics/world.d.ts +83 -0
  192. package/dist/types/plugin/plugin.d.ts +10 -0
  193. package/dist/types/polyfill/console.d.ts +0 -0
  194. package/dist/types/polyfill/index.d.ts +1 -0
  195. package/dist/types/polyfill/performance.d.ts +0 -0
  196. package/dist/types/polyfill/requestAnimationFrame.d.ts +1 -0
  197. package/dist/types/polyfill/roundrect.d.ts +0 -0
  198. package/dist/types/renderable/collectable.d.ts +19 -0
  199. package/dist/types/renderable/colorlayer.d.ts +28 -0
  200. package/dist/types/renderable/container.d.ts +302 -0
  201. package/dist/types/renderable/dragndrop.d.ts +118 -0
  202. package/dist/types/renderable/imagelayer.d.ts +106 -0
  203. package/dist/types/renderable/light2d.d.ts +58 -0
  204. package/dist/types/renderable/nineslicesprite.d.ts +59 -0
  205. package/dist/types/renderable/renderable.d.ts +402 -0
  206. package/dist/types/renderable/sprite.d.ts +268 -0
  207. package/dist/types/renderable/trigger.d.ts +61 -0
  208. package/dist/types/renderable/ui/uibaseelement.d.ts +95 -0
  209. package/dist/types/renderable/ui/uispriteelement.d.ts +127 -0
  210. package/dist/types/renderable/ui/uitextbutton.d.ts +54 -0
  211. package/dist/types/state/stage.d.ts +116 -0
  212. package/dist/types/state/state.d.ts +170 -0
  213. package/dist/types/system/device.d.ts +579 -0
  214. package/dist/types/system/dom.d.ts +1 -0
  215. package/dist/types/system/event.d.ts +473 -0
  216. package/dist/types/system/platform.d.ts +31 -0
  217. package/dist/types/system/pooling.d.ts +101 -0
  218. package/dist/types/system/save.d.ts +25 -0
  219. package/dist/types/system/timer.d.ts +126 -0
  220. package/dist/types/text/bitmaptext.d.ts +151 -0
  221. package/dist/types/text/bitmaptextdata.d.ts +35 -0
  222. package/dist/types/text/glyph.d.ts +28 -0
  223. package/dist/types/text/text.d.ts +173 -0
  224. package/dist/types/text/textmetrics.d.ts +47 -0
  225. package/dist/types/text/textstyle.d.ts +5 -0
  226. package/dist/types/tweens/easing.d.ts +46 -0
  227. package/dist/types/tweens/interpolation.d.ts +18 -0
  228. package/dist/types/tweens/tween.d.ts +195 -0
  229. package/dist/types/utils/agent.d.ts +21 -0
  230. package/dist/types/utils/array.d.ts +39 -0
  231. package/dist/types/utils/file.d.ts +18 -0
  232. package/dist/types/utils/function.d.ts +32 -0
  233. package/dist/types/utils/string.d.ts +50 -0
  234. package/dist/types/utils/utils.d.ts +17 -0
  235. package/dist/types/video/canvas/canvas_renderer.d.ts +380 -0
  236. package/dist/types/video/renderer.d.ts +222 -0
  237. package/dist/types/video/texture/atlas.d.ts +201 -0
  238. package/dist/types/video/texture/cache.d.ts +45 -0
  239. package/dist/types/video/texture/canvas_texture.d.ts +78 -0
  240. package/dist/types/video/utils/autodetect.d.ts +7 -0
  241. package/dist/types/video/utils/resize.d.ts +4 -0
  242. package/dist/types/video/video.d.ts +92 -0
  243. package/dist/types/video/webgl/buffer/vertex.d.ts +56 -0
  244. package/dist/types/video/webgl/glshader.d.ts +93 -0
  245. package/dist/types/video/webgl/utils/attributes.d.ts +4 -0
  246. package/dist/types/video/webgl/utils/precision.d.ts +13 -0
  247. package/dist/types/video/webgl/utils/program.d.ts +5 -0
  248. package/dist/types/video/webgl/utils/string.d.ts +5 -0
  249. package/dist/types/video/webgl/utils/uniforms.d.ts +4 -0
  250. package/dist/types/video/webgl/webgl_compositor.d.ts +174 -0
  251. package/dist/types/video/webgl/webgl_renderer.d.ts +429 -0
  252. package/package.json +4 -4
  253. package/src/application/application.js +151 -7
  254. package/src/application/header.js +25 -0
  255. package/src/{video/utils → application}/resize.js +9 -6
  256. package/src/application/settings.js +19 -0
  257. package/src/camera/camera2d.js +1 -1
  258. package/src/index.js +34 -23
  259. package/src/input/pointer.js +1 -1
  260. package/src/input/pointerevent.js +1 -1
  261. package/src/level/level.js +1 -1
  262. package/src/level/tiled/TMXLayer.js +1 -1
  263. package/src/level/tiled/TMXTileMap.js +2 -2
  264. package/src/loader/loadingscreen.js +1 -1
  265. package/src/physics/collision.js +2 -2
  266. package/src/physics/detector.js +172 -145
  267. package/src/physics/world.js +10 -30
  268. package/src/renderable/container.js +7 -91
  269. package/src/renderable/imagelayer.js +1 -1
  270. package/src/renderable/trigger.js +1 -1
  271. package/src/renderable/ui/uibaseelement.js +1 -1
  272. package/src/state/stage.js +1 -1
  273. package/src/state/state.js +1 -1
  274. package/src/system/device.js +0 -20
  275. package/src/tweens/tween.js +1 -1
  276. package/src/video/canvas/canvas_renderer.js +3 -0
  277. package/src/video/renderer.js +7 -0
  278. package/src/video/texture/canvas_texture.js +2 -1
  279. package/src/video/utils/autodetect.js +18 -0
  280. package/src/video/video.js +13 -145
  281. package/src/video/webgl/glshader.js +3 -4
  282. package/src/video/webgl/utils/precision.js +18 -0
  283. package/src/video/webgl/webgl_renderer.js +3 -0
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.2.0
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.2.0
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.2.0
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.2.0
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
@@ -52,6 +52,9 @@ import { emit, ONCONTEXT_LOST, ONCONTEXT_RESTORED } from '../../system/event.js'
52
52
  this.uvOffset = 1;
53
53
  }
54
54
 
55
+ // set the renderer type
56
+ this.type = "CANVAS";
57
+
55
58
  // context lost & restore event for canvas
56
59
  this.getCanvas().addEventListener("contextlost", (e) => {
57
60
  e.preventDefault();
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.2.0
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
@@ -76,6 +76,13 @@ import Point from '../geometries/point.js';
76
76
  */
77
77
  this.path2D = new Path2D();
78
78
 
79
+ /**
80
+ * The renderer type : Canvas, WebGL, etc...
81
+ * (override this property with a specific value when implementing a custom renderer)
82
+ * @type {string}
83
+ */
84
+ this.type = "Generic";
85
+
79
86
  /**
80
87
  * @ignore
81
88
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.2.0
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.2.0
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.2.0
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
@@ -106,7 +106,8 @@ class CanvasTexture {
106
106
  }
107
107
 
108
108
  /**
109
- * Returns an ImageData object representing the underlying pixel data for a specified portion of this canvas texture
109
+ * Returns an ImageData object representing the underlying pixel data for a specified portion of this canvas texture.
110
+ * (Note: when using getImageData(), it is highly recommended to use the `willReadFrequently` attribute when creatimg the corresponding canvas texture)
110
111
  * @param {number} x - The x-axis coordinate of the top-left corner of the rectangle from which the ImageData will be extracted
111
112
  * @param {number} y - The y-axis coordinate of the top-left corner of the rectangle from which the ImageData will be extracted
112
113
  * @param {number} width - The width of the rectangle from which the ImageData will be extracted. Positive values are to the right, and negative to the left
@@ -0,0 +1,27 @@
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 { isWebGLSupported } from '../../system/device.js';
9
+ import WebGLRenderer from '../webgl/webgl_renderer.js';
10
+ import CanvasRenderer from '../canvas/canvas_renderer.js';
11
+
12
+ /**
13
+ * Auto-detect the best renderer to use
14
+ * @ignore
15
+ */
16
+ function autoDetectRenderer(options) {
17
+ try {
18
+ if (isWebGLSupported(options)) {
19
+ return new WebGLRenderer(options);
20
+ }
21
+ } catch (e) {
22
+ console.log("Error creating WebGL renderer :" + e.message);
23
+ }
24
+ return new CanvasRenderer(options);
25
+ }
26
+
27
+ export { autoDetectRenderer };
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.2.0
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,58 +1,19 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.2.0
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 WebGLRenderer from './webgl/webgl_renderer.js';
9
- 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';
10
11
  import utils from '../utils/utils.js';
11
- import { emit, WINDOW_ONRESIZE, WINDOW_ONORIENTATION_CHANGE, WINDOW_ONSCROLL, on, VIDEO_INIT } from '../system/event.js';
12
- import { offscreenCanvas, screenOrientation, getElement, platform, enableSwipe, devicePixelRatio, getScreenOrientation, language, isWebGLSupported, hasWebAudio } from '../system/device.js';
13
- import { initialized, version } from '../index.js';
14
- import game from '../game.js';
15
- import { onresize } from './utils/resize.js';
16
12
 
17
13
  /**
18
14
  * @namespace video
19
15
  */
20
16
 
21
- // default video settings
22
- var settings = {
23
- parent : undefined,
24
- renderer : 2, // AUTO
25
- autoScale : false,
26
- scale : 1.0,
27
- scaleMethod : "manual",
28
- transparent : false,
29
- premultipliedAlpha: true,
30
- blendMode : "normal",
31
- antiAlias : false,
32
- failIfMajorPerformanceCaveat : true,
33
- subPixel : false,
34
- preferWebGL1 : false,
35
- powerPreference : "default",
36
- verbose : false,
37
- consoleHeader : true
38
- };
39
-
40
- /**
41
- * Auto-detect the best renderer to use
42
- * @ignore
43
- */
44
- function autoDetectRenderer(options) {
45
- try {
46
- if (isWebGLSupported(options)) {
47
- return new WebGLRenderer(options);
48
- }
49
- } catch (e) {
50
- console.log("Error creating WebGL renderer :" + e.message);
51
- }
52
- return new CanvasRenderer(options);
53
- }
54
-
55
-
56
17
  /**
57
18
  * Select the HTML5 Canvas renderer
58
19
  * @memberof video
@@ -103,7 +64,7 @@ let renderer = null;
103
64
  * @param {number} height - The height of the canvas viewport
104
65
  * @param {object} [options] - The optional video/renderer parameters.<br> (see Renderer(s) documentation for further specific options)
105
66
  * @param {string|HTMLElement} [options.parent=document.body] - the DOM parent element to hold the canvas in the HTML file
106
- * @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
107
68
  * @param {number|string} [options.scale=1.0] - enable scaling of the canvas ('auto' for automatic scaling)
108
69
  * @param {string} [options.scaleMethod="fit"] - screen scaling modes ('fit','fill-min','fill-max','flex','flex-width','flex-height','stretch')
109
70
  * @param {boolean} [options.preferWebGL1=false] - if true the renderer will only use WebGL 1
@@ -122,54 +83,22 @@ let renderer = null;
122
83
  * });
123
84
  */
124
85
  function init(width, height, options) {
125
-
126
86
  // ensure melonjs has been properly initialized
127
87
  if (!initialized) {
128
88
  throw new Error("me.video.init() called before engine initialization.");
129
89
  }
130
90
 
131
- // revert to default options if not defined
132
- settings = Object.assign(settings, options || {});
133
-
134
- // sanitize potential given parameters
135
- settings.width = width;
136
- settings.height = height;
137
- settings.transparent = !!(settings.transparent);
138
- settings.antiAlias = !!(settings.antiAlias);
139
- settings.failIfMajorPerformanceCaveat = !!(settings.failIfMajorPerformanceCaveat);
140
- settings.subPixel = !!(settings.subPixel);
141
- settings.verbose = !!(settings.verbose);
142
- if (settings.scaleMethod.search(/^(fill-(min|max)|fit|flex(-(width|height))?|stretch)$/) !== -1) {
143
- settings.autoScale = (settings.scale === "auto") || true;
144
- } else {
145
- // default scaling method
146
- settings.scaleMethod = "fit";
147
- settings.autoScale = (settings.scale === "auto") || false;
148
- }
149
-
150
- // display melonJS version
151
- if (settings.consoleHeader !== false) {
152
- // output video information in the console
153
- console.log("melonJS 2 (v" + version + ") | http://melonjs.org" );
154
- }
155
-
156
- // override renderer settings if &webgl or &canvas is defined in the URL
157
- var uriFragment = utils.getUriFragment();
158
- if (uriFragment.webgl === true || uriFragment.webgl1 === true || uriFragment.webgl2 === true) {
159
- settings.renderer = WEBGL;
160
- if (uriFragment.webgl1 === true) {
161
- settings.preferWebGL1 = true;
162
- }
163
- } else if (uriFragment.canvas === true) {
164
- 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;
165
98
  }
166
99
 
167
- // normalize scale
168
- settings.scale = (settings.autoScale) ? 1.0 : (+settings.scale || 1.0);
169
-
170
- // default scaled size value
171
- settings.zoomX = width * settings.scale;
172
- settings.zoomY = height * settings.scale;
100
+ // assign the default renderer
101
+ renderer = game.renderer;
173
102
 
174
103
  //add a channel for the onresize/onorientationchange event
175
104
  globalThis.addEventListener(
@@ -189,6 +118,7 @@ function init(width, height, options) {
189
118
  },
190
119
  false
191
120
  );
121
+
192
122
  // pre-fixed implementation on mozzila
193
123
  globalThis.addEventListener(
194
124
  "onmozorientationchange",
@@ -209,68 +139,6 @@ function init(width, height, options) {
209
139
  emit(WINDOW_ONSCROLL, e);
210
140
  }, 100), false);
211
141
 
212
- try {
213
- switch (settings.renderer) {
214
- case AUTO:
215
- case WEBGL:
216
- renderer = autoDetectRenderer(settings);
217
- break;
218
- default:
219
- renderer = new CanvasRenderer(settings);
220
- break;
221
- }
222
- } catch (e) {
223
- console(e.message);
224
- // me.video.init() returns false if failing at creating/using a HTML5 canvas
225
- return false;
226
- }
227
-
228
- // register to the channel
229
- on(WINDOW_ONRESIZE, () => { onresize(renderer); }, this);
230
- on(WINDOW_ONORIENTATION_CHANGE, () => { onresize(renderer); }, this);
231
-
232
- // add our canvas (default to document.body if settings.parent is undefined)
233
- game.parentElement = getElement(typeof settings.parent !== "undefined" ? settings.parent : document.body);
234
- game.parentElement.appendChild(renderer.getCanvas());
235
-
236
- // Mobile browser hacks
237
- if (platform.isMobile) {
238
- // Prevent the webview from moving on a swipe
239
- enableSwipe(false);
240
- }
241
-
242
- // trigger an initial resize();
243
- onresize(renderer);
244
-
245
- // add an observer to detect when the dom tree is modified
246
- if ("MutationObserver" in globalThis) {
247
- // Create an observer instance linked to the callback function
248
- var observer = new MutationObserver(onresize.bind(this, renderer));
249
-
250
- // Start observing the target node for configured mutations
251
- observer.observe(game.parentElement, {
252
- attributes: false, childList: true, subtree: true
253
- });
254
- }
255
-
256
- if (settings.consoleHeader !== false) {
257
- var renderType = (renderer instanceof CanvasRenderer) ? "CANVAS" : "WebGL" + renderer.WebGLVersion;
258
- var audioType = hasWebAudio ? "Web Audio" : "HTML5 Audio";
259
- var gpu_renderer = (typeof renderer.GPURenderer === "string") ? " (" + renderer.GPURenderer + ")" : "";
260
- // output video information in the console
261
- console.log(
262
- renderType + " renderer" + gpu_renderer + " | " +
263
- audioType + " | " +
264
- "pixel ratio " + devicePixelRatio + " | " +
265
- (platform.nodeJS ? "node.js" : platform.isMobile ? "mobile" : "desktop") + " | " +
266
- getScreenOrientation() + " | " +
267
- language
268
- );
269
- console.log( "resolution: " + "requested " + width + "x" + height +
270
- ", got " + renderer.getWidth() + "x" + renderer.getHeight()
271
- );
272
- }
273
-
274
142
  // notify the video has been initialized
275
143
  emit(VIDEO_INIT);
276
144
 
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.2.0
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.2.0
2
+ * melonJS Game Engine - v14.3.0
3
3
  * http://www.melonjs.org
4
4
  * melonjs is licensed under the MIT License.
5
5
  * http://www.opensource.org/licenses/mit-license
6
6
  * @copyright (C) 2011 - 2022 Olivier Biot (AltByte Pte Ltd)
7
7
  */
8
8
  import { on, ONCONTEXT_LOST } from '../../system/event.js';
9
- import { getMaxShaderPrecision } from '../../system/device.js';
10
9
  import { extractUniforms } from './utils/uniforms.js';
11
10
  import { extractAttributes } from './utils/attributes.js';
12
11
  import { compileProgram } from './utils/program.js';
13
- import { setPrecision } from './utils/precision.js';
12
+ import { setPrecision, getMaxShaderPrecision } from './utils/precision.js';
14
13
  import { minify } from './utils/string.js';
15
14
 
16
15
  /**
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v14.2.0
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.2.0
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.2.0
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.2.0
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.2.0
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.2.0
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.2.0
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.2.0
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.2.0
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.2.0
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.2.0
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()