melonjs 16.1.3 → 17.1.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 (289) hide show
  1. package/README.md +3 -3
  2. package/dist/melonjs.mjs/_virtual/_commonjsHelpers.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/re.js +1 -1
  7. package/dist/melonjs.mjs/application/application.js +1 -1
  8. package/dist/melonjs.mjs/application/header.js +1 -1
  9. package/dist/melonjs.mjs/application/resize.js +1 -1
  10. package/dist/melonjs.mjs/application/settings.js +1 -1
  11. package/dist/melonjs.mjs/audio/audio.js +120 -34
  12. package/dist/melonjs.mjs/camera/camera2d.js +1 -1
  13. package/dist/melonjs.mjs/const.js +1 -1
  14. package/dist/melonjs.mjs/geometries/ellipse.js +1 -1
  15. package/dist/melonjs.mjs/geometries/line.js +1 -1
  16. package/dist/melonjs.mjs/geometries/path2d.js +1 -1
  17. package/dist/melonjs.mjs/geometries/point.js +1 -1
  18. package/dist/melonjs.mjs/geometries/poly.js +1 -1
  19. package/dist/melonjs.mjs/geometries/rectangle.js +1 -1
  20. package/dist/melonjs.mjs/geometries/roundrect.js +1 -1
  21. package/dist/melonjs.mjs/geometries/toarccanvas.js +1 -1
  22. package/dist/melonjs.mjs/index.js +7 -7
  23. package/dist/melonjs.mjs/input/gamepad.js +1 -1
  24. package/dist/melonjs.mjs/input/input.js +1 -1
  25. package/dist/melonjs.mjs/input/keyboard.js +1 -1
  26. package/dist/melonjs.mjs/input/pointer.js +1 -1
  27. package/dist/melonjs.mjs/input/pointerevent.js +1 -1
  28. package/dist/melonjs.mjs/lang/console.js +1 -1
  29. package/dist/melonjs.mjs/lang/deprecated.js +24 -2
  30. package/dist/melonjs.mjs/level/level.js +1 -1
  31. package/dist/melonjs.mjs/level/tiled/TMXGroup.js +1 -1
  32. package/dist/melonjs.mjs/level/tiled/TMXLayer.js +1 -1
  33. package/dist/melonjs.mjs/level/tiled/TMXObject.js +1 -1
  34. package/dist/melonjs.mjs/level/tiled/TMXTile.js +1 -1
  35. package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +1 -1
  36. package/dist/melonjs.mjs/level/tiled/TMXTileset.js +1 -1
  37. package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +1 -1
  38. package/dist/melonjs.mjs/level/tiled/TMXUtils.js +1 -1
  39. package/dist/melonjs.mjs/level/tiled/constants.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/level/tiled/renderer/autodetect.js +1 -1
  46. package/dist/melonjs.mjs/loader/cache.js +1 -1
  47. package/dist/melonjs.mjs/loader/loader.js +127 -5
  48. package/dist/melonjs.mjs/loader/loadingscreen.js +1 -1
  49. package/dist/melonjs.mjs/loader/melonjs_logo.png.js +1 -1
  50. package/dist/melonjs.mjs/loader/parsers/binary.js +4 -3
  51. package/dist/melonjs.mjs/loader/parsers/compressed_textures/compressed_image.js +58 -0
  52. package/dist/melonjs.mjs/loader/parsers/compressed_textures/parseDDS.js +13 -0
  53. package/dist/melonjs.mjs/loader/parsers/compressed_textures/parseKTX.js +13 -0
  54. package/dist/melonjs.mjs/loader/parsers/compressed_textures/parseKTX2.js +13 -0
  55. package/dist/melonjs.mjs/loader/parsers/compressed_textures/parsePKM.js +13 -0
  56. package/dist/melonjs.mjs/loader/parsers/compressed_textures/parsePVR.js +136 -0
  57. package/dist/melonjs.mjs/loader/parsers/fetchdata.js +7 -7
  58. package/dist/melonjs.mjs/loader/parsers/fontface.js +1 -1
  59. package/dist/melonjs.mjs/loader/parsers/image.js +92 -44
  60. package/dist/melonjs.mjs/loader/parsers/json.js +5 -4
  61. package/dist/melonjs.mjs/loader/parsers/script.js +7 -3
  62. package/dist/melonjs.mjs/loader/parsers/tmx.js +5 -4
  63. package/dist/melonjs.mjs/loader/parsers/video.js +7 -7
  64. package/dist/melonjs.mjs/math/color.js +1 -1
  65. package/dist/melonjs.mjs/math/math.js +25 -32
  66. package/dist/melonjs.mjs/math/matrix2.js +1 -1
  67. package/dist/melonjs.mjs/math/matrix3.js +1 -1
  68. package/dist/melonjs.mjs/math/observable_vector2.js +1 -1
  69. package/dist/melonjs.mjs/math/observable_vector3.js +1 -1
  70. package/dist/melonjs.mjs/math/vector2.js +1 -1
  71. package/dist/melonjs.mjs/math/vector3.js +1 -1
  72. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/arraymultimap.js +1 -1
  73. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/multimap.js +1 -1
  74. package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +1 -1
  75. package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +1 -1
  76. package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +1 -1
  77. package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +1 -1
  78. package/dist/melonjs.mjs/node_modules/semver/classes/comparator.js +1 -1
  79. package/dist/melonjs.mjs/node_modules/semver/classes/range.js +1 -1
  80. package/dist/melonjs.mjs/node_modules/semver/classes/semver.js +1 -1
  81. package/dist/melonjs.mjs/node_modules/semver/functions/clean.js +1 -1
  82. package/dist/melonjs.mjs/node_modules/semver/functions/cmp.js +1 -1
  83. package/dist/melonjs.mjs/node_modules/semver/functions/coerce.js +1 -1
  84. package/dist/melonjs.mjs/node_modules/semver/functions/compare-build.js +1 -1
  85. package/dist/melonjs.mjs/node_modules/semver/functions/compare-loose.js +1 -1
  86. package/dist/melonjs.mjs/node_modules/semver/functions/compare.js +1 -1
  87. package/dist/melonjs.mjs/node_modules/semver/functions/diff.js +1 -1
  88. package/dist/melonjs.mjs/node_modules/semver/functions/eq.js +1 -1
  89. package/dist/melonjs.mjs/node_modules/semver/functions/gt.js +1 -1
  90. package/dist/melonjs.mjs/node_modules/semver/functions/gte.js +1 -1
  91. package/dist/melonjs.mjs/node_modules/semver/functions/inc.js +1 -1
  92. package/dist/melonjs.mjs/node_modules/semver/functions/lt.js +1 -1
  93. package/dist/melonjs.mjs/node_modules/semver/functions/lte.js +1 -1
  94. package/dist/melonjs.mjs/node_modules/semver/functions/major.js +1 -1
  95. package/dist/melonjs.mjs/node_modules/semver/functions/minor.js +1 -1
  96. package/dist/melonjs.mjs/node_modules/semver/functions/neq.js +1 -1
  97. package/dist/melonjs.mjs/node_modules/semver/functions/parse.js +1 -1
  98. package/dist/melonjs.mjs/node_modules/semver/functions/patch.js +1 -1
  99. package/dist/melonjs.mjs/node_modules/semver/functions/prerelease.js +1 -1
  100. package/dist/melonjs.mjs/node_modules/semver/functions/rcompare.js +1 -1
  101. package/dist/melonjs.mjs/node_modules/semver/functions/rsort.js +1 -1
  102. package/dist/melonjs.mjs/node_modules/semver/functions/satisfies.js +1 -1
  103. package/dist/melonjs.mjs/node_modules/semver/functions/sort.js +1 -1
  104. package/dist/melonjs.mjs/node_modules/semver/functions/valid.js +1 -1
  105. package/dist/melonjs.mjs/node_modules/semver/index.js +1 -1
  106. package/dist/melonjs.mjs/node_modules/semver/internal/constants.js +1 -1
  107. package/dist/melonjs.mjs/node_modules/semver/internal/debug.js +1 -1
  108. package/dist/melonjs.mjs/node_modules/semver/internal/identifiers.js +1 -1
  109. package/dist/melonjs.mjs/node_modules/semver/internal/parse-options.js +1 -1
  110. package/dist/melonjs.mjs/node_modules/semver/internal/re.js +1 -1
  111. package/dist/melonjs.mjs/node_modules/semver/node_modules/lru-cache/index.js +1 -1
  112. package/dist/melonjs.mjs/node_modules/semver/node_modules/yallist/iterator.js +1 -1
  113. package/dist/melonjs.mjs/node_modules/semver/node_modules/yallist/yallist.js +1 -1
  114. package/dist/melonjs.mjs/node_modules/semver/ranges/gtr.js +1 -1
  115. package/dist/melonjs.mjs/node_modules/semver/ranges/intersects.js +1 -1
  116. package/dist/melonjs.mjs/node_modules/semver/ranges/ltr.js +1 -1
  117. package/dist/melonjs.mjs/node_modules/semver/ranges/max-satisfying.js +1 -1
  118. package/dist/melonjs.mjs/node_modules/semver/ranges/min-satisfying.js +1 -1
  119. package/dist/melonjs.mjs/node_modules/semver/ranges/min-version.js +1 -1
  120. package/dist/melonjs.mjs/node_modules/semver/ranges/outside.js +1 -1
  121. package/dist/melonjs.mjs/node_modules/semver/ranges/simplify.js +1 -1
  122. package/dist/melonjs.mjs/node_modules/semver/ranges/subset.js +1 -1
  123. package/dist/melonjs.mjs/node_modules/semver/ranges/to-comparators.js +1 -1
  124. package/dist/melonjs.mjs/node_modules/semver/ranges/valid.js +1 -1
  125. package/dist/melonjs.mjs/particles/emitter.js +2 -2
  126. package/dist/melonjs.mjs/particles/particle.js +1 -1
  127. package/dist/melonjs.mjs/particles/settings.js +1 -1
  128. package/dist/melonjs.mjs/physics/body.js +1 -1
  129. package/dist/melonjs.mjs/physics/bounds.js +1 -1
  130. package/dist/melonjs.mjs/physics/collision.js +1 -1
  131. package/dist/melonjs.mjs/physics/detector.js +1 -1
  132. package/dist/melonjs.mjs/physics/quadtree.js +1 -1
  133. package/dist/melonjs.mjs/physics/response.js +1 -1
  134. package/dist/melonjs.mjs/physics/sat.js +1 -1
  135. package/dist/melonjs.mjs/physics/world.js +1 -1
  136. package/dist/melonjs.mjs/plugin/plugin.js +4 -4
  137. package/dist/melonjs.mjs/renderable/collectable.js +1 -1
  138. package/dist/melonjs.mjs/renderable/colorlayer.js +1 -1
  139. package/dist/melonjs.mjs/renderable/container.js +1 -1
  140. package/dist/melonjs.mjs/renderable/draggable.js +1 -1
  141. package/dist/melonjs.mjs/renderable/dragndrop.js +1 -1
  142. package/dist/melonjs.mjs/renderable/entity/entity.js +1 -1
  143. package/dist/melonjs.mjs/renderable/imagelayer.js +1 -1
  144. package/dist/melonjs.mjs/renderable/light2d.js +2 -2
  145. package/dist/melonjs.mjs/renderable/nineslicesprite.js +1 -1
  146. package/dist/melonjs.mjs/renderable/renderable.js +19 -7
  147. package/dist/melonjs.mjs/renderable/sprite.js +8 -1
  148. package/dist/melonjs.mjs/renderable/text/bitmaptext.js +1 -1
  149. package/dist/melonjs.mjs/renderable/text/bitmaptextdata.js +1 -1
  150. package/dist/melonjs.mjs/renderable/text/glyph.js +1 -1
  151. package/dist/melonjs.mjs/renderable/text/text.js +2 -2
  152. package/dist/melonjs.mjs/renderable/text/textmetrics.js +1 -1
  153. package/dist/melonjs.mjs/renderable/text/textstyle.js +1 -1
  154. package/dist/melonjs.mjs/renderable/trigger.js +1 -1
  155. package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +1 -1
  156. package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +1 -1
  157. package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +1 -1
  158. package/dist/melonjs.mjs/state/stage.js +2 -2
  159. package/dist/melonjs.mjs/state/state.js +5 -5
  160. package/dist/melonjs.mjs/system/device.js +20 -121
  161. package/dist/melonjs.mjs/system/dom.js +1 -1
  162. package/dist/melonjs.mjs/system/event.js +2 -2
  163. package/dist/melonjs.mjs/system/platform.js +1 -1
  164. package/dist/melonjs.mjs/system/pooling.js +2 -2
  165. package/dist/melonjs.mjs/system/save.js +3 -3
  166. package/dist/melonjs.mjs/system/timer.js +4 -4
  167. package/dist/melonjs.mjs/tweens/easing.js +1 -1
  168. package/dist/melonjs.mjs/tweens/interpolation.js +1 -1
  169. package/dist/melonjs.mjs/tweens/tween.js +1 -1
  170. package/dist/melonjs.mjs/utils/agent.js +1 -1
  171. package/dist/melonjs.mjs/utils/array.js +1 -1
  172. package/dist/melonjs.mjs/utils/file.js +1 -1
  173. package/dist/melonjs.mjs/utils/function.js +1 -1
  174. package/dist/melonjs.mjs/utils/string.js +1 -1
  175. package/dist/melonjs.mjs/utils/utils.js +1 -1
  176. package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +1 -4
  177. package/dist/melonjs.mjs/video/renderer.js +17 -45
  178. package/dist/melonjs.mjs/video/{texture/canvas_texture.js → rendertarget/canvasrendertarget.js} +89 -22
  179. package/dist/melonjs.mjs/video/texture/atlas.js +83 -160
  180. package/dist/melonjs.mjs/video/texture/cache.js +1 -1
  181. package/dist/melonjs.mjs/video/texture/parser/aseprite.js +78 -0
  182. package/dist/melonjs.mjs/video/texture/parser/spritesheet.js +77 -0
  183. package/dist/melonjs.mjs/video/texture/parser/texturepacker.js +64 -0
  184. package/dist/melonjs.mjs/video/utils/autodetect.js +1 -1
  185. package/dist/melonjs.mjs/video/video.js +1 -1
  186. package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +1 -1
  187. package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +1 -1
  188. package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +1 -1
  189. package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +1 -1
  190. package/dist/melonjs.mjs/video/webgl/glshader.js +1 -1
  191. package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +1 -1
  192. package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +1 -1
  193. package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +1 -1
  194. package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +1 -1
  195. package/dist/melonjs.mjs/video/webgl/utils/attributes.js +1 -1
  196. package/dist/melonjs.mjs/video/webgl/utils/precision.js +1 -1
  197. package/dist/melonjs.mjs/video/webgl/utils/program.js +1 -1
  198. package/dist/melonjs.mjs/video/webgl/utils/string.js +1 -1
  199. package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +1 -1
  200. package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +53 -62
  201. package/dist/melonjs.module.js +1687 -1244
  202. package/dist/types/audio/audio.d.ts +84 -29
  203. package/dist/types/index.d.ts +2 -2
  204. package/dist/types/lang/deprecated.d.ts +23 -0
  205. package/dist/types/level/tiled/TMXLayer.d.ts +1 -2
  206. package/dist/types/loader/loader.d.ts +85 -1
  207. package/dist/types/loader/parsers/binary.d.ts +2 -1
  208. package/dist/types/loader/parsers/compressed_textures/compressed_image.d.ts +1 -0
  209. package/dist/types/loader/parsers/compressed_textures/parseDDS.d.ts +1 -0
  210. package/dist/types/loader/parsers/compressed_textures/parseKTX.d.ts +1 -0
  211. package/dist/types/loader/parsers/compressed_textures/parseKTX2.d.ts +1 -0
  212. package/dist/types/loader/parsers/compressed_textures/parsePKM.d.ts +1 -0
  213. package/dist/types/loader/parsers/compressed_textures/parsePVR.d.ts +1 -0
  214. package/dist/types/loader/parsers/fetchdata.d.ts +3 -1
  215. package/dist/types/loader/parsers/image.d.ts +2 -1
  216. package/dist/types/loader/parsers/json.d.ts +3 -2
  217. package/dist/types/loader/parsers/script.d.ts +3 -2
  218. package/dist/types/loader/parsers/tmx.d.ts +3 -2
  219. package/dist/types/loader/parsers/video.d.ts +3 -2
  220. package/dist/types/math/math.d.ts +8 -30
  221. package/dist/types/particles/emitter.d.ts +30 -9
  222. package/dist/types/plugin/plugin.d.ts +1 -1
  223. package/dist/types/polyfill/console.d.ts +1 -0
  224. package/dist/types/polyfill/roundrect.d.ts +1 -0
  225. package/dist/types/renderable/collectable.d.ts +0 -2
  226. package/dist/types/renderable/container.d.ts +7 -1
  227. package/dist/types/renderable/entity/entity.d.ts +6 -0
  228. package/dist/types/renderable/renderable.d.ts +9 -0
  229. package/dist/types/renderable/text/bitmaptext.d.ts +6 -0
  230. package/dist/types/renderable/trigger.d.ts +0 -2
  231. package/dist/types/state/stage.d.ts +1 -1
  232. package/dist/types/state/state.d.ts +1 -1
  233. package/dist/types/system/device.d.ts +1 -107
  234. package/dist/types/system/event.d.ts +5 -5
  235. package/dist/types/system/pooling.d.ts +2 -2
  236. package/dist/types/video/canvas/canvas_renderer.d.ts +0 -1
  237. package/dist/types/video/renderer.d.ts +7 -0
  238. package/dist/types/video/{texture/canvas_texture.d.ts → rendertarget/canvasrendertarget.d.ts} +13 -12
  239. package/dist/types/video/texture/atlas.d.ts +9 -13
  240. package/dist/types/video/texture/parser/aseprite.d.ts +8 -0
  241. package/dist/types/video/texture/parser/spritesheet.d.ts +8 -0
  242. package/dist/types/video/texture/parser/texturepacker.d.ts +8 -0
  243. package/dist/types/video/utils/autodetect.d.ts +1 -3
  244. package/dist/types/video/video.d.ts +0 -1
  245. package/dist/types/video/webgl/webgl_renderer.d.ts +18 -16
  246. package/package.json +17 -16
  247. package/src/audio/audio.js +118 -32
  248. package/src/index.js +3 -3
  249. package/src/lang/deprecated.js +21 -0
  250. package/src/loader/loader.js +119 -5
  251. package/src/loader/parsers/binary.js +3 -2
  252. package/src/loader/parsers/compressed_textures/compressed_image.js +49 -0
  253. package/src/loader/parsers/compressed_textures/parseDDS.js +5 -0
  254. package/src/loader/parsers/compressed_textures/parseKTX.js +5 -0
  255. package/src/loader/parsers/compressed_textures/parseKTX2.js +5 -0
  256. package/src/loader/parsers/compressed_textures/parsePKM.js +5 -0
  257. package/src/loader/parsers/compressed_textures/parsePVR.js +127 -0
  258. package/src/loader/parsers/fetchdata.js +6 -6
  259. package/src/loader/parsers/image.js +91 -43
  260. package/src/loader/parsers/json.js +4 -3
  261. package/src/loader/parsers/script.js +4 -5
  262. package/src/loader/parsers/tmx.js +4 -3
  263. package/src/loader/parsers/video.js +6 -6
  264. package/src/math/math.js +23 -30
  265. package/src/particles/emitter.js +1 -1
  266. package/src/plugin/plugin.js +1 -1
  267. package/src/renderable/container.js +1 -1
  268. package/src/renderable/light2d.js +1 -1
  269. package/src/renderable/renderable.js +19 -6
  270. package/src/renderable/sprite.js +7 -0
  271. package/src/renderable/text/text.js +1 -1
  272. package/src/state/stage.js +1 -1
  273. package/src/state/state.js +3 -3
  274. package/src/system/device.js +19 -120
  275. package/src/system/event.js +1 -1
  276. package/src/system/pooling.js +1 -1
  277. package/src/system/save.js +1 -1
  278. package/src/system/timer.js +2 -2
  279. package/src/video/canvas/canvas_renderer.js +0 -3
  280. package/src/video/renderer.js +15 -43
  281. package/src/video/{texture/canvas_texture.js → rendertarget/canvasrendertarget.js} +90 -21
  282. package/src/video/texture/atlas.js +81 -158
  283. package/src/video/texture/parser/aseprite.js +69 -0
  284. package/src/video/texture/parser/spritesheet.js +68 -0
  285. package/src/video/texture/parser/texturepacker.js +55 -0
  286. package/src/video/webgl/webgl_renderer.js +52 -61
  287. package/dist/melonjs.mjs/loader/settings.js +0 -92
  288. package/dist/types/loader/settings.d.ts +0 -57
  289. package/src/loader/settings.js +0 -86
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v16.1.3
2
+ * melonJS Game Engine - v17.1.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 - v16.1.3
2
+ * melonJS Game Engine - v17.1.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
@@ -11,6 +11,7 @@ import { Draggable } from '../renderable/draggable.js';
11
11
  import { DropTarget } from '../renderable/dragndrop.js';
12
12
  import UISpriteElement from '../renderable/ui/uispriteelement.js';
13
13
  import { warning } from './console.js';
14
+ import CanvasRenderTarget from '../video/rendertarget/canvasrendertarget.js';
14
15
 
15
16
  /*
16
17
  * placeholder for all deprecated classes and corresponding alias for backward compatibility
@@ -148,4 +149,25 @@ Renderer.prototype.getHeight = function() {
148
149
  return this.height;
149
150
  };
150
151
 
151
- export { DraggableEntity, DroptargetEntity, GUI_Object };
152
+ /**
153
+ * @classdesc
154
+ * @deprecated since 17.1.0
155
+ * @see CanvasRenderTarget
156
+ */
157
+ class CanvasTexture extends CanvasRenderTarget {
158
+ /**
159
+ * @param {number} width - the desired width of the canvas
160
+ * @param {number} height - the desired height of the canvas
161
+ * @param {object} attributes - The attributes to create both the canvas and context
162
+ * @param {boolean} [attributes.context="2d"] - the context type to be created ("2d", "webgl", "webgl2")
163
+ * @param {boolean} [attributes.offscreenCanvas=false] - will create an offscreenCanvas if true instead of a standard canvas
164
+ * @param {boolean} [attributes.willReadFrequently=false] - Indicates whether or not a lot of read-back operations are planned
165
+ * @param {boolean} [attributes.antiAlias=false] - Whether to enable anti-aliasing, use false (default) for a pixelated effect.
166
+ */
167
+ constructor(width, height, attributes) {
168
+ warning("CanvasTexture", "CanvasRenderTarget", "17.1.0");
169
+ super(width, height, attributes);
170
+ }
171
+ }
172
+
173
+ export { CanvasTexture, DraggableEntity, DroptargetEntity, GUI_Object };
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v16.1.3
2
+ * melonJS Game Engine - v17.1.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 - v16.1.3
2
+ * melonJS Game Engine - v17.1.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 - v16.1.3
2
+ * melonJS Game Engine - v17.1.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 - v16.1.3
2
+ * melonJS Game Engine - v17.1.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 - v16.1.3
2
+ * melonJS Game Engine - v17.1.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 - v16.1.3
2
+ * melonJS Game Engine - v17.1.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 - v16.1.3
2
+ * melonJS Game Engine - v17.1.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 - v16.1.3
2
+ * melonJS Game Engine - v17.1.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 - v16.1.3
2
+ * melonJS Game Engine - v17.1.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 - v16.1.3
2
+ * melonJS Game Engine - v17.1.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 - v16.1.3
2
+ * melonJS Game Engine - v17.1.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 - v16.1.3
2
+ * melonJS Game Engine - v17.1.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 - v16.1.3
2
+ * melonJS Game Engine - v17.1.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 - v16.1.3
2
+ * melonJS Game Engine - v17.1.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 - v16.1.3
2
+ * melonJS Game Engine - v17.1.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 - v16.1.3
2
+ * melonJS Game Engine - v17.1.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 - v16.1.3
2
+ * melonJS Game Engine - v17.1.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 - v16.1.3
2
+ * melonJS Game Engine - v17.1.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,10 +17,128 @@ import { preloadJSON } from './parsers/json.js';
17
17
  import { preloadBinary } from './parsers/binary.js';
18
18
  import { preloadJavascript } from './parsers/script.js';
19
19
  import { preloadVideo } from './parsers/video.js';
20
- import { baseURL } from './settings.js';
21
- export { crossOrigin, nocache, setBaseURL, setNocache, withCredentials } from './settings.js';
22
20
  import { warning } from '../lang/console.js';
23
21
 
22
+ /**
23
+ * a small class to manage loading of stuff and manage resources
24
+ * @namespace loader
25
+ */
26
+
27
+
28
+ // to enable/disable caching
29
+ let nocache = "";
30
+
31
+ // baseURL
32
+ let baseURL = {};
33
+
34
+ /**
35
+ * crossOrigin attribute to configure the CORS requests for Image and Video data element.
36
+ * By default (that is, when the attribute is not specified), CORS is not used at all.
37
+ * The "anonymous" keyword means that there will be no exchange of user credentials via cookies,
38
+ * client-side SSL certificates or HTTP authentication as described in the Terminology section of the CORS specification.<br>
39
+ * @type {string}
40
+ * @name crossOrigin
41
+ * @default undefined
42
+ * @see loader.setOptions
43
+ * @memberof loader
44
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes
45
+ * @example
46
+ * // allow for cross-origin texture loading
47
+ * me.loader.crossOrigin = "anonymous";
48
+ *
49
+ * // set all ressources to be loaded
50
+ * me.loader.preload(game.resources, () => this.loaded());
51
+ */
52
+ let crossOrigin;
53
+
54
+ /**
55
+ * indicates whether or not cross-site Access-Control requests should be made using credentials such as cookies,
56
+ * authorization headers or TLS client certificates. Setting withCredentials has no effect on same-site requests.
57
+ * @public
58
+ * @type {boolean}
59
+ * @name withCredentials
60
+ * @see loader.setOptions
61
+ * @default false
62
+ * @memberof loader
63
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials
64
+ * @example
65
+ * // enable withCredentials
66
+ * me.loader.withCredentials = true;
67
+ *
68
+ * // set all ressources to be loaded
69
+ * me.loader.preload(game.resources, () => this.loaded());
70
+ */
71
+ let withCredentials = false;
72
+
73
+ /**
74
+ * enable the nocache mechanism
75
+ * @ignore
76
+ */
77
+ function setNocache(enable = false) {
78
+ nocache = enable ? "?" + ~~(Math.random() * 10000000) : "";
79
+ }
80
+
81
+ /**
82
+ * Sets the options for the loader.
83
+ * @memberof loader
84
+ * @param {Object} options - The options to set.
85
+ * @param {string} [options.crossOrigin] - The crossOrigin attribute to configure the CORS requests for Image and Video data element.
86
+ * @param {boolean} [options.nocache] - Enable or disable the nocache mechanism.
87
+ * @param {boolean} [options.withCredentials] - Indicates whether or not cross-site Access-Control requests should be made using credentials.
88
+ * @example
89
+ * // Set the crossOrigin attribute to "anonymous"
90
+ * me.loader.setOptions({ crossOrigin: "anonymous" });
91
+ *
92
+ * // Enable the nocache mechanism
93
+ * me.loader.setOptions({ nocache: true });
94
+ *
95
+ * // Enable withCredentials
96
+ * me.loader.setOptions({ withCredentials: true });
97
+ */
98
+ function setOptions(options) {
99
+ if (options.crossOrigin !== undefined) {
100
+ crossOrigin = options.crossOrigin;
101
+ }
102
+ if (options.nocache !== undefined) {
103
+ setNocache(options.nocache);
104
+ }
105
+ if (options.withCredentials !== undefined) {
106
+ withCredentials = options.withCredentials;
107
+ }
108
+ }
109
+
110
+ /**
111
+ * change the default baseURL for the given asset type.<br>
112
+ * (this will prepend the asset URL and must finish with a '/')
113
+ * @name setBaseURL
114
+ * @memberof loader
115
+ * @public
116
+ * @param {string} type - "*", "audio", "video", "binary", "image", "json", "js", "tmx", "tsx"
117
+ * @param {string} [url="./"] - default base URL
118
+ * @example
119
+ * // change the base URL relative address for audio assets
120
+ * me.loader.setBaseURL("audio", "data/audio/");
121
+ * // change the base URL absolute address for all object types
122
+ * me.loader.setBaseURL("*", "http://myurl.com/")
123
+ */
124
+ function setBaseURL(type, url) {
125
+ if (type !== "*") {
126
+ baseURL[type] = url;
127
+ } else {
128
+ // "wildcards"
129
+ baseURL["audio"] = url;
130
+ baseURL["video"] = url;
131
+ baseURL["binary"] = url;
132
+ baseURL["image"] = url;
133
+ baseURL["json"] = url;
134
+ baseURL["js"] = url;
135
+ baseURL["tmx"] = url;
136
+ baseURL["tsx"] = url;
137
+ // XXX ?
138
+ //baseURL["fontface"] = url;
139
+ }
140
+ }
141
+
24
142
  /**
25
143
  * onload callback
26
144
  * @default undefined
@@ -368,7 +486,11 @@ function load(asset, onload, onerror) {
368
486
  }
369
487
 
370
488
  // parser returns the amount of asset to be loaded (usually 1 unless an asset is splitted into several ones)
371
- return parser.call(this, asset, onload, onerror);
489
+ return parser.call(this, asset, onload, onerror, {
490
+ nocache: nocache,
491
+ crossOrigin: crossOrigin,
492
+ withCredentials: withCredentials
493
+ });
372
494
  }
373
495
 
374
496
  /**
@@ -574,4 +696,4 @@ function getVideo(elt) {
574
696
  return null;
575
697
  }
576
698
 
577
- export { baseURL, getBinary, getImage, getJSON, getTMX, getVideo, load, onError, onProgress, onload, preload, reload, setParser, unload, unloadAll };
699
+ export { baseURL, crossOrigin, getBinary, getImage, getJSON, getTMX, getVideo, load, nocache, onError, onProgress, onload, preload, reload, setBaseURL, setNocache, setOptions, setParser, unload, unloadAll, withCredentials };
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * melonJS Game Engine - v16.1.3
2
+ * melonJS Game Engine - v17.1.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 - v16.1.3
2
+ * melonJS Game Engine - v17.1.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 - v16.1.3
2
+ * melonJS Game Engine - v17.1.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
@@ -13,12 +13,13 @@ import { fetchData } from './fetchdata.js';
13
13
  * @param {loader.Asset} data - asset data
14
14
  * @param {Function} [onload] - function to be called when the asset is loaded
15
15
  * @param {Function} [onerror] - function to be called in case of error
16
+ * @param {Object} [settings] - Additional settings to be passed when loading the asset
16
17
  * @returns {number} the amount of corresponding resource parsed/preloaded
17
18
  * @ignore
18
19
  */
19
- function preloadBinary(data, onload, onerror) {
20
+ function preloadBinary(data, onload, onerror, settings) {
20
21
 
21
- fetchData(data.src, "arrayBuffer")
22
+ fetchData(data.src, "arrayBuffer", settings)
22
23
  .then(response => {
23
24
  // this method is native and might be slightly more efficient
24
25
  const decoder = new TextDecoder(); // the default for this is 'utf-8'
@@ -0,0 +1,58 @@
1
+ /*!
2
+ * melonJS Game Engine - v17.1.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 - 2024 Olivier Biot (AltByte Pte Ltd)
7
+ */
8
+ import { parseDDS } from './parseDDS.js';
9
+ import { parseKTX } from './parseKTX.js';
10
+ import { parseKTX2 } from './parseKTX2.js';
11
+ import { parsePVR } from './parsePVR.js';
12
+ import { parsePKM } from './parsePKM.js';
13
+ import { once, VIDEO_INIT } from '../../../system/event.js';
14
+
15
+ let _renderer;
16
+
17
+ // gracefully capture a reference to the active renderer without adding more cyclic redundancy
18
+ once(VIDEO_INIT, (renderer) => {
19
+ _renderer = renderer;
20
+ });
21
+
22
+
23
+ function parseCompressedImage(arrayBuffer, imgExt) {
24
+ let texture;
25
+
26
+ // check if the current renderer is WebGL
27
+ if (_renderer.type.includes("WebGL")) {
28
+ switch (imgExt) {
29
+ // Compressed texture
30
+ case "dds":
31
+ texture = parseDDS();
32
+ break;
33
+ case "pvr":
34
+ texture = parsePVR();
35
+ break;
36
+ case "pkm":
37
+ texture = parsePKM();
38
+ break;
39
+ case "ktx":
40
+ texture = parseKTX();
41
+ break;
42
+ case "ktx2":
43
+ texture = parseKTX2();
44
+ break;
45
+ }
46
+ }
47
+
48
+ if (typeof texture !== "undefined") {
49
+ if (_renderer.hasSupportedCompressedFormats(texture.format)) {
50
+ console.log("Compressed texture format supported: " + texture.format);
51
+ return texture;
52
+ }
53
+ }
54
+
55
+ throw ("unsupported texture format:" + imgExt + texture ? " (" + texture.format + ")" : "");
56
+ }
57
+
58
+ export { parseCompressedImage };
@@ -0,0 +1,13 @@
1
+ /*!
2
+ * melonJS Game Engine - v17.1.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 - 2024 Olivier Biot (AltByte Pte Ltd)
7
+ */
8
+ // parse and return the compressed texture
9
+ function parseDDS(/*data, formats*/) {
10
+ throw new Error("unsupported format");
11
+ }
12
+
13
+ export { parseDDS };
@@ -0,0 +1,13 @@
1
+ /*!
2
+ * melonJS Game Engine - v17.1.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 - 2024 Olivier Biot (AltByte Pte Ltd)
7
+ */
8
+ // parse and return the compressed texture
9
+ function parseKTX(/*data, formats*/) {
10
+ throw new Error("unsupported format");
11
+ }
12
+
13
+ export { parseKTX };
@@ -0,0 +1,13 @@
1
+ /*!
2
+ * melonJS Game Engine - v17.1.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 - 2024 Olivier Biot (AltByte Pte Ltd)
7
+ */
8
+ // parse and return the compressed texture
9
+ function parseKTX2(/*data, formats*/) {
10
+ throw new Error("unsupported format");
11
+ }
12
+
13
+ export { parseKTX2 };
@@ -0,0 +1,13 @@
1
+ /*!
2
+ * melonJS Game Engine - v17.1.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 - 2024 Olivier Biot (AltByte Pte Ltd)
7
+ */
8
+ // parse and return the compressed texture
9
+ function parsePKM(/*data, formats*/) {
10
+ throw new Error("unsupported format");
11
+ }
12
+
13
+ export { parsePKM };
@@ -0,0 +1,136 @@
1
+ /*!
2
+ * melonJS Game Engine - v17.1.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 - 2024 Olivier Biot (AltByte Pte Ltd)
7
+ */
8
+ /*
9
+ const COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 0x8C00;
10
+ const COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 0x8C01;
11
+ const COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 0x8C02;
12
+ const COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 0x8C03;
13
+
14
+ const COMPRESSED_RGB_ETC1_WEBGL = 0x8D64;
15
+
16
+ const PVR_HEADER_LENGTH = 13; // The header length in 32 bit ints.
17
+ //const PVR_MAGIC = 0x03525650; //0x50565203;
18
+
19
+ // Offsets into the header array.
20
+ //const PVR_HEADER_MAGIC = 0;
21
+ const PVR_HEADER_FORMAT = 2;
22
+ const PVR_HEADER_HEIGHT = 6;
23
+ const PVR_HEADER_WIDTH = 7;
24
+ const PVR_HEADER_MIPMAPCOUNT = 11;
25
+ const PVR_HEADER_METADATA = 12;
26
+
27
+ const PVR_FORMAT_2BPP_RGB = 0;
28
+ const PVR_FORMAT_2BPP_RGBA = 1;
29
+ const PVR_FORMAT_4BPP_RGB = 2;
30
+ const PVR_FORMAT_4BPP_RGBA = 3;
31
+ //const PVR_COLOR_SPACE = 4;
32
+ const PVR_FORMAT_ETC1 = 6;
33
+ const PVR_FORMAT_DXT1 = 7;
34
+ const PVR_FORMAT_DXT3 = 9;
35
+ const PVR_FORMAT_DXT5 = 5;
36
+
37
+ const COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0;
38
+ //const COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1;
39
+ const COMPRESSED_RGBA_S3TC_DXT3_EXT = 0x83F2;
40
+ const COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3;
41
+
42
+ const PVR_TO_WEBGL_FORMAT = {
43
+ [PVR_FORMAT_2BPP_RGB] : COMPRESSED_RGB_PVRTC_2BPPV1_IMG,
44
+ [PVR_FORMAT_2BPP_RGBA] : COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,
45
+ [PVR_FORMAT_4BPP_RGB] : COMPRESSED_RGB_PVRTC_4BPPV1_IMG,
46
+ [PVR_FORMAT_4BPP_RGBA] : COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,
47
+ [PVR_FORMAT_ETC1] : COMPRESSED_RGB_ETC1_WEBGL,
48
+ [PVR_FORMAT_DXT1] : COMPRESSED_RGB_S3TC_DXT1_EXT,
49
+ [PVR_FORMAT_DXT3] : COMPRESSED_RGBA_S3TC_DXT3_EXT,
50
+ [PVR_FORMAT_DXT5] : COMPRESSED_RGBA_S3TC_DXT5_EXT
51
+ };
52
+
53
+ function levelBufferSize(format, width, height) {
54
+ switch (format) {
55
+ case COMPRESSED_RGB_S3TC_DXT1_EXT:
56
+ case COMPRESSED_RGB_ETC1_WEBGL:
57
+ return ((width + 3) >> 2) * ((height + 3) >> 2) * 8;
58
+
59
+ case COMPRESSED_RGBA_S3TC_DXT3_EXT:
60
+ case COMPRESSED_RGBA_S3TC_DXT5_EXT:
61
+ return ((width + 3) >> 2) * ((height + 3) >> 2) * 16;
62
+
63
+ case COMPRESSED_RGB_PVRTC_4BPPV1_IMG:
64
+ case COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:
65
+ return Math.floor((Math.max(width, 8) * Math.max(height, 8) * 4 + 7) / 8);
66
+
67
+ case COMPRESSED_RGB_PVRTC_2BPPV1_IMG:
68
+ case COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:
69
+ return Math.floor((Math.max(width, 16) * Math.max(height, 8) * 2 + 7) / 8);
70
+
71
+ default:
72
+ return 0;
73
+ }
74
+ }
75
+ */
76
+
77
+ // parse and return the compressed texture
78
+ function parsePVR() {
79
+
80
+ throw new Error("unsupported format");
81
+
82
+ /*
83
+
84
+ // Create a new DataView from the data
85
+ let header = new Uint32Array(data, 0, PVR_HEADER_LENGTH);
86
+
87
+ //console.log(header);
88
+
89
+ // VERSION
90
+ //const version = header[PVR_HEADER_FORMAT];
91
+ //const versionMatch = version === PVR_MAGIC;
92
+
93
+ // PIXEL_FORMAT_INDEX
94
+ const pvrFormat = PVR_TO_WEBGL_FORMAT[header[PVR_HEADER_FORMAT]] || -1;
95
+ const width = header[PVR_HEADER_WIDTH];
96
+ const height = header[PVR_HEADER_HEIGHT];
97
+ const dataOffset = header[PVR_HEADER_METADATA] + 52;
98
+ //const colorSpace = header[PVR_COLOR_SPACE];
99
+ const mipmapCount = header[PVR_HEADER_MIPMAPCOUNT];
100
+
101
+ var image = new Uint8Array(data, dataOffset);
102
+ var mipmaps = new Array(mipmapCount);
103
+
104
+ var offset = 0;
105
+ var levelWidth = width;
106
+ var levelHeight = height;
107
+
108
+ for (var i = 0; i < mipmapCount; i++)
109
+ {
110
+ var levelSize = levelBufferSize(pvrFormat, levelWidth, levelHeight);
111
+
112
+ mipmaps[i] = {
113
+ data: new Uint8Array(image.buffer, image.byteOffset + offset, levelSize),
114
+ width: levelWidth,
115
+ height: levelHeight
116
+ };
117
+
118
+ levelWidth = Math.max(1, levelWidth >> 1);
119
+ levelHeight = Math.max(1, levelHeight >> 1);
120
+
121
+ offset += levelSize;
122
+ }
123
+
124
+ return {
125
+ mipmaps: mipmaps,
126
+ width: width,
127
+ height: height,
128
+ format: pvrFormat,
129
+ compressed: true,
130
+ generateMipmap: false
131
+ };
132
+
133
+ */
134
+ }
135
+
136
+ export { parsePVR };