@carbonenginejs/runtime 0.1.0-alpha.0 → 0.1.0-alpha.1
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 +58 -125
- package/dist/audio/index.js +8 -1
- package/dist/audio/index.js.map +1 -1
- package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js +84 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js +14 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js +26 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js +27 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js +27 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js +25 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js +26 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js +58 -0
- package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js.map +1 -0
- package/dist/audio/trinity/audio/AudManager.js +1 -1
- package/dist/audio/trinity/audio/AudManager.js.map +1 -1
- package/dist/audio/trinity/audio/{AudObstructionOcclusion.js → AudObstructionOcclusion/AudObstructionOcclusion.js} +8 -52
- package/dist/audio/trinity/audio/AudObstructionOcclusion/AudObstructionOcclusion.js.map +1 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js +17 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js.map +1 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js +46 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js.map +1 -0
- package/dist/audio/trinity/index.js +8 -1
- package/dist/audio/trinity/index.js.map +1 -1
- package/dist/character/CjsCharacterAppearanceConstruction.js +5 -0
- package/dist/character/CjsCharacterAppearanceConstruction.js.map +1 -1
- package/dist/character/CjsCharacterAppearanceManager.js +14 -0
- package/dist/character/CjsCharacterAppearanceManager.js.map +1 -1
- package/dist/character/CjsCharacterFoundationConstruction.js +5 -0
- package/dist/character/CjsCharacterFoundationConstruction.js.map +1 -1
- package/dist/character/CjsCharacterTexturePolicy.js +5 -0
- package/dist/character/CjsCharacterTexturePolicy.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesAppearanceAL.js +17 -0
- package/dist/character/gles/CjsCharacterGlesAppearanceAL.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js +2 -0
- package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js +5 -0
- package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js +5 -0
- package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesMorphDeformation.js +2 -0
- package/dist/character/gles/CjsCharacterGlesMorphDeformation.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js +5 -0
- package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js +5 -0
- package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js.map +1 -1
- package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js +9 -0
- package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js.map +1 -1
- package/dist/global/blue/CjsScriptCallback.js +142 -0
- package/dist/global/blue/CjsScriptCallback.js.map +1 -0
- package/dist/global/blue/index.js +2 -0
- package/dist/global/blue/index.js.map +1 -0
- package/dist/global/consts/renderContext/formats.js +51 -1
- package/dist/global/consts/renderContext/formats.js.map +1 -1
- package/dist/global/consts/renderContext/index.js +2 -2
- package/dist/global/consts/renderContext/renderStates.js +16 -1
- package/dist/global/consts/renderContext/renderStates.js.map +1 -1
- package/dist/global/contracts/index.js +0 -1
- package/dist/global/contracts/index.js.map +1 -1
- package/dist/global/index.js +4 -3
- package/dist/global/index.js.map +1 -1
- package/dist/global/math/index.js +2 -0
- package/dist/global/math/index.js.map +1 -1
- package/dist/global/math/mesh.js +70 -16
- package/dist/global/math/mesh.js.map +1 -1
- package/dist/global/math/noise.js +47 -68
- package/dist/global/math/noise.js.map +1 -1
- package/dist/global/math/pool.js +18 -3
- package/dist/global/math/pool.js.map +1 -1
- package/dist/global/math/random.js +52 -0
- package/dist/global/math/random.js.map +1 -0
- package/dist/global/math/tri3.js +18 -4
- package/dist/global/math/tri3.js.map +1 -1
- package/dist/global/utils/bytes.js +22 -4
- package/dist/global/utils/bytes.js.map +1 -1
- package/dist/global/utils/checksum.js +80 -0
- package/dist/global/utils/checksum.js.map +1 -0
- package/dist/global/utils/errors/CjsCancellationError.js +36 -0
- package/dist/global/utils/errors/CjsCancellationError.js.map +1 -0
- package/dist/global/utils/errors/CjsError.js +21 -52
- package/dist/global/utils/errors/CjsError.js.map +1 -1
- package/dist/global/utils/errors/abort.js +1 -1
- package/dist/global/utils/errors/abort.js.map +1 -1
- package/dist/global/utils/errors/index.js +2 -1
- package/dist/global/utils/errors/index.js.map +1 -1
- package/dist/global/utils/index.js +4 -2
- package/dist/global/utils/index.js.map +1 -1
- package/dist/index.js +95 -35
- package/dist/index.js.map +1 -1
- package/dist/input/Tr2MainWindow.js +7 -9
- package/dist/input/Tr2MainWindow.js.map +1 -1
- package/dist/resource/CjsResMan.js +33 -39
- package/dist/resource/CjsResMan.js.map +1 -1
- package/dist/resource/CjsResource.js +19 -5
- package/dist/resource/CjsResource.js.map +1 -1
- package/dist/resource/audio/AudioGeometryResData.js +22 -27
- package/dist/resource/audio/AudioGeometryResData.js.map +1 -1
- package/dist/resource/audio/CjsAudioRes.js +4 -5
- package/dist/resource/audio/CjsAudioRes.js.map +1 -1
- package/dist/resource/format/CjsBitReader.js +263 -0
- package/dist/resource/format/CjsBitReader.js.map +1 -0
- package/dist/resource/format/CjsByteReader.js +130 -125
- package/dist/resource/format/CjsByteReader.js.map +1 -1
- package/dist/resource/format/CjsFormat.js +11 -4
- package/dist/resource/format/CjsFormat.js.map +1 -1
- package/dist/resource/format/CjsFormatError.js +37 -1
- package/dist/resource/format/CjsFormatError.js.map +1 -1
- package/dist/resource/format/CjsResourceProbe.js +41 -37
- package/dist/resource/format/CjsResourceProbe.js.map +1 -1
- package/dist/resource/format/carbonRecordGuard.js +33 -0
- package/dist/resource/format/carbonRecordGuard.js.map +1 -0
- package/dist/resource/format/imageSignatures.js +202 -0
- package/dist/resource/format/imageSignatures.js.map +1 -0
- package/dist/resource/format/index.js +2 -1
- package/dist/resource/format/index.js.map +1 -1
- package/dist/resource/format/jsonPolicies.js +180 -0
- package/dist/resource/format/jsonPolicies.js.map +1 -0
- package/dist/resource/formats/black/core/helpers.js +18 -29
- package/dist/resource/formats/black/core/helpers.js.map +1 -1
- package/dist/resource/formats/bnk/CjsBnkFormat.js +4 -3
- package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
- package/dist/resource/formats/bnk/core/WwiseCursor.js +218 -0
- package/dist/resource/formats/bnk/core/WwiseCursor.js.map +1 -0
- package/dist/resource/formats/bnk/core/busNodes.js +2 -1
- package/dist/resource/formats/bnk/core/busNodes.js.map +1 -1
- package/dist/resource/formats/bnk/core/effectNodes.js +2 -1
- package/dist/resource/formats/bnk/core/effectNodes.js.map +1 -1
- package/dist/resource/formats/bnk/core/eventAction.js +15 -93
- package/dist/resource/formats/bnk/core/eventAction.js.map +1 -1
- package/dist/resource/formats/bnk/core/globalSettings.js +19 -94
- package/dist/resource/formats/bnk/core/globalSettings.js.map +1 -1
- package/dist/resource/formats/bnk/core/helpers.js +2 -48
- package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
- package/dist/resource/formats/bnk/core/musicNodes.js +42 -134
- package/dist/resource/formats/bnk/core/musicNodes.js.map +1 -1
- package/dist/resource/formats/bnk/core/nodeBase.js +20 -111
- package/dist/resource/formats/bnk/core/nodeBase.js.map +1 -1
- package/dist/resource/formats/bnk/core/sfxNodes.js +2 -1
- package/dist/resource/formats/bnk/core/sfxNodes.js.map +1 -1
- package/dist/resource/formats/cmf/CjsCmfFormat.js +242 -228
- package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
- package/dist/resource/formats/cmf/core/binary.js +54 -60
- package/dist/resource/formats/cmf/core/binary.js.map +1 -1
- package/dist/resource/formats/dds/CjsDdsFormat.js +5 -3
- package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
- package/dist/resource/formats/dds/core/bc6h.js +16 -18
- package/dist/resource/formats/dds/core/bc6h.js.map +1 -1
- package/dist/resource/formats/dds/core/bc7.js +28 -24
- package/dist/resource/formats/dds/core/bc7.js.map +1 -1
- package/dist/resource/formats/dds/core/helpers.js +7 -133
- package/dist/resource/formats/dds/core/helpers.js.map +1 -1
- package/dist/resource/formats/dxbc/CjsDxbcFormat.js +3 -2
- package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
- package/dist/resource/formats/dxbc/core/helpers.js +4 -32
- package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
- package/dist/resource/formats/fbx/CjsFbxFormat.js +11 -0
- package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
- package/dist/resource/formats/fbx/core/helpers.js +18 -12
- package/dist/resource/formats/fbx/core/helpers.js.map +1 -1
- package/dist/resource/formats/flac/CjsFlacFormat.js +4 -9
- package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
- package/dist/resource/formats/flac/core/helpers.js +1 -62
- package/dist/resource/formats/flac/core/helpers.js.map +1 -1
- package/dist/resource/formats/gif/CjsGifFormat.js +4 -9
- package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
- package/dist/resource/formats/gif/core/helpers.js +1 -63
- package/dist/resource/formats/gif/core/helpers.js.map +1 -1
- package/dist/resource/formats/gltf/CjsGltfFormat.js +4 -3
- package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
- package/dist/resource/formats/gltf/core/helpers.js +3 -19
- package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
- package/dist/resource/formats/gr2/CjsGr2Format.js +105 -92
- package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
- package/dist/resource/formats/gr2/core/container.js +1 -10
- package/dist/resource/formats/gr2/core/container.js.map +1 -1
- package/dist/resource/formats/gr2/core/helpers.js +24 -35
- package/dist/resource/formats/gr2/core/helpers.js.map +1 -1
- package/dist/resource/formats/gr2/core/shared.js +193 -189
- package/dist/resource/formats/gr2/core/shared.js.map +1 -1
- package/dist/resource/formats/hlsl/CjsHlslFormat.js +4 -3
- package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
- package/dist/resource/formats/hlsl/core/helpers.js +1 -30
- package/dist/resource/formats/hlsl/core/helpers.js.map +1 -1
- package/dist/resource/formats/jpeg/CjsJpegFormat.js +5 -3
- package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
- package/dist/resource/formats/jpeg/core/helpers.js +7 -134
- package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
- package/dist/resource/formats/mp3/CjsMp3Format.js +4 -9
- package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
- package/dist/resource/formats/mp3/core/helpers.js +1 -64
- package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
- package/dist/resource/formats/mp4/CjsMp4Format.js +4 -9
- package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
- package/dist/resource/formats/mp4/core/helpers.js +1 -73
- package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
- package/dist/resource/formats/obj/CjsObjFormat.js +4 -3
- package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
- package/dist/resource/formats/obj/core/helpers.js +93 -115
- package/dist/resource/formats/obj/core/helpers.js.map +1 -1
- package/dist/resource/formats/ogg/CjsOggFormat.js +4 -3
- package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
- package/dist/resource/formats/ogg/core/helpers.js +1 -15
- package/dist/resource/formats/ogg/core/helpers.js.map +1 -1
- package/dist/resource/formats/ogg/core/vorbis.js +138 -144
- package/dist/resource/formats/ogg/core/vorbis.js.map +1 -1
- package/dist/resource/formats/pickle/CjsPickleFormat.js +83 -114
- package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
- package/dist/resource/formats/png/CjsPngFormat.js +5 -3
- package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
- package/dist/resource/formats/png/core/helpers.js +13 -152
- package/dist/resource/formats/png/core/helpers.js.map +1 -1
- package/dist/resource/formats/png/core/writer.js +3 -27
- package/dist/resource/formats/png/core/writer.js.map +1 -1
- package/dist/resource/formats/red/core/helpers.js +19 -29
- package/dist/resource/formats/red/core/helpers.js.map +1 -1
- package/dist/resource/formats/stl/CjsStlFormat.js +158 -147
- package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
- package/dist/resource/formats/stl/core/helpers.js +44 -66
- package/dist/resource/formats/stl/core/helpers.js.map +1 -1
- package/dist/resource/formats/tga/CjsTgaFormat.js +5 -3
- package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
- package/dist/resource/formats/tga/core/helpers.js +7 -153
- package/dist/resource/formats/tga/core/helpers.js.map +1 -1
- package/dist/resource/formats/vta/CjsVtaFormat.js +4 -3
- package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
- package/dist/resource/formats/vta/core/helpers.js +1 -17
- package/dist/resource/formats/vta/core/helpers.js.map +1 -1
- package/dist/resource/formats/wav/CjsWavFormat.js +4 -3
- package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
- package/dist/resource/formats/wav/core/helpers.js +1 -15
- package/dist/resource/formats/wav/core/helpers.js.map +1 -1
- package/dist/resource/formats/webgl/CjsWebglFormat.js +4 -3
- package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +52 -4
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
- package/dist/resource/formats/webgl/core/helpers.js +39 -68
- package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
- package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +4 -3
- package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
- package/dist/resource/formats/webgpu/core/helpers.js +4 -30
- package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
- package/dist/resource/formats/webm/CjsWebmFormat.js +4 -9
- package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
- package/dist/resource/formats/webm/core/helpers.js +1 -73
- package/dist/resource/formats/webm/core/helpers.js.map +1 -1
- package/dist/resource/formats/webp/CjsWebpFormat.js +4 -9
- package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
- package/dist/resource/formats/webp/core/helpers.js +1 -62
- package/dist/resource/formats/webp/core/helpers.js.map +1 -1
- package/dist/resource/formats/wem/CjsWemFormat.js +4 -3
- package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
- package/dist/resource/formats/wem/core/bitStream.js +83 -106
- package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
- package/dist/resource/formats/wem/core/codebookLibrary.js +52 -52
- package/dist/resource/formats/wem/core/codebookLibrary.js.map +1 -1
- package/dist/resource/formats/wem/core/helpers.js +1 -15
- package/dist/resource/formats/wem/core/helpers.js.map +1 -1
- package/dist/resource/formats/wem/core/wemToOgg.js +67 -67
- package/dist/resource/formats/wem/core/wemToOgg.js.map +1 -1
- package/dist/resource/geometry/MeshDecalData.js +23 -25
- package/dist/resource/geometry/MeshDecalData.js.map +1 -1
- package/dist/resource/geometry/MeshDecalLodData.js +14 -23
- package/dist/resource/geometry/MeshDecalLodData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryRes.js +299 -284
- package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResAreaData.js +30 -31
- package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResJointData.js +16 -24
- package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResLodData.js +50 -41
- package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResMeshData.js +32 -32
- package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResSkeletonData.js +14 -23
- package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -1
- package/dist/resource/geometry/TriJointBinding.js +16 -24
- package/dist/resource/geometry/TriJointBinding.js.map +1 -1
- package/dist/resource/geometry/TriMorphTargetGeometryConstants.js +22 -27
- package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -1
- package/dist/resource/geometry/TriRtGeometryConstants.js +50 -41
- package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -1
- package/dist/resource/geometry/granny/GStateBindingCallbackData.js +12 -22
- package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -1
- package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +30 -31
- package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -1
- package/dist/resource/index.js +1 -1
- package/dist/resource/shader/reflection/Tr2EffectConstant.js +16 -17
- package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectDescription.js +26 -28
- package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js +24 -25
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +21 -22
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectResource.js +25 -26
- package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js +69 -72
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js +17 -18
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2Pass.js +42 -43
- package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2RenderStateSetup.js +26 -5
- package/dist/resource/shader/reflection/Tr2RenderStateSetup.js.map +1 -1
- package/dist/resource/shader/reflection/carbonRecordFields.js +87 -90
- package/dist/resource/shader/reflection/carbonRecordFields.js.map +1 -1
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js +32 -34
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
- package/dist/resource/texture/CjsTextureArrayRes.js +1 -6
- package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
- package/dist/resource/texture/Tr2TextureLodManager.js +35 -27
- package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -1
- package/dist/resource/texture/Tr2TextureLodUpdateRequest.js +16 -24
- package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePackChannel.js +16 -24
- package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipeline.js +24 -20
- package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineParams.js +14 -23
- package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +18 -25
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +11 -16
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +14 -23
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +12 -22
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js +38 -26
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
- package/dist/resource/worker/CjsResManMainThreadLoader.js +2 -5
- package/dist/resource/worker/CjsResManMainThreadLoader.js.map +1 -1
- package/dist/resource/worker/CjsResManWorkerLoader.js +6 -7
- package/dist/resource/worker/CjsResManWorkerLoader.js.map +1 -1
- package/dist/resource/worker/protocol.js +18 -1
- package/dist/resource/worker/protocol.js.map +1 -1
- package/dist/sof/EveSOF.js +2 -222
- package/dist/sof/EveSOF.js.map +1 -1
- package/dist/sof/SofDocumentBuilder.js +205 -0
- package/dist/sof/SofDocumentBuilder.js.map +1 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js +16 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js.map +1 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js +16 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js.map +1 -0
- package/dist/sof/faction/EveSOFDataFactionColorSet.js +3 -27
- package/dist/sof/faction/EveSOFDataFactionColorSet.js.map +1 -1
- package/dist/sof/faction/index.js +3 -1
- package/dist/sof/faction/index.js.map +1 -1
- package/dist/sof/generic/ErrSOFAreaShaderNotFound.js +18 -0
- package/dist/sof/generic/ErrSOFAreaShaderNotFound.js.map +1 -0
- package/dist/sof/generic/ErrSOFDecalShaderNotFound.js +18 -0
- package/dist/sof/generic/ErrSOFDecalShaderNotFound.js.map +1 -0
- package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js +21 -0
- package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js.map +1 -0
- package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js +21 -0
- package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js.map +1 -0
- package/dist/sof/generic/EveSOFDataGeneric.js +5 -69
- package/dist/sof/generic/EveSOFDataGeneric.js.map +1 -1
- package/dist/sof/generic/index.js +5 -1
- package/dist/sof/generic/index.js.map +1 -1
- package/dist/sof/index.js +23 -7
- package/dist/sof/index.js.map +1 -1
- package/dist/sof/pattern/ErrSOFProjectionNotFound.js +20 -0
- package/dist/sof/pattern/ErrSOFProjectionNotFound.js.map +1 -0
- package/dist/sof/pattern/EveSOFDataPattern.js +2 -17
- package/dist/sof/pattern/EveSOFDataPattern.js.map +1 -1
- package/dist/sof/pattern/index.js +2 -1
- package/dist/sof/pattern/index.js.map +1 -1
- package/dist/sof/shared/ErrSOFAreaTypeNotFound.js +16 -0
- package/dist/sof/shared/ErrSOFAreaTypeNotFound.js.map +1 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js +16 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js.map +1 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js +16 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js.map +1 -0
- package/dist/sof/shared/EveSOFDataArea.js +2 -13
- package/dist/sof/shared/EveSOFDataArea.js.map +1 -1
- package/dist/sof/shared/EveSOFDataLogoSet.js +3 -27
- package/dist/sof/shared/EveSOFDataLogoSet.js.map +1 -1
- package/dist/sof/shared/EveSOFDataParameter.js +2 -146
- package/dist/sof/shared/EveSOFDataParameter.js.map +1 -1
- package/dist/sof/shared/EveSOFDataParameterBool.js +40 -0
- package/dist/sof/shared/EveSOFDataParameterBool.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterColor.js +36 -0
- package/dist/sof/shared/EveSOFDataParameterColor.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterFloat.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterFloat.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterInt.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterInt.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterVector2.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterVector2.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterVector3.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterVector3.js.map +1 -0
- package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js → EveSOFDataSpotLightAttachment.js} +1 -1
- package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js.map → EveSOFDataSpotLightAttachment.js.map} +1 -1
- package/dist/sof/shared/index.js +13 -4
- package/dist/sof/shared/index.js.map +1 -1
- package/dist/sof/sofDocumentValues.js +33 -0
- package/dist/sof/sofDocumentValues.js.map +1 -0
- package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js +168 -0
- package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js.map +1 -0
- package/dist/trinity/controllers/{ITr2Controller.js → ITr2Controller/ITr2Controller.js} +2 -134
- package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js.map +1 -0
- package/dist/trinity/controllers/Tr2Controller.js +2 -1
- package/dist/trinity/controllers/Tr2Controller.js.map +1 -1
- package/dist/trinity/controllers/Tr2ControllerReference.js +2 -1
- package/dist/trinity/controllers/Tr2ControllerReference.js.map +1 -1
- package/dist/trinity/controllers/action/ITr2ControllerAction.js +2 -1
- package/dist/trinity/controllers/action/ITr2ControllerAction.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js +10 -9
- package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js.map +1 -1
- package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js +26 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js.map +1 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js +24 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js.map +1 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js +387 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js.map +1 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js +4 -1011
- package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js.map +1 -1
- package/dist/trinity/controllers/expression/expressionRuntime.js +605 -0
- package/dist/trinity/controllers/expression/expressionRuntime.js.map +1 -0
- package/dist/trinity/controllers/index.js +5 -2
- package/dist/trinity/controllers/index.js.map +1 -1
- package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js +2 -1
- package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js.map +1 -1
- package/dist/trinity/controllers/timeline/Tr2TimelineController.js +2 -1
- package/dist/trinity/controllers/timeline/Tr2TimelineController.js.map +1 -1
- package/dist/trinity/core/ITr2Updateable.js +2 -1
- package/dist/trinity/core/ITr2Updateable.js.map +1 -1
- package/dist/trinity/core/Tr2Blitter.js +6 -3
- package/dist/trinity/core/Tr2Blitter.js.map +1 -1
- package/dist/trinity/core/Tr2Denoiser.js +256 -0
- package/dist/trinity/core/Tr2Denoiser.js.map +1 -0
- package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js +115 -0
- package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js.map +1 -0
- package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js +79 -0
- package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js.map +1 -0
- package/dist/trinity/core/{Tr2GpuResourcePool.js → Tr2GpuResourcePool/Tr2GpuResourcePool.js} +63 -151
- package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -0
- package/dist/trinity/core/{Tr2QuadRenderer.js → Tr2QuadRenderer/Tr2QuadRenderer.js} +8 -30
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js.map +1 -0
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js +38 -0
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js.map +1 -0
- package/dist/trinity/core/Tr2RenderUtils.js +20 -3
- package/dist/trinity/core/Tr2RenderUtils.js.map +1 -1
- package/dist/trinity/core/Tr2Renderer.js +146 -1
- package/dist/trinity/core/Tr2Renderer.js.map +1 -1
- package/dist/trinity/core/Tr2ShadowMap.js +135 -14
- package/dist/trinity/core/Tr2ShadowMap.js.map +1 -1
- package/dist/trinity/core/{Tr2TextureArray.js → Tr2TextureArray/Tr2TextureArray.js} +3 -58
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -0
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js +61 -0
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js +26 -0
- package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js +29 -0
- package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js.map +1 -0
- package/dist/trinity/core/batch/{ITriRenderBatchAccumulator.js → TriRenderBatch/ITriRenderBatchAccumulator.js} +30 -30
- package/dist/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js.map +1 -0
- package/dist/trinity/core/batch/{Tr2RenderBatch.js → TriRenderBatch/Tr2RenderBatch.js} +81 -154
- package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js.map +1 -0
- package/dist/trinity/core/batch/{TriRenderBatchAccumulator.js → TriRenderBatch/TriRenderBatchAccumulator.js} +7 -38
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAccumulator.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js +61 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js +40 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatchMap.js +6 -1
- package/dist/trinity/core/batch/TriRenderBatchMap.js.map +1 -1
- package/dist/trinity/core/context/Tr2RenderContext.js +75 -57
- package/dist/trinity/core/context/Tr2RenderContext.js.map +1 -1
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js +67 -0
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js.map +1 -0
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js +50 -0
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js.map +1 -0
- package/dist/trinity/core/device/Tr2DepthStencil.js +186 -13
- package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
- package/dist/trinity/core/device/{Tr2RingBuffer.js → Tr2RingBuffer/Tr2RingBuffer.js} +27 -79
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js.map +1 -0
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js +114 -0
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js.map +1 -0
- package/dist/trinity/core/device/{Tr2SuballocatedBuffer.js → Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js} +5 -59
- package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js.map +1 -0
- package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js +80 -0
- package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js.map +1 -0
- package/dist/trinity/core/index.js +42 -15
- package/dist/trinity/core/index.js.map +1 -1
- package/dist/trinity/core/lighting/Tr2LightManager.js +6 -1
- package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
- package/dist/trinity/core/mesh/{ITr2ImpostorSource.js → ITr2ImpostorSource/ITr2ImpostorSource.js} +6 -28
- package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js.map +1 -0
- package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js +32 -0
- package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js.map +1 -0
- package/dist/trinity/core/mesh/{ITr2InstanceData.js → ITr2InstanceData/ITr2InstanceData.js} +5 -29
- package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js.map +1 -0
- package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js +33 -0
- package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js.map +1 -0
- package/dist/trinity/core/mesh/Tr2DirectInstanceData.js +2 -1
- package/dist/trinity/core/mesh/Tr2DirectInstanceData.js.map +1 -1
- package/dist/trinity/core/mesh/Tr2MeshBase.js +7 -1
- package/dist/trinity/core/mesh/Tr2MeshBase.js.map +1 -1
- package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js +2 -1
- package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js.map +1 -1
- package/dist/trinity/core/mesh/TriGeometryResAllocations.js +6 -2
- package/dist/trinity/core/mesh/TriGeometryResAllocations.js.map +1 -1
- package/dist/trinity/core/rawData/CjsConstantLayout.js +196 -0
- package/dist/trinity/core/rawData/CjsConstantLayout.js.map +1 -0
- package/dist/trinity/core/rawData/CjsPerFrameLayouts.js +8 -3
- package/dist/trinity/core/rawData/CjsPerFrameLayouts.js.map +1 -1
- package/dist/trinity/core/rawData/CjsPerObjectLayouts.js +40 -732
- package/dist/trinity/core/rawData/CjsPerObjectLayouts.js.map +1 -1
- package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js +34 -0
- package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js +69 -0
- package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js +59 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js +37 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js +44 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js +31 -0
- package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js +29 -0
- package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js +39 -0
- package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js +30 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js +78 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js +169 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js +107 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js +44 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js +34 -0
- package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js +82 -0
- package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js +42 -0
- package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/{Tr2PerObjectData.js → perObjectData/Tr2PerObjectData.js} +110 -62
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js +104 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js +87 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js.map +1 -0
- package/dist/trinity/core/variable/TriVariable.js +83 -83
- package/dist/trinity/core/variable/TriVariable.js.map +1 -1
- package/dist/trinity/core/vertex/{Tr2VertexDefinition.js → Tr2VertexDefinition/Tr2VertexDefinition.js} +4 -20
- package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js.map +1 -0
- package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js +29 -0
- package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js.map +1 -0
- package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +116 -36
- package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js +50 -92
- package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js.map +1 -1
- package/dist/trinity/eve/EveModularObjectModifier.js +9 -5
- package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
- package/dist/trinity/eve/IEveInheritPropertiesOwner.js +2 -1
- package/dist/trinity/eve/IEveInheritPropertiesOwner.js.map +1 -1
- package/dist/trinity/eve/IEveSpaceObject2.js +2 -1
- package/dist/trinity/eve/IEveSpaceObject2.js.map +1 -1
- package/dist/trinity/eve/IEveTransform.js +2 -1
- package/dist/trinity/eve/IEveTransform.js.map +1 -1
- package/dist/trinity/eve/attachment/banner/EveBannerSet.js +2 -2
- package/dist/trinity/eve/attachment/banner/EveBannerSet.js.map +1 -1
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js +109 -133
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js.map +1 -1
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js +40 -0
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js.map +1 -0
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js +1 -1
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -1
- package/dist/trinity/eve/attachment/decal/DecalMeshCache.js +2 -14
- package/dist/trinity/eve/attachment/decal/DecalMeshCache.js.map +1 -1
- package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js +18 -0
- package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js.map +1 -0
- package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js +1 -1
- package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -1
- package/dist/trinity/eve/attachment/haze/EveHazeSet.js +1 -1
- package/dist/trinity/eve/attachment/haze/EveHazeSet.js.map +1 -1
- package/dist/trinity/eve/attachment/plane/EvePlaneSet.js +1 -1
- package/dist/trinity/eve/attachment/plane/EvePlaneSet.js.map +1 -1
- package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js +2 -2
- package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js +4 -2
- package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js.map +1 -1
- package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +143 -139
- package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
- package/dist/trinity/eve/camera/EveCamera.js +1 -1
- package/dist/trinity/eve/camera/EveCamera.js.map +1 -1
- package/dist/trinity/eve/child/EveChildBoosterSet.js +12 -1
- package/dist/trinity/eve/child/EveChildBoosterSet.js.map +1 -1
- package/dist/trinity/eve/child/EveChildCloud2.js +178 -151
- package/dist/trinity/eve/child/EveChildCloud2.js.map +1 -1
- package/dist/trinity/eve/child/EveChildContainer.js +141 -141
- package/dist/trinity/eve/child/EveChildContainer.js.map +1 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +87 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js +46 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js.map +1 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js +35 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js.map +1 -0
- package/dist/trinity/eve/child/{EveChildInstancedMeshes.js → EveChildInstancedMeshes/EveChildInstancedMeshes.js} +42 -163
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -0
- package/dist/trinity/eve/child/EveChildMesh.js +218 -218
- package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js +53 -0
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js.map +1 -0
- package/dist/trinity/eve/child/{EveChildPartData.js → EveChildPartData/EveChildPartDataPartData.js} +9 -45
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js.map +1 -0
- package/dist/trinity/eve/child/EveChildParticleSystem.js +30 -29
- package/dist/trinity/eve/child/EveChildParticleSystem.js.map +1 -1
- package/dist/trinity/eve/child/EveChildTransform.js +5 -0
- package/dist/trinity/eve/child/EveChildTransform.js.map +1 -1
- package/dist/trinity/eve/child/EveChildTurret.js +7 -0
- package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
- package/dist/trinity/eve/index.js +10 -4
- package/dist/trinity/eve/index.js.map +1 -1
- package/dist/trinity/eve/lights/Tr2Light.js +5 -0
- package/dist/trinity/eve/lights/Tr2Light.js.map +1 -1
- package/dist/trinity/eve/overlays/overlayBatches.js +6 -1
- package/dist/trinity/eve/overlays/overlayBatches.js.map +1 -1
- package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js +4 -4
- package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js.map +1 -1
- package/dist/trinity/eve/renderable/stretch/EveStretch2.js +76 -71
- package/dist/trinity/eve/renderable/stretch/EveStretch2.js.map +1 -1
- package/dist/trinity/eve/renderable/stretch/EveStretch3.js +1 -1
- package/dist/trinity/eve/renderable/stretch/EveStretch3.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveShip2.js +3 -3
- package/dist/trinity/eve/spaceObject/EveShip2.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +408 -407
- package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
- package/dist/trinity/eve/ui/EveTacticalOverlay.js +1 -1
- package/dist/trinity/eve/ui/EveTacticalOverlay.js.map +1 -1
- package/dist/trinity/eve/ui/lines/EveCurveLineSet.js +9 -9
- package/dist/trinity/eve/ui/lines/EveCurveLineSet.js.map +1 -1
- package/dist/trinity/eve/ui/lines/EveLineSet.js +27 -25
- package/dist/trinity/eve/ui/lines/EveLineSet.js.map +1 -1
- package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js +3 -2
- package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -1
- package/dist/trinity/generated/index.js +0 -1
- package/dist/trinity/generated/index.js.map +1 -1
- package/dist/trinity/generated/trinityCore/index.js +0 -1
- package/dist/trinity/generated/trinityCore/index.js.map +1 -1
- package/dist/trinity/index.js +59 -23
- package/dist/trinity/index.js.map +1 -1
- package/dist/trinity/particle/{ITr2GenericEmitter.js → ITr2GenericEmitter/ITr2GenericEmitter.js} +4 -32
- package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js.map +1 -0
- package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js +36 -0
- package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js.map +1 -0
- package/dist/trinity/particle/Tr2ParticleSystem.js +4 -2
- package/dist/trinity/particle/Tr2ParticleSystem.js.map +1 -1
- package/dist/trinity/particle/element/Tr2ParticleElementData.js +15 -4
- package/dist/trinity/particle/element/Tr2ParticleElementData.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js +21 -20
- package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +23 -22
- package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2StaticEmitter.js +14 -13
- package/dist/trinity/particle/emitter/Tr2StaticEmitter.js.map +1 -1
- package/dist/trinity/particle/index.js +2 -1
- package/dist/trinity/particle/index.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js +7 -1
- package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js.map +1 -1
- package/dist/trinity/shader/Tr2Effect.js +131 -58
- package/dist/trinity/shader/Tr2Effect.js.map +1 -1
- package/dist/trinity/shader/Tr2EffectStateManager.js +17 -5
- package/dist/trinity/shader/Tr2EffectStateManager.js.map +1 -1
- package/dist/trinity/shader/Tr2Material.js +21 -4
- package/dist/trinity/shader/Tr2Material.js.map +1 -1
- package/dist/trinity/shader/material/Tr2EffectPassParameters.js +4 -1
- package/dist/trinity/shader/material/Tr2EffectPassParameters.js.map +1 -1
- package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js +2 -2
- package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
- package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js +79 -0
- package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js.map +1 -0
- package/dist/trinityal/{Tr2DeviceResourceAL.js → Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js} +77 -79
- package/dist/trinityal/Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js.map +1 -0
- package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js +24 -0
- package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js.map +1 -0
- package/dist/trinityal/Tr2DrawUPHelper.js +2 -1
- package/dist/trinityal/Tr2DrawUPHelper.js.map +1 -1
- package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js +45 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js +154 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js +48 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js +75 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js.map +1 -0
- package/dist/trinityal/{Tr2HalHelperStructures.js → Tr2HalHelperStructures/Tr2TextureSubresource.js} +11 -115
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js +51 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js.map +1 -0
- package/dist/trinityal/{Tr2RenderPassAL.js → Tr2RenderPassAL/Tr2ColorAttachment.js} +5 -28
- package/dist/trinityal/Tr2RenderPassAL/Tr2ColorAttachment.js.map +1 -0
- package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js +38 -0
- package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js +80 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js +76 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js +96 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js +196 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js.map +1 -0
- package/dist/trinityal/index.js +22 -9
- package/dist/trinityal/index.js.map +1 -1
- package/dist/trinityal/stub/Tr2BufferALStub.js +86 -141
- package/dist/trinityal/stub/Tr2BufferALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2CapsALStub.js +17 -0
- package/dist/trinityal/stub/Tr2CapsALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2ConstantBufferALStub.js +57 -41
- package/dist/trinityal/stub/Tr2ConstantBufferALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2FenceALStub.js +18 -2
- package/dist/trinityal/stub/Tr2FenceALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2GpuTimerALStub.js +97 -0
- package/dist/trinityal/stub/Tr2GpuTimerALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js +124 -0
- package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js +146 -0
- package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js +28 -0
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js.map +1 -0
- package/dist/trinityal/stub/{Tr2RenderContextALStub.js → Tr2RenderContextALStub/Tr2RenderContextALStub.js} +70 -75
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2SamplerStateALStub.js +47 -31
- package/dist/trinityal/stub/Tr2SamplerStateALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2ShaderALStub.js +61 -45
- package/dist/trinityal/stub/Tr2ShaderALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2ShaderProgramALStub.js +51 -33
- package/dist/trinityal/stub/Tr2ShaderProgramALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2SwapChainALStub.js +61 -45
- package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2TextureALStub.js +188 -171
- package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2VertexLayoutALStub.js +43 -27
- package/dist/trinityal/stub/Tr2VertexLayoutALStub.js.map +1 -1
- package/dist/trinityal/stub/{Tr2VideoAdapterInfoALStub.js → Tr2VideoAdapterInfoStub.js} +16 -1
- package/dist/trinityal/stub/Tr2VideoAdapterInfoStub.js.map +1 -0
- package/dist/trinityal/stub/index.js +8 -4
- package/dist/trinityal/stub/index.js.map +1 -1
- package/dist/trinityal/vertexLayoutMatch.js +2 -2
- package/dist/trinityal/vertexLayoutMatch.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js +105 -90
- package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js +17 -0
- package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js +15 -0
- package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuDevice.js +2 -2
- package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +900 -938
- package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js +56 -60
- package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js +16 -1
- package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js +100 -379
- package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js +330 -0
- package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js.map +1 -0
- package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +15 -0
- package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
- package/dist/trinityal/webgpu/core/{constantArena.js → CjsWebgpuConstantArena.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuConstantArena.js.map +1 -0
- package/dist/trinityal/webgpu/core/{batchGroups.js → CjsWebgpuEncodeState.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuEncodeState.js.map +1 -0
- package/dist/trinityal/webgpu/core/{perFrameSource.js → CjsWebgpuPerFrameSource.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuPerFrameSource.js.map +1 -0
- package/dist/trinityal/webgpu/core/{pipelineCache.js → CjsWebgpuPipelineCache.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuPipelineCache.js.map +1 -0
- package/dist/trinityal/webgpu/core/{psoDescription.js → CjsWebgpuPsoDescription.js} +2 -2
- package/dist/trinityal/webgpu/core/CjsWebgpuPsoDescription.js.map +1 -0
- package/dist/trinityal/webgpu/core/{renderTarget.js → CjsWebgpuRenderTarget.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuRenderTarget.js.map +1 -0
- package/dist/trinityal/webgpu/core/{samplerSource.js → CjsWebgpuSamplerSource.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuSamplerSource.js.map +1 -0
- package/dist/trinityal/webgpu/core/{textureSource.js → CjsWebgpuTextureSource.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuTextureSource.js.map +1 -0
- package/dist/trinityal/webgpu/core/{trinityBatchDispatcher.js → CjsWebgpuTrinityBatchDispatcher.js} +4 -4
- package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchDispatcher.js.map +1 -0
- package/dist/trinityal/webgpu/core/{trinityBatchResolver.js → CjsWebgpuTrinityBatchResolver.js} +81 -81
- package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchResolver.js.map +1 -0
- package/dist/trinityal/webgpu/core/{trinityPassEncoder.js → CjsWebgpuTrinityPassEncoder.js} +2 -2
- package/dist/trinityal/webgpu/core/CjsWebgpuTrinityPassEncoder.js.map +1 -0
- package/dist/trinityal/webgpu/core/{workQueue.js → CjsWebgpuWorkQueue.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuWorkQueue.js.map +1 -0
- package/dist/trinityal/webgpu/internal.js +12 -11
- package/dist/trinityal/webgpu/internal.js.map +1 -1
- package/docs/audio/reference/classes/trinity.md +44 -34
- package/docs/character/architecture.md +276 -0
- package/docs/character/reference/character-appearance-plans.md +30 -66
- package/docs/character/reference/prepared-libraries.md +14 -30
- package/docs/global/reference/api.md +2 -1
- package/docs/global/reference/classes/README.md +53 -71
- package/docs/global/reference/classes/dropped.md +16 -0
- package/docs/resource/README.md +19 -15
- package/docs/resource/architecture.md +9 -2
- package/docs/resource/concepts/format-capabilities.md +124 -80
- package/docs/resource/concepts/shared-format-helpers.md +94 -0
- package/docs/resource/formats/README.md +230 -224
- package/docs/resource/formats/bitknit2.md +221 -0
- package/docs/resource/formats/carbon-effect-container.md +184 -269
- package/docs/resource/formats/gr2.md +6 -1
- package/docs/resource/formats/schemabound.md +28 -48
- package/docs/resource/formats/static.md +70 -97
- package/docs/resource/formats/webgl/carbon-constant-layouts.md +8 -8
- package/docs/resource/formats/webgl/decl-io.md +165 -256
- package/docs/resource/formats/webgl/memory-structured.md +64 -142
- package/docs/resource/formats/webgl/texture-sample.md +109 -138
- package/docs/resource/formats/webgpu/formats/carbon-webgpu.md +38 -69
- package/docs/resource/formats/webgpu/guides/effect-packaging.md +54 -116
- package/docs/resource/formats/webgpu/reference/api.md +64 -67
- package/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +104 -260
- package/docs/resource/reference/classes/core.md +256 -236
- package/docs/resource/reference/classes/formats.md +1668 -1672
- package/docs/resource/reference/workers.md +4 -2
- package/docs/sof/reference/classes/core.md +1 -1
- package/docs/sof/reference/classes/faction.md +2 -2
- package/docs/sof/reference/classes/generic.md +4 -4
- package/docs/sof/reference/classes/pattern.md +1 -1
- package/docs/sof/reference/classes/shared.md +10 -10
- package/docs/trinity/architecture.md +55 -44
- package/docs/trinity/concepts/generated-class-lifecycle.md +10 -15
- package/docs/trinity/reference/classes/curves-and-utilities.md +496 -506
- package/docs/trinity/reference/classes/dropped.md +0 -189
- package/docs/trinity/reference/classes/eve-runtime.md +8 -8
- package/docs/trinity/reference/classes/generated.md +0 -10
- package/docs/trinity/reference/classes/particle.md +2 -2
- package/docs/trinity/reference/classes/trinity-core.md +1554 -1256
- package/docs/trinity/reference/implementation-status.md +50 -75
- package/docs/trinity/reference/main-semantic-extraction.md +13 -17
- package/docs/trinityal/reference/classes/README.md +77 -27
- package/docs/trinityal/reference/classes/dropped.md +82 -0
- package/docs/trinityal/webgpu/README.md +3 -1
- package/docs/trinityal/webgpu/architecture.md +121 -228
- package/docs/trinityal/webgpu/reference/api.md +5 -5
- package/docs/trinityal/webgpu/reference/classes/README.md +13 -13
- package/format-notices/gr2/NOTICE +18 -12
- package/format-notices/gr2/THIRD-PARTY-NOTICES.md +5 -5
- package/package.json +4 -1
- package/dist/audio/trinity/audio/AudActionLog.js +0 -173
- package/dist/audio/trinity/audio/AudActionLog.js.map +0 -1
- package/dist/audio/trinity/audio/AudObstructionOcclusion.js.map +0 -1
- package/dist/global/contracts/CjsScriptCallback.js +0 -94
- package/dist/global/contracts/CjsScriptCallback.js.map +0 -1
- package/dist/trinity/controllers/ITr2Controller.js.map +0 -1
- package/dist/trinity/core/Tr2GpuResourcePool.js.map +0 -1
- package/dist/trinity/core/Tr2QuadRenderer.js.map +0 -1
- package/dist/trinity/core/Tr2TextureArray.js.map +0 -1
- package/dist/trinity/core/batch/ITriRenderBatchAccumulator.js.map +0 -1
- package/dist/trinity/core/batch/Tr2RenderBatch.js.map +0 -1
- package/dist/trinity/core/batch/TriRenderBatchAccumulator.js.map +0 -1
- package/dist/trinity/core/context/CjsShadowMapExecutor.js +0 -43
- package/dist/trinity/core/context/CjsShadowMapExecutor.js.map +0 -1
- package/dist/trinity/core/context/CjsVolumetricsExecutor.js +0 -64
- package/dist/trinity/core/context/CjsVolumetricsExecutor.js.map +0 -1
- package/dist/trinity/core/context/Tr2VisibilityResults.js +0 -109
- package/dist/trinity/core/context/Tr2VisibilityResults.js.map +0 -1
- package/dist/trinity/core/device/Tr2RingBuffer.js.map +0 -1
- package/dist/trinity/core/device/Tr2SuballocatedBuffer.js.map +0 -1
- package/dist/trinity/core/mesh/ITr2ImpostorSource.js.map +0 -1
- package/dist/trinity/core/mesh/ITr2InstanceData.js.map +0 -1
- package/dist/trinity/core/rawData/Tr2PerObjectData.js.map +0 -1
- package/dist/trinity/core/rawData/constantLayout.js +0 -175
- package/dist/trinity/core/rawData/constantLayout.js.map +0 -1
- package/dist/trinity/core/vertex/Tr2VertexDefinition.js.map +0 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes.js.map +0 -1
- package/dist/trinity/eve/child/EveChildPartData.js.map +0 -1
- package/dist/trinity/generated/trinityCore/Tr2Denoiser.js +0 -47
- package/dist/trinity/generated/trinityCore/Tr2Denoiser.js.map +0 -1
- package/dist/trinity/particle/ITr2GenericEmitter.js.map +0 -1
- package/dist/trinityal/Tr2DeviceResourceAL.js.map +0 -1
- package/dist/trinityal/Tr2HalHelperStructures.js.map +0 -1
- package/dist/trinityal/Tr2RenderPassAL.js.map +0 -1
- package/dist/trinityal/Tr2ResourceSetAL.js +0 -419
- package/dist/trinityal/Tr2ResourceSetAL.js.map +0 -1
- package/dist/trinityal/Tr2SamplerDescription.js +0 -72
- package/dist/trinityal/Tr2SamplerDescription.js.map +0 -1
- package/dist/trinityal/stub/Tr2QueryALStub.js +0 -326
- package/dist/trinityal/stub/Tr2QueryALStub.js.map +0 -1
- package/dist/trinityal/stub/Tr2RenderContextALStub.js.map +0 -1
- package/dist/trinityal/stub/Tr2VideoAdapterInfoALStub.js.map +0 -1
- package/dist/trinityal/webgpu/core/batchGroups.js.map +0 -1
- package/dist/trinityal/webgpu/core/constantArena.js.map +0 -1
- package/dist/trinityal/webgpu/core/perFrameSource.js.map +0 -1
- package/dist/trinityal/webgpu/core/pipelineCache.js.map +0 -1
- package/dist/trinityal/webgpu/core/psoDescription.js.map +0 -1
- package/dist/trinityal/webgpu/core/renderTarget.js.map +0 -1
- package/dist/trinityal/webgpu/core/samplerSource.js.map +0 -1
- package/dist/trinityal/webgpu/core/textureSource.js.map +0 -1
- package/dist/trinityal/webgpu/core/trinityBatchDispatcher.js.map +0 -1
- package/dist/trinityal/webgpu/core/trinityBatchResolver.js.map +0 -1
- package/dist/trinityal/webgpu/core/trinityPassEncoder.js.map +0 -1
- package/dist/trinityal/webgpu/core/workQueue.js.map +0 -1
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { imageMimeType, capitalizeFormatId, rawVariant, identifyImageBytes, foreignImageRecord } from '../../../format/imageSignatures.js';
|
|
2
|
+
export { isTGA } from '../../../format/imageSignatures.js';
|
|
3
|
+
import { asUint8Array, readU16LE } from '#utils/bytes';
|
|
2
4
|
|
|
3
5
|
const OUTPUT_IMAGE = "image";
|
|
4
6
|
const OUTPUT_RGBA = "rgba";
|
|
@@ -16,13 +18,6 @@ const DEBUG_OUTPUTS = Object.freeze({
|
|
|
16
18
|
tga: "tgaJson",
|
|
17
19
|
dds: "ddsJson"
|
|
18
20
|
});
|
|
19
|
-
const IMAGE_MIME_TYPES = Object.freeze({
|
|
20
|
-
png: "image/png",
|
|
21
|
-
jpeg: "image/jpeg",
|
|
22
|
-
jpg: "image/jpeg",
|
|
23
|
-
tga: "image/x-tga",
|
|
24
|
-
dds: "image/vnd-ms.dds"
|
|
25
|
-
});
|
|
26
21
|
|
|
27
22
|
/**
|
|
28
23
|
* Normalizes reader options against their supported defaults for the TGA format
|
|
@@ -62,7 +57,7 @@ function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = "") {
|
|
|
62
57
|
const detected = inspectBytes(bytes);
|
|
63
58
|
const sourceFormat = expectedType || values.inputType || detected.sourceFormat;
|
|
64
59
|
if (expectedType && detected.sourceFormat && detected.sourceFormat !== expectedType) {
|
|
65
|
-
throw new TypeError(`CjsFormat${
|
|
60
|
+
throw new TypeError(`CjsFormat${capitalizeFormatId(expectedType)}: expected ${expectedType}, got ${detected.sourceFormat}`);
|
|
66
61
|
}
|
|
67
62
|
return {
|
|
68
63
|
payloadType: sourceFormat === "dds" ? "texture" : "image",
|
|
@@ -153,131 +148,13 @@ function readWithValues(input, values = DEFAULT_VALUES, expectedType = "") {
|
|
|
153
148
|
throw error;
|
|
154
149
|
}
|
|
155
150
|
|
|
156
|
-
/** Converts a parsed payload into a JSON-safe value for the TGA format reader. */
|
|
157
|
-
function toJsonValue(value) {
|
|
158
|
-
if (value instanceof Uint8Array) {
|
|
159
|
-
return {
|
|
160
|
-
byteLength: value.byteLength
|
|
161
|
-
};
|
|
162
|
-
}
|
|
163
|
-
if (Array.isArray(value)) return value.map(toJsonValue);
|
|
164
|
-
if (value && typeof value === "object") {
|
|
165
|
-
const output = {};
|
|
166
|
-
for (const [key, entry] of Object.entries(value)) output[key] = toJsonValue(entry);
|
|
167
|
-
return output;
|
|
168
|
-
}
|
|
169
|
-
return value;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
151
|
/**
|
|
173
152
|
* Inspects the supplied bytes without decoding their payload for the TGA format
|
|
174
153
|
* reader.
|
|
175
154
|
*/
|
|
176
155
|
function inspectBytes(bytes) {
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
if (isDDS(bytes)) return inspectDDS(bytes);
|
|
180
|
-
if (isTGA(bytes)) return inspectTGA(bytes);
|
|
181
|
-
return {
|
|
182
|
-
sourceFormat: "",
|
|
183
|
-
width: 0,
|
|
184
|
-
height: 0
|
|
185
|
-
};
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
/**
|
|
189
|
-
* Reports whether the supplied bytes begin with a PNG signature for the TGA
|
|
190
|
-
* format reader.
|
|
191
|
-
*/
|
|
192
|
-
function isPNG(bytes) {
|
|
193
|
-
return bytes.byteLength >= 24 && bytes[0] === 0x89 && bytes[1] === 0x50 && bytes[2] === 0x4e && bytes[3] === 0x47 && bytes[4] === 0x0d && bytes[5] === 0x0a && bytes[6] === 0x1a && bytes[7] === 0x0a;
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
/**
|
|
197
|
-
* Reports whether the supplied bytes begin with a JPEG signature for the TGA
|
|
198
|
-
* format reader.
|
|
199
|
-
*/
|
|
200
|
-
function isJPEG(bytes) {
|
|
201
|
-
return bytes.byteLength >= 4 && bytes[0] === 0xff && bytes[1] === 0xd8;
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
/**
|
|
205
|
-
* Reports whether the supplied bytes begin with a DDS signature for the TGA
|
|
206
|
-
* format reader.
|
|
207
|
-
*/
|
|
208
|
-
function isDDS(bytes) {
|
|
209
|
-
return bytes.byteLength >= 128 && bytes[0] === 0x44 && bytes[1] === 0x44 && bytes[2] === 0x53 && bytes[3] === 0x20;
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
/**
|
|
213
|
-
* Reports whether the supplied bytes have a supported TGA header for the TGA
|
|
214
|
-
* format reader.
|
|
215
|
-
*/
|
|
216
|
-
function isTGA(bytes) {
|
|
217
|
-
if (bytes.byteLength < 18) return false;
|
|
218
|
-
const imageType = bytes[2],
|
|
219
|
-
width = readU16LE(bytes, 12),
|
|
220
|
-
height = readU16LE(bytes, 14),
|
|
221
|
-
bpp = bytes[16];
|
|
222
|
-
return width > 0 && height > 0 && [1, 2, 3, 9, 10, 11].includes(imageType) && [8, 15, 16, 24, 32].includes(bpp);
|
|
223
|
-
}
|
|
224
|
-
function inspectPNG(bytes) {
|
|
225
|
-
const colorType = bytes[25],
|
|
226
|
-
bitDepth = bytes[24];
|
|
227
|
-
return {
|
|
228
|
-
sourceFormat: "png",
|
|
229
|
-
width: readU32BE(bytes, 16),
|
|
230
|
-
height: readU32BE(bytes, 20),
|
|
231
|
-
bitDepth,
|
|
232
|
-
colorType,
|
|
233
|
-
channels: pngChannels(colorType),
|
|
234
|
-
pixelFormat: `png-${bitDepth}-${colorType}`,
|
|
235
|
-
isCompressed: false
|
|
236
|
-
};
|
|
237
|
-
}
|
|
238
|
-
function inspectJPEG(bytes) {
|
|
239
|
-
let offset = 2;
|
|
240
|
-
while (offset + 9 < bytes.byteLength) {
|
|
241
|
-
if (bytes[offset] !== 0xff) {
|
|
242
|
-
offset++;
|
|
243
|
-
continue;
|
|
244
|
-
}
|
|
245
|
-
const marker = bytes[offset + 1],
|
|
246
|
-
length = readU16BE(bytes, offset + 2);
|
|
247
|
-
if ([0xc0, 0xc1, 0xc2, 0xc3].includes(marker)) {
|
|
248
|
-
return {
|
|
249
|
-
sourceFormat: "jpeg",
|
|
250
|
-
width: readU16BE(bytes, offset + 7),
|
|
251
|
-
height: readU16BE(bytes, offset + 5),
|
|
252
|
-
channels: bytes[offset + 9],
|
|
253
|
-
marker,
|
|
254
|
-
pixelFormat: "jpeg-ycbcr",
|
|
255
|
-
isCompressed: true
|
|
256
|
-
};
|
|
257
|
-
}
|
|
258
|
-
offset += Math.max(length + 2, 2);
|
|
259
|
-
}
|
|
260
|
-
return {
|
|
261
|
-
sourceFormat: "jpeg",
|
|
262
|
-
width: 0,
|
|
263
|
-
height: 0,
|
|
264
|
-
channels: 0,
|
|
265
|
-
pixelFormat: "jpeg",
|
|
266
|
-
isCompressed: true
|
|
267
|
-
};
|
|
268
|
-
}
|
|
269
|
-
function inspectDDS(bytes) {
|
|
270
|
-
const fourCc = String.fromCharCode(bytes[84], bytes[85], bytes[86], bytes[87]).replace(/\0+$/u, "");
|
|
271
|
-
return {
|
|
272
|
-
sourceFormat: "dds",
|
|
273
|
-
width: readU32LE(bytes, 16),
|
|
274
|
-
height: readU32LE(bytes, 12),
|
|
275
|
-
mipCount: Math.max(readU32LE(bytes, 28), 1),
|
|
276
|
-
fourCc,
|
|
277
|
-
textureFormat: fourCc || "dds-legacy",
|
|
278
|
-
isCompressed: !!fourCc,
|
|
279
|
-
hasMipMaps: readU32LE(bytes, 28) > 1
|
|
280
|
-
};
|
|
156
|
+
const sourceFormat = identifyImageBytes(bytes);
|
|
157
|
+
return sourceFormat === "tga" ? inspectTGA(bytes) : foreignImageRecord(sourceFormat);
|
|
281
158
|
}
|
|
282
159
|
function inspectTGA(bytes) {
|
|
283
160
|
const descriptor = bytes[17];
|
|
@@ -363,18 +240,6 @@ function decodeTgaToRgba(bytes, metadata) {
|
|
|
363
240
|
data: rgba
|
|
364
241
|
};
|
|
365
242
|
}
|
|
366
|
-
function rawVariant(metadata, canDecode) {
|
|
367
|
-
return {
|
|
368
|
-
kind: "raw",
|
|
369
|
-
payloadType: "raw",
|
|
370
|
-
codec: metadata.sourceFormat,
|
|
371
|
-
mimeType: imageMimeType(metadata.sourceFormat),
|
|
372
|
-
supported: true
|
|
373
|
-
};
|
|
374
|
-
}
|
|
375
|
-
function imageMimeType(sourceFormat) {
|
|
376
|
-
return IMAGE_MIME_TYPES[sourceFormat] || "application/octet-stream";
|
|
377
|
-
}
|
|
378
243
|
function readTgaPixel(bytes, offset, bytesPerPixel, metadata, rgba, pixelIndex) {
|
|
379
244
|
const pixel = readTgaPixelBytes(bytes, offset, bytesPerPixel, metadata);
|
|
380
245
|
writeTgaPixel(rgba, pixelIndex, pixel, metadata);
|
|
@@ -445,17 +310,6 @@ function throwUnsupported(metadata, message) {
|
|
|
445
310
|
error.sourceFormat = metadata.sourceFormat;
|
|
446
311
|
throw error;
|
|
447
312
|
}
|
|
448
|
-
function pngChannels(colorType) {
|
|
449
|
-
if (colorType === 0) return 1;
|
|
450
|
-
if (colorType === 2) return 3;
|
|
451
|
-
if (colorType === 3) return 1;
|
|
452
|
-
if (colorType === 4) return 2;
|
|
453
|
-
if (colorType === 6) return 4;
|
|
454
|
-
return 0;
|
|
455
|
-
}
|
|
456
|
-
function capitalize(value) {
|
|
457
|
-
return value ? value[0].toUpperCase() + value.slice(1) : "Image";
|
|
458
|
-
}
|
|
459
313
|
|
|
460
|
-
export { DEFAULT_VALUES, OUTPUT_IMAGE, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_RGBA, inspectBytes, inspectWithValues,
|
|
314
|
+
export { DEFAULT_VALUES, OUTPUT_IMAGE, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_RGBA, inspectBytes, inspectWithValues, normalizeEmit, normalizeInputType, normalizeValues, probeSupportWithValues, readWithValues };
|
|
461
315
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sources":["../../../../../../src/resource/formats/tga/core/helpers.js"],"sourcesContent":["import { asUint8Array, readU16BE, readU16LE, readU32BE, readU32LE } from \"#utils/bytes\";\n\nexport const OUTPUT_IMAGE = \"image\";\nexport const OUTPUT_TEXTURE = \"texture\";\nexport const OUTPUT_RGBA = \"rgba\";\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_JSON = \"json\";\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_RAW,\n inputType: \"\",\n source: \"\"\n});\n\nconst DEBUG_OUTPUTS = Object.freeze({\n png: \"pngJson\",\n jpeg: \"jpegJson\",\n jpg: \"jpegJson\",\n tga: \"tgaJson\",\n dds: \"ddsJson\"\n});\n\nconst IMAGE_MIME_TYPES = Object.freeze({\n png: \"image/png\",\n jpeg: \"image/jpeg\",\n jpg: \"image/jpeg\",\n tga: \"image/x-tga\",\n dds: \"image/vnd-ms.dds\"\n});\n\n/**\n * Normalizes reader options against their supported defaults for the TGA format\n * reader.\n */\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsImageFormat\")\n{\n const values = { ...DEFAULT_VALUES, ...(base || {}), ...(options || {}) };\n values.inputType = normalizeInputType(values.inputType);\n values.emit = normalizeEmit(values.emit, values.inputType, readerName);\n return values;\n}\n\n/** Normalizes the requested input representation for the TGA format reader. */\nexport function normalizeInputType(inputType)\n{\n if (!inputType) return \"\";\n const value = String(inputType).replace(/^\\./u, \"\").toLowerCase();\n return value === \"jpg\" ? \"jpeg\" : value;\n}\n\n/** Normalizes the requested output representation for the TGA format reader. */\nexport function normalizeEmit(emit, inputType, readerName)\n{\n if (emit === undefined || emit === null) return OUTPUT_RAW;\n if (emit === OUTPUT_JSON && inputType) return DEBUG_OUTPUTS[inputType] || OUTPUT_JSON;\n if ([ OUTPUT_IMAGE, OUTPUT_RGBA, OUTPUT_RAW, OUTPUT_JSON ].includes(emit)) return emit;\n if (Object.values(DEBUG_OUTPUTS).includes(emit)) return emit;\n throw new TypeError(`${readerName}: unknown emit value ${JSON.stringify(emit)}`);\n}\n\n/** Returns a byte view over the supplied binary input for the TGA format reader. */\r/** Inspects input using normalized format options for the TGA format reader. */\nexport function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = asUint8Array(input, \"Image input\");\n const detected = inspectBytes(bytes);\n const sourceFormat = expectedType || values.inputType || detected.sourceFormat;\n\n if (expectedType && detected.sourceFormat && detected.sourceFormat !== expectedType)\n {\n throw new TypeError(`CjsFormat${capitalize(expectedType)}: expected ${expectedType}, got ${detected.sourceFormat}`);\n }\n\n return {\n payloadType: sourceFormat === \"dds\" ? \"texture\" : \"image\",\n mediaTypes: sourceFormat === \"dds\" ? [ \"texture\", \"image\" ] : [ \"image\" ],\n sourceFormat,\n byteLength: bytes.byteLength,\n ...detected\n };\n}\n\n/**\n * Reports whether input is supported under normalized format options for the TGA\n * format reader.\n */\nexport function probeSupportWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n try\n {\n const metadata = inspectWithValues(input, values, expectedType);\n const canDecodeTga = metadata.sourceFormat === \"tga\" && canDecodeTgaToRgba(metadata);\n let variants;\n if (metadata.sourceFormat === \"tga\")\n {\n variants = [\n {\n kind: \"rgba\",\n payloadType: \"rgba\",\n codec: \"rgba8unorm\",\n supported: canDecodeTga,\n reason: canDecodeTga ? \"\" : \"Only supported true-color, grayscale, and indexed TGA images are decoded to RGBA.\",\n },\n rawVariant(metadata, canDecodeTga)\n ];\n }\n else\n {\n variants = [\n rawVariant(metadata, false),\n { kind: \"rgba\", payloadType: \"rgba\", codec: \"rgba8unorm\", supported: false, reason: `${metadata.sourceFormat.toUpperCase()} RGBA decode is not implemented yet.`}\n ];\n }\n\n return {\n format: metadata.sourceFormat,\n source: values.source || \"buffer\",\n supported: metadata.sourceFormat ? (variants.some(v => v.supported && v.kind === \"rgba\") ? \"full\" : \"partial\") : \"none\",\n confidence: metadata.sourceFormat ? 1 : 0,\n preferredOutput: variants.find(v => v.supported)?.kind || \"\",\n reason: metadata.sourceFormat ? \"Container/header recognized.\" : \"Unrecognized image format.\",\n metadata,\n variants,\n warnings: [],\n errors: []\n };\n }\n catch (error)\n {\n return {\n format: expectedType || values.inputType || \"\",\n source: values.source || \"buffer\",\n supported: \"none\",\n confidence: 0,\n preferredOutput: \"\",\n reason: error.message,\n metadata: null,\n variants: [],\n warnings: [],\n errors: [ error.message ]\n };\n }\n}\n\n/** Reads input using normalized format options for the TGA format reader. */\nexport function readWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = asUint8Array(input, \"Image input\");\n const metadata = inspectWithValues(bytes, values, expectedType);\n\n if (values.emit === OUTPUT_RAW)\n {\n return {\n payloadType: \"raw\",\n sourceFormat: metadata.sourceFormat,\n mimeType: imageMimeType(metadata.sourceFormat),\n metadata,\n bytes\n };\n }\n\n if (values.emit === OUTPUT_JSON || values.emit === DEBUG_OUTPUTS[metadata.sourceFormat])\n {\n return metadata;\n }\n\n if ((values.emit === OUTPUT_RGBA || values.emit === OUTPUT_IMAGE) && metadata.sourceFormat === \"tga\")\n {\n return decodeTgaToRgba(bytes, metadata);\n }\n\n const error = new Error(`${metadata.sourceFormat}: emit \"${values.emit}\" is not implemented yet`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_IMPLEMENTED\";\n error.sourceFormat = metadata.sourceFormat;\n error.emit = values.emit;\n throw error;\n}\n\n/** Converts a parsed payload into a JSON-safe value for the TGA format reader. */\nexport function toJsonValue(value)\n{\n if (value instanceof Uint8Array)\n {\n return { byteLength: value.byteLength };\n }\n if (Array.isArray(value)) return value.map(toJsonValue);\n if (value && typeof value === \"object\")\n {\n const output = {};\n for (const [ key, entry ] of Object.entries(value)) output[key] = toJsonValue(entry);\n return output;\n }\n return value;\n}\n\n/**\n * Inspects the supplied bytes without decoding their payload for the TGA format\n * reader.\n */\nexport function inspectBytes(bytes)\n{\n if (isPNG(bytes)) return inspectPNG(bytes);\n if (isJPEG(bytes)) return inspectJPEG(bytes);\n if (isDDS(bytes)) return inspectDDS(bytes);\n if (isTGA(bytes)) return inspectTGA(bytes);\n return { sourceFormat: \"\", width: 0, height: 0 };\n}\n\n/**\n * Reports whether the supplied bytes begin with a PNG signature for the TGA\n * format reader.\n */\nexport function isPNG(bytes)\n{\n return bytes.byteLength >= 24 &&\n bytes[0] === 0x89 && bytes[1] === 0x50 && bytes[2] === 0x4e && bytes[3] === 0x47 &&\n bytes[4] === 0x0d && bytes[5] === 0x0a && bytes[6] === 0x1a && bytes[7] === 0x0a;\n}\n\n/**\n * Reports whether the supplied bytes begin with a JPEG signature for the TGA\n * format reader.\n */\nexport function isJPEG(bytes)\n{\n return bytes.byteLength >= 4 && bytes[0] === 0xff && bytes[1] === 0xd8;\n}\n\n/**\n * Reports whether the supplied bytes begin with a DDS signature for the TGA\n * format reader.\n */\nexport function isDDS(bytes)\n{\n return bytes.byteLength >= 128 && bytes[0] === 0x44 && bytes[1] === 0x44 && bytes[2] === 0x53 && bytes[3] === 0x20;\n}\n\n/**\n * Reports whether the supplied bytes have a supported TGA header for the TGA\n * format reader.\n */\nexport function isTGA(bytes)\n{\n if (bytes.byteLength < 18) return false;\n const imageType = bytes[2], width = readU16LE(bytes, 12), height = readU16LE(bytes, 14), bpp = bytes[16];\n return width > 0 && height > 0 && [ 1, 2, 3, 9, 10, 11 ].includes(imageType) && [ 8, 15, 16, 24, 32 ].includes(bpp);\n}\n\nfunction inspectPNG(bytes)\n{\n const colorType = bytes[25], bitDepth = bytes[24];\n return {\n sourceFormat: \"png\",\n width: readU32BE(bytes, 16),\n height: readU32BE(bytes, 20),\n bitDepth,\n colorType,\n channels: pngChannels(colorType),\n pixelFormat: `png-${bitDepth}-${colorType}`,\n isCompressed: false\n };\n}\n\nfunction inspectJPEG(bytes)\n{\n let offset = 2;\n while (offset + 9 < bytes.byteLength)\n {\n if (bytes[offset] !== 0xff)\n {\n offset++;\n continue;\n }\n const marker = bytes[offset + 1], length = readU16BE(bytes, offset + 2);\n if ([ 0xc0, 0xc1, 0xc2, 0xc3 ].includes(marker))\n {\n return {\n sourceFormat: \"jpeg\",\n width: readU16BE(bytes, offset + 7),\n height: readU16BE(bytes, offset + 5),\n channels: bytes[offset + 9],\n marker,\n pixelFormat: \"jpeg-ycbcr\",\n isCompressed: true\n };\n }\n offset += Math.max(length + 2, 2);\n }\n return { sourceFormat: \"jpeg\", width: 0, height: 0, channels: 0, pixelFormat: \"jpeg\", isCompressed: true };\n}\n\nfunction inspectDDS(bytes)\n{\n const fourCc = String.fromCharCode(bytes[84], bytes[85], bytes[86], bytes[87]).replace(/\\0+$/u, \"\");\n return {\n sourceFormat: \"dds\",\n width: readU32LE(bytes, 16),\n height: readU32LE(bytes, 12),\n mipCount: Math.max(readU32LE(bytes, 28), 1),\n fourCc,\n textureFormat: fourCc || \"dds-legacy\",\n isCompressed: !!fourCc,\n hasMipMaps: readU32LE(bytes, 28) > 1\n };\n}\n\nfunction inspectTGA(bytes)\n{\n const descriptor = bytes[17];\n const colorMapEntryBytes = Math.ceil(bytes[7] / 8);\n const colorMapBytes = readU16LE(bytes, 5) * colorMapEntryBytes;\n const imageDataOffset = 18 + bytes[0] + colorMapBytes;\n return {\n sourceFormat: \"tga\",\n idLength: bytes[0],\n colorMapType: bytes[1],\n colorMapFirst: readU16LE(bytes, 3),\n colorMapLength: readU16LE(bytes, 5),\n colorMapEntryBits: bytes[7],\n colorMapBytes,\n imageDataOffset,\n imageDataBytes: Math.max(0, bytes.byteLength - imageDataOffset),\n width: readU16LE(bytes, 12),\n height: readU16LE(bytes, 14),\n channels: Math.max(bytes[16] / 8, 1),\n imageType: bytes[2],\n bitsPerPixel: bytes[16],\n descriptor,\n alphaBits: descriptor & 0x0f,\n hasAlpha: bytes[16] === 32 || bytes[16] === 16 || bytes[7] === 32 || bytes[7] === 16,\n origin: getTgaOrigin(descriptor),\n pixelFormat: `tga-${bytes[16]}`,\n isCompressed: [ 9, 10, 11 ].includes(bytes[2])\n };\n}\n\nfunction canDecodeTgaToRgba(metadata)\n{\n const indexed = [ 1, 9 ].includes(metadata.imageType);\n const direct = [ 2, 3, 10, 11 ].includes(metadata.imageType);\n return hasMinimumTgaDataForRgba(metadata) && (\n (direct && metadata.colorMapType === 0 && [ 8, 15, 16, 24, 32 ].includes(metadata.bitsPerPixel)) ||\n (indexed && metadata.colorMapType === 1 && metadata.colorMapLength > 0 &&\n [ 8, 15, 16, 24, 32 ].includes(metadata.colorMapEntryBits) && [ 8, 16 ].includes(metadata.bitsPerPixel))\n );\n}\n\nfunction hasMinimumTgaDataForRgba(metadata)\n{\n if (metadata.byteLength < metadata.imageDataOffset) return false;\n if ([ 9, 10, 11 ].includes(metadata.imageType)) return metadata.imageDataBytes > 0;\n return metadata.imageDataBytes >= metadata.width * metadata.height * Math.ceil(metadata.bitsPerPixel / 8);\n}\n\nfunction decodeTgaToRgba(bytes, metadata)\n{\n if (!canDecodeTgaToRgba(metadata))\n {\n throwUnsupported(metadata, \"Only true-color, grayscale, and indexed TGA images can be decoded to RGBA.\");\n }\n\n const bytesPerPixel = Math.ceil(metadata.bitsPerPixel / 8);\n const palette = metadata.colorMapType === 1 ? readTgaPalette(bytes, metadata) : null;\n const imageOffset = 18 + metadata.idLength + (palette ? metadata.colorMapLength * (metadata.colorMapEntryBits / 8) : 0);\n metadata.palette = palette;\n const pixelCount = metadata.width * metadata.height;\n const rgba = new Uint8Array(pixelCount * 4);\n\n let inputOffset = imageOffset;\n let pixelIndex = 0;\n\n if ([ 1, 2, 3 ].includes(metadata.imageType))\n {\n while (pixelIndex < pixelCount)\n {\n inputOffset = readTgaPixel(bytes, inputOffset, bytesPerPixel, metadata, rgba, pixelIndex++);\n }\n }\n else\n {\n while (pixelIndex < pixelCount)\n {\n const packet = bytes[inputOffset++];\n const count = (packet & 0x7f) + 1;\n if (packet & 0x80)\n {\n const pixel = readTgaPixelBytes(bytes, inputOffset, bytesPerPixel, metadata);\n inputOffset += bytesPerPixel;\n for (let i = 0; i < count && pixelIndex < pixelCount; i++) writeTgaPixel(rgba, pixelIndex++, pixel, metadata);\n }\n else\n {\n for (let i = 0; i < count && pixelIndex < pixelCount; i++)\n {\n inputOffset = readTgaPixel(bytes, inputOffset, bytesPerPixel, metadata, rgba, pixelIndex++);\n }\n }\n }\n }\n\n return {\n payloadType: OUTPUT_RGBA,\n sourceFormat: \"tga\",\n mimeType: \"image/x-tga\",\n width: metadata.width,\n height: metadata.height,\n pixelFormat: \"rgba8unorm\",\n strideBytes: metadata.width * 4,\n origin: \"top-left\",\n colorSpace: \"srgb\",\n alphaMode: metadata.hasAlpha ? \"straight\" : \"opaque\",\n metadata,\n data: rgba\n };\n}\n\nfunction rawVariant(metadata, canDecode)\n{\n return {\n kind: \"raw\",\n payloadType: \"raw\",\n codec: metadata.sourceFormat,\n mimeType: imageMimeType(metadata.sourceFormat),\n supported: true,\n };\n}\n\nfunction imageMimeType(sourceFormat)\n{\n return IMAGE_MIME_TYPES[sourceFormat] || \"application/octet-stream\";\n}\n\nfunction readTgaPixel(bytes, offset, bytesPerPixel, metadata, rgba, pixelIndex)\n{\n const pixel = readTgaPixelBytes(bytes, offset, bytesPerPixel, metadata);\n writeTgaPixel(rgba, pixelIndex, pixel, metadata);\n return offset + bytesPerPixel;\n}\n\nfunction readTgaPixelBytes(bytes, offset, bytesPerPixel, metadata)\n{\n if (offset + bytesPerPixel > bytes.byteLength) throwUnsupported(metadata, \"TGA pixel data is truncated.\");\n\n if ([ 1, 9 ].includes(metadata.imageType))\n {\n const index = bytesPerPixel === 2 ? readU16LE(bytes, offset) : bytes[offset];\n return metadata.palette[index - metadata.colorMapFirst] || [ 0, 0, 0, 0 ];\n }\n\n if (metadata.imageType === 3 || metadata.imageType === 11)\n {\n const value = bytes[offset];\n return [ value, value, value, bytesPerPixel > 1 ? bytes[offset + 1] : 255 ];\n }\n\n if (bytesPerPixel === 2)\n {\n const value = readU16LE(bytes, offset);\n const r = ((value >>> 10) & 0x1f) * 255 / 31;\n const g = ((value >>> 5) & 0x1f) * 255 / 31;\n const b = (value & 0x1f) * 255 / 31;\n const a = metadata.bitsPerPixel === 15 || (metadata.descriptor & 0x0f) === 0\n ? 255\n : value & 0x8000 ? 255 : 0;\n return [ r, g, b, a ];\n }\n\n return [\n bytes[offset + 2],\n bytes[offset + 1],\n bytes[offset],\n bytesPerPixel === 4 ? bytes[offset + 3] : 255\n ];\n}\n\nfunction readTgaPalette(bytes, metadata)\n{\n const entryBytes = Math.ceil(metadata.colorMapEntryBits / 8);\n const offset = 18 + metadata.idLength;\n const end = offset + metadata.colorMapLength * entryBytes;\n if (end > bytes.byteLength)\n {\n throwUnsupported(metadata, \"TGA color map is truncated.\");\n }\n\n const palette = [];\n for (let i = 0; i < metadata.colorMapLength; i++)\n {\n palette.push(readTgaColor(bytes, offset + i * entryBytes, entryBytes, metadata.colorMapEntryBits));\n }\n return palette;\n}\n\nfunction readTgaColor(bytes, offset, entryBytes, entryBits)\n{\n if (entryBytes === 2)\n {\n const value = readU16LE(bytes, offset);\n return [\n Math.round(((value >>> 10) & 0x1f) * 255 / 31),\n Math.round(((value >>> 5) & 0x1f) * 255 / 31),\n Math.round((value & 0x1f) * 255 / 31),\n entryBits === 16 && (value & 0x8000) ? 255 : entryBits === 16 ? 0 : 255\n ];\n }\n return [\n bytes[offset + 2],\n bytes[offset + 1],\n bytes[offset],\n entryBits === 32 ? bytes[offset + 3] : 255\n ];\n}\n\nfunction writeTgaPixel(rgba, pixelIndex, pixel, metadata)\n{\n const offset = getTgaOutputOffset(metadata, pixelIndex) * 4;\n rgba[offset] = pixel[0];\n rgba[offset + 1] = pixel[1];\n rgba[offset + 2] = pixel[2];\n rgba[offset + 3] = pixel[3];\n}\n\nfunction getTgaOutputOffset(metadata, pixelIndex)\n{\n const xInput = pixelIndex % metadata.width;\n const yInput = Math.floor(pixelIndex / metadata.width);\n const x = metadata.origin.endsWith(\"right\") ? metadata.width - 1 - xInput : xInput;\n const y = metadata.origin.startsWith(\"top\") ? yInput : metadata.height - 1 - yInput;\n return y * metadata.width + x;\n}\n\nfunction getTgaOrigin(descriptor)\n{\n const top = !!(descriptor & 0x20);\n const right = !!(descriptor & 0x10);\n return `${top ? \"top\" : \"bottom\"}-${right ? \"right\" : \"left\"}`;\n}\n\nfunction throwUnsupported(metadata, message)\n{\n const error = new Error(`tga: ${message}`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = metadata.sourceFormat;\n throw error;\n}\n\nfunction pngChannels(colorType)\n{\n if (colorType === 0) return 1;\n if (colorType === 2) return 3;\n if (colorType === 3) return 1;\n if (colorType === 4) return 2;\n if (colorType === 6) return 4;\n return 0;\n}\n\nfunction capitalize(value)\n{\n return value ? value[0].toUpperCase() + value.slice(1) : \"Image\";\n}\n\n"],"names":["OUTPUT_IMAGE","OUTPUT_RGBA","OUTPUT_RAW","OUTPUT_JSON","DEFAULT_VALUES","Object","freeze","emit","inputType","source","DEBUG_OUTPUTS","png","jpeg","jpg","tga","dds","IMAGE_MIME_TYPES","normalizeValues","base","options","readerName","values","normalizeInputType","normalizeEmit","value","String","replace","toLowerCase","undefined","includes","TypeError","JSON","stringify","inspectWithValues","input","expectedType","bytes","asUint8Array","detected","inspectBytes","sourceFormat","capitalize","payloadType","mediaTypes","byteLength","probeSupportWithValues","metadata","canDecodeTga","canDecodeTgaToRgba","variants","kind","codec","supported","reason","rawVariant","toUpperCase","format","some","v","confidence","preferredOutput","find","warnings","errors","error","message","readWithValues","mimeType","imageMimeType","decodeTgaToRgba","Error","code","toJsonValue","Uint8Array","Array","isArray","map","output","key","entry","entries","isPNG","inspectPNG","isJPEG","inspectJPEG","isDDS","inspectDDS","isTGA","inspectTGA","width","height","imageType","readU16LE","bpp","colorType","bitDepth","readU32BE","channels","pngChannels","pixelFormat","isCompressed","offset","marker","length","readU16BE","Math","max","fourCc","fromCharCode","readU32LE","mipCount","textureFormat","hasMipMaps","descriptor","colorMapEntryBytes","ceil","colorMapBytes","imageDataOffset","idLength","colorMapType","colorMapFirst","colorMapLength","colorMapEntryBits","imageDataBytes","bitsPerPixel","alphaBits","hasAlpha","origin","getTgaOrigin","indexed","direct","hasMinimumTgaDataForRgba","throwUnsupported","bytesPerPixel","palette","readTgaPalette","imageOffset","pixelCount","rgba","inputOffset","pixelIndex","readTgaPixel","packet","count","pixel","readTgaPixelBytes","i","writeTgaPixel","strideBytes","colorSpace","alphaMode","data","canDecode","index","r","g","b","a","entryBytes","end","push","readTgaColor","entryBits","round","getTgaOutputOffset","xInput","yInput","floor","x","endsWith","y","startsWith","top","right","slice"],"mappings":";;AAEO,MAAMA,YAAY,GAAG;AAErB,MAAMC,WAAW,GAAG;AACpB,MAAMC,UAAU,GAAG;AACnB,MAAMC,WAAW,GAAG;MAEdC,cAAc,GAAGC,MAAM,CAACC,MAAM,CAAC;AACxCC,EAAAA,IAAI,EAAEL,UAAU;AAChBM,EAAAA,SAAS,EAAE,EAAE;AACbC,EAAAA,MAAM,EAAE;AACZ,CAAC;AAED,MAAMC,aAAa,GAAGL,MAAM,CAACC,MAAM,CAAC;AAChCK,EAAAA,GAAG,EAAE,SAAS;AACdC,EAAAA,IAAI,EAAE,UAAU;AAChBC,EAAAA,GAAG,EAAE,UAAU;AACfC,EAAAA,GAAG,EAAE,SAAS;AACdC,EAAAA,GAAG,EAAE;AACT,CAAC,CAAC;AAEF,MAAMC,gBAAgB,GAAGX,MAAM,CAACC,MAAM,CAAC;AACnCK,EAAAA,GAAG,EAAE,WAAW;AAChBC,EAAAA,IAAI,EAAE,YAAY;AAClBC,EAAAA,GAAG,EAAE,YAAY;AACjBC,EAAAA,GAAG,EAAE,aAAa;AAClBC,EAAAA,GAAG,EAAE;AACT,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACO,SAASE,eAAeA,CAACC,IAAI,GAAGd,cAAc,EAAEe,OAAO,GAAG,EAAE,EAAEC,UAAU,GAAG,gBAAgB,EAClG;AACI,EAAA,MAAMC,MAAM,GAAG;AAAE,IAAA,GAAGjB,cAAc;AAAE,IAAA,IAAIc,IAAI,IAAI,EAAE,CAAC;IAAE,IAAIC,OAAO,IAAI,EAAE;GAAG;EACzEE,MAAM,CAACb,SAAS,GAAGc,kBAAkB,CAACD,MAAM,CAACb,SAAS,CAAC;AACvDa,EAAAA,MAAM,CAACd,IAAI,GAAGgB,aAAa,CAACF,MAAM,CAACd,IAAI,EAAEc,MAAM,CAACb,SAAS,EAAEY,UAAU,CAAC;AACtE,EAAA,OAAOC,MAAM;AACjB;;AAEA;AACO,SAASC,kBAAkBA,CAACd,SAAS,EAC5C;AACI,EAAA,IAAI,CAACA,SAAS,EAAE,OAAO,EAAE;AACzB,EAAA,MAAMgB,KAAK,GAAGC,MAAM,CAACjB,SAAS,CAAC,CAACkB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAACC,WAAW,EAAE;AACjE,EAAA,OAAOH,KAAK,KAAK,KAAK,GAAG,MAAM,GAAGA,KAAK;AAC3C;;AAEA;AACO,SAASD,aAAaA,CAAChB,IAAI,EAAEC,SAAS,EAAEY,UAAU,EACzD;EACI,IAAIb,IAAI,KAAKqB,SAAS,IAAIrB,IAAI,KAAK,IAAI,EAAE,OAAOL,UAAU;AAC1D,EAAA,IAAIK,IAAI,KAAKJ,WAAW,IAAIK,SAAS,EAAE,OAAOE,aAAa,CAACF,SAAS,CAAC,IAAIL,WAAW;AACrF,EAAA,IAAI,CAAEH,YAAY,EAAEC,WAAW,EAAEC,UAAU,EAAEC,WAAW,CAAE,CAAC0B,QAAQ,CAACtB,IAAI,CAAC,EAAE,OAAOA,IAAI;AACtF,EAAA,IAAIF,MAAM,CAACgB,MAAM,CAACX,aAAa,CAAC,CAACmB,QAAQ,CAACtB,IAAI,CAAC,EAAE,OAAOA,IAAI;AAC5D,EAAA,MAAM,IAAIuB,SAAS,CAAC,CAAA,EAAGV,UAAU,CAAA,qBAAA,EAAwBW,IAAI,CAACC,SAAS,CAACzB,IAAI,CAAC,EAAE,CAAC;AACpF;;AAEA;AACA;AACO,SAAS0B,iBAAiBA,CAACC,KAAK,EAAEb,MAAM,GAAGjB,cAAc,EAAE+B,YAAY,GAAG,EAAE,EACnF;AACI,EAAA,MAAMC,KAAK,GAAGC,YAAY,CAACH,KAAK,EAAE,aAAa,CAAC;AAChD,EAAA,MAAMI,QAAQ,GAAGC,YAAY,CAACH,KAAK,CAAC;EACpC,MAAMI,YAAY,GAAGL,YAAY,IAAId,MAAM,CAACb,SAAS,IAAI8B,QAAQ,CAACE,YAAY;EAE9E,IAAIL,YAAY,IAAIG,QAAQ,CAACE,YAAY,IAAIF,QAAQ,CAACE,YAAY,KAAKL,YAAY,EACnF;AACI,IAAA,MAAM,IAAIL,SAAS,CAAC,CAAA,SAAA,EAAYW,UAAU,CAACN,YAAY,CAAC,CAAA,WAAA,EAAcA,YAAY,CAAA,MAAA,EAASG,QAAQ,CAACE,YAAY,EAAE,CAAC;AACvH,EAAA;EAEA,OAAO;AACHE,IAAAA,WAAW,EAAEF,YAAY,KAAK,KAAK,GAAG,SAAS,GAAG,OAAO;AACzDG,IAAAA,UAAU,EAAEH,YAAY,KAAK,KAAK,GAAG,CAAE,SAAS,EAAE,OAAO,CAAE,GAAG,CAAE,OAAO,CAAE;IACzEA,YAAY;IACZI,UAAU,EAAER,KAAK,CAACQ,UAAU;IAC5B,GAAGN;GACN;AACL;;AAEA;AACA;AACA;AACA;AACO,SAASO,sBAAsBA,CAACX,KAAK,EAAEb,MAAM,GAAGjB,cAAc,EAAE+B,YAAY,GAAG,EAAE,EACxF;EACI,IACA;IACI,MAAMW,QAAQ,GAAGb,iBAAiB,CAACC,KAAK,EAAEb,MAAM,EAAEc,YAAY,CAAC;IAC/D,MAAMY,YAAY,GAAGD,QAAQ,CAACN,YAAY,KAAK,KAAK,IAAIQ,kBAAkB,CAACF,QAAQ,CAAC;AACpF,IAAA,IAAIG,QAAQ;AACZ,IAAA,IAAIH,QAAQ,CAACN,YAAY,KAAK,KAAK,EACnC;AACIS,MAAAA,QAAQ,GAAG,CACP;AACIC,QAAAA,IAAI,EAAE,MAAM;AACZR,QAAAA,WAAW,EAAE,MAAM;AACnBS,QAAAA,KAAK,EAAE,YAAY;AACnBC,QAAAA,SAAS,EAAEL,YAAY;AACvBM,QAAAA,MAAM,EAAEN,YAAY,GAAG,EAAE,GAAG;AAChC,OAAC,EACDO,UAAU,CAACR,QAAQ,EAAEC,YAAY,CAAC,CACrC;AACL,IAAA,CAAC,MAED;MACIE,QAAQ,GAAG,CACPK,UAAU,CAACR,QAAQ,EAAE,KAAK,CAAC,EAC3B;AAAEI,QAAAA,IAAI,EAAE,MAAM;AAAER,QAAAA,WAAW,EAAE,MAAM;AAAES,QAAAA,KAAK,EAAE,YAAY;AAAEC,QAAAA,SAAS,EAAE,KAAK;QAAEC,MAAM,EAAE,GAAGP,QAAQ,CAACN,YAAY,CAACe,WAAW,EAAE,CAAA,oCAAA;AAAsC,OAAC,CACpK;AACL,IAAA;IAEA,OAAO;MACHC,MAAM,EAAEV,QAAQ,CAACN,YAAY;AAC7B/B,MAAAA,MAAM,EAAEY,MAAM,CAACZ,MAAM,IAAI,QAAQ;MACjC2C,SAAS,EAAEN,QAAQ,CAACN,YAAY,GAAIS,QAAQ,CAACQ,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACN,SAAS,IAAIM,CAAC,CAACR,IAAI,KAAK,MAAM,CAAC,GAAG,MAAM,GAAG,SAAS,GAAI,MAAM;AACvHS,MAAAA,UAAU,EAAEb,QAAQ,CAACN,YAAY,GAAG,CAAC,GAAG,CAAC;AACzCoB,MAAAA,eAAe,EAAEX,QAAQ,CAACY,IAAI,CAACH,CAAC,IAAIA,CAAC,CAACN,SAAS,CAAC,EAAEF,IAAI,IAAI,EAAE;AAC5DG,MAAAA,MAAM,EAAEP,QAAQ,CAACN,YAAY,GAAG,8BAA8B,GAAG,4BAA4B;MAC7FM,QAAQ;MACRG,QAAQ;AACRa,MAAAA,QAAQ,EAAE,EAAE;AACZC,MAAAA,MAAM,EAAE;KACX;EACL,CAAC,CACD,OAAOC,KAAK,EACZ;IACI,OAAO;AACHR,MAAAA,MAAM,EAAErB,YAAY,IAAId,MAAM,CAACb,SAAS,IAAI,EAAE;AAC9CC,MAAAA,MAAM,EAAEY,MAAM,CAACZ,MAAM,IAAI,QAAQ;AACjC2C,MAAAA,SAAS,EAAE,MAAM;AACjBO,MAAAA,UAAU,EAAE,CAAC;AACbC,MAAAA,eAAe,EAAE,EAAE;MACnBP,MAAM,EAAEW,KAAK,CAACC,OAAO;AACrBnB,MAAAA,QAAQ,EAAE,IAAI;AACdG,MAAAA,QAAQ,EAAE,EAAE;AACZa,MAAAA,QAAQ,EAAE,EAAE;AACZC,MAAAA,MAAM,EAAE,CAAEC,KAAK,CAACC,OAAO;KAC1B;AACL,EAAA;AACJ;;AAEA;AACO,SAASC,cAAcA,CAAChC,KAAK,EAAEb,MAAM,GAAGjB,cAAc,EAAE+B,YAAY,GAAG,EAAE,EAChF;AACI,EAAA,MAAMC,KAAK,GAAGC,YAAY,CAACH,KAAK,EAAE,aAAa,CAAC;EAChD,MAAMY,QAAQ,GAAGb,iBAAiB,CAACG,KAAK,EAAEf,MAAM,EAAEc,YAAY,CAAC;AAE/D,EAAA,IAAId,MAAM,CAACd,IAAI,KAAKL,UAAU,EAC9B;IACI,OAAO;AACHwC,MAAAA,WAAW,EAAE,KAAK;MAClBF,YAAY,EAAEM,QAAQ,CAACN,YAAY;AACnC2B,MAAAA,QAAQ,EAAEC,aAAa,CAACtB,QAAQ,CAACN,YAAY,CAAC;MAC9CM,QAAQ;AACRV,MAAAA;KACH;AACL,EAAA;AAEA,EAAA,IAAIf,MAAM,CAACd,IAAI,KAAKJ,WAAW,IAAIkB,MAAM,CAACd,IAAI,KAAKG,aAAa,CAACoC,QAAQ,CAACN,YAAY,CAAC,EACvF;AACI,IAAA,OAAOM,QAAQ;AACnB,EAAA;AAEA,EAAA,IAAI,CAACzB,MAAM,CAACd,IAAI,KAAKN,WAAW,IAAIoB,MAAM,CAACd,IAAI,KAAKP,YAAY,KAAK8C,QAAQ,CAACN,YAAY,KAAK,KAAK,EACpG;AACI,IAAA,OAAO6B,eAAe,CAACjC,KAAK,EAAEU,QAAQ,CAAC;AAC3C,EAAA;AAEA,EAAA,MAAMkB,KAAK,GAAG,IAAIM,KAAK,CAAC,CAAA,EAAGxB,QAAQ,CAACN,YAAY,CAAA,QAAA,EAAWnB,MAAM,CAACd,IAAI,0BAA0B,CAAC;EACjGyD,KAAK,CAACO,IAAI,GAAG,mCAAmC;AAChDP,EAAAA,KAAK,CAACxB,YAAY,GAAGM,QAAQ,CAACN,YAAY;AAC1CwB,EAAAA,KAAK,CAACzD,IAAI,GAAGc,MAAM,CAACd,IAAI;AACxB,EAAA,MAAMyD,KAAK;AACf;;AAEA;AACO,SAASQ,WAAWA,CAAChD,KAAK,EACjC;EACI,IAAIA,KAAK,YAAYiD,UAAU,EAC/B;IACI,OAAO;MAAE7B,UAAU,EAAEpB,KAAK,CAACoB;KAAY;AAC3C,EAAA;AACA,EAAA,IAAI8B,KAAK,CAACC,OAAO,CAACnD,KAAK,CAAC,EAAE,OAAOA,KAAK,CAACoD,GAAG,CAACJ,WAAW,CAAC;AACvD,EAAA,IAAIhD,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EACtC;IACI,MAAMqD,MAAM,GAAG,EAAE;IACjB,KAAK,MAAM,CAAEC,GAAG,EAAEC,KAAK,CAAE,IAAI1E,MAAM,CAAC2E,OAAO,CAACxD,KAAK,CAAC,EAAEqD,MAAM,CAACC,GAAG,CAAC,GAAGN,WAAW,CAACO,KAAK,CAAC;AACpF,IAAA,OAAOF,MAAM;AACjB,EAAA;AACA,EAAA,OAAOrD,KAAK;AAChB;;AAEA;AACA;AACA;AACA;AACO,SAASe,YAAYA,CAACH,KAAK,EAClC;EACI,IAAI6C,KAAK,CAAC7C,KAAK,CAAC,EAAE,OAAO8C,UAAU,CAAC9C,KAAK,CAAC;EAC1C,IAAI+C,MAAM,CAAC/C,KAAK,CAAC,EAAE,OAAOgD,WAAW,CAAChD,KAAK,CAAC;EAC5C,IAAIiD,KAAK,CAACjD,KAAK,CAAC,EAAE,OAAOkD,UAAU,CAAClD,KAAK,CAAC;EAC1C,IAAImD,KAAK,CAACnD,KAAK,CAAC,EAAE,OAAOoD,UAAU,CAACpD,KAAK,CAAC;EAC1C,OAAO;AAAEI,IAAAA,YAAY,EAAE,EAAE;AAAEiD,IAAAA,KAAK,EAAE,CAAC;AAAEC,IAAAA,MAAM,EAAE;GAAG;AACpD;;AAEA;AACA;AACA;AACA;AACO,SAAST,KAAKA,CAAC7C,KAAK,EAC3B;AACI,EAAA,OAAOA,KAAK,CAACQ,UAAU,IAAI,EAAE,IACzBR,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAChFA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI;AACxF;;AAEA;AACA;AACA;AACA;AACO,SAAS+C,MAAMA,CAAC/C,KAAK,EAC5B;AACI,EAAA,OAAOA,KAAK,CAACQ,UAAU,IAAI,CAAC,IAAIR,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI;AAC1E;;AAEA;AACA;AACA;AACA;AACO,SAASiD,KAAKA,CAACjD,KAAK,EAC3B;AACI,EAAA,OAAOA,KAAK,CAACQ,UAAU,IAAI,GAAG,IAAIR,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI;AACtH;;AAEA;AACA;AACA;AACA;AACO,SAASmD,KAAKA,CAACnD,KAAK,EAC3B;AACI,EAAA,IAAIA,KAAK,CAACQ,UAAU,GAAG,EAAE,EAAE,OAAO,KAAK;AACvC,EAAA,MAAM+C,SAAS,GAAGvD,KAAK,CAAC,CAAC,CAAC;AAAEqD,IAAAA,KAAK,GAAGG,SAAS,CAACxD,KAAK,EAAE,EAAE,CAAC;AAAEsD,IAAAA,MAAM,GAAGE,SAAS,CAACxD,KAAK,EAAE,EAAE,CAAC;AAAEyD,IAAAA,GAAG,GAAGzD,KAAK,CAAC,EAAE,CAAC;AACxG,EAAA,OAAOqD,KAAK,GAAG,CAAC,IAAIC,MAAM,GAAG,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAE,CAAC7D,QAAQ,CAAC8D,SAAS,CAAC,IAAI,CAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,CAAC9D,QAAQ,CAACgE,GAAG,CAAC;AACvH;AAEA,SAASX,UAAUA,CAAC9C,KAAK,EACzB;AACI,EAAA,MAAM0D,SAAS,GAAG1D,KAAK,CAAC,EAAE,CAAC;AAAE2D,IAAAA,QAAQ,GAAG3D,KAAK,CAAC,EAAE,CAAC;EACjD,OAAO;AACHI,IAAAA,YAAY,EAAE,KAAK;AACnBiD,IAAAA,KAAK,EAAEO,SAAS,CAAC5D,KAAK,EAAE,EAAE,CAAC;AAC3BsD,IAAAA,MAAM,EAAEM,SAAS,CAAC5D,KAAK,EAAE,EAAE,CAAC;IAC5B2D,QAAQ;IACRD,SAAS;AACTG,IAAAA,QAAQ,EAAEC,WAAW,CAACJ,SAAS,CAAC;AAChCK,IAAAA,WAAW,EAAE,CAAA,IAAA,EAAOJ,QAAQ,CAAA,CAAA,EAAID,SAAS,CAAA,CAAE;AAC3CM,IAAAA,YAAY,EAAE;GACjB;AACL;AAEA,SAAShB,WAAWA,CAAChD,KAAK,EAC1B;EACI,IAAIiE,MAAM,GAAG,CAAC;AACd,EAAA,OAAOA,MAAM,GAAG,CAAC,GAAGjE,KAAK,CAACQ,UAAU,EACpC;AACI,IAAA,IAAIR,KAAK,CAACiE,MAAM,CAAC,KAAK,IAAI,EAC1B;AACIA,MAAAA,MAAM,EAAE;AACR,MAAA;AACJ,IAAA;AACA,IAAA,MAAMC,MAAM,GAAGlE,KAAK,CAACiE,MAAM,GAAG,CAAC,CAAC;MAAEE,MAAM,GAAGC,SAAS,CAACpE,KAAK,EAAEiE,MAAM,GAAG,CAAC,CAAC;AACvE,IAAA,IAAI,CAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE,CAACxE,QAAQ,CAACyE,MAAM,CAAC,EAC/C;MACI,OAAO;AACH9D,QAAAA,YAAY,EAAE,MAAM;QACpBiD,KAAK,EAAEe,SAAS,CAACpE,KAAK,EAAEiE,MAAM,GAAG,CAAC,CAAC;QACnCX,MAAM,EAAEc,SAAS,CAACpE,KAAK,EAAEiE,MAAM,GAAG,CAAC,CAAC;AACpCJ,QAAAA,QAAQ,EAAE7D,KAAK,CAACiE,MAAM,GAAG,CAAC,CAAC;QAC3BC,MAAM;AACNH,QAAAA,WAAW,EAAE,YAAY;AACzBC,QAAAA,YAAY,EAAE;OACjB;AACL,IAAA;IACAC,MAAM,IAAII,IAAI,CAACC,GAAG,CAACH,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;AACrC,EAAA;EACA,OAAO;AAAE/D,IAAAA,YAAY,EAAE,MAAM;AAAEiD,IAAAA,KAAK,EAAE,CAAC;AAAEC,IAAAA,MAAM,EAAE,CAAC;AAAEO,IAAAA,QAAQ,EAAE,CAAC;AAAEE,IAAAA,WAAW,EAAE,MAAM;AAAEC,IAAAA,YAAY,EAAE;GAAM;AAC9G;AAEA,SAASd,UAAUA,CAAClD,KAAK,EACzB;AACI,EAAA,MAAMuE,MAAM,GAAGlF,MAAM,CAACmF,YAAY,CAACxE,KAAK,CAAC,EAAE,CAAC,EAAEA,KAAK,CAAC,EAAE,CAAC,EAAEA,KAAK,CAAC,EAAE,CAAC,EAAEA,KAAK,CAAC,EAAE,CAAC,CAAC,CAACV,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;EACnG,OAAO;AACHc,IAAAA,YAAY,EAAE,KAAK;AACnBiD,IAAAA,KAAK,EAAEoB,SAAS,CAACzE,KAAK,EAAE,EAAE,CAAC;AAC3BsD,IAAAA,MAAM,EAAEmB,SAAS,CAACzE,KAAK,EAAE,EAAE,CAAC;AAC5B0E,IAAAA,QAAQ,EAAEL,IAAI,CAACC,GAAG,CAACG,SAAS,CAACzE,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3CuE,MAAM;IACNI,aAAa,EAAEJ,MAAM,IAAI,YAAY;IACrCP,YAAY,EAAE,CAAC,CAACO,MAAM;AACtBK,IAAAA,UAAU,EAAEH,SAAS,CAACzE,KAAK,EAAE,EAAE,CAAC,GAAG;GACtC;AACL;AAEA,SAASoD,UAAUA,CAACpD,KAAK,EACzB;AACI,EAAA,MAAM6E,UAAU,GAAG7E,KAAK,CAAC,EAAE,CAAC;AAC5B,EAAA,MAAM8E,kBAAkB,GAAGT,IAAI,CAACU,IAAI,CAAC/E,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;EAClD,MAAMgF,aAAa,GAAGxB,SAAS,CAACxD,KAAK,EAAE,CAAC,CAAC,GAAG8E,kBAAkB;EAC9D,MAAMG,eAAe,GAAG,EAAE,GAAGjF,KAAK,CAAC,CAAC,CAAC,GAAGgF,aAAa;EACrD,OAAO;AACH5E,IAAAA,YAAY,EAAE,KAAK;AACnB8E,IAAAA,QAAQ,EAAElF,KAAK,CAAC,CAAC,CAAC;AAClBmF,IAAAA,YAAY,EAAEnF,KAAK,CAAC,CAAC,CAAC;AACtBoF,IAAAA,aAAa,EAAE5B,SAAS,CAACxD,KAAK,EAAE,CAAC,CAAC;AAClCqF,IAAAA,cAAc,EAAE7B,SAAS,CAACxD,KAAK,EAAE,CAAC,CAAC;AACnCsF,IAAAA,iBAAiB,EAAEtF,KAAK,CAAC,CAAC,CAAC;IAC3BgF,aAAa;IACbC,eAAe;AACfM,IAAAA,cAAc,EAAElB,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEtE,KAAK,CAACQ,UAAU,GAAGyE,eAAe,CAAC;AAC/D5B,IAAAA,KAAK,EAAEG,SAAS,CAACxD,KAAK,EAAE,EAAE,CAAC;AAC3BsD,IAAAA,MAAM,EAAEE,SAAS,CAACxD,KAAK,EAAE,EAAE,CAAC;AAC5B6D,IAAAA,QAAQ,EAAEQ,IAAI,CAACC,GAAG,CAACtE,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACpCuD,IAAAA,SAAS,EAAEvD,KAAK,CAAC,CAAC,CAAC;AACnBwF,IAAAA,YAAY,EAAExF,KAAK,CAAC,EAAE,CAAC;IACvB6E,UAAU;IACVY,SAAS,EAAEZ,UAAU,GAAG,IAAI;IAC5Ba,QAAQ,EAAE1F,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,IAAIA,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE;AACpF2F,IAAAA,MAAM,EAAEC,YAAY,CAACf,UAAU,CAAC;AAChCd,IAAAA,WAAW,EAAE,CAAA,IAAA,EAAO/D,KAAK,CAAC,EAAE,CAAC,CAAA,CAAE;AAC/BgE,IAAAA,YAAY,EAAE,CAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAE,CAACvE,QAAQ,CAACO,KAAK,CAAC,CAAC,CAAC;GAChD;AACL;AAEA,SAASY,kBAAkBA,CAACF,QAAQ,EACpC;AACI,EAAA,MAAMmF,OAAO,GAAG,CAAE,CAAC,EAAE,CAAC,CAAE,CAACpG,QAAQ,CAACiB,QAAQ,CAAC6C,SAAS,CAAC;AACrD,EAAA,MAAMuC,MAAM,GAAG,CAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAE,CAACrG,QAAQ,CAACiB,QAAQ,CAAC6C,SAAS,CAAC;AAC5D,EAAA,OAAOwC,wBAAwB,CAACrF,QAAQ,CAAC,KACpCoF,MAAM,IAAIpF,QAAQ,CAACyE,YAAY,KAAK,CAAC,IAAI,CAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,CAAC1F,QAAQ,CAACiB,QAAQ,CAAC8E,YAAY,CAAC,IAC9FK,OAAO,IAAInF,QAAQ,CAACyE,YAAY,KAAK,CAAC,IAAIzE,QAAQ,CAAC2E,cAAc,GAAG,CAAC,IAClE,CAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,CAAC5F,QAAQ,CAACiB,QAAQ,CAAC4E,iBAAiB,CAAC,IAAI,CAAE,CAAC,EAAE,EAAE,CAAE,CAAC7F,QAAQ,CAACiB,QAAQ,CAAC8E,YAAY,CAAE,CAC/G;AACL;AAEA,SAASO,wBAAwBA,CAACrF,QAAQ,EAC1C;EACI,IAAIA,QAAQ,CAACF,UAAU,GAAGE,QAAQ,CAACuE,eAAe,EAAE,OAAO,KAAK;EAChE,IAAI,CAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAE,CAACxF,QAAQ,CAACiB,QAAQ,CAAC6C,SAAS,CAAC,EAAE,OAAO7C,QAAQ,CAAC6E,cAAc,GAAG,CAAC;EAClF,OAAO7E,QAAQ,CAAC6E,cAAc,IAAI7E,QAAQ,CAAC2C,KAAK,GAAG3C,QAAQ,CAAC4C,MAAM,GAAGe,IAAI,CAACU,IAAI,CAACrE,QAAQ,CAAC8E,YAAY,GAAG,CAAC,CAAC;AAC7G;AAEA,SAASvD,eAAeA,CAACjC,KAAK,EAAEU,QAAQ,EACxC;AACI,EAAA,IAAI,CAACE,kBAAkB,CAACF,QAAQ,CAAC,EACjC;AACIsF,IAAAA,gBAAgB,CAACtF,QAAQ,EAAE,4EAA4E,CAAC;AAC5G,EAAA;EAEA,MAAMuF,aAAa,GAAG5B,IAAI,CAACU,IAAI,CAACrE,QAAQ,CAAC8E,YAAY,GAAG,CAAC,CAAC;AAC1D,EAAA,MAAMU,OAAO,GAAGxF,QAAQ,CAACyE,YAAY,KAAK,CAAC,GAAGgB,cAAc,CAACnG,KAAK,EAAEU,QAAQ,CAAC,GAAG,IAAI;EACpF,MAAM0F,WAAW,GAAG,EAAE,GAAG1F,QAAQ,CAACwE,QAAQ,IAAIgB,OAAO,GAAGxF,QAAQ,CAAC2E,cAAc,IAAI3E,QAAQ,CAAC4E,iBAAiB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;EACvH5E,QAAQ,CAACwF,OAAO,GAAGA,OAAO;EAC1B,MAAMG,UAAU,GAAG3F,QAAQ,CAAC2C,KAAK,GAAG3C,QAAQ,CAAC4C,MAAM;EACnD,MAAMgD,IAAI,GAAG,IAAIjE,UAAU,CAACgE,UAAU,GAAG,CAAC,CAAC;EAE3C,IAAIE,WAAW,GAAGH,WAAW;EAC7B,IAAII,UAAU,GAAG,CAAC;AAElB,EAAA,IAAI,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE,CAAC/G,QAAQ,CAACiB,QAAQ,CAAC6C,SAAS,CAAC,EAC5C;IACI,OAAOiD,UAAU,GAAGH,UAAU,EAC9B;AACIE,MAAAA,WAAW,GAAGE,YAAY,CAACzG,KAAK,EAAEuG,WAAW,EAAEN,aAAa,EAAEvF,QAAQ,EAAE4F,IAAI,EAAEE,UAAU,EAAE,CAAC;AAC/F,IAAA;AACJ,EAAA,CAAC,MAED;IACI,OAAOA,UAAU,GAAGH,UAAU,EAC9B;AACI,MAAA,MAAMK,MAAM,GAAG1G,KAAK,CAACuG,WAAW,EAAE,CAAC;AACnC,MAAA,MAAMI,KAAK,GAAG,CAACD,MAAM,GAAG,IAAI,IAAI,CAAC;MACjC,IAAIA,MAAM,GAAG,IAAI,EACjB;QACI,MAAME,KAAK,GAAGC,iBAAiB,CAAC7G,KAAK,EAAEuG,WAAW,EAAEN,aAAa,EAAEvF,QAAQ,CAAC;AAC5E6F,QAAAA,WAAW,IAAIN,aAAa;QAC5B,KAAK,IAAIa,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,KAAK,IAAIH,UAAU,GAAGH,UAAU,EAAES,CAAC,EAAE,EAAEC,aAAa,CAACT,IAAI,EAAEE,UAAU,EAAE,EAAEI,KAAK,EAAElG,QAAQ,CAAC;AACjH,MAAA,CAAC,MAED;AACI,QAAA,KAAK,IAAIoG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,KAAK,IAAIH,UAAU,GAAGH,UAAU,EAAES,CAAC,EAAE,EACzD;AACIP,UAAAA,WAAW,GAAGE,YAAY,CAACzG,KAAK,EAAEuG,WAAW,EAAEN,aAAa,EAAEvF,QAAQ,EAAE4F,IAAI,EAAEE,UAAU,EAAE,CAAC;AAC/F,QAAA;AACJ,MAAA;AACJ,IAAA;AACJ,EAAA;EAEA,OAAO;AACHlG,IAAAA,WAAW,EAAEzC,WAAW;AACxBuC,IAAAA,YAAY,EAAE,KAAK;AACnB2B,IAAAA,QAAQ,EAAE,aAAa;IACvBsB,KAAK,EAAE3C,QAAQ,CAAC2C,KAAK;IACrBC,MAAM,EAAE5C,QAAQ,CAAC4C,MAAM;AACvBS,IAAAA,WAAW,EAAE,YAAY;AACzBiD,IAAAA,WAAW,EAAEtG,QAAQ,CAAC2C,KAAK,GAAG,CAAC;AAC/BsC,IAAAA,MAAM,EAAE,UAAU;AAClBsB,IAAAA,UAAU,EAAE,MAAM;AAClBC,IAAAA,SAAS,EAAExG,QAAQ,CAACgF,QAAQ,GAAG,UAAU,GAAG,QAAQ;IACpDhF,QAAQ;AACRyG,IAAAA,IAAI,EAAEb;GACT;AACL;AAEA,SAASpF,UAAUA,CAACR,QAAQ,EAAE0G,SAAS,EACvC;EACI,OAAO;AACHtG,IAAAA,IAAI,EAAE,KAAK;AACXR,IAAAA,WAAW,EAAE,KAAK;IAClBS,KAAK,EAAEL,QAAQ,CAACN,YAAY;AAC5B2B,IAAAA,QAAQ,EAAEC,aAAa,CAACtB,QAAQ,CAACN,YAAY,CAAC;AAC9CY,IAAAA,SAAS,EAAE;GACd;AACL;AAEA,SAASgB,aAAaA,CAAC5B,YAAY,EACnC;AACI,EAAA,OAAOxB,gBAAgB,CAACwB,YAAY,CAAC,IAAI,0BAA0B;AACvE;AAEA,SAASqG,YAAYA,CAACzG,KAAK,EAAEiE,MAAM,EAAEgC,aAAa,EAAEvF,QAAQ,EAAE4F,IAAI,EAAEE,UAAU,EAC9E;EACI,MAAMI,KAAK,GAAGC,iBAAiB,CAAC7G,KAAK,EAAEiE,MAAM,EAAEgC,aAAa,EAAEvF,QAAQ,CAAC;EACvEqG,aAAa,CAACT,IAAI,EAAEE,UAAU,EAAEI,KAAK,EAAElG,QAAQ,CAAC;EAChD,OAAOuD,MAAM,GAAGgC,aAAa;AACjC;AAEA,SAASY,iBAAiBA,CAAC7G,KAAK,EAAEiE,MAAM,EAAEgC,aAAa,EAAEvF,QAAQ,EACjE;AACI,EAAA,IAAIuD,MAAM,GAAGgC,aAAa,GAAGjG,KAAK,CAACQ,UAAU,EAAEwF,gBAAgB,CAACtF,QAAQ,EAAE,8BAA8B,CAAC;AAEzG,EAAA,IAAI,CAAE,CAAC,EAAE,CAAC,CAAE,CAACjB,QAAQ,CAACiB,QAAQ,CAAC6C,SAAS,CAAC,EACzC;AACI,IAAA,MAAM8D,KAAK,GAAGpB,aAAa,KAAK,CAAC,GAAGzC,SAAS,CAACxD,KAAK,EAAEiE,MAAM,CAAC,GAAGjE,KAAK,CAACiE,MAAM,CAAC;AAC5E,IAAA,OAAOvD,QAAQ,CAACwF,OAAO,CAACmB,KAAK,GAAG3G,QAAQ,CAAC0E,aAAa,CAAC,IAAI,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAE;AAC7E,EAAA;EAEA,IAAI1E,QAAQ,CAAC6C,SAAS,KAAK,CAAC,IAAI7C,QAAQ,CAAC6C,SAAS,KAAK,EAAE,EACzD;AACI,IAAA,MAAMnE,KAAK,GAAGY,KAAK,CAACiE,MAAM,CAAC;AAC3B,IAAA,OAAO,CAAE7E,KAAK,EAAEA,KAAK,EAAEA,KAAK,EAAE6G,aAAa,GAAG,CAAC,GAAGjG,KAAK,CAACiE,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,CAAE;AAC/E,EAAA;EAEA,IAAIgC,aAAa,KAAK,CAAC,EACvB;AACI,IAAA,MAAM7G,KAAK,GAAGoE,SAAS,CAACxD,KAAK,EAAEiE,MAAM,CAAC;IACtC,MAAMqD,CAAC,GAAG,CAAElI,KAAK,KAAK,EAAE,GAAI,IAAI,IAAI,GAAG,GAAG,EAAE;IAC5C,MAAMmI,CAAC,GAAG,CAAEnI,KAAK,KAAK,CAAC,GAAI,IAAI,IAAI,GAAG,GAAG,EAAE;IAC3C,MAAMoI,CAAC,GAAG,CAACpI,KAAK,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE;IACnC,MAAMqI,CAAC,GAAG/G,QAAQ,CAAC8E,YAAY,KAAK,EAAE,IAAI,CAAC9E,QAAQ,CAACmE,UAAU,GAAG,IAAI,MAAM,CAAC,GACtE,GAAG,GACHzF,KAAK,GAAG,MAAM,GAAG,GAAG,GAAG,CAAC;IAC9B,OAAO,CAAEkI,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAEC,CAAC,CAAE;AACzB,EAAA;AAEA,EAAA,OAAO,CACHzH,KAAK,CAACiE,MAAM,GAAG,CAAC,CAAC,EACjBjE,KAAK,CAACiE,MAAM,GAAG,CAAC,CAAC,EACjBjE,KAAK,CAACiE,MAAM,CAAC,EACbgC,aAAa,KAAK,CAAC,GAAGjG,KAAK,CAACiE,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,CAChD;AACL;AAEA,SAASkC,cAAcA,CAACnG,KAAK,EAAEU,QAAQ,EACvC;EACI,MAAMgH,UAAU,GAAGrD,IAAI,CAACU,IAAI,CAACrE,QAAQ,CAAC4E,iBAAiB,GAAG,CAAC,CAAC;AAC5D,EAAA,MAAMrB,MAAM,GAAG,EAAE,GAAGvD,QAAQ,CAACwE,QAAQ;EACrC,MAAMyC,GAAG,GAAG1D,MAAM,GAAGvD,QAAQ,CAAC2E,cAAc,GAAGqC,UAAU;AACzD,EAAA,IAAIC,GAAG,GAAG3H,KAAK,CAACQ,UAAU,EAC1B;AACIwF,IAAAA,gBAAgB,CAACtF,QAAQ,EAAE,6BAA6B,CAAC;AAC7D,EAAA;EAEA,MAAMwF,OAAO,GAAG,EAAE;AAClB,EAAA,KAAK,IAAIY,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGpG,QAAQ,CAAC2E,cAAc,EAAEyB,CAAC,EAAE,EAChD;AACIZ,IAAAA,OAAO,CAAC0B,IAAI,CAACC,YAAY,CAAC7H,KAAK,EAAEiE,MAAM,GAAG6C,CAAC,GAAGY,UAAU,EAAEA,UAAU,EAAEhH,QAAQ,CAAC4E,iBAAiB,CAAC,CAAC;AACtG,EAAA;AACA,EAAA,OAAOY,OAAO;AAClB;AAEA,SAAS2B,YAAYA,CAAC7H,KAAK,EAAEiE,MAAM,EAAEyD,UAAU,EAAEI,SAAS,EAC1D;EACI,IAAIJ,UAAU,KAAK,CAAC,EACpB;AACI,IAAA,MAAMtI,KAAK,GAAGoE,SAAS,CAACxD,KAAK,EAAEiE,MAAM,CAAC;AACtC,IAAA,OAAO,CACHI,IAAI,CAAC0D,KAAK,CAAC,CAAE3I,KAAK,KAAK,EAAE,GAAI,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC,EAC9CiF,IAAI,CAAC0D,KAAK,CAAC,CAAE3I,KAAK,KAAK,CAAC,GAAI,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC,EAC7CiF,IAAI,CAAC0D,KAAK,CAAC,CAAC3I,KAAK,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC,EACrC0I,SAAS,KAAK,EAAE,IAAK1I,KAAK,GAAG,MAAO,GAAG,GAAG,GAAG0I,SAAS,KAAK,EAAE,GAAG,CAAC,GAAG,GAAG,CAC1E;AACL,EAAA;AACA,EAAA,OAAO,CACH9H,KAAK,CAACiE,MAAM,GAAG,CAAC,CAAC,EACjBjE,KAAK,CAACiE,MAAM,GAAG,CAAC,CAAC,EACjBjE,KAAK,CAACiE,MAAM,CAAC,EACb6D,SAAS,KAAK,EAAE,GAAG9H,KAAK,CAACiE,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,CAC7C;AACL;AAEA,SAAS8C,aAAaA,CAACT,IAAI,EAAEE,UAAU,EAAEI,KAAK,EAAElG,QAAQ,EACxD;EACI,MAAMuD,MAAM,GAAG+D,kBAAkB,CAACtH,QAAQ,EAAE8F,UAAU,CAAC,GAAG,CAAC;AAC3DF,EAAAA,IAAI,CAACrC,MAAM,CAAC,GAAG2C,KAAK,CAAC,CAAC,CAAC;EACvBN,IAAI,CAACrC,MAAM,GAAG,CAAC,CAAC,GAAG2C,KAAK,CAAC,CAAC,CAAC;EAC3BN,IAAI,CAACrC,MAAM,GAAG,CAAC,CAAC,GAAG2C,KAAK,CAAC,CAAC,CAAC;EAC3BN,IAAI,CAACrC,MAAM,GAAG,CAAC,CAAC,GAAG2C,KAAK,CAAC,CAAC,CAAC;AAC/B;AAEA,SAASoB,kBAAkBA,CAACtH,QAAQ,EAAE8F,UAAU,EAChD;AACI,EAAA,MAAMyB,MAAM,GAAGzB,UAAU,GAAG9F,QAAQ,CAAC2C,KAAK;EAC1C,MAAM6E,MAAM,GAAG7D,IAAI,CAAC8D,KAAK,CAAC3B,UAAU,GAAG9F,QAAQ,CAAC2C,KAAK,CAAC;AACtD,EAAA,MAAM+E,CAAC,GAAG1H,QAAQ,CAACiF,MAAM,CAAC0C,QAAQ,CAAC,OAAO,CAAC,GAAG3H,QAAQ,CAAC2C,KAAK,GAAG,CAAC,GAAG4E,MAAM,GAAGA,MAAM;AAClF,EAAA,MAAMK,CAAC,GAAG5H,QAAQ,CAACiF,MAAM,CAAC4C,UAAU,CAAC,KAAK,CAAC,GAAGL,MAAM,GAAGxH,QAAQ,CAAC4C,MAAM,GAAG,CAAC,GAAG4E,MAAM;AACnF,EAAA,OAAOI,CAAC,GAAG5H,QAAQ,CAAC2C,KAAK,GAAG+E,CAAC;AACjC;AAEA,SAASxC,YAAYA,CAACf,UAAU,EAChC;AACI,EAAA,MAAM2D,GAAG,GAAG,CAAC,EAAE3D,UAAU,GAAG,IAAI,CAAC;AACjC,EAAA,MAAM4D,KAAK,GAAG,CAAC,EAAE5D,UAAU,GAAG,IAAI,CAAC;AACnC,EAAA,OAAO,CAAA,EAAG2D,GAAG,GAAG,KAAK,GAAG,QAAQ,CAAA,CAAA,EAAIC,KAAK,GAAG,OAAO,GAAG,MAAM,CAAA,CAAE;AAClE;AAEA,SAASzC,gBAAgBA,CAACtF,QAAQ,EAAEmB,OAAO,EAC3C;EACI,MAAMD,KAAK,GAAG,IAAIM,KAAK,CAAC,CAAA,KAAA,EAAQL,OAAO,EAAE,CAAC;EAC1CD,KAAK,CAACO,IAAI,GAAG,iCAAiC;AAC9CP,EAAAA,KAAK,CAACxB,YAAY,GAAGM,QAAQ,CAACN,YAAY;AAC1C,EAAA,MAAMwB,KAAK;AACf;AAEA,SAASkC,WAAWA,CAACJ,SAAS,EAC9B;AACI,EAAA,IAAIA,SAAS,KAAK,CAAC,EAAE,OAAO,CAAC;AAC7B,EAAA,IAAIA,SAAS,KAAK,CAAC,EAAE,OAAO,CAAC;AAC7B,EAAA,IAAIA,SAAS,KAAK,CAAC,EAAE,OAAO,CAAC;AAC7B,EAAA,IAAIA,SAAS,KAAK,CAAC,EAAE,OAAO,CAAC;AAC7B,EAAA,IAAIA,SAAS,KAAK,CAAC,EAAE,OAAO,CAAC;AAC7B,EAAA,OAAO,CAAC;AACZ;AAEA,SAASrD,UAAUA,CAACjB,KAAK,EACzB;AACI,EAAA,OAAOA,KAAK,GAAGA,KAAK,CAAC,CAAC,CAAC,CAAC+B,WAAW,EAAE,GAAG/B,KAAK,CAACsJ,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO;AACpE;;;;"}
|
|
1
|
+
{"version":3,"file":"helpers.js","sources":["../../../../../../src/resource/formats/tga/core/helpers.js"],"sourcesContent":["import { toJsonWithByteSummary as toJsonValue } from \"../../../format/jsonPolicies.js\";\nimport { capitalizeFormatId, foreignImageRecord, identifyImageBytes, imageMimeType, isTGA, rawVariant } from \"../../../format/imageSignatures.js\";\n\n// The container sniffer is shared; re-exported because the format class\n// imports it from this module.\nexport { isTGA };\nimport { asUint8Array, readU16BE, readU16LE, readU32BE, readU32LE } from \"#utils/bytes\";\nexport const OUTPUT_IMAGE = \"image\";\nexport const OUTPUT_TEXTURE = \"texture\";\nexport const OUTPUT_RGBA = \"rgba\";\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_JSON = \"json\";\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_RAW,\n inputType: \"\",\n source: \"\"\n});\n\nconst DEBUG_OUTPUTS = Object.freeze({\n png: \"pngJson\",\n jpeg: \"jpegJson\",\n jpg: \"jpegJson\",\n tga: \"tgaJson\",\n dds: \"ddsJson\"\n});\n\n\n/**\n * Normalizes reader options against their supported defaults for the TGA format\n * reader.\n */\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsImageFormat\")\n{\n const values = { ...DEFAULT_VALUES, ...(base || {}), ...(options || {}) };\n values.inputType = normalizeInputType(values.inputType);\n values.emit = normalizeEmit(values.emit, values.inputType, readerName);\n return values;\n}\n\n/** Normalizes the requested input representation for the TGA format reader. */\nexport function normalizeInputType(inputType)\n{\n if (!inputType) return \"\";\n const value = String(inputType).replace(/^\\./u, \"\").toLowerCase();\n return value === \"jpg\" ? \"jpeg\" : value;\n}\n\n/** Normalizes the requested output representation for the TGA format reader. */\nexport function normalizeEmit(emit, inputType, readerName)\n{\n if (emit === undefined || emit === null) return OUTPUT_RAW;\n if (emit === OUTPUT_JSON && inputType) return DEBUG_OUTPUTS[inputType] || OUTPUT_JSON;\n if ([ OUTPUT_IMAGE, OUTPUT_RGBA, OUTPUT_RAW, OUTPUT_JSON ].includes(emit)) return emit;\n if (Object.values(DEBUG_OUTPUTS).includes(emit)) return emit;\n throw new TypeError(`${readerName}: unknown emit value ${JSON.stringify(emit)}`);\n}\n\n/** Returns a byte view over the supplied binary input for the TGA format reader. */\n/** Inspects input using normalized format options for the TGA format reader. */\nexport function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = asUint8Array(input, \"Image input\");\n const detected = inspectBytes(bytes);\n const sourceFormat = expectedType || values.inputType || detected.sourceFormat;\n\n if (expectedType && detected.sourceFormat && detected.sourceFormat !== expectedType)\n {\n throw new TypeError(`CjsFormat${capitalizeFormatId(expectedType)}: expected ${expectedType}, got ${detected.sourceFormat}`);\n }\n\n return {\n payloadType: sourceFormat === \"dds\" ? \"texture\" : \"image\",\n mediaTypes: sourceFormat === \"dds\" ? [ \"texture\", \"image\" ] : [ \"image\" ],\n sourceFormat,\n byteLength: bytes.byteLength,\n ...detected\n };\n}\n\n/**\n * Reports whether input is supported under normalized format options for the TGA\n * format reader.\n */\nexport function probeSupportWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n try\n {\n const metadata = inspectWithValues(input, values, expectedType);\n const canDecodeTga = metadata.sourceFormat === \"tga\" && canDecodeTgaToRgba(metadata);\n let variants;\n if (metadata.sourceFormat === \"tga\")\n {\n variants = [\n {\n kind: \"rgba\",\n payloadType: \"rgba\",\n codec: \"rgba8unorm\",\n supported: canDecodeTga,\n reason: canDecodeTga ? \"\" : \"Only supported true-color, grayscale, and indexed TGA images are decoded to RGBA.\",\n },\n rawVariant(metadata, canDecodeTga)\n ];\n }\n else\n {\n variants = [\n rawVariant(metadata, false),\n { kind: \"rgba\", payloadType: \"rgba\", codec: \"rgba8unorm\", supported: false, reason: `${metadata.sourceFormat.toUpperCase()} RGBA decode is not implemented yet.`}\n ];\n }\n\n return {\n format: metadata.sourceFormat,\n source: values.source || \"buffer\",\n supported: metadata.sourceFormat ? (variants.some(v => v.supported && v.kind === \"rgba\") ? \"full\" : \"partial\") : \"none\",\n confidence: metadata.sourceFormat ? 1 : 0,\n preferredOutput: variants.find(v => v.supported)?.kind || \"\",\n reason: metadata.sourceFormat ? \"Container/header recognized.\" : \"Unrecognized image format.\",\n metadata,\n variants,\n warnings: [],\n errors: []\n };\n }\n catch (error)\n {\n return {\n format: expectedType || values.inputType || \"\",\n source: values.source || \"buffer\",\n supported: \"none\",\n confidence: 0,\n preferredOutput: \"\",\n reason: error.message,\n metadata: null,\n variants: [],\n warnings: [],\n errors: [ error.message ]\n };\n }\n}\n\n/** Reads input using normalized format options for the TGA format reader. */\nexport function readWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = asUint8Array(input, \"Image input\");\n const metadata = inspectWithValues(bytes, values, expectedType);\n\n if (values.emit === OUTPUT_RAW)\n {\n return {\n payloadType: \"raw\",\n sourceFormat: metadata.sourceFormat,\n mimeType: imageMimeType(metadata.sourceFormat),\n metadata,\n bytes\n };\n }\n\n if (values.emit === OUTPUT_JSON || values.emit === DEBUG_OUTPUTS[metadata.sourceFormat])\n {\n return metadata;\n }\n\n if ((values.emit === OUTPUT_RGBA || values.emit === OUTPUT_IMAGE) && metadata.sourceFormat === \"tga\")\n {\n return decodeTgaToRgba(bytes, metadata);\n }\n\n const error = new Error(`${metadata.sourceFormat}: emit \"${values.emit}\" is not implemented yet`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_IMPLEMENTED\";\n error.sourceFormat = metadata.sourceFormat;\n error.emit = values.emit;\n throw error;\n}\n\n/** Converts a parsed payload into a JSON-safe value for the TGA format reader. */\n/** The shared JSON policy for this reader, under the name its callers use. */\nexport { toJsonValue };\n\n/**\n * Inspects the supplied bytes without decoding their payload for the TGA format\n * reader.\n */\nexport function inspectBytes(bytes)\n{\n const sourceFormat = identifyImageBytes(bytes);\n return sourceFormat === \"tga\" ? inspectTGA(bytes) : foreignImageRecord(sourceFormat);\n}\n\n\n\n\n\n\n\n\nfunction inspectTGA(bytes)\n{\n const descriptor = bytes[17];\n const colorMapEntryBytes = Math.ceil(bytes[7] / 8);\n const colorMapBytes = readU16LE(bytes, 5) * colorMapEntryBytes;\n const imageDataOffset = 18 + bytes[0] + colorMapBytes;\n return {\n sourceFormat: \"tga\",\n idLength: bytes[0],\n colorMapType: bytes[1],\n colorMapFirst: readU16LE(bytes, 3),\n colorMapLength: readU16LE(bytes, 5),\n colorMapEntryBits: bytes[7],\n colorMapBytes,\n imageDataOffset,\n imageDataBytes: Math.max(0, bytes.byteLength - imageDataOffset),\n width: readU16LE(bytes, 12),\n height: readU16LE(bytes, 14),\n channels: Math.max(bytes[16] / 8, 1),\n imageType: bytes[2],\n bitsPerPixel: bytes[16],\n descriptor,\n alphaBits: descriptor & 0x0f,\n hasAlpha: bytes[16] === 32 || bytes[16] === 16 || bytes[7] === 32 || bytes[7] === 16,\n origin: getTgaOrigin(descriptor),\n pixelFormat: `tga-${bytes[16]}`,\n isCompressed: [ 9, 10, 11 ].includes(bytes[2])\n };\n}\n\nfunction canDecodeTgaToRgba(metadata)\n{\n const indexed = [ 1, 9 ].includes(metadata.imageType);\n const direct = [ 2, 3, 10, 11 ].includes(metadata.imageType);\n return hasMinimumTgaDataForRgba(metadata) && (\n (direct && metadata.colorMapType === 0 && [ 8, 15, 16, 24, 32 ].includes(metadata.bitsPerPixel)) ||\n (indexed && metadata.colorMapType === 1 && metadata.colorMapLength > 0 &&\n [ 8, 15, 16, 24, 32 ].includes(metadata.colorMapEntryBits) && [ 8, 16 ].includes(metadata.bitsPerPixel))\n );\n}\n\nfunction hasMinimumTgaDataForRgba(metadata)\n{\n if (metadata.byteLength < metadata.imageDataOffset) return false;\n if ([ 9, 10, 11 ].includes(metadata.imageType)) return metadata.imageDataBytes > 0;\n return metadata.imageDataBytes >= metadata.width * metadata.height * Math.ceil(metadata.bitsPerPixel / 8);\n}\n\nfunction decodeTgaToRgba(bytes, metadata)\n{\n if (!canDecodeTgaToRgba(metadata))\n {\n throwUnsupported(metadata, \"Only true-color, grayscale, and indexed TGA images can be decoded to RGBA.\");\n }\n\n const bytesPerPixel = Math.ceil(metadata.bitsPerPixel / 8);\n const palette = metadata.colorMapType === 1 ? readTgaPalette(bytes, metadata) : null;\n const imageOffset = 18 + metadata.idLength + (palette ? metadata.colorMapLength * (metadata.colorMapEntryBits / 8) : 0);\n metadata.palette = palette;\n const pixelCount = metadata.width * metadata.height;\n const rgba = new Uint8Array(pixelCount * 4);\n\n let inputOffset = imageOffset;\n let pixelIndex = 0;\n\n if ([ 1, 2, 3 ].includes(metadata.imageType))\n {\n while (pixelIndex < pixelCount)\n {\n inputOffset = readTgaPixel(bytes, inputOffset, bytesPerPixel, metadata, rgba, pixelIndex++);\n }\n }\n else\n {\n while (pixelIndex < pixelCount)\n {\n const packet = bytes[inputOffset++];\n const count = (packet & 0x7f) + 1;\n if (packet & 0x80)\n {\n const pixel = readTgaPixelBytes(bytes, inputOffset, bytesPerPixel, metadata);\n inputOffset += bytesPerPixel;\n for (let i = 0; i < count && pixelIndex < pixelCount; i++) writeTgaPixel(rgba, pixelIndex++, pixel, metadata);\n }\n else\n {\n for (let i = 0; i < count && pixelIndex < pixelCount; i++)\n {\n inputOffset = readTgaPixel(bytes, inputOffset, bytesPerPixel, metadata, rgba, pixelIndex++);\n }\n }\n }\n }\n\n return {\n payloadType: OUTPUT_RGBA,\n sourceFormat: \"tga\",\n mimeType: \"image/x-tga\",\n width: metadata.width,\n height: metadata.height,\n pixelFormat: \"rgba8unorm\",\n strideBytes: metadata.width * 4,\n origin: \"top-left\",\n colorSpace: \"srgb\",\n alphaMode: metadata.hasAlpha ? \"straight\" : \"opaque\",\n metadata,\n data: rgba\n };\n}\n\n\n\nfunction readTgaPixel(bytes, offset, bytesPerPixel, metadata, rgba, pixelIndex)\n{\n const pixel = readTgaPixelBytes(bytes, offset, bytesPerPixel, metadata);\n writeTgaPixel(rgba, pixelIndex, pixel, metadata);\n return offset + bytesPerPixel;\n}\n\nfunction readTgaPixelBytes(bytes, offset, bytesPerPixel, metadata)\n{\n if (offset + bytesPerPixel > bytes.byteLength) throwUnsupported(metadata, \"TGA pixel data is truncated.\");\n\n if ([ 1, 9 ].includes(metadata.imageType))\n {\n const index = bytesPerPixel === 2 ? readU16LE(bytes, offset) : bytes[offset];\n return metadata.palette[index - metadata.colorMapFirst] || [ 0, 0, 0, 0 ];\n }\n\n if (metadata.imageType === 3 || metadata.imageType === 11)\n {\n const value = bytes[offset];\n return [ value, value, value, bytesPerPixel > 1 ? bytes[offset + 1] : 255 ];\n }\n\n if (bytesPerPixel === 2)\n {\n const value = readU16LE(bytes, offset);\n const r = ((value >>> 10) & 0x1f) * 255 / 31;\n const g = ((value >>> 5) & 0x1f) * 255 / 31;\n const b = (value & 0x1f) * 255 / 31;\n const a = metadata.bitsPerPixel === 15 || (metadata.descriptor & 0x0f) === 0\n ? 255\n : value & 0x8000 ? 255 : 0;\n return [ r, g, b, a ];\n }\n\n return [\n bytes[offset + 2],\n bytes[offset + 1],\n bytes[offset],\n bytesPerPixel === 4 ? bytes[offset + 3] : 255\n ];\n}\n\nfunction readTgaPalette(bytes, metadata)\n{\n const entryBytes = Math.ceil(metadata.colorMapEntryBits / 8);\n const offset = 18 + metadata.idLength;\n const end = offset + metadata.colorMapLength * entryBytes;\n if (end > bytes.byteLength)\n {\n throwUnsupported(metadata, \"TGA color map is truncated.\");\n }\n\n const palette = [];\n for (let i = 0; i < metadata.colorMapLength; i++)\n {\n palette.push(readTgaColor(bytes, offset + i * entryBytes, entryBytes, metadata.colorMapEntryBits));\n }\n return palette;\n}\n\nfunction readTgaColor(bytes, offset, entryBytes, entryBits)\n{\n if (entryBytes === 2)\n {\n const value = readU16LE(bytes, offset);\n return [\n Math.round(((value >>> 10) & 0x1f) * 255 / 31),\n Math.round(((value >>> 5) & 0x1f) * 255 / 31),\n Math.round((value & 0x1f) * 255 / 31),\n entryBits === 16 && (value & 0x8000) ? 255 : entryBits === 16 ? 0 : 255\n ];\n }\n return [\n bytes[offset + 2],\n bytes[offset + 1],\n bytes[offset],\n entryBits === 32 ? bytes[offset + 3] : 255\n ];\n}\n\nfunction writeTgaPixel(rgba, pixelIndex, pixel, metadata)\n{\n const offset = getTgaOutputOffset(metadata, pixelIndex) * 4;\n rgba[offset] = pixel[0];\n rgba[offset + 1] = pixel[1];\n rgba[offset + 2] = pixel[2];\n rgba[offset + 3] = pixel[3];\n}\n\nfunction getTgaOutputOffset(metadata, pixelIndex)\n{\n const xInput = pixelIndex % metadata.width;\n const yInput = Math.floor(pixelIndex / metadata.width);\n const x = metadata.origin.endsWith(\"right\") ? metadata.width - 1 - xInput : xInput;\n const y = metadata.origin.startsWith(\"top\") ? yInput : metadata.height - 1 - yInput;\n return y * metadata.width + x;\n}\n\nfunction getTgaOrigin(descriptor)\n{\n const top = !!(descriptor & 0x20);\n const right = !!(descriptor & 0x10);\n return `${top ? \"top\" : \"bottom\"}-${right ? \"right\" : \"left\"}`;\n}\n\nfunction throwUnsupported(metadata, message)\n{\n const error = new Error(`tga: ${message}`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = metadata.sourceFormat;\n throw error;\n}\n\n\n\n"],"names":["OUTPUT_IMAGE","OUTPUT_RGBA","OUTPUT_RAW","OUTPUT_JSON","DEFAULT_VALUES","Object","freeze","emit","inputType","source","DEBUG_OUTPUTS","png","jpeg","jpg","tga","dds","normalizeValues","base","options","readerName","values","normalizeInputType","normalizeEmit","value","String","replace","toLowerCase","undefined","includes","TypeError","JSON","stringify","inspectWithValues","input","expectedType","bytes","asUint8Array","detected","inspectBytes","sourceFormat","capitalizeFormatId","payloadType","mediaTypes","byteLength","probeSupportWithValues","metadata","canDecodeTga","canDecodeTgaToRgba","variants","kind","codec","supported","reason","rawVariant","toUpperCase","format","some","v","confidence","preferredOutput","find","warnings","errors","error","message","readWithValues","mimeType","imageMimeType","decodeTgaToRgba","Error","code","identifyImageBytes","inspectTGA","foreignImageRecord","descriptor","colorMapEntryBytes","Math","ceil","colorMapBytes","readU16LE","imageDataOffset","idLength","colorMapType","colorMapFirst","colorMapLength","colorMapEntryBits","imageDataBytes","max","width","height","channels","imageType","bitsPerPixel","alphaBits","hasAlpha","origin","getTgaOrigin","pixelFormat","isCompressed","indexed","direct","hasMinimumTgaDataForRgba","throwUnsupported","bytesPerPixel","palette","readTgaPalette","imageOffset","pixelCount","rgba","Uint8Array","inputOffset","pixelIndex","readTgaPixel","packet","count","pixel","readTgaPixelBytes","i","writeTgaPixel","strideBytes","colorSpace","alphaMode","data","offset","index","r","g","b","a","entryBytes","end","push","readTgaColor","entryBits","round","getTgaOutputOffset","xInput","yInput","floor","x","endsWith","y","startsWith","top","right"],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { asUint8Array } from '#utils/bytes';
|
|
2
2
|
import { CjsFormat } from '../../format/CjsFormat.js';
|
|
3
|
-
import { DEFAULT_VALUES, normalizeValues, readWithValues, readAsyncWithValues, inspectWithValues,
|
|
3
|
+
import { DEFAULT_VALUES, normalizeValues, readWithValues, readAsyncWithValues, inspectWithValues, probeSupportWithValues, isVTA, VTA_ENCODING, VTA_VERSION, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_VOLUME, OUTPUT_VTA_JSON } from './core/helpers.js';
|
|
4
|
+
import { toJsonWithByteSummary } from '../../format/jsonPolicies.js';
|
|
4
5
|
|
|
5
6
|
const FORMAT_NAME = "CjsVtaFormat";
|
|
6
7
|
|
|
@@ -87,7 +88,7 @@ class CjsVtaFormat extends CjsFormat {
|
|
|
87
88
|
* @returns {any} JSON-compatible value.
|
|
88
89
|
*/
|
|
89
90
|
ToJSON(value) {
|
|
90
|
-
return
|
|
91
|
+
return toJsonWithByteSummary(value);
|
|
91
92
|
}
|
|
92
93
|
|
|
93
94
|
/**
|
|
@@ -139,7 +140,7 @@ class CjsVtaFormat extends CjsFormat {
|
|
|
139
140
|
* @returns {any} JSON-compatible value.
|
|
140
141
|
*/
|
|
141
142
|
static toJSON(value) {
|
|
142
|
-
return
|
|
143
|
+
return toJsonWithByteSummary(value);
|
|
143
144
|
}
|
|
144
145
|
|
|
145
146
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CjsVtaFormat.js","sources":["../../../../../src/resource/formats/vta/CjsVtaFormat.js"],"sourcesContent":["import { asUint8Array } from \"#utils/bytes\";\nimport { CjsFormat } from \"../../format/CjsFormat.js\";\nimport {\n DEFAULT_VALUES,\n OUTPUT_JSON,\n OUTPUT_RAW,\n OUTPUT_VOLUME,\n OUTPUT_VTA_JSON,\n VTA_ENCODING,\n VTA_VERSION,\n inspectWithValues,\n isVTA,\n normalizeValues,\n probeSupportWithValues,\n readAsyncWithValues,\n readWithValues,\n toJsonValue\n} from \"./core/helpers.js\";\n\nconst FORMAT_NAME = \"CjsVtaFormat\";\n\n/**\n * VTA format profile - Carbon's Volume Texture Animation container.\n *\n * Reads `.vta` bytes into raw, structural debug JSON, or decoded R8 volume\n * payloads (per grid, per frame). Volume decode is asynchronous because\n * every frame blob is zlib-compressed and inflates through\n * DecompressionStream; `Read` serves the synchronous targets and points\n * volume callers at `ReadAsync`. Carbon's static texture path is grid 0 /\n * frame 0 - the profile's defaults select exactly that frame.\n */\nexport class CjsVtaFormat extends CjsFormat\n{\n #values = DEFAULT_VALUES;\n\n /**\n * Create a reusable VTA format profile.\n *\n * @param {object} [options] Default read options.\n */\n constructor(options = {})\n {\n super();\n this.SetValues(options);\n }\n\n /**\n * Merge options into this profile.\n *\n * @param {object} [options] Values to merge.\n * @returns {CjsVtaFormat} This format profile.\n */\n SetValues(options = {})\n {\n this.#values = normalizeValues(this.#values, options, FORMAT_NAME);\n return this;\n }\n\n /**\n * Get normalized profile values with optional per-call overrides.\n *\n * @param {object} [options] Per-call values.\n * @returns {object} Normalized read values.\n */\n GetValues(options = {})\n {\n return normalizeValues(this.#values, options, FORMAT_NAME);\n }\n\n /**\n * Read VTA bytes with this profile - raw and debug targets only.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input VTA bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} Raw or structural payload for the selected emit target.\n */\n Read(input, options = {})\n {\n return readWithValues(input, this.GetValues(options));\n }\n\n /**\n * Read VTA bytes asynchronously with this profile, including volumes.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input VTA bytes.\n * @param {object} [options] Per-call values.\n * @returns {Promise<object>} Payload for the selected emit target.\n */\n async ReadAsync(input, options = {})\n {\n return readAsyncWithValues(input, this.GetValues(options));\n }\n\n /**\n * Inspect VTA bytes without decoding any payload.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input VTA bytes.\n * @returns {object} Header, grid table, offsets and metadata.\n */\n Inspect(input)\n {\n return inspectWithValues(input);\n }\n\n /**\n * Convert format output into JSON-compatible debug data.\n *\n * @param {any} value Format output.\n * @returns {any} JSON-compatible value.\n */\n ToJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * One-shot VTA read - raw and debug targets only.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input VTA bytes.\n * @param {object} [options] Read options.\n * @returns {object} Raw or structural payload for the selected emit target.\n */\n static read(input, options = {})\n {\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME));\n }\n\n /**\n * One-shot asynchronous VTA read, including decoded volumes.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input VTA bytes.\n * @param {object} [options] Read options.\n * @returns {Promise<object>} Payload for the selected emit target.\n */\n static async readAsync(input, options = {})\n {\n return readAsyncWithValues(input, normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME));\n }\n\n /**\n * One-shot VTA inspection.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input VTA bytes.\n * @returns {object} Header, grid table, offsets and metadata.\n */\n static inspect(input)\n {\n return inspectWithValues(input);\n }\n\n /**\n * One-shot VTA support probe.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input VTA bytes.\n * @returns {object} Support/probe report.\n */\n static probeSupport(input)\n {\n return probeSupportWithValues(input);\n }\n\n /**\n * Convert format output into JSON-compatible debug data.\n *\n * @param {any} value Format output.\n * @returns {any} JSON-compatible value.\n */\n static toJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * Test whether bytes look like a version-1 VTA file.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Candidate bytes.\n * @returns {boolean} True when the signature and version match.\n */\n static isVTA(input)\n {\n try\n {\n return isVTA(asUint8Array(input, \"VTA input\"));\n }\n catch\n {\n return false;\n }\n }\n\n /**\n * Grid payload encodings. Rle7/Rle7_5/Rle6 differ only in the encoder's\n * quantization; one decoder serves all three.\n */\n static Encoding = VTA_ENCODING;\n\n /** The only VTA container version Carbon ever wrote. */\n static VERSION = VTA_VERSION;\n\n /**\n * Emit targets for this format (canonical frozen enum).\n */\n static Output = Object.freeze({\n VOLUME: OUTPUT_VOLUME,\n RAW: OUTPUT_RAW,\n JSON: OUTPUT_JSON\n });\n\n static OUTPUT_VTA_JSON = OUTPUT_VTA_JSON;\n\n static id = \"vta\";\n\n static mediaTypes = Object.freeze([ \"image\" ]);\n\n static outputs = CjsFormat.defineOutputs({\n\n volume: { decoded: true, readMode: \"async\", probes: [ \"volume\" ] },\n\n vtaJson: { role: \"debug\", probes: [ \"vtaJson\", \"raw\" ] },\n\n raw: { role: \"debug\", default: true, passthrough: true }\n\n });\n\n static extensions = Object.freeze([ \".vta\" ]);\n}\n\nexport default CjsVtaFormat;\n"],"names":["FORMAT_NAME","CjsVtaFormat","CjsFormat","DEFAULT_VALUES","constructor","options","SetValues","normalizeValues","GetValues","Read","input","readWithValues","ReadAsync","readAsyncWithValues","Inspect","inspectWithValues","ToJSON","value","toJsonValue","read","readAsync","inspect","probeSupport","probeSupportWithValues","toJSON","isVTA","asUint8Array","Encoding","VTA_ENCODING","VERSION","VTA_VERSION","Output","Object","freeze","VOLUME","OUTPUT_VOLUME","RAW","OUTPUT_RAW","JSON","OUTPUT_JSON","OUTPUT_VTA_JSON","id","mediaTypes","outputs","defineOutputs","volume","decoded","readMode","probes","vtaJson","role","raw","default","passthrough","extensions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CjsVtaFormat.js","sources":["../../../../../src/resource/formats/vta/CjsVtaFormat.js"],"sourcesContent":["import { asUint8Array } from \"#utils/bytes\";\nimport { CjsFormat } from \"../../format/CjsFormat.js\";\nimport {\n DEFAULT_VALUES,\n OUTPUT_JSON,\n OUTPUT_RAW,\n OUTPUT_VOLUME,\n OUTPUT_VTA_JSON,\n VTA_ENCODING,\n VTA_VERSION,\n inspectWithValues,\n isVTA,\n normalizeValues,\n probeSupportWithValues,\n readAsyncWithValues,\n readWithValues,\n toJsonValue\n} from \"./core/helpers.js\";\n\nconst FORMAT_NAME = \"CjsVtaFormat\";\n\n/**\n * VTA format profile - Carbon's Volume Texture Animation container.\n *\n * Reads `.vta` bytes into raw, structural debug JSON, or decoded R8 volume\n * payloads (per grid, per frame). Volume decode is asynchronous because\n * every frame blob is zlib-compressed and inflates through\n * DecompressionStream; `Read` serves the synchronous targets and points\n * volume callers at `ReadAsync`. Carbon's static texture path is grid 0 /\n * frame 0 - the profile's defaults select exactly that frame.\n */\nexport class CjsVtaFormat extends CjsFormat\n{\n #values = DEFAULT_VALUES;\n\n /**\n * Create a reusable VTA format profile.\n *\n * @param {object} [options] Default read options.\n */\n constructor(options = {})\n {\n super();\n this.SetValues(options);\n }\n\n /**\n * Merge options into this profile.\n *\n * @param {object} [options] Values to merge.\n * @returns {CjsVtaFormat} This format profile.\n */\n SetValues(options = {})\n {\n this.#values = normalizeValues(this.#values, options, FORMAT_NAME);\n return this;\n }\n\n /**\n * Get normalized profile values with optional per-call overrides.\n *\n * @param {object} [options] Per-call values.\n * @returns {object} Normalized read values.\n */\n GetValues(options = {})\n {\n return normalizeValues(this.#values, options, FORMAT_NAME);\n }\n\n /**\n * Read VTA bytes with this profile - raw and debug targets only.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input VTA bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} Raw or structural payload for the selected emit target.\n */\n Read(input, options = {})\n {\n return readWithValues(input, this.GetValues(options));\n }\n\n /**\n * Read VTA bytes asynchronously with this profile, including volumes.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input VTA bytes.\n * @param {object} [options] Per-call values.\n * @returns {Promise<object>} Payload for the selected emit target.\n */\n async ReadAsync(input, options = {})\n {\n return readAsyncWithValues(input, this.GetValues(options));\n }\n\n /**\n * Inspect VTA bytes without decoding any payload.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input VTA bytes.\n * @returns {object} Header, grid table, offsets and metadata.\n */\n Inspect(input)\n {\n return inspectWithValues(input);\n }\n\n /**\n * Convert format output into JSON-compatible debug data.\n *\n * @param {any} value Format output.\n * @returns {any} JSON-compatible value.\n */\n ToJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * One-shot VTA read - raw and debug targets only.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input VTA bytes.\n * @param {object} [options] Read options.\n * @returns {object} Raw or structural payload for the selected emit target.\n */\n static read(input, options = {})\n {\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME));\n }\n\n /**\n * One-shot asynchronous VTA read, including decoded volumes.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input VTA bytes.\n * @param {object} [options] Read options.\n * @returns {Promise<object>} Payload for the selected emit target.\n */\n static async readAsync(input, options = {})\n {\n return readAsyncWithValues(input, normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME));\n }\n\n /**\n * One-shot VTA inspection.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input VTA bytes.\n * @returns {object} Header, grid table, offsets and metadata.\n */\n static inspect(input)\n {\n return inspectWithValues(input);\n }\n\n /**\n * One-shot VTA support probe.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input VTA bytes.\n * @returns {object} Support/probe report.\n */\n static probeSupport(input)\n {\n return probeSupportWithValues(input);\n }\n\n /**\n * Convert format output into JSON-compatible debug data.\n *\n * @param {any} value Format output.\n * @returns {any} JSON-compatible value.\n */\n static toJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * Test whether bytes look like a version-1 VTA file.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Candidate bytes.\n * @returns {boolean} True when the signature and version match.\n */\n static isVTA(input)\n {\n try\n {\n return isVTA(asUint8Array(input, \"VTA input\"));\n }\n catch\n {\n return false;\n }\n }\n\n /**\n * Grid payload encodings. Rle7/Rle7_5/Rle6 differ only in the encoder's\n * quantization; one decoder serves all three.\n */\n static Encoding = VTA_ENCODING;\n\n /** The only VTA container version Carbon ever wrote. */\n static VERSION = VTA_VERSION;\n\n /**\n * Emit targets for this format (canonical frozen enum).\n */\n static Output = Object.freeze({\n VOLUME: OUTPUT_VOLUME,\n RAW: OUTPUT_RAW,\n JSON: OUTPUT_JSON\n });\n\n static OUTPUT_VTA_JSON = OUTPUT_VTA_JSON;\n\n static id = \"vta\";\n\n static mediaTypes = Object.freeze([ \"image\" ]);\n\n static outputs = CjsFormat.defineOutputs({\n\n volume: { decoded: true, readMode: \"async\", probes: [ \"volume\" ] },\n\n vtaJson: { role: \"debug\", probes: [ \"vtaJson\", \"raw\" ] },\n\n raw: { role: \"debug\", default: true, passthrough: true }\n\n });\n\n static extensions = Object.freeze([ \".vta\" ]);\n}\n\nexport default CjsVtaFormat;\n"],"names":["FORMAT_NAME","CjsVtaFormat","CjsFormat","DEFAULT_VALUES","constructor","options","SetValues","normalizeValues","GetValues","Read","input","readWithValues","ReadAsync","readAsyncWithValues","Inspect","inspectWithValues","ToJSON","value","toJsonValue","read","readAsync","inspect","probeSupport","probeSupportWithValues","toJSON","isVTA","asUint8Array","Encoding","VTA_ENCODING","VERSION","VTA_VERSION","Output","Object","freeze","VOLUME","OUTPUT_VOLUME","RAW","OUTPUT_RAW","JSON","OUTPUT_JSON","OUTPUT_VTA_JSON","id","mediaTypes","outputs","defineOutputs","volume","decoded","readMode","probes","vtaJson","role","raw","default","passthrough","extensions"],"mappings":"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"}
|
|
@@ -311,21 +311,5 @@ async function readAsyncWithValues(input, values) {
|
|
|
311
311
|
return decodeVolumes(asUint8Array(input, "VTA input"), values);
|
|
312
312
|
}
|
|
313
313
|
|
|
314
|
-
|
|
315
|
-
function toJsonValue(value) {
|
|
316
|
-
if (value instanceof Uint8Array) {
|
|
317
|
-
return {
|
|
318
|
-
byteLength: value.byteLength
|
|
319
|
-
};
|
|
320
|
-
}
|
|
321
|
-
if (Array.isArray(value)) return value.map(toJsonValue);
|
|
322
|
-
if (value && typeof value === "object") {
|
|
323
|
-
const output = {};
|
|
324
|
-
for (const [key, entry] of Object.entries(value)) output[key] = toJsonValue(entry);
|
|
325
|
-
return output;
|
|
326
|
-
}
|
|
327
|
-
return value;
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
export { DEFAULT_VALUES, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_VOLUME, OUTPUT_VTA_JSON, VTA_ENCODING, VTA_VERSION, decodeVolumes, inspectBytes, inspectWithValues, isVTA, normalizeValues, probeSupportWithValues, readAsyncWithValues, readWithValues, toJsonValue };
|
|
314
|
+
export { DEFAULT_VALUES, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_VOLUME, OUTPUT_VTA_JSON, VTA_ENCODING, VTA_VERSION, decodeVolumes, inspectBytes, inspectWithValues, isVTA, normalizeValues, probeSupportWithValues, readAsyncWithValues, readWithValues };
|
|
331
315
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sources":["../../../../../../src/resource/formats/vta/core/helpers.js"],"sourcesContent":["import { asUint8Array } from \"#utils/bytes\";\nimport { decompressBytes } from \"#utils/compression\";\nimport { decodeRle7 } from \"./rle7.js\";\n\n/**\n * VTA - Carbon's Volume Texture Animation container.\n *\n * A multi-grid, multi-frame, zlib-compressed animated dense 3D texture,\n * produced by rasterizing NanoVDB grids to R8 volumes. Authority is\n * Carbon's imageio VtaHandler (reader/writer are symmetric); the layout,\n * decode rules and consumption paths are recorded with file:line citations\n * in the org docs page \"VTA format spec\" (research, 2026-09-06). Carbon's\n * static texture path collapses a VTA to grid 0 / frame 0 as a true 3D\n * texture; Tr2TextureAnimation streams frames per grid.\n */\n\nexport const OUTPUT_VOLUME = \"volume\";\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_JSON = \"json\";\nexport const OUTPUT_VTA_JSON = \"vtaJson\";\n\nconst HEADER_SIZE = 32;\nconst GRID_INFO_SIZE = 52;\nconst GRID_NAME_SIZE = 32;\nexport const VTA_VERSION = 1;\n\n/** Grid payload encodings (VtaHandler.h:17-23). One decoder serves 1/2/3. */\nexport const VTA_ENCODING = Object.freeze({\n NONE: 0,\n RLE7: 1,\n RLE7_5: 2,\n RLE6: 3\n});\n\n/**\n * Bytes per voxel for the pixel formats a VTA can carry. Carbon's writer\n * only ever emits PIXEL_FORMAT_R8_UNORM (61) - IsSaveSupported rejects\n * everything else - but the field is read, not assumed, and an unknown\n * format is an error rather than a guess.\n */\nconst BYTES_PER_PIXEL = Object.freeze({\n 61: 1 // PIXEL_FORMAT_R8_UNORM\n});\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_RAW,\n frame: 0,\n allFrames: false,\n grid: null\n});\n\nconst textDecoder = new TextDecoder(\"utf-8\", { fatal: false });\n\n/** Tests whether bytes carry the VTA signature and supported version. */\nexport function isVTA(bytes)\n{\n return bytes.length >= HEADER_SIZE\n && bytes[0] === 0x56 && bytes[1] === 0x54 && bytes[2] === 0x41 && bytes[3] === 0\n && readU32(bytes, 4) === VTA_VERSION;\n}\n\n/** Normalizes and validates VTA read options over a base profile. */\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsVtaFormat\")\n{\n if (!options || typeof options !== \"object\")\n {\n throw new TypeError(`${readerName} options must be an object`);\n }\n for (const key of Object.keys(options))\n {\n if (!(key in DEFAULT_VALUES)) throw new TypeError(`${readerName} unknown option \"${key}\"`);\n }\n\n const values = { ...base, ...options };\n\n if (![ OUTPUT_VOLUME, OUTPUT_RAW, OUTPUT_JSON, OUTPUT_VTA_JSON ].includes(values.emit))\n {\n throw new TypeError(`${readerName} unknown emit value \"${values.emit}\"`);\n }\n if (!Number.isInteger(values.frame) || values.frame < 0)\n {\n throw new TypeError(`${readerName} frame option must be a non-negative integer`);\n }\n if (typeof values.allFrames !== \"boolean\")\n {\n throw new TypeError(`${readerName} allFrames option must be true or false`);\n }\n if (values.grid !== null && typeof values.grid !== \"string\" && !Number.isInteger(values.grid))\n {\n throw new TypeError(`${readerName} grid option must be null, a grid name, or a grid index`);\n }\n return values;\n}\n\nfunction readU32(bytes, offset)\n{\n return (bytes[offset] | (bytes[offset + 1] << 8) | (bytes[offset + 2] << 16) | (bytes[offset + 3] << 24)) >>> 0;\n}\n\nfunction readU64(bytes, offset)\n{\n const\n lo = readU32(bytes, offset),\n hi = readU32(bytes, offset + 4);\n if (hi > 0x1fffff)\n {\n throw new Error(\"CjsVtaFormat 64-bit offset exceeds the safe integer range.\");\n }\n return hi * 0x100000000 + lo;\n}\n\n/**\n * Parses header, grid table, offsets and metadata without touching payload.\n *\n * @param {Uint8Array} bytes Whole VTA file.\n * @returns {object} Structural description.\n */\nexport function inspectBytes(bytes)\n{\n if (bytes.length < HEADER_SIZE || bytes[0] !== 0x56 || bytes[1] !== 0x54 || bytes[2] !== 0x41 || bytes[3] !== 0)\n {\n throw new Error(\"CjsVtaFormat input does not carry the VTA signature.\");\n }\n const version = readU32(bytes, 4);\n if (version !== VTA_VERSION)\n {\n throw new Error(`CjsVtaFormat unsupported VTA version ${version}; only version ${VTA_VERSION} exists.`);\n }\n\n const\n gridCount = readU32(bytes, 8),\n frameCount = readU32(bytes, 12),\n metadataCount = readU32(bytes, 16),\n dataEnd = readU64(bytes, 24);\n\n let offset = HEADER_SIZE;\n const grids = [];\n for (let i = 0; i < gridCount; i++)\n {\n const nameBytes = bytes.subarray(offset + 20, offset + 20 + GRID_NAME_SIZE);\n let nameEnd = 0;\n while (nameEnd < GRID_NAME_SIZE && nameBytes[nameEnd] !== 0) nameEnd++;\n grids.push({\n format: readU32(bytes, offset),\n encoding: readU32(bytes, offset + 4),\n width: readU32(bytes, offset + 8),\n height: readU32(bytes, offset + 12),\n depth: readU32(bytes, offset + 16),\n name: textDecoder.decode(nameBytes.subarray(0, nameEnd))\n });\n offset += GRID_INFO_SIZE;\n }\n\n const offsets = new Array(frameCount * gridCount);\n for (let i = 0; i < offsets.length; i++, offset += 8)\n {\n offsets[i] = readU64(bytes, offset);\n }\n\n const metadata = {};\n for (let i = 0; i < metadataCount; i++)\n {\n const keyLength = readU32(bytes, offset);\n offset += 4;\n const key = textDecoder.decode(bytes.subarray(offset, offset + keyLength));\n offset += keyLength;\n const valueLength = readU32(bytes, offset);\n offset += 4;\n metadata[key] = textDecoder.decode(bytes.subarray(offset, offset + valueLength));\n offset += valueLength;\n }\n\n if (dataEnd > bytes.length)\n {\n throw new Error(`CjsVtaFormat dataEnd ${dataEnd} exceeds the ${bytes.length}-byte input.`);\n }\n\n return { version, gridCount, frameCount, metadataCount, dataEnd, grids, offsets, metadata };\n}\n\nfunction bytesPerPixel(format)\n{\n const bpp = BYTES_PER_PIXEL[format];\n if (!bpp)\n {\n throw new Error(`CjsVtaFormat pixel format ${format} has no byte size registered; Carbon only writes R8_UNORM (61).`);\n }\n return bpp;\n}\n\nfunction selectGrids(description, grid)\n{\n if (grid === null) return description.grids.map((info, index) => ({ info, index }));\n if (typeof grid === \"string\")\n {\n const index = description.grids.findIndex(info => info.name === grid);\n if (index === -1)\n {\n throw new Error(`CjsVtaFormat has no grid named \"${grid}\"; grids: ${description.grids.map(g => g.name).join(\", \")}.`);\n }\n return [ { info: description.grids[index], index } ];\n }\n if (grid < 0 || grid >= description.grids.length)\n {\n throw new Error(`CjsVtaFormat grid index ${grid} is out of range 0..${description.grids.length - 1}.`);\n }\n return [ { info: description.grids[grid], index: grid } ];\n}\n\n/**\n * Decodes voxel frames for the selected grids.\n *\n * Frames of a grid are a DELTA CHAIN (frame N needs 0..N-1 decoded in\n * order), so reaching frame N always decodes from frame 0, exactly as\n * Carbon's FrameDecoder Restart/AdvanceFrame contract does.\n *\n * @param {Uint8Array} bytes Whole VTA file.\n * @param {object} values Normalized read options.\n * @returns {Promise<object>} Decoded volume payload.\n */\nexport async function decodeVolumes(bytes, values)\n{\n const description = inspectBytes(bytes);\n const lastFrame = values.allFrames ? description.frameCount - 1 : values.frame;\n if (description.frameCount === 0)\n {\n throw new Error(\"CjsVtaFormat file declares zero frames.\");\n }\n if (lastFrame >= description.frameCount)\n {\n throw new Error(`CjsVtaFormat frame ${lastFrame} is out of range 0..${description.frameCount - 1}.`);\n }\n\n const grids = [];\n for (const { info, index } of selectGrids(description, values.grid))\n {\n const\n voxelCount = info.width * info.height * info.depth * bytesPerPixel(info.format),\n working = new Uint8Array(voxelCount),\n frames = [];\n\n for (let frame = 0; frame <= lastFrame; frame++)\n {\n const\n blobIndex = frame * description.gridCount + index,\n begin = description.offsets[blobIndex],\n end = blobIndex + 1 === description.offsets.length\n ? description.dataEnd\n : description.offsets[blobIndex + 1],\n inflated = await decompressBytes(bytes.subarray(begin, end), \"deflate\");\n\n if (info.encoding === VTA_ENCODING.NONE)\n {\n if (inflated.length !== voxelCount)\n {\n throw new Error(`CjsVtaFormat frame ${frame} inflated to ${inflated.length} bytes; expected ${voxelCount}.`);\n }\n working.set(inflated);\n }\n else\n {\n decodeRle7(inflated, working, frame === 0 ? null : working);\n }\n\n if (values.allFrames || frame === lastFrame)\n {\n frames.push(new Uint8Array(working));\n }\n }\n\n grids.push({\n name: info.name,\n format: \"r8unorm\",\n encoding: info.encoding,\n width: info.width,\n height: info.height,\n depth: info.depth,\n firstFrame: values.allFrames ? 0 : lastFrame,\n frames\n });\n }\n\n return {\n sourceFormat: \"vta\",\n version: description.version,\n gridCount: description.gridCount,\n frameCount: description.frameCount,\n metadata: description.metadata,\n grids\n };\n}\n\n/** Inspect entry shared by the instance and static surfaces. */\nexport function inspectWithValues(input)\n{\n return inspectBytes(asUint8Array(input, \"VTA input\"));\n}\n\n/** Cheap support report: signature, version, and pixel-format coverage. */\nexport function probeSupportWithValues(input)\n{\n const bytes = asUint8Array(input, \"VTA input\");\n if (!isVTA(bytes)) return { supported: false, reason: \"not a VTA version-1 file\" };\n try\n {\n const description = inspectBytes(bytes);\n for (const grid of description.grids) bytesPerPixel(grid.format);\n return { supported: true, gridCount: description.gridCount, frameCount: description.frameCount };\n }\n catch (error)\n {\n return { supported: false, reason: error.message };\n }\n}\n\n/** Synchronous read: raw passthrough and structural debug only. */\nexport function readWithValues(input, values)\n{\n const bytes = asUint8Array(input, \"VTA input\");\n if (values.emit === OUTPUT_RAW)\n {\n return { sourceFormat: \"vta\", emit: OUTPUT_RAW, bytes };\n }\n if (values.emit === OUTPUT_JSON || values.emit === OUTPUT_VTA_JSON)\n {\n return { sourceFormat: \"vta\", emit: OUTPUT_VTA_JSON, ...inspectBytes(bytes) };\n }\n const error = new Error(\"CjsVtaFormat volume decode is asynchronous (zlib inflate); use ReadAsync.\");\n error.code = \"CJS_FORMAT_OUTPUT_ASYNC_ONLY\";\n throw error;\n}\n\n/** Asynchronous read: everything, including decoded volumes. */\nexport async function readAsyncWithValues(input, values)\n{\n if (values.emit !== OUTPUT_VOLUME)\n {\n return readWithValues(input, values);\n }\n return decodeVolumes(asUint8Array(input, \"VTA input\"), values);\n}\n\n/** Convert format output into JSON-compatible debug data. */\nexport function toJsonValue(value)\n{\n if (value instanceof Uint8Array)\n {\n return { byteLength: value.byteLength };\n }\n if (Array.isArray(value)) return value.map(toJsonValue);\n if (value && typeof value === \"object\")\n {\n const output = {};\n for (const [ key, entry ] of Object.entries(value)) output[key] = toJsonValue(entry);\n return output;\n }\n return value;\n}\n"],"names":["OUTPUT_VOLUME","OUTPUT_RAW","OUTPUT_JSON","OUTPUT_VTA_JSON","HEADER_SIZE","GRID_INFO_SIZE","GRID_NAME_SIZE","VTA_VERSION","VTA_ENCODING","Object","freeze","NONE","RLE7","RLE7_5","RLE6","BYTES_PER_PIXEL","DEFAULT_VALUES","emit","frame","allFrames","grid","textDecoder","TextDecoder","fatal","isVTA","bytes","length","readU32","normalizeValues","base","options","readerName","TypeError","key","keys","values","includes","Number","isInteger","offset","readU64","lo","hi","Error","inspectBytes","version","gridCount","frameCount","metadataCount","dataEnd","grids","i","nameBytes","subarray","nameEnd","push","format","encoding","width","height","depth","name","decode","offsets","Array","metadata","keyLength","valueLength","bytesPerPixel","bpp","selectGrids","description","map","info","index","findIndex","g","join","decodeVolumes","lastFrame","voxelCount","working","Uint8Array","frames","blobIndex","begin","end","inflated","decompressBytes","set","decodeRle7","firstFrame","sourceFormat","inspectWithValues","input","asUint8Array","probeSupportWithValues","supported","reason","error","message","readWithValues","code","readAsyncWithValues","toJsonValue","value","byteLength","isArray","output","entry","entries"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helpers.js","sources":["../../../../../../src/resource/formats/vta/core/helpers.js"],"sourcesContent":["import { toJsonWithByteSummary as toJsonValue } from \"../../../format/jsonPolicies.js\";\nimport { asUint8Array } from \"#utils/bytes\";\nimport { decompressBytes } from \"#utils/compression\";\nimport { decodeRle7 } from \"./rle7.js\";\n\n/**\n * VTA - Carbon's Volume Texture Animation container.\n *\n * A multi-grid, multi-frame, zlib-compressed animated dense 3D texture,\n * produced by rasterizing NanoVDB grids to R8 volumes. Authority is\n * Carbon's imageio VtaHandler (reader/writer are symmetric); the layout,\n * decode rules and consumption paths are recorded with file:line citations\n * in the org docs page \"VTA format spec\" (research, 2026-09-06). Carbon's\n * static texture path collapses a VTA to grid 0 / frame 0 as a true 3D\n * texture; Tr2TextureAnimation streams frames per grid.\n */\n\nexport const OUTPUT_VOLUME = \"volume\";\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_JSON = \"json\";\nexport const OUTPUT_VTA_JSON = \"vtaJson\";\n\nconst HEADER_SIZE = 32;\nconst GRID_INFO_SIZE = 52;\nconst GRID_NAME_SIZE = 32;\nexport const VTA_VERSION = 1;\n\n/** Grid payload encodings (VtaHandler.h:17-23). One decoder serves 1/2/3. */\nexport const VTA_ENCODING = Object.freeze({\n NONE: 0,\n RLE7: 1,\n RLE7_5: 2,\n RLE6: 3\n});\n\n/**\n * Bytes per voxel for the pixel formats a VTA can carry. Carbon's writer\n * only ever emits PIXEL_FORMAT_R8_UNORM (61) - IsSaveSupported rejects\n * everything else - but the field is read, not assumed, and an unknown\n * format is an error rather than a guess.\n */\nconst BYTES_PER_PIXEL = Object.freeze({\n 61: 1 // PIXEL_FORMAT_R8_UNORM\n});\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_RAW,\n frame: 0,\n allFrames: false,\n grid: null\n});\n\nconst textDecoder = new TextDecoder(\"utf-8\", { fatal: false });\n\n/** Tests whether bytes carry the VTA signature and supported version. */\nexport function isVTA(bytes)\n{\n return bytes.length >= HEADER_SIZE\n && bytes[0] === 0x56 && bytes[1] === 0x54 && bytes[2] === 0x41 && bytes[3] === 0\n && readU32(bytes, 4) === VTA_VERSION;\n}\n\n/** Normalizes and validates VTA read options over a base profile. */\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsVtaFormat\")\n{\n if (!options || typeof options !== \"object\")\n {\n throw new TypeError(`${readerName} options must be an object`);\n }\n for (const key of Object.keys(options))\n {\n if (!(key in DEFAULT_VALUES)) throw new TypeError(`${readerName} unknown option \"${key}\"`);\n }\n\n const values = { ...base, ...options };\n\n if (![ OUTPUT_VOLUME, OUTPUT_RAW, OUTPUT_JSON, OUTPUT_VTA_JSON ].includes(values.emit))\n {\n throw new TypeError(`${readerName} unknown emit value \"${values.emit}\"`);\n }\n if (!Number.isInteger(values.frame) || values.frame < 0)\n {\n throw new TypeError(`${readerName} frame option must be a non-negative integer`);\n }\n if (typeof values.allFrames !== \"boolean\")\n {\n throw new TypeError(`${readerName} allFrames option must be true or false`);\n }\n if (values.grid !== null && typeof values.grid !== \"string\" && !Number.isInteger(values.grid))\n {\n throw new TypeError(`${readerName} grid option must be null, a grid name, or a grid index`);\n }\n return values;\n}\n\nfunction readU32(bytes, offset)\n{\n return (bytes[offset] | (bytes[offset + 1] << 8) | (bytes[offset + 2] << 16) | (bytes[offset + 3] << 24)) >>> 0;\n}\n\nfunction readU64(bytes, offset)\n{\n const\n lo = readU32(bytes, offset),\n hi = readU32(bytes, offset + 4);\n if (hi > 0x1fffff)\n {\n throw new Error(\"CjsVtaFormat 64-bit offset exceeds the safe integer range.\");\n }\n return hi * 0x100000000 + lo;\n}\n\n/**\n * Parses header, grid table, offsets and metadata without touching payload.\n *\n * @param {Uint8Array} bytes Whole VTA file.\n * @returns {object} Structural description.\n */\nexport function inspectBytes(bytes)\n{\n if (bytes.length < HEADER_SIZE || bytes[0] !== 0x56 || bytes[1] !== 0x54 || bytes[2] !== 0x41 || bytes[3] !== 0)\n {\n throw new Error(\"CjsVtaFormat input does not carry the VTA signature.\");\n }\n const version = readU32(bytes, 4);\n if (version !== VTA_VERSION)\n {\n throw new Error(`CjsVtaFormat unsupported VTA version ${version}; only version ${VTA_VERSION} exists.`);\n }\n\n const\n gridCount = readU32(bytes, 8),\n frameCount = readU32(bytes, 12),\n metadataCount = readU32(bytes, 16),\n dataEnd = readU64(bytes, 24);\n\n let offset = HEADER_SIZE;\n const grids = [];\n for (let i = 0; i < gridCount; i++)\n {\n const nameBytes = bytes.subarray(offset + 20, offset + 20 + GRID_NAME_SIZE);\n let nameEnd = 0;\n while (nameEnd < GRID_NAME_SIZE && nameBytes[nameEnd] !== 0) nameEnd++;\n grids.push({\n format: readU32(bytes, offset),\n encoding: readU32(bytes, offset + 4),\n width: readU32(bytes, offset + 8),\n height: readU32(bytes, offset + 12),\n depth: readU32(bytes, offset + 16),\n name: textDecoder.decode(nameBytes.subarray(0, nameEnd))\n });\n offset += GRID_INFO_SIZE;\n }\n\n const offsets = new Array(frameCount * gridCount);\n for (let i = 0; i < offsets.length; i++, offset += 8)\n {\n offsets[i] = readU64(bytes, offset);\n }\n\n const metadata = {};\n for (let i = 0; i < metadataCount; i++)\n {\n const keyLength = readU32(bytes, offset);\n offset += 4;\n const key = textDecoder.decode(bytes.subarray(offset, offset + keyLength));\n offset += keyLength;\n const valueLength = readU32(bytes, offset);\n offset += 4;\n metadata[key] = textDecoder.decode(bytes.subarray(offset, offset + valueLength));\n offset += valueLength;\n }\n\n if (dataEnd > bytes.length)\n {\n throw new Error(`CjsVtaFormat dataEnd ${dataEnd} exceeds the ${bytes.length}-byte input.`);\n }\n\n return { version, gridCount, frameCount, metadataCount, dataEnd, grids, offsets, metadata };\n}\n\nfunction bytesPerPixel(format)\n{\n const bpp = BYTES_PER_PIXEL[format];\n if (!bpp)\n {\n throw new Error(`CjsVtaFormat pixel format ${format} has no byte size registered; Carbon only writes R8_UNORM (61).`);\n }\n return bpp;\n}\n\nfunction selectGrids(description, grid)\n{\n if (grid === null) return description.grids.map((info, index) => ({ info, index }));\n if (typeof grid === \"string\")\n {\n const index = description.grids.findIndex(info => info.name === grid);\n if (index === -1)\n {\n throw new Error(`CjsVtaFormat has no grid named \"${grid}\"; grids: ${description.grids.map(g => g.name).join(\", \")}.`);\n }\n return [ { info: description.grids[index], index } ];\n }\n if (grid < 0 || grid >= description.grids.length)\n {\n throw new Error(`CjsVtaFormat grid index ${grid} is out of range 0..${description.grids.length - 1}.`);\n }\n return [ { info: description.grids[grid], index: grid } ];\n}\n\n/**\n * Decodes voxel frames for the selected grids.\n *\n * Frames of a grid are a DELTA CHAIN (frame N needs 0..N-1 decoded in\n * order), so reaching frame N always decodes from frame 0, exactly as\n * Carbon's FrameDecoder Restart/AdvanceFrame contract does.\n *\n * @param {Uint8Array} bytes Whole VTA file.\n * @param {object} values Normalized read options.\n * @returns {Promise<object>} Decoded volume payload.\n */\nexport async function decodeVolumes(bytes, values)\n{\n const description = inspectBytes(bytes);\n const lastFrame = values.allFrames ? description.frameCount - 1 : values.frame;\n if (description.frameCount === 0)\n {\n throw new Error(\"CjsVtaFormat file declares zero frames.\");\n }\n if (lastFrame >= description.frameCount)\n {\n throw new Error(`CjsVtaFormat frame ${lastFrame} is out of range 0..${description.frameCount - 1}.`);\n }\n\n const grids = [];\n for (const { info, index } of selectGrids(description, values.grid))\n {\n const\n voxelCount = info.width * info.height * info.depth * bytesPerPixel(info.format),\n working = new Uint8Array(voxelCount),\n frames = [];\n\n for (let frame = 0; frame <= lastFrame; frame++)\n {\n const\n blobIndex = frame * description.gridCount + index,\n begin = description.offsets[blobIndex],\n end = blobIndex + 1 === description.offsets.length\n ? description.dataEnd\n : description.offsets[blobIndex + 1],\n inflated = await decompressBytes(bytes.subarray(begin, end), \"deflate\");\n\n if (info.encoding === VTA_ENCODING.NONE)\n {\n if (inflated.length !== voxelCount)\n {\n throw new Error(`CjsVtaFormat frame ${frame} inflated to ${inflated.length} bytes; expected ${voxelCount}.`);\n }\n working.set(inflated);\n }\n else\n {\n decodeRle7(inflated, working, frame === 0 ? null : working);\n }\n\n if (values.allFrames || frame === lastFrame)\n {\n frames.push(new Uint8Array(working));\n }\n }\n\n grids.push({\n name: info.name,\n format: \"r8unorm\",\n encoding: info.encoding,\n width: info.width,\n height: info.height,\n depth: info.depth,\n firstFrame: values.allFrames ? 0 : lastFrame,\n frames\n });\n }\n\n return {\n sourceFormat: \"vta\",\n version: description.version,\n gridCount: description.gridCount,\n frameCount: description.frameCount,\n metadata: description.metadata,\n grids\n };\n}\n\n/** Inspect entry shared by the instance and static surfaces. */\nexport function inspectWithValues(input)\n{\n return inspectBytes(asUint8Array(input, \"VTA input\"));\n}\n\n/** Cheap support report: signature, version, and pixel-format coverage. */\nexport function probeSupportWithValues(input)\n{\n const bytes = asUint8Array(input, \"VTA input\");\n if (!isVTA(bytes)) return { supported: false, reason: \"not a VTA version-1 file\" };\n try\n {\n const description = inspectBytes(bytes);\n for (const grid of description.grids) bytesPerPixel(grid.format);\n return { supported: true, gridCount: description.gridCount, frameCount: description.frameCount };\n }\n catch (error)\n {\n return { supported: false, reason: error.message };\n }\n}\n\n/** Synchronous read: raw passthrough and structural debug only. */\nexport function readWithValues(input, values)\n{\n const bytes = asUint8Array(input, \"VTA input\");\n if (values.emit === OUTPUT_RAW)\n {\n return { sourceFormat: \"vta\", emit: OUTPUT_RAW, bytes };\n }\n if (values.emit === OUTPUT_JSON || values.emit === OUTPUT_VTA_JSON)\n {\n return { sourceFormat: \"vta\", emit: OUTPUT_VTA_JSON, ...inspectBytes(bytes) };\n }\n const error = new Error(\"CjsVtaFormat volume decode is asynchronous (zlib inflate); use ReadAsync.\");\n error.code = \"CJS_FORMAT_OUTPUT_ASYNC_ONLY\";\n throw error;\n}\n\n/** Asynchronous read: everything, including decoded volumes. */\nexport async function readAsyncWithValues(input, values)\n{\n if (values.emit !== OUTPUT_VOLUME)\n {\n return readWithValues(input, values);\n }\n return decodeVolumes(asUint8Array(input, \"VTA input\"), values);\n}\n\n/** Convert format output into JSON-compatible debug data. */\n/** The shared JSON policy for this reader, under the name its callers use. */\nexport { toJsonValue };\n"],"names":["OUTPUT_VOLUME","OUTPUT_RAW","OUTPUT_JSON","OUTPUT_VTA_JSON","HEADER_SIZE","GRID_INFO_SIZE","GRID_NAME_SIZE","VTA_VERSION","VTA_ENCODING","Object","freeze","NONE","RLE7","RLE7_5","RLE6","BYTES_PER_PIXEL","DEFAULT_VALUES","emit","frame","allFrames","grid","textDecoder","TextDecoder","fatal","isVTA","bytes","length","readU32","normalizeValues","base","options","readerName","TypeError","key","keys","values","includes","Number","isInteger","offset","readU64","lo","hi","Error","inspectBytes","version","gridCount","frameCount","metadataCount","dataEnd","grids","i","nameBytes","subarray","nameEnd","push","format","encoding","width","height","depth","name","decode","offsets","Array","metadata","keyLength","valueLength","bytesPerPixel","bpp","selectGrids","description","map","info","index","findIndex","g","join","decodeVolumes","lastFrame","voxelCount","working","Uint8Array","frames","blobIndex","begin","end","inflated","decompressBytes","set","decodeRle7","firstFrame","sourceFormat","inspectWithValues","input","asUint8Array","probeSupportWithValues","supported","reason","error","message","readWithValues","code","readAsyncWithValues"],"mappings":"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"}
|