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.
- package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +1 -1
- package/dist/melonjs.mjs/_virtual/earcut.js +1 -1
- package/dist/melonjs.mjs/_virtual/howler.js +1 -1
- package/dist/melonjs.mjs/_virtual/index.js +1 -1
- package/dist/melonjs.mjs/_virtual/re.js +1 -1
- package/dist/melonjs.mjs/application/application.js +7 -7
- package/dist/melonjs.mjs/application/header.js +2 -2
- package/dist/melonjs.mjs/application/resize.js +1 -1
- package/dist/melonjs.mjs/application/settings.js +29 -32
- package/dist/melonjs.mjs/audio/audio.js +13 -9
- package/dist/melonjs.mjs/camera/camera2d.js +1 -1
- package/dist/melonjs.mjs/const.js +1 -1
- package/dist/melonjs.mjs/geometries/ellipse.js +1 -1
- package/dist/melonjs.mjs/geometries/line.js +1 -1
- package/dist/melonjs.mjs/geometries/path2d.js +17 -17
- package/dist/melonjs.mjs/geometries/point.js +1 -1
- package/dist/melonjs.mjs/geometries/poly.js +1 -1
- package/dist/melonjs.mjs/geometries/rectangle.js +1 -1
- package/dist/melonjs.mjs/geometries/roundrect.js +1 -1
- package/dist/melonjs.mjs/geometries/toarccanvas.js +1 -1
- package/dist/melonjs.mjs/index.js +4 -4
- package/dist/melonjs.mjs/input/gamepad.js +1 -1
- package/dist/melonjs.mjs/input/input.js +1 -1
- package/dist/melonjs.mjs/input/keyboard.js +1 -1
- package/dist/melonjs.mjs/input/pointer.js +1 -1
- package/dist/melonjs.mjs/input/pointerevent.js +1 -1
- package/dist/melonjs.mjs/lang/console.js +1 -1
- package/dist/melonjs.mjs/lang/deprecated.js +29 -2
- package/dist/melonjs.mjs/level/level.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXGroup.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXLayer.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXObject.js +2 -2
- package/dist/melonjs.mjs/level/tiled/TMXTile.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +2 -2
- package/dist/melonjs.mjs/level/tiled/TMXTileset.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +1 -1
- package/dist/melonjs.mjs/level/tiled/TMXUtils.js +3 -3
- package/dist/melonjs.mjs/level/tiled/constants.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +5 -5
- package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +3 -3
- package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +1 -1
- package/dist/melonjs.mjs/loader/cache.js +5 -2
- package/dist/melonjs.mjs/loader/loader.js +34 -5
- package/dist/melonjs.mjs/loader/loadingscreen.js +2 -4
- package/dist/melonjs.mjs/loader/melonjs_logo.png.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/binary.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/compressed_image.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/parseDDS.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/parseKTX.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/parseKTX2.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/parsePKM.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/parsePVR.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/fetchdata.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/fontface.js +25 -15
- package/dist/melonjs.mjs/loader/parsers/image.js +3 -3
- package/dist/melonjs.mjs/loader/parsers/json.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/script.js +1 -1
- package/dist/melonjs.mjs/loader/parsers/tmx.js +2 -9
- package/dist/melonjs.mjs/loader/parsers/video.js +1 -1
- package/dist/melonjs.mjs/math/color.js +6 -6
- package/dist/melonjs.mjs/math/math.js +1 -1
- package/dist/melonjs.mjs/math/matrix2.js +7 -7
- package/dist/melonjs.mjs/math/matrix3.js +2 -2
- package/dist/melonjs.mjs/math/observable_vector2.js +3 -3
- package/dist/melonjs.mjs/math/observable_vector3.js +4 -4
- package/dist/melonjs.mjs/math/vector2.js +3 -3
- package/dist/melonjs.mjs/math/vector3.js +4 -4
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/arraymultimap.js +1 -1
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/multimap.js +1 -1
- package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +1 -1
- package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +1 -1
- package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +1 -1
- package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/classes/comparator.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/classes/range.js +6 -5
- package/dist/melonjs.mjs/node_modules/semver/classes/semver.js +2 -2
- package/dist/melonjs.mjs/node_modules/semver/functions/clean.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/cmp.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/coerce.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/compare-build.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/compare-loose.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/compare.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/diff.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/eq.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/gt.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/gte.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/inc.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/lt.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/lte.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/major.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/minor.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/neq.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/parse.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/patch.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/prerelease.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/rcompare.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/rsort.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/satisfies.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/sort.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/functions/valid.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/index.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/internal/constants.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/internal/debug.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/internal/identifiers.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/internal/lrucache.js +49 -0
- package/dist/melonjs.mjs/node_modules/semver/internal/parse-options.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/internal/re.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/gtr.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/intersects.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/ltr.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/max-satisfying.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/min-satisfying.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/min-version.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/outside.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/simplify.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/subset.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/to-comparators.js +1 -1
- package/dist/melonjs.mjs/node_modules/semver/ranges/valid.js +1 -1
- package/dist/melonjs.mjs/particles/emitter.js +1 -1
- package/dist/melonjs.mjs/particles/particle.js +1 -1
- package/dist/melonjs.mjs/particles/settings.js +1 -1
- package/dist/melonjs.mjs/physics/body.js +4 -4
- package/dist/melonjs.mjs/physics/bounds.js +1 -1
- package/dist/melonjs.mjs/physics/collision.js +1 -1
- package/dist/melonjs.mjs/physics/detector.js +2 -2
- package/dist/melonjs.mjs/physics/quadtree.js +1 -1
- package/dist/melonjs.mjs/physics/response.js +1 -1
- package/dist/melonjs.mjs/physics/sat.js +1 -1
- package/dist/melonjs.mjs/physics/world.js +2 -2
- package/dist/melonjs.mjs/plugin/plugin.js +3 -3
- package/dist/melonjs.mjs/renderable/collectable.js +1 -1
- package/dist/melonjs.mjs/renderable/colorlayer.js +1 -1
- package/dist/melonjs.mjs/renderable/container.js +2 -2
- package/dist/melonjs.mjs/renderable/draggable.js +1 -1
- package/dist/melonjs.mjs/renderable/dragndrop.js +1 -1
- package/dist/melonjs.mjs/renderable/entity/entity.js +1 -1
- package/dist/melonjs.mjs/renderable/imagelayer.js +1 -1
- package/dist/melonjs.mjs/renderable/light2d.js +7 -7
- package/dist/melonjs.mjs/renderable/nineslicesprite.js +1 -1
- package/dist/melonjs.mjs/renderable/renderable.js +1 -1
- package/dist/melonjs.mjs/renderable/sprite.js +1 -1
- package/dist/melonjs.mjs/renderable/text/bitmaptext.js +1 -1
- package/dist/melonjs.mjs/renderable/text/bitmaptextdata.js +1 -1
- package/dist/melonjs.mjs/renderable/text/glyph.js +1 -1
- package/dist/melonjs.mjs/renderable/text/text.js +1 -1
- package/dist/melonjs.mjs/renderable/text/textmetrics.js +1 -1
- package/dist/melonjs.mjs/renderable/text/textstyle.js +1 -1
- package/dist/melonjs.mjs/renderable/trigger.js +1 -1
- package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +1 -1
- package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +1 -1
- package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +1 -1
- package/dist/melonjs.mjs/state/stage.js +1 -1
- package/dist/melonjs.mjs/state/state.js +5 -5
- package/dist/melonjs.mjs/system/device.js +6 -6
- package/dist/melonjs.mjs/system/dom.js +1 -1
- package/dist/melonjs.mjs/system/event.js +1 -1
- package/dist/melonjs.mjs/system/platform.js +4 -2
- package/dist/melonjs.mjs/system/pooling.js +2 -2
- package/dist/melonjs.mjs/system/save.js +2 -2
- package/dist/melonjs.mjs/system/timer.js +2 -2
- package/dist/melonjs.mjs/tweens/easing.js +68 -70
- package/dist/melonjs.mjs/tweens/interpolation.js +29 -29
- package/dist/melonjs.mjs/tweens/tween.js +43 -43
- package/dist/melonjs.mjs/utils/agent.js +1 -1
- package/dist/melonjs.mjs/utils/array.js +1 -1
- package/dist/melonjs.mjs/utils/file.js +1 -1
- package/dist/melonjs.mjs/utils/function.js +1 -1
- package/dist/melonjs.mjs/utils/string.js +1 -1
- package/dist/melonjs.mjs/utils/utils.js +1 -1
- package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +18 -10
- package/dist/melonjs.mjs/video/renderer.js +18 -70
- package/dist/melonjs.mjs/video/rendertarget/canvasrendertarget.js +12 -6
- package/dist/melonjs.mjs/video/texture/atlas.js +13 -4
- package/dist/melonjs.mjs/video/texture/cache.js +57 -38
- package/dist/melonjs.mjs/video/texture/parser/aseprite.js +1 -1
- package/dist/melonjs.mjs/video/texture/parser/spritesheet.js +1 -1
- package/dist/melonjs.mjs/video/texture/parser/texturepacker.js +1 -1
- package/dist/melonjs.mjs/video/utils/autodetect.js +1 -1
- package/dist/melonjs.mjs/video/video.js +4 -3
- package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +1 -1
- package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +1 -1
- package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +1 -1
- package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +1 -1
- package/dist/melonjs.mjs/video/webgl/glshader.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/attributes.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/precision.js +5 -5
- package/dist/melonjs.mjs/video/webgl/utils/program.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/string.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +1 -1
- package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +47 -21
- package/dist/melonjs.module.js +607 -1294
- package/dist/types/application/application.d.ts +7 -6
- package/dist/types/application/settings.d.ts +40 -23
- package/dist/types/audio/audio.d.ts +8 -4
- package/dist/types/loader/cache.d.ts +1 -0
- package/dist/types/loader/loader.d.ts +7 -0
- package/dist/types/physics/world.d.ts +1 -1
- package/dist/types/system/platform.d.ts +2 -0
- package/dist/types/video/canvas/canvas_renderer.d.ts +6 -3
- package/dist/types/video/renderer.d.ts +6 -16
- package/dist/types/video/rendertarget/canvasrendertarget.d.ts +6 -9
- package/dist/types/video/texture/atlas.d.ts +6 -0
- package/dist/types/video/texture/cache.d.ts +7 -5
- package/dist/types/video/video.d.ts +3 -2
- package/dist/types/video/webgl/webgl_renderer.d.ts +8 -6
- package/package.json +16 -16
- package/src/application/application.js +6 -6
- package/src/application/header.js +1 -1
- package/src/application/settings.js +27 -30
- package/src/audio/audio.js +12 -8
- package/src/geometries/path2d.js +16 -16
- package/src/index.js +2 -2
- package/src/lang/deprecated.js +28 -1
- package/src/level/tiled/TMXObject.js +1 -1
- package/src/level/tiled/TMXTileMap.js +1 -1
- package/src/level/tiled/TMXUtils.js +2 -2
- package/src/level/tiled/renderer/TMXHexagonalRenderer.js +4 -4
- package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +2 -2
- package/src/loader/cache.js +3 -0
- package/src/loader/loader.js +33 -3
- package/src/loader/parsers/fontface.js +24 -14
- package/src/loader/parsers/image.js +2 -2
- package/src/loader/parsers/tmx.js +1 -8
- package/src/math/color.js +5 -5
- package/src/math/matrix2.js +6 -6
- package/src/math/matrix3.js +1 -1
- package/src/math/observable_vector2.js +2 -2
- package/src/math/observable_vector3.js +3 -3
- package/src/math/vector2.js +2 -2
- package/src/math/vector3.js +3 -3
- package/src/physics/body.js +3 -3
- package/src/physics/detector.js +1 -1
- package/src/physics/world.js +1 -1
- package/src/renderable/container.js +1 -1
- package/src/renderable/light2d.js +6 -6
- package/src/state/state.js +4 -4
- package/src/system/device.js +5 -5
- package/src/system/platform.js +2 -0
- package/src/system/pooling.js +1 -1
- package/src/system/save.js +1 -1
- package/src/system/timer.js +1 -1
- package/src/tweens/easing.js +67 -69
- package/src/tweens/interpolation.js +28 -28
- package/src/tweens/tween.js +42 -42
- package/src/video/canvas/canvas_renderer.js +17 -9
- package/src/video/renderer.js +17 -69
- package/src/video/rendertarget/canvasrendertarget.js +11 -5
- package/src/video/texture/atlas.js +12 -3
- package/src/video/texture/cache.js +56 -37
- package/src/video/video.js +3 -2
- package/src/video/webgl/utils/precision.js +4 -4
- package/src/video/webgl/webgl_renderer.js +46 -20
- package/dist/melonjs.mjs/node_modules/semver/node_modules/lru-cache/index.js +0 -352
- package/dist/melonjs.mjs/node_modules/semver/node_modules/yallist/iterator.js +0 -24
- 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 {
|
|
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?:
|
|
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 {
|
|
58
|
+
* @type {ApplicationSettings}
|
|
59
59
|
*/
|
|
60
|
-
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 {
|
|
97
|
+
* @param {ApplicationSettings} [options] - The optional parameters for the application and default renderer
|
|
98
98
|
*/
|
|
99
|
-
init(width: number, height: number, options?:
|
|
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
|
|
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" |
|
|
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
|
|
@@ -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
|
|
@@ -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
|
-
*
|
|
324
|
-
* @param {number} width - Line width
|
|
323
|
+
* @ignore
|
|
325
324
|
*/
|
|
326
|
-
|
|
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 {
|
|
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
|
|
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
|
|
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(
|
|
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 {
|
|
10
|
-
* @param {boolean} [attributes.context="2d"] - the context type to be created ("2d", "webgl"
|
|
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:
|
|
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
|
-
|
|
31
|
+
getUnit(texture: any): any;
|
|
32
32
|
/**
|
|
33
33
|
* @ignore
|
|
34
|
+
* cache the textureAltas for the given image
|
|
34
35
|
*/
|
|
35
|
-
|
|
36
|
+
set(image: any, textureAtlas: any): boolean;
|
|
36
37
|
/**
|
|
37
38
|
* @ignore
|
|
39
|
+
* return the textureAltas for the given image
|
|
38
40
|
*/
|
|
39
|
-
|
|
41
|
+
get(image: any, atlas: any): any;
|
|
40
42
|
/**
|
|
41
43
|
* @ignore
|
|
42
44
|
*/
|
|
43
|
-
|
|
45
|
+
delete(image: any): void;
|
|
44
46
|
/**
|
|
45
47
|
* @ignore
|
|
46
48
|
*/
|
|
47
|
-
|
|
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 {
|
|
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?:
|
|
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
|
|
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.
|
|
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.
|
|
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
|
-
"
|
|
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
|
-
"@
|
|
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.
|
|
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": "^
|
|
73
|
+
"chromedriver": "^125.0.3",
|
|
74
74
|
"cross-env": "^7.0.3",
|
|
75
75
|
"del-cli": "^5.1.0",
|
|
76
|
-
"eslint": "^
|
|
77
|
-
"eslint-plugin-jsdoc": "^48.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.
|
|
80
|
+
"fastify": "^4.27.0",
|
|
81
81
|
"mocha": "^10.4.0",
|
|
82
82
|
"npm-self-link": "^1.1.7",
|
|
83
|
-
"puppeteer": "^22.
|
|
84
|
-
"rollup": "^4.
|
|
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.
|
|
88
|
-
"typescript": "^5.4.
|
|
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
|
|
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 {
|
|
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 {
|
|
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 {
|
|
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 {
|
|
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(
|
|
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(
|
|
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 {
|
|
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
|
-
* @
|
|
54
|
-
* @
|
|
55
|
-
* @
|
|
56
|
-
* @
|
|
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
|
+
};
|