melonjs 17.1.0 → 17.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 (262) hide show
  1. package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +1 -1
  2. package/dist/melonjs.mjs/_virtual/earcut.js +1 -1
  3. package/dist/melonjs.mjs/_virtual/howler.js +1 -1
  4. package/dist/melonjs.mjs/_virtual/index.js +1 -1
  5. package/dist/melonjs.mjs/_virtual/re.js +1 -1
  6. package/dist/melonjs.mjs/application/application.js +7 -7
  7. package/dist/melonjs.mjs/application/header.js +2 -2
  8. package/dist/melonjs.mjs/application/resize.js +1 -1
  9. package/dist/melonjs.mjs/application/settings.js +29 -32
  10. package/dist/melonjs.mjs/audio/audio.js +13 -9
  11. package/dist/melonjs.mjs/camera/camera2d.js +1 -1
  12. package/dist/melonjs.mjs/const.js +1 -1
  13. package/dist/melonjs.mjs/geometries/ellipse.js +1 -1
  14. package/dist/melonjs.mjs/geometries/line.js +1 -1
  15. package/dist/melonjs.mjs/geometries/path2d.js +17 -17
  16. package/dist/melonjs.mjs/geometries/point.js +1 -1
  17. package/dist/melonjs.mjs/geometries/poly.js +1 -1
  18. package/dist/melonjs.mjs/geometries/rectangle.js +1 -1
  19. package/dist/melonjs.mjs/geometries/roundrect.js +1 -1
  20. package/dist/melonjs.mjs/geometries/toarccanvas.js +1 -1
  21. package/dist/melonjs.mjs/index.js +4 -4
  22. package/dist/melonjs.mjs/input/gamepad.js +1 -1
  23. package/dist/melonjs.mjs/input/input.js +1 -1
  24. package/dist/melonjs.mjs/input/keyboard.js +1 -1
  25. package/dist/melonjs.mjs/input/pointer.js +1 -1
  26. package/dist/melonjs.mjs/input/pointerevent.js +1 -1
  27. package/dist/melonjs.mjs/lang/console.js +1 -1
  28. package/dist/melonjs.mjs/lang/deprecated.js +29 -2
  29. package/dist/melonjs.mjs/level/level.js +1 -1
  30. package/dist/melonjs.mjs/level/tiled/TMXGroup.js +1 -1
  31. package/dist/melonjs.mjs/level/tiled/TMXLayer.js +1 -1
  32. package/dist/melonjs.mjs/level/tiled/TMXObject.js +2 -2
  33. package/dist/melonjs.mjs/level/tiled/TMXTile.js +1 -1
  34. package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +2 -2
  35. package/dist/melonjs.mjs/level/tiled/TMXTileset.js +1 -1
  36. package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +1 -1
  37. package/dist/melonjs.mjs/level/tiled/TMXUtils.js +3 -3
  38. package/dist/melonjs.mjs/level/tiled/constants.js +1 -1
  39. package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +5 -5
  40. package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +1 -1
  41. package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +3 -3
  42. package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +1 -1
  43. package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +1 -1
  44. package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +1 -1
  45. package/dist/melonjs.mjs/loader/cache.js +5 -2
  46. package/dist/melonjs.mjs/loader/loader.js +34 -5
  47. package/dist/melonjs.mjs/loader/loadingscreen.js +2 -4
  48. package/dist/melonjs.mjs/loader/melonjs_logo.png.js +1 -1
  49. package/dist/melonjs.mjs/loader/parsers/binary.js +1 -1
  50. package/dist/melonjs.mjs/loader/parsers/compressed_textures/compressed_image.js +1 -1
  51. package/dist/melonjs.mjs/loader/parsers/compressed_textures/parseDDS.js +1 -1
  52. package/dist/melonjs.mjs/loader/parsers/compressed_textures/parseKTX.js +1 -1
  53. package/dist/melonjs.mjs/loader/parsers/compressed_textures/parseKTX2.js +1 -1
  54. package/dist/melonjs.mjs/loader/parsers/compressed_textures/parsePKM.js +1 -1
  55. package/dist/melonjs.mjs/loader/parsers/compressed_textures/parsePVR.js +1 -1
  56. package/dist/melonjs.mjs/loader/parsers/fetchdata.js +1 -1
  57. package/dist/melonjs.mjs/loader/parsers/fontface.js +25 -15
  58. package/dist/melonjs.mjs/loader/parsers/image.js +3 -3
  59. package/dist/melonjs.mjs/loader/parsers/json.js +1 -1
  60. package/dist/melonjs.mjs/loader/parsers/script.js +1 -1
  61. package/dist/melonjs.mjs/loader/parsers/tmx.js +2 -9
  62. package/dist/melonjs.mjs/loader/parsers/video.js +1 -1
  63. package/dist/melonjs.mjs/math/color.js +6 -6
  64. package/dist/melonjs.mjs/math/math.js +1 -1
  65. package/dist/melonjs.mjs/math/matrix2.js +7 -7
  66. package/dist/melonjs.mjs/math/matrix3.js +2 -2
  67. package/dist/melonjs.mjs/math/observable_vector2.js +3 -3
  68. package/dist/melonjs.mjs/math/observable_vector3.js +4 -4
  69. package/dist/melonjs.mjs/math/vector2.js +3 -3
  70. package/dist/melonjs.mjs/math/vector3.js +4 -4
  71. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/arraymultimap.js +1 -1
  72. package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/multimap.js +1 -1
  73. package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +1 -1
  74. package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +1 -1
  75. package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +1 -1
  76. package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +1 -1
  77. package/dist/melonjs.mjs/node_modules/semver/classes/comparator.js +1 -1
  78. package/dist/melonjs.mjs/node_modules/semver/classes/range.js +6 -5
  79. package/dist/melonjs.mjs/node_modules/semver/classes/semver.js +2 -2
  80. package/dist/melonjs.mjs/node_modules/semver/functions/clean.js +1 -1
  81. package/dist/melonjs.mjs/node_modules/semver/functions/cmp.js +1 -1
  82. package/dist/melonjs.mjs/node_modules/semver/functions/coerce.js +1 -1
  83. package/dist/melonjs.mjs/node_modules/semver/functions/compare-build.js +1 -1
  84. package/dist/melonjs.mjs/node_modules/semver/functions/compare-loose.js +1 -1
  85. package/dist/melonjs.mjs/node_modules/semver/functions/compare.js +1 -1
  86. package/dist/melonjs.mjs/node_modules/semver/functions/diff.js +1 -1
  87. package/dist/melonjs.mjs/node_modules/semver/functions/eq.js +1 -1
  88. package/dist/melonjs.mjs/node_modules/semver/functions/gt.js +1 -1
  89. package/dist/melonjs.mjs/node_modules/semver/functions/gte.js +1 -1
  90. package/dist/melonjs.mjs/node_modules/semver/functions/inc.js +1 -1
  91. package/dist/melonjs.mjs/node_modules/semver/functions/lt.js +1 -1
  92. package/dist/melonjs.mjs/node_modules/semver/functions/lte.js +1 -1
  93. package/dist/melonjs.mjs/node_modules/semver/functions/major.js +1 -1
  94. package/dist/melonjs.mjs/node_modules/semver/functions/minor.js +1 -1
  95. package/dist/melonjs.mjs/node_modules/semver/functions/neq.js +1 -1
  96. package/dist/melonjs.mjs/node_modules/semver/functions/parse.js +1 -1
  97. package/dist/melonjs.mjs/node_modules/semver/functions/patch.js +1 -1
  98. package/dist/melonjs.mjs/node_modules/semver/functions/prerelease.js +1 -1
  99. package/dist/melonjs.mjs/node_modules/semver/functions/rcompare.js +1 -1
  100. package/dist/melonjs.mjs/node_modules/semver/functions/rsort.js +1 -1
  101. package/dist/melonjs.mjs/node_modules/semver/functions/satisfies.js +1 -1
  102. package/dist/melonjs.mjs/node_modules/semver/functions/sort.js +1 -1
  103. package/dist/melonjs.mjs/node_modules/semver/functions/valid.js +1 -1
  104. package/dist/melonjs.mjs/node_modules/semver/index.js +1 -1
  105. package/dist/melonjs.mjs/node_modules/semver/internal/constants.js +1 -1
  106. package/dist/melonjs.mjs/node_modules/semver/internal/debug.js +1 -1
  107. package/dist/melonjs.mjs/node_modules/semver/internal/identifiers.js +1 -1
  108. package/dist/melonjs.mjs/node_modules/semver/internal/lrucache.js +49 -0
  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/ranges/gtr.js +1 -1
  112. package/dist/melonjs.mjs/node_modules/semver/ranges/intersects.js +1 -1
  113. package/dist/melonjs.mjs/node_modules/semver/ranges/ltr.js +1 -1
  114. package/dist/melonjs.mjs/node_modules/semver/ranges/max-satisfying.js +1 -1
  115. package/dist/melonjs.mjs/node_modules/semver/ranges/min-satisfying.js +1 -1
  116. package/dist/melonjs.mjs/node_modules/semver/ranges/min-version.js +1 -1
  117. package/dist/melonjs.mjs/node_modules/semver/ranges/outside.js +1 -1
  118. package/dist/melonjs.mjs/node_modules/semver/ranges/simplify.js +1 -1
  119. package/dist/melonjs.mjs/node_modules/semver/ranges/subset.js +1 -1
  120. package/dist/melonjs.mjs/node_modules/semver/ranges/to-comparators.js +1 -1
  121. package/dist/melonjs.mjs/node_modules/semver/ranges/valid.js +1 -1
  122. package/dist/melonjs.mjs/particles/emitter.js +1 -1
  123. package/dist/melonjs.mjs/particles/particle.js +1 -1
  124. package/dist/melonjs.mjs/particles/settings.js +1 -1
  125. package/dist/melonjs.mjs/physics/body.js +4 -4
  126. package/dist/melonjs.mjs/physics/bounds.js +1 -1
  127. package/dist/melonjs.mjs/physics/collision.js +1 -1
  128. package/dist/melonjs.mjs/physics/detector.js +2 -2
  129. package/dist/melonjs.mjs/physics/quadtree.js +1 -1
  130. package/dist/melonjs.mjs/physics/response.js +1 -1
  131. package/dist/melonjs.mjs/physics/sat.js +1 -1
  132. package/dist/melonjs.mjs/physics/world.js +2 -2
  133. package/dist/melonjs.mjs/plugin/plugin.js +3 -3
  134. package/dist/melonjs.mjs/renderable/collectable.js +1 -1
  135. package/dist/melonjs.mjs/renderable/colorlayer.js +1 -1
  136. package/dist/melonjs.mjs/renderable/container.js +2 -2
  137. package/dist/melonjs.mjs/renderable/draggable.js +1 -1
  138. package/dist/melonjs.mjs/renderable/dragndrop.js +1 -1
  139. package/dist/melonjs.mjs/renderable/entity/entity.js +1 -1
  140. package/dist/melonjs.mjs/renderable/imagelayer.js +1 -1
  141. package/dist/melonjs.mjs/renderable/light2d.js +7 -7
  142. package/dist/melonjs.mjs/renderable/nineslicesprite.js +1 -1
  143. package/dist/melonjs.mjs/renderable/renderable.js +1 -1
  144. package/dist/melonjs.mjs/renderable/sprite.js +1 -1
  145. package/dist/melonjs.mjs/renderable/text/bitmaptext.js +1 -1
  146. package/dist/melonjs.mjs/renderable/text/bitmaptextdata.js +1 -1
  147. package/dist/melonjs.mjs/renderable/text/glyph.js +1 -1
  148. package/dist/melonjs.mjs/renderable/text/text.js +1 -1
  149. package/dist/melonjs.mjs/renderable/text/textmetrics.js +1 -1
  150. package/dist/melonjs.mjs/renderable/text/textstyle.js +1 -1
  151. package/dist/melonjs.mjs/renderable/trigger.js +1 -1
  152. package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +1 -1
  153. package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +1 -1
  154. package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +1 -1
  155. package/dist/melonjs.mjs/state/stage.js +1 -1
  156. package/dist/melonjs.mjs/state/state.js +5 -5
  157. package/dist/melonjs.mjs/system/device.js +6 -6
  158. package/dist/melonjs.mjs/system/dom.js +1 -1
  159. package/dist/melonjs.mjs/system/event.js +1 -1
  160. package/dist/melonjs.mjs/system/platform.js +4 -2
  161. package/dist/melonjs.mjs/system/pooling.js +2 -2
  162. package/dist/melonjs.mjs/system/save.js +2 -2
  163. package/dist/melonjs.mjs/system/timer.js +2 -2
  164. package/dist/melonjs.mjs/tweens/easing.js +68 -70
  165. package/dist/melonjs.mjs/tweens/interpolation.js +29 -29
  166. package/dist/melonjs.mjs/tweens/tween.js +43 -43
  167. package/dist/melonjs.mjs/utils/agent.js +1 -1
  168. package/dist/melonjs.mjs/utils/array.js +1 -1
  169. package/dist/melonjs.mjs/utils/file.js +1 -1
  170. package/dist/melonjs.mjs/utils/function.js +1 -1
  171. package/dist/melonjs.mjs/utils/string.js +1 -1
  172. package/dist/melonjs.mjs/utils/utils.js +1 -1
  173. package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +18 -10
  174. package/dist/melonjs.mjs/video/renderer.js +18 -70
  175. package/dist/melonjs.mjs/video/rendertarget/canvasrendertarget.js +12 -6
  176. package/dist/melonjs.mjs/video/texture/atlas.js +13 -4
  177. package/dist/melonjs.mjs/video/texture/cache.js +57 -38
  178. package/dist/melonjs.mjs/video/texture/parser/aseprite.js +1 -1
  179. package/dist/melonjs.mjs/video/texture/parser/spritesheet.js +1 -1
  180. package/dist/melonjs.mjs/video/texture/parser/texturepacker.js +1 -1
  181. package/dist/melonjs.mjs/video/utils/autodetect.js +1 -1
  182. package/dist/melonjs.mjs/video/video.js +4 -3
  183. package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +1 -1
  184. package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +1 -1
  185. package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +1 -1
  186. package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +1 -1
  187. package/dist/melonjs.mjs/video/webgl/glshader.js +1 -1
  188. package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +1 -1
  189. package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +1 -1
  190. package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +1 -1
  191. package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +1 -1
  192. package/dist/melonjs.mjs/video/webgl/utils/attributes.js +1 -1
  193. package/dist/melonjs.mjs/video/webgl/utils/precision.js +5 -5
  194. package/dist/melonjs.mjs/video/webgl/utils/program.js +1 -1
  195. package/dist/melonjs.mjs/video/webgl/utils/string.js +1 -1
  196. package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +1 -1
  197. package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +47 -21
  198. package/dist/melonjs.module.js +607 -1294
  199. package/dist/types/application/application.d.ts +7 -6
  200. package/dist/types/application/settings.d.ts +40 -23
  201. package/dist/types/audio/audio.d.ts +8 -4
  202. package/dist/types/loader/cache.d.ts +1 -0
  203. package/dist/types/loader/loader.d.ts +7 -0
  204. package/dist/types/physics/world.d.ts +1 -1
  205. package/dist/types/system/platform.d.ts +2 -0
  206. package/dist/types/video/canvas/canvas_renderer.d.ts +6 -3
  207. package/dist/types/video/renderer.d.ts +6 -16
  208. package/dist/types/video/rendertarget/canvasrendertarget.d.ts +6 -9
  209. package/dist/types/video/texture/atlas.d.ts +6 -0
  210. package/dist/types/video/texture/cache.d.ts +7 -5
  211. package/dist/types/video/video.d.ts +3 -2
  212. package/dist/types/video/webgl/webgl_renderer.d.ts +8 -6
  213. package/package.json +16 -16
  214. package/src/application/application.js +6 -6
  215. package/src/application/header.js +1 -1
  216. package/src/application/settings.js +27 -30
  217. package/src/audio/audio.js +12 -8
  218. package/src/geometries/path2d.js +16 -16
  219. package/src/index.js +2 -2
  220. package/src/lang/deprecated.js +28 -1
  221. package/src/level/tiled/TMXObject.js +1 -1
  222. package/src/level/tiled/TMXTileMap.js +1 -1
  223. package/src/level/tiled/TMXUtils.js +2 -2
  224. package/src/level/tiled/renderer/TMXHexagonalRenderer.js +4 -4
  225. package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +2 -2
  226. package/src/loader/cache.js +3 -0
  227. package/src/loader/loader.js +33 -3
  228. package/src/loader/parsers/fontface.js +24 -14
  229. package/src/loader/parsers/image.js +2 -2
  230. package/src/loader/parsers/tmx.js +1 -8
  231. package/src/math/color.js +5 -5
  232. package/src/math/matrix2.js +6 -6
  233. package/src/math/matrix3.js +1 -1
  234. package/src/math/observable_vector2.js +2 -2
  235. package/src/math/observable_vector3.js +3 -3
  236. package/src/math/vector2.js +2 -2
  237. package/src/math/vector3.js +3 -3
  238. package/src/physics/body.js +3 -3
  239. package/src/physics/detector.js +1 -1
  240. package/src/physics/world.js +1 -1
  241. package/src/renderable/container.js +1 -1
  242. package/src/renderable/light2d.js +6 -6
  243. package/src/state/state.js +4 -4
  244. package/src/system/device.js +5 -5
  245. package/src/system/platform.js +2 -0
  246. package/src/system/pooling.js +1 -1
  247. package/src/system/save.js +1 -1
  248. package/src/system/timer.js +1 -1
  249. package/src/tweens/easing.js +67 -69
  250. package/src/tweens/interpolation.js +28 -28
  251. package/src/tweens/tween.js +42 -42
  252. package/src/video/canvas/canvas_renderer.js +17 -9
  253. package/src/video/renderer.js +17 -69
  254. package/src/video/rendertarget/canvasrendertarget.js +11 -5
  255. package/src/video/texture/atlas.js +12 -3
  256. package/src/video/texture/cache.js +56 -37
  257. package/src/video/video.js +3 -2
  258. package/src/video/webgl/utils/precision.js +4 -4
  259. package/src/video/webgl/webgl_renderer.js +46 -20
  260. package/dist/melonjs.mjs/node_modules/semver/node_modules/lru-cache/index.js +0 -352
  261. package/dist/melonjs.mjs/node_modules/semver/node_modules/yallist/iterator.js +0 -24
  262. package/dist/melonjs.mjs/node_modules/semver/node_modules/yallist/yallist.js +0 -444
@@ -7,10 +7,10 @@ export default class Application {
7
7
  /**
8
8
  * @param {number} width - The width of the canvas viewport
9
9
  * @param {number} height - The height of the canvas viewport
10
- * @param {Application.Settings} [options] - The optional parameters for the application and default renderer
10
+ * @param {ApplicationSettings} [options] - The optional parameters for the application and default renderer
11
11
  * @throws Will throw an exception if it fails to instantiate a renderer
12
12
  */
13
- constructor(width: number, height: number, options?: any);
13
+ constructor(width: number, height: number, options?: ApplicationSettings | undefined);
14
14
  /**
15
15
  * the parent HTML element holding the main canvas of this application
16
16
  * @type {HTMLElement}
@@ -55,9 +55,9 @@ export default class Application {
55
55
  isInitialized: boolean;
56
56
  /**
57
57
  * the given settings used when creating this application
58
- * @type {Application.settings}
58
+ * @type {ApplicationSettings}
59
59
  */
60
- settings: Application.settings;
60
+ settings: ApplicationSettings;
61
61
  /**
62
62
  * Specify whether to pause this app when losing focus
63
63
  * @type {boolean}
@@ -94,9 +94,9 @@ export default class Application {
94
94
  * init the game instance (create a physic world, update starting time, etc..)
95
95
  * @param {number} width - The width of the canvas viewport
96
96
  * @param {number} height - The height of the canvas viewport
97
- * @param {Application.Settings} [options] - The optional parameters for the application and default renderer
97
+ * @param {ApplicationSettings} [options] - The optional parameters for the application and default renderer
98
98
  */
99
- init(width: number, height: number, options?: any): void;
99
+ init(width: number, height: number, options?: ApplicationSettings | undefined): void;
100
100
  /**
101
101
  * reset the game Object manager
102
102
  * destroy all current objects
@@ -145,3 +145,4 @@ export default class Application {
145
145
  }
146
146
  import CanvasRenderer from "./../video/canvas/canvas_renderer.js";
147
147
  import World from "./../physics/world.js";
148
+ import { ApplicationSettings } from "./settings.js";
@@ -1,28 +1,7 @@
1
- export namespace defaultSettings {
2
- let parent: undefined;
3
- let renderer: number;
4
- let autoScale: boolean;
5
- let scale: number;
6
- let scaleMethod: string;
7
- let scaleTarget: undefined;
8
- let transparent: boolean;
9
- let premultipliedAlpha: boolean;
10
- let blendMode: string;
11
- let physic: string;
12
- let antiAlias: boolean;
13
- let failIfMajorPerformanceCaveat: boolean;
14
- let subPixel: boolean;
15
- let preferWebGL1: boolean;
16
- let powerPreference: string;
17
- let verbose: boolean;
18
- let consoleHeader: boolean;
19
- let legacy: boolean;
20
- let canvas: undefined;
21
- }
22
1
  /**
23
2
  * Application & Renderer Settings definition.
24
3
  */
25
- export type Settings = {
4
+ export type ApplicationSettings = {
26
5
  /**
27
6
  * - the DOM parent element to hold the canvas in the HTML file
28
7
  */
@@ -56,7 +35,7 @@ export type Settings = {
56
35
  * - <i><b>`stretch`</b></i> : Canvas is resized to fit; content is scaled to screen aspect ratio <br>
57
36
  * <center><img src="images/scale-stretch.png"/></center>
58
37
  */
59
- scaleMethod?: "flex" | "fill-min" | "fill-max" | "flex-width" | "flex-height" | "stretch" | "fit" | undefined;
38
+ scaleMethod?: "flex" | "fit" | "fill-min" | "fill-max" | "flex-width" | "flex-height" | "stretch" | undefined;
60
39
  /**
61
40
  * - the HTML Element to be used as the reference target when using automatic scaling (by default melonJS will use the parent container of the div element containing the canvas)
62
41
  */
@@ -85,4 +64,42 @@ export type Settings = {
85
64
  * - whether to display melonJS version and basic device information in the console
86
65
  */
87
66
  consoleHeader?: boolean | undefined;
67
+ /**
68
+ * - The actual width of the canvas with scaling applied
69
+ */
70
+ zoomX?: number | undefined;
71
+ /**
72
+ * - The actual height of the canvas with scaling applied
73
+ */
74
+ zoomY?: number | undefined;
75
+ /**
76
+ * - a custom compositor class (WebGL only)
77
+ */
78
+ compositor?: any;
79
+ /**
80
+ * - the physic system to use (default: "builtin", or "none" to disable builtin physic)
81
+ */
82
+ physic?: string | undefined;
88
83
  };
84
+ export namespace ApplicationSettings {
85
+ let parent: undefined;
86
+ let canvas: undefined;
87
+ let renderer: number;
88
+ let autoScale: boolean;
89
+ let scale: number;
90
+ let scaleMethod: string;
91
+ let scaleTarget: undefined;
92
+ let preferWebGL1: boolean;
93
+ let depthTest: string;
94
+ let powerPreference: string;
95
+ let transparent: boolean;
96
+ let antiAlias: boolean;
97
+ let consoleHeader: boolean;
98
+ let premultipliedAlpha: boolean;
99
+ let blendMode: string;
100
+ let physic: string;
101
+ let failIfMajorPerformanceCaveat: boolean;
102
+ let subPixel: boolean;
103
+ let verbose: boolean;
104
+ let legacy: boolean;
105
+ }
@@ -113,11 +113,12 @@ export function rate(sound_name: string, ...args: any[]): number;
113
113
  * @memberof audio
114
114
  * @param {string} sound_name - audio clip name - case sensitive
115
115
  * @param {number} [pan] - the panning value - A value of -1.0 is all the way left and 1.0 is all the way right.
116
+ * @param {number} [id] - the sound instance ID. If none is passed, all sounds in group will be changed.
116
117
  * @return {number} the current panning value
117
118
  * @example
118
119
  * me.audio.stereo("cling", -1);
119
120
  */
120
- export function stereo(sound_name: string, pan?: number | undefined): number;
121
+ export function stereo(sound_name: string, pan?: number | undefined, id?: number | undefined): number;
121
122
  /**
122
123
  * get or set the 3D spatial position for the specified sound.
123
124
  * @memberof audio
@@ -125,9 +126,10 @@ export function stereo(sound_name: string, pan?: number | undefined): number;
125
126
  * @param {Number} x - the x-position of the audio source.
126
127
  * @param {Number} y - the y-position of the audio source.
127
128
  * @param {Number} z - the z-position of the audio source.
129
+ * @param {number} [id] - the sound instance ID. If none is passed, all sounds in group will be changed.
128
130
  * @return {Array} the current 3D spatial position: [x, y, z]
129
131
  */
130
- export function position(sound_name: string, x: number, y: number, z: number): any[];
132
+ export function position(sound_name: string, x: number, y: number, z: number, id?: number | undefined): any[];
131
133
  /**
132
134
  * Get/set the direction the audio source is pointing in the 3D cartesian coordinate space.
133
135
  * Depending on how direction the sound is, based on the `cone` attributes, a sound pointing away from the listener can be quiet or silent.
@@ -136,9 +138,10 @@ export function position(sound_name: string, x: number, y: number, z: number): a
136
138
  * @param {Number} x - the x-orientation of the audio source.
137
139
  * @param {Number} y - the y-orientation of the audio source.
138
140
  * @param {Number} z - the z-orientation of the audio source.
141
+ * @param {number} [id] - the sound instance ID. If none is passed, all sounds in group will be changed.
139
142
  * @return {Array} the current 3D spatial orientation: [x, y, z]
140
143
  */
141
- export function orientation(sound_name: string, x: number, y: number, z: number): any[];
144
+ export function orientation(sound_name: string, x: number, y: number, z: number, id?: number | undefined): any[];
142
145
  /**
143
146
  * get or set the panner node's attributes for a sound or group of sounds.
144
147
  * See {@link https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API/Web_audio_spatialization_basics#creating_a_panner_node}
@@ -153,6 +156,7 @@ export function orientation(sound_name: string, x: number, y: number, z: number)
153
156
  * @param {string} [settings.refDistance=1] - A reference distance for reducing volume as source moves further from the listener. This is simply a variable of the distance model and has a different effect depending on which model is used and the scale of your coordinates. Generally, volume will be equal to 1 at this distance.
154
157
  * @param {string} [settings.rolloffFactor=1] - How quickly the volume reduces as source moves from listener. This is simply a variable of the distance model and can be in the range of `[0, 1]` with `linear` and `[0, ∞]` with `inverse` and `exponential`.
155
158
  * @param {string} [settings.panningModel="HRTF"] - Determines which spatialization algorithm is used to position audio. Can be `HRTF` or `equalpower`.
159
+ * @param {number} [id] - the sound instance ID. If none is passed, all sounds in group will be changed.
156
160
  * @return {Object} current panner attributes.
157
161
  * @example
158
162
  * me.audio.panner("cling", {
@@ -162,7 +166,7 @@ export function orientation(sound_name: string, x: number, y: number, z: number)
162
166
  * distanceModel: 'exponential'
163
167
  * });
164
168
  */
165
- export function panner(sound_name: string, attributes: any): Object;
169
+ export function panner(sound_name: string, attributes: any, id?: number | undefined): Object;
166
170
  /**
167
171
  * stop the specified sound on all channels
168
172
  * @memberof audio
@@ -6,3 +6,4 @@ export let tmxList: {};
6
6
  export let binList: {};
7
7
  export let jsonList: {};
8
8
  export let videoList: {};
9
+ export let fontList: {};
@@ -242,6 +242,13 @@ export function getJSON(elt: string): JSON;
242
242
  * @returns {HTMLVideoElement}
243
243
  */
244
244
  export function getVideo(elt: string): HTMLVideoElement;
245
+ /**
246
+ * return the specified FontFace Object
247
+ * @memberof loader
248
+ * @param {string} elt - name of the font file
249
+ * @returns {FontFace}
250
+ */
251
+ export function getFont(elt: string): FontFace;
245
252
  /**
246
253
  * a small class to manage loading of stuff and manage resources
247
254
  * @namespace loader
@@ -18,7 +18,7 @@ export default class World extends Container {
18
18
  app: Application;
19
19
  /**
20
20
  * the physic engine used by melonJS
21
- * @see Application.Settings.physic
21
+ * @see ApplicationSettings.physic
22
22
  * @type {string}
23
23
  * @default "builtin"
24
24
  * @example
@@ -15,6 +15,7 @@
15
15
  * @property {boolean} isWeixin `true` if running under Wechat
16
16
  * @property {boolean} nodeJS `true` if running under node.js
17
17
  * @property {boolean} isMobile `true` if a mobile device
18
+ * @property {boolean} webApp `true` if running as a standalone web app
18
19
  */
19
20
  export const ua: string;
20
21
  export const iOS: boolean;
@@ -29,3 +30,4 @@ export const ejecta: boolean;
29
30
  export const isWeixin: boolean;
30
31
  export const nodeJS: boolean;
31
32
  export const isMobile: boolean;
33
+ export const webApp: boolean;
@@ -320,10 +320,13 @@ export default class CanvasRenderer extends Renderer {
320
320
  */
321
321
  getGlobalAlpha(): number;
322
322
  /**
323
- * Set the line width on the context
324
- * @param {number} width - Line width
323
+ * @ignore
325
324
  */
326
- setLineWidth(width: number): void;
325
+ set lineWidth(value: number | ((width: number) => void));
326
+ /**
327
+ * sets or returns the thickness of lines for shape drawing
328
+ */
329
+ get lineWidth(): number | ((width: number) => void);
327
330
  /**
328
331
  * Reset (overrides) the renderer transformation matrix to the
329
332
  * identity one, and then apply the given transformation matrix.
@@ -4,7 +4,7 @@
4
4
  */
5
5
  export default class Renderer {
6
6
  /**
7
- * @param {Application.Settings} [options] - optional parameters for the renderer
7
+ * @param {ApplicationSettings} [options] - optional parameters for the renderer
8
8
  */
9
9
  constructor(options?: any);
10
10
  /**
@@ -66,7 +66,6 @@ export default class Renderer {
66
66
  * @ignore
67
67
  */
68
68
  currentBlendMode: string;
69
- canvas: any;
70
69
  currentColor: Color;
71
70
  currentTint: Color;
72
71
  projectionMatrix: Matrix3d;
@@ -96,12 +95,12 @@ export default class Renderer {
96
95
  */
97
96
  reset(): void;
98
97
  /**
99
- * return a reference to the canvas which this renderer draws to
98
+ * return a reference to the current render target corresponding canvas which this renderer draws to
100
99
  * @returns {HTMLCanvasElement}
101
100
  */
102
101
  getCanvas(): HTMLCanvasElement;
103
102
  /**
104
- * return a reference to this renderer canvas corresponding Context
103
+ * return a reference to the current render target corresponding Context
105
104
  * @returns {CanvasRenderingContext2D|WebGLRenderingContext}
106
105
  */
107
106
  getContext(): CanvasRenderingContext2D | WebGLRenderingContext;
@@ -110,14 +109,6 @@ export default class Renderer {
110
109
  * @returns {string} blend mode
111
110
  */
112
111
  getBlendMode(): string;
113
- /**
114
- * Returns the 2D Context object of the given Canvas<br>
115
- * Also configures anti-aliasing and blend modes based on constructor options.
116
- * @param {HTMLCanvasElement} canvas
117
- * @param {boolean} [transparent=true] - use false to disable transparency
118
- * @returns {CanvasRenderingContext2D}
119
- */
120
- getContext2d(canvas: HTMLCanvasElement, transparent?: boolean | undefined): CanvasRenderingContext2D;
121
112
  /**
122
113
  * get the current fill & stroke style color.
123
114
  * @returns {Color} current global color
@@ -141,11 +132,10 @@ export default class Renderer {
141
132
  */
142
133
  resize(width: number, height: number): void;
143
134
  /**
144
- * enable/disable image smoothing (scaling interpolation) for the given context
145
- * @param {CanvasRenderingContext2D} context
135
+ * enable/disable image smoothing (scaling interpolation) for the current render target
146
136
  * @param {boolean} [enable=false]
147
137
  */
148
- setAntiAlias(context: CanvasRenderingContext2D, enable?: boolean | undefined): void;
138
+ setAntiAlias(enable?: boolean | undefined): void;
149
139
  /**
150
140
  * set/change the current projection matrix (WebGL only)
151
141
  * @param {Matrix3d} matrix
@@ -167,7 +157,7 @@ export default class Renderer {
167
157
  * @param {HTMLImageElement|HTMLCanvasElement|OffscreenCanvas} src - the source image to be tinted
168
158
  * @param {Color|string} color - the color that will be used to tint the image
169
159
  * @param {string} [mode="multiply"] - the composition mode used to tint the image
170
- * @returns {HTMLCanvasElement|OffscreenCanvas} a new canvas element representing the tinted image
160
+ * @returns {HTMLCanvasElement|OffscreenCanvas} a new canvas or offscreencanvas (if supported) element representing the tinted image
171
161
  */
172
162
  tint(src: HTMLImageElement | HTMLCanvasElement | OffscreenCanvas, color: Color | string, mode?: string | undefined): HTMLCanvasElement | OffscreenCanvas;
173
163
  /**
@@ -6,18 +6,15 @@ declare class CanvasRenderTarget {
6
6
  /**
7
7
  * @param {number} width - the desired width of the canvas
8
8
  * @param {number} height - the desired height of the canvas
9
- * @param {object} attributes - The attributes to create both the canvas and context
10
- * @param {boolean} [attributes.context="2d"] - the context type to be created ("2d", "webgl", "webgl2")
9
+ * @param {Settings} attributes - The attributes to create both the canvas and context
10
+ * @param {boolean} [attributes.context="2d"] - the context type to be created ("2d", "webgl")
11
+ * @param {boolean} [attributes.preferWebGL1=false] - set to true for force using WebGL1 instead of WebGL2 (if supported)
12
+ * @param {boolean} [attributes.transparent=false] - specify if the canvas contains an alpha channel
11
13
  * @param {boolean} [attributes.offscreenCanvas=false] - will create an offscreenCanvas if true instead of a standard canvas
12
14
  * @param {boolean} [attributes.willReadFrequently=false] - Indicates whether or not a lot of read-back operations are planned
13
15
  * @param {boolean} [attributes.antiAlias=false] - Whether to enable anti-aliasing, use false (default) for a pixelated effect.
14
16
  */
15
- constructor(width: number, height: number, attributes?: {
16
- context?: boolean | undefined;
17
- offscreenCanvas?: boolean | undefined;
18
- willReadFrequently?: boolean | undefined;
19
- antiAlias?: boolean | undefined;
20
- });
17
+ constructor(width: number, height: number, attributes?: Settings);
21
18
  /**
22
19
  * the canvas created for this CanvasRenderTarget
23
20
  * @type {HTMLCanvasElement|OffscreenCanvas}
@@ -28,7 +25,7 @@ declare class CanvasRenderTarget {
28
25
  * @type {CanvasRenderingContext2D|WebGLRenderingContext}
29
26
  */
30
27
  context: CanvasRenderingContext2D | WebGLRenderingContext;
31
- attributes: never;
28
+ attributes: any;
32
29
  WebGLVersion: any;
33
30
  /**
34
31
  * @ignore
@@ -83,6 +83,12 @@ export class TextureAtlas {
83
83
  * @ignore
84
84
  */
85
85
  atlases: Map<any, any>;
86
+ /**
87
+ * the default "active" atlas (used for multiAtlas)
88
+ * @type {Map}
89
+ * @ignore
90
+ */
91
+ activeAtlas: Map<any, any>;
86
92
  repeat: any;
87
93
  /**
88
94
  * return the default or specified atlas dictionnary
@@ -28,22 +28,24 @@ declare class TextureCache {
28
28
  /**
29
29
  * @ignore
30
30
  */
31
- get(image: any, atlas: any): any;
31
+ getUnit(texture: any): any;
32
32
  /**
33
33
  * @ignore
34
+ * cache the textureAltas for the given image
34
35
  */
35
- delete(image: any): void;
36
+ set(image: any, textureAtlas: any): boolean;
36
37
  /**
37
38
  * @ignore
39
+ * return the textureAltas for the given image
38
40
  */
39
- tint(src: any, color: any): any;
41
+ get(image: any, atlas: any): any;
40
42
  /**
41
43
  * @ignore
42
44
  */
43
- set(image: any, texture: any): boolean;
45
+ delete(image: any): void;
44
46
  /**
45
47
  * @ignore
46
48
  */
47
- getUnit(texture: any): any;
49
+ tint(src: any, color: any): any;
48
50
  }
49
51
  import { ArrayMultimap } from "@teppeis/multimaps";
@@ -3,7 +3,7 @@
3
3
  * @memberof video
4
4
  * @param {number} width - The width of the canvas viewport
5
5
  * @param {number} height - The height of the canvas viewport
6
- * @param {Application.Settings} [options] - optional parameters for the renderer
6
+ * @param {ApplicationSettings} [options] - optional parameters for the renderer
7
7
  * @returns {boolean} false if initialization failed (canvas not supported)
8
8
  * @example
9
9
  * // init the video with a 640x480 canvas
@@ -14,7 +14,7 @@
14
14
  * scaleMethod : "fit"
15
15
  * });
16
16
  */
17
- export function init(width: number, height: number, options?: any): boolean;
17
+ export function init(width: number, height: number, options?: ApplicationSettings | undefined): boolean;
18
18
  /**
19
19
  * Create and return a new Canvas element
20
20
  * @memberof video
@@ -36,3 +36,4 @@ export function getParent(): HTMLElement;
36
36
  * @type {CanvasRenderer|WebGLRenderer}
37
37
  */
38
38
  export let renderer: CanvasRenderer | WebGLRenderer;
39
+ import { ApplicationSettings } from "../application/settings.js";
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @classdesc
3
- * a WebGL renderer object
3
+ * a WebGL renderer draw
4
4
  * @augments Renderer
5
5
  */
6
6
  export default class WebGLRenderer extends Renderer {
@@ -24,6 +24,13 @@ export default class WebGLRenderer extends Renderer {
24
24
  * @type {WebGLRenderingContext}
25
25
  */
26
26
  gl: WebGLRenderingContext;
27
+ /**
28
+ * sets or returns the thickness of lines for shape drawing (limited to strokeLine)
29
+ * @type {number}
30
+ * @default 1
31
+ * @see WebGLRenderer#strokeLine
32
+ */
33
+ lineWidth: number;
27
34
  /**
28
35
  * the vertex buffer used by this WebGL Renderer
29
36
  * @type {WebGLBuffer}
@@ -329,11 +336,6 @@ export default class WebGLRenderer extends Renderer {
329
336
  * @param {Color|string} color - css color string.
330
337
  */
331
338
  setColor(color: Color | string): void;
332
- /**
333
- * Set the line width
334
- * @param {number} width - Line width
335
- */
336
- setLineWidth(width: number): void;
337
339
  /**
338
340
  * Stroke an arc at the specified coordinates with given radius, start and end points
339
341
  * @param {number} x - arc center point x-axis
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "melonjs",
3
- "version": "17.1.0",
3
+ "version": "17.3.0",
4
4
  "description": "melonJS Game Engine",
5
5
  "homepage": "http://www.melonjs.org/",
6
6
  "type": "module",
@@ -53,45 +53,45 @@
53
53
  ],
54
54
  "dependencies": {
55
55
  "@teppeis/multimaps": "^3.0.0",
56
- "core-js": "^3.36.1",
56
+ "core-js": "^3.37.1",
57
57
  "earcut": "2.2.4",
58
58
  "eventemitter3": "^5.0.1",
59
59
  "howler": "2.2.4",
60
- "semver": "^7.6.0",
60
+ "save-dev": "^0.0.1-security",
61
+ "semver": "^7.6.2",
61
62
  "whatwg-fetch": "^3.6.20"
62
63
  },
63
64
  "devDependencies": {
64
- "@babel/eslint-parser": "^7.24.1",
65
- "@babel/plugin-syntax-import-assertions": "^7.24.1",
66
- "@fastify/static": "^7.0.1",
65
+ "@fastify/static": "^7.0.4",
67
66
  "@melonjs/webdoc-theme": "^1.1.1",
68
- "@rollup/plugin-commonjs": "^25.0.7",
67
+ "@rollup/plugin-commonjs": "^25.0.8",
69
68
  "@rollup/plugin-image": "^3.0.3",
69
+ "@rollup/plugin-json": "^6.1.0",
70
70
  "@rollup/plugin-node-resolve": "^15.2.3",
71
71
  "@rollup/plugin-replace": "^5.0.5",
72
72
  "@webdoc/cli": "^2.2.0",
73
- "chromedriver": "^123.0.1",
73
+ "chromedriver": "^125.0.3",
74
74
  "cross-env": "^7.0.3",
75
75
  "del-cli": "^5.1.0",
76
- "eslint": "^8.57.0",
77
- "eslint-plugin-jsdoc": "^48.2.2",
76
+ "eslint": "^9.4.0",
77
+ "eslint-plugin-jsdoc": "^48.2.7",
78
78
  "expect": "^29.7.0",
79
79
  "expect-mocha-image-snapshot": "^3.0.16",
80
- "fastify": "^4.26.2",
80
+ "fastify": "^4.27.0",
81
81
  "mocha": "^10.4.0",
82
82
  "npm-self-link": "^1.1.7",
83
- "puppeteer": "^22.6.1",
84
- "rollup": "^4.13.2",
83
+ "puppeteer": "^22.10.0",
84
+ "rollup": "^4.18.0",
85
85
  "rollup-plugin-bundle-size": "^1.0.3",
86
86
  "rollup-plugin-string": "^3.0.0",
87
- "terser": "^5.30.0",
88
- "typescript": "^5.4.3"
87
+ "terser": "^5.31.0",
88
+ "typescript": "^5.4.5"
89
89
  },
90
90
  "scripts": {
91
91
  "build": "npm run lint && rollup -c --silent",
92
92
  "build:cd": "npm run lint && rollup -c --failAfterWarnings",
93
93
  "dist": " npm run clean && npm run build && mkdirp dist && cp -fR build/*.* dist/ && npm run types && npm run doc",
94
- "lint": "eslint src/** rollup.config.mjs",
94
+ "lint": "eslint",
95
95
  "pretest": "mkdirp tests/browser/public/lib && cp -f build/melonjs.module.js tests/browser/public/lib",
96
96
  "test": "npm run test-node && mocha ./tests/browser/spec/*.js --reporter spec --bail --timeout 10000",
97
97
  "test-node": "node build/melonjs.module.js",
@@ -7,7 +7,7 @@ import timer from "./../system/timer.js";
7
7
  import state from "./../state/state.js";
8
8
  import World from "./../physics/world.js";
9
9
  import { onresize } from "./resize.js";
10
- import { defaultSettings } from "./settings.js";
10
+ import { ApplicationSettings } from "./settings.js";
11
11
  import { consoleHeader } from "./header.js";
12
12
  import { CANVAS, WEBGL, AUTO } from "../const.js";
13
13
 
@@ -20,7 +20,7 @@ export default class Application {
20
20
  /**
21
21
  * @param {number} width - The width of the canvas viewport
22
22
  * @param {number} height - The height of the canvas viewport
23
- * @param {Application.Settings} [options] - The optional parameters for the application and default renderer
23
+ * @param {ApplicationSettings} [options] - The optional parameters for the application and default renderer
24
24
  * @throws Will throw an exception if it fails to instantiate a renderer
25
25
  */
26
26
  constructor(width, height, options) {
@@ -76,7 +76,7 @@ export default class Application {
76
76
 
77
77
  /**
78
78
  * the given settings used when creating this application
79
- * @type {Application.settings}
79
+ * @type {ApplicationSettings}
80
80
  */
81
81
  this.settings = undefined;
82
82
 
@@ -137,11 +137,11 @@ export default class Application {
137
137
  * init the game instance (create a physic world, update starting time, etc..)
138
138
  * @param {number} width - The width of the canvas viewport
139
139
  * @param {number} height - The height of the canvas viewport
140
- * @param {Application.Settings} [options] - The optional parameters for the application and default renderer
140
+ * @param {ApplicationSettings} [options] - The optional parameters for the application and default renderer
141
141
  */
142
142
  init(width, height, options) {
143
143
 
144
- this.settings = Object.assign(defaultSettings, options || {});
144
+ this.settings = Object.assign(ApplicationSettings, options || {});
145
145
 
146
146
  // sanitize potential given parameters
147
147
  this.settings.width = width;
@@ -180,7 +180,7 @@ export default class Application {
180
180
 
181
181
  // identify parent element and/or the html target for resizing
182
182
  this.parentElement = device.getElement(this.settings.parent);
183
- if (typeof this.settings.scaleTarget !== "undefined" ) {
183
+ if (typeof this.settings.scaleTarget !== "undefined") {
184
184
  this.settings.scaleTarget = device.getElement(this.settings.scaleTarget);
185
185
  }
186
186
 
@@ -20,7 +20,7 @@ export function consoleHeader(app) {
20
20
  device.language
21
21
  );
22
22
 
23
- console.log( "resolution: " + "requested " + app.settings.width + "x" + app.settings.height +
23
+ console.log("resolution: " + "requested " + app.settings.width + "x" + app.settings.height +
24
24
  ", got " + app.renderer.width + "x" + app.renderer.height
25
25
  );
26
26
  }
@@ -1,29 +1,6 @@
1
- // default settings
2
- export const defaultSettings = {
3
- parent : undefined,
4
- renderer : 2, // AUTO
5
- autoScale : false,
6
- scale : 1.0,
7
- scaleMethod : "manual",
8
- scaleTarget : undefined,
9
- transparent : false,
10
- premultipliedAlpha: true,
11
- blendMode : "normal",
12
- physic : "builtin",
13
- antiAlias : false,
14
- failIfMajorPerformanceCaveat : true,
15
- subPixel : false,
16
- preferWebGL1 : false,
17
- powerPreference : "default",
18
- verbose : false,
19
- consoleHeader : true,
20
- legacy : false,
21
- canvas : undefined
22
- };
23
-
24
1
  /**
25
2
  * Application & Renderer Settings definition.
26
- * @typedef {object} Settings
3
+ * @typedef {Object} ApplicationSettings
27
4
  * @property {string|HTMLElement} [parent=document.body] - the DOM parent element to hold the canvas in the HTML file
28
5
  * @property {HTMLCanvasElement} [canvas] - an existing canvas element to use as the renderer target (by default melonJS will create its own canvas based on given parameters)
29
6
  * @property {number|Renderer} [renderer=AUTO] - renderer to use (CANVAS, WEBGL, AUTO), or a custom renderer class
@@ -50,10 +27,30 @@ export const defaultSettings = {
50
27
  * @property {boolean} [transparent=false] - whether to allow transparent pixels in the front buffer (screen).
51
28
  * @property {boolean} [antiAlias=false] - whether to enable or not video scaling interpolation
52
29
  * @property {boolean} [consoleHeader=true] - whether to display melonJS version and basic device information in the console
53
- * @param {number} [options.zoomX=width] - The actual width of the canvas with scaling applied
54
- * @param {number} [options.zoomY=height] - The actual height of the canvas with scaling applied
55
- * @param {Compositor} [options.compositor] - a custom compositor class (WebGL only)
56
- * @param {string} [option.physic="builtin"] - the physic system to use (default: "builtin", or "none" to disable builtin physic)
57
- * @see Application
58
- * @memberof Application
30
+ * @property {number} [zoomX=width] - The actual width of the canvas with scaling applied
31
+ * @property {number} [zoomY=height] - The actual height of the canvas with scaling applied
32
+ * @property {Compositor} [compositor] - a custom compositor class (WebGL only)
33
+ * @property {string} [physic="builtin"] - the physic system to use (default: "builtin", or "none" to disable builtin physic)
59
34
  */
35
+ export const ApplicationSettings = {
36
+ parent : undefined,
37
+ canvas : undefined,
38
+ renderer : 2, // AUTO
39
+ autoScale : false,
40
+ scale : 1.0,
41
+ scaleMethod : "manual",
42
+ scaleTarget : undefined,
43
+ preferWebGL1 : false,
44
+ depthTest: "sorting",
45
+ powerPreference : "default",
46
+ transparent : false,
47
+ antiAlias : false,
48
+ consoleHeader : true,
49
+ premultipliedAlpha: true,
50
+ blendMode : "normal",
51
+ physic : "builtin",
52
+ failIfMajorPerformanceCaveat : true,
53
+ subPixel : false,
54
+ verbose : false,
55
+ legacy : false
56
+ };