melonjs 14.5.0 → 15.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.
- package/LICENSE.md +1 -1
- package/README.md +6 -6
- package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +1 -1
- package/dist/melonjs.mjs/_virtual/arraymultimap.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 +7 -3
- package/dist/melonjs.mjs/_virtual/index2.js +1 -1
- package/dist/melonjs.mjs/_virtual/multimap.js +1 -1
- package/dist/melonjs.mjs/_virtual/setmultimap.js +1 -1
- package/dist/melonjs.mjs/application/application.js +27 -17
- package/dist/melonjs.mjs/application/header.js +6 -5
- package/dist/melonjs.mjs/application/resize.js +20 -20
- package/dist/melonjs.mjs/application/settings.js +1 -1
- package/dist/melonjs.mjs/audio/audio.js +18 -20
- package/dist/melonjs.mjs/camera/camera2d.js +10 -10
- package/dist/melonjs.mjs/const.js +1 -1
- package/dist/melonjs.mjs/entity/entity.js +4 -4
- package/dist/melonjs.mjs/geometries/ellipse.js +6 -6
- package/dist/melonjs.mjs/geometries/line.js +9 -9
- package/dist/melonjs.mjs/geometries/path2d.js +56 -56
- package/dist/melonjs.mjs/geometries/point.js +2 -2
- package/dist/melonjs.mjs/geometries/poly.js +29 -29
- package/dist/melonjs.mjs/geometries/rectangle.js +8 -8
- package/dist/melonjs.mjs/geometries/roundrect.js +6 -6
- package/dist/melonjs.mjs/index.js +8 -6
- package/dist/melonjs.mjs/input/gamepad.js +30 -30
- package/dist/melonjs.mjs/input/input.js +2 -2
- package/dist/melonjs.mjs/input/keyboard.js +15 -15
- package/dist/melonjs.mjs/input/pointer.js +2 -2
- package/dist/melonjs.mjs/input/pointerevent.js +59 -59
- package/dist/melonjs.mjs/lang/console.js +3 -3
- package/dist/melonjs.mjs/lang/deprecated.js +2 -2
- package/dist/melonjs.mjs/level/level.js +9 -9
- package/dist/melonjs.mjs/level/tiled/TMXGroup.js +3 -3
- package/dist/melonjs.mjs/level/tiled/TMXLayer.js +31 -31
- package/dist/melonjs.mjs/level/tiled/TMXObject.js +8 -8
- package/dist/melonjs.mjs/level/tiled/TMXTile.js +8 -8
- package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +19 -19
- package/dist/melonjs.mjs/level/tiled/TMXTileset.js +15 -15
- package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +3 -3
- package/dist/melonjs.mjs/level/tiled/TMXUtils.js +46 -41
- package/dist/melonjs.mjs/level/tiled/constants.js +1 -1
- package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +30 -30
- package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +21 -21
- package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +10 -10
- package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +2 -2
- package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +6 -6
- package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +1 -1
- package/dist/melonjs.mjs/loader/cache.js +1 -1
- package/dist/melonjs.mjs/loader/loader.js +7 -7
- package/dist/melonjs.mjs/loader/loadingscreen.js +2 -2
- package/dist/melonjs.mjs/loader/melonjs_logo.png.js +1 -1
- package/dist/melonjs.mjs/loader/parser.js +13 -13
- package/dist/melonjs.mjs/loader/settings.js +3 -3
- package/dist/melonjs.mjs/math/color.js +25 -24
- package/dist/melonjs.mjs/math/math.js +2 -2
- package/dist/melonjs.mjs/math/matrix2.js +22 -22
- package/dist/melonjs.mjs/math/matrix3.js +52 -52
- package/dist/melonjs.mjs/math/observable_vector2.js +12 -12
- package/dist/melonjs.mjs/math/observable_vector3.js +22 -22
- package/dist/melonjs.mjs/math/vector2.js +11 -11
- package/dist/melonjs.mjs/math/vector3.js +21 -21
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/arraymultimap.js +45 -0
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/multimap.js +130 -0
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/arraymultimap.js +1 -1
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/index.js +1 -1
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/multimap.js +1 -1
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/setmultimap.js +1 -1
- package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +1 -1
- package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +2 -2
- 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/particles/emitter.js +5 -5
- package/dist/melonjs.mjs/particles/particle.js +8 -8
- package/dist/melonjs.mjs/particles/settings.js +3 -3
- package/dist/melonjs.mjs/physics/body.js +17 -17
- package/dist/melonjs.mjs/physics/bounds.js +12 -12
- package/dist/melonjs.mjs/physics/collision.js +3 -3
- package/dist/melonjs.mjs/physics/detector.js +14 -14
- package/dist/melonjs.mjs/physics/quadtree.js +19 -19
- package/dist/melonjs.mjs/physics/response.js +1 -1
- package/dist/melonjs.mjs/physics/sat.js +60 -60
- package/dist/melonjs.mjs/physics/world.js +4 -4
- package/dist/melonjs.mjs/plugin/plugin.js +11 -11
- package/dist/melonjs.mjs/renderable/collectable.js +2 -2
- package/dist/melonjs.mjs/renderable/colorlayer.js +1 -1
- package/dist/melonjs.mjs/renderable/container.js +77 -59
- package/dist/melonjs.mjs/renderable/dragndrop.js +5 -5
- package/dist/melonjs.mjs/renderable/imagelayer.js +7 -6
- package/dist/melonjs.mjs/renderable/light2d.js +6 -6
- package/dist/melonjs.mjs/renderable/nineslicesprite.js +12 -12
- package/dist/melonjs.mjs/renderable/renderable.js +35 -13
- package/dist/melonjs.mjs/renderable/sprite.js +25 -25
- package/dist/melonjs.mjs/renderable/trigger.js +11 -9
- package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +97 -27
- package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +25 -25
- package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +83 -65
- package/dist/melonjs.mjs/state/stage.js +7 -7
- package/dist/melonjs.mjs/state/state.js +15 -15
- package/dist/melonjs.mjs/system/device.js +3 -3
- package/dist/melonjs.mjs/system/dom.js +1 -1
- package/dist/melonjs.mjs/system/event.js +2 -2
- package/dist/melonjs.mjs/system/platform.js +1 -1
- package/dist/melonjs.mjs/system/pooling.js +9 -9
- package/dist/melonjs.mjs/system/save.js +6 -6
- package/dist/melonjs.mjs/system/timer.js +16 -12
- package/dist/melonjs.mjs/text/bitmaptext.js +20 -20
- package/dist/melonjs.mjs/text/bitmaptextdata.js +22 -22
- package/dist/melonjs.mjs/text/glyph.js +3 -3
- package/dist/melonjs.mjs/text/text.js +63 -92
- package/dist/melonjs.mjs/text/textmetrics.js +15 -15
- package/dist/melonjs.mjs/text/textstyle.js +4 -6
- package/dist/melonjs.mjs/tweens/easing.js +4 -4
- package/dist/melonjs.mjs/tweens/interpolation.js +8 -8
- package/dist/melonjs.mjs/tweens/tween.js +11 -11
- package/dist/melonjs.mjs/utils/agent.js +6 -6
- package/dist/melonjs.mjs/utils/array.js +4 -4
- package/dist/melonjs.mjs/utils/file.js +1 -1
- package/dist/melonjs.mjs/utils/function.js +5 -5
- package/dist/melonjs.mjs/utils/string.js +3 -3
- package/dist/melonjs.mjs/utils/utils.js +16 -16
- package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +41 -119
- package/dist/melonjs.mjs/video/renderer.js +70 -14
- package/dist/melonjs.mjs/video/texture/atlas.js +39 -45
- package/dist/melonjs.mjs/video/texture/cache.js +9 -10
- package/dist/melonjs.mjs/video/texture/canvas_texture.js +63 -3
- package/dist/melonjs.mjs/video/utils/autodetect.js +1 -1
- package/dist/melonjs.mjs/video/video.js +2 -2
- package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +23 -19
- package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +80 -80
- package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +77 -0
- package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +252 -0
- package/dist/melonjs.mjs/video/webgl/compositors/webgl_compositor.js +1 -1
- package/dist/melonjs.mjs/video/webgl/glshader.js +7 -7
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +2 -2
- package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +1 -1
- package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +2 -2
- package/dist/melonjs.mjs/video/webgl/utils/attributes.js +2 -2
- package/dist/melonjs.mjs/video/webgl/utils/precision.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/program.js +7 -7
- package/dist/melonjs.mjs/video/webgl/utils/string.js +1 -1
- package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +4 -4
- package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +188 -181
- package/dist/melonjs.module.js +25040 -25193
- package/dist/types/application/application.d.ts +11 -8
- package/dist/types/audio/audio.d.ts +3 -3
- package/dist/types/entity/entity.d.ts +1 -1
- package/dist/types/index.d.ts +7 -4
- package/dist/types/input/input.d.ts +1 -1
- package/dist/types/input/keyboard.d.ts +1 -1
- package/dist/types/input/pointerevent.d.ts +6 -6
- package/dist/types/level/level.d.ts +2 -2
- package/dist/types/level/tiled/TMXLayer.d.ts +4 -4
- package/dist/types/level/tiled/TMXTileMap.d.ts +2 -2
- package/dist/types/level/tiled/TMXUtils.d.ts +5 -4
- package/dist/types/loader/loader.d.ts +2 -2
- package/dist/types/loader/settings.d.ts +2 -2
- package/dist/types/particles/emitter.d.ts +1 -1
- package/dist/types/physics/collision.d.ts +1 -1
- package/dist/types/physics/detector.d.ts +1 -1
- package/dist/types/plugin/plugin.d.ts +2 -2
- package/dist/types/renderable/container.d.ts +21 -17
- package/dist/types/renderable/renderable.d.ts +6 -0
- package/dist/types/renderable/sprite.d.ts +11 -11
- package/dist/types/renderable/trigger.d.ts +1 -1
- package/dist/types/renderable/ui/uibaseelement.d.ts +28 -6
- package/dist/types/renderable/ui/uispriteelement.d.ts +12 -14
- package/dist/types/renderable/ui/uitextbutton.d.ts +52 -12
- package/dist/types/state/stage.d.ts +1 -1
- package/dist/types/system/device.d.ts +1 -1
- package/dist/types/system/pooling.d.ts +3 -3
- package/dist/types/system/timer.d.ts +5 -5
- package/dist/types/text/bitmaptext.d.ts +1 -1
- package/dist/types/text/text.d.ts +7 -21
- package/dist/types/text/textstyle.d.ts +1 -1
- package/dist/types/utils/array.d.ts +2 -2
- package/dist/types/video/canvas/canvas_renderer.d.ts +8 -81
- package/dist/types/video/renderer.d.ts +48 -4
- package/dist/types/video/texture/atlas.d.ts +3 -3
- package/dist/types/video/texture/canvas_texture.d.ts +40 -0
- package/dist/types/video/webgl/buffer/vertex.d.ts +3 -3
- package/dist/types/video/webgl/compositors/compositor.d.ts +38 -32
- package/dist/types/video/webgl/compositors/primitive_compositor.d.ts +22 -0
- package/dist/types/video/webgl/compositors/quad_compositor.d.ts +72 -0
- package/dist/types/video/webgl/glshader.d.ts +1 -1
- package/dist/types/video/webgl/webgl_renderer.d.ts +47 -37
- package/package.json +16 -17
- package/src/application/application.js +26 -16
- package/src/application/header.js +5 -4
- package/src/application/resize.js +19 -19
- package/src/audio/audio.js +17 -19
- package/src/camera/camera2d.js +9 -9
- package/src/entity/entity.js +3 -3
- package/src/geometries/ellipse.js +5 -5
- package/src/geometries/line.js +8 -8
- package/src/geometries/path2d.js +55 -55
- package/src/geometries/point.js +1 -1
- package/src/geometries/poly.js +28 -28
- package/src/geometries/rectangle.js +7 -7
- package/src/geometries/roundrect.js +5 -5
- package/src/index.js +9 -4
- package/src/input/gamepad.js +29 -29
- package/src/input/input.js +1 -1
- package/src/input/keyboard.js +14 -14
- package/src/input/pointer.js +1 -1
- package/src/input/pointerevent.js +52 -52
- package/src/lang/console.js +2 -2
- package/src/lang/deprecated.js +1 -1
- package/src/level/level.js +8 -8
- package/src/level/tiled/TMXGroup.js +2 -2
- package/src/level/tiled/TMXLayer.js +30 -30
- package/src/level/tiled/TMXObject.js +7 -7
- package/src/level/tiled/TMXTile.js +7 -7
- package/src/level/tiled/TMXTileMap.js +18 -18
- package/src/level/tiled/TMXTileset.js +14 -14
- package/src/level/tiled/TMXTilesetGroup.js +2 -2
- package/src/level/tiled/TMXUtils.js +45 -40
- package/src/level/tiled/renderer/TMXHexagonalRenderer.js +29 -29
- package/src/level/tiled/renderer/TMXIsometricRenderer.js +20 -20
- package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +9 -9
- package/src/level/tiled/renderer/TMXRenderer.js +1 -1
- package/src/level/tiled/renderer/TMXStaggeredRenderer.js +5 -5
- package/src/loader/loader.js +6 -6
- package/src/loader/loadingscreen.js +1 -1
- package/src/loader/parser.js +12 -12
- package/src/loader/settings.js +2 -2
- package/src/math/color.js +24 -23
- package/src/math/math.js +1 -1
- package/src/math/matrix2.js +21 -21
- package/src/math/matrix3.js +51 -51
- package/src/math/observable_vector2.js +11 -11
- package/src/math/observable_vector3.js +21 -21
- package/src/math/vector2.js +10 -10
- package/src/math/vector3.js +20 -20
- package/src/particles/emitter.js +4 -4
- package/src/particles/particle.js +7 -7
- package/src/particles/settings.js +2 -2
- package/src/physics/body.js +16 -16
- package/src/physics/bounds.js +11 -11
- package/src/physics/collision.js +2 -2
- package/src/physics/detector.js +13 -13
- package/src/physics/quadtree.js +18 -18
- package/src/physics/sat.js +59 -59
- package/src/physics/world.js +3 -3
- package/src/plugin/plugin.js +8 -8
- package/src/polyfill/index.js +0 -2
- package/src/renderable/collectable.js +1 -1
- package/src/renderable/container.js +76 -58
- package/src/renderable/dragndrop.js +4 -4
- package/src/renderable/imagelayer.js +6 -5
- package/src/renderable/light2d.js +5 -5
- package/src/renderable/nineslicesprite.js +11 -11
- package/src/renderable/renderable.js +34 -12
- package/src/renderable/sprite.js +24 -24
- package/src/renderable/trigger.js +10 -8
- package/src/renderable/ui/uibaseelement.js +96 -26
- package/src/renderable/ui/uispriteelement.js +24 -24
- package/src/renderable/ui/uitextbutton.js +85 -67
- package/src/state/stage.js +6 -6
- package/src/state/state.js +14 -14
- package/src/system/device.js +2 -2
- package/src/system/event.js +1 -1
- package/src/system/pooling.js +8 -8
- package/src/system/save.js +5 -5
- package/src/system/timer.js +15 -11
- package/src/text/bitmaptext.js +19 -19
- package/src/text/bitmaptextdata.js +21 -21
- package/src/text/glyph.js +2 -2
- package/src/text/text.js +62 -91
- package/src/text/textmetrics.js +14 -14
- package/src/text/textstyle.js +3 -5
- package/src/tweens/easing.js +3 -3
- package/src/tweens/interpolation.js +7 -7
- package/src/tweens/tween.js +10 -10
- package/src/utils/agent.js +5 -5
- package/src/utils/array.js +3 -3
- package/src/utils/function.js +4 -4
- package/src/utils/string.js +2 -2
- package/src/utils/utils.js +15 -15
- package/src/video/canvas/canvas_renderer.js +39 -117
- package/src/video/renderer.js +68 -12
- package/src/video/texture/atlas.js +38 -44
- package/src/video/texture/cache.js +6 -6
- package/src/video/texture/canvas_texture.js +62 -2
- package/src/video/video.js +1 -1
- package/src/video/webgl/buffer/vertex.js +22 -18
- package/src/video/webgl/compositors/compositor.js +79 -80
- package/src/video/webgl/compositors/primitive_compositor.js +68 -0
- package/src/video/webgl/compositors/{webgl_compositor.js → quad_compositor.js} +52 -109
- package/src/video/webgl/glshader.js +6 -6
- package/src/video/webgl/shaders/primitive.vert +2 -5
- package/src/video/webgl/shaders/quad.vert +3 -1
- package/src/video/webgl/utils/attributes.js +1 -1
- package/src/video/webgl/utils/program.js +6 -6
- package/src/video/webgl/utils/uniforms.js +3 -3
- package/src/video/webgl/webgl_renderer.js +186 -179
- package/dist/melonjs.mjs/_virtual/make-built-in.js +0 -10
- package/dist/melonjs.mjs/_virtual/object-define-property.js +0 -10
- package/dist/melonjs.mjs/_virtual/object-get-own-property-descriptor.js +0 -10
- package/dist/melonjs.mjs/_virtual/object-get-own-property-names.js +0 -10
- package/dist/melonjs.mjs/_virtual/object-get-own-property-symbols.js +0 -10
- package/dist/melonjs.mjs/_virtual/object-property-is-enumerable.js +0 -10
- package/dist/melonjs.mjs/_virtual/shared.js +0 -10
- package/dist/melonjs.mjs/game.js +0 -29
- package/dist/melonjs.mjs/polyfill/console.js +0 -18
- package/dist/melonjs.mjs/polyfill/performance.js +0 -27
- package/dist/melonjs.mjs/polyfill/requestAnimationFrame.js +0 -46
- package/dist/melonjs.mjs/polyfill/roundrect.js +0 -242
- package/dist/melonjs.mjs/renderable/re_container.js +0 -1016
- package/dist/melonjs.mjs/video/utils/resize.js +0 -116
- package/dist/melonjs.mjs/video/webgl/webgl_compositor.js +0 -494
- package/src/polyfill/performance.js +0 -20
- package/src/polyfill/requestAnimationFrame.js +0 -39
|
@@ -13,6 +13,7 @@ export default class Renderer {
|
|
|
13
13
|
* @param {boolean} [options.transparent=false] - Whether to enable transparency on the canvas
|
|
14
14
|
* @param {boolean} [options.premultipliedAlpha=true] - in WebGL, whether the renderer will assume that colors have premultiplied alpha when canvas transparency is enabled
|
|
15
15
|
* @param {boolean} [options.blendMode="normal"] - the default blend mode to use ("normal", "multiply")
|
|
16
|
+
* @param {boolean} [options.depthBuffer="sorting"] - ~Experimental~ the default method to sort object on the z axis in WebGL ("sorting", "z-buffer")
|
|
16
17
|
* @param {boolean} [options.subPixel=false] - Whether to enable subpixel rendering (performance hit when enabled)
|
|
17
18
|
* @param {boolean} [options.verbose=false] - Enable the verbose mode that provides additional details as to what the renderer is doing
|
|
18
19
|
* @param {number} [options.zoomX=width] - The actual width of the canvas with scaling applied
|
|
@@ -27,6 +28,7 @@ export default class Renderer {
|
|
|
27
28
|
transparent?: boolean | undefined;
|
|
28
29
|
premultipliedAlpha?: boolean | undefined;
|
|
29
30
|
blendMode?: boolean | undefined;
|
|
31
|
+
depthBuffer?: boolean | undefined;
|
|
30
32
|
subPixel?: boolean | undefined;
|
|
31
33
|
verbose?: boolean | undefined;
|
|
32
34
|
zoomX?: number | undefined;
|
|
@@ -56,6 +58,12 @@ export default class Renderer {
|
|
|
56
58
|
* @type {boolean}
|
|
57
59
|
*/
|
|
58
60
|
isContextValid: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* the default method to sort object ("sorting", "z-buffer")
|
|
63
|
+
* @type {string}
|
|
64
|
+
* @default "sorting"
|
|
65
|
+
*/
|
|
66
|
+
depthTest: string;
|
|
59
67
|
/**
|
|
60
68
|
* The Path2D instance used by the renderer to draw primitives
|
|
61
69
|
* @type {Path2D}
|
|
@@ -188,7 +196,7 @@ export default class Renderer {
|
|
|
188
196
|
* @param {Rect|RoundRect|Polygon|Line|Ellipse} [mask] - the shape defining the mask to be applied
|
|
189
197
|
* @param {boolean} [invert=false] - either the given shape should define what is visible (default) or the opposite
|
|
190
198
|
*/
|
|
191
|
-
setMask(mask?: Polygon |
|
|
199
|
+
setMask(mask?: Polygon | Line | Ellipse | Rect | RoundRect | undefined): void;
|
|
192
200
|
/**
|
|
193
201
|
* disable (remove) the rendering mask set through setMask.
|
|
194
202
|
* @see Renderer#setMask
|
|
@@ -206,9 +214,45 @@ export default class Renderer {
|
|
|
206
214
|
*/
|
|
207
215
|
clearTint(): void;
|
|
208
216
|
/**
|
|
209
|
-
*
|
|
210
|
-
|
|
211
|
-
|
|
217
|
+
* creates a Blob object representing the last rendered frame
|
|
218
|
+
* @param {Object} [options] - An object with the following properties:
|
|
219
|
+
* @param {String} [options.type="image/png"] - A string indicating the image format
|
|
220
|
+
* @param {Number} [options.quality] - A Number between 0 and 1 indicating the image quality to be used when creating images using file formats that support lossy compression (such as image/jpeg or image/webp). A user agent will use its default quality value if this option is not specified, or if the number is outside the allowed range.
|
|
221
|
+
* @return {Promise} A Promise returning a Blob object representing the last rendered frame
|
|
222
|
+
* @example
|
|
223
|
+
* renderer.convertToBlob().then((blob) => console.log(blob));
|
|
224
|
+
*/
|
|
225
|
+
toBlob(options?: {
|
|
226
|
+
type?: string | undefined;
|
|
227
|
+
quality?: number | undefined;
|
|
228
|
+
} | undefined): Promise<any>;
|
|
229
|
+
/**
|
|
230
|
+
* creates an ImageBitmap object of the last frame rendered
|
|
231
|
+
* (not supported by standard Canvas)
|
|
232
|
+
* @param {Object} [options] - An object with the following properties:
|
|
233
|
+
* @param {String} [options.type="image/png"] - A string indicating the image format
|
|
234
|
+
* @param {Number} [options.quality] - A Number between 0 and 1 indicating the image quality to be used when creating images using file formats that support lossy compression (such as image/jpeg or image/webp). A user agent will use its default quality value if this option is not specified, or if the number is outside the allowed range.
|
|
235
|
+
* @return {Promise} A Promise returning an ImageBitmap.
|
|
236
|
+
* @example
|
|
237
|
+
* renderer.transferToImageBitmap().then((image) => console.log(image));
|
|
238
|
+
*/
|
|
239
|
+
toImageBitmap(options?: {
|
|
240
|
+
type?: string | undefined;
|
|
241
|
+
quality?: number | undefined;
|
|
242
|
+
} | undefined): Promise<any>;
|
|
243
|
+
/**
|
|
244
|
+
* returns a data URL containing a representation of the last frame rendered
|
|
245
|
+
* @param {Object} [options] - An object with the following properties:
|
|
246
|
+
* @param {String} [options.type="image/png"] - A string indicating the image format
|
|
247
|
+
* @param {Number} [options.quality] - A Number between 0 and 1 indicating the image quality to be used when creating images using file formats that support lossy compression (such as image/jpeg or image/webp). A user agent will use its default quality value if this option is not specified, or if the number is outside the allowed range.
|
|
248
|
+
* @return {Promise} A Promise returning a string containing the requested data URL.
|
|
249
|
+
* @example
|
|
250
|
+
* renderer.toDataURL().then((dataURL) => console.log(dataURL));
|
|
251
|
+
*/
|
|
252
|
+
toDataURL(options?: {
|
|
253
|
+
type?: string | undefined;
|
|
254
|
+
quality?: number | undefined;
|
|
255
|
+
} | undefined): Promise<any>;
|
|
212
256
|
}
|
|
213
257
|
import Vector2d from "../math/vector2.js";
|
|
214
258
|
import Path2D from "./../geometries/path2d.js";
|
|
@@ -152,13 +152,13 @@ export class TextureAtlas {
|
|
|
152
152
|
* ...
|
|
153
153
|
* ...
|
|
154
154
|
* // create a new "coin" sprite
|
|
155
|
-
*
|
|
155
|
+
* let sprite = game.texture.createSpriteFromName("coin.png");
|
|
156
156
|
* // set the renderable position to bottom center
|
|
157
157
|
* sprite.anchorPoint.set(0.5, 1.0);
|
|
158
158
|
* ...
|
|
159
159
|
* ...
|
|
160
160
|
* // create a 9-slice sprite
|
|
161
|
-
*
|
|
161
|
+
* let dialogPanel = game.texture.createSpriteFromName(
|
|
162
162
|
* "rpg_dialo.png",
|
|
163
163
|
* // width & height are mandatory for 9-slice sprites
|
|
164
164
|
* { width: this.width, height: this.height },
|
|
@@ -180,7 +180,7 @@ export class TextureAtlas {
|
|
|
180
180
|
* );
|
|
181
181
|
*
|
|
182
182
|
* // create a new Animated Sprite
|
|
183
|
-
*
|
|
183
|
+
* let sprite = game.texture.createAnimationFromName([
|
|
184
184
|
* "walk0001.png", "walk0002.png", "walk0003.png",
|
|
185
185
|
* "walk0004.png", "walk0005.png", "walk0006.png",
|
|
186
186
|
* "walk0007.png", "walk0008.png", "walk0009.png",
|
|
@@ -57,6 +57,46 @@ declare class CanvasTexture {
|
|
|
57
57
|
* @return {ImageData} The ImageData extracted from this CanvasTexture.
|
|
58
58
|
*/
|
|
59
59
|
getImageData(x: number, y: number, width: number, height: number): ImageData;
|
|
60
|
+
/**
|
|
61
|
+
* creates a Blob object representing the image contained in this canvas texture
|
|
62
|
+
* @param {Object} [options] - An object with the following properties:
|
|
63
|
+
* @param {String} [options.type="image/png"] - A string indicating the image format
|
|
64
|
+
* @param {Number} [options.quality] - A Number between 0 and 1 indicating the image quality to be used when creating images using file formats that support lossy compression (such as image/jpeg or image/webp). A user agent will use its default quality value if this option is not specified, or if the number is outside the allowed range.
|
|
65
|
+
* @return {Promise} A Promise returning a Blob object representing the image contained in this canvas texture
|
|
66
|
+
* @example
|
|
67
|
+
* canvasTexture.convertToBlob().then((blob) => console.log(blob));
|
|
68
|
+
*/
|
|
69
|
+
toBlob(options?: {
|
|
70
|
+
type?: string | undefined;
|
|
71
|
+
quality?: number | undefined;
|
|
72
|
+
} | undefined): Promise<any>;
|
|
73
|
+
/**
|
|
74
|
+
* creates an ImageBitmap object from the most recently rendered image of this canvas texture
|
|
75
|
+
* @param {Object} [options] - An object with the following properties:
|
|
76
|
+
* @param {String} [options.type="image/png"] - A string indicating the image format
|
|
77
|
+
* @param {Number} [options.quality] - A Number between 0 and 1 indicating the image quality to be used when creating images using file formats that support lossy compression (such as image/jpeg or image/webp). A user agent will use its default quality value if this option is not specified, or if the number is outside the allowed range.
|
|
78
|
+
* @return {Promise} A Promise returning an ImageBitmap.
|
|
79
|
+
* @example
|
|
80
|
+
* canvasTexture.transferToImageBitmap().then((bitmap) => console.log(bitmap));
|
|
81
|
+
*/
|
|
82
|
+
toImageBitmap(options?: {
|
|
83
|
+
type?: string | undefined;
|
|
84
|
+
quality?: number | undefined;
|
|
85
|
+
} | undefined): Promise<any>;
|
|
86
|
+
/**
|
|
87
|
+
* returns a data URL containing a representation of the most recently rendered image of this canvas texture
|
|
88
|
+
* (not supported by OffscreenCanvas)
|
|
89
|
+
* @param {Object} [options] - An object with the following properties:
|
|
90
|
+
* @param {String} [options.type="image/png"] - A string indicating the image format
|
|
91
|
+
* @param {Number} [options.quality] - A Number between 0 and 1 indicating the image quality to be used when creating images using file formats that support lossy compression (such as image/jpeg or image/webp). A user agent will use its default quality value if this option is not specified, or if the number is outside the allowed range.
|
|
92
|
+
* @return {Promise} A Promise returning a string containing the requested data URL.
|
|
93
|
+
* @example
|
|
94
|
+
* renderer.toDataURL().then((dataURL) => console.log(dataURL));
|
|
95
|
+
*/
|
|
96
|
+
toDataURL(options?: {
|
|
97
|
+
type?: string | undefined;
|
|
98
|
+
quality?: number | undefined;
|
|
99
|
+
} | undefined): Promise<any>;
|
|
60
100
|
/**
|
|
61
101
|
* @ignore
|
|
62
102
|
*/
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
* @ignore
|
|
6
6
|
*/
|
|
7
7
|
export default class VertexArrayBuffer {
|
|
8
|
-
constructor(vertex_size: any,
|
|
8
|
+
constructor(vertex_size: any, vertex_per_obj: any);
|
|
9
9
|
vertexSize: any;
|
|
10
|
-
|
|
10
|
+
objSize: any;
|
|
11
11
|
maxVertex: number;
|
|
12
12
|
vertexCount: number;
|
|
13
13
|
buffer: ArrayBuffer;
|
|
@@ -27,7 +27,7 @@ export default class VertexArrayBuffer {
|
|
|
27
27
|
* resize the vertex buffer, retaining its original contents
|
|
28
28
|
* @ignore
|
|
29
29
|
*/
|
|
30
|
-
resize(): VertexArrayBuffer;
|
|
30
|
+
resize(vertexCount: any): VertexArrayBuffer;
|
|
31
31
|
/**
|
|
32
32
|
* push a new vertex to the buffer
|
|
33
33
|
* @ignore
|
|
@@ -5,22 +5,37 @@
|
|
|
5
5
|
export default class Compositor {
|
|
6
6
|
/**
|
|
7
7
|
* @param {WebGLRenderer} renderer - the current WebGL renderer session
|
|
8
|
+
* @param {Object} settings - additional settings to initialize this compositors
|
|
9
|
+
* @param {object[]} attribute - an array of attributes definition
|
|
10
|
+
* @param {string} attribute.name - name of the attribute in the vertex shader
|
|
11
|
+
* @param {number} attribute.size - number of components per vertex attribute. Must be 1, 2, 3, or 4.
|
|
12
|
+
* @param {GLenum} attribute.type - data type of each component in the array
|
|
13
|
+
* @param {boolean} attribute.normalized - whether integer data values should be normalized into a certain range when being cast to a float
|
|
14
|
+
* @param {number} attribute.offset - offset in bytes of the first component in the vertex attribute array
|
|
15
|
+
* @param {object} shader - an array of attributes definition
|
|
16
|
+
* @param {string} shader.vertex - a string containing the GLSL source code to set
|
|
17
|
+
* @param {string} shader.fragment - a string containing the GLSL source code to set
|
|
8
18
|
*/
|
|
9
|
-
constructor(renderer: WebGLRenderer);
|
|
19
|
+
constructor(renderer: WebGLRenderer, settings: Object);
|
|
10
20
|
/**
|
|
11
21
|
* Initialize the compositor
|
|
12
22
|
* @ignore
|
|
13
23
|
*/
|
|
14
|
-
init(renderer: any): void;
|
|
24
|
+
init(renderer: any, settings: any): void;
|
|
15
25
|
renderer: any;
|
|
16
26
|
gl: any;
|
|
17
27
|
color: any;
|
|
18
28
|
viewMatrix: any;
|
|
19
29
|
/**
|
|
20
|
-
*
|
|
30
|
+
* the default shader created by this compositor
|
|
21
31
|
* @type {GLShader}
|
|
22
32
|
*/
|
|
23
|
-
|
|
33
|
+
defaultShader: GLShader | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* the shader currently used by this compositor
|
|
36
|
+
* @type {GLShader}
|
|
37
|
+
*/
|
|
38
|
+
currentShader: GLShader | undefined;
|
|
24
39
|
/**
|
|
25
40
|
* primitive type to render (gl.POINTS, gl.LINE_STRIP, gl.LINE_LOOP, gl.LINES, gl.TRIANGLE_STRIP, gl.TRIANGLE_FAN, gl.TRIANGLES)
|
|
26
41
|
* @type {number}
|
|
@@ -47,11 +62,27 @@ export default class Compositor {
|
|
|
47
62
|
* @type {number}
|
|
48
63
|
*/
|
|
49
64
|
vertexSize: number | undefined;
|
|
65
|
+
/**
|
|
66
|
+
* the vertex data buffer used by this compositor
|
|
67
|
+
* @type {VertexArrayBuffer}
|
|
68
|
+
*/
|
|
69
|
+
vertexData: VertexArrayBuffer | undefined;
|
|
50
70
|
/**
|
|
51
71
|
* Reset compositor internal state
|
|
52
72
|
* @ignore
|
|
53
73
|
*/
|
|
54
74
|
reset(): void;
|
|
75
|
+
/**
|
|
76
|
+
* @ignore
|
|
77
|
+
* called by the WebGL renderer when a compositor become the current one
|
|
78
|
+
*/
|
|
79
|
+
bind(): void;
|
|
80
|
+
/**
|
|
81
|
+
* Select the shader to use for compositing
|
|
82
|
+
* @see GLShader
|
|
83
|
+
* @param {GLShader} shader - a reference to a GLShader instance
|
|
84
|
+
*/
|
|
85
|
+
useShader(shader: GLShader): void;
|
|
55
86
|
/**
|
|
56
87
|
* add vertex attribute property definition to the compositor
|
|
57
88
|
* @param {string} name - name of the attribute in the vertex shader
|
|
@@ -61,41 +92,16 @@ export default class Compositor {
|
|
|
61
92
|
* @param {number} offset - offset in bytes of the first component in the vertex attribute array
|
|
62
93
|
*/
|
|
63
94
|
addAttribute(name: string, size: number, type: GLenum, normalized: boolean, offset: number): void;
|
|
64
|
-
/**
|
|
65
|
-
* Sets the viewport
|
|
66
|
-
* @param {number} x - x position of viewport
|
|
67
|
-
* @param {number} y - y position of viewport
|
|
68
|
-
* @param {number} w - width of viewport
|
|
69
|
-
* @param {number} h - height of viewport
|
|
70
|
-
*/
|
|
71
|
-
setViewport(x: number, y: number, w: number, h: number): void;
|
|
72
95
|
/**
|
|
73
96
|
* set/change the current projection matrix
|
|
74
97
|
* @param {Matrix3d} matrix
|
|
75
98
|
*/
|
|
76
99
|
setProjection(matrix: Matrix3d): void;
|
|
77
100
|
/**
|
|
78
|
-
*
|
|
79
|
-
* @see GLShader
|
|
80
|
-
* @param {GLShader} shader - a reference to a GLShader instance
|
|
81
|
-
*/
|
|
82
|
-
useShader(shader: GLShader): void;
|
|
83
|
-
/**
|
|
84
|
-
* Flush batched texture operations to the GPU
|
|
101
|
+
* Flush batched vertex data to the GPU
|
|
85
102
|
* @param {number} [mode=gl.TRIANGLES] - the GL drawing mode
|
|
86
103
|
*/
|
|
87
104
|
flush(mode?: number | undefined): void;
|
|
88
|
-
/**
|
|
89
|
-
* Clear the frame buffer
|
|
90
|
-
* @param {number} [alpha = 0.0] - the alpha value used when clearing the framebuffer
|
|
91
|
-
*/
|
|
92
|
-
clear(alpha?: number | undefined): void;
|
|
93
|
-
/**
|
|
94
|
-
* Specify the color values used when clearing color buffers. The values are clamped between 0 and 1.
|
|
95
|
-
* @param {number} [r = 0] - the red color value used when the color buffers are cleared
|
|
96
|
-
* @param {number} [g = 0] - the green color value used when the color buffers are cleared
|
|
97
|
-
* @param {number} [b = 0] - the blue color value used when the color buffers are cleared
|
|
98
|
-
* @param {number} [a = 0] - the alpha color value used when the color buffers are cleared
|
|
99
|
-
*/
|
|
100
|
-
clearColor(r?: number | undefined, g?: number | undefined, b?: number | undefined, a?: number | undefined): void;
|
|
101
105
|
}
|
|
106
|
+
import GLShader from "../glshader.js";
|
|
107
|
+
import VertexArrayBuffer from "../buffer/vertex.js";
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @classdesc
|
|
3
|
+
* A WebGL Compositor object. This class handles all of the WebGL state<br>
|
|
4
|
+
* Pushes texture regions or shape geometry into WebGL buffers, automatically flushes to GPU
|
|
5
|
+
* @augments Compositor
|
|
6
|
+
*/
|
|
7
|
+
export default class PrimitiveCompositor extends Compositor {
|
|
8
|
+
/**
|
|
9
|
+
* Initialize the compositor
|
|
10
|
+
* @ignore
|
|
11
|
+
*/
|
|
12
|
+
init(renderer: any): void;
|
|
13
|
+
/**
|
|
14
|
+
* Draw an array of vertices
|
|
15
|
+
* @param {GLenum} mode - primitive type to render (gl.POINTS, gl.LINE_STRIP, gl.LINE_LOOP, gl.LINES, gl.TRIANGLE_STRIP, gl.TRIANGLE_FAN, gl.TRIANGLES)
|
|
16
|
+
* @param {Point[]} verts - an array of vertices
|
|
17
|
+
* @param {number} [vertexCount=verts.length] - amount of points defined in the points array
|
|
18
|
+
*/
|
|
19
|
+
drawVertices(mode: GLenum, verts: Point[], vertexCount?: number | undefined): void;
|
|
20
|
+
mode: any;
|
|
21
|
+
}
|
|
22
|
+
import Compositor from "./compositor.js";
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @classdesc
|
|
3
|
+
* A WebGL Compositor object. This class handles all of the WebGL state<br>
|
|
4
|
+
* Pushes texture regions or shape geometry into WebGL buffers, automatically flushes to GPU
|
|
5
|
+
* @augments Compositor
|
|
6
|
+
*/
|
|
7
|
+
export default class QuadCompositor extends Compositor {
|
|
8
|
+
/**
|
|
9
|
+
* Initialize the compositor
|
|
10
|
+
* @ignore
|
|
11
|
+
*/
|
|
12
|
+
init(renderer: any): void;
|
|
13
|
+
currentTextureUnit: any;
|
|
14
|
+
boundTextures: any[] | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* Create a WebGL texture from an image
|
|
17
|
+
* @param {number} unit - Destination texture unit
|
|
18
|
+
* @param {Image|HTMLCanvasElement|ImageData|Uint8Array[]|Float32Array[]} [pixels=null] - Source image
|
|
19
|
+
* @param {number} filter - gl.LINEAR or gl.NEAREST
|
|
20
|
+
* @param {string} [repeat="no-repeat"] - Image repeat behavior (see {@link ImageLayer#repeat})
|
|
21
|
+
* @param {number} [w=pixels.width] - Source image width (Only use with UInt8Array[] or Float32Array[] source image)
|
|
22
|
+
* @param {number} [h=pixels.height] - Source image height (Only use with UInt8Array[] or Float32Array[] source image)
|
|
23
|
+
* @param {boolean} [premultipliedAlpha=true] - Multiplies the alpha channel into the other color channels
|
|
24
|
+
* @param {boolean} [mipmap=true] - Whether mipmap levels should be generated for this texture
|
|
25
|
+
* @returns {WebGLTexture} a WebGL texture
|
|
26
|
+
*/
|
|
27
|
+
createTexture2D(unit: number, pixels?: HTMLCanvasElement | ImageData | (new (width?: number | undefined, height?: number | undefined) => HTMLImageElement) | Uint8Array[] | Float32Array[] | undefined, filter: number, repeat?: string | undefined, w?: number | undefined, h?: number | undefined, premultipliedAlpha?: boolean | undefined, mipmap?: boolean | undefined): WebGLTexture;
|
|
28
|
+
/**
|
|
29
|
+
* delete the given WebGL texture
|
|
30
|
+
* @param {WebGLTexture} [texture] - a WebGL texture to delete
|
|
31
|
+
* @param {number} [unit] - Texture unit to delete
|
|
32
|
+
*/
|
|
33
|
+
deleteTexture2D(texture?: WebGLTexture | undefined): void;
|
|
34
|
+
/**
|
|
35
|
+
* returns the WebGL texture associated to the given texture unit
|
|
36
|
+
* @param {number} unit - Texture unit to which a texture is bound
|
|
37
|
+
* @returns {WebGLTexture} texture a WebGL texture
|
|
38
|
+
*/
|
|
39
|
+
getTexture2D(unit: number): WebGLTexture;
|
|
40
|
+
/**
|
|
41
|
+
* assign the given WebGL texture to the current batch
|
|
42
|
+
* @param {WebGLTexture} texture - a WebGL texture
|
|
43
|
+
* @param {number} unit - Texture unit to which the given texture is bound
|
|
44
|
+
*/
|
|
45
|
+
bindTexture2D(texture: WebGLTexture, unit: number): void;
|
|
46
|
+
/**
|
|
47
|
+
* unbind the given WebGL texture, forcing it to be reuploaded
|
|
48
|
+
* @param {WebGLTexture} [texture] - a WebGL texture
|
|
49
|
+
* @param {number} [unit] - a WebGL texture
|
|
50
|
+
* @returns {number} unit the unit number that was associated with the given texture
|
|
51
|
+
*/
|
|
52
|
+
unbindTexture2D(texture?: WebGLTexture | undefined, unit?: number | undefined): number;
|
|
53
|
+
/**
|
|
54
|
+
* @ignore
|
|
55
|
+
*/
|
|
56
|
+
uploadTexture(texture: any, w: any, h: any, force?: boolean): any;
|
|
57
|
+
/**
|
|
58
|
+
* Add a textured quad
|
|
59
|
+
* @param {TextureAtlas} texture - Source texture atlas
|
|
60
|
+
* @param {number} x - Destination x-coordinate
|
|
61
|
+
* @param {number} y - Destination y-coordinate
|
|
62
|
+
* @param {number} w - Destination width
|
|
63
|
+
* @param {number} h - Destination height
|
|
64
|
+
* @param {number} u0 - Texture UV (u0) value.
|
|
65
|
+
* @param {number} v0 - Texture UV (v0) value.
|
|
66
|
+
* @param {number} u1 - Texture UV (u1) value.
|
|
67
|
+
* @param {number} v1 - Texture UV (v1) value.
|
|
68
|
+
* @param {number} tint - tint color to be applied to the texture in UINT32 (argb) format
|
|
69
|
+
*/
|
|
70
|
+
addQuad(texture: TextureAtlas, x: number, y: number, w: number, h: number, u0: number, v0: number, u1: number, v1: number, tint: number): void;
|
|
71
|
+
}
|
|
72
|
+
import Compositor from "./compositor.js";
|
|
@@ -11,7 +11,7 @@ export default class GLShader {
|
|
|
11
11
|
* @see https://developer.mozilla.org/en-US/docs/Games/Techniques/3D_on_the_web/GLSL_Shaders
|
|
12
12
|
* @example
|
|
13
13
|
* // create a basic shader
|
|
14
|
-
*
|
|
14
|
+
* let myShader = new me.GLShader(
|
|
15
15
|
* // WebGL rendering context
|
|
16
16
|
* gl,
|
|
17
17
|
* // vertex shader
|
|
@@ -15,10 +15,11 @@ export default class WebGLRenderer extends Renderer {
|
|
|
15
15
|
* @param {boolean} [options.premultipliedAlpha=true] - in WebGL, whether the renderer will assume that colors have premultiplied alpha when canvas transparency is enabled
|
|
16
16
|
* @param {boolean} [options.subPixel=false] - Whether to enable subpixel renderering (performance hit when enabled)
|
|
17
17
|
* @param {boolean} [options.preferWebGL1=false] - if true the renderer will only use WebGL 1
|
|
18
|
+
* @param {boolean} [options.depthTest="sorting"] - ~Experimental~ the default method to sort object on the z axis in WebGL ("sorting", "z-buffer")
|
|
18
19
|
* @param {string} [options.powerPreference="default"] - a hint to the user agent indicating what configuration of GPU is suitable for the WebGL context ("default", "high-performance", "low-power"). To be noted that Safari and Chrome (since version 80) both default to "low-power" to save battery life and improve the user experience on these dual-GPU machines.
|
|
19
20
|
* @param {number} [options.zoomX=width] - The actual width of the canvas with scaling applied
|
|
20
21
|
* @param {number} [options.zoomY=height] - The actual height of the canvas with scaling applied
|
|
21
|
-
* @param {
|
|
22
|
+
* @param {Compositor} [options.compositor] - A class that implements the compositor API for sprite rendering
|
|
22
23
|
*/
|
|
23
24
|
constructor(options: {
|
|
24
25
|
width: number;
|
|
@@ -30,10 +31,11 @@ export default class WebGLRenderer extends Renderer {
|
|
|
30
31
|
premultipliedAlpha?: boolean | undefined;
|
|
31
32
|
subPixel?: boolean | undefined;
|
|
32
33
|
preferWebGL1?: boolean | undefined;
|
|
34
|
+
depthTest?: boolean | undefined;
|
|
33
35
|
powerPreference?: string | undefined;
|
|
34
36
|
zoomX?: number | undefined;
|
|
35
37
|
zoomY?: number | undefined;
|
|
36
|
-
compositor?:
|
|
38
|
+
compositor?: any;
|
|
37
39
|
});
|
|
38
40
|
/**
|
|
39
41
|
* The WebGL version used by this renderer (1 or 2)
|
|
@@ -45,14 +47,14 @@ export default class WebGLRenderer extends Renderer {
|
|
|
45
47
|
/**
|
|
46
48
|
* The vendor string of the underlying graphics driver.
|
|
47
49
|
* @type {string}
|
|
48
|
-
* @default
|
|
50
|
+
* @default undefined
|
|
49
51
|
* @readonly
|
|
50
52
|
*/
|
|
51
53
|
readonly GPUVendor: string;
|
|
52
54
|
/**
|
|
53
55
|
* The renderer string of the underlying graphics driver.
|
|
54
56
|
* @type {string}
|
|
55
|
-
* @default
|
|
57
|
+
* @default undefined
|
|
56
58
|
* @readonly
|
|
57
59
|
*/
|
|
58
60
|
readonly GPURenderer: string;
|
|
@@ -63,6 +65,11 @@ export default class WebGLRenderer extends Renderer {
|
|
|
63
65
|
*/
|
|
64
66
|
context: WebGLRenderingContext;
|
|
65
67
|
gl: WebGLRenderingContext;
|
|
68
|
+
/**
|
|
69
|
+
* the vertex buffer used by this WebGL Renderer
|
|
70
|
+
* @type {WebGLBuffer}
|
|
71
|
+
*/
|
|
72
|
+
vertexBuffer: WebGLBuffer;
|
|
66
73
|
/**
|
|
67
74
|
* Maximum number of texture unit supported under the current context
|
|
68
75
|
* @type {number}
|
|
@@ -95,51 +102,63 @@ export default class WebGLRenderer extends Renderer {
|
|
|
95
102
|
* @type {WebGLCompositor}
|
|
96
103
|
*/
|
|
97
104
|
currentCompositor: WebGLCompositor;
|
|
105
|
+
/**
|
|
106
|
+
* a reference to the current shader program used by the renderer
|
|
107
|
+
* @type {WebGLProgram}
|
|
108
|
+
*/
|
|
109
|
+
currentProgram: WebGLProgram;
|
|
98
110
|
/**
|
|
99
111
|
* The list of active compositors
|
|
100
112
|
* @type {Map<WebGLCompositor>}
|
|
101
113
|
*/
|
|
102
114
|
compositors: Map<WebGLCompositor, any>;
|
|
115
|
+
depthTest: boolean | undefined;
|
|
116
|
+
customShader: any;
|
|
103
117
|
cache: TextureCache;
|
|
118
|
+
/**
|
|
119
|
+
* add a new compositor to this renderer
|
|
120
|
+
* @param {Compositor} compositor - a compositor instance
|
|
121
|
+
* @param {String} name - a name uniquely identifying this compositor
|
|
122
|
+
* @param {Boolean} [activate=false] - true if the given compositor should be set as the active one
|
|
123
|
+
*/
|
|
124
|
+
addCompositor(compositor: Compositor, name?: string, activate?: boolean | undefined): void;
|
|
104
125
|
/**
|
|
105
126
|
* set the active compositor for this renderer
|
|
106
|
-
* @param {
|
|
127
|
+
* @param {String} name - a compositor name
|
|
128
|
+
* @param {GLShader} [shader] - an optional shader program to be used, instead of the default one, when activating the compositor
|
|
129
|
+
* @return {Compositor} an instance to the current active compositor
|
|
107
130
|
*/
|
|
108
|
-
setCompositor(
|
|
131
|
+
setCompositor(name?: string, shader?: any): Compositor;
|
|
109
132
|
/**
|
|
110
133
|
* Reset the gl transform to identity
|
|
111
134
|
*/
|
|
112
135
|
resetTransform(): void;
|
|
113
|
-
/**
|
|
114
|
-
* @ignore
|
|
115
|
-
*/
|
|
116
|
-
createFontTexture(cache: any): void;
|
|
117
|
-
/**
|
|
118
|
-
* @ignore
|
|
119
|
-
*/
|
|
120
|
-
fontContext2D: CanvasRenderingContext2D | undefined;
|
|
121
|
-
/**
|
|
122
|
-
* @ignore
|
|
123
|
-
*/
|
|
124
|
-
fontTexture: TextureAtlas | undefined;
|
|
125
136
|
/**
|
|
126
137
|
* Create a pattern with the specified repetition
|
|
127
|
-
* @param {
|
|
138
|
+
* @param {HTMLImageElement|SVGImageElement|HTMLVideoElement|HTMLCanvasElement|ImageBitmap|OffscreenCanvas|VideoFrame} image - Source image to be used as the pattern's image
|
|
128
139
|
* @param {string} repeat - Define how the pattern should be repeated
|
|
129
140
|
* @returns {TextureAtlas}
|
|
130
141
|
* @see ImageLayer#repeat
|
|
131
142
|
* @example
|
|
132
|
-
*
|
|
133
|
-
*
|
|
134
|
-
*
|
|
135
|
-
*
|
|
143
|
+
* let tileable = renderer.createPattern(image, "repeat");
|
|
144
|
+
* let horizontal = renderer.createPattern(image, "repeat-x");
|
|
145
|
+
* let vertical = renderer.createPattern(image, "repeat-y");
|
|
146
|
+
* let basic = renderer.createPattern(image, "no-repeat");
|
|
136
147
|
*/
|
|
137
|
-
createPattern(image:
|
|
148
|
+
createPattern(image: HTMLImageElement | SVGImageElement | HTMLVideoElement | HTMLCanvasElement | ImageBitmap | OffscreenCanvas | VideoFrame, repeat: string): TextureAtlas;
|
|
138
149
|
/**
|
|
139
150
|
* set/change the current projection matrix (WebGL only)
|
|
140
151
|
* @param {Matrix3d} matrix
|
|
141
152
|
*/
|
|
142
153
|
setProjection(matrix: Matrix3d): void;
|
|
154
|
+
/**
|
|
155
|
+
* Sets the WebGL viewport, which specifies the affine transformation of x and y from normalized device coordinates to window coordinates
|
|
156
|
+
* @param {number} [x = 0] - x the horizontal coordinate for the lower left corner of the viewport origin
|
|
157
|
+
* @param {number} [y = 0] - y the vertical coordinate for the lower left corner of the viewport origin
|
|
158
|
+
* @param {number} [w = width of the canvas] - the width of viewport
|
|
159
|
+
* @param {number} [h = height of the canvas] - the height of viewport
|
|
160
|
+
*/
|
|
161
|
+
setViewport(x?: number | undefined, y?: number | undefined, w?: number | undefined, h?: number | undefined): void;
|
|
143
162
|
/**
|
|
144
163
|
* Clears the gl context with the given color.
|
|
145
164
|
* @param {Color|string} [color="#000000"] - CSS color.
|
|
@@ -154,13 +173,9 @@ export default class WebGLRenderer extends Renderer {
|
|
|
154
173
|
* @param {number} height - The rectangle's height.
|
|
155
174
|
*/
|
|
156
175
|
clearRect(x: number, y: number, width: number, height: number): void;
|
|
157
|
-
/**
|
|
158
|
-
* @ignore
|
|
159
|
-
*/
|
|
160
|
-
drawFont(bounds: any): void;
|
|
161
176
|
/**
|
|
162
177
|
* Draw an image to the gl context
|
|
163
|
-
* @param {
|
|
178
|
+
* @param {HTMLImageElement|SVGImageElement|HTMLVideoElement|HTMLCanvasElement|ImageBitmap|OffscreenCanvas|VideoFrame} image - An element to draw into the context.
|
|
164
179
|
* @param {number} sx - The X coordinate of the top left corner of the sub-rectangle of the source image to draw into the destination context.
|
|
165
180
|
* @param {number} sy - The Y coordinate of the top left corner of the sub-rectangle of the source image to draw into the destination context.
|
|
166
181
|
* @param {number} sw - The width of the sub-rectangle of the source image to draw into the destination context. If not specified, the entire rectangle from the coordinates specified by sx and sy to the bottom-right corner of the image is used.
|
|
@@ -177,7 +192,7 @@ export default class WebGLRenderer extends Renderer {
|
|
|
177
192
|
* // Clip the image and position the clipped part on the canvas:
|
|
178
193
|
* renderer.drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight);
|
|
179
194
|
*/
|
|
180
|
-
drawImage(image:
|
|
195
|
+
drawImage(image: HTMLImageElement | SVGImageElement | HTMLVideoElement | HTMLCanvasElement | ImageBitmap | OffscreenCanvas | VideoFrame, sx: number, sy: number, sw: number, sh: number, dx: number, dy: number, dw: number, dh: number): void;
|
|
181
196
|
/**
|
|
182
197
|
* Draw a pattern within the given rectangle.
|
|
183
198
|
* @param {TextureAtlas} pattern - Pattern object
|
|
@@ -192,9 +207,10 @@ export default class WebGLRenderer extends Renderer {
|
|
|
192
207
|
* Returns the WebGL Context object of the given canvas element
|
|
193
208
|
* @param {HTMLCanvasElement} canvas
|
|
194
209
|
* @param {boolean} [transparent=false] - use true to enable transparency
|
|
210
|
+
* @param {boolean} [depth=false] - use true to enable depth buffer testing
|
|
195
211
|
* @returns {WebGLRenderingContext}
|
|
196
212
|
*/
|
|
197
|
-
getContextGL(canvas: HTMLCanvasElement, transparent?: boolean | undefined): WebGLRenderingContext;
|
|
213
|
+
getContextGL(canvas: HTMLCanvasElement, transparent?: boolean | undefined, depth?: boolean | undefined): WebGLRenderingContext;
|
|
198
214
|
/**
|
|
199
215
|
* Returns the WebGLContext instance for the renderer
|
|
200
216
|
* return a reference to the system 2d Context
|
|
@@ -218,11 +234,6 @@ export default class WebGLRenderer extends Renderer {
|
|
|
218
234
|
*/
|
|
219
235
|
setBlendMode(mode?: string | undefined, gl?: WebGLRenderingContext | undefined): void;
|
|
220
236
|
currentBlendMode: any;
|
|
221
|
-
/**
|
|
222
|
-
* return a reference to the font 2d Context
|
|
223
|
-
* @ignore
|
|
224
|
-
*/
|
|
225
|
-
getFontContext(): CanvasRenderingContext2D | undefined;
|
|
226
237
|
/**
|
|
227
238
|
* restores the canvas context
|
|
228
239
|
*/
|
|
@@ -423,7 +434,6 @@ export default class WebGLRenderer extends Renderer {
|
|
|
423
434
|
}
|
|
424
435
|
import Renderer from "./../renderer.js";
|
|
425
436
|
import Matrix2d from "./../../math/matrix2.js";
|
|
426
|
-
import WebGLCompositor from "./compositors/webgl_compositor.js";
|
|
427
437
|
import TextureCache from "./../texture/cache.js";
|
|
428
438
|
import { TextureAtlas } from "./../texture/atlas.js";
|
|
429
439
|
import Color from "./../../math/color.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "melonjs",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "15.1.0",
|
|
4
4
|
"description": "melonJS Game Engine",
|
|
5
5
|
"homepage": "http://www.melonjs.org/",
|
|
6
6
|
"type": "module",
|
|
@@ -52,39 +52,38 @@
|
|
|
52
52
|
"CHANGELOG"
|
|
53
53
|
],
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@teppeis/multimaps": "^
|
|
56
|
-
"core-js": "^3.
|
|
55
|
+
"@teppeis/multimaps": "^3.0.0",
|
|
56
|
+
"core-js": "^3.30.0",
|
|
57
57
|
"earcut": "2.2.4",
|
|
58
58
|
"eventemitter3": "^5.0.0",
|
|
59
59
|
"howler": "2.2.3"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
|
-
"@babel/eslint-parser": "^7.
|
|
62
|
+
"@babel/eslint-parser": "^7.21.3",
|
|
63
63
|
"@babel/plugin-syntax-import-assertions": "^7.20.0",
|
|
64
|
-
"@fastify/static": "^6.
|
|
64
|
+
"@fastify/static": "^6.10.0",
|
|
65
65
|
"@melonjs/webdoc-theme": "^1.1.1",
|
|
66
66
|
"@rollup/plugin-commonjs": "^24.0.1",
|
|
67
67
|
"@rollup/plugin-image": "^3.0.2",
|
|
68
|
-
"@rollup/plugin-node-resolve": "^15.0.
|
|
68
|
+
"@rollup/plugin-node-resolve": "^15.0.2",
|
|
69
69
|
"@rollup/plugin-replace": "^5.0.2",
|
|
70
|
-
"@types/offscreencanvas": "^2019.7.0",
|
|
71
70
|
"@webdoc/cli": "^2.2.0",
|
|
72
|
-
"chromedriver": "^
|
|
71
|
+
"chromedriver": "^112.0.0",
|
|
73
72
|
"cross-env": "^7.0.3",
|
|
74
73
|
"del-cli": "^5.0.0",
|
|
75
|
-
"eslint": "^8.
|
|
76
|
-
"eslint-plugin-jsdoc": "^40.
|
|
77
|
-
"expect": "^29.
|
|
78
|
-
"expect-mocha-image-snapshot": "^3.0.
|
|
79
|
-
"fastify": "^4.
|
|
74
|
+
"eslint": "^8.37.0",
|
|
75
|
+
"eslint-plugin-jsdoc": "^40.1.1",
|
|
76
|
+
"expect": "^29.5.0",
|
|
77
|
+
"expect-mocha-image-snapshot": "^3.0.8",
|
|
78
|
+
"fastify": "^4.15.0",
|
|
80
79
|
"mocha": "^10.2.0",
|
|
81
80
|
"npm-self-link": "^1.1.7",
|
|
82
|
-
"puppeteer": "^19.
|
|
83
|
-
"rollup": "^3.
|
|
81
|
+
"puppeteer": "^19.8.5",
|
|
82
|
+
"rollup": "^3.20.2",
|
|
84
83
|
"rollup-plugin-bundle-size": "^1.0.3",
|
|
85
84
|
"rollup-plugin-string": "^3.0.0",
|
|
86
|
-
"terser": "^5.16.
|
|
87
|
-
"typescript": "^
|
|
85
|
+
"terser": "^5.16.8",
|
|
86
|
+
"typescript": "^5.0.3"
|
|
88
87
|
},
|
|
89
88
|
"scripts": {
|
|
90
89
|
"build": "npm run lint && rollup -c --silent",
|