melonjs 20.2.0 → 20.4.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 +86 -8
- package/build/application/application.d.ts +0 -17
- package/build/application/application.d.ts.map +1 -1
- package/build/application/settings.d.ts +6 -2
- package/build/application/settings.d.ts.map +1 -1
- package/build/audio/audio.d.ts +2 -2
- package/build/audio/audio.d.ts.map +1 -1
- package/build/audio/backend/buffer.d.ts +26 -0
- package/build/audio/backend/buffer.d.ts.map +1 -0
- package/build/audio/backend/cache.d.ts +2 -0
- package/build/audio/backend/cache.d.ts.map +1 -0
- package/build/audio/backend/core.d.ts +24 -0
- package/build/audio/backend/core.d.ts.map +1 -0
- package/build/audio/backend/engine.d.ts +35 -0
- package/build/audio/backend/engine.d.ts.map +1 -0
- package/build/audio/backend/sound.d.ts +29 -0
- package/build/audio/backend/sound.d.ts.map +1 -0
- package/build/audio/backend/spatial.d.ts +191 -0
- package/build/audio/backend/spatial.d.ts.map +1 -0
- package/build/audio/backend/types.d.ts +107 -0
- package/build/audio/backend/types.d.ts.map +1 -0
- package/build/audio/backend/voice.d.ts +8 -0
- package/build/audio/backend/voice.d.ts.map +1 -0
- package/build/audio/playback.d.ts +49 -4
- package/build/audio/playback.d.ts.map +1 -1
- package/build/audio/procedural.d.ts.map +1 -1
- package/build/audio/state.d.ts +69 -0
- package/build/audio/state.d.ts.map +1 -0
- package/build/audio/types.d.ts +93 -1
- package/build/audio/types.d.ts.map +1 -1
- package/build/camera/camera2d.d.ts +0 -68
- package/build/camera/camera2d.d.ts.map +1 -1
- package/build/camera/camera3d.d.ts +91 -84
- package/build/camera/camera3d.d.ts.map +1 -1
- package/build/camera/effects/fade_effect.d.ts +0 -5
- package/build/camera/effects/fade_effect.d.ts.map +1 -1
- package/build/camera/effects/mask_effect.d.ts +0 -5
- package/build/camera/effects/mask_effect.d.ts.map +1 -1
- package/build/camera/fog.d.ts +118 -0
- package/build/camera/fog.d.ts.map +1 -0
- package/build/const.d.ts +2 -2
- package/build/geometries/box3d.d.ts +0 -28
- package/build/geometries/box3d.d.ts.map +1 -1
- package/build/geometries/ellipse.d.ts +0 -20
- package/build/geometries/ellipse.d.ts.map +1 -1
- package/build/geometries/observablePoint.d.ts +0 -3
- package/build/geometries/observablePoint.d.ts.map +1 -1
- package/build/geometries/path2d.d.ts +0 -19
- package/build/geometries/path2d.d.ts.map +1 -1
- package/build/geometries/polygon.d.ts +0 -12
- package/build/geometries/polygon.d.ts.map +1 -1
- package/build/geometries/roundrect.d.ts +0 -18
- package/build/geometries/roundrect.d.ts.map +1 -1
- package/build/geometries/sphere.d.ts +0 -9
- package/build/geometries/sphere.d.ts.map +1 -1
- package/build/geometries/toarccanvas.d.ts.map +1 -1
- package/build/index.d.ts +1 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +12150 -11289
- package/build/index.js.map +4 -4
- package/build/input/gamepad.d.ts.map +1 -1
- package/build/input/input.d.ts +19 -0
- package/build/input/input.d.ts.map +1 -1
- package/build/input/pointer.d.ts +0 -4
- package/build/input/pointer.d.ts.map +1 -1
- package/build/input/pointerevent.d.ts +0 -6
- package/build/input/pointerevent.d.ts.map +1 -1
- package/build/lang/deprecated.d.ts +4 -2
- package/build/lang/deprecated.d.ts.map +1 -1
- package/build/level/gltf/GLTFModel.d.ts +0 -81
- package/build/level/gltf/GLTFModel.d.ts.map +1 -1
- package/build/level/gltf/GLTFScene.d.ts +13 -44
- package/build/level/gltf/GLTFScene.d.ts.map +1 -1
- package/build/level/gltf/gltf_sampler.d.ts +1 -48
- package/build/level/gltf/gltf_sampler.d.ts.map +1 -1
- package/build/level/level.d.ts +195 -113
- package/build/level/level.d.ts.map +1 -1
- package/build/level/tiled/TMXGroup.d.ts +1 -65
- package/build/level/tiled/TMXGroup.d.ts.map +1 -1
- package/build/level/tiled/TMXLayer.d.ts +0 -44
- package/build/level/tiled/TMXLayer.d.ts.map +1 -1
- package/build/level/tiled/TMXObject.d.ts +1 -136
- package/build/level/tiled/TMXObject.d.ts.map +1 -1
- package/build/level/tiled/TMXObjectFactory.d.ts +1 -40
- package/build/level/tiled/TMXObjectFactory.d.ts.map +1 -1
- package/build/level/tiled/TMXTile.d.ts +1 -30
- package/build/level/tiled/TMXTile.d.ts.map +1 -1
- package/build/level/tiled/TMXTileMap.d.ts +0 -10
- package/build/level/tiled/TMXTileMap.d.ts.map +1 -1
- package/build/level/tiled/TMXTileset.d.ts +0 -113
- package/build/level/tiled/TMXTileset.d.ts.map +1 -1
- package/build/level/tiled/TMXTilesetGroup.d.ts +0 -1
- package/build/level/tiled/TMXTilesetGroup.d.ts.map +1 -1
- package/build/level/tiled/TMXUtils.d.ts +1 -43
- package/build/level/tiled/TMXUtils.d.ts.map +1 -1
- package/build/level/tiled/factories/shape.d.ts +1 -7
- package/build/level/tiled/factories/shape.d.ts.map +1 -1
- package/build/level/tiled/factories/text.d.ts +1 -7
- package/build/level/tiled/factories/text.d.ts.map +1 -1
- package/build/level/tiled/factories/tile.d.ts +1 -7
- package/build/level/tiled/factories/tile.d.ts.map +1 -1
- package/build/level/tiled/renderer/TMXHexagonalRenderer.d.ts +0 -60
- package/build/level/tiled/renderer/TMXHexagonalRenderer.d.ts.map +1 -1
- package/build/level/tiled/renderer/TMXIsometricRenderer.d.ts +0 -42
- package/build/level/tiled/renderer/TMXIsometricRenderer.d.ts.map +1 -1
- package/build/level/tiled/renderer/TMXObliqueRenderer.d.ts +0 -5
- package/build/level/tiled/renderer/TMXObliqueRenderer.d.ts.map +1 -1
- package/build/level/tiled/renderer/TMXOrthogonalRenderer.d.ts +0 -31
- package/build/level/tiled/renderer/TMXOrthogonalRenderer.d.ts.map +1 -1
- package/build/level/tiled/renderer/TMXRenderer.d.ts +2 -2
- package/build/level/tiled/renderer/TMXRenderer.d.ts.map +1 -1
- package/build/level/tiled/renderer/TMXStaggeredRenderer.d.ts.map +1 -1
- package/build/level/tiled/renderer/autodetect.d.ts +1 -6
- package/build/level/tiled/renderer/autodetect.d.ts.map +1 -1
- package/build/lighting/light2d.d.ts +0 -25
- package/build/lighting/light2d.d.ts.map +1 -1
- package/build/lighting/light3d.d.ts +0 -16
- package/build/lighting/light3d.d.ts.map +1 -1
- package/build/loader/loader.d.ts +46 -73
- package/build/loader/loader.d.ts.map +1 -1
- package/build/loader/loadingscreen.d.ts +0 -33
- package/build/loader/loadingscreen.d.ts.map +1 -1
- package/build/loader/parsers/aseprite.d.ts +0 -13
- package/build/loader/parsers/aseprite.d.ts.map +1 -1
- package/build/loader/parsers/audio.d.ts +2 -0
- package/build/loader/parsers/audio.d.ts.map +1 -0
- package/build/loader/parsers/binary.d.ts +1 -10
- package/build/loader/parsers/binary.d.ts.map +1 -1
- package/build/loader/parsers/compressed_textures/compressed_image.d.ts.map +1 -1
- package/build/loader/parsers/compressed_textures/parseDDS.d.ts +1 -7
- package/build/loader/parsers/compressed_textures/parseDDS.d.ts.map +1 -1
- package/build/loader/parsers/compressed_textures/parseKTX.d.ts +1 -7
- package/build/loader/parsers/compressed_textures/parseKTX.d.ts.map +1 -1
- package/build/loader/parsers/compressed_textures/parseKTX2.d.ts +1 -7
- package/build/loader/parsers/compressed_textures/parseKTX2.d.ts.map +1 -1
- package/build/loader/parsers/compressed_textures/parsePKM.d.ts +1 -7
- package/build/loader/parsers/compressed_textures/parsePKM.d.ts.map +1 -1
- package/build/loader/parsers/compressed_textures/parsePVR.d.ts +1 -7
- package/build/loader/parsers/compressed_textures/parsePVR.d.ts.map +1 -1
- package/build/loader/parsers/fontface.d.ts +1 -13
- package/build/loader/parsers/fontface.d.ts.map +1 -1
- package/build/loader/parsers/gltf.d.ts +1 -70
- package/build/loader/parsers/gltf.d.ts.map +1 -1
- package/build/loader/parsers/image.d.ts +1 -22
- package/build/loader/parsers/image.d.ts.map +1 -1
- package/build/loader/parsers/json.d.ts +1 -10
- package/build/loader/parsers/json.d.ts.map +1 -1
- package/build/loader/parsers/mtl.d.ts +1 -28
- package/build/loader/parsers/mtl.d.ts.map +1 -1
- package/build/loader/parsers/obj.d.ts +1 -59
- package/build/loader/parsers/obj.d.ts.map +1 -1
- package/build/loader/parsers/pbr.d.ts +1 -62
- package/build/loader/parsers/pbr.d.ts.map +1 -1
- package/build/loader/parsers/script.d.ts +1 -10
- package/build/loader/parsers/script.d.ts.map +1 -1
- package/build/loader/parsers/shader.d.ts +1 -52
- package/build/loader/parsers/shader.d.ts.map +1 -1
- package/build/loader/parsers/tmx.d.ts +1 -10
- package/build/loader/parsers/tmx.d.ts.map +1 -1
- package/build/loader/parsers/video.d.ts +1 -10
- package/build/loader/parsers/video.d.ts.map +1 -1
- package/build/math/color.d.ts.map +1 -1
- package/build/math/noise.d.ts +0 -40
- package/build/math/noise.d.ts.map +1 -1
- package/build/math/observableVector2d.d.ts +0 -3
- package/build/math/observableVector2d.d.ts.map +1 -1
- package/build/math/observableVector3d.d.ts +0 -3
- package/build/math/observableVector3d.d.ts.map +1 -1
- package/build/math/vector2d.d.ts +0 -6
- package/build/math/vector2d.d.ts.map +1 -1
- package/build/math/vertex.d.ts +25 -0
- package/build/math/vertex.d.ts.map +1 -1
- package/build/particles/emitter.d.ts +0 -65
- package/build/particles/emitter.d.ts.map +1 -1
- package/build/particles/particle.d.ts +0 -81
- package/build/particles/particle.d.ts.map +1 -1
- package/build/physics/adapter.d.ts +3 -3
- package/build/physics/bounds.d.ts +0 -1
- package/build/physics/bounds.d.ts.map +1 -1
- package/build/physics/broadphase/broadphase.d.ts +0 -7
- package/build/physics/broadphase/broadphase.d.ts.map +1 -1
- package/build/physics/broadphase/octree.d.ts +0 -91
- package/build/physics/broadphase/octree.d.ts.map +1 -1
- package/build/physics/broadphase/quadtree.d.ts +0 -47
- package/build/physics/broadphase/quadtree.d.ts.map +1 -1
- package/build/physics/builtin/body.d.ts +5 -69
- package/build/physics/builtin/body.d.ts.map +1 -1
- package/build/physics/builtin/detector.d.ts +0 -312
- package/build/physics/builtin/detector.d.ts.map +1 -1
- package/build/physics/builtin/sat.d.ts +1 -48
- package/build/physics/builtin/sat.d.ts.map +1 -1
- package/build/physics/builtin/sat3d.d.ts +1 -56
- package/build/physics/builtin/sat3d.d.ts.map +1 -1
- package/build/physics/collision.d.ts +0 -2
- package/build/physics/collision.d.ts.map +1 -1
- package/build/physics/response.d.ts +0 -1
- package/build/physics/response.d.ts.map +1 -1
- package/build/physics/world.d.ts.map +1 -1
- package/build/plugin/plugin.d.ts +9 -1
- package/build/plugin/plugin.d.ts.map +1 -1
- package/build/polyfill/index.d.ts +1 -4
- package/build/polyfill/index.d.ts.map +1 -1
- package/build/renderable/anchorPoint.d.ts +1 -73
- package/build/renderable/anchorPoint.d.ts.map +1 -1
- package/build/renderable/animation.d.ts +0 -7
- package/build/renderable/animation.d.ts.map +1 -1
- package/build/renderable/colorlayer.d.ts +0 -5
- package/build/renderable/colorlayer.d.ts.map +1 -1
- package/build/renderable/container.d.ts +0 -55
- package/build/renderable/container.d.ts.map +1 -1
- package/build/renderable/draggable.d.ts +0 -5
- package/build/renderable/draggable.d.ts.map +1 -1
- package/build/renderable/dragndrop.d.ts +1 -12
- package/build/renderable/dragndrop.d.ts.map +1 -1
- package/build/renderable/entity/entity.d.ts +0 -8
- package/build/renderable/entity/entity.d.ts.map +1 -1
- package/build/renderable/frameAnimation.d.ts +0 -41
- package/build/renderable/frameAnimation.d.ts.map +1 -1
- package/build/renderable/groundshadow.d.ts +1 -91
- package/build/renderable/groundshadow.d.ts.map +1 -1
- package/build/renderable/imagelayer.d.ts +0 -29
- package/build/renderable/imagelayer.d.ts.map +1 -1
- package/build/renderable/instanced_mesh.d.ts +26 -104
- package/build/renderable/instanced_mesh.d.ts.map +1 -1
- package/build/renderable/mesh.d.ts +145 -140
- package/build/renderable/mesh.d.ts.map +1 -1
- package/build/renderable/nineslicesprite.d.ts +0 -4
- package/build/renderable/nineslicesprite.d.ts.map +1 -1
- package/build/renderable/renderable.d.ts +17 -54
- package/build/renderable/renderable.d.ts.map +1 -1
- package/build/renderable/sprite.d.ts +7 -52
- package/build/renderable/sprite.d.ts.map +1 -1
- package/build/renderable/sprite3d.d.ts +0 -95
- package/build/renderable/sprite3d.d.ts.map +1 -1
- package/build/renderable/text/bitmaptext.d.ts +0 -14
- package/build/renderable/text/bitmaptext.d.ts.map +1 -1
- package/build/renderable/text/bitmaptextdata.d.ts +0 -22
- package/build/renderable/text/bitmaptextdata.d.ts.map +1 -1
- package/build/renderable/text/glyph.d.ts +1 -39
- package/build/renderable/text/glyph.d.ts.map +1 -1
- package/build/renderable/text/text.d.ts +0 -20
- package/build/renderable/text/text.d.ts.map +1 -1
- package/build/renderable/text/textstyle.d.ts +1 -5
- package/build/renderable/text/textstyle.d.ts.map +1 -1
- package/build/renderable/trail.d.ts +0 -29
- package/build/renderable/trail.d.ts.map +1 -1
- package/build/renderable/trigger.d.ts +0 -6
- package/build/renderable/trigger.d.ts.map +1 -1
- package/build/renderable/ui/uibaseelement.d.ts +0 -40
- package/build/renderable/ui/uibaseelement.d.ts.map +1 -1
- package/build/renderable/ui/uispriteelement.d.ts +0 -35
- package/build/renderable/ui/uispriteelement.d.ts.map +1 -1
- package/build/state/stage.d.ts +4 -68
- package/build/state/stage.d.ts.map +1 -1
- package/build/state/state.d.ts.map +1 -1
- package/build/system/device.d.ts +0 -12
- package/build/system/device.d.ts.map +1 -1
- package/build/system/dom.d.ts +1 -8
- package/build/system/dom.d.ts.map +1 -1
- package/build/system/event.d.ts +1 -1
- package/build/system/legacy_pool.d.ts +1 -6
- package/build/system/legacy_pool.d.ts.map +1 -1
- package/build/system/platform.d.ts +21 -2
- package/build/system/platform.d.ts.map +1 -1
- package/build/system/pool.d.ts +0 -9
- package/build/system/pool.d.ts.map +1 -1
- package/build/system/save.d.ts.map +1 -1
- package/build/system/timer.d.ts +0 -20
- package/build/system/timer.d.ts.map +1 -1
- package/build/tweens/tween.d.ts +0 -62
- package/build/tweens/tween.d.ts.map +1 -1
- package/build/utils/array-multimap.d.ts +1 -13
- package/build/utils/array-multimap.d.ts.map +1 -1
- package/build/utils/decode.d.ts.map +1 -1
- package/build/utils/fetchdata.d.ts +2 -0
- package/build/utils/fetchdata.d.ts.map +1 -0
- package/build/utils/utils.d.ts +0 -13
- package/build/utils/utils.d.ts.map +1 -1
- package/build/video/blendmodes.d.ts +1 -106
- package/build/video/blendmodes.d.ts.map +1 -1
- package/build/video/buffer/index.d.ts +1 -39
- package/build/video/buffer/index.d.ts.map +1 -1
- package/build/video/buffer/vertex.d.ts +1 -82
- package/build/video/buffer/vertex.d.ts.map +1 -1
- package/build/video/canvas/canvas_renderer.d.ts +7 -25
- package/build/video/canvas/canvas_renderer.d.ts.map +1 -1
- package/build/video/canvas_factory.d.ts +1 -24
- package/build/video/canvas_factory.d.ts.map +1 -1
- package/build/video/effects/blendEffect.d.ts +0 -54
- package/build/video/effects/blendEffect.d.ts.map +1 -1
- package/build/video/effects/blur.d.ts +4 -4
- package/build/video/effects/blur.d.ts.map +1 -1
- package/build/video/effects/chromaticAberration.d.ts +5 -5
- package/build/video/effects/chromaticAberration.d.ts.map +1 -1
- package/build/video/effects/colorMatrix.d.ts +5 -15
- package/build/video/effects/colorMatrix.d.ts.map +1 -1
- package/build/video/effects/desaturate.d.ts +5 -5
- package/build/video/effects/desaturate.d.ts.map +1 -1
- package/build/video/effects/dissolve.d.ts +4 -4
- package/build/video/effects/dissolve.d.ts.map +1 -1
- package/build/video/effects/dropShadow.d.ts +5 -5
- package/build/video/effects/dropShadow.d.ts.map +1 -1
- package/build/video/effects/flash.d.ts +4 -4
- package/build/video/effects/flash.d.ts.map +1 -1
- package/build/video/effects/glow.d.ts +5 -5
- package/build/video/effects/glow.d.ts.map +1 -1
- package/build/video/effects/glsl_realization.d.ts +1 -17
- package/build/video/effects/glsl_realization.d.ts.map +1 -1
- package/build/video/effects/hologram.d.ts +4 -4
- package/build/video/effects/hologram.d.ts.map +1 -1
- package/build/video/effects/invert.d.ts +5 -5
- package/build/video/effects/invert.d.ts.map +1 -1
- package/build/video/effects/outline.d.ts +6 -6
- package/build/video/effects/outline.d.ts.map +1 -1
- package/build/video/effects/pixelate.d.ts +4 -4
- package/build/video/effects/pixelate.d.ts.map +1 -1
- package/build/video/effects/radialGradient.d.ts +2 -3
- package/build/video/effects/radialGradient.d.ts.map +1 -1
- package/build/video/effects/scanline.d.ts +6 -6
- package/build/video/effects/scanline.d.ts.map +1 -1
- package/build/video/effects/sepia.d.ts +5 -5
- package/build/video/effects/sepia.d.ts.map +1 -1
- package/build/video/effects/shadereffect.d.ts +12 -123
- package/build/video/effects/shadereffect.d.ts.map +1 -1
- package/build/video/effects/shine.d.ts +3 -3
- package/build/video/effects/shine.d.ts.map +1 -1
- package/build/video/effects/tintPulse.d.ts +4 -4
- package/build/video/effects/tintPulse.d.ts.map +1 -1
- package/build/video/effects/vignette.d.ts +6 -6
- package/build/video/effects/vignette.d.ts.map +1 -1
- package/build/video/effects/wave.d.ts +4 -4
- package/build/video/effects/wave.d.ts.map +1 -1
- package/build/video/effects/wgsl/layout.d.ts +1 -27
- package/build/video/effects/wgsl/layout.d.ts.map +1 -1
- package/build/video/effects/wgsl/parse.d.ts +1 -8
- package/build/video/effects/wgsl/parse.d.ts.map +1 -1
- package/build/video/effects/wgsl/scaffold.d.ts +1 -42
- package/build/video/effects/wgsl/scaffold.d.ts.map +1 -1
- package/build/video/effects/wgsl_realization.d.ts +1 -82
- package/build/video/effects/wgsl_realization.d.ts.map +1 -1
- package/build/video/gpu/batcher.d.ts +1 -13
- package/build/video/gpu/batcher.d.ts.map +1 -1
- package/build/video/gpu/instancerecord.d.ts +1 -163
- package/build/video/gpu/instancerecord.d.ts.map +1 -1
- package/build/video/gpu/meshchunk.d.ts +1 -48
- package/build/video/gpu/meshchunk.d.ts.map +1 -1
- package/build/video/gpu/meshvertex.d.ts +1 -53
- package/build/video/gpu/meshvertex.d.ts.map +1 -1
- package/build/video/gpu/primitives.d.ts +1 -59
- package/build/video/gpu/primitives.d.ts.map +1 -1
- package/build/video/gpu/quadcorners.d.ts +1 -10
- package/build/video/gpu/quadcorners.d.ts.map +1 -1
- package/build/video/gpu/textureslots.d.ts +1 -121
- package/build/video/gpu/textureslots.d.ts.map +1 -1
- package/build/video/gpu/texturestore.d.ts +1 -138
- package/build/video/gpu/texturestore.d.ts.map +1 -1
- package/build/video/gpu/topology.d.ts.map +1 -1
- package/build/video/gpu/vertexformat.d.ts +0 -28
- package/build/video/gpu/vertexformat.d.ts.map +1 -1
- package/build/video/gradient.d.ts +0 -81
- package/build/video/gradient.d.ts.map +1 -1
- package/build/video/renderer.d.ts +21 -102
- package/build/video/renderer.d.ts.map +1 -1
- package/build/video/renderstate.d.ts +0 -51
- package/build/video/renderstate.d.ts.map +1 -1
- package/build/video/rendertarget/canvasrendertarget.d.ts +0 -10
- package/build/video/rendertarget/canvasrendertarget.d.ts.map +1 -1
- package/build/video/rendertarget/render_target_pool.d.ts +1 -82
- package/build/video/rendertarget/render_target_pool.d.ts.map +1 -1
- package/build/video/rendertarget/webglrendertarget.d.ts +1 -64
- package/build/video/rendertarget/webglrendertarget.d.ts.map +1 -1
- package/build/video/rendertarget/webgpurendertarget.d.ts +0 -8
- package/build/video/rendertarget/webgpurendertarget.d.ts.map +1 -1
- package/build/video/texture/atlas.d.ts +2 -76
- package/build/video/texture/atlas.d.ts.map +1 -1
- package/build/video/texture/cache.d.ts +0 -136
- package/build/video/texture/cache.d.ts.map +1 -1
- package/build/video/texture/frametexture.d.ts +1 -71
- package/build/video/texture/frametexture.d.ts.map +1 -1
- package/build/video/texture/noise_texture2d.d.ts +0 -43
- package/build/video/texture/noise_texture2d.d.ts.map +1 -1
- package/build/video/texture/parser/aseprite.d.ts +1 -8
- package/build/video/texture/parser/aseprite.d.ts.map +1 -1
- package/build/video/texture/parser/spritesheet.d.ts +1 -8
- package/build/video/texture/parser/spritesheet.d.ts.map +1 -1
- package/build/video/texture/parser/texturepacker.d.ts +1 -8
- package/build/video/texture/parser/texturepacker.d.ts.map +1 -1
- package/build/video/texture/resource.d.ts +0 -9
- package/build/video/texture/resource.d.ts.map +1 -1
- package/build/video/texture/texture2d.d.ts +0 -11
- package/build/video/texture/texture2d.d.ts.map +1 -1
- package/build/video/utils/autodetect.d.ts +1 -5
- package/build/video/utils/autodetect.d.ts.map +1 -1
- package/build/video/webgl/batchers/batcher.d.ts +0 -55
- package/build/video/webgl/batchers/batcher.d.ts.map +1 -1
- package/build/video/webgl/batchers/lit_mesh_batcher.d.ts +0 -14
- package/build/video/webgl/batchers/lit_mesh_batcher.d.ts.map +1 -1
- package/build/video/webgl/batchers/lit_quad_batcher.d.ts +0 -72
- package/build/video/webgl/batchers/lit_quad_batcher.d.ts.map +1 -1
- package/build/video/webgl/batchers/material_batcher.d.ts +0 -89
- package/build/video/webgl/batchers/material_batcher.d.ts.map +1 -1
- package/build/video/webgl/batchers/mesh_batcher.d.ts +14 -343
- package/build/video/webgl/batchers/mesh_batcher.d.ts.map +1 -1
- package/build/video/webgl/batchers/primitive_batcher.d.ts +0 -10
- package/build/video/webgl/batchers/primitive_batcher.d.ts.map +1 -1
- package/build/video/webgl/batchers/quad_batcher.d.ts +0 -30
- package/build/video/webgl/batchers/quad_batcher.d.ts.map +1 -1
- package/build/video/webgl/buffer/index.d.ts +1 -36
- package/build/video/webgl/buffer/index.d.ts.map +1 -1
- package/build/video/webgl/buffer/instance_buffer.d.ts +1 -53
- package/build/video/webgl/buffer/instance_buffer.d.ts.map +1 -1
- package/build/video/webgl/buffer/retained_geometry.d.ts +1 -81
- package/build/video/webgl/buffer/retained_geometry.d.ts.map +1 -1
- package/build/video/webgl/buffer/uniformblock.d.ts +1 -80
- package/build/video/webgl/buffer/uniformblock.d.ts.map +1 -1
- package/build/video/webgl/buffer/vertexstate.d.ts +1 -100
- package/build/video/webgl/buffer/vertexstate.d.ts.map +1 -1
- package/build/video/webgl/glshader.d.ts +2 -51
- package/build/video/webgl/glshader.d.ts.map +1 -1
- package/build/video/webgl/lighting/pack3d.d.ts +1 -47
- package/build/video/webgl/lighting/pack3d.d.ts.map +1 -1
- package/build/video/webgl/lighting/std140.d.ts +1 -109
- package/build/video/webgl/lighting/std140.d.ts.map +1 -1
- package/build/video/webgl/renderers/tmxlayer/orthogonal.d.ts +1 -103
- package/build/video/webgl/renderers/tmxlayer/orthogonal.d.ts.map +1 -1
- package/build/video/webgl/shaders/multitexture-lit.d.ts +1 -26
- package/build/video/webgl/shaders/multitexture-lit.d.ts.map +1 -1
- package/build/video/webgl/shaders/multitexture.d.ts +1 -9
- package/build/video/webgl/shaders/multitexture.d.ts.map +1 -1
- package/build/video/webgl/texture/store.d.ts +1 -50
- package/build/video/webgl/texture/store.d.ts.map +1 -1
- package/build/video/webgl/utils/attributes.d.ts +1 -11
- package/build/video/webgl/utils/attributes.d.ts.map +1 -1
- package/build/video/webgl/utils/maxtextures.d.ts +1 -36
- package/build/video/webgl/utils/maxtextures.d.ts.map +1 -1
- package/build/video/webgl/utils/precision.d.ts +1 -14
- package/build/video/webgl/utils/precision.d.ts.map +1 -1
- package/build/video/webgl/utils/program.d.ts +1 -5
- package/build/video/webgl/utils/program.d.ts.map +1 -1
- package/build/video/webgl/utils/samplercache.d.ts +1 -68
- package/build/video/webgl/utils/samplercache.d.ts.map +1 -1
- package/build/video/webgl/utils/string.d.ts +1 -21
- package/build/video/webgl/utils/string.d.ts.map +1 -1
- package/build/video/webgl/utils/topology.d.ts +1 -23
- package/build/video/webgl/utils/topology.d.ts.map +1 -1
- package/build/video/webgl/utils/uniforms.d.ts +1 -25
- package/build/video/webgl/utils/uniforms.d.ts.map +1 -1
- package/build/video/webgl/utils/vertexformat.d.ts +1 -26
- package/build/video/webgl/utils/vertexformat.d.ts.map +1 -1
- package/build/video/webgl/webgl_renderer.d.ts +24 -286
- package/build/video/webgl/webgl_renderer.d.ts.map +1 -1
- package/build/video/webgpu/batchers/lit_mesh_batcher.d.ts +0 -6
- package/build/video/webgpu/batchers/lit_mesh_batcher.d.ts.map +1 -1
- package/build/video/webgpu/batchers/lit_quad_batcher.d.ts +0 -8
- package/build/video/webgpu/batchers/lit_quad_batcher.d.ts.map +1 -1
- package/build/video/webgpu/batchers/mesh_batcher.d.ts +1 -230
- package/build/video/webgpu/batchers/mesh_batcher.d.ts.map +1 -1
- package/build/video/webgpu/batchers/primitive_batcher.d.ts.map +1 -1
- package/build/video/webgpu/batchers/quad_batcher.d.ts +0 -82
- package/build/video/webgpu/batchers/quad_batcher.d.ts.map +1 -1
- package/build/video/webgpu/buffer/arena.d.ts +1 -63
- package/build/video/webgpu/buffer/arena.d.ts.map +1 -1
- package/build/video/webgpu/buffer/instance_buffer.d.ts +1 -64
- package/build/video/webgpu/buffer/instance_buffer.d.ts.map +1 -1
- package/build/video/webgpu/buffer/retained_geometry.d.ts +1 -54
- package/build/video/webgpu/buffer/retained_geometry.d.ts.map +1 -1
- package/build/video/webgpu/buffer/uniformring.d.ts +1 -67
- package/build/video/webgpu/buffer/uniformring.d.ts.map +1 -1
- package/build/video/webgpu/effect_binding.d.ts +1 -16
- package/build/video/webgpu/effect_binding.d.ts.map +1 -1
- package/build/video/webgpu/pipeline/bindgroups.d.ts +1 -32
- package/build/video/webgpu/pipeline/bindgroups.d.ts.map +1 -1
- package/build/video/webgpu/pipeline/cache.d.ts +1 -163
- package/build/video/webgpu/pipeline/cache.d.ts.map +1 -1
- package/build/video/webgpu/renderers/tmxlayer/orthogonal.d.ts +1 -87
- package/build/video/webgpu/renderers/tmxlayer/orthogonal.d.ts.map +1 -1
- package/build/video/webgpu/shaders/mesh-instanced.d.ts +1 -43
- package/build/video/webgpu/shaders/mesh-instanced.d.ts.map +1 -1
- package/build/video/webgpu/texture/compressed.d.ts +1 -32
- package/build/video/webgpu/texture/compressed.d.ts.map +1 -1
- package/build/video/webgpu/texture/frametexture.d.ts +1 -62
- package/build/video/webgpu/texture/frametexture.d.ts.map +1 -1
- package/build/video/webgpu/texture/store.d.ts +1 -147
- package/build/video/webgpu/texture/store.d.ts.map +1 -1
- package/build/video/webgpu/webgpu_renderer.d.ts +2 -89
- package/build/video/webgpu/webgpu_renderer.d.ts.map +1 -1
- package/package.json +8 -11
- package/skills/AGENTS.md +67 -0
- package/skills/melonjs/SKILL.md +156 -0
- package/skills/melonjs-20-migration/SKILL.md +160 -0
- package/skills/melonjs-3d/SKILL.md +525 -0
- package/skills/melonjs-3d-assets/SKILL.md +258 -0
- package/skills/melonjs-audio/SKILL.md +236 -0
- package/skills/melonjs-camera-and-drawing/SKILL.md +175 -0
- package/skills/melonjs-deployment/SKILL.md +113 -0
- package/skills/melonjs-effects-and-shaders/SKILL.md +178 -0
- package/skills/melonjs-events/SKILL.md +159 -0
- package/skills/melonjs-getting-started/SKILL.md +183 -0
- package/skills/melonjs-input/SKILL.md +166 -0
- package/skills/melonjs-lighting/SKILL.md +139 -0
- package/skills/melonjs-loading-assets/SKILL.md +186 -0
- package/skills/melonjs-particles-and-trails/SKILL.md +136 -0
- package/skills/melonjs-performance/SKILL.md +183 -0
- package/skills/melonjs-physics/SKILL.md +321 -0
- package/skills/melonjs-plugins/SKILL.md +191 -0
- package/skills/melonjs-renderables/SKILL.md +214 -0
- package/skills/melonjs-renderer-backends/SKILL.md +173 -0
- package/skills/melonjs-scenes-and-state/SKILL.md +180 -0
- package/skills/melonjs-sprites-and-animation/SKILL.md +173 -0
- package/skills/melonjs-tilemaps/SKILL.md +213 -0
- package/skills/melonjs-ui-and-text/SKILL.md +65 -0
- package/build/audio/backend.d.ts +0 -140
- package/build/audio/backend.d.ts.map +0 -1
- package/build/loader/parsers/fetchdata.d.ts +0 -32
- package/build/loader/parsers/fetchdata.d.ts.map +0 -1
|
@@ -1,60 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* Primitive-batcher geometry assembly shared by both backends — pure CPU
|
|
3
|
-
* code, no GPU references (the `meshchunk.ts` / `meshvertex.ts`
|
|
4
|
-
* precedent). The vertex layout is the primitive tier's 6-float
|
|
5
|
-
* `x, y, z, nx, ny, packed-color` stream on both backends.
|
|
6
|
-
* @ignore
|
|
7
|
-
*/
|
|
8
|
-
/** the minimal vertex-buffer surface this module writes — `@ignore` */
|
|
9
|
-
interface PrimitiveVertexData {
|
|
10
|
-
push(x: number, y: number, z: number, nx: number, ny: number, color: number): void;
|
|
11
|
-
isFull(count: number): boolean;
|
|
12
|
-
}
|
|
13
|
-
/** a 4×4 column-major transform (Matrix3d-shaped) — `@ignore` */
|
|
14
|
-
interface MatrixLike {
|
|
15
|
-
val: Float32Array;
|
|
16
|
-
isIdentity(): boolean;
|
|
17
|
-
}
|
|
18
|
-
interface PointLike {
|
|
19
|
-
x: number;
|
|
20
|
-
y: number;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Push `verts[start..end)` into the vertex buffer, transformed by the
|
|
24
|
-
* given view matrix. The caller guarantees the range fits.
|
|
25
|
-
*
|
|
26
|
-
* The transform includes the z column (m[8] / m[9] / m[10] / m[14]) so
|
|
27
|
-
* Camera3d's view matrix (X/Y-axis rotation) actually rotates the
|
|
28
|
-
* primitive in 3D. For 2D matrices those slots are identity, so output
|
|
29
|
-
* (x, y, z) is bit-identical to the legacy 2D-only multiply.
|
|
30
|
-
* @ignore
|
|
31
|
-
*/
|
|
32
|
-
export declare function pushPrimitiveRange(vertexData: PrimitiveVertexData, viewMatrix: MatrixLike, verts: PointLike[], start: number, end: number, colorUint32: number, z: number): void;
|
|
33
|
-
/**
|
|
34
|
-
* Expand line pairs into triangles with perpendicular normals. The vertex
|
|
35
|
-
* shader offsets each vertex by `aNormal * uLineWidth * 0.5`, producing
|
|
36
|
-
* thick lines without manual geometry expansion in the renderer. The
|
|
37
|
-
* caller has already switched its draw mode to triangles.
|
|
38
|
-
*
|
|
39
|
-
* Each line pair expands to 2 triangles (6 vertices) — capacity is
|
|
40
|
-
* checked per pair through the `flush` callback, so a dashed/long
|
|
41
|
-
* thick-line path larger than the whole buffer flushes mid-shape instead
|
|
42
|
-
* of silently dropping the out-of-range writes (pairs are independent
|
|
43
|
-
* quads, so a mid-shape flush is invisible).
|
|
44
|
-
*
|
|
45
|
-
* The view matrix is applied (z column included) without mutating the
|
|
46
|
-
* inputs. Note: the perpendicular normal is computed in pre-projection
|
|
47
|
-
* world space, which appears non-perpendicular under perspective — a
|
|
48
|
-
* known limitation shared by both backends.
|
|
49
|
-
* @param vertexData - destination vertex stream
|
|
50
|
-
* @param viewMatrix - the current view matrix
|
|
51
|
-
* @param verts - line vertices in pairs [from, to, from, to, ...]
|
|
52
|
-
* @param vertexCount - number of vertices to consume
|
|
53
|
-
* @param colorUint32 - packed line color
|
|
54
|
-
* @param z - the current renderer depth
|
|
55
|
-
* @param flush - drains the vertex buffer when a pair no longer fits
|
|
56
|
-
* @ignore
|
|
57
|
-
*/
|
|
58
|
-
export declare function expandLinesToTriangles(vertexData: PrimitiveVertexData, viewMatrix: MatrixLike, verts: PointLike[], vertexCount: number, colorUint32: number, z: number, flush: () => void): void;
|
|
59
|
-
export {};
|
|
1
|
+
|
|
60
2
|
//# sourceMappingURL=primitives.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../../src/video/gpu/primitives.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../../src/video/gpu/primitives.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
@@ -1,11 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import { Vector3d } from "../../math/vector3d.ts";
|
|
3
|
-
/**
|
|
4
|
-
* Set the four corners of an axis-aligned quad and transform them by `m`
|
|
5
|
-
* (skipped when `m` is null/identity — the common untransformed case).
|
|
6
|
-
* Returns the shared corner pool, valid until the next call:
|
|
7
|
-
* `[topLeft, topRight, bottomLeft, bottomRight]`.
|
|
8
|
-
* @ignore
|
|
9
|
-
*/
|
|
10
|
-
export declare function transformQuadCorners(m: Matrix3d | null | undefined, x: number, y: number, w: number, h: number, z: number): Vector3d[];
|
|
1
|
+
export {};
|
|
11
2
|
//# sourceMappingURL=quadcorners.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quadcorners.d.ts","sourceRoot":"","sources":["../../../src/video/gpu/quadcorners.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"quadcorners.d.ts","sourceRoot":"","sources":["../../../src/video/gpu/quadcorners.ts"],"names":[],"mappings":""}
|
|
@@ -1,122 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* Backend-neutral texture slot assignment.
|
|
3
|
-
*
|
|
4
|
-
* Both GPU backends solve the same problem — "many textures, one draw call" —
|
|
5
|
-
* by giving each texture a small integer slot that the fragment shader selects
|
|
6
|
-
* on per-vertex. Only the *resource* differs: a WebGL texture unit, or an entry
|
|
7
|
-
* in a WebGPU material bind group. The assignment policy (who gets a slot, what
|
|
8
|
-
* happens when they run out, what is dropped) is identical, and used to be
|
|
9
|
-
* written twice — `TextureCache.allocateTextureUnit` on one side,
|
|
10
|
-
* `WebGPUQuadBatcher.segmentSlotFor` on the other — which is how the two drifted.
|
|
11
|
-
*
|
|
12
|
-
* This class owns that policy and nothing else. It never touches a GL unit or a
|
|
13
|
-
* bind group; the caller supplies the binding through the callbacks. That keeps
|
|
14
|
-
* it pure, so the same test suite proves both backends behave alike.
|
|
15
|
-
* @ignore
|
|
16
|
-
*/
|
|
17
|
-
export class TextureSlotTable {
|
|
18
|
-
/**
|
|
19
|
-
* @param {object} options - table configuration
|
|
20
|
-
* @param {number} options.capacity - number of slots, `[0, capacity)`
|
|
21
|
-
* @param {Function} [options.onOverflow] - called when a new key arrives with
|
|
22
|
-
* no slot free. The caller must turn the pending work into GPU work (flush)
|
|
23
|
-
* before the table reassigns slots out from under it.
|
|
24
|
-
* @param {Function} [options.onEvict] - called with each slot index as it is
|
|
25
|
-
* dropped, so the caller can forget its binding for that slot
|
|
26
|
-
* @param {Function} [options.isReserved] - optional predicate; a slot it
|
|
27
|
-
* approves is held out of assignment entirely (WebGL parks `ShaderEffect`
|
|
28
|
-
* extra samplers on high units this way). Reservations survive a reset.
|
|
29
|
-
* @ignore
|
|
30
|
-
*/
|
|
31
|
-
constructor({ capacity, onOverflow, onEvict, isReserved }?: {
|
|
32
|
-
capacity: number;
|
|
33
|
-
onOverflow?: Function | undefined;
|
|
34
|
-
onEvict?: Function | undefined;
|
|
35
|
-
isReserved?: Function | undefined;
|
|
36
|
-
});
|
|
37
|
-
/** @type {Map<string, number>} key → slot */
|
|
38
|
-
slots: Map<string, number>;
|
|
39
|
-
/** @type {Set<number>} occupied slot indices */
|
|
40
|
-
used: Set<number>;
|
|
41
|
-
capacity: number;
|
|
42
|
-
onOverflow: Function | undefined;
|
|
43
|
-
onEvict: Function | undefined;
|
|
44
|
-
isReserved: Function | undefined;
|
|
45
|
-
/**
|
|
46
|
-
* How many slots are currently taken.
|
|
47
|
-
*
|
|
48
|
-
* Occupancy, NOT the key map: slots claimed through {@link claim} carry no
|
|
49
|
-
* key at all (the WebGL cache allocates that way), so counting keys would
|
|
50
|
-
* report an empty table while every unit was in use.
|
|
51
|
-
* @returns {number} the number of occupied slots
|
|
52
|
-
* @ignore
|
|
53
|
-
*/
|
|
54
|
-
get size(): number;
|
|
55
|
-
/**
|
|
56
|
-
* Resize the table. Shrinking evicts every assignment at or above the new
|
|
57
|
-
* capacity; growing keeps everything. Called on context restore / device
|
|
58
|
-
* change, where the resolved limit can differ from the previous one.
|
|
59
|
-
* @param {number} capacity - the new slot count
|
|
60
|
-
* @ignore
|
|
61
|
-
*/
|
|
62
|
-
setCapacity(capacity: number): void;
|
|
63
|
-
/**
|
|
64
|
-
* The slot this key already holds, without assigning one. Use when a miss
|
|
65
|
-
* should not trigger an overflow (probing, debug, bookkeeping).
|
|
66
|
-
* @param {string} key - the slot key
|
|
67
|
-
* @returns {number|undefined} the assigned slot, or `undefined`
|
|
68
|
-
* @ignore
|
|
69
|
-
*/
|
|
70
|
-
peek(key: string): number | undefined;
|
|
71
|
-
/**
|
|
72
|
-
* The lowest assignable slot, or `-1` when every one is taken or reserved.
|
|
73
|
-
* Bounded by `capacity` on purpose: a caller that reserves every slot must
|
|
74
|
-
* get an answer rather than an infinite scan.
|
|
75
|
-
* @returns {number} a free slot index, or -1
|
|
76
|
-
* @ignore
|
|
77
|
-
*/
|
|
78
|
-
freeSlot(): number;
|
|
79
|
-
/**
|
|
80
|
-
* Resolve a key to its slot, assigning one if needed.
|
|
81
|
-
*
|
|
82
|
-
* On exhaustion this calls `onOverflow` (the caller flushes) and then drops
|
|
83
|
-
* every assignment, so the incoming key starts a fresh set — the behaviour
|
|
84
|
-
* both backends already had. The eviction step is deliberately the only
|
|
85
|
-
* policy here: replacing this wipe with something finer (see #1586) changes
|
|
86
|
-
* both backends at once, which is the point of sharing it.
|
|
87
|
-
* @param {string} key - identifies the texture *and* the sampling state it
|
|
88
|
-
* needs, since two draws of one image under different filter/wrap settings
|
|
89
|
-
* cannot share a slot
|
|
90
|
-
* @returns {number} the slot to write into the vertex stream
|
|
91
|
-
* @ignore
|
|
92
|
-
*/
|
|
93
|
-
slotFor(key: string): number;
|
|
94
|
-
/**
|
|
95
|
-
* Take a slot without associating a key with it.
|
|
96
|
-
*
|
|
97
|
-
* The WebGL cache resolves textures to units through its own source-keyed
|
|
98
|
-
* index (a source can hold one unit per wrap mode it was sampled with), so
|
|
99
|
-
* it needs the *policy* — free-slot search honoring reservations, and the
|
|
100
|
-
* flush-then-evict behaviour on exhaustion — without the key map. WebGPU's
|
|
101
|
-
* batcher keys directly and goes through {@link slotFor}, which is this plus
|
|
102
|
-
* the mapping. Both therefore overflow on the same rule.
|
|
103
|
-
* @returns {number} the claimed slot
|
|
104
|
-
* @ignore
|
|
105
|
-
*/
|
|
106
|
-
claim(): number;
|
|
107
|
-
/**
|
|
108
|
-
* Drop a single assignment, freeing its slot. Reservations are untouched —
|
|
109
|
-
* they are owned by whoever reserved them, not by the table.
|
|
110
|
-
* @param {string} key - the slot key to release
|
|
111
|
-
* @returns {boolean} whether the key held a slot
|
|
112
|
-
* @ignore
|
|
113
|
-
*/
|
|
114
|
-
release(key: string): boolean;
|
|
115
|
-
/**
|
|
116
|
-
* Drop every assignment. `onEvict` fires once per slot that was live, so a
|
|
117
|
-
* caller tracking bindings per slot can forget exactly those.
|
|
118
|
-
* @ignore
|
|
119
|
-
*/
|
|
120
|
-
reset(): void;
|
|
121
|
-
}
|
|
1
|
+
|
|
122
2
|
//# sourceMappingURL=textureslots.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textureslots.d.ts","sourceRoot":"","sources":["../../../src/video/gpu/textureslots.js"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"textureslots.d.ts","sourceRoot":"","sources":["../../../src/video/gpu/textureslots.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH;IACC;;;;;;;;;;;;;OAaG;IACH,4DAZG;QAAwB,QAAQ,EAAxB,MAAM;QACa,UAAU;QAGV,OAAO;QAEP,UAAU;KAGrC,EAYF;IARA,6CAA6C;IAC7C,OADW,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CACR;IACtB,gDAAgD;IAChD,MADW,GAAG,CAAC,MAAM,CAAC,CACD;IACrB,iBAA6B;IAC7B,iCAA4B;IAC5B,8BAAsB;IACtB,iCAA4B;IAG7B;;;;;;;;;OASG;IACH,YAJa,MAAM,CAMlB;IAED;;;;;;;OAOG;IACH,sBAJW,MAAM,QAqBhB;IAED;;;;;;;OAOG;IACH,UALW,MAAM,GACJ,MAAM,GAAC,SAAS,CAM5B;IAED;;;;;;;OAOG;IACH,YAJa,MAAM,CAWlB;IAED;;;;;;;;;;;;;;OAcG;IACH,aAPW,MAAM,GAGJ,MAAM,CAYlB;IAED;;;;;;;;;;;;OAYG;IACH,SAJa,MAAM,CAuBlB;IAED;;;;;;;OAOG;IACH,aALW,MAAM,GACJ,OAAO,CAanB;IAED;;;;;OAKG;IACH,cAQC;CACD"}
|
|
@@ -1,139 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* Backend-neutral texture residency.
|
|
3
|
-
*
|
|
4
|
-
* There are two separate questions about a texture, and conflating them is
|
|
5
|
-
* what makes a GPU renderer re-upload work it already has:
|
|
6
|
-
*
|
|
7
|
-
* - **which slot is it in, for this draw?** — transient, per-batch, bounded by
|
|
8
|
-
* the shader's sampler count. That is {@link TextureSlotTable}.
|
|
9
|
-
* - **does it exist on the GPU, and is its content current?** — persistent,
|
|
10
|
-
* per-source, bounded by disposal. That is this class.
|
|
11
|
-
*
|
|
12
|
-
* The WebGL backend used to answer both with one field (`boundTextures[unit]`),
|
|
13
|
-
* so dropping a slot assignment destroyed the texture handle and the next draw
|
|
14
|
-
* rebuilt it from scratch — a full re-upload and mip regeneration per quad,
|
|
15
|
-
* once past the batching limit.
|
|
16
|
-
*
|
|
17
|
-
* This class owns the source → record index, the reuse-or-upload decision, and
|
|
18
|
-
* the lifetime bookkeeping. It touches no GL or WebGPU API: each backend
|
|
19
|
-
* supplies `onCreate` / `onUpload` / `onDestroy`, exactly as the slot table
|
|
20
|
-
* takes its binding through callbacks. That keeps the decision logic identical
|
|
21
|
-
* on both backends and testable without a device.
|
|
22
|
-
* @ignore
|
|
23
|
-
*/
|
|
24
|
-
export class TextureStore {
|
|
25
|
-
/**
|
|
26
|
-
* @param {object} [options] - store configuration
|
|
27
|
-
* @param {Function} [options.onCreate] - `(source, options) => handle`, allocate
|
|
28
|
-
* the backing GPU texture for a source seen for the first time
|
|
29
|
-
* @param {Function} [options.onUpload] - `(handle, source, record, options) => handle`,
|
|
30
|
-
* push the source's current content. May return a *replacement* handle when
|
|
31
|
-
* the shape changed and the old one cannot be respecified (immutable
|
|
32
|
-
* storage); returning nothing keeps the existing handle.
|
|
33
|
-
* @param {Function} [options.onDestroy] - `(handle, source)`, release the
|
|
34
|
-
* GPU texture. Called exactly once per handle.
|
|
35
|
-
* @ignore
|
|
36
|
-
*/
|
|
37
|
-
constructor({ onCreate, onUpload, onDestroy }?: {
|
|
38
|
-
onCreate?: Function | undefined;
|
|
39
|
-
onUpload?: Function | undefined;
|
|
40
|
-
onDestroy?: Function | undefined;
|
|
41
|
-
});
|
|
42
|
-
/** @type {Map<object, {handle: *, version: number, generation: number}>} */
|
|
43
|
-
records: Map<object, {
|
|
44
|
-
handle: any;
|
|
45
|
-
version: number;
|
|
46
|
-
generation: number;
|
|
47
|
-
}>;
|
|
48
|
-
/**
|
|
49
|
-
* Allocate the backing GPU texture for a source seen for the first time.
|
|
50
|
-
* @param {object} source - the image/canvas/resource
|
|
51
|
-
* @param {object} options - the resolve options
|
|
52
|
-
* @returns {*} the new handle
|
|
53
|
-
* @ignore
|
|
54
|
-
*/
|
|
55
|
-
onCreate(source: object, options: object): any;
|
|
56
|
-
/**
|
|
57
|
-
* Push the source's current content. May return a REPLACEMENT handle when
|
|
58
|
-
* the shape changed and the old one cannot be respecified.
|
|
59
|
-
* @param {*} handle - the existing handle
|
|
60
|
-
* @param {object} source - the image/canvas/resource
|
|
61
|
-
* @param {object} record - the resident record
|
|
62
|
-
* @param {object} options - the resolve options
|
|
63
|
-
* @returns {*} a replacement handle, or nothing to keep the existing one
|
|
64
|
-
* @ignore
|
|
65
|
-
*/
|
|
66
|
-
onUpload(handle: any, source: object, record: object, options: object): any;
|
|
67
|
-
/**
|
|
68
|
-
* Release a GPU texture. Called exactly once per handle.
|
|
69
|
-
* @param {*} handle - the handle to release
|
|
70
|
-
* @param {object} source - the source it belonged to
|
|
71
|
-
* @ignore
|
|
72
|
-
*/
|
|
73
|
-
onDestroy(handle: any, source: object): void;
|
|
74
|
-
generation: number;
|
|
75
|
-
/**
|
|
76
|
-
* how many sources are currently resident
|
|
77
|
-
* @returns {number} the record count
|
|
78
|
-
* @ignore
|
|
79
|
-
*/
|
|
80
|
-
get size(): number;
|
|
81
|
-
/**
|
|
82
|
-
* The live record for a source, uploading only when it is genuinely needed:
|
|
83
|
-
* the source has never been seen, its content changed, its handle predates
|
|
84
|
-
* the current context, or the caller forced it.
|
|
85
|
-
*
|
|
86
|
-
* A texture that merely moved to a different slot is NOT a reason to upload
|
|
87
|
-
* — that is the whole point of separating residency from slot assignment.
|
|
88
|
-
* @param {object} source - the image/canvas/resource backing the texture
|
|
89
|
-
* @param {object} [options] - resolution options
|
|
90
|
-
* @param {number} [options.version=0] - the source's content revision; a
|
|
91
|
-
* change from the recorded value forces a re-upload
|
|
92
|
-
* @param {boolean} [options.force=false] - re-upload regardless
|
|
93
|
-
* @returns {{handle: *, version: number, generation: number, uploaded: boolean}}
|
|
94
|
-
* the record, with `uploaded` reporting whether this call did GPU work
|
|
95
|
-
* @ignore
|
|
96
|
-
*/
|
|
97
|
-
getResidentRecord(source: object, options?: {
|
|
98
|
-
version?: number | undefined;
|
|
99
|
-
force?: boolean | undefined;
|
|
100
|
-
}): {
|
|
101
|
-
handle: any;
|
|
102
|
-
version: number;
|
|
103
|
-
generation: number;
|
|
104
|
-
uploaded: boolean;
|
|
105
|
-
};
|
|
106
|
-
/**
|
|
107
|
-
* The record for a source without resolving one, for callers that must not
|
|
108
|
-
* trigger GPU work (bookkeeping, debug, invalidation checks).
|
|
109
|
-
* @param {object} source - the source to look up
|
|
110
|
-
* @returns {object|undefined} the record, or `undefined`
|
|
111
|
-
* @ignore
|
|
112
|
-
*/
|
|
113
|
-
peek(source: object): object | undefined;
|
|
114
|
-
/**
|
|
115
|
-
* Release the GPU texture for one source. Driven by the source going away
|
|
116
|
-
* — never by a slot being reassigned, which is exactly the coupling this
|
|
117
|
-
* class exists to break.
|
|
118
|
-
* @param {object} source - the disposed source
|
|
119
|
-
* @returns {boolean} whether a record was held
|
|
120
|
-
* @ignore
|
|
121
|
-
*/
|
|
122
|
-
destroyTexture(source: object): boolean;
|
|
123
|
-
/**
|
|
124
|
-
* Drop every record and bump the generation. Called on context or device
|
|
125
|
-
* loss.
|
|
126
|
-
*
|
|
127
|
-
* This CLEARS the store in place — callers must never respond to a restore
|
|
128
|
-
* by constructing a replacement store. Doing so orphans every handle the
|
|
129
|
-
* old one was tracking, so the *second* loss leaks everything it had
|
|
130
|
-
* accumulated since the first. Both WebGL batchers re-run `init()` on
|
|
131
|
-
* restore, which is precisely how that mistake gets made here.
|
|
132
|
-
* @param {boolean} [destroy=false] - whether to release the handles first.
|
|
133
|
-
* Leave `false` for a lost context (the GPU objects are already gone);
|
|
134
|
-
* pass `true` for an orderly teardown.
|
|
135
|
-
* @ignore
|
|
136
|
-
*/
|
|
137
|
-
releaseAll(destroy?: boolean): void;
|
|
138
|
-
}
|
|
1
|
+
|
|
139
2
|
//# sourceMappingURL=texturestore.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"texturestore.d.ts","sourceRoot":"","sources":["../../../src/video/gpu/texturestore.js"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"texturestore.d.ts","sourceRoot":"","sources":["../../../src/video/gpu/texturestore.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH;IACC;;;;;;;;;;;;OAYG;IACH,gDAXG;QAA2B,QAAQ;QAER,QAAQ;QAIR,SAAS;KAEpC,EAwBF;IApBA,4EAA4E;IAC5E,SADW,GAAG,CAAC,MAAM,EAAE;QAAC,MAAM,EAAE,GAAC,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAC,CAAC,CAChD;IAqBzB;;;;;;;OAOG;IACH,iBANW,MAAM,WACN,MAAM,GACJ,GAAC,CAQb;IAED;;;;;;;;;;OAUG;IACH,iBARW,GAAC,UACD,MAAM,UACN,MAAM,WACN,MAAM,GACJ,GAAC,CAUb;IAED;;;;;;OAMG;IACH,kBALW,GAAC,UACD,MAAM,QAOhB;IA9CA,mBAAmB;IAgDpB;;;;;OAKG;IACH,YAJa,MAAM,CAMlB;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,0BAVW,MAAM,YAEd;QAAyB,OAAO;QAEN,KAAK;KAC/B,GAAU;QAAC,MAAM,EAAE,GAAC,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAC,CAsC/E;IAED;;;;;;;OAOG;IACH,aALW,MAAM,GACJ,MAAM,GAAC,SAAS,CAM5B;IAED;;;;;;;;OAQG;IACH,uBALW,MAAM,GACJ,OAAO,CAcnB;IAED;;;;;;;;;;;;;;OAcG;IACH,qBANW,OAAO,QAgBjB;CACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topology.d.ts","sourceRoot":"","sources":["../../../src/video/gpu/topology.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,MAAM,QAAQ,GACjB,YAAY,GACZ,WAAW,GACX,YAAY,GACZ,WAAW,GACX,eAAe,GACf,gBAAgB,GAChB,cAAc,CAAC;AAElB;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,uFAMQ,CAAC;
|
|
1
|
+
{"version":3,"file":"topology.d.ts","sourceRoot":"","sources":["../../../src/video/gpu/topology.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,MAAM,QAAQ,GACjB,YAAY,GACZ,WAAW,GACX,YAAY,GACZ,WAAW,GACX,eAAe,GACf,gBAAgB,GAChB,cAAc,CAAC;AAElB;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,uFAMQ,CAAC;AAiBzC;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAE5D;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAE9D"}
|
|
@@ -18,11 +18,6 @@
|
|
|
18
18
|
* import it without pulling in the WebGL layer.
|
|
19
19
|
* @see {@link Batcher#addAttribute}
|
|
20
20
|
*/
|
|
21
|
-
/**
|
|
22
|
-
* The scalar component type underlying a {@link VertexFormat}.
|
|
23
|
-
* @ignore
|
|
24
|
-
*/
|
|
25
|
-
export type VertexScalar = "float32" | "uint8" | "sint8" | "unorm8" | "snorm8" | "uint16" | "sint16" | "unorm16" | "snorm16" | "uint32" | "sint32";
|
|
26
21
|
/**
|
|
27
22
|
* A vertex attribute format: component type and count.
|
|
28
23
|
*
|
|
@@ -33,29 +28,6 @@ export type VertexScalar = "float32" | "uint8" | "sint8" | "unorm8" | "snorm8" |
|
|
|
33
28
|
* indefinitely.
|
|
34
29
|
*/
|
|
35
30
|
export type VertexFormat = "float32" | "float32x2" | "float32x3" | "float32x4" | "uint8" | "uint8x2" | "uint8x4" | "sint8" | "sint8x2" | "sint8x4" | "unorm8" | "unorm8x2" | "unorm8x4" | "snorm8" | "snorm8x2" | "snorm8x4" | "uint16" | "uint16x2" | "uint16x4" | "sint16" | "sint16x2" | "sint16x4" | "unorm16" | "unorm16x2" | "unorm16x4" | "snorm16" | "snorm16x2" | "snorm16x4" | "uint32" | "uint32x2" | "uint32x3" | "uint32x4" | "sint32" | "sint32x2" | "sint32x3" | "sint32x4";
|
|
36
|
-
/**
|
|
37
|
-
* What a {@link VertexFormat} resolves to.
|
|
38
|
-
* @ignore
|
|
39
|
-
*/
|
|
40
|
-
export interface VertexFormatInfo {
|
|
41
|
-
/** number of components (1, 2, 3 or 4) */
|
|
42
|
-
components: 1 | 2 | 3 | 4;
|
|
43
|
-
/** total size of the attribute in bytes */
|
|
44
|
-
bytes: number;
|
|
45
|
-
/** whether integer values are scaled into `[0, 1]` / `[-1, 1]` when read by a shader */
|
|
46
|
-
normalized: boolean;
|
|
47
|
-
/** the underlying scalar type */
|
|
48
|
-
scalar: VertexScalar;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Every supported format, resolved.
|
|
52
|
-
*
|
|
53
|
-
* `bytes` is computed as `components × scalar size`, which is the same
|
|
54
|
-
* arithmetic the GL-enum path has always used — so a layout expressed either
|
|
55
|
-
* way produces an identical stride.
|
|
56
|
-
* @ignore
|
|
57
|
-
*/
|
|
58
|
-
export declare const VERTEX_FORMATS: Record<VertexFormat, VertexFormatInfo>;
|
|
59
31
|
/**
|
|
60
32
|
* Whether a value is a supported vertex format name.
|
|
61
33
|
* @param value - the value to test
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vertexformat.d.ts","sourceRoot":"","sources":["../../../src/video/gpu/vertexformat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;
|
|
1
|
+
{"version":3,"file":"vertexformat.d.ts","sourceRoot":"","sources":["../../../src/video/gpu/vertexformat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAoBH;;;;;;;;GAQG;AACH,MAAM,MAAM,YAAY,GAErB,SAAS,GACT,WAAW,GACX,WAAW,GACX,WAAW,GAEX,OAAO,GACP,SAAS,GACT,SAAS,GACT,OAAO,GACP,SAAS,GACT,SAAS,GAET,QAAQ,GACR,UAAU,GACV,UAAU,GACV,QAAQ,GACR,UAAU,GACV,UAAU,GAEV,QAAQ,GACR,UAAU,GACV,UAAU,GACV,QAAQ,GACR,UAAU,GACV,UAAU,GAEV,SAAS,GACT,WAAW,GACX,WAAW,GACX,SAAS,GACT,WAAW,GACX,WAAW,GAEX,QAAQ,GACR,UAAU,GACV,UAAU,GACV,UAAU,GACV,QAAQ,GACR,UAAU,GACV,UAAU,GACV,UAAU,CAAC;AAkId;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAEpE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,gBAAgB,CAS1E"}
|
|
@@ -9,55 +9,7 @@ export class Gradient {
|
|
|
9
9
|
* @param {number[]} coords - gradient coordinates [x0, y0, x1, y1] for linear, [x0, y0, r0, x1, y1, r1] for radial
|
|
10
10
|
*/
|
|
11
11
|
constructor(type: "linear" | "radial", coords: number[]);
|
|
12
|
-
/**
|
|
13
|
-
* gradient type
|
|
14
|
-
* @type {"linear"|"radial"}
|
|
15
|
-
*/
|
|
16
|
-
/** @ignore */
|
|
17
|
-
_id: number;
|
|
18
12
|
type: "linear" | "radial";
|
|
19
|
-
/**
|
|
20
|
-
* gradient coordinates
|
|
21
|
-
* @type {number[]}
|
|
22
|
-
* @ignore
|
|
23
|
-
*/
|
|
24
|
-
coords: number[];
|
|
25
|
-
/**
|
|
26
|
-
* color stops
|
|
27
|
-
* @type {Array<{offset: number, color: string}>}
|
|
28
|
-
* @ignore
|
|
29
|
-
*/
|
|
30
|
-
colorStops: Array<{
|
|
31
|
-
offset: number;
|
|
32
|
-
color: string;
|
|
33
|
-
}>;
|
|
34
|
-
/**
|
|
35
|
-
* cached canvas gradient (for Canvas renderer)
|
|
36
|
-
* @type {CanvasGradient|undefined}
|
|
37
|
-
* @ignore
|
|
38
|
-
*/
|
|
39
|
-
_canvasGradient: CanvasGradient | undefined;
|
|
40
|
-
/**
|
|
41
|
-
* cached gradient render target (for WebGL renderer)
|
|
42
|
-
* @type {CanvasRenderTarget|undefined}
|
|
43
|
-
* @ignore
|
|
44
|
-
*/
|
|
45
|
-
_renderTarget: CanvasRenderTarget | undefined;
|
|
46
|
-
/**
|
|
47
|
-
* whether the gradient needs to be regenerated
|
|
48
|
-
* @type {boolean}
|
|
49
|
-
* @ignore
|
|
50
|
-
*/
|
|
51
|
-
_dirty: boolean;
|
|
52
|
-
/**
|
|
53
|
-
* cached parsed Color objects for sampling (lazily built)
|
|
54
|
-
* @type {{offset: number, color: Color}[]|null}
|
|
55
|
-
* @ignore
|
|
56
|
-
*/
|
|
57
|
-
_parsedStops: {
|
|
58
|
-
offset: number;
|
|
59
|
-
color: Color;
|
|
60
|
-
}[] | null;
|
|
61
13
|
/**
|
|
62
14
|
* Add a color stop to the gradient.
|
|
63
15
|
* @param {number} offset - value between 0.0 and 1.0
|
|
@@ -69,34 +21,6 @@ export class Gradient {
|
|
|
69
21
|
* gradient.addColorStop(1, "blue");
|
|
70
22
|
*/
|
|
71
23
|
addColorStop(offset: number, color: Color | string): Gradient;
|
|
72
|
-
/**
|
|
73
|
-
* Get or create a native CanvasGradient for use with a 2D context.
|
|
74
|
-
* @param {CanvasRenderingContext2D} context - the 2D context to create the gradient on
|
|
75
|
-
* @returns {CanvasGradient}
|
|
76
|
-
* @ignore
|
|
77
|
-
*/
|
|
78
|
-
toCanvasGradient(context: CanvasRenderingContext2D): CanvasGradient;
|
|
79
|
-
/**
|
|
80
|
-
* Render the gradient into the fixed-resolution shared bake target for
|
|
81
|
-
* the given draw rect. Uses the original gradient coordinates so the
|
|
82
|
-
* result matches Canvas 2D behavior. Rects larger than the bake target
|
|
83
|
-
* are rasterized scaled-down; the destination quad stretches them back,
|
|
84
|
-
* which is visually equivalent (linear stop interpolation × linear
|
|
85
|
-
* texture filtering). The returned `width`/`height` describe the region
|
|
86
|
-
* of the canvas the caller must use as the drawImage SOURCE rect.
|
|
87
|
-
* @param {CanvasRenderer|WebGLRenderer} renderer - the active renderer (used to invalidate the GPU texture)
|
|
88
|
-
* @param {number} x - draw rect x
|
|
89
|
-
* @param {number} y - draw rect y
|
|
90
|
-
* @param {number} width - draw rect width
|
|
91
|
-
* @param {number} height - draw rect height
|
|
92
|
-
* @returns {{canvas: HTMLCanvasElement|OffscreenCanvas, width: number, height: number}} the shared gradient canvas + the used source-rect size
|
|
93
|
-
* @ignore
|
|
94
|
-
*/
|
|
95
|
-
toCanvas(renderer: CanvasRenderer | WebGLRenderer, x: number, y: number, width: number, height: number): {
|
|
96
|
-
canvas: HTMLCanvasElement | OffscreenCanvas;
|
|
97
|
-
width: number;
|
|
98
|
-
height: number;
|
|
99
|
-
};
|
|
100
24
|
/**
|
|
101
25
|
* Get the interpolated color at a given position along the gradient.
|
|
102
26
|
* Useful for procedural effects like trails that need per-segment colors.
|
|
@@ -110,11 +34,6 @@ export class Gradient {
|
|
|
110
34
|
* gradient.getColorAt(0.5, myColor); // myColor is now purple
|
|
111
35
|
*/
|
|
112
36
|
getColorAt(position: number, out: Color): Color;
|
|
113
|
-
/**
|
|
114
|
-
* Build the parsed Color cache from colorStops strings.
|
|
115
|
-
* @ignore
|
|
116
|
-
*/
|
|
117
|
-
_buildParsedStops(): void;
|
|
118
37
|
/**
|
|
119
38
|
* Release pooled resources held by this gradient.
|
|
120
39
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gradient.d.ts","sourceRoot":"","sources":["../../src/video/gradient.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gradient.d.ts","sourceRoot":"","sources":["../../src/video/gradient.js"],"names":[],"mappings":"AAmCA;;;;GAIG;AACH;IACC;;;OAGG;IACH,kBAHW,QAAQ,GAAC,QAAQ,UACjB,MAAM,EAAE,EA8DlB;IA3DA;;;OAGG;IACH;;;OAGG;IACH,YAA2B;IAE3B,0BAAgB;IAEhB;;;;;OAKG;IACH,QAJU,MAAM,EAAE,CAIE;IAEpB;;;;;OAKG;IACH,YAJU,KAAK,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,CAAC,CAI5B;IAEpB;;;;;OAKG;IACH,iBAJU,cAAc,GAAC,SAAS,CAIF;IAEhC;;;;;OAKG;IACH,eAJU,kBAAkB,GAAC,SAAS,CAIR;IAE9B;;;;;OAKG;IACH,QAJU,OAAO,CAIC;IAElB;;;;;OAKG;IACH,cAJU;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAC,EAAE,GAAC,IAAI,CAIvB;IAGzB;;;;;;;;;OASG;IACH,qBARW,MAAM,SACN,KAAK,GAAC,MAAM,GACV,QAAQ,CA0BpB;IAED;;;;;;OAMG;IACH,0BALW,wBAAwB,GACtB,cAAc,CAkC1B;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,mBATW,cAAc,GAAC,aAAa,KAC5B,MAAM,KACN,MAAM,SACN,MAAM,UACN,MAAM,GACJ;QAAC,MAAM,EAAE,iBAAiB,GAAC,eAAe,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAyFtF;IAED;;;;;;;;;;;OAWG;IACH,qBATW,MAAM,OACN,KAAK,GACH,KAAK,CA+CjB;IAED;;;;OAIG;IACH,0BAWC;IAED;;OAEG;IACH,gBAOC;CACD;+BAxW8B,sCAAsC;2BAF7C,kBAAkB"}
|