melonjs 14.3.0 → 14.5.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/README.md +11 -55
- package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +2 -2
- package/dist/melonjs.mjs/_virtual/arraymultimap.js +2 -2
- package/dist/melonjs.mjs/_virtual/earcut.js +2 -2
- package/dist/melonjs.mjs/_virtual/howler.js +2 -2
- package/dist/melonjs.mjs/_virtual/index.js +2 -2
- package/dist/melonjs.mjs/_virtual/index2.js +2 -2
- package/dist/melonjs.mjs/_virtual/multimap.js +2 -2
- package/dist/melonjs.mjs/_virtual/setmultimap.js +2 -2
- package/dist/melonjs.mjs/application/application.js +8 -21
- package/dist/melonjs.mjs/application/header.js +2 -2
- package/dist/melonjs.mjs/application/resize.js +4 -2
- package/dist/melonjs.mjs/application/settings.js +2 -2
- package/dist/melonjs.mjs/audio/audio.js +5 -5
- package/dist/melonjs.mjs/camera/camera2d.js +2 -2
- package/dist/melonjs.mjs/const.js +32 -0
- package/dist/melonjs.mjs/entity/entity.js +44 -10
- package/dist/melonjs.mjs/geometries/ellipse.js +3 -4
- package/dist/melonjs.mjs/geometries/line.js +2 -2
- package/dist/melonjs.mjs/geometries/path2d.js +19 -43
- package/dist/melonjs.mjs/geometries/point.js +2 -7
- package/dist/melonjs.mjs/geometries/poly.js +3 -6
- package/dist/melonjs.mjs/geometries/rectangle.js +14 -10
- package/dist/melonjs.mjs/geometries/roundrect.js +2 -2
- package/dist/melonjs.mjs/index.js +11 -9
- package/dist/melonjs.mjs/input/gamepad.js +11 -17
- package/dist/melonjs.mjs/input/input.js +2 -2
- package/dist/melonjs.mjs/input/keyboard.js +2 -2
- package/dist/melonjs.mjs/input/pointer.js +2 -2
- package/dist/melonjs.mjs/input/pointerevent.js +3 -17
- package/dist/melonjs.mjs/lang/console.js +44 -0
- package/dist/melonjs.mjs/lang/deprecated.js +4 -40
- package/dist/melonjs.mjs/level/level.js +4 -4
- package/dist/melonjs.mjs/level/tiled/TMXGroup.js +2 -23
- package/dist/melonjs.mjs/level/tiled/TMXLayer.js +67 -64
- package/dist/melonjs.mjs/level/tiled/TMXObject.js +2 -64
- package/dist/melonjs.mjs/level/tiled/TMXTile.js +10 -26
- package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +21 -83
- package/dist/melonjs.mjs/level/tiled/TMXTileset.js +6 -20
- package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +3 -10
- package/dist/melonjs.mjs/level/tiled/TMXUtils.js +37 -14
- package/dist/melonjs.mjs/level/tiled/constants.js +17 -0
- package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +7 -8
- package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +3 -6
- package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +2 -2
- package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +2 -14
- package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +2 -2
- package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +38 -0
- package/dist/melonjs.mjs/loader/cache.js +24 -0
- package/dist/melonjs.mjs/loader/loader.js +332 -715
- package/dist/melonjs.mjs/loader/loadingscreen.js +5 -5
- package/dist/melonjs.mjs/loader/melonjs_logo.png.js +2 -2
- package/dist/melonjs.mjs/loader/parser.js +281 -0
- package/dist/melonjs.mjs/loader/settings.js +91 -0
- package/dist/melonjs.mjs/math/color.js +2 -2
- package/dist/melonjs.mjs/math/math.js +2 -2
- package/dist/melonjs.mjs/math/matrix2.js +8 -10
- package/dist/melonjs.mjs/math/matrix3.js +19 -22
- package/dist/melonjs.mjs/math/observable_vector2.js +4 -4
- package/dist/melonjs.mjs/math/observable_vector3.js +4 -5
- package/dist/melonjs.mjs/math/vector2.js +4 -4
- package/dist/melonjs.mjs/math/vector3.js +4 -5
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/arraymultimap.js +2 -2
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/index.js +2 -2
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/multimap.js +2 -2
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/src/setmultimap.js +2 -2
- package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +2 -2
- package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +2 -2
- package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +2 -2
- package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +2 -2
- package/dist/melonjs.mjs/particles/emitter.js +4 -4
- package/dist/melonjs.mjs/particles/particle.js +2 -2
- package/dist/melonjs.mjs/particles/settings.js +2 -2
- package/dist/melonjs.mjs/physics/body.js +19 -15
- package/dist/melonjs.mjs/physics/bounds.js +19 -71
- package/dist/melonjs.mjs/physics/collision.js +3 -3
- package/dist/melonjs.mjs/physics/detector.js +2 -2
- package/dist/melonjs.mjs/physics/quadtree.js +2 -2
- package/dist/melonjs.mjs/physics/response.js +2 -2
- package/dist/melonjs.mjs/physics/sat.js +2 -2
- package/dist/melonjs.mjs/physics/world.js +2 -2
- package/dist/melonjs.mjs/plugin/plugin.js +4 -4
- package/dist/melonjs.mjs/renderable/collectable.js +2 -2
- package/dist/melonjs.mjs/renderable/colorlayer.js +2 -2
- package/dist/melonjs.mjs/renderable/container.js +26 -20
- package/dist/melonjs.mjs/renderable/dragndrop.js +2 -2
- package/dist/melonjs.mjs/renderable/imagelayer.js +8 -2
- package/dist/melonjs.mjs/renderable/light2d.js +2 -2
- package/dist/melonjs.mjs/renderable/nineslicesprite.js +2 -2
- package/dist/melonjs.mjs/renderable/renderable.js +127 -106
- package/dist/melonjs.mjs/renderable/sprite.js +34 -55
- package/dist/melonjs.mjs/renderable/trigger.js +2 -2
- package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +2 -2
- package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +2 -2
- package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +2 -2
- package/dist/melonjs.mjs/state/stage.js +2 -2
- package/dist/melonjs.mjs/state/state.js +3 -3
- package/dist/melonjs.mjs/system/device.js +2 -2
- package/dist/melonjs.mjs/system/dom.js +2 -2
- package/dist/melonjs.mjs/system/event.js +2 -2
- package/dist/melonjs.mjs/system/platform.js +2 -2
- package/dist/melonjs.mjs/system/pooling.js +9 -19
- package/dist/melonjs.mjs/system/save.js +2 -2
- package/dist/melonjs.mjs/system/timer.js +2 -2
- package/dist/melonjs.mjs/text/bitmaptext.js +67 -9
- package/dist/melonjs.mjs/text/bitmaptextdata.js +2 -2
- package/dist/melonjs.mjs/text/glyph.js +2 -2
- package/dist/melonjs.mjs/text/text.js +2 -2
- package/dist/melonjs.mjs/text/textmetrics.js +2 -2
- package/dist/melonjs.mjs/text/textstyle.js +2 -2
- package/dist/melonjs.mjs/tweens/easing.js +2 -2
- package/dist/melonjs.mjs/tweens/interpolation.js +2 -2
- package/dist/melonjs.mjs/tweens/tween.js +2 -2
- package/dist/melonjs.mjs/utils/agent.js +2 -2
- package/dist/melonjs.mjs/utils/array.js +2 -2
- package/dist/melonjs.mjs/utils/file.js +2 -2
- package/dist/melonjs.mjs/utils/function.js +2 -2
- package/dist/melonjs.mjs/utils/string.js +3 -3
- package/dist/melonjs.mjs/utils/utils.js +3 -5
- package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +2 -2
- package/dist/melonjs.mjs/video/renderer.js +2 -2
- package/dist/melonjs.mjs/video/texture/atlas.js +11 -10
- package/dist/melonjs.mjs/video/texture/cache.js +4 -4
- package/dist/melonjs.mjs/video/texture/canvas_texture.js +2 -2
- package/dist/melonjs.mjs/video/utils/autodetect.js +2 -2
- package/dist/melonjs.mjs/video/video.js +17 -14
- package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +2 -2
- package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +235 -0
- package/{src/video/webgl → dist/melonjs.mjs/video/webgl/compositors}/webgl_compositor.js +28 -205
- package/dist/melonjs.mjs/video/webgl/glshader.js +2 -2
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +2 -2
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +2 -2
- package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +2 -2
- 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 +2 -2
- package/dist/melonjs.mjs/video/webgl/utils/program.js +2 -2
- package/dist/melonjs.mjs/video/webgl/utils/string.js +2 -2
- package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +2 -2
- package/dist/melonjs.mjs/video/webgl/webgl_compositor.js +3 -3
- package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +3 -3
- package/dist/melonjs.module.js +19807 -19896
- package/dist/types/application/application.d.ts +5 -1
- package/dist/types/application/resize.d.ts +1 -0
- package/dist/types/const.d.ts +21 -0
- package/dist/types/entity/entity.d.ts +2 -2
- package/dist/types/geometries/path2d.d.ts +5 -31
- package/dist/types/geometries/point.d.ts +2 -7
- package/dist/types/geometries/poly.d.ts +0 -1
- package/dist/types/index.d.ts +3 -2
- package/dist/types/lang/console.d.ts +7 -0
- package/dist/types/lang/deprecated.d.ts +0 -8
- package/dist/types/level/tiled/TMXGroup.d.ts +7 -28
- package/dist/types/level/tiled/TMXLayer.d.ts +25 -47
- package/dist/types/level/tiled/TMXObject.d.ts +20 -82
- package/dist/types/level/tiled/TMXTile.d.ts +11 -25
- package/dist/types/level/tiled/TMXTileMap.d.ts +18 -56
- package/dist/types/level/tiled/TMXTileset.d.ts +7 -21
- package/dist/types/level/tiled/TMXTilesetGroup.d.ts +3 -9
- package/dist/types/level/tiled/constants.d.ts +5 -0
- package/dist/types/level/tiled/renderer/TMXHexagonalRenderer.d.ts +2 -6
- package/dist/types/level/tiled/renderer/TMXIsometricRenderer.d.ts +2 -6
- package/dist/types/level/tiled/renderer/TMXRenderer.d.ts +6 -18
- package/dist/types/level/tiled/renderer/autodetect.d.ts +9 -0
- package/dist/types/loader/cache.d.ts +7 -0
- package/dist/types/loader/loader.d.ts +166 -181
- package/dist/types/loader/parser.d.ts +41 -0
- package/dist/types/loader/settings.d.ts +57 -0
- package/dist/types/particles/emitter.d.ts +4 -4
- package/dist/types/physics/bounds.d.ts +29 -84
- package/dist/types/renderable/container.d.ts +0 -11
- package/dist/types/renderable/renderable.d.ts +37 -31
- package/dist/types/renderable/sprite.d.ts +3 -3
- package/dist/types/state/state.d.ts +1 -1
- package/dist/types/system/pooling.d.ts +2 -2
- package/dist/types/video/renderer.d.ts +1 -1
- package/dist/types/video/video.d.ts +7 -6
- package/dist/types/video/webgl/compositors/compositor.d.ts +101 -0
- package/dist/types/video/webgl/compositors/webgl_compositor.d.ts +86 -0
- package/dist/types/video/webgl/webgl_compositor.d.ts +2 -3
- package/dist/types/video/webgl/webgl_renderer.d.ts +1 -1
- package/package.json +17 -16
- package/src/application/application.js +6 -19
- package/src/application/resize.js +2 -0
- package/src/audio/audio.js +3 -3
- package/src/const.js +23 -0
- package/src/entity/entity.js +42 -8
- package/src/geometries/ellipse.js +1 -2
- package/src/geometries/path2d.js +17 -41
- package/src/geometries/point.js +0 -5
- package/src/geometries/poly.js +1 -4
- package/src/geometries/rectangle.js +12 -8
- package/src/index.js +4 -2
- package/src/input/gamepad.js +9 -15
- package/src/input/pointerevent.js +1 -15
- package/src/lang/console.js +36 -0
- package/src/lang/deprecated.js +2 -37
- package/src/level/level.js +2 -2
- package/src/level/tiled/TMXGroup.js +0 -21
- package/src/level/tiled/TMXLayer.js +65 -62
- package/src/level/tiled/TMXObject.js +0 -62
- package/src/level/tiled/TMXTile.js +8 -24
- package/src/level/tiled/TMXTileMap.js +19 -81
- package/src/level/tiled/TMXTileset.js +4 -18
- package/src/level/tiled/TMXTilesetGroup.js +1 -9
- package/src/level/tiled/TMXUtils.js +38 -15
- package/src/level/tiled/constants.js +8 -0
- package/src/level/tiled/renderer/TMXHexagonalRenderer.js +5 -6
- package/src/level/tiled/renderer/TMXIsometricRenderer.js +1 -4
- package/src/level/tiled/renderer/TMXRenderer.js +0 -12
- package/src/level/tiled/renderer/autodetect.js +29 -0
- package/src/loader/cache.js +16 -0
- package/src/loader/loader.js +339 -709
- package/src/loader/loadingscreen.js +3 -3
- package/src/loader/parser.js +279 -0
- package/src/loader/settings.js +85 -0
- package/src/math/matrix2.js +6 -8
- package/src/math/matrix3.js +17 -20
- package/src/math/observable_vector2.js +2 -2
- package/src/math/observable_vector3.js +2 -3
- package/src/math/vector2.js +2 -2
- package/src/math/vector3.js +2 -3
- package/src/particles/emitter.js +2 -2
- package/src/physics/body.js +17 -13
- package/src/physics/bounds.js +17 -69
- package/src/physics/collision.js +1 -1
- package/src/renderable/container.js +24 -18
- package/src/renderable/imagelayer.js +6 -0
- package/src/renderable/renderable.js +125 -104
- package/src/renderable/sprite.js +32 -53
- package/src/state/state.js +1 -1
- package/src/system/pooling.js +7 -17
- package/src/text/bitmaptext.js +65 -7
- package/src/utils/string.js +1 -1
- package/src/utils/utils.js +1 -3
- package/src/video/texture/atlas.js +9 -8
- package/src/video/texture/cache.js +2 -2
- package/src/video/video.js +15 -12
- package/src/video/webgl/compositors/compositor.js +227 -0
- package/src/video/webgl/compositors/webgl_compositor.js +300 -0
- package/src/video/webgl/webgl_renderer.js +1 -1
- package/dist/melonjs.mjs/node_modules/core-js/es/string/trim-end.js +0 -13
- package/dist/melonjs.mjs/node_modules/core-js/es/string/trim-start.js +0 -13
- package/dist/melonjs.mjs/node_modules/core-js/internals/a-callable.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/an-object.js +0 -21
- package/dist/melonjs.mjs/node_modules/core-js/internals/array-includes.js +0 -45
- package/dist/melonjs.mjs/node_modules/core-js/internals/classof-raw.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/classof.js +0 -43
- package/dist/melonjs.mjs/node_modules/core-js/internals/copy-constructor-properties.js +0 -32
- package/dist/melonjs.mjs/node_modules/core-js/internals/create-non-enumerable-property.js +0 -24
- package/dist/melonjs.mjs/node_modules/core-js/internals/create-property-descriptor.js +0 -17
- package/dist/melonjs.mjs/node_modules/core-js/internals/define-built-in.js +0 -43
- package/dist/melonjs.mjs/node_modules/core-js/internals/define-global-property.js +0 -23
- package/dist/melonjs.mjs/node_modules/core-js/internals/descriptors.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/document-all.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/document-create-element.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/engine-user-agent.js +0 -14
- package/dist/melonjs.mjs/node_modules/core-js/internals/engine-v8-version.js +0 -39
- package/dist/melonjs.mjs/node_modules/core-js/internals/entry-unbind.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/enum-bug-keys.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/export.js +0 -72
- package/dist/melonjs.mjs/node_modules/core-js/internals/fails.js +0 -16
- package/dist/melonjs.mjs/node_modules/core-js/internals/function-bind-native.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/function-call.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/function-name.js +0 -29
- package/dist/melonjs.mjs/node_modules/core-js/internals/function-uncurry-this.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/get-built-in.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/get-method.js +0 -21
- package/dist/melonjs.mjs/node_modules/core-js/internals/global.js +0 -25
- package/dist/melonjs.mjs/node_modules/core-js/internals/has-own-property.js +0 -23
- package/dist/melonjs.mjs/node_modules/core-js/internals/hidden-keys.js +0 -10
- package/dist/melonjs.mjs/node_modules/core-js/internals/ie8-dom-define.js +0 -24
- package/dist/melonjs.mjs/node_modules/core-js/internals/indexed-object.js +0 -28
- package/dist/melonjs.mjs/node_modules/core-js/internals/inspect-source.js +0 -27
- package/dist/melonjs.mjs/node_modules/core-js/internals/internal-state.js +0 -88
- package/dist/melonjs.mjs/node_modules/core-js/internals/is-callable.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/is-forced.js +0 -34
- package/dist/melonjs.mjs/node_modules/core-js/internals/is-null-or-undefined.js +0 -14
- package/dist/melonjs.mjs/node_modules/core-js/internals/is-object.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/is-symbol.js +0 -27
- package/dist/melonjs.mjs/node_modules/core-js/internals/length-of-array-like.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/make-built-in.js +0 -68
- package/dist/melonjs.mjs/node_modules/core-js/internals/math-trunc.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-define-property.js +0 -58
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-get-own-property-descriptor.js +0 -41
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-get-own-property-names.js +0 -23
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-get-own-property-symbols.js +0 -12
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-is-prototype-of.js +0 -14
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-keys-internal.js +0 -35
- package/dist/melonjs.mjs/node_modules/core-js/internals/object-property-is-enumerable.js +0 -23
- package/dist/melonjs.mjs/node_modules/core-js/internals/ordinary-to-primitive.js +0 -28
- package/dist/melonjs.mjs/node_modules/core-js/internals/own-keys.js +0 -31
- package/dist/melonjs.mjs/node_modules/core-js/internals/require-object-coercible.js +0 -21
- package/dist/melonjs.mjs/node_modules/core-js/internals/shared-key.js +0 -21
- package/dist/melonjs.mjs/node_modules/core-js/internals/shared-store.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/shared.js +0 -24
- package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim-end.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim-forced.js +0 -28
- package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim-start.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/internals/string-trim.js +0 -45
- package/dist/melonjs.mjs/node_modules/core-js/internals/symbol-constructor-detection.js +0 -26
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-absolute-index.js +0 -23
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-indexed-object.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-integer-or-infinity.js +0 -20
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-length.js +0 -20
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-object.js +0 -20
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-primitive.js +0 -41
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-property-key.js +0 -21
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-string-tag-support.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/to-string.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/internals/try-to-string.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/uid.js +0 -20
- package/dist/melonjs.mjs/node_modules/core-js/internals/use-symbol-as-uid.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/v8-prototype-define-bug.js +0 -24
- package/dist/melonjs.mjs/node_modules/core-js/internals/weak-map-basic-detection.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/internals/well-known-symbol.js +0 -41
- package/dist/melonjs.mjs/node_modules/core-js/internals/whitespaces.js +0 -12
- package/dist/melonjs.mjs/node_modules/core-js/modules/es.global-this.js +0 -18
- package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-end.js +0 -22
- package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-left.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-right.js +0 -19
- package/dist/melonjs.mjs/node_modules/core-js/modules/es.string.trim-start.js +0 -22
- package/dist/melonjs.mjs/node_modules/eventemitter3/index.mjs.js +0 -9
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
*/
|
|
5
5
|
export default class Bounds {
|
|
6
6
|
/**
|
|
7
|
-
* @param {Vector2d[]} [vertices] - an array of
|
|
7
|
+
* @param {Vector2d[]|Point[]} [vertices] - an array of Vector2d or Point
|
|
8
8
|
*/
|
|
9
|
-
constructor(vertices?: Vector2d[] | undefined);
|
|
9
|
+
constructor(vertices?: Vector2d[] | Point[] | undefined);
|
|
10
10
|
_center: Vector2d;
|
|
11
11
|
/**
|
|
12
12
|
* @ignore
|
|
@@ -22,147 +22,106 @@ export default class Bounds {
|
|
|
22
22
|
} | undefined;
|
|
23
23
|
/**
|
|
24
24
|
* reset the bound
|
|
25
|
-
* @name clear
|
|
26
|
-
* @memberof Bounds
|
|
27
25
|
*/
|
|
28
26
|
clear(): void;
|
|
29
27
|
/**
|
|
30
28
|
* sets the bounds to the given min and max value
|
|
31
|
-
* @name setMinMax
|
|
32
|
-
* @memberof Bounds
|
|
33
29
|
* @param {number} minX
|
|
34
30
|
* @param {number} minY
|
|
35
31
|
* @param {number} maxX
|
|
36
32
|
* @param {number} maxY
|
|
37
33
|
*/
|
|
38
34
|
setMinMax(minX: number, minY: number, maxX: number, maxY: number): void;
|
|
39
|
-
|
|
35
|
+
set x(arg: number);
|
|
40
36
|
/**
|
|
41
37
|
* x position of the bound
|
|
42
|
-
* @public
|
|
43
38
|
* @type {number}
|
|
44
|
-
* @name x
|
|
45
|
-
* @memberof Bounds
|
|
46
39
|
*/
|
|
47
|
-
|
|
48
|
-
|
|
40
|
+
get x(): number;
|
|
41
|
+
set y(arg: number);
|
|
49
42
|
/**
|
|
50
43
|
* y position of the bounds
|
|
51
|
-
* @public
|
|
52
44
|
* @type {number}
|
|
53
|
-
* @name y
|
|
54
|
-
* @memberof Bounds
|
|
55
45
|
*/
|
|
56
|
-
|
|
57
|
-
|
|
46
|
+
get y(): number;
|
|
47
|
+
set width(arg: number);
|
|
58
48
|
/**
|
|
59
49
|
* width of the bounds
|
|
60
|
-
* @public
|
|
61
50
|
* @type {number}
|
|
62
|
-
* @name width
|
|
63
|
-
* @memberof Bounds
|
|
64
51
|
*/
|
|
65
|
-
|
|
66
|
-
|
|
52
|
+
get width(): number;
|
|
53
|
+
set height(arg: number);
|
|
67
54
|
/**
|
|
68
55
|
* width of the bounds
|
|
69
|
-
* @public
|
|
70
56
|
* @type {number}
|
|
71
|
-
* @name width
|
|
72
|
-
* @memberof Bounds
|
|
73
57
|
*/
|
|
74
|
-
|
|
58
|
+
get height(): number;
|
|
75
59
|
/**
|
|
76
60
|
* left coordinate of the bound
|
|
77
|
-
* @public
|
|
78
61
|
* @type {number}
|
|
79
|
-
* @name left
|
|
80
|
-
* @memberof Bounds
|
|
81
62
|
*/
|
|
82
|
-
|
|
63
|
+
get left(): number;
|
|
83
64
|
/**
|
|
84
65
|
* right coordinate of the bound
|
|
85
|
-
* @public
|
|
86
66
|
* @type {number}
|
|
87
|
-
* @name right
|
|
88
|
-
* @memberof Bounds
|
|
89
67
|
*/
|
|
90
|
-
|
|
68
|
+
get right(): number;
|
|
91
69
|
/**
|
|
92
70
|
* top coordinate of the bound
|
|
93
|
-
* @public
|
|
94
71
|
* @type {number}
|
|
95
|
-
* @name top
|
|
96
|
-
* @memberof Bounds
|
|
97
72
|
*/
|
|
98
|
-
|
|
73
|
+
get top(): number;
|
|
99
74
|
/**
|
|
100
75
|
* bottom coordinate of the bound
|
|
101
|
-
* @public
|
|
102
76
|
* @type {number}
|
|
103
|
-
* @name bottom
|
|
104
|
-
* @memberof Bounds
|
|
105
77
|
*/
|
|
106
|
-
|
|
78
|
+
get bottom(): number;
|
|
107
79
|
/**
|
|
108
80
|
* center position of the bound on the x axis
|
|
109
|
-
* @public
|
|
110
81
|
* @type {number}
|
|
111
|
-
* @name centerX
|
|
112
|
-
* @memberof Bounds
|
|
113
82
|
*/
|
|
114
|
-
|
|
83
|
+
get centerX(): number;
|
|
115
84
|
/**
|
|
116
85
|
* center position of the bound on the y axis
|
|
117
|
-
* @public
|
|
118
86
|
* @type {number}
|
|
119
|
-
* @name centerY
|
|
120
|
-
* @memberof Bounds
|
|
121
87
|
*/
|
|
122
|
-
|
|
88
|
+
get centerY(): number;
|
|
123
89
|
/**
|
|
124
90
|
* return the center position of the bound
|
|
125
|
-
* @public
|
|
126
91
|
* @type {Vector2d}
|
|
127
|
-
* @name center
|
|
128
|
-
* @memberof Bounds
|
|
129
92
|
*/
|
|
130
|
-
|
|
93
|
+
get center(): Vector2d;
|
|
94
|
+
/**
|
|
95
|
+
* center the bounds position around the given coordinates
|
|
96
|
+
* @param {number} x - the x coordinate around which to center this bounds
|
|
97
|
+
* @param {number} y - the y coordinate around which to center this bounds
|
|
98
|
+
*/
|
|
99
|
+
centerOn(x: number, y: number): Bounds;
|
|
131
100
|
/**
|
|
132
101
|
* Updates bounds using the given vertices
|
|
133
|
-
* @
|
|
134
|
-
* @memberof Bounds
|
|
135
|
-
* @param {Vector2d[]} vertices - an array of me.Vector2d points
|
|
102
|
+
* @param {Vector2d[]|Point[]} vertices - an array of Vector2d or Point
|
|
136
103
|
*/
|
|
137
|
-
update(vertices: Vector2d[]): void;
|
|
104
|
+
update(vertices: Vector2d[] | Point[]): void;
|
|
138
105
|
/**
|
|
139
106
|
* add the given vertices to the bounds definition.
|
|
140
|
-
* @
|
|
141
|
-
* @memberof Bounds
|
|
142
|
-
* @param {Vector2d[]} vertices - an array of me.Vector2d points
|
|
107
|
+
* @param {Vector2d[]|Point[]} vertices - an array of Vector2d or Point
|
|
143
108
|
* @param {boolean} [clear=false] - either to reset the bounds before adding the new vertices
|
|
144
109
|
*/
|
|
145
|
-
add(vertices: Vector2d[], clear?: boolean | undefined): void;
|
|
110
|
+
add(vertices: Vector2d[] | Point[], clear?: boolean | undefined): void;
|
|
146
111
|
/**
|
|
147
112
|
* add the given bounds to the bounds definition.
|
|
148
|
-
* @name addBounds
|
|
149
|
-
* @memberof Bounds
|
|
150
113
|
* @param {Bounds} bounds
|
|
151
114
|
* @param {boolean} [clear=false] - either to reset the bounds before adding the new vertices
|
|
152
115
|
*/
|
|
153
116
|
addBounds(bounds: Bounds, clear?: boolean | undefined): void;
|
|
154
117
|
/**
|
|
155
118
|
* add the given point to the bounds definition.
|
|
156
|
-
* @
|
|
157
|
-
* @
|
|
158
|
-
* @param {Vector2d|Point} point - the point to be added to the bounds
|
|
159
|
-
* @param {Matrix2d} [m] - an optional transform to apply to the given point (only if the given point is a vector)
|
|
119
|
+
* @param {Vector2d|Point} point - the vector or point to be added to the bounds
|
|
120
|
+
* @param {Matrix2d} [m] - an optional transform to apply to the given point (if the given point is a Vector2d)
|
|
160
121
|
*/
|
|
161
122
|
addPoint(point: Vector2d | Point, m?: any): void;
|
|
162
123
|
/**
|
|
163
124
|
* add the given quad coordinates to this bound definition, multiplied by the given matrix
|
|
164
|
-
* @name addFrame
|
|
165
|
-
* @memberof Bounds
|
|
166
125
|
* @param {number} x0 - left X coordinates of the quad
|
|
167
126
|
* @param {number} y0 - top Y coordinates of the quad
|
|
168
127
|
* @param {number} x1 - right X coordinates of the quad
|
|
@@ -180,8 +139,6 @@ export default class Bounds {
|
|
|
180
139
|
*/
|
|
181
140
|
/**
|
|
182
141
|
* Returns true if the bounds contains the given point.
|
|
183
|
-
* @name contains
|
|
184
|
-
* @memberof Bounds
|
|
185
142
|
* @param {number} x
|
|
186
143
|
* @param {number} y
|
|
187
144
|
* @returns {boolean} True if the bounds contain the point, otherwise false
|
|
@@ -189,16 +146,12 @@ export default class Bounds {
|
|
|
189
146
|
contains(...args: any[]): boolean;
|
|
190
147
|
/**
|
|
191
148
|
* Returns true if the two bounds intersect.
|
|
192
|
-
* @name overlaps
|
|
193
|
-
* @memberof Bounds
|
|
194
149
|
* @param {Bounds|Rect} bounds
|
|
195
150
|
* @returns {boolean} True if the bounds overlap, otherwise false
|
|
196
151
|
*/
|
|
197
152
|
overlaps(bounds: Bounds | Rect): boolean;
|
|
198
153
|
/**
|
|
199
154
|
* determines whether all coordinates of this bounds are finite numbers.
|
|
200
|
-
* @name isFinite
|
|
201
|
-
* @memberof Bounds
|
|
202
155
|
* @returns {boolean} false if all coordinates are positive or negative Infinity or NaN; otherwise, true.
|
|
203
156
|
*/
|
|
204
157
|
isFinite(): boolean;
|
|
@@ -211,8 +164,6 @@ export default class Bounds {
|
|
|
211
164
|
*/
|
|
212
165
|
/**
|
|
213
166
|
* Translates the bounds by x on the x axis, and y on the y axis
|
|
214
|
-
* @name translate
|
|
215
|
-
* @memberof Bounds
|
|
216
167
|
* @param {number} x
|
|
217
168
|
* @param {number} y
|
|
218
169
|
*/
|
|
@@ -226,23 +177,17 @@ export default class Bounds {
|
|
|
226
177
|
*/
|
|
227
178
|
/**
|
|
228
179
|
* Shifts the bounds to the given x, y position.
|
|
229
|
-
* @name shift
|
|
230
|
-
* @memberof Bounds
|
|
231
180
|
* @param {number} x
|
|
232
181
|
* @param {number} y
|
|
233
182
|
*/
|
|
234
183
|
shift(...args: any[]): void;
|
|
235
184
|
/**
|
|
236
185
|
* clone this bounds
|
|
237
|
-
* @name clone
|
|
238
|
-
* @memberof Bounds
|
|
239
186
|
* @returns {Bounds}
|
|
240
187
|
*/
|
|
241
188
|
clone(): Bounds;
|
|
242
189
|
/**
|
|
243
190
|
* Returns a polygon whose edges are the same as this bounds.
|
|
244
|
-
* @name toPolygon
|
|
245
|
-
* @memberof Bounds
|
|
246
191
|
* @returns {Polygon} a new Polygon that represents this bounds.
|
|
247
192
|
*/
|
|
248
193
|
toPolygon(): Polygon;
|
|
@@ -206,23 +206,12 @@ export default class Container extends Renderable {
|
|
|
206
206
|
* @returns {Renderable[]} an array of renderable object
|
|
207
207
|
*/
|
|
208
208
|
getChildren(): Renderable[];
|
|
209
|
-
/**
|
|
210
|
-
* update the bounding box for this shape.
|
|
211
|
-
* @ignore
|
|
212
|
-
* @returns {Bounds} this shape bounding box Rectangle object
|
|
213
|
-
*/
|
|
214
|
-
updateBounds(forceUpdateChildBounds?: boolean): Bounds;
|
|
215
209
|
/**
|
|
216
210
|
* Checks if this container is root or if it's attached to the root container.
|
|
217
211
|
* @private
|
|
218
212
|
* @returns {boolean}
|
|
219
213
|
*/
|
|
220
214
|
private isAttachedToRoot;
|
|
221
|
-
/**
|
|
222
|
-
* update the cointainer's bounding rect (private)
|
|
223
|
-
* @ignore
|
|
224
|
-
*/
|
|
225
|
-
updateBoundsPos(newX: any, newY: any): Bounds;
|
|
226
215
|
/**
|
|
227
216
|
* @ignore
|
|
228
217
|
*/
|
|
@@ -5,16 +5,28 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export default class Renderable extends Rect {
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
9
|
-
* @
|
|
8
|
+
* Position of the Renderable relative to its parent container
|
|
9
|
+
* @public
|
|
10
|
+
* @type {ObservableVector3d}
|
|
10
11
|
*/
|
|
11
|
-
|
|
12
|
+
public pos: ObservableVector3d;
|
|
12
13
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
14
|
+
* The anchor point is used for attachment behavior, and/or when applying transformations.<br>
|
|
15
|
+
* The coordinate system places the origin at the top left corner of the frame (0, 0) and (1, 1) means the bottom-right corner<br>
|
|
16
|
+
* <img src="images/anchor_point.png"/><br>
|
|
17
|
+
* a Renderable's anchor point defaults to (0.5,0.5), which corresponds to the center position.<br>
|
|
18
|
+
* <br>
|
|
19
|
+
* <i><b>Note:</b> Object created through Tiled will have their anchorPoint set to (0, 0) to match Tiled Level editor implementation.
|
|
20
|
+
* To specify a value through Tiled, use a json expression like `json:{"x":0.5,"y":0.5}`. </i>
|
|
21
|
+
* @type {ObservableVector2d}
|
|
22
|
+
* @default <0.5,0.5>
|
|
16
23
|
*/
|
|
17
|
-
|
|
24
|
+
anchorPoint: ObservableVector2d;
|
|
25
|
+
/**
|
|
26
|
+
* the renderable default transformation matrix
|
|
27
|
+
* @type {Matrix2d}
|
|
28
|
+
*/
|
|
29
|
+
currentTransform: Matrix2d;
|
|
18
30
|
/**
|
|
19
31
|
* the renderable physic body
|
|
20
32
|
* @type {Body}
|
|
@@ -51,11 +63,6 @@ export default class Renderable extends Rect {
|
|
|
51
63
|
* }
|
|
52
64
|
*/
|
|
53
65
|
body: Body;
|
|
54
|
-
/**
|
|
55
|
-
* the renderable default transformation matrix
|
|
56
|
-
* @type {Matrix2d}
|
|
57
|
-
*/
|
|
58
|
-
currentTransform: Matrix2d;
|
|
59
66
|
/**
|
|
60
67
|
* (G)ame (U)nique (Id)entifier" <br>
|
|
61
68
|
* a GUID will be allocated for any renderable object added <br>
|
|
@@ -100,18 +107,6 @@ export default class Renderable extends Rect {
|
|
|
100
107
|
* @default false
|
|
101
108
|
*/
|
|
102
109
|
floating: boolean;
|
|
103
|
-
/**
|
|
104
|
-
* The anchor point is used for attachment behavior, and/or when applying transformations.<br>
|
|
105
|
-
* The coordinate system places the origin at the top left corner of the frame (0, 0) and (1, 1) means the bottom-right corner<br>
|
|
106
|
-
* <img src="images/anchor_point.png"/><br>
|
|
107
|
-
* a Renderable's anchor point defaults to (0.5,0.5), which corresponds to the center position.<br>
|
|
108
|
-
* <br>
|
|
109
|
-
* <i><b>Note:</b> Object created through Tiled will have their anchorPoint set to (0, 0) to match Tiled Level editor implementation.
|
|
110
|
-
* To specify a value through Tiled, use a json expression like `json:{"x":0.5,"y":0.5}`. </i>
|
|
111
|
-
* @type {ObservableVector2d}
|
|
112
|
-
* @default <0.5,0.5>
|
|
113
|
-
*/
|
|
114
|
-
anchorPoint: ObservableVector2d;
|
|
115
110
|
/**
|
|
116
111
|
* When enabled, an object container will automatically apply
|
|
117
112
|
* any defined transformation before calling the child draw method.
|
|
@@ -182,15 +177,20 @@ export default class Renderable extends Rect {
|
|
|
182
177
|
*/
|
|
183
178
|
name: string;
|
|
184
179
|
/**
|
|
185
|
-
*
|
|
186
|
-
* @
|
|
187
|
-
* @type {ObservableVector3d}
|
|
180
|
+
* to identify the object as a renderable object
|
|
181
|
+
* @ignore
|
|
188
182
|
*/
|
|
189
|
-
|
|
183
|
+
isRenderable: boolean;
|
|
184
|
+
/**
|
|
185
|
+
* If true then physic collision and input events will not impact this renderable
|
|
186
|
+
* @type {boolean}
|
|
187
|
+
* @default true
|
|
188
|
+
*/
|
|
189
|
+
isKinematic: boolean;
|
|
190
190
|
/**
|
|
191
191
|
* when true the renderable will be redrawn during the next update cycle
|
|
192
192
|
* @type {boolean}
|
|
193
|
-
* @default
|
|
193
|
+
* @default true
|
|
194
194
|
*/
|
|
195
195
|
isDirty: boolean;
|
|
196
196
|
_flip: {
|
|
@@ -317,11 +317,17 @@ export default class Renderable extends Rect {
|
|
|
317
317
|
* @returns {boolean} true if the renderable is dirty
|
|
318
318
|
*/
|
|
319
319
|
update(dt: number): boolean;
|
|
320
|
+
/**
|
|
321
|
+
* update the bounding box for this shape.
|
|
322
|
+
* @param {boolean} [absolute=true] - update the bounds size and position in (world) absolute coordinates
|
|
323
|
+
* @returns {Bounds} this shape bounding box Rectangle object
|
|
324
|
+
*/
|
|
325
|
+
updateBounds(absolute?: boolean | undefined): Bounds;
|
|
320
326
|
/**
|
|
321
327
|
* update the renderable's bounding rect (private)
|
|
322
328
|
* @ignore
|
|
323
329
|
*/
|
|
324
|
-
updateBoundsPos(newX
|
|
330
|
+
updateBoundsPos(newX?: number, newY?: number): void;
|
|
325
331
|
/**
|
|
326
332
|
* return the renderable absolute position in the game world
|
|
327
333
|
* @returns {Vector2d}
|
|
@@ -397,6 +403,6 @@ export default class Renderable extends Rect {
|
|
|
397
403
|
onDestroyEvent(): void;
|
|
398
404
|
}
|
|
399
405
|
import Rect from "./../geometries/rectangle.js";
|
|
400
|
-
import ObservableVector2d from "./../math/observable_vector2.js";
|
|
401
406
|
import ObservableVector3d from "./../math/observable_vector3.js";
|
|
407
|
+
import ObservableVector2d from "./../math/observable_vector2.js";
|
|
402
408
|
import Color from "./../math/color.js";
|
|
@@ -83,7 +83,7 @@ export default class Sprite extends Renderable {
|
|
|
83
83
|
anim: {};
|
|
84
84
|
resetAnim: Function | (() => Sprite) | undefined;
|
|
85
85
|
current: {
|
|
86
|
-
name:
|
|
86
|
+
name: undefined;
|
|
87
87
|
length: number;
|
|
88
88
|
offset: object;
|
|
89
89
|
width: number;
|
|
@@ -234,13 +234,13 @@ export default class Sprite extends Renderable {
|
|
|
234
234
|
* force the current animation frame index.
|
|
235
235
|
* @name setAnimationFrame
|
|
236
236
|
* @memberof Sprite
|
|
237
|
-
* @param {number} [
|
|
237
|
+
* @param {number} [index=0] - animation frame index
|
|
238
238
|
* @returns {Sprite} Reference to this object for method chaining
|
|
239
239
|
* @example
|
|
240
240
|
* // reset the current animation to the first frame
|
|
241
241
|
* this.setAnimationFrame();
|
|
242
242
|
*/
|
|
243
|
-
setAnimationFrame(
|
|
243
|
+
setAnimationFrame(index?: number | undefined): Sprite;
|
|
244
244
|
/**
|
|
245
245
|
* return the current animation frame index.
|
|
246
246
|
* @name getCurrentAnimationFrame
|
|
@@ -135,7 +135,7 @@ declare namespace state {
|
|
|
135
135
|
*/
|
|
136
136
|
function transition(effect: string, color: any, duration?: number | undefined): void;
|
|
137
137
|
/**
|
|
138
|
-
* enable/disable transition
|
|
138
|
+
* enable/disable the transition to a particular state (by default enabled for all)
|
|
139
139
|
* @name setTransition
|
|
140
140
|
* @memberof state
|
|
141
141
|
* @public
|
|
@@ -26,14 +26,14 @@ declare class ObjectPool {
|
|
|
26
26
|
* @param {boolean} [recycling=false] - enables object recycling for the specified class
|
|
27
27
|
* @example
|
|
28
28
|
* // implement CherryEntity
|
|
29
|
-
* class
|
|
29
|
+
* class Cherry extends Sprite {
|
|
30
30
|
* onResetEvent() {
|
|
31
31
|
* // reset object mutable properties
|
|
32
32
|
* this.lifeBar = 100;
|
|
33
33
|
* }
|
|
34
34
|
* };
|
|
35
35
|
* // add our users defined entities in the object pool and enable object recycling
|
|
36
|
-
* me.pool.register("
|
|
36
|
+
* me.pool.register("cherrysprite", Cherry, true);
|
|
37
37
|
*/
|
|
38
38
|
register(className: string, classObj: object, recycling?: boolean | undefined): void;
|
|
39
39
|
/**
|
|
@@ -188,7 +188,7 @@ export default class Renderer {
|
|
|
188
188
|
* @param {Rect|RoundRect|Polygon|Line|Ellipse} [mask] - the shape defining the mask to be applied
|
|
189
189
|
* @param {boolean} [invert=false] - either the given shape should define what is visible (default) or the opposite
|
|
190
190
|
*/
|
|
191
|
-
setMask(mask?:
|
|
191
|
+
setMask(mask?: Polygon | Rect | Ellipse | RoundRect | Line | undefined): void;
|
|
192
192
|
/**
|
|
193
193
|
* disable (remove) the rendering mask set through setMask.
|
|
194
194
|
* @see Renderer#setMask
|
|
@@ -60,6 +60,7 @@ export function init(width: number, height: number, options?: {
|
|
|
60
60
|
export function createCanvas(width: number, height: number, returnOffscreenCanvas?: boolean | undefined): HTMLCanvasElement | OffscreenCanvas;
|
|
61
61
|
/**
|
|
62
62
|
* return a reference to the parent DOM element holding the main canvas
|
|
63
|
+
* @memberof video
|
|
63
64
|
* @returns {HTMLElement}
|
|
64
65
|
*/
|
|
65
66
|
export function getParent(): HTMLElement;
|
|
@@ -69,21 +70,21 @@ export function getParent(): HTMLElement;
|
|
|
69
70
|
/**
|
|
70
71
|
* Select the HTML5 Canvas renderer
|
|
71
72
|
* @memberof video
|
|
72
|
-
* @
|
|
73
|
+
* @static
|
|
73
74
|
*/
|
|
74
|
-
export const CANVAS:
|
|
75
|
+
export const CANVAS: number;
|
|
75
76
|
/**
|
|
76
77
|
* Select the WebGL renderer
|
|
77
78
|
* @memberof video
|
|
78
|
-
* @
|
|
79
|
+
* @static
|
|
79
80
|
*/
|
|
80
|
-
export const WEBGL:
|
|
81
|
+
export const WEBGL: number;
|
|
81
82
|
/**
|
|
82
83
|
* Auto-select the renderer (Attempt WebGL first, with fallback to Canvas)
|
|
83
84
|
* @memberof video
|
|
84
|
-
* @
|
|
85
|
+
* @static
|
|
85
86
|
*/
|
|
86
|
-
export const AUTO:
|
|
87
|
+
export const AUTO: any;
|
|
87
88
|
/**
|
|
88
89
|
* A reference to the active Canvas or WebGL active renderer renderer
|
|
89
90
|
* @memberof video
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @classdesc
|
|
3
|
+
* A base Compositor object.
|
|
4
|
+
*/
|
|
5
|
+
export default class Compositor {
|
|
6
|
+
/**
|
|
7
|
+
* @param {WebGLRenderer} renderer - the current WebGL renderer session
|
|
8
|
+
*/
|
|
9
|
+
constructor(renderer: WebGLRenderer);
|
|
10
|
+
/**
|
|
11
|
+
* Initialize the compositor
|
|
12
|
+
* @ignore
|
|
13
|
+
*/
|
|
14
|
+
init(renderer: any): void;
|
|
15
|
+
renderer: any;
|
|
16
|
+
gl: any;
|
|
17
|
+
color: any;
|
|
18
|
+
viewMatrix: any;
|
|
19
|
+
/**
|
|
20
|
+
* a reference to the active WebGL shader
|
|
21
|
+
* @type {GLShader}
|
|
22
|
+
*/
|
|
23
|
+
activeShader: any;
|
|
24
|
+
/**
|
|
25
|
+
* primitive type to render (gl.POINTS, gl.LINE_STRIP, gl.LINE_LOOP, gl.LINES, gl.TRIANGLE_STRIP, gl.TRIANGLE_FAN, gl.TRIANGLES)
|
|
26
|
+
* @type {number}
|
|
27
|
+
* @default gl.TRIANGLES
|
|
28
|
+
*/
|
|
29
|
+
mode: number | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* an array of vertex attribute properties
|
|
32
|
+
* @see WebGLCompositor.addAttribute
|
|
33
|
+
* @type {Array}
|
|
34
|
+
*/
|
|
35
|
+
attributes: any[] | undefined;
|
|
36
|
+
/**
|
|
37
|
+
* the size of a single vertex in bytes
|
|
38
|
+
* (will automatically be calculated as attributes definitions are added)
|
|
39
|
+
* @see WebGLCompositor.addAttribute
|
|
40
|
+
* @type {number}
|
|
41
|
+
*/
|
|
42
|
+
vertexByteSize: number | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* the size of a single vertex in floats
|
|
45
|
+
* (will automatically be calculated as attributes definitions are added)
|
|
46
|
+
* @see WebGLCompositor.addAttribute
|
|
47
|
+
* @type {number}
|
|
48
|
+
*/
|
|
49
|
+
vertexSize: number | undefined;
|
|
50
|
+
/**
|
|
51
|
+
* Reset compositor internal state
|
|
52
|
+
* @ignore
|
|
53
|
+
*/
|
|
54
|
+
reset(): void;
|
|
55
|
+
/**
|
|
56
|
+
* add vertex attribute property definition to the compositor
|
|
57
|
+
* @param {string} name - name of the attribute in the vertex shader
|
|
58
|
+
* @param {number} size - number of components per vertex attribute. Must be 1, 2, 3, or 4.
|
|
59
|
+
* @param {GLenum} type - data type of each component in the array
|
|
60
|
+
* @param {boolean} normalized - whether integer data values should be normalized into a certain range when being cast to a float
|
|
61
|
+
* @param {number} offset - offset in bytes of the first component in the vertex attribute array
|
|
62
|
+
*/
|
|
63
|
+
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
|
+
/**
|
|
73
|
+
* set/change the current projection matrix
|
|
74
|
+
* @param {Matrix3d} matrix
|
|
75
|
+
*/
|
|
76
|
+
setProjection(matrix: Matrix3d): void;
|
|
77
|
+
/**
|
|
78
|
+
* Select the shader to use for compositing
|
|
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
|
|
85
|
+
* @param {number} [mode=gl.TRIANGLES] - the GL drawing mode
|
|
86
|
+
*/
|
|
87
|
+
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
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
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 WebGLCompositor extends Compositor {
|
|
8
|
+
currentTextureUnit: any;
|
|
9
|
+
boundTextures: any[] | undefined;
|
|
10
|
+
primitiveShader: GLShader | undefined;
|
|
11
|
+
quadShader: GLShader | undefined;
|
|
12
|
+
vertexBuffer: VertexArrayBuffer | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* Create a WebGL texture from an image
|
|
15
|
+
* @param {number} unit - Destination texture unit
|
|
16
|
+
* @param {Image|HTMLCanvasElement|ImageData|Uint8Array[]|Float32Array[]} image - Source image
|
|
17
|
+
* @param {number} filter - gl.LINEAR or gl.NEAREST
|
|
18
|
+
* @param {string} [repeat="no-repeat"] - Image repeat behavior (see {@link ImageLayer#repeat})
|
|
19
|
+
* @param {number} [w] - Source image width (Only use with UInt8Array[] or Float32Array[] source image)
|
|
20
|
+
* @param {number} [h] - Source image height (Only use with UInt8Array[] or Float32Array[] source image)
|
|
21
|
+
* @param {number} [b] - Source image border (Only use with UInt8Array[] or Float32Array[] source image)
|
|
22
|
+
* @param {boolean} [premultipliedAlpha=true] - Multiplies the alpha channel into the other color channels
|
|
23
|
+
* @param {boolean} [mipmap=true] - Whether mipmap levels should be generated for this texture
|
|
24
|
+
* @returns {WebGLTexture} a WebGL texture
|
|
25
|
+
*/
|
|
26
|
+
createTexture2D(unit: number, image: (new (width?: number | undefined, height?: number | undefined) => HTMLImageElement) | HTMLCanvasElement | ImageData | Uint8Array[] | Float32Array[], filter: number, repeat?: string | undefined, w?: number | undefined, h?: number | undefined, b?: number | undefined, premultipliedAlpha?: boolean | undefined, mipmap?: boolean | undefined): WebGLTexture;
|
|
27
|
+
/**
|
|
28
|
+
* delete the given WebGL texture
|
|
29
|
+
* @param {WebGLTexture} [texture] - a WebGL texture to delete
|
|
30
|
+
* @param {number} [unit] - Texture unit to delete
|
|
31
|
+
*/
|
|
32
|
+
deleteTexture2D(texture?: WebGLTexture | undefined): void;
|
|
33
|
+
/**
|
|
34
|
+
* returns the WebGL texture associated to the given texture unit
|
|
35
|
+
* @param {number} unit - Texture unit to which a texture is bound
|
|
36
|
+
* @returns {WebGLTexture} texture a WebGL texture
|
|
37
|
+
*/
|
|
38
|
+
getTexture2D(unit: number): WebGLTexture;
|
|
39
|
+
/**
|
|
40
|
+
* assign the given WebGL texture to the current batch
|
|
41
|
+
* @param {WebGLTexture} texture - a WebGL texture
|
|
42
|
+
* @param {number} unit - Texture unit to which the given texture is bound
|
|
43
|
+
*/
|
|
44
|
+
bindTexture2D(texture: WebGLTexture, unit: number): void;
|
|
45
|
+
/**
|
|
46
|
+
* unbind the given WebGL texture, forcing it to be reuploaded
|
|
47
|
+
* @param {WebGLTexture} [texture] - a WebGL texture
|
|
48
|
+
* @param {number} [unit] - a WebGL texture
|
|
49
|
+
* @returns {number} unit the unit number that was associated with the given texture
|
|
50
|
+
*/
|
|
51
|
+
unbindTexture2D(texture?: WebGLTexture | undefined, unit?: number | undefined): number;
|
|
52
|
+
/**
|
|
53
|
+
* @ignore
|
|
54
|
+
*/
|
|
55
|
+
uploadTexture(texture: any, w: any, h: any, b: any, force?: boolean): any;
|
|
56
|
+
/**
|
|
57
|
+
* Select the shader to use for compositing
|
|
58
|
+
* @see GLShader
|
|
59
|
+
* @param {GLShader} shader - a reference to a GLShader instance
|
|
60
|
+
*/
|
|
61
|
+
useShader(shader: GLShader): void;
|
|
62
|
+
/**
|
|
63
|
+
* Add a textured quad
|
|
64
|
+
* @param {TextureAtlas} texture - Source texture atlas
|
|
65
|
+
* @param {number} x - Destination x-coordinate
|
|
66
|
+
* @param {number} y - Destination y-coordinate
|
|
67
|
+
* @param {number} w - Destination width
|
|
68
|
+
* @param {number} h - Destination height
|
|
69
|
+
* @param {number} u0 - Texture UV (u0) value.
|
|
70
|
+
* @param {number} v0 - Texture UV (v0) value.
|
|
71
|
+
* @param {number} u1 - Texture UV (u1) value.
|
|
72
|
+
* @param {number} v1 - Texture UV (v1) value.
|
|
73
|
+
* @param {number} tint - tint color to be applied to the texture in UINT32 (argb) format
|
|
74
|
+
*/
|
|
75
|
+
addQuad(texture: TextureAtlas, x: number, y: number, w: number, h: number, u0: number, v0: number, u1: number, v1: number, tint: number): void;
|
|
76
|
+
/**
|
|
77
|
+
* Draw an array of vertices
|
|
78
|
+
* @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)
|
|
79
|
+
* @param {Point[]} verts - an array of vertices
|
|
80
|
+
* @param {number} [vertexCount=verts.length] - amount of points defined in the points array
|
|
81
|
+
*/
|
|
82
|
+
drawVertices(mode: GLenum, verts: Point[], vertexCount?: number | undefined): void;
|
|
83
|
+
}
|
|
84
|
+
import Compositor from "./compositor.js";
|
|
85
|
+
import GLShader from "../glshader.js";
|
|
86
|
+
import VertexArrayBuffer from "../buffer/vertex.js";
|