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,18 @@
1
+ import { isWebGLSupported } from "../../system/device";
2
+ import WebGLRenderer from "../webgl/webgl_renderer";
3
+ import CanvasRenderer from "../canvas/canvas_renderer";
4
+
5
+ /**
6
+ * Auto-detect the best renderer to use
7
+ * @ignore
8
+ */
9
+ export function autoDetectRenderer(options) {
10
+ try {
11
+ if (isWebGLSupported(options)) {
12
+ return new WebGLRenderer(options);
13
+ }
14
+ } catch (e) {
15
+ console.log("Error creating WebGL renderer :" + e.message);
16
+ }
17
+ return new CanvasRenderer(options);
18
+ }
@@ -1,133 +1,14 @@
1
- import Vector2d from "./../math/vector2.js";
2
- import WebGLRenderer from "./webgl/webgl_renderer.js";
3
- import CanvasRenderer from "./canvas/canvas_renderer.js";
4
- import utils from "./../utils/utils.js";
5
1
  import * as event from "./../system/event.js";
6
- import game from "./../game.js";
2
+ import { initialized, game } from "./../index.js";
7
3
  import * as device from "./../system/device.js";
8
- import { initialized, version } from "./../index.js";
4
+ import utils from "./../utils/utils.js";
9
5
 
10
6
  /**
11
- * video functions
12
7
  * @namespace video
13
8
  */
14
9
 
15
- var designRatio = 1;
16
- var designWidth = 0;
17
- var designHeight = 0;
18
-
19
- // default video settings
20
- var settings = {
21
- parent : undefined,
22
- renderer : 2, // AUTO
23
- autoScale : false,
24
- scale : 1.0,
25
- scaleMethod : "manual",
26
- transparent : false,
27
- premultipliedAlpha: true,
28
- blendMode : "normal",
29
- antiAlias : false,
30
- failIfMajorPerformanceCaveat : true,
31
- subPixel : false,
32
- preferWebGL1 : false,
33
- powerPreference : "default",
34
- verbose : false,
35
- consoleHeader : true
36
- };
37
-
38
- /**
39
- * Auto-detect the best renderer to use
40
- * @ignore
41
- */
42
- function autoDetectRenderer(options) {
43
- try {
44
- if (device.isWebGLSupported(options)) {
45
- return new WebGLRenderer(options);
46
- }
47
- } catch (e) {
48
- console.log("Error creating WebGL renderer :" + e.message);
49
- }
50
- return new CanvasRenderer(options);
51
- }
52
-
53
- /**
54
- * callback for window resize event
55
- * @ignore
56
- */
57
- function onresize() {
58
- var settings = renderer.settings;
59
- var scaleX = 1, scaleY = 1;
60
-
61
- if (settings.autoScale) {
62
-
63
- // set max the canvas max size if CSS values are defined
64
- var canvasMaxWidth = Infinity;
65
- var canvasMaxHeight = Infinity;
66
-
67
- if (globalThis.getComputedStyle) {
68
- var style = globalThis.getComputedStyle(renderer.getCanvas(), null);
69
- canvasMaxWidth = parseInt(style.maxWidth, 10) || Infinity;
70
- canvasMaxHeight = parseInt(style.maxHeight, 10) || Infinity;
71
- }
72
-
73
- // get the maximum canvas size within the parent div containing the canvas container
74
- var nodeBounds = device.getParentBounds(getParent());
75
-
76
- var _max_width = Math.min(canvasMaxWidth, nodeBounds.width);
77
- var _max_height = Math.min(canvasMaxHeight, nodeBounds.height);
78
-
79
- // calculate final canvas width & height
80
- var screenRatio = _max_width / _max_height;
81
-
82
- if ((settings.scaleMethod === "fill-min" && screenRatio > designRatio) ||
83
- (settings.scaleMethod === "fill-max" && screenRatio < designRatio) ||
84
- (settings.scaleMethod === "flex-width")
85
- ) {
86
- // resize the display canvas to fill the parent container
87
- var sWidth = Math.min(canvasMaxWidth, designHeight * screenRatio);
88
- scaleX = scaleY = _max_width / sWidth;
89
- renderer.resize(Math.floor(sWidth), designHeight);
90
- }
91
- else if ((settings.scaleMethod === "fill-min" && screenRatio < designRatio) ||
92
- (settings.scaleMethod === "fill-max" && screenRatio > designRatio) ||
93
- (settings.scaleMethod === "flex-height")
94
- ) {
95
- // resize the display canvas to fill the parent container
96
- var sHeight = Math.min(canvasMaxHeight, designWidth * (_max_height / _max_width));
97
- scaleX = scaleY = _max_height / sHeight;
98
- renderer.resize(designWidth, Math.floor(sHeight));
99
- }
100
- else if (settings.scaleMethod === "flex") {
101
- // resize the display canvas to fill the parent container
102
- renderer.resize(Math.floor(_max_width), Math.floor(_max_height));
103
- }
104
- else if (settings.scaleMethod === "stretch") {
105
- // scale the display canvas to fit with the parent container
106
- scaleX = _max_width / designWidth;
107
- scaleY = _max_height / designHeight;
108
- }
109
- else {
110
- // scale the display canvas to fit the parent container
111
- // make sure we maintain the original aspect ratio
112
- if (screenRatio < designRatio) {
113
- scaleX = scaleY = _max_width / designWidth;
114
- }
115
- else {
116
- scaleX = scaleY = _max_height / designHeight;
117
- }
118
- }
119
-
120
- // adjust scaling ratio based on the new scaling ratio
121
- scale(scaleX, scaleY);
122
- } else {
123
- // adjust scaling ratio based on the given settings
124
- scale(settings.scale, settings.scale);
125
- }
126
- }
127
-
128
10
  /**
129
11
  * Select the HTML5 Canvas renderer
130
- * @name CANVAS
131
12
  * @memberof video
132
13
  * @constant
133
14
  */
@@ -135,7 +16,6 @@ export const CANVAS = 0;
135
16
 
136
17
  /**
137
18
  * Select the WebGL renderer
138
- * @name WEBGL
139
19
  * @memberof video
140
20
  * @constant
141
21
  */
@@ -143,36 +23,15 @@ export const WEBGL = 1;
143
23
 
144
24
  /**
145
25
  * Auto-select the renderer (Attempt WebGL first, with fallback to Canvas)
146
- * @name AUTO
147
26
  * @memberof video
148
27
  * @constant
149
28
  */
150
29
  export const AUTO = 2;
151
30
 
152
- /**
153
- * the parent container of the main canvas element
154
- * @ignore
155
- * @type {HTMLElement}
156
- * @readonly
157
- * @name parent
158
- * @memberof video
159
- */
160
- export let parent = null;
161
-
162
- /**
163
- * the scaling ratio to be applied to the display canvas
164
- * @name scaleRatio
165
- * @type {Vector2d}
166
- * @default <1,1>
167
- * @memberof video
168
- */
169
- export let scaleRatio = new Vector2d(1, 1);
170
-
171
31
  /**
172
32
  * A reference to the active Canvas or WebGL active renderer renderer
173
- * @name renderer
174
- * @type {CanvasRenderer|WebGLRenderer}
175
33
  * @memberof video
34
+ * @type {CanvasRenderer|WebGLRenderer}
176
35
  */
177
36
  export let renderer = null;
178
37
 
@@ -193,12 +52,12 @@ export let renderer = null;
193
52
  * <center><img src="images/scale-flex-height.png"/></center><br>
194
53
  * - <i><b>`stretch`</b></i> : Canvas is resized to fit; content is scaled to screen aspect ratio
195
54
  * <center><img src="images/scale-stretch.png"/></center><br>
196
- * @function video.init
55
+ * @memberof video
197
56
  * @param {number} width - The width of the canvas viewport
198
57
  * @param {number} height - The height of the canvas viewport
199
58
  * @param {object} [options] - The optional video/renderer parameters.<br> (see Renderer(s) documentation for further specific options)
200
59
  * @param {string|HTMLElement} [options.parent=document.body] - the DOM parent element to hold the canvas in the HTML file
201
- * @param {number} [options.renderer=video.AUTO] - renderer to use (me.video.CANVAS, me.video.WEBGL, me.video.AUTO)
60
+ * @param {number|Renderer} [options.renderer=video.AUTO] - renderer to use (me.video.CANVAS, me.video.WEBGL, me.video.AUTO), or a custom renderer class
202
61
  * @param {number|string} [options.scale=1.0] - enable scaling of the canvas ('auto' for automatic scaling)
203
62
  * @param {string} [options.scaleMethod="fit"] - screen scaling modes ('fit','fill-min','fill-max','flex','flex-width','flex-height','stretch')
204
63
  * @param {boolean} [options.preferWebGL1=false] - if true the renderer will only use WebGL 1
@@ -217,60 +76,22 @@ export let renderer = null;
217
76
  * });
218
77
  */
219
78
  export function init(width, height, options) {
220
-
221
79
  // ensure melonjs has been properly initialized
222
80
  if (!initialized) {
223
81
  throw new Error("me.video.init() called before engine initialization.");
224
82
  }
225
83
 
226
- // revert to default options if not defined
227
- settings = Object.assign(settings, options || {});
228
-
229
- // sanitize potential given parameters
230
- settings.width = width;
231
- settings.height = height;
232
- settings.transparent = !!(settings.transparent);
233
- settings.antiAlias = !!(settings.antiAlias);
234
- settings.failIfMajorPerformanceCaveat = !!(settings.failIfMajorPerformanceCaveat);
235
- settings.subPixel = !!(settings.subPixel);
236
- settings.verbose = !!(settings.verbose);
237
- if (settings.scaleMethod.search(/^(fill-(min|max)|fit|flex(-(width|height))?|stretch)$/) !== -1) {
238
- settings.autoScale = (settings.scale === "auto") || true;
239
- } else {
240
- // default scaling method
241
- settings.scaleMethod = "fit";
242
- settings.autoScale = (settings.scale === "auto") || false;
243
- }
244
-
245
- // display melonJS version
246
- if (settings.consoleHeader !== false) {
247
- // output video information in the console
248
- console.log("melonJS 2 (v" + version + ") | http://melonjs.org" );
249
- }
250
-
251
- // override renderer settings if &webgl or &canvas is defined in the URL
252
- var uriFragment = utils.getUriFragment();
253
- if (uriFragment.webgl === true || uriFragment.webgl1 === true || uriFragment.webgl2 === true) {
254
- settings.renderer = WEBGL;
255
- if (uriFragment.webgl1 === true) {
256
- settings.preferWebGL1 = true;
257
- }
258
- } else if (uriFragment.canvas === true) {
259
- settings.renderer = CANVAS;
84
+ try {
85
+ // initialize the default game Application with the given options
86
+ game.init(width, height, options);
87
+ } catch (e) {
88
+ console(e.message);
89
+ // me.video.init() historically returns false if failing at creating/using a HTML5 canvas
90
+ return false;
260
91
  }
261
92
 
262
- // normalize scale
263
- settings.scale = (settings.autoScale) ? 1.0 : (+settings.scale || 1.0);
264
- scaleRatio.set(settings.scale, settings.scale);
265
-
266
- // hold the requested video size ratio
267
- designRatio = width / height;
268
- designWidth = width;
269
- designHeight = height;
270
-
271
- // default scaled size value
272
- settings.zoomX = width * scaleRatio.x;
273
- settings.zoomY = height * scaleRatio.y;
93
+ // assign the default renderer
94
+ renderer = game.renderer;
274
95
 
275
96
  //add a channel for the onresize/onorientationchange event
276
97
  globalThis.addEventListener(
@@ -290,6 +111,7 @@ export function init(width, height, options) {
290
111
  },
291
112
  false
292
113
  );
114
+
293
115
  // pre-fixed implementation on mozzila
294
116
  globalThis.addEventListener(
295
117
  "onmozorientationchange",
@@ -310,68 +132,6 @@ export function init(width, height, options) {
310
132
  event.emit(event.WINDOW_ONSCROLL, e);
311
133
  }, 100), false);
312
134
 
313
- // register to the channel
314
- event.on(event.WINDOW_ONRESIZE, onresize, this);
315
- event.on(event.WINDOW_ONORIENTATION_CHANGE, onresize, this);
316
-
317
- try {
318
- switch (settings.renderer) {
319
- case AUTO:
320
- case WEBGL:
321
- renderer = autoDetectRenderer(settings);
322
- break;
323
- default:
324
- renderer = new CanvasRenderer(settings);
325
- break;
326
- }
327
- } catch (e) {
328
- console(e.message);
329
- // me.video.init() returns false if failing at creating/using a HTML5 canvas
330
- return false;
331
- }
332
-
333
- // add our canvas (default to document.body if settings.parent is undefined)
334
- parent = device.getElement(typeof settings.parent !== "undefined" ? settings.parent : document.body);
335
- parent.appendChild(renderer.getCanvas());
336
-
337
- // Mobile browser hacks
338
- if (device.platform.isMobile) {
339
- // Prevent the webview from moving on a swipe
340
- device.enableSwipe(false);
341
- }
342
-
343
- // trigger an initial resize();
344
- onresize();
345
-
346
- // add an observer to detect when the dom tree is modified
347
- if ("MutationObserver" in globalThis) {
348
- // Create an observer instance linked to the callback function
349
- var observer = new MutationObserver(onresize.bind(this));
350
-
351
- // Start observing the target node for configured mutations
352
- observer.observe(parent, {
353
- attributes: false, childList: true, subtree: true
354
- });
355
- }
356
-
357
- if (settings.consoleHeader !== false) {
358
- var renderType = (renderer instanceof CanvasRenderer) ? "CANVAS" : "WebGL" + renderer.WebGLVersion;
359
- var audioType = device.hasWebAudio ? "Web Audio" : "HTML5 Audio";
360
- var gpu_renderer = (typeof renderer.GPURenderer === "string") ? " (" + renderer.GPURenderer + ")" : "";
361
- // output video information in the console
362
- console.log(
363
- renderType + " renderer" + gpu_renderer + " | " +
364
- audioType + " | " +
365
- "pixel ratio " + device.devicePixelRatio + " | " +
366
- (device.platform.nodeJS ? "node.js" : device.platform.isMobile ? "mobile" : "desktop") + " | " +
367
- device.getScreenOrientation() + " | " +
368
- device.language
369
- );
370
- console.log( "resolution: " + "requested " + width + "x" + height +
371
- ", got " + renderer.getWidth() + "x" + renderer.getHeight()
372
- );
373
- }
374
-
375
135
  // notify the video has been initialized
376
136
  event.emit(event.VIDEO_INIT);
377
137
 
@@ -380,7 +140,7 @@ export function init(width, height, options) {
380
140
 
381
141
  /**
382
142
  * Create and return a new Canvas element
383
- * @function video.createCanvas
143
+ * @memberof video
384
144
  * @param {number} width - width
385
145
  * @param {number} height - height
386
146
  * @param {boolean} [returnOffscreenCanvas=false] - will return an OffscreenCanvas if supported
@@ -412,42 +172,8 @@ export function createCanvas(width, height, returnOffscreenCanvas = false) {
412
172
 
413
173
  /**
414
174
  * return a reference to the parent DOM element holding the main canvas
415
- * @function video.getParent
416
175
  * @returns {HTMLElement}
417
176
  */
418
177
  export function getParent() {
419
- return parent;
420
- }
421
-
422
- /**
423
- * scale the "displayed" canvas by the given scalar.
424
- * this will modify the size of canvas element directly.
425
- * Only use this if you are not using the automatic scaling feature.
426
- * @function video.scale
427
- * @see video.init
428
- * @param {number} x - x scaling multiplier
429
- * @param {number} y - y scaling multiplier
430
- */
431
- export function scale(x, y) {
432
- var canvas = renderer.getCanvas();
433
- var context = renderer.getContext();
434
- var settings = renderer.settings;
435
- var pixelRatio = device.devicePixelRatio;
436
-
437
- var w = settings.zoomX = canvas.width * x * pixelRatio;
438
- var h = settings.zoomY = canvas.height * y * pixelRatio;
439
-
440
- // update the global scale variable
441
- scaleRatio.set(x * pixelRatio, y * pixelRatio);
442
-
443
- // adjust CSS style based on device pixel ratio
444
- canvas.style.width = (w / pixelRatio) + "px";
445
- canvas.style.height = (h / pixelRatio) + "px";
446
-
447
- // if anti-alias and blend mode were resetted (e.g. Canvas mode)
448
- renderer.setAntiAlias(context, settings.antiAlias);
449
- renderer.setBlendMode(settings.blendMode, context);
450
-
451
- // force repaint
452
- game.repaint();
178
+ return game.getParentElement();
453
179
  }
@@ -1,9 +1,8 @@
1
1
  import * as event from "./../../system/event.js";
2
- import * as device from "./../../system/device.js";
3
2
  import { extractUniforms } from "./utils/uniforms.js";
4
3
  import { extractAttributes } from "./utils/attributes.js";
5
4
  import { compileProgram } from "./utils/program.js";
6
- import { setPrecision } from "./utils/precision.js";
5
+ import { setPrecision, getMaxShaderPrecision } from "./utils/precision.js";
7
6
  import { minify } from "./utils/string.js";
8
7
 
9
8
  /**
@@ -50,13 +49,13 @@ import { minify } from "./utils/string.js";
50
49
  * the vertex shader source code
51
50
  * @type {string}
52
51
  */
53
- this.vertex = setPrecision(minify(vertex), precision || device.getMaxShaderPrecision(this.gl));
52
+ this.vertex = setPrecision(minify(vertex), precision || getMaxShaderPrecision(this.gl));
54
53
 
55
54
  /**
56
55
  * the fragment shader source code
57
56
  * @type {string}
58
57
  */
59
- this.fragment = setPrecision(minify(fragment), precision || device.getMaxShaderPrecision(this.gl));
58
+ this.fragment = setPrecision(minify(fragment), precision || getMaxShaderPrecision(this.gl));
60
59
 
61
60
  /**
62
61
  * the location attributes of the shader
@@ -9,3 +9,21 @@ export function setPrecision(src, precision) {
9
9
  }
10
10
  return src;
11
11
  }
12
+
13
+ /**
14
+ * return the highest precision format supported by this device for GL Shaders
15
+ * @ignore
16
+ * @param {WebGLRenderingContext} gl
17
+ * @returns {boolean} "lowp", "mediump", or "highp"
18
+ */
19
+ export function getMaxShaderPrecision(gl) {
20
+ if (gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.HIGH_FLOAT ).precision > 0 &&
21
+ gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_FLOAT ).precision > 0) {
22
+ return "highp";
23
+ }
24
+ if (gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.MEDIUM_FLOAT ).precision > 0 &&
25
+ gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.MEDIUM_FLOAT ).precision > 0) {
26
+ return "mediump";
27
+ }
28
+ return "lowp";
29
+ }
@@ -136,6 +136,9 @@ import { isPowerOfTwo, nextPowerOfTwo } from "./../../math/math.js";
136
136
  // Create a texture cache
137
137
  this.cache = new TextureCache(this.maxTextures);
138
138
 
139
+ // set the renderer type
140
+ this.type = "WebGL" + this.WebGLVersion;
141
+
139
142
  // to simulate context lost and restore in WebGL:
140
143
  // var ctx = me.video.renderer.context.getExtension('WEBGL_lose_context');
141
144
  // ctx.loseContext()