@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CjsCmfFormat.js","sources":["../../../../../src/resource/formats/cmf/CjsCmfFormat.js"],"sourcesContent":["import { CjsFormat } from \"../../format/CjsFormat.js\";\r\n/**\r\n * Exposed CarbonEngineJS-facing CMF format class.\r\n *\r\n * CMF is expected to become the common CarbonEngineJS geometry container, so\r\n * this public wrapper keeps parsing details under core/ and exposes CMF-native\r\n * data by default.\r\n */\r\n\r\nimport { packGraphBuffers } from \"./core/pack.js\";\nimport { buildCmfFromShared } from \"./core/shared.js\";\r\nimport { writeCmf, writeCmfAsync } from \"./core/writer.js\";\r\nimport {\r\n CLASS_KEYS,\r\n DEFAULT_VALUES,\r\n OUTPUT_CMF,\r\n OUTPUT_CMF_JSON,\r\n OUTPUT_GR2,\r\n OUTPUT_JSON,\r\n OUTPUT_NATIVE,\r\n OUTPUT_RAW,\r\n OUTPUT_SHARED,\r\n inspectRawCmfResult,\r\n loadNativeWithValues,\r\n loadSharedWithValues,\r\n normalizeValues,\r\n readRawInput,\r\n readRawInputAsync,\r\n readWithValues,\r\n readWithValuesAsync,\r\n toJsonValue,\r\n validateClass,\r\n validateClassKey\r\n} from \"./core/helpers.js\";\r\n\r\n/**\r\n * CarbonEngineJS-facing CMF reader.\r\n *\r\n * The Cjs prefix marks this as a JavaScript format/construction boundary. It\r\n * can load CMF files, load CMF-native JSON, construct CMF-native data from\r\n * shared geometry, emit shared geometry when requested, or hydrate\r\n * caller-supplied CarbonEngineJS-style classes.\r\n */\r\nexport class CjsCmfFormat extends CjsFormat\r\n{\r\n #emit = DEFAULT_VALUES.emit;\r\n #validateCrc = DEFAULT_VALUES.validateCrc;\r\n #decodeBuffers = DEFAULT_VALUES.decodeBuffers;\r\n #classes = {};\r\n\r\n /**\r\n * Create a reusable format profile.\r\n *\r\n * @param {object} [options] Default format/build values.\r\n */\r\n constructor(options = {})\r\n {\r\n super();\r\n this.SetValues(options);\r\n }\r\n\r\n /**\r\n * Set format values for this reusable profile.\r\n *\r\n * @param {object} [options] Values to merge into the profile.\r\n * @returns {CjsCmfFormat} This format profile.\r\n */\r\n SetValues(options = {})\r\n {\r\n const values = normalizeValues(this.GetValues(), options);\r\n\r\n this.#emit = values.emit;\r\n this.#validateCrc = values.validateCrc;\r\n this.#decodeBuffers = values.decodeBuffers;\r\n this.#classes = values.classes;\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Get this profile's current values, optionally with per-call overrides.\r\n *\r\n * @param {object} [options] Optional values to merge into a copy.\r\n * @returns {object} A copy of the effective values.\r\n */\r\n GetValues(options = {})\r\n {\r\n return normalizeValues({\r\n emit: this.#emit,\r\n validateCrc: this.#validateCrc,\r\n decodeBuffers: this.#decodeBuffers,\r\n classes: this.#classes\r\n }, options);\r\n }\r\n\r\n /**\r\n * Set multiple CMF JSON node constructors for this profile.\r\n *\r\n * @param {object} [classes] Map of node class keys to constructors.\r\n * @returns {CjsCmfFormat} This format profile.\r\n */\r\n SetClasses(classes = {})\r\n {\r\n return this.SetValues({ classes });\r\n }\r\n\r\n /**\r\n * Set a CMF JSON node constructor for this profile.\r\n *\r\n * @param {string} type Node class key.\r\n * @param {Function|null|undefined} Class Constructor to use, or nullish to delete.\r\n * @returns {CjsCmfFormat} This format profile.\r\n */\r\n SetClass(type, Class)\r\n {\r\n validateClassKey(type);\r\n if (Class === null || Class === undefined)\r\n {\r\n delete this.#classes[type];\r\n return this;\r\n }\r\n\r\n validateClass(type, Class);\r\n this.#classes = { ...this.#classes, [type]: Class };\r\n return this;\r\n }\r\n\r\n /**\r\n * Get a configured CMF JSON node constructor.\r\n *\r\n * @param {string} type Node class key.\r\n * @returns {Function|undefined}\r\n */\r\n GetClass(type)\r\n {\r\n validateClassKey(type);\r\n return this.#classes[type];\r\n }\r\n\r\n /**\r\n * Whether this reader has a constructor for a CMF JSON node key.\r\n *\r\n * @param {string} type Node class key.\r\n * @returns {boolean}\r\n */\r\n HasClass(type)\r\n {\r\n return !!this.GetClass(type);\r\n }\r\n\r\n /**\r\n * Parse a .cmf buffer and return CMF-native JSON by default, shared\r\n * geometry when `emit` is \"shared\", or raw parsed data when `emit` is\r\n * \"raw\".\r\n *\r\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\r\n * @param {object} [options] Per-call values.\r\n * @returns {object}\r\n */\r\n Read(input, options = {})\r\n {\r\n return readWithValues(this, input, this.GetValues(options));\r\n }\r\n\r\n /**\r\n * Load CMF-native JSON. Shared geometry uses LoadShared.\r\n *\r\n * @param {object} input CMF-native JSON root.\r\n * @param {object} [options] Per-call values.\r\n * @returns {object}\r\n */\r\n Load(input, options = {})\r\n {\r\n return loadNativeWithValues(input, this.GetValues(options));\r\n }\r\n\r\n /**\r\n * Build CMF-native JSON from shared CarbonEngineJS geometry.\r\n *\r\n * @param {object} input Shared geometry root or mesh.\r\n * @param {object} [options] Per-call values.\r\n * @returns {object}\r\n */\r\n LoadShared(input, options = {})\r\n {\r\n return loadSharedWithValues(input, this.GetValues(options));\r\n }\r\n\r\n /**\r\n * Parse a .cmf buffer and emit the shared deinterleaved mesh graph.\r\n *\r\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\r\n * @param {object} [options] Per-call values.\r\n * @returns {object}\r\n */\r\n ReadShared(input, options = {})\r\n {\r\n return this.Read(input, { ...options, emit: OUTPUT_SHARED });\r\n }\r\n\r\n /**\r\n * Parse a .cmf buffer with async meshoptimizer initialization support.\r\n *\r\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\r\n * @param {object} [options] Per-call values.\r\n * @returns {Promise<object>}\r\n */\r\n async ReadAsync(input, options = {})\r\n {\r\n return readWithValuesAsync(this, input, this.GetValues(options));\r\n }\r\n\r\n /**\r\n * Parse a .cmf buffer asynchronously and emit the shared deinterleaved mesh graph.\r\n *\r\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\r\n * @param {object} [options] Per-call values.\r\n * @returns {Promise<object>}\r\n */\r\n async ReadSharedAsync(input, options = {})\r\n {\r\n return this.ReadAsync(input, { ...options, emit: OUTPUT_SHARED });\r\n }\r\n\r\n /**\r\n * Parse a .cmf buffer into the raw parsed CMF graph.\r\n *\r\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\r\n * @param {object} [options] Per-call values.\r\n * @returns {object}\r\n */\r\n ReadRaw(input, options = {})\r\n {\r\n return readRawInput(input, this.GetValues(options));\r\n }\r\n\r\n /**\r\n * Parse a .cmf buffer into the raw parsed CMF graph with async\r\n * meshoptimizer initialization support.\r\n *\r\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\r\n * @param {object} [options] Per-call values.\r\n * @returns {Promise<object>}\r\n */\r\n async ReadRawAsync(input, options = {})\r\n {\r\n return readRawInputAsync(input, this.GetValues(options));\r\n }\r\n\r\n /**\r\n * Return a stable, lightweight summary for a CMF buffer or raw result.\r\n *\r\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\r\n * @param {object} [options] Per-call values.\r\n * @returns {object}\r\n */\r\n Inspect(input, options = {})\r\n {\r\n return inspectRawCmfResult(input, this.GetValues(options));\r\n }\r\n\r\n /**\r\n * Convert format output to plain JSON-compatible data.\r\n *\r\n * @param {object} value Format output to convert.\r\n * @returns {any} Plain JSON-compatible data.\r\n */\r\n ToJSON(value)\r\n {\r\n return toJsonValue(value);\r\n }\r\n\r\n /**\r\n * Serialize a CMF-native graph to binary .cmf bytes without compression.\r\n *\r\n * Use WriteAsync for meshoptimizer-compressed GPU sections. The graph\r\n * shape matches Read output: meshes/skeletons/animations plus optional\r\n * metadata and a `buffers` list supplying uncompressed bytes per\r\n * BufferView index.\r\n *\r\n * @param {object} graph CMF-native graph.\r\n * @param {object} [options] Writer options (`compress`).\r\n * @returns {Uint8Array} Complete .cmf file bytes.\r\n */\r\n Write(graph, options = {})\r\n {\r\n return writeCmf(graph, options);\r\n }\r\n\r\n /**\r\n * Serialize a CMF-native graph to binary .cmf bytes with meshoptimizer\r\n * compression enabled by default.\r\n *\r\n * @param {object} graph CMF-native graph.\r\n * @param {object} [options] Writer options (`compress`, default true).\r\n * @returns {Promise<Uint8Array>} Complete .cmf file bytes.\r\n */\r\n async WriteAsync(graph, options = {})\r\n {\r\n return writeCmfAsync(graph, options);\r\n }\r\n\r\n /**\r\n * Serialize shared CarbonEngineJS geometry (e.g. from the GR2/OBJ/glTF\r\n * readers) straight to binary .cmf bytes without compression.\r\n *\r\n * Channels are interleaved into GPU buffers per the generated\r\n * declaration. Skeletons/animations must already be CMF-native shaped.\r\n *\r\n * @param {object} input Shared geometry root or mesh.\r\n * @param {object} [options] Writer options (`compress`).\r\n * @returns {Uint8Array} Complete .cmf file bytes.\r\n */\r\n WriteShared(input, options = {})\r\n {\r\n return CjsCmfFormat.writeShared(input, options);\r\n }\r\n\r\n /**\r\n * Serialize shared CarbonEngineJS geometry to compressed .cmf bytes.\r\n *\r\n * @param {object} input Shared geometry root or mesh.\r\n * @param {object} [options] Writer options (`compress`, default true).\r\n * @returns {Promise<Uint8Array>} Complete .cmf file bytes.\r\n */\r\n async WriteSharedAsync(input, options = {})\r\n {\r\n return CjsCmfFormat.writeSharedAsync(input, options);\r\n }\r\n\r\n /**\r\n * Static one-shot read. Static methods use camelCase by convention.\r\n *\r\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\r\n * @param {object} [options] Reader values.\r\n * @returns {object}\r\n */\r\n static read(input, options = {})\r\n {\r\n return readWithValues(CjsCmfFormat, input, normalizeValues(DEFAULT_VALUES, options));\r\n }\r\n\r\n /**\r\n * Static one-shot CMF-native JSON load.\r\n *\r\n * @param {object} input CMF-native JSON root.\r\n * @param {object} [options] Reader values.\r\n * @returns {object}\r\n */\r\n static load(input, options = {})\r\n {\r\n return loadNativeWithValues(input, normalizeValues(DEFAULT_VALUES, options));\r\n }\r\n\r\n /**\r\n * Static one-shot shared geometry to CMF-native JSON construction.\r\n *\r\n * @param {object} input Shared geometry root or mesh.\r\n * @param {object} [options] Reader values.\r\n * @returns {object}\r\n */\r\n static loadShared(input, options = {})\r\n {\r\n return loadSharedWithValues(input, normalizeValues(DEFAULT_VALUES, options));\r\n }\r\n\r\n /**\r\n * Static one-shot read to shared geometry.\r\n *\r\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\r\n * @param {object} [options] Reader values.\r\n * @returns {object}\r\n */\r\n static readShared(input, options = {})\r\n {\r\n return CjsCmfFormat.read(input, { ...options, emit: OUTPUT_SHARED });\r\n }\r\n\r\n /**\r\n * Static one-shot async read.\r\n *\r\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\r\n * @param {object} [options] Reader values.\r\n * @returns {Promise<object>}\r\n */\r\n static async readAsync(input, options = {})\r\n {\r\n return readWithValuesAsync(CjsCmfFormat, input, normalizeValues(DEFAULT_VALUES, options));\r\n }\r\n\r\n /**\r\n * Static one-shot async read to shared geometry.\r\n *\r\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\r\n * @param {object} [options] Reader values.\r\n * @returns {Promise<object>}\r\n */\r\n static async readSharedAsync(input, options = {})\r\n {\r\n return CjsCmfFormat.readAsync(input, { ...options, emit: OUTPUT_SHARED });\r\n }\r\n\r\n /**\r\n * Static one-shot raw read.\r\n *\r\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\r\n * @param {object} [options] Reader values.\r\n * @returns {object}\r\n */\r\n static readRaw(input, options = {})\r\n {\r\n return readRawInput(input, normalizeValues(DEFAULT_VALUES, options));\r\n }\r\n\r\n /**\r\n * Static one-shot async raw read.\r\n *\r\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\r\n * @param {object} [options] Reader values.\r\n * @returns {Promise<object>}\r\n */\r\n static async readRawAsync(input, options = {})\r\n {\r\n return readRawInputAsync(input, normalizeValues(DEFAULT_VALUES, options));\r\n }\r\n\r\n /**\r\n * Static one-shot inspection.\r\n *\r\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\r\n * @param {object} [options] Reader values.\r\n * @returns {object}\r\n */\r\n static inspect(input, options = {})\r\n {\r\n return inspectRawCmfResult(input, normalizeValues(DEFAULT_VALUES, options));\r\n }\r\n\r\n /**\r\n * Static JSON-compatible conversion.\r\n *\r\n * @param {object} value Format output to convert.\r\n * @returns {any} Plain JSON-compatible data.\r\n */\r\n static toJSON(value)\r\n {\r\n return toJsonValue(value);\r\n }\r\n\r\n /**\r\n * Static one-shot binary write without compression.\r\n *\r\n * @param {object} graph CMF-native graph.\r\n * @param {object} [options] Writer options (`compress`).\r\n * @returns {Uint8Array} Complete .cmf file bytes.\r\n */\r\n static write(graph, options = {})\r\n {\r\n return writeCmf(graph, options);\r\n }\r\n\r\n /**\r\n * Static one-shot binary write with meshoptimizer compression enabled by\r\n * default.\r\n *\r\n * @param {object} graph CMF-native graph.\r\n * @param {object} [options] Writer options (`compress`, default true).\r\n * @returns {Promise<Uint8Array>} Complete .cmf file bytes.\r\n */\r\n static async writeAsync(graph, options = {})\r\n {\r\n return writeCmfAsync(graph, options);\r\n }\r\n\r\n /**\r\n * Static one-shot shared-geometry write without compression.\r\n *\r\n * Equivalent to `loadShared` + buffer packing + `write`; this is the\r\n * GR2/OBJ/glTF → CMF conversion entry point.\r\n *\r\n * @param {object} input Shared geometry root or mesh.\r\n * @param {object} [options] Writer options (`compress`).\r\n * @returns {Uint8Array} Complete .cmf file bytes.\r\n */\r\n static writeShared(input, options = {})\n {\n const packed = packGraphBuffers(buildCmfFromShared(input, options));\n return writeCmf({ ...packed.graph, buffers: packed.buffers }, options);\n }\r\n\r\n /**\r\n * Static one-shot shared-geometry write with meshoptimizer compression\r\n * enabled by default.\r\n *\r\n * @param {object} input Shared geometry root or mesh.\r\n * @param {object} [options] Writer options (`compress`, default true).\r\n * @returns {Promise<Uint8Array>} Complete .cmf file bytes.\r\n */\r\n static async writeSharedAsync(input, options = {})\n {\n const packed = packGraphBuffers(buildCmfFromShared(input, options));\n return writeCmfAsync({ ...packed.graph, buffers: packed.buffers }, options);\n }\r\n\r\n /**\r\n * Emit targets for this format (canonical frozen enum).\r\n */\r\n static Output = Object.freeze({\r\n JSON: OUTPUT_JSON,\r\n CMF: OUTPUT_CMF,\r\n CMF_JSON: OUTPUT_CMF_JSON,\r\n GR2: OUTPUT_GR2,\r\n NATIVE: OUTPUT_NATIVE,\r\n RAW: OUTPUT_RAW,\r\n SHARED: OUTPUT_SHARED\r\n });\r\n static CLASS_KEYS = CLASS_KEYS;\r\n static id = \"cmf\";\r\n static mediaTypes = Object.freeze([ \"geometry\" ]);\r\n static outputs = CjsFormat.defineOutputs({\r\n cmf: { default: true, decoded: true },\r\n gr2: { decoded: true },\r\n shared: { decoded: true },\r\n json: { role: \"debug\", payloadType: \"cmf\", decoded: true },\r\n cmfJson: { role: \"debug\", payloadType: \"cmf\", decoded: true },\r\n raw: { role: \"debug\", decoded: true }\r\n });\r\n static extensions = Object.freeze([ \".cmf\" ]);\r\n}\r\n\r\nexport default CjsCmfFormat;\r\n"],"names":["CjsCmfFormat","CjsFormat","DEFAULT_VALUES","emit","validateCrc","decodeBuffers","constructor","options","SetValues","values","normalizeValues","GetValues","classes","SetClasses","SetClass","type","Class","validateClassKey","undefined","validateClass","GetClass","HasClass","Read","input","readWithValues","Load","loadNativeWithValues","LoadShared","loadSharedWithValues","ReadShared","OUTPUT_SHARED","ReadAsync","readWithValuesAsync","ReadSharedAsync","ReadRaw","readRawInput","ReadRawAsync","readRawInputAsync","Inspect","inspectRawCmfResult","ToJSON","value","toJsonValue","Write","graph","writeCmf","WriteAsync","writeCmfAsync","WriteShared","writeShared","WriteSharedAsync","writeSharedAsync","read","load","loadShared","readShared","readAsync","readSharedAsync","readRaw","readRawAsync","inspect","toJSON","write","writeAsync","packed","packGraphBuffers","buildCmfFromShared","buffers","Output","Object","freeze","JSON","OUTPUT_JSON","CMF","OUTPUT_CMF","CMF_JSON","OUTPUT_CMF_JSON","GR2","OUTPUT_GR2","NATIVE","OUTPUT_NATIVE","RAW","OUTPUT_RAW","SHARED","CLASS_KEYS","id","mediaTypes","outputs","defineOutputs","cmf","default","decoded","gr2","shared","json","role","payloadType","cmfJson","raw","extensions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CjsCmfFormat.js","sources":["../../../../../src/resource/formats/cmf/CjsCmfFormat.js"],"sourcesContent":["import { CjsFormat } from \"../../format/CjsFormat.js\";\n/**\n * Exposed CarbonEngineJS-facing CMF format class.\n *\n * CMF is expected to become the common CarbonEngineJS geometry container, so\n * this public wrapper keeps parsing details under core/ and exposes CMF-native\n * data by default.\n */\n\nimport { packGraphBuffers } from \"./core/pack.js\";\nimport { buildCmfFromShared } from \"./core/shared.js\";\nimport { writeCmf, writeCmfAsync } from \"./core/writer.js\";\nimport {\n CLASS_KEYS,\n DEFAULT_VALUES,\n OUTPUT_CMF,\n OUTPUT_CMF_JSON,\n OUTPUT_GR2,\n OUTPUT_JSON,\n OUTPUT_NATIVE,\n OUTPUT_RAW,\n OUTPUT_SHARED,\n inspectRawCmfResult,\n loadNativeWithValues,\n loadSharedWithValues,\n normalizeValues,\n readRawInput,\n readRawInputAsync,\n readWithValues,\n readWithValuesAsync,\n toJsonValue,\n validateClass,\n validateClassKey\n} from \"./core/helpers.js\";\n\n/**\n * CarbonEngineJS-facing CMF reader.\n *\n * The Cjs prefix marks this as a JavaScript format/construction boundary. It\n * can load CMF files, load CMF-native JSON, construct CMF-native data from\n * shared geometry, emit shared geometry when requested, or hydrate\n * caller-supplied CarbonEngineJS-style classes.\n */\nexport class CjsCmfFormat extends CjsFormat\n{\n #emit = DEFAULT_VALUES.emit;\n #validateCrc = DEFAULT_VALUES.validateCrc;\n #decodeBuffers = DEFAULT_VALUES.decodeBuffers;\n #classes = {};\n\n /**\n * Create a reusable format profile.\n *\n * @param {object} [options] Default format/build values.\n */\n constructor(options = {})\n {\n super();\n this.SetValues(options);\n }\n\n /**\n * Set format values for this reusable profile.\n *\n * @param {object} [options] Values to merge into the profile.\n * @returns {CjsCmfFormat} This format profile.\n */\n SetValues(options = {})\n {\n const values = normalizeValues(this.GetValues(), options);\n\n this.#emit = values.emit;\n this.#validateCrc = values.validateCrc;\n this.#decodeBuffers = values.decodeBuffers;\n this.#classes = values.classes;\n\n return this;\n }\n\n /**\n * Get this profile's current values, optionally with per-call overrides.\n *\n * @param {object} [options] Optional values to merge into a copy.\n * @returns {object} A copy of the effective values.\n */\n GetValues(options = {})\n {\n return normalizeValues({\n emit: this.#emit,\n validateCrc: this.#validateCrc,\n decodeBuffers: this.#decodeBuffers,\n classes: this.#classes\n }, options);\n }\n\n /**\n * Set multiple CMF JSON node constructors for this profile.\n *\n * @param {object} [classes] Map of node class keys to constructors.\n * @returns {CjsCmfFormat} This format profile.\n */\n SetClasses(classes = {})\n {\n return this.SetValues({ classes });\n }\n\n /**\n * Set a CMF JSON node constructor for this profile.\n *\n * @param {string} type Node class key.\n * @param {Function|null|undefined} Class Constructor to use, or nullish to delete.\n * @returns {CjsCmfFormat} This format profile.\n */\n SetClass(type, Class)\n {\n validateClassKey(type);\n if (Class === null || Class === undefined)\n {\n delete this.#classes[type];\n return this;\n }\n\n validateClass(type, Class);\n this.#classes = { ...this.#classes, [type]: Class };\n return this;\n }\n\n /**\n * Get a configured CMF JSON node constructor.\n *\n * @param {string} type Node class key.\n * @returns {Function|undefined}\n */\n GetClass(type)\n {\n validateClassKey(type);\n return this.#classes[type];\n }\n\n /**\n * Whether this reader has a constructor for a CMF JSON node key.\n *\n * @param {string} type Node class key.\n * @returns {boolean}\n */\n HasClass(type)\n {\n return !!this.GetClass(type);\n }\n\n /**\n * Parse a .cmf buffer and return CMF-native JSON by default, shared\n * geometry when `emit` is \"shared\", or raw parsed data when `emit` is\n * \"raw\".\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Per-call values.\n * @returns {object}\n */\n Read(input, options = {})\n {\n return readWithValues(this, input, this.GetValues(options));\n }\n\n /**\n * Load CMF-native JSON. Shared geometry uses LoadShared.\n *\n * @param {object} input CMF-native JSON root.\n * @param {object} [options] Per-call values.\n * @returns {object}\n */\n Load(input, options = {})\n {\n return loadNativeWithValues(input, this.GetValues(options));\n }\n\n /**\n * Build CMF-native JSON from shared CarbonEngineJS geometry.\n *\n * @param {object} input Shared geometry root or mesh.\n * @param {object} [options] Per-call values.\n * @returns {object}\n */\n LoadShared(input, options = {})\n {\n return loadSharedWithValues(input, this.GetValues(options));\n }\n\n /**\n * Parse a .cmf buffer and emit the shared deinterleaved mesh graph.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Per-call values.\n * @returns {object}\n */\n ReadShared(input, options = {})\n {\n return this.Read(input, { ...options, emit: OUTPUT_SHARED });\n }\n\n /**\n * Parse a .cmf buffer with async meshoptimizer initialization support.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Per-call values.\n * @returns {Promise<object>}\n */\n async ReadAsync(input, options = {})\n {\n return readWithValuesAsync(this, input, this.GetValues(options));\n }\n\n /**\n * Parse a .cmf buffer asynchronously and emit the shared deinterleaved mesh graph.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Per-call values.\n * @returns {Promise<object>}\n */\n async ReadSharedAsync(input, options = {})\n {\n return this.ReadAsync(input, { ...options, emit: OUTPUT_SHARED });\n }\n\n /**\n * Parse a .cmf buffer into the raw parsed CMF graph.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Per-call values.\n * @returns {object}\n */\n ReadRaw(input, options = {})\n {\n return readRawInput(input, this.GetValues(options));\n }\n\n /**\n * Parse a .cmf buffer into the raw parsed CMF graph with async\n * meshoptimizer initialization support.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Per-call values.\n * @returns {Promise<object>}\n */\n async ReadRawAsync(input, options = {})\n {\n return readRawInputAsync(input, this.GetValues(options));\n }\n\n /**\n * Return a stable, lightweight summary for a CMF buffer or raw result.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Per-call values.\n * @returns {object}\n */\n Inspect(input, options = {})\n {\n return inspectRawCmfResult(input, this.GetValues(options));\n }\n\n /**\n * Convert format output to plain JSON-compatible data.\n *\n * @param {object} value Format output to convert.\n * @returns {any} Plain JSON-compatible data.\n */\n ToJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * Serialize a CMF-native graph to binary .cmf bytes without compression.\n *\n * Use WriteAsync for meshoptimizer-compressed GPU sections. The graph\n * shape matches Read output: meshes/skeletons/animations plus optional\n * metadata and a `buffers` list supplying uncompressed bytes per\n * BufferView index.\n *\n * @param {object} graph CMF-native graph.\n * @param {object} [options] Writer options (`compress`).\n * @returns {Uint8Array} Complete .cmf file bytes.\n */\n Write(graph, options = {})\n {\n return writeCmf(graph, options);\n }\n\n /**\n * Serialize a CMF-native graph to binary .cmf bytes with meshoptimizer\n * compression enabled by default.\n *\n * @param {object} graph CMF-native graph.\n * @param {object} [options] Writer options (`compress`, default true).\n * @returns {Promise<Uint8Array>} Complete .cmf file bytes.\n */\n async WriteAsync(graph, options = {})\n {\n return writeCmfAsync(graph, options);\n }\n\n /**\n * Serialize shared CarbonEngineJS geometry (e.g. from the GR2/OBJ/glTF\n * readers) straight to binary .cmf bytes without compression.\n *\n * Channels are interleaved into GPU buffers per the generated\n * declaration. Skeletons/animations must already be CMF-native shaped.\n *\n * @param {object} input Shared geometry root or mesh.\n * @param {object} [options] Writer options (`compress`).\n * @returns {Uint8Array} Complete .cmf file bytes.\n */\n WriteShared(input, options = {})\n {\n return CjsCmfFormat.writeShared(input, options);\n }\n\n /**\n * Serialize shared CarbonEngineJS geometry to compressed .cmf bytes.\n *\n * @param {object} input Shared geometry root or mesh.\n * @param {object} [options] Writer options (`compress`, default true).\n * @returns {Promise<Uint8Array>} Complete .cmf file bytes.\n */\n async WriteSharedAsync(input, options = {})\n {\n return CjsCmfFormat.writeSharedAsync(input, options);\n }\n\n /**\n * Static one-shot read. Static methods use camelCase by convention.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Reader values.\n * @returns {object}\n */\n static read(input, options = {})\n {\n return readWithValues(CjsCmfFormat, input, normalizeValues(DEFAULT_VALUES, options));\n }\n\n /**\n * Static one-shot CMF-native JSON load.\n *\n * @param {object} input CMF-native JSON root.\n * @param {object} [options] Reader values.\n * @returns {object}\n */\n static load(input, options = {})\n {\n return loadNativeWithValues(input, normalizeValues(DEFAULT_VALUES, options));\n }\n\n /**\n * Static one-shot shared geometry to CMF-native JSON construction.\n *\n * @param {object} input Shared geometry root or mesh.\n * @param {object} [options] Reader values.\n * @returns {object}\n */\n static loadShared(input, options = {})\n {\n return loadSharedWithValues(input, normalizeValues(DEFAULT_VALUES, options));\n }\n\n /**\n * Static one-shot read to shared geometry.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Reader values.\n * @returns {object}\n */\n static readShared(input, options = {})\n {\n return CjsCmfFormat.read(input, { ...options, emit: OUTPUT_SHARED });\n }\n\n /**\n * Static one-shot async read.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Reader values.\n * @returns {Promise<object>}\n */\n static async readAsync(input, options = {})\n {\n return readWithValuesAsync(CjsCmfFormat, input, normalizeValues(DEFAULT_VALUES, options));\n }\n\n /**\n * Static one-shot async read to shared geometry.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Reader values.\n * @returns {Promise<object>}\n */\n static async readSharedAsync(input, options = {})\n {\n return CjsCmfFormat.readAsync(input, { ...options, emit: OUTPUT_SHARED });\n }\n\n /**\n * Static one-shot raw read.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Reader values.\n * @returns {object}\n */\n static readRaw(input, options = {})\n {\n return readRawInput(input, normalizeValues(DEFAULT_VALUES, options));\n }\n\n /**\n * Static one-shot async raw read.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Reader values.\n * @returns {Promise<object>}\n */\n static async readRawAsync(input, options = {})\n {\n return readRawInputAsync(input, normalizeValues(DEFAULT_VALUES, options));\n }\n\n /**\n * Static one-shot inspection.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Reader values.\n * @returns {object}\n */\n static inspect(input, options = {})\n {\n return inspectRawCmfResult(input, normalizeValues(DEFAULT_VALUES, options));\n }\n\n /**\n * Static JSON-compatible conversion.\n *\n * @param {object} value Format output to convert.\n * @returns {any} Plain JSON-compatible data.\n */\n static toJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * Static one-shot binary write without compression.\n *\n * @param {object} graph CMF-native graph.\n * @param {object} [options] Writer options (`compress`).\n * @returns {Uint8Array} Complete .cmf file bytes.\n */\n static write(graph, options = {})\n {\n return writeCmf(graph, options);\n }\n\n /**\n * Static one-shot binary write with meshoptimizer compression enabled by\n * default.\n *\n * @param {object} graph CMF-native graph.\n * @param {object} [options] Writer options (`compress`, default true).\n * @returns {Promise<Uint8Array>} Complete .cmf file bytes.\n */\n static async writeAsync(graph, options = {})\n {\n return writeCmfAsync(graph, options);\n }\n\n /**\n * Static one-shot shared-geometry write without compression.\n *\n * Equivalent to `loadShared` + buffer packing + `write`; this is the\n * GR2/OBJ/glTF → CMF conversion entry point.\n *\n * @param {object} input Shared geometry root or mesh.\n * @param {object} [options] Writer options (`compress`).\n * @returns {Uint8Array} Complete .cmf file bytes.\n */\n static writeShared(input, options = {})\n {\n const packed = packGraphBuffers(buildCmfFromShared(input, options));\n return writeCmf({ ...packed.graph, buffers: packed.buffers }, options);\n }\n\n /**\n * Static one-shot shared-geometry write with meshoptimizer compression\n * enabled by default.\n *\n * @param {object} input Shared geometry root or mesh.\n * @param {object} [options] Writer options (`compress`, default true).\n * @returns {Promise<Uint8Array>} Complete .cmf file bytes.\n */\n static async writeSharedAsync(input, options = {})\n {\n const packed = packGraphBuffers(buildCmfFromShared(input, options));\n return writeCmfAsync({ ...packed.graph, buffers: packed.buffers }, options);\n }\n\n /**\n * Emit targets for this format (canonical frozen enum).\n */\n static Output = Object.freeze({\n JSON: OUTPUT_JSON,\n CMF: OUTPUT_CMF,\n CMF_JSON: OUTPUT_CMF_JSON,\n GR2: OUTPUT_GR2,\n NATIVE: OUTPUT_NATIVE,\n RAW: OUTPUT_RAW,\n SHARED: OUTPUT_SHARED\n });\n static CLASS_KEYS = CLASS_KEYS;\n static id = \"cmf\";\n static mediaTypes = Object.freeze([ \"geometry\" ]);\n // The writer's own graph is the default: `write` takes a CMF-native graph,\n // while `writeShared` converts a shared geometry root through it first.\n // Both are lossless - CMF is the container this package writes for keeps.\n static inputs = CjsFormat.defineInputs({\n cmf: { default: true, payloadType: \"geometry\", options: [ \"compress\" ] },\n shared: { payloadType: \"geometry\", options: [ \"compress\" ] }\n });\n\n static outputs = CjsFormat.defineOutputs({\n cmf: { default: true, decoded: true },\n gr2: { decoded: true },\n shared: { decoded: true },\n json: { role: \"debug\", payloadType: \"cmf\", decoded: true },\n cmfJson: { role: \"debug\", payloadType: \"cmf\", decoded: true },\n raw: { role: \"debug\", decoded: true }\n });\n static extensions = Object.freeze([ \".cmf\" ]);\n}\n\nexport default CjsCmfFormat;\n"],"names":["CjsCmfFormat","CjsFormat","DEFAULT_VALUES","emit","validateCrc","decodeBuffers","constructor","options","SetValues","values","normalizeValues","GetValues","classes","SetClasses","SetClass","type","Class","validateClassKey","undefined","validateClass","GetClass","HasClass","Read","input","readWithValues","Load","loadNativeWithValues","LoadShared","loadSharedWithValues","ReadShared","OUTPUT_SHARED","ReadAsync","readWithValuesAsync","ReadSharedAsync","ReadRaw","readRawInput","ReadRawAsync","readRawInputAsync","Inspect","inspectRawCmfResult","ToJSON","value","toJsonValue","Write","graph","writeCmf","WriteAsync","writeCmfAsync","WriteShared","writeShared","WriteSharedAsync","writeSharedAsync","read","load","loadShared","readShared","readAsync","readSharedAsync","readRaw","readRawAsync","inspect","toJSON","write","writeAsync","packed","packGraphBuffers","buildCmfFromShared","buffers","Output","Object","freeze","JSON","OUTPUT_JSON","CMF","OUTPUT_CMF","CMF_JSON","OUTPUT_CMF_JSON","GR2","OUTPUT_GR2","NATIVE","OUTPUT_NATIVE","RAW","OUTPUT_RAW","SHARED","CLASS_KEYS","id","mediaTypes","inputs","defineInputs","cmf","default","payloadType","shared","outputs","defineOutputs","decoded","gr2","json","role","cmfJson","raw","extensions"],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { crc32 as crc32$1 } from '#utils/checksum';
|
|
2
|
+
|
|
1
3
|
const textDecoder = new TextDecoder();
|
|
2
4
|
|
|
3
5
|
/** Returns a byte view over the supplied binary input for the CMF binary reader. */
|
|
@@ -14,9 +16,9 @@ function asUint8Array(input) {
|
|
|
14
16
|
throw new TypeError("CMF input must be a Uint8Array, Buffer, ArrayBuffer, or typed-array view");
|
|
15
17
|
}
|
|
16
18
|
|
|
17
|
-
/**
|
|
18
|
-
* Bounds-checked little-endian offset reader over CMF file bytes, including
|
|
19
|
-
* 64-bit integer reads guarded against unsafe values.
|
|
19
|
+
/**
|
|
20
|
+
* Bounds-checked little-endian offset reader over CMF file bytes, including
|
|
21
|
+
* 64-bit integer reads guarded against unsafe values.
|
|
20
22
|
*/
|
|
21
23
|
class BinaryReader {
|
|
22
24
|
/** Creates a BinaryReader over caller-provided CMF bytes and reader options. */
|
|
@@ -25,9 +27,9 @@ class BinaryReader {
|
|
|
25
27
|
this.view = new DataView(this.bytes.buffer, this.bytes.byteOffset, this.bytes.byteLength);
|
|
26
28
|
}
|
|
27
29
|
|
|
28
|
-
/**
|
|
29
|
-
* Validates the supplied value against CMF binary reader constraints and
|
|
30
|
-
* throws on failure.
|
|
30
|
+
/**
|
|
31
|
+
* Validates the supplied value against CMF binary reader constraints and
|
|
32
|
+
* throws on failure.
|
|
31
33
|
*/
|
|
32
34
|
require(offset, size, label = "read") {
|
|
33
35
|
if (!Number.isSafeInteger(offset) || !Number.isSafeInteger(size) || offset < 0 || size < 0 || offset > this.bytes.byteLength - size) {
|
|
@@ -35,54 +37,54 @@ class BinaryReader {
|
|
|
35
37
|
}
|
|
36
38
|
}
|
|
37
39
|
|
|
38
|
-
/**
|
|
39
|
-
* Reads an unsigned 8-bit integer at the requested offset for the CMF binary
|
|
40
|
-
* reader.
|
|
40
|
+
/**
|
|
41
|
+
* Reads an unsigned 8-bit integer at the requested offset for the CMF binary
|
|
42
|
+
* reader.
|
|
41
43
|
*/
|
|
42
44
|
u8(offset) {
|
|
43
45
|
this.require(offset, 1);
|
|
44
46
|
return this.view.getUint8(offset);
|
|
45
47
|
}
|
|
46
48
|
|
|
47
|
-
/**
|
|
48
|
-
* Reads an unsigned 16-bit little-endian integer at the requested offset for
|
|
49
|
-
* the CMF binary reader.
|
|
49
|
+
/**
|
|
50
|
+
* Reads an unsigned 16-bit little-endian integer at the requested offset for
|
|
51
|
+
* the CMF binary reader.
|
|
50
52
|
*/
|
|
51
53
|
u16(offset) {
|
|
52
54
|
this.require(offset, 2);
|
|
53
55
|
return this.view.getUint16(offset, true);
|
|
54
56
|
}
|
|
55
57
|
|
|
56
|
-
/**
|
|
57
|
-
* Reads an unsigned 32-bit little-endian integer at the requested offset for
|
|
58
|
-
* the CMF binary reader.
|
|
58
|
+
/**
|
|
59
|
+
* Reads an unsigned 32-bit little-endian integer at the requested offset for
|
|
60
|
+
* the CMF binary reader.
|
|
59
61
|
*/
|
|
60
62
|
u32(offset) {
|
|
61
63
|
this.require(offset, 4);
|
|
62
64
|
return this.view.getUint32(offset, true);
|
|
63
65
|
}
|
|
64
66
|
|
|
65
|
-
/**
|
|
66
|
-
* Reads a signed 32-bit little-endian integer at the requested offset for
|
|
67
|
-
* the CMF binary reader.
|
|
67
|
+
/**
|
|
68
|
+
* Reads a signed 32-bit little-endian integer at the requested offset for
|
|
69
|
+
* the CMF binary reader.
|
|
68
70
|
*/
|
|
69
71
|
i32(offset) {
|
|
70
72
|
this.require(offset, 4);
|
|
71
73
|
return this.view.getInt32(offset, true);
|
|
72
74
|
}
|
|
73
75
|
|
|
74
|
-
/**
|
|
75
|
-
* Reads a 32-bit little-endian float at the requested offset for the CMF
|
|
76
|
-
* binary reader.
|
|
76
|
+
/**
|
|
77
|
+
* Reads a 32-bit little-endian float at the requested offset for the CMF
|
|
78
|
+
* binary reader.
|
|
77
79
|
*/
|
|
78
80
|
f32(offset) {
|
|
79
81
|
this.require(offset, 4);
|
|
80
82
|
return this.view.getFloat32(offset, true);
|
|
81
83
|
}
|
|
82
84
|
|
|
83
|
-
/**
|
|
84
|
-
* Reads a safe unsigned 64-bit little-endian integer at the requested offset
|
|
85
|
-
* for the CMF binary reader.
|
|
85
|
+
/**
|
|
86
|
+
* Reads a safe unsigned 64-bit little-endian integer at the requested offset
|
|
87
|
+
* for the CMF binary reader.
|
|
86
88
|
*/
|
|
87
89
|
u64(offset) {
|
|
88
90
|
this.require(offset, 8);
|
|
@@ -93,9 +95,9 @@ class BinaryReader {
|
|
|
93
95
|
return Number(value);
|
|
94
96
|
}
|
|
95
97
|
|
|
96
|
-
/**
|
|
97
|
-
* Reads a safe signed 64-bit little-endian integer at the requested offset
|
|
98
|
-
* for the CMF binary reader.
|
|
98
|
+
/**
|
|
99
|
+
* Reads a safe signed 64-bit little-endian integer at the requested offset
|
|
100
|
+
* for the CMF binary reader.
|
|
99
101
|
*/
|
|
100
102
|
i64(offset) {
|
|
101
103
|
this.require(offset, 8);
|
|
@@ -106,9 +108,9 @@ class BinaryReader {
|
|
|
106
108
|
return Number(value);
|
|
107
109
|
}
|
|
108
110
|
|
|
109
|
-
/**
|
|
110
|
-
* Returns a bounds-checked byte slice at the requested offset for the CMF
|
|
111
|
-
* binary reader.
|
|
111
|
+
/**
|
|
112
|
+
* Returns a bounds-checked byte slice at the requested offset for the CMF
|
|
113
|
+
* binary reader.
|
|
112
114
|
*/
|
|
113
115
|
bytesAt(offset, size) {
|
|
114
116
|
this.require(offset, size, "byte slice");
|
|
@@ -124,9 +126,9 @@ class BinaryReader {
|
|
|
124
126
|
}
|
|
125
127
|
}
|
|
126
128
|
|
|
127
|
-
/**
|
|
128
|
-
* Returns the symbolic enum name or an unknown-value label for the CMF binary
|
|
129
|
-
* reader.
|
|
129
|
+
/**
|
|
130
|
+
* Returns the symbolic enum name or an unknown-value label for the CMF binary
|
|
131
|
+
* reader.
|
|
130
132
|
*/
|
|
131
133
|
function enumName(names, value) {
|
|
132
134
|
return names[value] ?? `Unknown(${value})`;
|
|
@@ -137,9 +139,9 @@ function readVector3(reader, offset) {
|
|
|
137
139
|
return [reader.f32(offset), reader.f32(offset + 4), reader.f32(offset + 8)];
|
|
138
140
|
}
|
|
139
141
|
|
|
140
|
-
/**
|
|
141
|
-
* Reads a four-component quaternion from the CMF input for the CMF binary
|
|
142
|
-
* reader.
|
|
142
|
+
/**
|
|
143
|
+
* Reads a four-component quaternion from the CMF input for the CMF binary
|
|
144
|
+
* reader.
|
|
143
145
|
*/
|
|
144
146
|
function readQuaternion(reader, offset) {
|
|
145
147
|
return [reader.f32(offset), reader.f32(offset + 4), reader.f32(offset + 8), reader.f32(offset + 12)];
|
|
@@ -162,32 +164,24 @@ function readBounds(reader, offset) {
|
|
|
162
164
|
};
|
|
163
165
|
}
|
|
164
166
|
|
|
165
|
-
/**
|
|
166
|
-
* Computes a CRC-32 checksum over the requested byte range for the CMF binary
|
|
167
|
-
* reader.
|
|
167
|
+
/**
|
|
168
|
+
* Computes a CRC-32 checksum over the requested byte range for the CMF binary
|
|
169
|
+
* reader.
|
|
170
|
+
*/
|
|
171
|
+
/**
|
|
172
|
+
* CMF's container checksum.
|
|
173
|
+
*
|
|
174
|
+
* Re-exported under CMF's own name because the CMF byte layout is what makes it
|
|
175
|
+
* meaningful here, and a test imports this spelling. The algorithm is the shared
|
|
176
|
+
* standard CRC-32.
|
|
177
|
+
*
|
|
178
|
+
* @param {Uint8Array} bytes Source bytes.
|
|
179
|
+
* @param {number} [start] First byte offset, inclusive.
|
|
180
|
+
* @param {number} [end] Last byte offset, exclusive.
|
|
181
|
+
* @returns {number} Unsigned 32-bit checksum.
|
|
168
182
|
*/
|
|
169
183
|
function crc32(bytes, start = 0, end = bytes.byteLength) {
|
|
170
|
-
|
|
171
|
-
const table = crc32Table();
|
|
172
|
-
for (let i = start; i < end; i++) {
|
|
173
|
-
crc = crc >>> 8 ^ table[(crc ^ bytes[i]) & 0xff];
|
|
174
|
-
}
|
|
175
|
-
return (crc ^ 0xffffffff) >>> 0;
|
|
176
|
-
}
|
|
177
|
-
let cachedCrc32Table = null;
|
|
178
|
-
function crc32Table() {
|
|
179
|
-
if (cachedCrc32Table) {
|
|
180
|
-
return cachedCrc32Table;
|
|
181
|
-
}
|
|
182
|
-
cachedCrc32Table = new Uint32Array(256);
|
|
183
|
-
for (let i = 0; i < 256; i++) {
|
|
184
|
-
let c = i;
|
|
185
|
-
for (let k = 0; k < 8; k++) {
|
|
186
|
-
c = c & 1 ? 0xedb88320 ^ c >>> 1 : c >>> 1;
|
|
187
|
-
}
|
|
188
|
-
cachedCrc32Table[i] = c >>> 0;
|
|
189
|
-
}
|
|
190
|
-
return cachedCrc32Table;
|
|
184
|
+
return crc32$1(bytes, start, end);
|
|
191
185
|
}
|
|
192
186
|
|
|
193
187
|
export { BinaryReader, asUint8Array, crc32, enumName, readBounds, readMatrix, readQuaternion, readVector3 };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary.js","sources":["../../../../../../src/resource/formats/cmf/core/binary.js"],"sourcesContent":["const textDecoder = new TextDecoder();\r\n\r\n/** Returns a byte view over the supplied binary input for the CMF binary reader. */\r\nexport function asUint8Array(input)\r\n{\r\n if (input instanceof Uint8Array)\r\n {\r\n return input;\r\n }\r\n\r\n if (input instanceof ArrayBuffer)\r\n {\r\n return new Uint8Array(input);\r\n }\r\n\r\n if (ArrayBuffer.isView(input))\r\n {\r\n return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);\r\n }\r\n\r\n throw new TypeError(\"CMF input must be a Uint8Array, Buffer, ArrayBuffer, or typed-array view\");\r\n}\r\n\r\n/**\r\n * Bounds-checked little-endian offset reader over CMF file bytes, including\r\n * 64-bit integer reads guarded against unsafe values.\r\n */\r\nexport class BinaryReader\r\n{\r\n /** Creates a BinaryReader over caller-provided CMF bytes and reader options. */\r\n constructor(bytes)\r\n {\r\n this.bytes = asUint8Array(bytes);\r\n this.view = new DataView(this.bytes.buffer, this.bytes.byteOffset, this.bytes.byteLength);\r\n }\r\n\r\n /**\r\n * Validates the supplied value against CMF binary reader constraints and\r\n * throws on failure.\r\n */\r\n require(offset, size, label = \"read\")\n {\n if (!Number.isSafeInteger(offset) || !Number.isSafeInteger(size) ||\n offset < 0 || size < 0 || offset > this.bytes.byteLength - size)\n {\n throw new RangeError(`CMF ${label} is outside file bounds`);\n }\n }\r\n\r\n /**\r\n * Reads an unsigned 8-bit integer at the requested offset for the CMF binary\r\n * reader.\r\n */\r\n u8(offset)\r\n {\r\n this.require(offset, 1);\r\n return this.view.getUint8(offset);\r\n }\r\n\r\n /**\r\n * Reads an unsigned 16-bit little-endian integer at the requested offset for\r\n * the CMF binary reader.\r\n */\r\n u16(offset)\r\n {\r\n this.require(offset, 2);\r\n return this.view.getUint16(offset, true);\r\n }\r\n\r\n /**\r\n * Reads an unsigned 32-bit little-endian integer at the requested offset for\r\n * the CMF binary reader.\r\n */\r\n u32(offset)\r\n {\r\n this.require(offset, 4);\r\n return this.view.getUint32(offset, true);\r\n }\r\n\r\n /**\r\n * Reads a signed 32-bit little-endian integer at the requested offset for\r\n * the CMF binary reader.\r\n */\r\n i32(offset)\r\n {\r\n this.require(offset, 4);\r\n return this.view.getInt32(offset, true);\r\n }\r\n\r\n /**\r\n * Reads a 32-bit little-endian float at the requested offset for the CMF\r\n * binary reader.\r\n */\r\n f32(offset)\r\n {\r\n this.require(offset, 4);\r\n return this.view.getFloat32(offset, true);\r\n }\r\n\r\n /**\r\n * Reads a safe unsigned 64-bit little-endian integer at the requested offset\r\n * for the CMF binary reader.\r\n */\r\n u64(offset)\r\n {\r\n this.require(offset, 8);\r\n const value = this.view.getBigUint64(offset, true);\r\n if (value > BigInt(Number.MAX_SAFE_INTEGER))\r\n {\r\n throw new RangeError(\"CMF integer is larger than Number.MAX_SAFE_INTEGER\");\r\n }\r\n return Number(value);\r\n }\r\n\r\n /**\r\n * Reads a safe signed 64-bit little-endian integer at the requested offset\r\n * for the CMF binary reader.\r\n */\r\n i64(offset)\r\n {\r\n this.require(offset, 8);\r\n const value = this.view.getBigInt64(offset, true);\r\n if (value > BigInt(Number.MAX_SAFE_INTEGER) || value < BigInt(Number.MIN_SAFE_INTEGER))\r\n {\r\n throw new RangeError(\"CMF integer is outside the safe JavaScript number range\");\r\n }\r\n return Number(value);\r\n }\r\n\r\n /**\r\n * Returns a bounds-checked byte slice at the requested offset for the CMF\r\n * binary reader.\r\n */\r\n bytesAt(offset, size)\r\n {\r\n this.require(offset, size, \"byte slice\");\r\n return this.bytes.subarray(offset, offset + size);\r\n }\r\n\r\n /** Decodes a UTF-8 string at the requested offset for the CMF binary reader. */\r\n string(offset, byteSize)\r\n {\r\n if (byteSize === 0)\r\n {\r\n return \"\";\r\n }\r\n\r\n return textDecoder.decode(this.bytesAt(offset, byteSize));\r\n }\r\n}\r\n\r\n/**\r\n * Returns the symbolic enum name or an unknown-value label for the CMF binary\r\n * reader.\r\n */\r\nexport function enumName(names, value)\r\n{\r\n return names[value] ?? `Unknown(${value})`;\r\n}\r\n\r\n/** Reads a three-component vector from the CMF input for the CMF binary reader. */\r\nexport function readVector3(reader, offset)\r\n{\r\n return [\r\n reader.f32(offset),\r\n reader.f32(offset + 4),\r\n reader.f32(offset + 8)\r\n ];\r\n}\r\n\r\n/**\r\n * Reads a four-component quaternion from the CMF input for the CMF binary\r\n * reader.\r\n */\r\nexport function readQuaternion(reader, offset)\r\n{\r\n return [\r\n reader.f32(offset),\r\n reader.f32(offset + 4),\r\n reader.f32(offset + 8),\r\n reader.f32(offset + 12)\r\n ];\r\n}\r\n\r\n/** Reads a 4-by-4 matrix from the CMF input for the CMF binary reader. */\r\nexport function readMatrix(reader, offset)\r\n{\r\n const values = [];\r\n for (let i = 0; i < 16; i++)\r\n {\r\n values.push(reader.f32(offset + i * 4));\r\n }\r\n return values;\r\n}\r\n\r\n/** Reads minimum and maximum bounds from the CMF input for the CMF binary reader. */\r\nexport function readBounds(reader, offset)\r\n{\r\n return {\r\n min: readVector3(reader, offset),\r\n max: readVector3(reader, offset + 12)\r\n };\r\n}\r\n\r\n/**\r\n * Computes a CRC-32 checksum over the requested byte range for the CMF binary\r\n * reader.\r\n */\r\nexport function crc32(bytes, start = 0, end = bytes.byteLength)\r\n{\r\n let crc = 0xffffffff;\r\n const table = crc32Table();\r\n for (let i = start; i < end; i++)\r\n {\r\n crc = (crc >>> 8) ^ table[(crc ^ bytes[i]) & 0xff];\r\n }\r\n return (crc ^ 0xffffffff) >>> 0;\r\n}\r\n\r\nlet cachedCrc32Table = null;\r\n\r\nfunction crc32Table()\r\n{\r\n if (cachedCrc32Table)\r\n {\r\n return cachedCrc32Table;\r\n }\r\n\r\n cachedCrc32Table = new Uint32Array(256);\r\n for (let i = 0; i < 256; i++)\r\n {\r\n let c = i;\r\n for (let k = 0; k < 8; k++)\r\n {\r\n c = (c & 1) ? (0xedb88320 ^ (c >>> 1)) : (c >>> 1);\r\n }\r\n cachedCrc32Table[i] = c >>> 0;\r\n }\r\n return cachedCrc32Table;\r\n}\r\n"],"names":["textDecoder","TextDecoder","asUint8Array","input","Uint8Array","ArrayBuffer","isView","buffer","byteOffset","byteLength","TypeError","BinaryReader","constructor","bytes","view","DataView","require","offset","size","label","Number","isSafeInteger","RangeError","u8","getUint8","u16","getUint16","u32","getUint32","i32","getInt32","f32","getFloat32","u64","value","getBigUint64","BigInt","MAX_SAFE_INTEGER","i64","getBigInt64","MIN_SAFE_INTEGER","bytesAt","subarray","string","byteSize","decode","enumName","names","readVector3","reader","readQuaternion","readMatrix","values","i","push","readBounds","min","max","crc32","start","end","crc","table","crc32Table","cachedCrc32Table","Uint32Array","c","k"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"binary.js","sources":["../../../../../../src/resource/formats/cmf/core/binary.js"],"sourcesContent":["import { crc32 as sharedCrc32 } from \"#utils/checksum\";\n\nconst textDecoder = new TextDecoder();\n\n/** Returns a byte view over the supplied binary input for the CMF binary reader. */\nexport function asUint8Array(input)\n{\n if (input instanceof Uint8Array)\n {\n return input;\n }\n\n if (input instanceof ArrayBuffer)\n {\n return new Uint8Array(input);\n }\n\n if (ArrayBuffer.isView(input))\n {\n return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);\n }\n\n throw new TypeError(\"CMF input must be a Uint8Array, Buffer, ArrayBuffer, or typed-array view\");\n}\n\n/**\n * Bounds-checked little-endian offset reader over CMF file bytes, including\n * 64-bit integer reads guarded against unsafe values.\n */\nexport class BinaryReader\n{\n /** Creates a BinaryReader over caller-provided CMF bytes and reader options. */\n constructor(bytes)\n {\n this.bytes = asUint8Array(bytes);\n this.view = new DataView(this.bytes.buffer, this.bytes.byteOffset, this.bytes.byteLength);\n }\n\n /**\n * Validates the supplied value against CMF binary reader constraints and\n * throws on failure.\n */\n require(offset, size, label = \"read\")\n {\n if (!Number.isSafeInteger(offset) || !Number.isSafeInteger(size) ||\n offset < 0 || size < 0 || offset > this.bytes.byteLength - size)\n {\n throw new RangeError(`CMF ${label} is outside file bounds`);\n }\n }\n\n /**\n * Reads an unsigned 8-bit integer at the requested offset for the CMF binary\n * reader.\n */\n u8(offset)\n {\n this.require(offset, 1);\n return this.view.getUint8(offset);\n }\n\n /**\n * Reads an unsigned 16-bit little-endian integer at the requested offset for\n * the CMF binary reader.\n */\n u16(offset)\n {\n this.require(offset, 2);\n return this.view.getUint16(offset, true);\n }\n\n /**\n * Reads an unsigned 32-bit little-endian integer at the requested offset for\n * the CMF binary reader.\n */\n u32(offset)\n {\n this.require(offset, 4);\n return this.view.getUint32(offset, true);\n }\n\n /**\n * Reads a signed 32-bit little-endian integer at the requested offset for\n * the CMF binary reader.\n */\n i32(offset)\n {\n this.require(offset, 4);\n return this.view.getInt32(offset, true);\n }\n\n /**\n * Reads a 32-bit little-endian float at the requested offset for the CMF\n * binary reader.\n */\n f32(offset)\n {\n this.require(offset, 4);\n return this.view.getFloat32(offset, true);\n }\n\n /**\n * Reads a safe unsigned 64-bit little-endian integer at the requested offset\n * for the CMF binary reader.\n */\n u64(offset)\n {\n this.require(offset, 8);\n const value = this.view.getBigUint64(offset, true);\n if (value > BigInt(Number.MAX_SAFE_INTEGER))\n {\n throw new RangeError(\"CMF integer is larger than Number.MAX_SAFE_INTEGER\");\n }\n return Number(value);\n }\n\n /**\n * Reads a safe signed 64-bit little-endian integer at the requested offset\n * for the CMF binary reader.\n */\n i64(offset)\n {\n this.require(offset, 8);\n const value = this.view.getBigInt64(offset, true);\n if (value > BigInt(Number.MAX_SAFE_INTEGER) || value < BigInt(Number.MIN_SAFE_INTEGER))\n {\n throw new RangeError(\"CMF integer is outside the safe JavaScript number range\");\n }\n return Number(value);\n }\n\n /**\n * Returns a bounds-checked byte slice at the requested offset for the CMF\n * binary reader.\n */\n bytesAt(offset, size)\n {\n this.require(offset, size, \"byte slice\");\n return this.bytes.subarray(offset, offset + size);\n }\n\n /** Decodes a UTF-8 string at the requested offset for the CMF binary reader. */\n string(offset, byteSize)\n {\n if (byteSize === 0)\n {\n return \"\";\n }\n\n return textDecoder.decode(this.bytesAt(offset, byteSize));\n }\n}\n\n/**\n * Returns the symbolic enum name or an unknown-value label for the CMF binary\n * reader.\n */\nexport function enumName(names, value)\n{\n return names[value] ?? `Unknown(${value})`;\n}\n\n/** Reads a three-component vector from the CMF input for the CMF binary reader. */\nexport function readVector3(reader, offset)\n{\n return [\n reader.f32(offset),\n reader.f32(offset + 4),\n reader.f32(offset + 8)\n ];\n}\n\n/**\n * Reads a four-component quaternion from the CMF input for the CMF binary\n * reader.\n */\nexport function readQuaternion(reader, offset)\n{\n return [\n reader.f32(offset),\n reader.f32(offset + 4),\n reader.f32(offset + 8),\n reader.f32(offset + 12)\n ];\n}\n\n/** Reads a 4-by-4 matrix from the CMF input for the CMF binary reader. */\nexport function readMatrix(reader, offset)\n{\n const values = [];\n for (let i = 0; i < 16; i++)\n {\n values.push(reader.f32(offset + i * 4));\n }\n return values;\n}\n\n/** Reads minimum and maximum bounds from the CMF input for the CMF binary reader. */\nexport function readBounds(reader, offset)\n{\n return {\n min: readVector3(reader, offset),\n max: readVector3(reader, offset + 12)\n };\n}\n\n/**\n * Computes a CRC-32 checksum over the requested byte range for the CMF binary\n * reader.\n */\n/**\n * CMF's container checksum.\n *\n * Re-exported under CMF's own name because the CMF byte layout is what makes it\n * meaningful here, and a test imports this spelling. The algorithm is the shared\n * standard CRC-32.\n *\n * @param {Uint8Array} bytes Source bytes.\n * @param {number} [start] First byte offset, inclusive.\n * @param {number} [end] Last byte offset, exclusive.\n * @returns {number} Unsigned 32-bit checksum.\n */\nexport function crc32(bytes, start = 0, end = bytes.byteLength)\n{\n return sharedCrc32(bytes, start, end);\n}\n\n\n"],"names":["textDecoder","TextDecoder","asUint8Array","input","Uint8Array","ArrayBuffer","isView","buffer","byteOffset","byteLength","TypeError","BinaryReader","constructor","bytes","view","DataView","require","offset","size","label","Number","isSafeInteger","RangeError","u8","getUint8","u16","getUint16","u32","getUint32","i32","getInt32","f32","getFloat32","u64","value","getBigUint64","BigInt","MAX_SAFE_INTEGER","i64","getBigInt64","MIN_SAFE_INTEGER","bytesAt","subarray","string","byteSize","decode","enumName","names","readVector3","reader","readQuaternion","readMatrix","values","i","push","readBounds","min","max","crc32","start","end","sharedCrc32"],"mappings":";;AAEA,MAAMA,WAAW,GAAG,IAAIC,WAAW,EAAE;;AAErC;AACO,SAASC,YAAYA,CAACC,KAAK,EAClC;EACI,IAAIA,KAAK,YAAYC,UAAU,EAC/B;AACI,IAAA,OAAOD,KAAK;AAChB,EAAA;EAEA,IAAIA,KAAK,YAAYE,WAAW,EAChC;AACI,IAAA,OAAO,IAAID,UAAU,CAACD,KAAK,CAAC;AAChC,EAAA;AAEA,EAAA,IAAIE,WAAW,CAACC,MAAM,CAACH,KAAK,CAAC,EAC7B;AACI,IAAA,OAAO,IAAIC,UAAU,CAACD,KAAK,CAACI,MAAM,EAAEJ,KAAK,CAACK,UAAU,EAAEL,KAAK,CAACM,UAAU,CAAC;AAC3E,EAAA;AAEA,EAAA,MAAM,IAAIC,SAAS,CAAC,0EAA0E,CAAC;AACnG;;AAEA;AACA;AACA;AACA;AACO,MAAMC,YAAY,CACzB;AACI;EACAC,WAAWA,CAACC,KAAK,EACjB;AACI,IAAA,IAAI,CAACA,KAAK,GAAGX,YAAY,CAACW,KAAK,CAAC;IAChC,IAAI,CAACC,IAAI,GAAG,IAAIC,QAAQ,CAAC,IAAI,CAACF,KAAK,CAACN,MAAM,EAAE,IAAI,CAACM,KAAK,CAACL,UAAU,EAAE,IAAI,CAACK,KAAK,CAACJ,UAAU,CAAC;AAC7F,EAAA;;AAEA;AACJ;AACA;AACA;EACIO,OAAOA,CAACC,MAAM,EAAEC,IAAI,EAAEC,KAAK,GAAG,MAAM,EACpC;AACI,IAAA,IAAI,CAACC,MAAM,CAACC,aAAa,CAACJ,MAAM,CAAC,IAAI,CAACG,MAAM,CAACC,aAAa,CAACH,IAAI,CAAC,IAC5DD,MAAM,GAAG,CAAC,IAAIC,IAAI,GAAG,CAAC,IAAID,MAAM,GAAG,IAAI,CAACJ,KAAK,CAACJ,UAAU,GAAGS,IAAI,EACnE;AACI,MAAA,MAAM,IAAII,UAAU,CAAC,CAAA,IAAA,EAAOH,KAAK,yBAAyB,CAAC;AAC/D,IAAA;AACJ,EAAA;;AAEA;AACJ;AACA;AACA;EACII,EAAEA,CAACN,MAAM,EACT;AACI,IAAA,IAAI,CAACD,OAAO,CAACC,MAAM,EAAE,CAAC,CAAC;AACvB,IAAA,OAAO,IAAI,CAACH,IAAI,CAACU,QAAQ,CAACP,MAAM,CAAC;AACrC,EAAA;;AAEA;AACJ;AACA;AACA;EACIQ,GAAGA,CAACR,MAAM,EACV;AACI,IAAA,IAAI,CAACD,OAAO,CAACC,MAAM,EAAE,CAAC,CAAC;IACvB,OAAO,IAAI,CAACH,IAAI,CAACY,SAAS,CAACT,MAAM,EAAE,IAAI,CAAC;AAC5C,EAAA;;AAEA;AACJ;AACA;AACA;EACIU,GAAGA,CAACV,MAAM,EACV;AACI,IAAA,IAAI,CAACD,OAAO,CAACC,MAAM,EAAE,CAAC,CAAC;IACvB,OAAO,IAAI,CAACH,IAAI,CAACc,SAAS,CAACX,MAAM,EAAE,IAAI,CAAC;AAC5C,EAAA;;AAEA;AACJ;AACA;AACA;EACIY,GAAGA,CAACZ,MAAM,EACV;AACI,IAAA,IAAI,CAACD,OAAO,CAACC,MAAM,EAAE,CAAC,CAAC;IACvB,OAAO,IAAI,CAACH,IAAI,CAACgB,QAAQ,CAACb,MAAM,EAAE,IAAI,CAAC;AAC3C,EAAA;;AAEA;AACJ;AACA;AACA;EACIc,GAAGA,CAACd,MAAM,EACV;AACI,IAAA,IAAI,CAACD,OAAO,CAACC,MAAM,EAAE,CAAC,CAAC;IACvB,OAAO,IAAI,CAACH,IAAI,CAACkB,UAAU,CAACf,MAAM,EAAE,IAAI,CAAC;AAC7C,EAAA;;AAEA;AACJ;AACA;AACA;EACIgB,GAAGA,CAAChB,MAAM,EACV;AACI,IAAA,IAAI,CAACD,OAAO,CAACC,MAAM,EAAE,CAAC,CAAC;IACvB,MAAMiB,KAAK,GAAG,IAAI,CAACpB,IAAI,CAACqB,YAAY,CAAClB,MAAM,EAAE,IAAI,CAAC;IAClD,IAAIiB,KAAK,GAAGE,MAAM,CAAChB,MAAM,CAACiB,gBAAgB,CAAC,EAC3C;AACI,MAAA,MAAM,IAAIf,UAAU,CAAC,oDAAoD,CAAC;AAC9E,IAAA;IACA,OAAOF,MAAM,CAACc,KAAK,CAAC;AACxB,EAAA;;AAEA;AACJ;AACA;AACA;EACII,GAAGA,CAACrB,MAAM,EACV;AACI,IAAA,IAAI,CAACD,OAAO,CAACC,MAAM,EAAE,CAAC,CAAC;IACvB,MAAMiB,KAAK,GAAG,IAAI,CAACpB,IAAI,CAACyB,WAAW,CAACtB,MAAM,EAAE,IAAI,CAAC;AACjD,IAAA,IAAIiB,KAAK,GAAGE,MAAM,CAAChB,MAAM,CAACiB,gBAAgB,CAAC,IAAIH,KAAK,GAAGE,MAAM,CAAChB,MAAM,CAACoB,gBAAgB,CAAC,EACtF;AACI,MAAA,MAAM,IAAIlB,UAAU,CAAC,yDAAyD,CAAC;AACnF,IAAA;IACA,OAAOF,MAAM,CAACc,KAAK,CAAC;AACxB,EAAA;;AAEA;AACJ;AACA;AACA;AACIO,EAAAA,OAAOA,CAACxB,MAAM,EAAEC,IAAI,EACpB;IACI,IAAI,CAACF,OAAO,CAACC,MAAM,EAAEC,IAAI,EAAE,YAAY,CAAC;IACxC,OAAO,IAAI,CAACL,KAAK,CAAC6B,QAAQ,CAACzB,MAAM,EAAEA,MAAM,GAAGC,IAAI,CAAC;AACrD,EAAA;;AAEA;AACAyB,EAAAA,MAAMA,CAAC1B,MAAM,EAAE2B,QAAQ,EACvB;IACI,IAAIA,QAAQ,KAAK,CAAC,EAClB;AACI,MAAA,OAAO,EAAE;AACb,IAAA;AAEA,IAAA,OAAO5C,WAAW,CAAC6C,MAAM,CAAC,IAAI,CAACJ,OAAO,CAACxB,MAAM,EAAE2B,QAAQ,CAAC,CAAC;AAC7D,EAAA;AACJ;;AAEA;AACA;AACA;AACA;AACO,SAASE,QAAQA,CAACC,KAAK,EAAEb,KAAK,EACrC;AACI,EAAA,OAAOa,KAAK,CAACb,KAAK,CAAC,IAAI,CAAA,QAAA,EAAWA,KAAK,CAAA,CAAA,CAAG;AAC9C;;AAEA;AACO,SAASc,WAAWA,CAACC,MAAM,EAAEhC,MAAM,EAC1C;EACI,OAAO,CACHgC,MAAM,CAAClB,GAAG,CAACd,MAAM,CAAC,EAClBgC,MAAM,CAAClB,GAAG,CAACd,MAAM,GAAG,CAAC,CAAC,EACtBgC,MAAM,CAAClB,GAAG,CAACd,MAAM,GAAG,CAAC,CAAC,CACzB;AACL;;AAEA;AACA;AACA;AACA;AACO,SAASiC,cAAcA,CAACD,MAAM,EAAEhC,MAAM,EAC7C;AACI,EAAA,OAAO,CACHgC,MAAM,CAAClB,GAAG,CAACd,MAAM,CAAC,EAClBgC,MAAM,CAAClB,GAAG,CAACd,MAAM,GAAG,CAAC,CAAC,EACtBgC,MAAM,CAAClB,GAAG,CAACd,MAAM,GAAG,CAAC,CAAC,EACtBgC,MAAM,CAAClB,GAAG,CAACd,MAAM,GAAG,EAAE,CAAC,CAC1B;AACL;;AAEA;AACO,SAASkC,UAAUA,CAACF,MAAM,EAAEhC,MAAM,EACzC;EACI,MAAMmC,MAAM,GAAG,EAAE;EACjB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,EAAE,EAAEA,CAAC,EAAE,EAC3B;AACID,IAAAA,MAAM,CAACE,IAAI,CAACL,MAAM,CAAClB,GAAG,CAACd,MAAM,GAAGoC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3C,EAAA;AACA,EAAA,OAAOD,MAAM;AACjB;;AAEA;AACO,SAASG,UAAUA,CAACN,MAAM,EAAEhC,MAAM,EACzC;EACI,OAAO;AACHuC,IAAAA,GAAG,EAAER,WAAW,CAACC,MAAM,EAAEhC,MAAM,CAAC;AAChCwC,IAAAA,GAAG,EAAET,WAAW,CAACC,MAAM,EAAEhC,MAAM,GAAG,EAAE;GACvC;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASyC,KAAKA,CAAC7C,KAAK,EAAE8C,KAAK,GAAG,CAAC,EAAEC,GAAG,GAAG/C,KAAK,CAACJ,UAAU,EAC9D;AACI,EAAA,OAAOoD,OAAW,CAAChD,KAAK,EAAE8C,KAAK,EAAEC,GAAG,CAAC;AACzC;;;;"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { asUint8Array } from '#utils/bytes';
|
|
2
2
|
import { CjsFormat } from '../../format/CjsFormat.js';
|
|
3
|
-
import { DEFAULT_VALUES, normalizeValues, readWithValues, inspectWithValues,
|
|
3
|
+
import { DEFAULT_VALUES, normalizeValues, readWithValues, inspectWithValues, probeSupportWithValues, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_RGBA, OUTPUT_TEXTURE, OUTPUT_IMAGE } from './core/helpers.js';
|
|
4
|
+
import { toJsonWithByteSummary } from '../../format/jsonPolicies.js';
|
|
5
|
+
import { isDDS } from '../../format/imageSignatures.js';
|
|
4
6
|
|
|
5
7
|
const FORMAT_NAME = "CjsDdsFormat";
|
|
6
8
|
|
|
@@ -90,7 +92,7 @@ class CjsDdsFormat extends CjsFormat {
|
|
|
90
92
|
* @returns {any} JSON-compatible value.
|
|
91
93
|
*/
|
|
92
94
|
ToJSON(value) {
|
|
93
|
-
return
|
|
95
|
+
return toJsonWithByteSummary(value);
|
|
94
96
|
}
|
|
95
97
|
|
|
96
98
|
/**
|
|
@@ -153,7 +155,7 @@ class CjsDdsFormat extends CjsFormat {
|
|
|
153
155
|
* @returns {any} JSON-compatible value.
|
|
154
156
|
*/
|
|
155
157
|
static toJSON(value) {
|
|
156
|
-
return
|
|
158
|
+
return toJsonWithByteSummary(value);
|
|
157
159
|
}
|
|
158
160
|
|
|
159
161
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CjsDdsFormat.js","sources":["../../../../../src/resource/formats/dds/CjsDdsFormat.js"],"sourcesContent":["import { asUint8Array } from \"#utils/bytes\";\nimport { CjsFormat } from \"../../format/CjsFormat.js\";\nimport {\n DEFAULT_VALUES,\n OUTPUT_IMAGE,\n OUTPUT_JSON,\n OUTPUT_RAW,\n OUTPUT_RGBA,\n OUTPUT_TEXTURE,\n inspectWithValues,\n isDDS,\n probeSupportWithValues,\n normalizeValues,\n readWithValues,\n toJsonValue\n} from \"./core/helpers.js\";\n\nconst FORMAT_NAME = \"CjsDdsFormat\";\n\n/**\n * DDS texture format profile that inspects header metadata, probes output\n * support, and reads DDS bytes into raw, GPU-free texture, image, or\n * software-decoded RGBA and float payloads (BC1-BC5, BC7, and BC6H\n * included).\n */\nexport class CjsDdsFormat extends CjsFormat\n{\n #values = DEFAULT_VALUES;\n\n /**\n * Create a reusable DDS format profile.\n *\n * @param {object} [options] Default read/inspect 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 {CjsDdsFormat} This format profile.\n */\n SetValues(options = {})\n {\n this.#values = normalizeValues(this.#values, { inputType: \"dds\", ...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, { inputType: \"dds\", ...options }, FORMAT_NAME);\n }\n\n /**\n * Read DDS bytes with this profile.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input DDS bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} GPU-free raw/debug/texture payload for the selected emit target.\n */\n Read(input, options = {})\n {\n return readWithValues(input, this.GetValues(options), \"dds\");\n }\n\n /**\n * Read DDS bytes asynchronously with this profile.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input DDS bytes.\n * @param {object} [options] Per-call values.\n * @returns {Promise<object>} GPU-free raw/debug/texture payload for the selected emit target.\n */\n async ReadAsync(input, options = {})\n {\n return this.Read(input, options);\n }\n\n /**\n * Inspect DDS bytes without decoding texture data.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input DDS bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} DDS header metadata.\n */\n Inspect(input, options = {})\n {\n return inspectWithValues(input, this.GetValues(options), \"dds\");\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 DDS read.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input DDS bytes.\n * @param {object} [options] Read options.\n * @returns {object} GPU-free raw/debug/texture payload for the selected emit target.\n */\n static read(input, options = {})\n {\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"dds\", ...options }, FORMAT_NAME), \"dds\");\n }\n\n /**\n * One-shot asynchronous DDS read.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input DDS bytes.\n * @param {object} [options] Read options.\n * @returns {Promise<object>} GPU-free raw/debug/texture payload for the selected emit target.\n */\n static async readAsync(input, options = {})\n {\n return CjsDdsFormat.read(input, options);\n }\n\n /**\n * One-shot DDS inspection.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input DDS bytes.\n * @param {object} [options] Inspect options.\n * @returns {object} DDS header metadata.\n */\n static inspect(input, options = {})\n {\n return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"dds\", ...options }, FORMAT_NAME), \"dds\");\n }\n\n /**\n * One-shot DDS support probe.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input DDS bytes.\n * @param {object} [options] Probe options.\n * @returns {object} Support/probe report.\n */\n static probeSupport(input, options = {})\n {\n return probeSupportWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"dds\", ...options }, FORMAT_NAME), \"dds\");\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 DDS file.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Candidate DDS bytes.\n * @returns {boolean} True when the DDS header is present and sized correctly.\n */\n static isDDS(input)\n {\n try\n {\n return isDDS(asUint8Array(input, \"Image input\"));\n }\n catch\n {\n return false;\n }\n }\n\n /**\n * Emit targets for this format (canonical frozen enum).\n */\n static Output = Object.freeze({\n IMAGE: OUTPUT_IMAGE,\n TEXTURE: OUTPUT_TEXTURE,\n RGBA: OUTPUT_RGBA,\n RAW: OUTPUT_RAW,\n JSON: OUTPUT_JSON\n });\n static OUTPUT_DDS_JSON = \"ddsJson\";\n static id = \"dds\";\n static mediaTypes = Object.freeze([ \"texture\", \"image\" ]);\n static outputs = CjsFormat.defineOutputs({\n texture: { probes: [ \"texture\", \"compressed\" ] },\n image: { decoded: true, probes: [ \"image\", \"rgba\" ] },\n rgba: { decoded: true },\n ddsJson: { role: \"debug\", probes: [ \"ddsJson\", \"raw\" ] },\n raw: { role: \"debug\", default: true, passthrough: true }\n });\n static extensions = Object.freeze([ \".dds\" ]);\n}\n\nexport default CjsDdsFormat;\n"],"names":["FORMAT_NAME","CjsDdsFormat","CjsFormat","DEFAULT_VALUES","constructor","options","SetValues","normalizeValues","inputType","GetValues","Read","input","readWithValues","ReadAsync","Inspect","inspectWithValues","ToJSON","value","toJsonValue","read","readAsync","inspect","probeSupport","probeSupportWithValues","toJSON","isDDS","asUint8Array","Output","Object","freeze","IMAGE","OUTPUT_IMAGE","TEXTURE","OUTPUT_TEXTURE","RGBA","OUTPUT_RGBA","RAW","OUTPUT_RAW","JSON","OUTPUT_JSON","OUTPUT_DDS_JSON","id","mediaTypes","outputs","defineOutputs","texture","probes","image","decoded","rgba","ddsJson","role","raw","default","passthrough","extensions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CjsDdsFormat.js","sources":["../../../../../src/resource/formats/dds/CjsDdsFormat.js"],"sourcesContent":["import { asUint8Array } from \"#utils/bytes\";\nimport { CjsFormat } from \"../../format/CjsFormat.js\";\nimport {\n DEFAULT_VALUES,\n OUTPUT_IMAGE,\n OUTPUT_JSON,\n OUTPUT_RAW,\n OUTPUT_RGBA,\n OUTPUT_TEXTURE,\n inspectWithValues,\n isDDS,\n probeSupportWithValues,\n normalizeValues,\n readWithValues,\n toJsonValue\n} from \"./core/helpers.js\";\n\nconst FORMAT_NAME = \"CjsDdsFormat\";\n\n/**\n * DDS texture format profile that inspects header metadata, probes output\n * support, and reads DDS bytes into raw, GPU-free texture, image, or\n * software-decoded RGBA and float payloads (BC1-BC5, BC7, and BC6H\n * included).\n */\nexport class CjsDdsFormat extends CjsFormat\n{\n #values = DEFAULT_VALUES;\n\n /**\n * Create a reusable DDS format profile.\n *\n * @param {object} [options] Default read/inspect 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 {CjsDdsFormat} This format profile.\n */\n SetValues(options = {})\n {\n this.#values = normalizeValues(this.#values, { inputType: \"dds\", ...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, { inputType: \"dds\", ...options }, FORMAT_NAME);\n }\n\n /**\n * Read DDS bytes with this profile.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input DDS bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} GPU-free raw/debug/texture payload for the selected emit target.\n */\n Read(input, options = {})\n {\n return readWithValues(input, this.GetValues(options), \"dds\");\n }\n\n /**\n * Read DDS bytes asynchronously with this profile.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input DDS bytes.\n * @param {object} [options] Per-call values.\n * @returns {Promise<object>} GPU-free raw/debug/texture payload for the selected emit target.\n */\n async ReadAsync(input, options = {})\n {\n return this.Read(input, options);\n }\n\n /**\n * Inspect DDS bytes without decoding texture data.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input DDS bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} DDS header metadata.\n */\n Inspect(input, options = {})\n {\n return inspectWithValues(input, this.GetValues(options), \"dds\");\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 DDS read.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input DDS bytes.\n * @param {object} [options] Read options.\n * @returns {object} GPU-free raw/debug/texture payload for the selected emit target.\n */\n static read(input, options = {})\n {\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"dds\", ...options }, FORMAT_NAME), \"dds\");\n }\n\n /**\n * One-shot asynchronous DDS read.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input DDS bytes.\n * @param {object} [options] Read options.\n * @returns {Promise<object>} GPU-free raw/debug/texture payload for the selected emit target.\n */\n static async readAsync(input, options = {})\n {\n return CjsDdsFormat.read(input, options);\n }\n\n /**\n * One-shot DDS inspection.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input DDS bytes.\n * @param {object} [options] Inspect options.\n * @returns {object} DDS header metadata.\n */\n static inspect(input, options = {})\n {\n return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"dds\", ...options }, FORMAT_NAME), \"dds\");\n }\n\n /**\n * One-shot DDS support probe.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input DDS bytes.\n * @param {object} [options] Probe options.\n * @returns {object} Support/probe report.\n */\n static probeSupport(input, options = {})\n {\n return probeSupportWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"dds\", ...options }, FORMAT_NAME), \"dds\");\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 DDS file.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Candidate DDS bytes.\n * @returns {boolean} True when the DDS header is present and sized correctly.\n */\n static isDDS(input)\n {\n try\n {\n return isDDS(asUint8Array(input, \"Image input\"));\n }\n catch\n {\n return false;\n }\n }\n\n /**\n * Emit targets for this format (canonical frozen enum).\n */\n static Output = Object.freeze({\n IMAGE: OUTPUT_IMAGE,\n TEXTURE: OUTPUT_TEXTURE,\n RGBA: OUTPUT_RGBA,\n RAW: OUTPUT_RAW,\n JSON: OUTPUT_JSON\n });\n static OUTPUT_DDS_JSON = \"ddsJson\";\n static id = \"dds\";\n static mediaTypes = Object.freeze([ \"texture\", \"image\" ]);\n static outputs = CjsFormat.defineOutputs({\n texture: { probes: [ \"texture\", \"compressed\" ] },\n image: { decoded: true, probes: [ \"image\", \"rgba\" ] },\n rgba: { decoded: true },\n ddsJson: { role: \"debug\", probes: [ \"ddsJson\", \"raw\" ] },\n raw: { role: \"debug\", default: true, passthrough: true }\n });\n static extensions = Object.freeze([ \".dds\" ]);\n}\n\nexport default CjsDdsFormat;\n"],"names":["FORMAT_NAME","CjsDdsFormat","CjsFormat","DEFAULT_VALUES","constructor","options","SetValues","normalizeValues","inputType","GetValues","Read","input","readWithValues","ReadAsync","Inspect","inspectWithValues","ToJSON","value","toJsonValue","read","readAsync","inspect","probeSupport","probeSupportWithValues","toJSON","isDDS","asUint8Array","Output","Object","freeze","IMAGE","OUTPUT_IMAGE","TEXTURE","OUTPUT_TEXTURE","RGBA","OUTPUT_RGBA","RAW","OUTPUT_RAW","JSON","OUTPUT_JSON","OUTPUT_DDS_JSON","id","mediaTypes","outputs","defineOutputs","texture","probes","image","decoded","rgba","ddsJson","role","raw","default","passthrough","extensions"],"mappings":"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"}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
|
+
import { readBitsAt, readBitAt } from '../../../format/CjsBitReader.js';
|
|
2
|
+
|
|
1
3
|
// BC6H is a little-endian 128-bit block format. MODE_LAYOUTS describes the
|
|
2
4
|
// fixed endpoint bit assignments from the Khronos Data Format Specification,
|
|
3
5
|
// section 20.2. The decoder and its numeric pipeline are CarbonEngineJS code.
|
|
6
|
+
//
|
|
7
|
+
// The bit reads are the shared LSB-first primitives. A block codec addresses
|
|
8
|
+
// bits by absolute index inside the block rather than walking a stream, so it
|
|
9
|
+
// uses the stateless pair and allocates no cursor per block.
|
|
4
10
|
|
|
5
11
|
const MODE_LAYOUTS = Object.freeze(["M0 M1 GY4 BY4 BZ4 RW0 RW1 RW2 RW3 RW4 RW5 RW6 RW7 RW8 RW9 GW0 GW1 GW2 GW3 GW4 GW5 GW6 GW7 GW8 GW9 BW0 BW1 BW2 BW3 BW4 BW5 BW6 BW7 BW8 BW9 RX0 RX1 RX2 RX3 RX4 GZ4 GY0 GY1 GY2 GY3 GX0 GX1 GX2 GX3 GX4 BZ0 GZ0 GZ1 GZ2 GZ3 BX0 BX1 BX2 BX3 BX4 BZ1 BY0 BY1 BY2 BY3 RY0 RY1 RY2 RY3 RY4 BZ2 RZ0 RZ1 RZ2 RZ3 RZ4 BZ3 D0 D1 D2 D3 D4", "M0 M1 GY5 GZ4 GZ5 RW0 RW1 RW2 RW3 RW4 RW5 RW6 BZ0 BZ1 BY4 GW0 GW1 GW2 GW3 GW4 GW5 GW6 BY5 BZ2 GY4 BW0 BW1 BW2 BW3 BW4 BW5 BW6 BZ3 BZ5 BZ4 RX0 RX1 RX2 RX3 RX4 RX5 GY0 GY1 GY2 GY3 GX0 GX1 GX2 GX3 GX4 GX5 GZ0 GZ1 GZ2 GZ3 BX0 BX1 BX2 BX3 BX4 BX5 BY0 BY1 BY2 BY3 RY0 RY1 RY2 RY3 RY4 RY5 RZ0 RZ1 RZ2 RZ3 RZ4 RZ5 D0 D1 D2 D3 D4", "M0 M1 M2 M3 M4 RW0 RW1 RW2 RW3 RW4 RW5 RW6 RW7 RW8 RW9 GW0 GW1 GW2 GW3 GW4 GW5 GW6 GW7 GW8 GW9 BW0 BW1 BW2 BW3 BW4 BW5 BW6 BW7 BW8 BW9 RX0 RX1 RX2 RX3 RX4 RW10 GY0 GY1 GY2 GY3 GX0 GX1 GX2 GX3 GW10 BZ0 GZ0 GZ1 GZ2 GZ3 BX0 BX1 BX2 BX3 BW10 BZ1 BY0 BY1 BY2 BY3 RY0 RY1 RY2 RY3 RY4 BZ2 RZ0 RZ1 RZ2 RZ3 RZ4 BZ3 D0 D1 D2 D3 D4", "M0 M1 M2 M3 M4 RW0 RW1 RW2 RW3 RW4 RW5 RW6 RW7 RW8 RW9 GW0 GW1 GW2 GW3 GW4 GW5 GW6 GW7 GW8 GW9 BW0 BW1 BW2 BW3 BW4 BW5 BW6 BW7 BW8 BW9 RX0 RX1 RX2 RX3 RW10 GZ4 GY0 GY1 GY2 GY3 GX0 GX1 GX2 GX3 GX4 GW10 GZ0 GZ1 GZ2 GZ3 BX0 BX1 BX2 BX3 BW10 BZ1 BY0 BY1 BY2 BY3 RY0 RY1 RY2 RY3 BZ0 BZ2 RZ0 RZ1 RZ2 RZ3 GY4 BZ3 D0 D1 D2 D3 D4", "M0 M1 M2 M3 M4 RW0 RW1 RW2 RW3 RW4 RW5 RW6 RW7 RW8 RW9 GW0 GW1 GW2 GW3 GW4 GW5 GW6 GW7 GW8 GW9 BW0 BW1 BW2 BW3 BW4 BW5 BW6 BW7 BW8 BW9 RX0 RX1 RX2 RX3 RW10 BY4 GY0 GY1 GY2 GY3 GX0 GX1 GX2 GX3 GW10 BZ0 GZ0 GZ1 GZ2 GZ3 BX0 BX1 BX2 BX3 BX4 BW10 BY0 BY1 BY2 BY3 RY0 RY1 RY2 RY3 BZ1 BZ2 RZ0 RZ1 RZ2 RZ3 BZ4 BZ3 D0 D1 D2 D3 D4", "M0 M1 M2 M3 M4 RW0 RW1 RW2 RW3 RW4 RW5 RW6 RW7 RW8 BY4 GW0 GW1 GW2 GW3 GW4 GW5 GW6 GW7 GW8 GY4 BW0 BW1 BW2 BW3 BW4 BW5 BW6 BW7 BW8 BZ4 RX0 RX1 RX2 RX3 RX4 GZ4 GY0 GY1 GY2 GY3 GX0 GX1 GX2 GX3 GX4 BZ0 GZ0 GZ1 GZ2 GZ3 BX0 BX1 BX2 BX3 BX4 BZ1 BY0 BY1 BY2 BY3 RY0 RY1 RY2 RY3 RY4 BZ2 RZ0 RZ1 RZ2 RZ3 RZ4 BZ3 D0 D1 D2 D3 D4", "M0 M1 M2 M3 M4 RW0 RW1 RW2 RW3 RW4 RW5 RW6 RW7 GZ4 BY4 GW0 GW1 GW2 GW3 GW4 GW5 GW6 GW7 BZ2 GY4 BW0 BW1 BW2 BW3 BW4 BW5 BW6 BW7 BZ3 BZ4 RX0 RX1 RX2 RX3 RX4 RX5 GY0 GY1 GY2 GY3 GX0 GX1 GX2 GX3 GX4 BZ0 GZ0 GZ1 GZ2 GZ3 BX0 BX1 BX2 BX3 BX4 BZ1 BY0 BY1 BY2 BY3 RY0 RY1 RY2 RY3 RY4 RY5 RZ0 RZ1 RZ2 RZ3 RZ4 RZ5 D0 D1 D2 D3 D4", "M0 M1 M2 M3 M4 RW0 RW1 RW2 RW3 RW4 RW5 RW6 RW7 BZ0 BY4 GW0 GW1 GW2 GW3 GW4 GW5 GW6 GW7 GY5 GY4 BW0 BW1 BW2 BW3 BW4 BW5 BW6 BW7 GZ5 BZ4 RX0 RX1 RX2 RX3 RX4 GZ4 GY0 GY1 GY2 GY3 GX0 GX1 GX2 GX3 GX4 GX5 GZ0 GZ1 GZ2 GZ3 BX0 BX1 BX2 BX3 BX4 BZ1 BY0 BY1 BY2 BY3 RY0 RY1 RY2 RY3 RY4 BZ2 RZ0 RZ1 RZ2 RZ3 RZ4 BZ3 D0 D1 D2 D3 D4", "M0 M1 M2 M3 M4 RW0 RW1 RW2 RW3 RW4 RW5 RW6 RW7 BZ1 BY4 GW0 GW1 GW2 GW3 GW4 GW5 GW6 GW7 BY5 GY4 BW0 BW1 BW2 BW3 BW4 BW5 BW6 BW7 BZ5 BZ4 RX0 RX1 RX2 RX3 RX4 GZ4 GY0 GY1 GY2 GY3 GX0 GX1 GX2 GX3 GX4 BZ0 GZ0 GZ1 GZ2 GZ3 BX0 BX1 BX2 BX3 BX4 BX5 BY0 BY1 BY2 BY3 RY0 RY1 RY2 RY3 RY4 BZ2 RZ0 RZ1 RZ2 RZ3 RZ4 BZ3 D0 D1 D2 D3 D4", "M0 M1 M2 M3 M4 RW0 RW1 RW2 RW3 RW4 RW5 GZ4 BZ0 BZ1 BY4 GW0 GW1 GW2 GW3 GW4 GW5 GY5 BY5 BZ2 GY4 BW0 BW1 BW2 BW3 BW4 BW5 GZ5 BZ3 BZ5 BZ4 RX0 RX1 RX2 RX3 RX4 RX5 GY0 GY1 GY2 GY3 GX0 GX1 GX2 GX3 GX4 GX5 GZ0 GZ1 GZ2 GZ3 BX0 BX1 BX2 BX3 BX4 BX5 BY0 BY1 BY2 BY3 RY0 RY1 RY2 RY3 RY4 RY5 RZ0 RZ1 RZ2 RZ3 RZ4 RZ5 D0 D1 D2 D3 D4", "M0 M1 M2 M3 M4 RW0 RW1 RW2 RW3 RW4 RW5 RW6 RW7 RW8 RW9 GW0 GW1 GW2 GW3 GW4 GW5 GW6 GW7 GW8 GW9 BW0 BW1 BW2 BW3 BW4 BW5 BW6 BW7 BW8 BW9 RX0 RX1 RX2 RX3 RX4 RX5 RX6 RX7 RX8 RX9 GX0 GX1 GX2 GX3 GX4 GX5 GX6 GX7 GX8 GX9 BX0 BX1 BX2 BX3 BX4 BX5 BX6 BX7 BX8 BX9 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0", "M0 M1 M2 M3 M4 RW0 RW1 RW2 RW3 RW4 RW5 RW6 RW7 RW8 RW9 GW0 GW1 GW2 GW3 GW4 GW5 GW6 GW7 GW8 GW9 BW0 BW1 BW2 BW3 BW4 BW5 BW6 BW7 BW8 BW9 RX0 RX1 RX2 RX3 RX4 RX5 RX6 RX7 RX8 RW10 GX0 GX1 GX2 GX3 GX4 GX5 GX6 GX7 GX8 GW10 BX0 BX1 BX2 BX3 BX4 BX5 BX6 BX7 BX8 BW10 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0", "M0 M1 M2 M3 M4 RW0 RW1 RW2 RW3 RW4 RW5 RW6 RW7 RW8 RW9 GW0 GW1 GW2 GW3 GW4 GW5 GW6 GW7 GW8 GW9 BW0 BW1 BW2 BW3 BW4 BW5 BW6 BW7 BW8 BW9 RX0 RX1 RX2 RX3 RX4 RX5 RX6 RX7 RW11 RW10 GX0 GX1 GX2 GX3 GX4 GX5 GX6 GX7 GW11 GW10 BX0 BX1 BX2 BX3 BX4 BX5 BX6 BX7 BW11 BW10 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0", "M0 M1 M2 M3 M4 RW0 RW1 RW2 RW3 RW4 RW5 RW6 RW7 RW8 RW9 GW0 GW1 GW2 GW3 GW4 GW5 GW6 GW7 GW8 GW9 BW0 BW1 BW2 BW3 BW4 BW5 BW6 BW7 BW8 BW9 RX0 RX1 RX2 RX3 RW15 RW14 RW13 RW12 RW11 RW10 GX0 GX1 GX2 GX3 GW15 GW14 GW13 GW12 GW11 GW10 BX0 BX1 BX2 BX3 BW15 BW14 BW13 BW12 BW11 BW10 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0"]);
|
|
6
12
|
const MODES = Object.freeze([{
|
|
@@ -138,9 +144,9 @@ const WEIGHTS_4 = new Uint8Array([0, 4, 9, 13, 17, 21, 26, 30, 34, 38, 43, 47, 5
|
|
|
138
144
|
const PARTITIONS_2 = new Uint16Array([0xcccc, 0x8888, 0xeeee, 0xecc8, 0xc880, 0xfeec, 0xfec8, 0xec80, 0xc800, 0xffec, 0xfe80, 0xe800, 0xffe8, 0xff00, 0xfff0, 0xf000, 0xf710, 0x008e, 0x7100, 0x08ce, 0x008c, 0x7310, 0x3100, 0x8cce, 0x088c, 0x3110, 0x6666, 0x366c, 0x17e8, 0x0ff0, 0x718e, 0x399c]);
|
|
139
145
|
const ANCHOR_2 = new Uint8Array([15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 2, 8, 2, 2, 8, 8, 15, 2, 8, 2, 2, 8, 8, 2, 2]);
|
|
140
146
|
|
|
141
|
-
/**
|
|
142
|
-
* Decodes BC6H texture blocks into a normalized floating-point image for the DDS
|
|
143
|
-
* format reader.
|
|
147
|
+
/**
|
|
148
|
+
* Decodes BC6H texture blocks into a normalized floating-point image for the DDS
|
|
149
|
+
* format reader.
|
|
144
150
|
*/
|
|
145
151
|
function decodeBc6h(source, width, height, rowPitch = Math.ceil(width / 4) * 16, signed = false) {
|
|
146
152
|
const rgba = new Float32Array(width * height * 4);
|
|
@@ -156,14 +162,14 @@ function decodeBc6h(source, width, height, rowPitch = Math.ceil(width / 4) * 16,
|
|
|
156
162
|
return rgba;
|
|
157
163
|
}
|
|
158
164
|
|
|
159
|
-
/**
|
|
160
|
-
* Decodes one BC6H texture block into destination pixels for the DDS format
|
|
161
|
-
* reader.
|
|
165
|
+
/**
|
|
166
|
+
* Decodes one BC6H texture block into destination pixels for the DDS format
|
|
167
|
+
* reader.
|
|
162
168
|
*/
|
|
163
169
|
function decodeBc6hBlock(block, signed = false) {
|
|
164
170
|
if (block.byteLength < 16) throw new RangeError("BC6H block must contain 16 bytes");
|
|
165
|
-
const lowMode =
|
|
166
|
-
const modeCode = lowMode < 2 ? lowMode :
|
|
171
|
+
const lowMode = readBitsAt(block, 0, 2);
|
|
172
|
+
const modeCode = lowMode < 2 ? lowMode : readBitsAt(block, 0, 5);
|
|
167
173
|
const modeIndex = MODE_BY_CODE[modeCode];
|
|
168
174
|
if (modeIndex < 0) return opaqueBlackBlock();
|
|
169
175
|
const mode = MODES[modeIndex];
|
|
@@ -174,7 +180,7 @@ function decodeBc6hBlock(block, signed = false) {
|
|
|
174
180
|
}, () => [0, 0, 0]);
|
|
175
181
|
let shape = 0;
|
|
176
182
|
for (let sourceBit = 0; sourceBit < headerBits; sourceBit++) {
|
|
177
|
-
if (!
|
|
183
|
+
if (!readBitAt(block, sourceBit)) continue;
|
|
178
184
|
const target = descriptor[sourceBit];
|
|
179
185
|
if (!target) continue;
|
|
180
186
|
if (target.shape) {
|
|
@@ -192,7 +198,7 @@ function decodeBc6hBlock(block, signed = false) {
|
|
|
192
198
|
for (let pixel = 0; pixel < 16; pixel++) {
|
|
193
199
|
const isAnchor = pixel === 0 || pixel === anchor;
|
|
194
200
|
const indexBits = mode.indexBits - (isAnchor ? 1 : 0);
|
|
195
|
-
const colorIndex =
|
|
201
|
+
const colorIndex = readBitsAt(block, sourceBit, indexBits);
|
|
196
202
|
sourceBit += indexBits;
|
|
197
203
|
const subset = mode.subsets === 2 ? partition >>> pixel & 1 : 0;
|
|
198
204
|
const endpoint0 = endpoints[subset * 2];
|
|
@@ -256,14 +262,6 @@ function finishHalf(component, signed) {
|
|
|
256
262
|
function signExtend(value, bits) {
|
|
257
263
|
return value << 32 - bits >> 32 - bits;
|
|
258
264
|
}
|
|
259
|
-
function readBit(source, bit) {
|
|
260
|
-
return source[bit >>> 3] >>> (bit & 7) & 1;
|
|
261
|
-
}
|
|
262
|
-
function readBits(source, start, count) {
|
|
263
|
-
let value = 0;
|
|
264
|
-
for (let bit = 0; bit < count; bit++) value |= readBit(source, start + bit) << bit;
|
|
265
|
-
return value;
|
|
266
|
-
}
|
|
267
265
|
function halfToFloat(value) {
|
|
268
266
|
const sign = value & 0x8000 ? -1 : 1;
|
|
269
267
|
const exponent = value >>> 10 & 0x1f;
|