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
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v14.
|
|
2
|
+
* melonJS Game Engine - v14.5.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
6
|
-
* @copyright (C) 2011 -
|
|
6
|
+
* @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
|
|
7
7
|
*/
|
|
8
8
|
import { capitalize } from './string.js';
|
|
9
9
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v14.
|
|
2
|
+
* melonJS Game Engine - v14.5.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
6
|
-
* @copyright (C) 2011 -
|
|
6
|
+
* @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
|
|
7
7
|
*/
|
|
8
8
|
import { random as random$1, weightedRandom as weightedRandom$1 } from '../math/math.js';
|
|
9
9
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v14.
|
|
2
|
+
* melonJS Game Engine - v14.5.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
6
|
-
* @copyright (C) 2011 -
|
|
6
|
+
* @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
|
|
7
7
|
*/
|
|
8
8
|
/**
|
|
9
9
|
* a collection of file utility functions
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v14.
|
|
2
|
+
* melonJS Game Engine - v14.5.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
6
|
-
* @copyright (C) 2011 -
|
|
6
|
+
* @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
|
|
7
7
|
*/
|
|
8
8
|
/**
|
|
9
9
|
* a collection of utility functions
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v14.
|
|
2
|
+
* melonJS Game Engine - v14.5.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
6
|
-
* @copyright (C) 2011 -
|
|
6
|
+
* @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
|
|
7
7
|
*/
|
|
8
8
|
/**
|
|
9
9
|
* a collection of string utility functions
|
|
@@ -34,7 +34,7 @@ function isNumeric(str) {
|
|
|
34
34
|
if (typeof str === "string") {
|
|
35
35
|
str = str.trim();
|
|
36
36
|
}
|
|
37
|
-
return !isNaN(str) &&
|
|
37
|
+
return !isNaN(str) && /^[+-]?(\d+(\.\d+)?|\.\d+)$/.test(str);
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
/**
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v14.
|
|
2
|
+
* melonJS Game Engine - v14.5.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
6
|
-
* @copyright (C) 2011 -
|
|
6
|
+
* @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
|
|
7
7
|
*/
|
|
8
8
|
import * as agent from './agent.js';
|
|
9
9
|
import * as array from './array.js';
|
|
@@ -107,9 +107,7 @@ var utils = {
|
|
|
107
107
|
}
|
|
108
108
|
|
|
109
109
|
// parse the url
|
|
110
|
-
url.slice(1).split("&").filter((value) => {
|
|
111
|
-
return (value !== "");
|
|
112
|
-
}).forEach((value) => {
|
|
110
|
+
url.slice(1).split("&").filter((value) => value !== "").forEach((value) => {
|
|
113
111
|
var kv = value.split("=");
|
|
114
112
|
var k = kv.shift();
|
|
115
113
|
var v = kv.join("=");
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v14.
|
|
2
|
+
* melonJS Game Engine - v14.5.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
6
|
-
* @copyright (C) 2011 -
|
|
6
|
+
* @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
|
|
7
7
|
*/
|
|
8
8
|
import Color from '../../math/color.js';
|
|
9
9
|
import Renderer from '../renderer.js';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v14.
|
|
2
|
+
* melonJS Game Engine - v14.5.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
6
|
-
* @copyright (C) 2011 -
|
|
6
|
+
* @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
|
|
7
7
|
*/
|
|
8
8
|
import Color from '../math/color.js';
|
|
9
9
|
import Matrix3d from '../math/matrix3.js';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v14.
|
|
2
|
+
* melonJS Game Engine - v14.5.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
6
|
-
* @copyright (C) 2011 -
|
|
6
|
+
* @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
|
|
7
7
|
*/
|
|
8
8
|
import Vector2d from '../../math/vector2.js';
|
|
9
9
|
import WebGLRenderer from '../webgl/webgl_renderer.js';
|
|
@@ -11,7 +11,7 @@ import TextureCache from './cache.js';
|
|
|
11
11
|
import Sprite from '../../renderable/sprite.js';
|
|
12
12
|
import { renderer } from '../video.js';
|
|
13
13
|
import pool from '../../system/pooling.js';
|
|
14
|
-
import
|
|
14
|
+
import { getImage } from '../../loader/loader.js';
|
|
15
15
|
import { ETA } from '../../math/math.js';
|
|
16
16
|
|
|
17
17
|
/**
|
|
@@ -105,7 +105,7 @@ class TextureAtlas {
|
|
|
105
105
|
// set the texture
|
|
106
106
|
if (typeof(src) === "undefined") {
|
|
107
107
|
// get the texture name from the atlas meta data
|
|
108
|
-
var image =
|
|
108
|
+
var image = getImage(atlas.meta.image);
|
|
109
109
|
if (!image) {
|
|
110
110
|
throw new Error(
|
|
111
111
|
"Atlas texture '" + image + "' not found"
|
|
@@ -113,7 +113,7 @@ class TextureAtlas {
|
|
|
113
113
|
}
|
|
114
114
|
this.sources.set(atlas.meta.image, image);
|
|
115
115
|
} else {
|
|
116
|
-
this.sources.set(atlas.meta.image || "default", typeof src === "string" ?
|
|
116
|
+
this.sources.set(atlas.meta.image || "default", typeof src === "string" ? getImage(src) : src);
|
|
117
117
|
}
|
|
118
118
|
this.repeat = "no-repeat";
|
|
119
119
|
}
|
|
@@ -127,13 +127,13 @@ class TextureAtlas {
|
|
|
127
127
|
}
|
|
128
128
|
this.format = "ShoeBox";
|
|
129
129
|
this.repeat = "no-repeat";
|
|
130
|
-
this.sources.set("default", typeof src === "string" ?
|
|
130
|
+
this.sources.set("default", typeof src === "string" ? getImage(src) : src);
|
|
131
131
|
}
|
|
132
132
|
// Internal texture atlas
|
|
133
133
|
else if (atlas.meta.app.includes("melonJS")) {
|
|
134
134
|
this.format = "melonJS";
|
|
135
135
|
this.repeat = atlas.meta.repeat || "no-repeat";
|
|
136
|
-
this.sources.set("default", typeof src === "string" ?
|
|
136
|
+
this.sources.set("default", typeof src === "string" ? getImage(src) : src);
|
|
137
137
|
}
|
|
138
138
|
// initialize the atlas
|
|
139
139
|
this.atlases.set(atlas.meta.image || "default", this.parse(atlas));
|
|
@@ -147,7 +147,7 @@ class TextureAtlas {
|
|
|
147
147
|
|
|
148
148
|
if (typeof(src) !== "undefined") {
|
|
149
149
|
// overwrite if specified
|
|
150
|
-
atlas.image = typeof src === "string" ?
|
|
150
|
+
atlas.image = typeof src === "string" ? getImage(src) : src;
|
|
151
151
|
}
|
|
152
152
|
// initialize the atlas
|
|
153
153
|
this.atlases.set("default", this.parseFromSpriteSheet(atlas));
|
|
@@ -353,12 +353,13 @@ class TextureAtlas {
|
|
|
353
353
|
region = this.getAtlas(atlas)[name];
|
|
354
354
|
} else {
|
|
355
355
|
// look for the given region in each existing atlas
|
|
356
|
-
this.atlases.
|
|
356
|
+
for (let atlas of this.atlases.values()) {
|
|
357
357
|
if (typeof atlas[name] !== "undefined") {
|
|
358
358
|
// there should be only one
|
|
359
359
|
region = atlas[name];
|
|
360
|
+
break;
|
|
360
361
|
}
|
|
361
|
-
}
|
|
362
|
+
}
|
|
362
363
|
}
|
|
363
364
|
return region;
|
|
364
365
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v14.
|
|
2
|
+
* melonJS Game Engine - v14.5.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
6
|
-
* @copyright (C) 2011 -
|
|
6
|
+
* @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
|
|
7
7
|
*/
|
|
8
8
|
import { renderer } from '../video.js';
|
|
9
9
|
import { getBasename } from '../../utils/file.js';
|
|
@@ -64,8 +64,8 @@ class TextureCache {
|
|
|
64
64
|
} else {
|
|
65
65
|
// manage cases where a specific atlas is specified
|
|
66
66
|
this.cache.forEach((value, key) => {
|
|
67
|
-
var _atlas = value.getAtlas();
|
|
68
|
-
if (key === image && _atlas
|
|
67
|
+
var _atlas = value.getAtlas()[0];
|
|
68
|
+
if (key === image && _atlas.width === atlas.framewidth && _atlas.height === atlas.frameheight) {
|
|
69
69
|
entry = value;
|
|
70
70
|
}
|
|
71
71
|
});
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v14.
|
|
2
|
+
* melonJS Game Engine - v14.5.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
6
|
-
* @copyright (C) 2011 -
|
|
6
|
+
* @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
|
|
7
7
|
*/
|
|
8
8
|
import { createCanvas } from '../video.js';
|
|
9
9
|
import { setPrefixed } from '../../utils/agent.js';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v14.
|
|
2
|
+
* melonJS Game Engine - v14.5.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
6
|
-
* @copyright (C) 2011 -
|
|
6
|
+
* @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
|
|
7
7
|
*/
|
|
8
8
|
import { isWebGLSupported } from '../../system/device.js';
|
|
9
9
|
import WebGLRenderer from '../webgl/webgl_renderer.js';
|
|
@@ -1,45 +1,47 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v14.
|
|
2
|
+
* melonJS Game Engine - v14.5.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
6
|
-
* @copyright (C) 2011 -
|
|
6
|
+
* @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
|
|
7
7
|
*/
|
|
8
8
|
import { emit, WINDOW_ONRESIZE, WINDOW_ONORIENTATION_CHANGE, WINDOW_ONSCROLL, VIDEO_INIT } from '../system/event.js';
|
|
9
9
|
import { game, initialized } from '../index.js';
|
|
10
10
|
import { offscreenCanvas, screenOrientation } from '../system/device.js';
|
|
11
11
|
import utils from '../utils/utils.js';
|
|
12
|
+
import { CANVAS as CANVAS$1, WEBGL as WEBGL$1, AUTO as AUTO$1 } from '../const.js';
|
|
12
13
|
|
|
13
14
|
/**
|
|
14
15
|
* @namespace video
|
|
15
16
|
*/
|
|
16
17
|
|
|
18
|
+
|
|
17
19
|
/**
|
|
18
20
|
* Select the HTML5 Canvas renderer
|
|
19
21
|
* @memberof video
|
|
20
|
-
* @
|
|
22
|
+
* @static
|
|
21
23
|
*/
|
|
22
|
-
const CANVAS =
|
|
24
|
+
const CANVAS = CANVAS$1;
|
|
23
25
|
|
|
24
26
|
/**
|
|
25
27
|
* Select the WebGL renderer
|
|
26
28
|
* @memberof video
|
|
27
|
-
* @
|
|
29
|
+
* @static
|
|
28
30
|
*/
|
|
29
|
-
const WEBGL = 1;
|
|
31
|
+
const WEBGL = WEBGL$1;
|
|
30
32
|
|
|
31
33
|
/**
|
|
32
34
|
* Auto-select the renderer (Attempt WebGL first, with fallback to Canvas)
|
|
33
35
|
* @memberof video
|
|
34
|
-
* @
|
|
36
|
+
* @static
|
|
35
37
|
*/
|
|
36
|
-
const AUTO =
|
|
38
|
+
const AUTO = AUTO$1;
|
|
37
39
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
/**
|
|
41
|
+
* A reference to the active Canvas or WebGL active renderer renderer
|
|
42
|
+
* @memberof video
|
|
43
|
+
* @type {CanvasRenderer|WebGLRenderer}
|
|
44
|
+
*/
|
|
43
45
|
let renderer = null;
|
|
44
46
|
|
|
45
47
|
/**
|
|
@@ -92,7 +94,7 @@ function init(width, height, options) {
|
|
|
92
94
|
// initialize the default game Application with the given options
|
|
93
95
|
game.init(width, height, options);
|
|
94
96
|
} catch (e) {
|
|
95
|
-
console(e.message);
|
|
97
|
+
console.log(e.message);
|
|
96
98
|
// me.video.init() historically returns false if failing at creating/using a HTML5 canvas
|
|
97
99
|
return false;
|
|
98
100
|
}
|
|
@@ -179,6 +181,7 @@ function createCanvas(width, height, returnOffscreenCanvas = false) {
|
|
|
179
181
|
|
|
180
182
|
/**
|
|
181
183
|
* return a reference to the parent DOM element holding the main canvas
|
|
184
|
+
* @memberof video
|
|
182
185
|
* @returns {HTMLElement}
|
|
183
186
|
*/
|
|
184
187
|
function getParent() {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* melonJS Game Engine - v14.
|
|
2
|
+
* melonJS Game Engine - v14.5.0
|
|
3
3
|
* http://www.melonjs.org
|
|
4
4
|
* melonjs is licensed under the MIT License.
|
|
5
5
|
* http://www.opensource.org/licenses/mit-license
|
|
6
|
-
* @copyright (C) 2011 -
|
|
6
|
+
* @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
|
|
7
7
|
*/
|
|
8
8
|
/**
|
|
9
9
|
* @classdesc
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* melonJS Game Engine - v14.5.0
|
|
3
|
+
* http://www.melonjs.org
|
|
4
|
+
* melonjs is licensed under the MIT License.
|
|
5
|
+
* http://www.opensource.org/licenses/mit-license
|
|
6
|
+
* @copyright (C) 2011 - 2023 Olivier Biot (AltByte Pte Ltd)
|
|
7
|
+
*/
|
|
8
|
+
import { on, CANVAS_ONRESIZE } from '../../../system/event.js';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @classdesc
|
|
12
|
+
* A base Compositor object.
|
|
13
|
+
*/
|
|
14
|
+
class Compositor {
|
|
15
|
+
/**
|
|
16
|
+
* @param {WebGLRenderer} renderer - the current WebGL renderer session
|
|
17
|
+
*/
|
|
18
|
+
constructor (renderer) {
|
|
19
|
+
this.init(renderer);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Initialize the compositor
|
|
24
|
+
* @ignore
|
|
25
|
+
*/
|
|
26
|
+
init (renderer) {
|
|
27
|
+
// local reference
|
|
28
|
+
var gl = renderer.gl;
|
|
29
|
+
|
|
30
|
+
// the associated renderer
|
|
31
|
+
this.renderer = renderer;
|
|
32
|
+
|
|
33
|
+
// WebGL context
|
|
34
|
+
this.gl = renderer.gl;
|
|
35
|
+
|
|
36
|
+
// Global fill color
|
|
37
|
+
this.color = renderer.currentColor;
|
|
38
|
+
|
|
39
|
+
// Global transformation matrix
|
|
40
|
+
this.viewMatrix = renderer.currentTransform;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* a reference to the active WebGL shader
|
|
44
|
+
* @type {GLShader}
|
|
45
|
+
*/
|
|
46
|
+
this.activeShader = null;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* primitive type to render (gl.POINTS, gl.LINE_STRIP, gl.LINE_LOOP, gl.LINES, gl.TRIANGLE_STRIP, gl.TRIANGLE_FAN, gl.TRIANGLES)
|
|
50
|
+
* @type {number}
|
|
51
|
+
* @default gl.TRIANGLES
|
|
52
|
+
*/
|
|
53
|
+
this.mode = gl.TRIANGLES;
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* an array of vertex attribute properties
|
|
57
|
+
* @see WebGLCompositor.addAttribute
|
|
58
|
+
* @type {Array}
|
|
59
|
+
*/
|
|
60
|
+
this.attributes = [];
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* the size of a single vertex in bytes
|
|
64
|
+
* (will automatically be calculated as attributes definitions are added)
|
|
65
|
+
* @see WebGLCompositor.addAttribute
|
|
66
|
+
* @type {number}
|
|
67
|
+
*/
|
|
68
|
+
this.vertexByteSize = 0;
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* the size of a single vertex in floats
|
|
72
|
+
* (will automatically be calculated as attributes definitions are added)
|
|
73
|
+
* @see WebGLCompositor.addAttribute
|
|
74
|
+
* @type {number}
|
|
75
|
+
*/
|
|
76
|
+
this.vertexSize = 0;
|
|
77
|
+
|
|
78
|
+
// register to the CANVAS resize channel
|
|
79
|
+
on(CANVAS_ONRESIZE, (width, height) => {
|
|
80
|
+
this.flush();
|
|
81
|
+
this.setViewport(0, 0, width, height);
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Reset compositor internal state
|
|
87
|
+
* @ignore
|
|
88
|
+
*/
|
|
89
|
+
reset() {
|
|
90
|
+
// WebGL context
|
|
91
|
+
this.gl = this.renderer.gl;
|
|
92
|
+
|
|
93
|
+
this.flush();
|
|
94
|
+
|
|
95
|
+
// initial viewport size
|
|
96
|
+
this.setViewport(
|
|
97
|
+
0, 0,
|
|
98
|
+
this.renderer.getCanvas().width,
|
|
99
|
+
this.renderer.getCanvas().height
|
|
100
|
+
);
|
|
101
|
+
|
|
102
|
+
// Initialize clear color
|
|
103
|
+
this.clearColor(0.0, 0.0, 0.0, 0.0);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* add vertex attribute property definition to the compositor
|
|
108
|
+
* @param {string} name - name of the attribute in the vertex shader
|
|
109
|
+
* @param {number} size - number of components per vertex attribute. Must be 1, 2, 3, or 4.
|
|
110
|
+
* @param {GLenum} type - data type of each component in the array
|
|
111
|
+
* @param {boolean} normalized - whether integer data values should be normalized into a certain range when being cast to a float
|
|
112
|
+
* @param {number} offset - offset in bytes of the first component in the vertex attribute array
|
|
113
|
+
*/
|
|
114
|
+
addAttribute(name, size, type, normalized, offset) {
|
|
115
|
+
this.attributes.push({
|
|
116
|
+
name: name,
|
|
117
|
+
size: size,
|
|
118
|
+
type: type,
|
|
119
|
+
normalized: normalized,
|
|
120
|
+
offset: offset
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
switch (type) {
|
|
124
|
+
case this.gl.BYTE:
|
|
125
|
+
this.vertexByteSize += size * Int8Array.BYTES_PER_ELEMENT;
|
|
126
|
+
break;
|
|
127
|
+
case this.gl.UNSIGNED_BYTE:
|
|
128
|
+
this.vertexByteSize += size * Uint8Array.BYTES_PER_ELEMENT;
|
|
129
|
+
break;
|
|
130
|
+
case this.gl.SHORT:
|
|
131
|
+
this.vertexByteSize += size * Int16Array.BYTES_PER_ELEMENT;
|
|
132
|
+
break;
|
|
133
|
+
case this.gl.UNSIGNED_SHORT:
|
|
134
|
+
this.vertexByteSize += size * Uint16Array.BYTES_PER_ELEMENT;
|
|
135
|
+
break;
|
|
136
|
+
case this.gl.INT:
|
|
137
|
+
this.vertexByteSize += size * Int32Array.BYTES_PER_ELEMENT;
|
|
138
|
+
break;
|
|
139
|
+
case this.gl.UNSIGNED_INT:
|
|
140
|
+
this.vertexByteSize += size * Uint32Array.BYTES_PER_ELEMENT;
|
|
141
|
+
break;
|
|
142
|
+
case this.gl.FLOAT:
|
|
143
|
+
this.vertexByteSize += size * Float32Array.BYTES_PER_ELEMENT;
|
|
144
|
+
break;
|
|
145
|
+
default:
|
|
146
|
+
throw new Error("Invalid GL Attribute type");
|
|
147
|
+
}
|
|
148
|
+
this.vertexSize = this.vertexByteSize / Float32Array.BYTES_PER_ELEMENT;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Sets the viewport
|
|
153
|
+
* @param {number} x - x position of viewport
|
|
154
|
+
* @param {number} y - y position of viewport
|
|
155
|
+
* @param {number} w - width of viewport
|
|
156
|
+
* @param {number} h - height of viewport
|
|
157
|
+
*/
|
|
158
|
+
setViewport(x, y, w, h) {
|
|
159
|
+
this.gl.viewport(x, y, w, h);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* set/change the current projection matrix
|
|
164
|
+
* @param {Matrix3d} matrix
|
|
165
|
+
*/
|
|
166
|
+
setProjection(matrix) {
|
|
167
|
+
this.activeShader.setUniform("uProjectionMatrix", matrix);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* Select the shader to use for compositing
|
|
172
|
+
* @see GLShader
|
|
173
|
+
* @param {GLShader} shader - a reference to a GLShader instance
|
|
174
|
+
*/
|
|
175
|
+
useShader(shader) {
|
|
176
|
+
if (this.activeShader !== shader) {
|
|
177
|
+
this.flush();
|
|
178
|
+
this.activeShader = shader;
|
|
179
|
+
this.activeShader.bind();
|
|
180
|
+
this.activeShader.setUniform("uProjectionMatrix", this.renderer.projectionMatrix);
|
|
181
|
+
this.activeShader.setVertexAttributes(this.gl, this.attributes, this.vertexByteSize);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Flush batched texture operations to the GPU
|
|
187
|
+
* @param {number} [mode=gl.TRIANGLES] - the GL drawing mode
|
|
188
|
+
*/
|
|
189
|
+
flush(mode = this.mode) {
|
|
190
|
+
var vertex = this.vertexBuffer;
|
|
191
|
+
var vertexCount = vertex.vertexCount;
|
|
192
|
+
|
|
193
|
+
if (vertexCount > 0) {
|
|
194
|
+
var gl = this.gl;
|
|
195
|
+
var vertexSize = vertex.vertexSize;
|
|
196
|
+
|
|
197
|
+
// Copy data into stream buffer
|
|
198
|
+
if (this.renderer.WebGLVersion > 1) {
|
|
199
|
+
gl.bufferData(gl.ARRAY_BUFFER, vertex.toFloat32(), gl.STREAM_DRAW, 0, vertexCount * vertexSize);
|
|
200
|
+
} else {
|
|
201
|
+
gl.bufferData(gl.ARRAY_BUFFER, vertex.toFloat32(0, vertexCount * vertexSize), gl.STREAM_DRAW);
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
gl.drawArrays(mode, 0, vertexCount);
|
|
205
|
+
|
|
206
|
+
// clear the vertex buffer
|
|
207
|
+
vertex.clear();
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* Clear the frame buffer
|
|
213
|
+
* @param {number} [alpha = 0.0] - the alpha value used when clearing the framebuffer
|
|
214
|
+
*/
|
|
215
|
+
clear(alpha = 0) {
|
|
216
|
+
var gl = this.gl;
|
|
217
|
+
gl.clearColor(0, 0, 0, alpha);
|
|
218
|
+
gl.clear(gl.COLOR_BUFFER_BIT | gl.STENCIL_BUFFER_BIT);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* Specify the color values used when clearing color buffers. The values are clamped between 0 and 1.
|
|
223
|
+
* @param {number} [r = 0] - the red color value used when the color buffers are cleared
|
|
224
|
+
* @param {number} [g = 0] - the green color value used when the color buffers are cleared
|
|
225
|
+
* @param {number} [b = 0] - the blue color value used when the color buffers are cleared
|
|
226
|
+
* @param {number} [a = 0] - the alpha color value used when the color buffers are cleared
|
|
227
|
+
*/
|
|
228
|
+
clearColor(r = 0, g = 0, b = 0, a = 0) {
|
|
229
|
+
var gl = this.gl;
|
|
230
|
+
gl.clearColor(r, g, b, a);
|
|
231
|
+
gl.clear(gl.COLOR_BUFFER_BIT);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
export { Compositor as default };
|