melonjs 17.3.0 → 18.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{dist/types → build}/application/application.d.ts +16 -10
- package/build/application/application.d.ts.map +1 -0
- package/build/application/defaultApplicationSettings.d.ts +18 -0
- package/build/application/defaultApplicationSettings.d.ts.map +1 -0
- package/build/application/header.d.ts +11 -0
- package/build/application/header.d.ts.map +1 -0
- package/{dist/types → build}/application/resize.d.ts +2 -0
- package/build/application/resize.d.ts.map +1 -0
- package/build/application/scaleMethods.d.ts +44 -0
- package/build/application/scaleMethods.d.ts.map +1 -0
- package/build/application/settings.d.ts +85 -0
- package/build/application/settings.d.ts.map +1 -0
- package/{dist/types → build}/audio/audio.d.ts +37 -59
- package/build/audio/audio.d.ts.map +1 -0
- package/{dist/types → build}/camera/camera2d.d.ts +42 -75
- package/build/camera/camera2d.d.ts.map +1 -0
- package/build/const.d.ts +14 -0
- package/build/const.d.ts.map +1 -0
- package/build/geometries/earcut.d.ts +3 -0
- package/build/geometries/earcut.d.ts.map +1 -0
- package/build/geometries/ellipse.d.ts +117 -0
- package/build/geometries/ellipse.d.ts.map +1 -0
- package/build/geometries/line.d.ts +39 -0
- package/build/geometries/line.d.ts.map +1 -0
- package/build/geometries/observablePoint.d.ts +75 -0
- package/build/geometries/observablePoint.d.ts.map +1 -0
- package/{dist/types → build}/geometries/path2d.d.ts +11 -5
- package/build/geometries/path2d.d.ts.map +1 -0
- package/build/geometries/point.d.ts +44 -0
- package/build/geometries/point.d.ts.map +1 -0
- package/build/geometries/polygon.d.ts +182 -0
- package/build/geometries/polygon.d.ts.map +1 -0
- package/build/geometries/rectangle.d.ts +135 -0
- package/build/geometries/rectangle.d.ts.map +1 -0
- package/build/geometries/roundrect.d.ts +67 -0
- package/build/geometries/roundrect.d.ts.map +1 -0
- package/build/geometries/toarccanvas.d.ts +28 -0
- package/build/geometries/toarccanvas.d.ts.map +1 -0
- package/{dist/types → build}/index.d.ts +41 -45
- package/build/index.d.ts.map +1 -0
- package/build/index.js +28318 -0
- package/build/index.js.map +7 -0
- package/{dist/types → build}/input/gamepad.d.ts +3 -11
- package/build/input/gamepad.d.ts.map +1 -0
- package/{dist/types → build}/input/input.d.ts +4 -2
- package/build/input/input.d.ts.map +1 -0
- package/build/input/key.d.ts +105 -0
- package/build/input/key.d.ts.map +1 -0
- package/build/input/keyboard.d.ts +72 -0
- package/build/input/keyboard.d.ts.map +1 -0
- package/build/input/pointer.d.ts +180 -0
- package/build/input/pointer.d.ts.map +1 -0
- package/{dist/types → build}/input/pointerevent.d.ts +17 -15
- package/build/input/pointerevent.d.ts.map +1 -0
- package/{dist/types → build}/lang/console.d.ts +1 -0
- package/build/lang/console.d.ts.map +1 -0
- package/build/lang/deprecated.d.ts +24 -0
- package/build/lang/deprecated.d.ts.map +1 -0
- package/{dist/types → build}/level/level.d.ts +7 -7
- package/build/level/level.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/TMXGroup.d.ts +2 -2
- package/build/level/tiled/TMXGroup.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/TMXLayer.d.ts +4 -4
- package/build/level/tiled/TMXLayer.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/TMXObject.d.ts +3 -3
- package/build/level/tiled/TMXObject.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/TMXTile.d.ts +4 -5
- package/build/level/tiled/TMXTile.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/TMXTileMap.d.ts +4 -4
- package/build/level/tiled/TMXTileMap.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/TMXTileset.d.ts +3 -3
- package/build/level/tiled/TMXTileset.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/TMXTilesetGroup.d.ts +1 -1
- package/build/level/tiled/TMXTilesetGroup.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/TMXUtils.d.ts +2 -1
- package/build/level/tiled/TMXUtils.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/constants.d.ts +1 -0
- package/build/level/tiled/constants.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/renderer/TMXHexagonalRenderer.d.ts +3 -4
- package/build/level/tiled/renderer/TMXHexagonalRenderer.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/renderer/TMXIsometricRenderer.d.ts +2 -3
- package/build/level/tiled/renderer/TMXIsometricRenderer.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/renderer/TMXOrthogonalRenderer.d.ts +1 -2
- package/build/level/tiled/renderer/TMXOrthogonalRenderer.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/renderer/TMXRenderer.d.ts +7 -7
- package/build/level/tiled/renderer/TMXRenderer.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/renderer/TMXStaggeredRenderer.d.ts +1 -2
- package/build/level/tiled/renderer/TMXStaggeredRenderer.d.ts.map +1 -0
- package/{dist/types → build}/level/tiled/renderer/autodetect.d.ts +4 -3
- package/build/level/tiled/renderer/autodetect.d.ts.map +1 -0
- package/build/loader/cache.d.ts +10 -0
- package/build/loader/cache.d.ts.map +1 -0
- package/{dist/types → build}/loader/loader.d.ts +29 -53
- package/build/loader/loader.d.ts.map +1 -0
- package/{dist/types → build}/loader/loadingscreen.d.ts +1 -0
- package/build/loader/loadingscreen.d.ts.map +1 -0
- package/{dist/types → build}/loader/parsers/binary.d.ts +2 -1
- package/build/loader/parsers/binary.d.ts.map +1 -0
- package/{dist/types → build}/loader/parsers/compressed_textures/compressed_image.d.ts +1 -0
- package/build/loader/parsers/compressed_textures/compressed_image.d.ts.map +1 -0
- package/build/loader/parsers/compressed_textures/parseDDS.d.ts +2 -0
- package/build/loader/parsers/compressed_textures/parseDDS.d.ts.map +1 -0
- package/build/loader/parsers/compressed_textures/parseKTX.d.ts +2 -0
- package/build/loader/parsers/compressed_textures/parseKTX.d.ts.map +1 -0
- package/build/loader/parsers/compressed_textures/parseKTX2.d.ts +2 -0
- package/build/loader/parsers/compressed_textures/parseKTX2.d.ts.map +1 -0
- package/build/loader/parsers/compressed_textures/parsePKM.d.ts +2 -0
- package/build/loader/parsers/compressed_textures/parsePKM.d.ts.map +1 -0
- package/build/loader/parsers/compressed_textures/parsePVR.d.ts +2 -0
- package/build/loader/parsers/compressed_textures/parsePVR.d.ts.map +1 -0
- package/{dist/types → build}/loader/parsers/fetchdata.d.ts +2 -1
- package/build/loader/parsers/fetchdata.d.ts.map +1 -0
- package/{dist/types → build}/loader/parsers/fontface.d.ts +2 -1
- package/build/loader/parsers/fontface.d.ts.map +1 -0
- package/{dist/types → build}/loader/parsers/image.d.ts +2 -1
- package/build/loader/parsers/image.d.ts.map +1 -0
- package/{dist/types → build}/loader/parsers/json.d.ts +2 -1
- package/build/loader/parsers/json.d.ts.map +1 -0
- package/{dist/types → build}/loader/parsers/script.d.ts +2 -1
- package/build/loader/parsers/script.d.ts.map +1 -0
- package/{dist/types → build}/loader/parsers/tmx.d.ts +2 -1
- package/build/loader/parsers/tmx.d.ts.map +1 -0
- package/{dist/types → build}/loader/parsers/video.d.ts +2 -1
- package/build/loader/parsers/video.d.ts.map +1 -0
- package/build/math/color.d.ts +192 -0
- package/build/math/color.d.ts.map +1 -0
- package/build/math/math.d.ts +128 -0
- package/build/math/math.d.ts.map +1 -0
- package/build/math/matrix2d.d.ts +163 -0
- package/build/math/matrix2d.d.ts.map +1 -0
- package/build/math/matrix3d.d.ts +188 -0
- package/build/math/matrix3d.d.ts.map +1 -0
- package/build/math/observableVector2d.d.ts +286 -0
- package/build/math/observableVector2d.d.ts.map +1 -0
- package/build/math/observableVector2d_old.d.ts +76 -0
- package/build/math/observableVector2d_old.d.ts.map +1 -0
- package/build/math/observableVector3d.d.ts +283 -0
- package/build/math/observableVector3d.d.ts.map +1 -0
- package/build/math/observableVector3d_old.d.ts +81 -0
- package/build/math/observableVector3d_old.d.ts.map +1 -0
- package/build/math/vector2d.d.ts +253 -0
- package/build/math/vector2d.d.ts.map +1 -0
- package/build/math/vector3d.d.ts +242 -0
- package/build/math/vector3d.d.ts.map +1 -0
- package/{dist/types → build}/particles/emitter.d.ts +16 -40
- package/build/particles/emitter.d.ts.map +1 -0
- package/build/particles/particle.d.ts +47 -0
- package/build/particles/particle.d.ts.map +1 -0
- package/{dist/types → build}/particles/settings.d.ts +1 -0
- package/build/particles/settings.d.ts.map +1 -0
- package/{dist/types → build}/physics/body.d.ts +39 -21
- package/build/physics/body.d.ts.map +1 -0
- package/build/physics/bounds.d.ts +192 -0
- package/build/physics/bounds.d.ts.map +1 -0
- package/{dist/types → build}/physics/collision.d.ts +6 -4
- package/build/physics/collision.d.ts.map +1 -0
- package/{dist/types → build}/physics/detector.d.ts +13 -5
- package/build/physics/detector.d.ts.map +1 -0
- package/{dist/types → build}/physics/quadtree.d.ts +7 -18
- package/build/physics/quadtree.d.ts.map +1 -0
- package/{dist/types → build}/physics/response.d.ts +46 -5
- package/build/physics/response.d.ts.map +1 -0
- package/{dist/types → build}/physics/sat.d.ts +8 -0
- package/build/physics/sat.d.ts.map +1 -0
- package/{dist/types → build}/physics/world.d.ts +9 -4
- package/build/physics/world.d.ts.map +1 -0
- package/{dist/types → build}/plugin/plugin.d.ts +11 -18
- package/build/plugin/plugin.d.ts.map +1 -0
- package/build/polyfill/console.d.ts +2 -0
- package/build/polyfill/console.d.ts.map +1 -0
- package/build/polyfill/index.d.ts +6 -0
- package/build/polyfill/index.d.ts.map +1 -0
- package/build/polyfill/roundrect.d.ts +2 -0
- package/build/polyfill/roundrect.d.ts.map +1 -0
- package/build/pool.d.ts +39 -0
- package/build/pool.d.ts.map +1 -0
- package/{dist/types → build}/renderable/collectable.d.ts +2 -2
- package/build/renderable/collectable.d.ts.map +1 -0
- package/build/renderable/colorlayer.d.ts +41 -0
- package/build/renderable/colorlayer.d.ts.map +1 -0
- package/{dist/types → build}/renderable/container.d.ts +50 -19
- package/build/renderable/container.d.ts.map +1 -0
- package/{dist/types → build}/renderable/draggable.d.ts +5 -13
- package/build/renderable/draggable.d.ts.map +1 -0
- package/{dist/types → build}/renderable/dragndrop.d.ts +12 -21
- package/build/renderable/dragndrop.d.ts.map +1 -0
- package/{dist/types → build}/renderable/entity/entity.d.ts +17 -11
- package/build/renderable/entity/entity.d.ts.map +1 -0
- package/{dist/types → build}/renderable/imagelayer.d.ts +28 -8
- package/build/renderable/imagelayer.d.ts.map +1 -0
- package/build/renderable/light2d.d.ts +73 -0
- package/build/renderable/light2d.d.ts.map +1 -0
- package/{dist/types → build}/renderable/nineslicesprite.d.ts +9 -3
- package/build/renderable/nineslicesprite.d.ts.map +1 -0
- package/{dist/types → build}/renderable/renderable.d.ts +71 -50
- package/build/renderable/renderable.d.ts.map +1 -0
- package/{dist/types → build}/renderable/sprite.d.ts +34 -13
- package/build/renderable/sprite.d.ts.map +1 -0
- package/{dist/types → build}/renderable/text/bitmaptext.d.ts +7 -8
- package/build/renderable/text/bitmaptext.d.ts.map +1 -0
- package/build/renderable/text/bitmaptextdata.d.ts +17 -0
- package/build/renderable/text/bitmaptextdata.d.ts.map +1 -0
- package/{dist/types → build}/renderable/text/glyph.d.ts +15 -3
- package/build/renderable/text/glyph.d.ts.map +1 -0
- package/{dist/types → build}/renderable/text/text.d.ts +7 -16
- package/build/renderable/text/text.d.ts.map +1 -0
- package/{dist/types → build}/renderable/text/textmetrics.d.ts +8 -9
- package/build/renderable/text/textmetrics.d.ts.map +1 -0
- package/{dist/types → build}/renderable/text/textstyle.d.ts +1 -0
- package/build/renderable/text/textstyle.d.ts.map +1 -0
- package/{dist/types → build}/renderable/trigger.d.ts +22 -7
- package/build/renderable/trigger.d.ts.map +1 -0
- package/{dist/types → build}/renderable/ui/uibaseelement.d.ts +7 -7
- package/build/renderable/ui/uibaseelement.d.ts.map +1 -0
- package/{dist/types → build}/renderable/ui/uispriteelement.d.ts +4 -6
- package/build/renderable/ui/uispriteelement.d.ts.map +1 -0
- package/{dist/types → build}/renderable/ui/uitextbutton.d.ts +17 -4
- package/build/renderable/ui/uitextbutton.d.ts.map +1 -0
- package/{dist/types → build}/state/stage.d.ts +3 -3
- package/build/state/stage.d.ts.map +1 -0
- package/{dist/types → build}/state/state.d.ts +10 -9
- package/build/state/state.d.ts.map +1 -0
- package/{dist/types → build}/system/device.d.ts +49 -80
- package/build/system/device.d.ts.map +1 -0
- package/build/system/dom.d.ts +2 -0
- package/build/system/dom.d.ts.map +1 -0
- package/{dist/types → build}/system/event.d.ts +124 -291
- package/build/system/event.d.ts.map +1 -0
- package/build/system/eventEmitter.d.ts +19 -0
- package/build/system/eventEmitter.d.ts.map +1 -0
- package/build/system/eventEmitter.spec.d.ts +2 -0
- package/build/system/eventEmitter.spec.d.ts.map +1 -0
- package/{dist/types/system/pooling.d.ts → build/system/legacy_pool.d.ts} +22 -7
- package/build/system/legacy_pool.d.ts.map +1 -0
- package/build/system/platform.d.ts +34 -0
- package/build/system/platform.d.ts.map +1 -0
- package/build/system/pool.d.ts +26 -0
- package/build/system/pool.d.ts.map +1 -0
- package/build/system/save.d.ts +3 -0
- package/build/system/save.d.ts.map +1 -0
- package/build/system/timer.d.ts +118 -0
- package/build/system/timer.d.ts.map +1 -0
- package/build/tweens/easing.d.ts +93 -0
- package/build/tweens/easing.d.ts.map +1 -0
- package/build/tweens/interpolation.d.ts +7 -0
- package/build/tweens/interpolation.d.ts.map +1 -0
- package/build/tweens/tween.d.ts +234 -0
- package/build/tweens/tween.d.ts.map +1 -0
- package/build/utils/agent.d.ts +16 -0
- package/build/utils/agent.d.ts.map +1 -0
- package/build/utils/array-multimap.d.ts +14 -0
- package/build/utils/array-multimap.d.ts.map +1 -0
- package/build/utils/array.d.ts +30 -0
- package/build/utils/array.d.ts.map +1 -0
- package/build/utils/file.d.ts +16 -0
- package/build/utils/file.d.ts.map +1 -0
- package/build/utils/function.d.ts +24 -0
- package/build/utils/function.d.ts.map +1 -0
- package/build/utils/semver.d.ts +2 -0
- package/build/utils/semver.d.ts.map +1 -0
- package/build/utils/string.d.ts +35 -0
- package/build/utils/string.d.ts.map +1 -0
- package/build/utils/types.d.ts +5 -0
- package/build/utils/types.d.ts.map +1 -0
- package/build/utils/utils.d.ts +49 -0
- package/build/utils/utils.d.ts.map +1 -0
- package/build/version.d.ts +5 -0
- package/build/version.d.ts.map +1 -0
- package/{dist/types → build}/video/canvas/canvas_renderer.d.ts +58 -22
- package/build/video/canvas/canvas_renderer.d.ts.map +1 -0
- package/{dist/types → build}/video/renderer.d.ts +38 -17
- package/build/video/renderer.d.ts.map +1 -0
- package/{dist/types → build}/video/rendertarget/canvasrendertarget.d.ts +20 -10
- package/build/video/rendertarget/canvasrendertarget.d.ts.map +1 -0
- package/{dist/types → build}/video/texture/atlas.d.ts +14 -9
- package/build/video/texture/atlas.d.ts.map +1 -0
- package/{dist/types → build}/video/texture/cache.d.ts +4 -3
- package/build/video/texture/cache.d.ts.map +1 -0
- package/{dist/types → build}/video/texture/parser/aseprite.d.ts +1 -0
- package/build/video/texture/parser/aseprite.d.ts.map +1 -0
- package/{dist/types → build}/video/texture/parser/spritesheet.d.ts +1 -0
- package/build/video/texture/parser/spritesheet.d.ts.map +1 -0
- package/{dist/types → build}/video/texture/parser/texturepacker.d.ts +1 -0
- package/build/video/texture/parser/texturepacker.d.ts.map +1 -0
- package/build/video/utils/autodetect.d.ts +8 -0
- package/build/video/utils/autodetect.d.ts.map +1 -0
- package/{dist/types → build}/video/video.d.ts +4 -3
- package/build/video/video.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/buffer/vertex.d.ts +5 -6
- package/build/video/webgl/buffer/vertex.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/compositors/compositor.d.ts +9 -2
- package/build/video/webgl/compositors/compositor.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/compositors/primitive_compositor.d.ts +7 -3
- package/build/video/webgl/compositors/primitive_compositor.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/compositors/quad_compositor.d.ts +5 -5
- package/build/video/webgl/compositors/quad_compositor.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/glshader.d.ts +2 -2
- package/build/video/webgl/glshader.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/utils/attributes.d.ts +1 -0
- package/build/video/webgl/utils/attributes.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/utils/precision.d.ts +1 -0
- package/build/video/webgl/utils/precision.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/utils/program.d.ts +1 -0
- package/build/video/webgl/utils/program.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/utils/string.d.ts +1 -0
- package/build/video/webgl/utils/string.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/utils/uniforms.d.ts +1 -0
- package/build/video/webgl/utils/uniforms.d.ts.map +1 -0
- package/{dist/types → build}/video/webgl/webgl_renderer.d.ts +55 -43
- package/build/video/webgl/webgl_renderer.d.ts.map +1 -0
- package/package.json +83 -105
- package/LICENSE.md +0 -21
- package/README.md +0 -223
- package/dist/melonjs.mjs/_virtual/_commonjsHelpers.js +0 -14
- package/dist/melonjs.mjs/_virtual/earcut.js +0 -10
- package/dist/melonjs.mjs/_virtual/howler.js +0 -10
- package/dist/melonjs.mjs/_virtual/index.js +0 -10
- package/dist/melonjs.mjs/_virtual/re.js +0 -10
- package/dist/melonjs.mjs/application/application.js +0 -437
- package/dist/melonjs.mjs/application/header.js +0 -35
- package/dist/melonjs.mjs/application/resize.js +0 -123
- package/dist/melonjs.mjs/application/settings.js +0 -65
- package/dist/melonjs.mjs/audio/audio.js +0 -618
- package/dist/melonjs.mjs/camera/camera2d.js +0 -729
- package/dist/melonjs.mjs/const.js +0 -32
- package/dist/melonjs.mjs/geometries/ellipse.js +0 -245
- package/dist/melonjs.mjs/geometries/line.js +0 -108
- package/dist/melonjs.mjs/geometries/path2d.js +0 -474
- package/dist/melonjs.mjs/geometries/point.js +0 -80
- package/dist/melonjs.mjs/geometries/poly.js +0 -433
- package/dist/melonjs.mjs/geometries/rectangle.js +0 -330
- package/dist/melonjs.mjs/geometries/roundrect.js +0 -165
- package/dist/melonjs.mjs/geometries/toarccanvas.js +0 -103
- package/dist/melonjs.mjs/index.js +0 -239
- package/dist/melonjs.mjs/input/gamepad.js +0 -495
- package/dist/melonjs.mjs/input/input.js +0 -26
- package/dist/melonjs.mjs/input/keyboard.js +0 -470
- package/dist/melonjs.mjs/input/pointer.js +0 -393
- package/dist/melonjs.mjs/input/pointerevent.js +0 -803
- package/dist/melonjs.mjs/lang/console.js +0 -44
- package/dist/melonjs.mjs/lang/deprecated.js +0 -200
- package/dist/melonjs.mjs/level/level.js +0 -298
- package/dist/melonjs.mjs/level/tiled/TMXGroup.js +0 -120
- package/dist/melonjs.mjs/level/tiled/TMXLayer.js +0 -432
- package/dist/melonjs.mjs/level/tiled/TMXObject.js +0 -295
- package/dist/melonjs.mjs/level/tiled/TMXTile.js +0 -177
- package/dist/melonjs.mjs/level/tiled/TMXTileMap.js +0 -574
- package/dist/melonjs.mjs/level/tiled/TMXTileset.js +0 -292
- package/dist/melonjs.mjs/level/tiled/TMXTilesetGroup.js +0 -74
- package/dist/melonjs.mjs/level/tiled/TMXUtils.js +0 -417
- package/dist/melonjs.mjs/level/tiled/constants.js +0 -17
- package/dist/melonjs.mjs/level/tiled/renderer/TMXHexagonalRenderer.js +0 -503
- package/dist/melonjs.mjs/level/tiled/renderer/TMXIsometricRenderer.js +0 -215
- package/dist/melonjs.mjs/level/tiled/renderer/TMXOrthogonalRenderer.js +0 -155
- package/dist/melonjs.mjs/level/tiled/renderer/TMXRenderer.js +0 -113
- package/dist/melonjs.mjs/level/tiled/renderer/TMXStaggeredRenderer.js +0 -107
- package/dist/melonjs.mjs/level/tiled/renderer/autodetect.js +0 -38
- package/dist/melonjs.mjs/loader/cache.js +0 -30
- package/dist/melonjs.mjs/loader/loader.js +0 -728
- package/dist/melonjs.mjs/loader/loadingscreen.js +0 -118
- package/dist/melonjs.mjs/loader/melonjs_logo.png.js +0 -10
- package/dist/melonjs.mjs/loader/parsers/binary.js +0 -42
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/compressed_image.js +0 -58
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/parseDDS.js +0 -13
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/parseKTX.js +0 -13
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/parseKTX2.js +0 -13
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/parsePKM.js +0 -13
- package/dist/melonjs.mjs/loader/parsers/compressed_textures/parsePVR.js +0 -136
- package/dist/melonjs.mjs/loader/parsers/fetchdata.js +0 -62
- package/dist/melonjs.mjs/loader/parsers/fontface.js +0 -62
- package/dist/melonjs.mjs/loader/parsers/image.js +0 -129
- package/dist/melonjs.mjs/loader/parsers/json.js +0 -43
- package/dist/melonjs.mjs/loader/parsers/script.js +0 -46
- package/dist/melonjs.mjs/loader/parsers/tmx.js +0 -103
- package/dist/melonjs.mjs/loader/parsers/video.js +0 -99
- package/dist/melonjs.mjs/math/color.js +0 -635
- package/dist/melonjs.mjs/math/math.js +0 -221
- package/dist/melonjs.mjs/math/matrix2.js +0 -487
- package/dist/melonjs.mjs/math/matrix3.js +0 -621
- package/dist/melonjs.mjs/math/observable_vector2.js +0 -468
- package/dist/melonjs.mjs/math/observable_vector3.js +0 -558
- package/dist/melonjs.mjs/math/vector2.js +0 -431
- package/dist/melonjs.mjs/math/vector3.js +0 -468
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/arraymultimap.js +0 -45
- package/dist/melonjs.mjs/node_modules/@teppeis/multimaps/dist/esm/multimap.js +0 -130
- package/dist/melonjs.mjs/node_modules/earcut/src/earcut.js +0 -694
- package/dist/melonjs.mjs/node_modules/eventemitter3/index.js +0 -352
- package/dist/melonjs.mjs/node_modules/eventemitter3/index2.js +0 -12
- package/dist/melonjs.mjs/node_modules/howler/dist/howler.js +0 -3246
- package/dist/melonjs.mjs/node_modules/semver/classes/comparator.js +0 -165
- package/dist/melonjs.mjs/node_modules/semver/classes/range.js +0 -565
- package/dist/melonjs.mjs/node_modules/semver/classes/semver.js +0 -317
- package/dist/melonjs.mjs/node_modules/semver/functions/clean.js +0 -17
- package/dist/melonjs.mjs/node_modules/semver/functions/cmp.js +0 -68
- package/dist/melonjs.mjs/node_modules/semver/functions/coerce.js +0 -73
- package/dist/melonjs.mjs/node_modules/semver/functions/compare-build.js +0 -18
- package/dist/melonjs.mjs/node_modules/semver/functions/compare-loose.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/compare.js +0 -16
- package/dist/melonjs.mjs/node_modules/semver/functions/diff.js +0 -76
- package/dist/melonjs.mjs/node_modules/semver/functions/eq.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/gt.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/gte.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/inc.js +0 -30
- package/dist/melonjs.mjs/node_modules/semver/functions/lt.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/lte.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/major.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/minor.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/neq.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/parse.js +0 -27
- package/dist/melonjs.mjs/node_modules/semver/functions/patch.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/prerelease.js +0 -17
- package/dist/melonjs.mjs/node_modules/semver/functions/rcompare.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/rsort.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/satisfies.js +0 -21
- package/dist/melonjs.mjs/node_modules/semver/functions/sort.js +0 -14
- package/dist/melonjs.mjs/node_modules/semver/functions/valid.js +0 -17
- package/dist/melonjs.mjs/node_modules/semver/index.js +0 -140
- package/dist/melonjs.mjs/node_modules/semver/internal/constants.js +0 -44
- package/dist/melonjs.mjs/node_modules/semver/internal/debug.js +0 -18
- package/dist/melonjs.mjs/node_modules/semver/internal/identifiers.js +0 -32
- package/dist/melonjs.mjs/node_modules/semver/internal/lrucache.js +0 -49
- package/dist/melonjs.mjs/node_modules/semver/internal/parse-options.js +0 -24
- package/dist/melonjs.mjs/node_modules/semver/internal/re.js +0 -234
- package/dist/melonjs.mjs/node_modules/semver/ranges/gtr.js +0 -15
- package/dist/melonjs.mjs/node_modules/semver/ranges/intersects.js +0 -18
- package/dist/melonjs.mjs/node_modules/semver/ranges/ltr.js +0 -15
- package/dist/melonjs.mjs/node_modules/semver/ranges/max-satisfying.js +0 -37
- package/dist/melonjs.mjs/node_modules/semver/ranges/min-satisfying.js +0 -36
- package/dist/melonjs.mjs/node_modules/semver/ranges/min-version.js +0 -74
- package/dist/melonjs.mjs/node_modules/semver/ranges/outside.js +0 -98
- package/dist/melonjs.mjs/node_modules/semver/ranges/simplify.js +0 -59
- package/dist/melonjs.mjs/node_modules/semver/ranges/subset.js +0 -261
- package/dist/melonjs.mjs/node_modules/semver/ranges/to-comparators.js +0 -19
- package/dist/melonjs.mjs/node_modules/semver/ranges/valid.js +0 -22
- package/dist/melonjs.mjs/particles/emitter.js +0 -265
- package/dist/melonjs.mjs/particles/particle.js +0 -186
- package/dist/melonjs.mjs/particles/settings.js +0 -317
- package/dist/melonjs.mjs/physics/body.js +0 -706
- package/dist/melonjs.mjs/physics/bounds.js +0 -409
- package/dist/melonjs.mjs/physics/collision.js +0 -130
- package/dist/melonjs.mjs/physics/detector.js +0 -218
- package/dist/melonjs.mjs/physics/quadtree.js +0 -396
- package/dist/melonjs.mjs/physics/response.js +0 -57
- package/dist/melonjs.mjs/physics/sat.js +0 -483
- package/dist/melonjs.mjs/physics/world.js +0 -224
- package/dist/melonjs.mjs/plugin/plugin.js +0 -168
- package/dist/melonjs.mjs/renderable/collectable.js +0 -60
- package/dist/melonjs.mjs/renderable/colorlayer.js +0 -78
- package/dist/melonjs.mjs/renderable/container.js +0 -994
- package/dist/melonjs.mjs/renderable/draggable.js +0 -121
- package/dist/melonjs.mjs/renderable/dragndrop.js +0 -114
- package/dist/melonjs.mjs/renderable/entity/entity.js +0 -254
- package/dist/melonjs.mjs/renderable/imagelayer.js +0 -288
- package/dist/melonjs.mjs/renderable/light2d.js +0 -164
- package/dist/melonjs.mjs/renderable/nineslicesprite.js +0 -242
- package/dist/melonjs.mjs/renderable/renderable.js +0 -860
- package/dist/melonjs.mjs/renderable/sprite.js +0 -694
- package/dist/melonjs.mjs/renderable/text/bitmaptext.js +0 -421
- package/dist/melonjs.mjs/renderable/text/bitmaptextdata.js +0 -195
- package/dist/melonjs.mjs/renderable/text/glyph.js +0 -65
- package/dist/melonjs.mjs/renderable/text/text.js +0 -424
- package/dist/melonjs.mjs/renderable/text/textmetrics.js +0 -176
- package/dist/melonjs.mjs/renderable/text/textstyle.js +0 -21
- package/dist/melonjs.mjs/renderable/trigger.js +0 -158
- package/dist/melonjs.mjs/renderable/ui/uibaseelement.js +0 -285
- package/dist/melonjs.mjs/renderable/ui/uispriteelement.js +0 -231
- package/dist/melonjs.mjs/renderable/ui/uitextbutton.js +0 -146
- package/dist/melonjs.mjs/state/stage.js +0 -235
- package/dist/melonjs.mjs/state/state.js +0 -548
- package/dist/melonjs.mjs/system/device.js +0 -872
- package/dist/melonjs.mjs/system/dom.js +0 -79
- package/dist/melonjs.mjs/system/event.js +0 -606
- package/dist/melonjs.mjs/system/platform.js +0 -43
- package/dist/melonjs.mjs/system/pooling.js +0 -182
- package/dist/melonjs.mjs/system/save.js +0 -157
- package/dist/melonjs.mjs/system/timer.js +0 -274
- package/dist/melonjs.mjs/tweens/easing.js +0 -334
- package/dist/melonjs.mjs/tweens/interpolation.js +0 -112
- package/dist/melonjs.mjs/tweens/tween.js +0 -479
- package/dist/melonjs.mjs/utils/agent.js +0 -77
- package/dist/melonjs.mjs/utils/array.js +0 -63
- package/dist/melonjs.mjs/utils/file.js +0 -54
- package/dist/melonjs.mjs/utils/function.js +0 -69
- package/dist/melonjs.mjs/utils/string.js +0 -82
- package/dist/melonjs.mjs/utils/utils.js +0 -139
- package/dist/melonjs.mjs/video/canvas/canvas_renderer.js +0 -883
- package/dist/melonjs.mjs/video/renderer.js +0 -393
- package/dist/melonjs.mjs/video/rendertarget/canvasrendertarget.js +0 -310
- package/dist/melonjs.mjs/video/texture/atlas.js +0 -460
- package/dist/melonjs.mjs/video/texture/cache.js +0 -186
- package/dist/melonjs.mjs/video/texture/parser/aseprite.js +0 -78
- package/dist/melonjs.mjs/video/texture/parser/spritesheet.js +0 -77
- package/dist/melonjs.mjs/video/texture/parser/texturepacker.js +0 -64
- package/dist/melonjs.mjs/video/utils/autodetect.js +0 -27
- package/dist/melonjs.mjs/video/video.js +0 -142
- package/dist/melonjs.mjs/video/webgl/buffer/vertex.js +0 -146
- package/dist/melonjs.mjs/video/webgl/compositors/compositor.js +0 -234
- package/dist/melonjs.mjs/video/webgl/compositors/primitive_compositor.js +0 -77
- package/dist/melonjs.mjs/video/webgl/compositors/quad_compositor.js +0 -254
- package/dist/melonjs.mjs/video/webgl/glshader.js +0 -166
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.frag.js +0 -10
- package/dist/melonjs.mjs/video/webgl/shaders/primitive.vert.js +0 -10
- package/dist/melonjs.mjs/video/webgl/shaders/quad.frag.js +0 -10
- package/dist/melonjs.mjs/video/webgl/shaders/quad.vert.js +0 -10
- package/dist/melonjs.mjs/video/webgl/utils/attributes.js +0 -25
- package/dist/melonjs.mjs/video/webgl/utils/precision.js +0 -38
- package/dist/melonjs.mjs/video/webgl/utils/program.js +0 -67
- package/dist/melonjs.mjs/video/webgl/utils/string.js +0 -25
- package/dist/melonjs.mjs/video/webgl/utils/uniforms.js +0 -92
- package/dist/melonjs.mjs/video/webgl/webgl_renderer.js +0 -1199
- package/dist/melonjs.module.js +0 -42838
- package/dist/types/application/header.d.ts +0 -5
- package/dist/types/application/settings.d.ts +0 -105
- package/dist/types/const.d.ts +0 -21
- package/dist/types/geometries/ellipse.d.ts +0 -127
- package/dist/types/geometries/line.d.ts +0 -11
- package/dist/types/geometries/point.d.ts +0 -46
- package/dist/types/geometries/poly.d.ts +0 -175
- package/dist/types/geometries/rectangle.d.ts +0 -130
- package/dist/types/geometries/roundrect.d.ts +0 -43
- package/dist/types/geometries/toarccanvas.d.ts +0 -10
- package/dist/types/input/keyboard.d.ts +0 -205
- package/dist/types/input/pointer.d.ts +0 -261
- package/dist/types/lang/deprecated.d.ts +0 -68
- package/dist/types/loader/cache.d.ts +0 -9
- package/dist/types/loader/parsers/compressed_textures/parseDDS.d.ts +0 -1
- package/dist/types/loader/parsers/compressed_textures/parseKTX.d.ts +0 -1
- package/dist/types/loader/parsers/compressed_textures/parseKTX2.d.ts +0 -1
- package/dist/types/loader/parsers/compressed_textures/parsePKM.d.ts +0 -1
- package/dist/types/loader/parsers/compressed_textures/parsePVR.d.ts +0 -1
- package/dist/types/math/color.d.ts +0 -179
- package/dist/types/math/math.d.ts +0 -149
- package/dist/types/math/matrix2.d.ts +0 -165
- package/dist/types/math/matrix3.d.ts +0 -177
- package/dist/types/math/observable_vector2.d.ts +0 -278
- package/dist/types/math/observable_vector3.d.ts +0 -277
- package/dist/types/math/vector2.d.ts +0 -255
- package/dist/types/math/vector3.d.ts +0 -266
- package/dist/types/particles/particle.d.ts +0 -32
- package/dist/types/physics/bounds.d.ts +0 -195
- package/dist/types/polyfill/console.d.ts +0 -1
- package/dist/types/polyfill/index.d.ts +0 -1
- package/dist/types/polyfill/roundrect.d.ts +0 -1
- package/dist/types/renderable/colorlayer.d.ts +0 -28
- package/dist/types/renderable/light2d.d.ts +0 -58
- package/dist/types/renderable/text/bitmaptextdata.d.ts +0 -35
- package/dist/types/system/dom.d.ts +0 -1
- package/dist/types/system/platform.d.ts +0 -33
- package/dist/types/system/save.d.ts +0 -25
- package/dist/types/system/timer.d.ts +0 -126
- package/dist/types/tweens/easing.d.ts +0 -46
- package/dist/types/tweens/interpolation.d.ts +0 -18
- package/dist/types/tweens/tween.d.ts +0 -195
- package/dist/types/utils/agent.d.ts +0 -21
- package/dist/types/utils/array.d.ts +0 -39
- package/dist/types/utils/file.d.ts +0 -27
- package/dist/types/utils/function.d.ts +0 -31
- package/dist/types/utils/string.d.ts +0 -50
- package/dist/types/utils/utils.d.ts +0 -54
- package/dist/types/video/utils/autodetect.d.ts +0 -5
- package/src/application/application.js +0 -429
- package/src/application/header.js +0 -26
- package/src/application/resize.js +0 -114
- package/src/application/settings.js +0 -56
- package/src/audio/audio.js +0 -617
- package/src/camera/camera2d.js +0 -724
- package/src/const.js +0 -23
- package/src/geometries/ellipse.js +0 -236
- package/src/geometries/line.js +0 -99
- package/src/geometries/path2d.js +0 -464
- package/src/geometries/point.js +0 -71
- package/src/geometries/poly.js +0 -424
- package/src/geometries/rectangle.js +0 -321
- package/src/geometries/roundrect.js +0 -156
- package/src/geometries/toarccanvas.js +0 -94
- package/src/index.js +0 -315
- package/src/input/gamepad.js +0 -487
- package/src/input/input.js +0 -17
- package/src/input/keyboard.js +0 -461
- package/src/input/pointer.js +0 -386
- package/src/input/pointerevent.js +0 -794
- package/src/lang/console.js +0 -36
- package/src/lang/deprecated.js +0 -192
- package/src/level/level.js +0 -290
- package/src/level/tiled/TMXGroup.js +0 -111
- package/src/level/tiled/TMXLayer.js +0 -424
- package/src/level/tiled/TMXObject.js +0 -286
- package/src/level/tiled/TMXTile.js +0 -168
- package/src/level/tiled/TMXTileMap.js +0 -569
- package/src/level/tiled/TMXTileset.js +0 -284
- package/src/level/tiled/TMXTilesetGroup.js +0 -66
- package/src/level/tiled/TMXUtils.js +0 -408
- package/src/level/tiled/constants.js +0 -8
- package/src/level/tiled/renderer/TMXHexagonalRenderer.js +0 -497
- package/src/level/tiled/renderer/TMXIsometricRenderer.js +0 -208
- package/src/level/tiled/renderer/TMXOrthogonalRenderer.js +0 -149
- package/src/level/tiled/renderer/TMXRenderer.js +0 -103
- package/src/level/tiled/renderer/TMXStaggeredRenderer.js +0 -100
- package/src/level/tiled/renderer/autodetect.js +0 -29
- package/src/loader/cache.js +0 -22
- package/src/loader/loader.js +0 -727
- package/src/loader/loadingscreen.js +0 -112
- package/src/loader/melonjs_logo.png +0 -0
- package/src/loader/parsers/binary.js +0 -33
- package/src/loader/parsers/compressed_textures/compressed_image.js +0 -49
- package/src/loader/parsers/compressed_textures/parseDDS.js +0 -5
- package/src/loader/parsers/compressed_textures/parseKTX.js +0 -5
- package/src/loader/parsers/compressed_textures/parseKTX2.js +0 -5
- package/src/loader/parsers/compressed_textures/parsePKM.js +0 -5
- package/src/loader/parsers/compressed_textures/parsePVR.js +0 -127
- package/src/loader/parsers/fetchdata.js +0 -53
- package/src/loader/parsers/fontface.js +0 -54
- package/src/loader/parsers/image.js +0 -120
- package/src/loader/parsers/json.js +0 -35
- package/src/loader/parsers/script.js +0 -37
- package/src/loader/parsers/tmx.js +0 -95
- package/src/loader/parsers/video.js +0 -90
- package/src/math/color.js +0 -627
- package/src/math/math.js +0 -212
- package/src/math/matrix2.js +0 -479
- package/src/math/matrix3.js +0 -613
- package/src/math/observable_vector2.js +0 -460
- package/src/math/observable_vector3.js +0 -550
- package/src/math/vector2.js +0 -423
- package/src/math/vector3.js +0 -460
- package/src/particles/emitter.js +0 -258
- package/src/particles/particle.js +0 -178
- package/src/particles/settings.js +0 -310
- package/src/physics/body.js +0 -698
- package/src/physics/bounds.js +0 -401
- package/src/physics/collision.js +0 -123
- package/src/physics/detector.js +0 -209
- package/src/physics/quadtree.js +0 -387
- package/src/physics/response.js +0 -48
- package/src/physics/sat.js +0 -473
- package/src/physics/world.js +0 -216
- package/src/plugin/plugin.js +0 -159
- package/src/polyfill/console.js +0 -11
- package/src/polyfill/index.js +0 -13
- package/src/polyfill/roundrect.js +0 -237
- package/src/renderable/collectable.js +0 -51
- package/src/renderable/colorlayer.js +0 -70
- package/src/renderable/container.js +0 -985
- package/src/renderable/draggable.js +0 -114
- package/src/renderable/dragndrop.js +0 -106
- package/src/renderable/entity/entity.js +0 -246
- package/src/renderable/imagelayer.js +0 -280
- package/src/renderable/light2d.js +0 -155
- package/src/renderable/nineslicesprite.js +0 -233
- package/src/renderable/renderable.js +0 -852
- package/src/renderable/sprite.js +0 -685
- package/src/renderable/text/bitmaptext.js +0 -418
- package/src/renderable/text/bitmaptextdata.js +0 -186
- package/src/renderable/text/glyph.js +0 -57
- package/src/renderable/text/text.js +0 -415
- package/src/renderable/text/textmetrics.js +0 -167
- package/src/renderable/text/textstyle.js +0 -12
- package/src/renderable/trigger.js +0 -149
- package/src/renderable/ui/uibaseelement.js +0 -276
- package/src/renderable/ui/uispriteelement.js +0 -223
- package/src/renderable/ui/uitextbutton.js +0 -140
- package/src/state/stage.js +0 -226
- package/src/state/state.js +0 -541
- package/src/system/device.js +0 -863
- package/src/system/dom.js +0 -70
- package/src/system/event.js +0 -597
- package/src/system/platform.js +0 -34
- package/src/system/pooling.js +0 -190
- package/src/system/save.js +0 -148
- package/src/system/timer.js +0 -281
- package/src/tweens/easing.js +0 -325
- package/src/tweens/interpolation.js +0 -103
- package/src/tweens/tween.js +0 -470
- package/src/utils/agent.js +0 -68
- package/src/utils/array.js +0 -54
- package/src/utils/file.js +0 -46
- package/src/utils/function.js +0 -60
- package/src/utils/string.js +0 -73
- package/src/utils/utils.js +0 -127
- package/src/video/canvas/canvas_renderer.js +0 -874
- package/src/video/renderer.js +0 -384
- package/src/video/rendertarget/canvasrendertarget.js +0 -303
- package/src/video/texture/atlas.js +0 -451
- package/src/video/texture/cache.js +0 -178
- package/src/video/texture/parser/aseprite.js +0 -69
- package/src/video/texture/parser/spritesheet.js +0 -68
- package/src/video/texture/parser/texturepacker.js +0 -55
- package/src/video/utils/autodetect.js +0 -18
- package/src/video/video.js +0 -160
- package/src/video/webgl/buffer/vertex.js +0 -137
- package/src/video/webgl/compositors/compositor.js +0 -225
- package/src/video/webgl/compositors/primitive_compositor.js +0 -68
- package/src/video/webgl/compositors/quad_compositor.js +0 -245
- package/src/video/webgl/glshader.js +0 -158
- package/src/video/webgl/shaders/primitive.frag +0 -5
- package/src/video/webgl/shaders/primitive.vert +0 -15
- package/src/video/webgl/shaders/quad.frag +0 -7
- package/src/video/webgl/shaders/quad.vert +0 -18
- package/src/video/webgl/utils/attributes.js +0 -16
- package/src/video/webgl/utils/precision.js +0 -29
- package/src/video/webgl/utils/program.js +0 -58
- package/src/video/webgl/utils/string.js +0 -16
- package/src/video/webgl/utils/uniforms.js +0 -84
- package/src/video/webgl/webgl_renderer.js +0 -1190
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import pool from "./../../../system/pooling.js";
|
|
2
|
-
import Vector2d from "./../../../math/vector2.js";
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* parse the given data and return a corresponding atlas
|
|
6
|
-
* @param {Object} data - atlas data information. See {@link loader.getJSON}
|
|
7
|
-
* @param {TextureAtlas} textureAtlas - the texture atlas class calling the parser
|
|
8
|
-
* @returns {Object} the corresponding Atlas
|
|
9
|
-
* @ignore
|
|
10
|
-
*/
|
|
11
|
-
export function parseSpriteSheet(data, textureAtlas) {
|
|
12
|
-
let atlas = {};
|
|
13
|
-
let image = data.image;
|
|
14
|
-
let spacing = data.spacing || 0;
|
|
15
|
-
let margin = data.margin || 0;
|
|
16
|
-
|
|
17
|
-
let width = image.width;
|
|
18
|
-
let height = image.height;
|
|
19
|
-
|
|
20
|
-
// calculate the sprite count (line, col)
|
|
21
|
-
let spritecount = pool.pull("Vector2d",
|
|
22
|
-
~~((width - margin + spacing) / (data.framewidth + spacing)),
|
|
23
|
-
~~((height - margin + spacing) / (data.frameheight + spacing))
|
|
24
|
-
);
|
|
25
|
-
|
|
26
|
-
// verifying the texture size
|
|
27
|
-
if ((width % (data.framewidth + spacing)) !== 0 ||
|
|
28
|
-
(height % (data.frameheight + spacing)) !== 0) {
|
|
29
|
-
let computed_width = spritecount.x * (data.framewidth + spacing);
|
|
30
|
-
let computed_height = spritecount.y * (data.frameheight + spacing);
|
|
31
|
-
if (computed_width - width !== spacing && computed_height - height !== spacing) {
|
|
32
|
-
// "truncate size" if delta is different from the spacing size
|
|
33
|
-
width = computed_width;
|
|
34
|
-
height = computed_height;
|
|
35
|
-
// warning message
|
|
36
|
-
console.warn(
|
|
37
|
-
"Spritesheet Texture for image: " + image.src +
|
|
38
|
-
" is not divisible by " + (data.framewidth + spacing) +
|
|
39
|
-
"x" + (data.frameheight + spacing) +
|
|
40
|
-
", truncating effective size to " + width + "x" + height
|
|
41
|
-
);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
// build the local atlas
|
|
46
|
-
for (let frame = 0, count = spritecount.x * spritecount.y; frame < count; frame++) {
|
|
47
|
-
let name = "" + frame;
|
|
48
|
-
atlas[name] = {
|
|
49
|
-
name : name,
|
|
50
|
-
texture : "default", // the source texture
|
|
51
|
-
offset : new Vector2d(
|
|
52
|
-
margin + (spacing + data.framewidth) * (frame % spritecount.x),
|
|
53
|
-
margin + (spacing + data.frameheight) * ~~(frame / spritecount.x)
|
|
54
|
-
),
|
|
55
|
-
anchorPoint : (data.anchorPoint || null),
|
|
56
|
-
trimmed : false,
|
|
57
|
-
trim : undefined,
|
|
58
|
-
width : data.framewidth,
|
|
59
|
-
height : data.frameheight,
|
|
60
|
-
angle : 0
|
|
61
|
-
};
|
|
62
|
-
textureAtlas.addUVs(atlas, name, width, height);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
pool.push(spritecount);
|
|
66
|
-
|
|
67
|
-
return atlas;
|
|
68
|
-
}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { ETA } from "./../../../math/math.js";
|
|
2
|
-
import Vector2d from "./../../../math/vector2.js";
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* parse the given data and return a corresponding atlas
|
|
6
|
-
* @param {Object} data - atlas data information. See {@link loader.getJSON}
|
|
7
|
-
* @param {TextureAtlas} textureAtlas - the texture atlas class calling the parser
|
|
8
|
-
* @returns {Object} the corresponding Atlas
|
|
9
|
-
* @ignore
|
|
10
|
-
*/
|
|
11
|
-
export function parseTexturePacker(data, textureAtlas) {
|
|
12
|
-
let atlas = {};
|
|
13
|
-
|
|
14
|
-
data.frames.forEach((frame) => {
|
|
15
|
-
// fix wrongly formatted JSON (e.g. last dummy object in ShoeBox)
|
|
16
|
-
if (frame.hasOwnProperty("filename")) {
|
|
17
|
-
// Source coordinates
|
|
18
|
-
let s = frame.frame;
|
|
19
|
-
let trimmed = !!frame.trimmed;
|
|
20
|
-
|
|
21
|
-
let trim;
|
|
22
|
-
|
|
23
|
-
if (trimmed) {
|
|
24
|
-
trim = {
|
|
25
|
-
x : frame.spriteSourceSize.x,
|
|
26
|
-
y : frame.spriteSourceSize.y,
|
|
27
|
-
w : frame.spriteSourceSize.w,
|
|
28
|
-
h : frame.spriteSourceSize.h
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
let originX, originY;
|
|
33
|
-
// Pixel-based offset origin from the top-left of the source frame
|
|
34
|
-
let hasTextureAnchorPoint = (frame.sourceSize && frame.pivot);
|
|
35
|
-
if (hasTextureAnchorPoint) {
|
|
36
|
-
originX = (frame.sourceSize.w * frame.pivot.x) - ((trimmed) ? trim.x : 0);
|
|
37
|
-
originY = (frame.sourceSize.h * frame.pivot.y) - ((trimmed) ? trim.y : 0);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
atlas[frame.filename] = {
|
|
41
|
-
name : frame.filename, // frame name
|
|
42
|
-
texture : data.meta.image || "default", // the source texture
|
|
43
|
-
offset : new Vector2d(s.x, s.y),
|
|
44
|
-
anchorPoint : (hasTextureAnchorPoint) ? new Vector2d(originX / s.w, originY / s.h) : null,
|
|
45
|
-
trimmed : trimmed,
|
|
46
|
-
trim : trim,
|
|
47
|
-
width : s.w,
|
|
48
|
-
height : s.h,
|
|
49
|
-
angle : (frame.rotated === true) ? -ETA : 0
|
|
50
|
-
};
|
|
51
|
-
textureAtlas.addUVs(atlas, frame.filename, data.meta.size.w, data.meta.size.h);
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
return atlas;
|
|
55
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { isWebGLSupported } from "../../system/device";
|
|
2
|
-
import WebGLRenderer from "../webgl/webgl_renderer";
|
|
3
|
-
import CanvasRenderer from "../canvas/canvas_renderer";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Auto-detect the best renderer to use
|
|
7
|
-
* @ignore
|
|
8
|
-
*/
|
|
9
|
-
export function autoDetectRenderer(options) {
|
|
10
|
-
try {
|
|
11
|
-
if (isWebGLSupported(options)) {
|
|
12
|
-
return new WebGLRenderer(options);
|
|
13
|
-
}
|
|
14
|
-
} catch (e) {
|
|
15
|
-
console.log("Error creating WebGL renderer :" + e.message);
|
|
16
|
-
}
|
|
17
|
-
return new CanvasRenderer(options);
|
|
18
|
-
}
|
package/src/video/video.js
DELETED
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
import * as event from "./../system/event.js";
|
|
2
|
-
import { initialized, game } from "./../index.js";
|
|
3
|
-
import * as device from "./../system/device.js";
|
|
4
|
-
import { throttle } from "../utils/function.js";
|
|
5
|
-
import { ApplicationSettings } from "../application/settings.js";
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* @namespace video
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Select the HTML5 Canvas renderer
|
|
13
|
-
* @memberof video
|
|
14
|
-
* @name CANVAS
|
|
15
|
-
* @static
|
|
16
|
-
*/
|
|
17
|
-
export { CANVAS } from "../const";
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Select the WebGL renderer
|
|
21
|
-
* @memberof video
|
|
22
|
-
* @name WEBGL
|
|
23
|
-
* @static
|
|
24
|
-
*/
|
|
25
|
-
export { WEBGL } from "../const";
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Auto-select the renderer (Attempt WebGL first, with fallback to Canvas)
|
|
29
|
-
* @memberof video
|
|
30
|
-
* @name AUTO
|
|
31
|
-
* @static
|
|
32
|
-
*/
|
|
33
|
-
export { AUTO } from "../const";
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* A reference to the active Canvas or WebGL active renderer renderer
|
|
37
|
-
* @memberof video
|
|
38
|
-
* @type {CanvasRenderer|WebGLRenderer}
|
|
39
|
-
*/
|
|
40
|
-
export let renderer = null;
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Initialize the "video" system (create a canvas based on the given arguments, and the related renderer). <br>
|
|
44
|
-
* @memberof video
|
|
45
|
-
* @param {number} width - The width of the canvas viewport
|
|
46
|
-
* @param {number} height - The height of the canvas viewport
|
|
47
|
-
* @param {ApplicationSettings} [options] - optional parameters for the renderer
|
|
48
|
-
* @returns {boolean} false if initialization failed (canvas not supported)
|
|
49
|
-
* @example
|
|
50
|
-
* // init the video with a 640x480 canvas
|
|
51
|
-
* me.video.init(640, 480, {
|
|
52
|
-
* parent : "screen",
|
|
53
|
-
* renderer : me.video.AUTO,
|
|
54
|
-
* scale : "auto",
|
|
55
|
-
* scaleMethod : "fit"
|
|
56
|
-
* });
|
|
57
|
-
*/
|
|
58
|
-
export function init(width, height, options) {
|
|
59
|
-
// ensure melonjs has been properly initialized
|
|
60
|
-
if (!initialized) {
|
|
61
|
-
throw new Error("me.video.init() called before engine initialization.");
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
try {
|
|
65
|
-
// initialize the default game Application with the given options
|
|
66
|
-
game.init(width, height, Object.assign(ApplicationSettings, options || {}));
|
|
67
|
-
} catch (e) {
|
|
68
|
-
console.log(e.message);
|
|
69
|
-
// me.video.init() historically returns false if failing at creating/using a HTML5 canvas
|
|
70
|
-
return false;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
// assign the default renderer
|
|
74
|
-
renderer = game.renderer;
|
|
75
|
-
|
|
76
|
-
//add a channel for the onresize/onorientationchange event
|
|
77
|
-
globalThis.addEventListener(
|
|
78
|
-
"resize",
|
|
79
|
-
throttle(
|
|
80
|
-
(e) => {
|
|
81
|
-
event.emit(event.WINDOW_ONRESIZE, e);
|
|
82
|
-
}, 100
|
|
83
|
-
), false
|
|
84
|
-
);
|
|
85
|
-
|
|
86
|
-
// Screen Orientation API
|
|
87
|
-
globalThis.addEventListener(
|
|
88
|
-
"orientationchange",
|
|
89
|
-
(e) => {
|
|
90
|
-
event.emit(event.WINDOW_ONORIENTATION_CHANGE, e);
|
|
91
|
-
},
|
|
92
|
-
false
|
|
93
|
-
);
|
|
94
|
-
|
|
95
|
-
// pre-fixed implementation on mozzila
|
|
96
|
-
globalThis.addEventListener(
|
|
97
|
-
"onmozorientationchange",
|
|
98
|
-
(e) => {
|
|
99
|
-
event.emit(event.WINDOW_ONORIENTATION_CHANGE, e);
|
|
100
|
-
},
|
|
101
|
-
false
|
|
102
|
-
);
|
|
103
|
-
|
|
104
|
-
if (device.screenOrientation === true) {
|
|
105
|
-
globalThis.screen.orientation.onchange = function (e) {
|
|
106
|
-
event.emit(event.WINDOW_ONORIENTATION_CHANGE, e);
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
// Automatically update relative canvas position on scroll
|
|
111
|
-
globalThis.addEventListener("scroll", throttle((e) => {
|
|
112
|
-
event.emit(event.WINDOW_ONSCROLL, e);
|
|
113
|
-
}, 100), false);
|
|
114
|
-
|
|
115
|
-
// notify the video has been initialized
|
|
116
|
-
event.emit(event.VIDEO_INIT, game.renderer);
|
|
117
|
-
|
|
118
|
-
return true;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* Create and return a new Canvas element
|
|
123
|
-
* @memberof video
|
|
124
|
-
* @param {number} width - width
|
|
125
|
-
* @param {number} height - height
|
|
126
|
-
* @param {boolean} [returnOffscreenCanvas=false] - will return an OffscreenCanvas if supported
|
|
127
|
-
* @returns {HTMLCanvasElement|OffscreenCanvas} a new Canvas element of the given size
|
|
128
|
-
*/
|
|
129
|
-
export function createCanvas(width, height, returnOffscreenCanvas = false) {
|
|
130
|
-
let _canvas;
|
|
131
|
-
|
|
132
|
-
if (width === 0 || height === 0) {
|
|
133
|
-
throw new Error("width or height was zero, Canvas could not be initialized !");
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
if (device.offscreenCanvas === true && returnOffscreenCanvas === true) {
|
|
137
|
-
_canvas = new globalThis.OffscreenCanvas(0, 0);
|
|
138
|
-
// stubbing style for compatibility,
|
|
139
|
-
// as OffscreenCanvas is detached from the DOM
|
|
140
|
-
if (typeof _canvas.style === "undefined") {
|
|
141
|
-
_canvas.style = {};
|
|
142
|
-
}
|
|
143
|
-
} else {
|
|
144
|
-
// "else" create a "standard" canvas
|
|
145
|
-
_canvas = globalThis.document.createElement("canvas");
|
|
146
|
-
}
|
|
147
|
-
_canvas.width = width;
|
|
148
|
-
_canvas.height = height;
|
|
149
|
-
|
|
150
|
-
return _canvas;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
/**
|
|
154
|
-
* return a reference to the parent DOM element holding the main canvas
|
|
155
|
-
* @memberof video
|
|
156
|
-
* @returns {HTMLElement} the HTML parent element
|
|
157
|
-
*/
|
|
158
|
-
export function getParent() {
|
|
159
|
-
return game.getParentElement();
|
|
160
|
-
}
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @classdesc
|
|
3
|
-
* a Vertex Buffer object
|
|
4
|
-
* @class VertexArrayBuffer
|
|
5
|
-
* @ignore
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
export default class VertexArrayBuffer {
|
|
9
|
-
|
|
10
|
-
constructor(vertex_size, vertex_per_obj) {
|
|
11
|
-
// the size of one vertex in float
|
|
12
|
-
this.vertexSize = vertex_size;
|
|
13
|
-
// size of an object in vertex
|
|
14
|
-
this.objSize = vertex_per_obj;
|
|
15
|
-
// the maximum number of vertices the vertex array buffer can hold
|
|
16
|
-
this.maxVertex = 256; // (note: this seems to be the sweet spot performance-wise when using batching)
|
|
17
|
-
// the current number of vertices added to the vertex array buffer
|
|
18
|
-
this.vertexCount = 0;
|
|
19
|
-
|
|
20
|
-
// the actual vertex data buffer
|
|
21
|
-
this.buffer = new ArrayBuffer(this.maxVertex * this.vertexSize * this.objSize);
|
|
22
|
-
// Float32 and Uint32 view of the vertex data array buffer
|
|
23
|
-
this.bufferF32 = new Float32Array(this.buffer);
|
|
24
|
-
this.bufferU32 = new Uint32Array(this.buffer);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* clear the vertex array buffer
|
|
29
|
-
* @ignore
|
|
30
|
-
*/
|
|
31
|
-
clear() {
|
|
32
|
-
this.vertexCount = 0;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* return true if full
|
|
38
|
-
* @ignore
|
|
39
|
-
*/
|
|
40
|
-
isFull(vertex = this.objSize) {
|
|
41
|
-
return (this.vertexCount + vertex >= this.maxVertex);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* resize the vertex buffer, retaining its original contents
|
|
46
|
-
* @ignore
|
|
47
|
-
*/
|
|
48
|
-
resize(vertexCount) {
|
|
49
|
-
|
|
50
|
-
while (vertexCount > this.maxVertex) {
|
|
51
|
-
// double the vertex size
|
|
52
|
-
this.maxVertex <<= 1;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
// save a reference to the previous data
|
|
56
|
-
let data = this.bufferF32;
|
|
57
|
-
|
|
58
|
-
// recreate ArrayBuffer and views
|
|
59
|
-
this.buffer = new ArrayBuffer(this.maxVertex * this.vertexSize * this.objSize);
|
|
60
|
-
this.bufferF32 = new Float32Array(this.buffer);
|
|
61
|
-
this.bufferU32 = new Uint32Array(this.buffer);
|
|
62
|
-
|
|
63
|
-
// copy previous data
|
|
64
|
-
this.bufferF32.set(data);
|
|
65
|
-
|
|
66
|
-
return this;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* push a new vertex to the buffer
|
|
71
|
-
* @ignore
|
|
72
|
-
*/
|
|
73
|
-
push(x, y, u, v, tint) {
|
|
74
|
-
let offset = this.vertexCount * this.vertexSize;
|
|
75
|
-
|
|
76
|
-
if (this.vertexCount >= this.maxVertex) {
|
|
77
|
-
this.resize(this.vertexCount);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
this.bufferF32[offset] = x;
|
|
81
|
-
this.bufferF32[++offset] = y;
|
|
82
|
-
|
|
83
|
-
if (typeof u !== "undefined") {
|
|
84
|
-
this.bufferF32[++offset] = u;
|
|
85
|
-
this.bufferF32[++offset] = v;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
if (typeof tint !== "undefined") {
|
|
89
|
-
this.bufferU32[++offset] = tint;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
this.vertexCount++;
|
|
93
|
-
|
|
94
|
-
return this;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* return a reference to the data in Float32 format
|
|
99
|
-
* @ignore
|
|
100
|
-
*/
|
|
101
|
-
toFloat32(begin, end) {
|
|
102
|
-
if (typeof end !== "undefined") {
|
|
103
|
-
return this.bufferF32.subarray(begin, end);
|
|
104
|
-
} else {
|
|
105
|
-
return this.bufferF32;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* return a reference to the data in Uint32 format
|
|
111
|
-
* @ignore
|
|
112
|
-
*/
|
|
113
|
-
toUint32(begin, end) {
|
|
114
|
-
if (typeof end !== "undefined") {
|
|
115
|
-
return this.bufferU32.subarray(begin, end);
|
|
116
|
-
} else {
|
|
117
|
-
return this.bufferU32;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* return the size of the vertex in vertex
|
|
123
|
-
* @ignore
|
|
124
|
-
*/
|
|
125
|
-
length() {
|
|
126
|
-
return this.vertexCount;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
/**
|
|
130
|
-
* return true if empty
|
|
131
|
-
* @ignore
|
|
132
|
-
*/
|
|
133
|
-
isEmpty() {
|
|
134
|
-
return this.vertexCount === 0;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
}
|
|
@@ -1,225 +0,0 @@
|
|
|
1
|
-
import VertexArrayBuffer from "../buffer/vertex.js";
|
|
2
|
-
import GLShader from "../glshader.js";
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* @classdesc
|
|
6
|
-
* A base Compositor object.
|
|
7
|
-
*/
|
|
8
|
-
export default class Compositor {
|
|
9
|
-
/**
|
|
10
|
-
* @param {WebGLRenderer} renderer - the current WebGL renderer session
|
|
11
|
-
* @param {object} settings - additional settings to initialize this compositors
|
|
12
|
-
* @param {object[]} settings.attribute - an array of attributes definition
|
|
13
|
-
* @param {string} settings.attribute.name - name of the attribute in the vertex shader
|
|
14
|
-
* @param {number} settings.attribute.size - number of components per vertex attribute. Must be 1, 2, 3, or 4.
|
|
15
|
-
* @param {GLenum} settings.attribute.type - data type of each component in the array
|
|
16
|
-
* @param {boolean} settings.attribute.normalized - whether integer data values should be normalized into a certain range when being cast to a float
|
|
17
|
-
* @param {number} settings.attribute.offset - offset in bytes of the first component in the vertex attribute array
|
|
18
|
-
* @param {object} settings.shader - an array of attributes definition
|
|
19
|
-
* @param {string} settings.shader.vertex - a string containing the GLSL source code to set
|
|
20
|
-
* @param {string} settings.shader.fragment - a string containing the GLSL source code to set
|
|
21
|
-
*/
|
|
22
|
-
constructor (renderer, settings) {
|
|
23
|
-
this.init(renderer, settings);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Initialize the compositor
|
|
28
|
-
* @ignore
|
|
29
|
-
*/
|
|
30
|
-
init (renderer, settings) {
|
|
31
|
-
// the associated renderer
|
|
32
|
-
this.renderer = renderer;
|
|
33
|
-
|
|
34
|
-
// WebGL context
|
|
35
|
-
this.gl = renderer.gl;
|
|
36
|
-
|
|
37
|
-
// Global fill color
|
|
38
|
-
this.color = renderer.currentColor;
|
|
39
|
-
|
|
40
|
-
// Global transformation matrix
|
|
41
|
-
this.viewMatrix = renderer.currentTransform;
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* the default shader created by this compositor
|
|
45
|
-
* @type {GLShader}
|
|
46
|
-
*/
|
|
47
|
-
this.defaultShader = undefined;
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* the shader currently used by this compositor
|
|
51
|
-
* @type {GLShader}
|
|
52
|
-
*/
|
|
53
|
-
this.currentShader = undefined;
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* primitive type to render (gl.POINTS, gl.LINE_STRIP, gl.LINE_LOOP, gl.LINES, gl.TRIANGLE_STRIP, gl.TRIANGLE_FAN, gl.TRIANGLES)
|
|
57
|
-
* @type {number}
|
|
58
|
-
* @default gl.TRIANGLES
|
|
59
|
-
*/
|
|
60
|
-
this.mode = this.gl.TRIANGLES;
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* an array of vertex attribute properties
|
|
64
|
-
* @see WebGLCompositor.addAttribute
|
|
65
|
-
* @type {Array.<Object>}
|
|
66
|
-
*/
|
|
67
|
-
this.attributes = [];
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* the size of a single vertex in bytes
|
|
71
|
-
* (will automatically be calculated as attributes definitions are added)
|
|
72
|
-
* @see WebGLCompositor.addAttribute
|
|
73
|
-
* @type {number}
|
|
74
|
-
*/
|
|
75
|
-
this.vertexByteSize = 0;
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* the size of a single vertex in floats
|
|
79
|
-
* (will automatically be calculated as attributes definitions are added)
|
|
80
|
-
* @see WebGLCompositor.addAttribute
|
|
81
|
-
* @type {number}
|
|
82
|
-
*/
|
|
83
|
-
this.vertexSize = 0;
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* the vertex data buffer used by this compositor
|
|
87
|
-
* @type {VertexArrayBuffer}
|
|
88
|
-
*/
|
|
89
|
-
this.vertexData = null;
|
|
90
|
-
|
|
91
|
-
// parse given attibrutes
|
|
92
|
-
if (typeof settings !== "undefined" && Array.isArray(settings.attributes)) {
|
|
93
|
-
settings.attributes.forEach((attr) => {
|
|
94
|
-
this.addAttribute(attr.name, attr.size, attr.type, attr.normalized, attr.offset);
|
|
95
|
-
this.vertexData = new VertexArrayBuffer(this.vertexSize, 6);
|
|
96
|
-
});
|
|
97
|
-
} else {
|
|
98
|
-
throw new Error("attributes definition missing");
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
// parse and instantiate the default shader
|
|
102
|
-
if (typeof settings !== "undefined" && typeof settings.shader !== "undefined") {
|
|
103
|
-
this.defaultShader = new GLShader(this.gl, settings.shader.vertex, settings.shader.fragment);
|
|
104
|
-
} else {
|
|
105
|
-
throw new Error("shader definition missing");
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* Reset compositor internal state
|
|
111
|
-
* @ignore
|
|
112
|
-
*/
|
|
113
|
-
reset() {
|
|
114
|
-
// WebGL context
|
|
115
|
-
this.gl = this.renderer.gl;
|
|
116
|
-
|
|
117
|
-
// clear the vertex data buffer
|
|
118
|
-
this.vertexData.clear();
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* called by the WebGL renderer when a compositor become the current one
|
|
123
|
-
*/
|
|
124
|
-
bind() {
|
|
125
|
-
if (this.renderer.currentProgram !== this.defaultShader.program) {
|
|
126
|
-
this.useShader(this.defaultShader);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
/**
|
|
131
|
-
* Select the shader to use for compositing
|
|
132
|
-
* @see GLShader
|
|
133
|
-
* @param {GLShader} shader - a reference to a GLShader instance
|
|
134
|
-
*/
|
|
135
|
-
useShader(shader) {
|
|
136
|
-
if (this.renderer.currentProgram !== shader.program) {
|
|
137
|
-
this.flush();
|
|
138
|
-
shader.bind();
|
|
139
|
-
shader.setUniform("uProjectionMatrix", this.renderer.projectionMatrix);
|
|
140
|
-
shader.setVertexAttributes(this.gl, this.attributes, this.vertexByteSize);
|
|
141
|
-
|
|
142
|
-
this.currentShader = shader;
|
|
143
|
-
this.renderer.currentProgram = this.currentShader.program;
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* add vertex attribute property definition to the compositor
|
|
149
|
-
* @param {string} name - name of the attribute in the vertex shader
|
|
150
|
-
* @param {number} size - number of components per vertex attribute. Must be 1, 2, 3, or 4.
|
|
151
|
-
* @param {GLenum} type - data type of each component in the array
|
|
152
|
-
* @param {boolean} normalized - whether integer data values should be normalized into a certain range when being cast to a float
|
|
153
|
-
* @param {number} offset - offset in bytes of the first component in the vertex attribute array
|
|
154
|
-
*/
|
|
155
|
-
addAttribute(name, size, type, normalized, offset) {
|
|
156
|
-
this.attributes.push({
|
|
157
|
-
name: name,
|
|
158
|
-
size: size,
|
|
159
|
-
type: type,
|
|
160
|
-
normalized: normalized,
|
|
161
|
-
offset: offset
|
|
162
|
-
});
|
|
163
|
-
|
|
164
|
-
switch (type) {
|
|
165
|
-
case this.gl.BYTE:
|
|
166
|
-
this.vertexByteSize += size * Int8Array.BYTES_PER_ELEMENT;
|
|
167
|
-
break;
|
|
168
|
-
case this.gl.UNSIGNED_BYTE:
|
|
169
|
-
this.vertexByteSize += size * Uint8Array.BYTES_PER_ELEMENT;
|
|
170
|
-
break;
|
|
171
|
-
case this.gl.SHORT:
|
|
172
|
-
this.vertexByteSize += size * Int16Array.BYTES_PER_ELEMENT;
|
|
173
|
-
break;
|
|
174
|
-
case this.gl.UNSIGNED_SHORT:
|
|
175
|
-
this.vertexByteSize += size * Uint16Array.BYTES_PER_ELEMENT;
|
|
176
|
-
break;
|
|
177
|
-
case this.gl.INT:
|
|
178
|
-
this.vertexByteSize += size * Int32Array.BYTES_PER_ELEMENT;
|
|
179
|
-
break;
|
|
180
|
-
case this.gl.UNSIGNED_INT:
|
|
181
|
-
this.vertexByteSize += size * Uint32Array.BYTES_PER_ELEMENT;
|
|
182
|
-
break;
|
|
183
|
-
case this.gl.FLOAT:
|
|
184
|
-
this.vertexByteSize += size * Float32Array.BYTES_PER_ELEMENT;
|
|
185
|
-
break;
|
|
186
|
-
default:
|
|
187
|
-
throw new Error("Invalid GL Attribute type");
|
|
188
|
-
}
|
|
189
|
-
this.vertexSize = this.vertexByteSize / Float32Array.BYTES_PER_ELEMENT;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
/**
|
|
193
|
-
* set/change the current projection matrix
|
|
194
|
-
* @param {Matrix3d} matrix - the new projection matrix
|
|
195
|
-
*/
|
|
196
|
-
setProjection(matrix) {
|
|
197
|
-
this.currentShader.setUniform("uProjectionMatrix", matrix);
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
/**
|
|
201
|
-
* Flush batched vertex data to the GPU
|
|
202
|
-
* @param {number} [mode=gl.TRIANGLES] - the GL drawing mode
|
|
203
|
-
*/
|
|
204
|
-
flush(mode = this.mode) {
|
|
205
|
-
let vertex = this.vertexData;
|
|
206
|
-
let vertexCount = vertex.vertexCount;
|
|
207
|
-
|
|
208
|
-
if (vertexCount > 0) {
|
|
209
|
-
let gl = this.gl;
|
|
210
|
-
let vertexSize = vertex.vertexSize;
|
|
211
|
-
|
|
212
|
-
// Copy data into stream buffer
|
|
213
|
-
if (this.renderer.WebGLVersion > 1) {
|
|
214
|
-
gl.bufferData(gl.ARRAY_BUFFER, vertex.toFloat32(), gl.STREAM_DRAW, 0, vertexCount * vertexSize);
|
|
215
|
-
} else {
|
|
216
|
-
gl.bufferData(gl.ARRAY_BUFFER, vertex.toFloat32(0, vertexCount * vertexSize), gl.STREAM_DRAW);
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
gl.drawArrays(mode, 0, vertexCount);
|
|
220
|
-
|
|
221
|
-
// clear the vertex buffer
|
|
222
|
-
vertex.clear();
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
}
|