@carbonenginejs/runtime 0.1.0-alpha.0 → 0.1.0-alpha.2
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/schema/CjsSchema.js +20 -2
- package/dist/global/schema/CjsSchema.js.map +1 -1
- package/dist/global/schema/hydration.js +14 -0
- package/dist/global/schema/hydration.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 +69 -9
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +12 -3
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.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 +158 -345
- 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 +92 -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,10 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
1
|
+
import { CjsBitReader } from '../../../format/CjsBitReader.js';
|
|
2
|
+
import { CjsFormatRangeError } from '../../../format/CjsFormatError.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Bit-level IO for Wwise Vorbis repacking.
|
|
6
|
+
*
|
|
7
|
+
* Vorbis bitstreams are LSB-first within each byte; both the reader and the
|
|
8
|
+
* Ogg writer here follow that convention. The writer assembles one Ogg page
|
|
9
|
+
* per packet (identification, comment, setup, then one page per audio
|
|
10
|
+
* packet), matching the ww2ogg reference behavior.
|
|
8
11
|
*/
|
|
9
12
|
|
|
10
13
|
const OGG_HEADER_BYTES = 27;
|
|
@@ -24,13 +27,13 @@ function buildCrcTable() {
|
|
|
24
27
|
return table;
|
|
25
28
|
}
|
|
26
29
|
|
|
27
|
-
/**
|
|
28
|
-
* Compute the Ogg page checksum (forward CRC-32, polynomial 0x04c11db7,
|
|
29
|
-
* zero initial value, no final xor).
|
|
30
|
-
*
|
|
31
|
-
* @param {Uint8Array} bytes Page bytes with the checksum field zeroed.
|
|
32
|
-
* @param {number} length Number of bytes to include.
|
|
33
|
-
* @returns {number} Unsigned 32-bit checksum.
|
|
30
|
+
/**
|
|
31
|
+
* Compute the Ogg page checksum (forward CRC-32, polynomial 0x04c11db7,
|
|
32
|
+
* zero initial value, no final xor).
|
|
33
|
+
*
|
|
34
|
+
* @param {Uint8Array} bytes Page bytes with the checksum field zeroed.
|
|
35
|
+
* @param {number} length Number of bytes to include.
|
|
36
|
+
* @returns {number} Unsigned 32-bit checksum.
|
|
34
37
|
*/
|
|
35
38
|
function oggChecksum(bytes, length) {
|
|
36
39
|
let crc = 0;
|
|
@@ -40,75 +43,49 @@ function oggChecksum(bytes, length) {
|
|
|
40
43
|
return crc;
|
|
41
44
|
}
|
|
42
45
|
|
|
43
|
-
/**
|
|
44
|
-
*
|
|
46
|
+
/**
|
|
47
|
+
* Error raised when a Wwise Vorbis bitstream runs out mid-read.
|
|
48
|
+
*
|
|
49
|
+
* The `code` is the package-wide truncation code, which `CjsFormatReadError`
|
|
50
|
+
* does not itself carry.
|
|
45
51
|
*/
|
|
46
|
-
class
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Create a reader over `bytes` starting at `offset`.
|
|
55
|
-
*
|
|
56
|
-
* @param {Uint8Array} bytes Source bytes.
|
|
57
|
-
* @param {number} [offset] Starting byte offset.
|
|
58
|
-
*/
|
|
59
|
-
constructor(bytes, offset = 0) {
|
|
60
|
-
this.#bytes = bytes;
|
|
61
|
-
this.#position = offset;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Read a single bit.
|
|
66
|
-
*
|
|
67
|
-
* @returns {number} 0 or 1.
|
|
68
|
-
*/
|
|
69
|
-
readBit() {
|
|
70
|
-
if (this.#bitsLeft === 0) {
|
|
71
|
-
if (this.#position >= this.#bytes.length) {
|
|
72
|
-
const error = new Error("wem: bitstream out of bits");
|
|
73
|
-
error.code = "CJS_FORMAT_TRUNCATED";
|
|
74
|
-
throw error;
|
|
75
|
-
}
|
|
76
|
-
this.#bitBuffer = this.#bytes[this.#position++];
|
|
77
|
-
this.#bitsLeft = 8;
|
|
78
|
-
}
|
|
79
|
-
const bit = this.#bitBuffer & 1;
|
|
80
|
-
this.#bitBuffer >>= 1;
|
|
81
|
-
this.#bitsLeft--;
|
|
82
|
-
this.#totalBitsRead++;
|
|
83
|
-
return bit;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* Read `count` bits as an unsigned integer (LSB-first).
|
|
88
|
-
*
|
|
89
|
-
* @param {number} count Bit count (0..32).
|
|
90
|
-
* @returns {number} Unsigned value.
|
|
91
|
-
*/
|
|
92
|
-
readBits(count) {
|
|
93
|
-
let value = 0;
|
|
94
|
-
for (let i = 0; i < count; i++) {
|
|
95
|
-
if (this.readBit()) value |= 1 << i;
|
|
96
|
-
}
|
|
97
|
-
return value >>> 0;
|
|
52
|
+
class WemBitstreamError extends CjsFormatRangeError {
|
|
53
|
+
/** Creates a truncation error with the cursor state that produced it. */
|
|
54
|
+
constructor(message, details = {}) {
|
|
55
|
+
super(message, details);
|
|
56
|
+
this.name = "WemBitstreamError";
|
|
57
|
+
this.code = "CJS_FORMAT_TRUNCATED";
|
|
98
58
|
}
|
|
59
|
+
}
|
|
99
60
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
61
|
+
/**
|
|
62
|
+
* LSB-first bit reader over a byte range.
|
|
63
|
+
*
|
|
64
|
+
* The bit cursor itself is shared (`CjsBitReader`); Vorbis is LSB-first, which
|
|
65
|
+
* is the shared convention. Only the error identity is Wwise's own: a truncated
|
|
66
|
+
* bitstream here is a truncated FILE, so it throws rather than reporting a
|
|
67
|
+
* recoverable end-of-packet the way the Ogg packet reader does.
|
|
68
|
+
*/
|
|
69
|
+
class BitReader extends CjsBitReader {
|
|
70
|
+
static ReadError = WemBitstreamError;
|
|
71
|
+
static endOfDataMessage = "wem: bitstream out of bits";
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Create a reader over `bytes` starting at `offset`.
|
|
75
|
+
*
|
|
76
|
+
* @param {Uint8Array} bytes Source bytes.
|
|
77
|
+
* @param {number} [offset] Starting byte offset.
|
|
104
78
|
*/
|
|
105
|
-
|
|
106
|
-
|
|
79
|
+
constructor(bytes, offset = 0) {
|
|
80
|
+
super(bytes, {
|
|
81
|
+
offset,
|
|
82
|
+
source: "wem"
|
|
83
|
+
});
|
|
107
84
|
}
|
|
108
85
|
}
|
|
109
86
|
|
|
110
|
-
/**
|
|
111
|
-
* LSB-first bit writer that assembles Ogg pages, one packet per page.
|
|
87
|
+
/**
|
|
88
|
+
* LSB-first bit writer that assembles Ogg pages, one packet per page.
|
|
112
89
|
*/
|
|
113
90
|
class OggPageWriter {
|
|
114
91
|
#pages = [];
|
|
@@ -121,10 +98,10 @@ class OggPageWriter {
|
|
|
121
98
|
#first = true;
|
|
122
99
|
#continued = false;
|
|
123
100
|
|
|
124
|
-
/**
|
|
125
|
-
* Write a single bit.
|
|
126
|
-
*
|
|
127
|
-
* @param {number|boolean} bit Bit value.
|
|
101
|
+
/**
|
|
102
|
+
* Write a single bit.
|
|
103
|
+
*
|
|
104
|
+
* @param {number|boolean} bit Bit value.
|
|
128
105
|
*/
|
|
129
106
|
writeBit(bit) {
|
|
130
107
|
if (bit) this.#bitBuffer |= 1 << this.#bitsStored;
|
|
@@ -132,11 +109,11 @@ class OggPageWriter {
|
|
|
132
109
|
if (this.#bitsStored === 8) this.#flushBits();
|
|
133
110
|
}
|
|
134
111
|
|
|
135
|
-
/**
|
|
136
|
-
* Write `count` bits of `value` (LSB-first).
|
|
137
|
-
*
|
|
138
|
-
* @param {number} value Unsigned value.
|
|
139
|
-
* @param {number} count Bit count (0..32).
|
|
112
|
+
/**
|
|
113
|
+
* Write `count` bits of `value` (LSB-first).
|
|
114
|
+
*
|
|
115
|
+
* @param {number} value Unsigned value.
|
|
116
|
+
* @param {number} count Bit count (0..32).
|
|
140
117
|
*/
|
|
141
118
|
writeBits(value, count) {
|
|
142
119
|
for (let i = 0; i < count; i++) {
|
|
@@ -144,10 +121,10 @@ class OggPageWriter {
|
|
|
144
121
|
}
|
|
145
122
|
}
|
|
146
123
|
|
|
147
|
-
/**
|
|
148
|
-
* Set the granule position recorded on the next flushed page.
|
|
149
|
-
*
|
|
150
|
-
* @param {number} granule Unsigned granule position (< 2^53).
|
|
124
|
+
/**
|
|
125
|
+
* Set the granule position recorded on the next flushed page.
|
|
126
|
+
*
|
|
127
|
+
* @param {number} granule Unsigned granule position (< 2^53).
|
|
151
128
|
*/
|
|
152
129
|
setGranule(granule) {
|
|
153
130
|
this.#granule = granule;
|
|
@@ -166,10 +143,10 @@ class OggPageWriter {
|
|
|
166
143
|
this.#bitBuffer = 0;
|
|
167
144
|
}
|
|
168
145
|
|
|
169
|
-
/**
|
|
170
|
-
* Finish the current packet and emit it as one Ogg page.
|
|
171
|
-
*
|
|
172
|
-
* @param {boolean} [last] Mark this page as end-of-stream.
|
|
146
|
+
/**
|
|
147
|
+
* Finish the current packet and emit it as one Ogg page.
|
|
148
|
+
*
|
|
149
|
+
* @param {boolean} [last] Mark this page as end-of-stream.
|
|
173
150
|
*/
|
|
174
151
|
flushPage(last = false) {
|
|
175
152
|
this.#flushBits();
|
|
@@ -208,10 +185,10 @@ class OggPageWriter {
|
|
|
208
185
|
this.#payloadBytes = 0;
|
|
209
186
|
}
|
|
210
187
|
|
|
211
|
-
/**
|
|
212
|
-
* Concatenate all flushed pages into one buffer.
|
|
213
|
-
*
|
|
214
|
-
* @returns {Uint8Array} Complete Ogg stream bytes.
|
|
188
|
+
/**
|
|
189
|
+
* Concatenate all flushed pages into one buffer.
|
|
190
|
+
*
|
|
191
|
+
* @returns {Uint8Array} Complete Ogg stream bytes.
|
|
215
192
|
*/
|
|
216
193
|
toBytes() {
|
|
217
194
|
let total = 0;
|
|
@@ -225,10 +202,10 @@ class OggPageWriter {
|
|
|
225
202
|
return bytes;
|
|
226
203
|
}
|
|
227
204
|
|
|
228
|
-
/**
|
|
229
|
-
* Number of pages flushed so far.
|
|
230
|
-
*
|
|
231
|
-
* @returns {number} Page count.
|
|
205
|
+
/**
|
|
206
|
+
* Number of pages flushed so far.
|
|
207
|
+
*
|
|
208
|
+
* @returns {number} Page count.
|
|
232
209
|
*/
|
|
233
210
|
get pageCount() {
|
|
234
211
|
return this.#pages.length;
|
|
@@ -241,11 +218,11 @@ function writeU32(bytes, offset, value) {
|
|
|
241
218
|
bytes[offset + 3] = value >>> 24 & 0xff;
|
|
242
219
|
}
|
|
243
220
|
|
|
244
|
-
/**
|
|
245
|
-
* Smallest number of bits needed to represent `value` (Vorbis ilog).
|
|
246
|
-
*
|
|
247
|
-
* @param {number} value Unsigned value.
|
|
248
|
-
* @returns {number} Bit count; 0 when value is 0.
|
|
221
|
+
/**
|
|
222
|
+
* Smallest number of bits needed to represent `value` (Vorbis ilog).
|
|
223
|
+
*
|
|
224
|
+
* @param {number} value Unsigned value.
|
|
225
|
+
* @returns {number} Bit count; 0 when value is 0.
|
|
249
226
|
*/
|
|
250
227
|
function ilog(value) {
|
|
251
228
|
let result = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bitStream.js","sources":["../../../../../../src/resource/formats/wem/core/bitStream.js"],"sourcesContent":["/**\r\n * Bit-level IO for Wwise Vorbis repacking.\r\n *\r\n * Vorbis bitstreams are LSB-first within each byte; both the reader and the\r\n * Ogg writer here follow that convention. The writer assembles one Ogg page\r\n * per packet (identification, comment, setup, then one page per audio\r\n * packet), matching the ww2ogg reference behavior.\r\n */\r\n\r\nconst OGG_HEADER_BYTES = 27;\r\nconst OGG_MAX_SEGMENTS = 255;\r\nconst OGG_SEGMENT_SIZE = 255;\r\nconst OGG_MAX_PAYLOAD = OGG_MAX_SEGMENTS * OGG_SEGMENT_SIZE;\r\n\r\nconst CRC_TABLE = buildCrcTable();\r\n\r\nfunction buildCrcTable()\r\n{\r\n const table = new Uint32Array(256);\r\n for (let i = 0; i < 256; i++)\r\n {\r\n let r = (i << 24) >>> 0;\r\n for (let bit = 0; bit < 8; bit++)\r\n {\r\n r = ((r & 0x80000000) ? ((r << 1) ^ 0x04c11db7) : (r << 1)) >>> 0;\r\n }\r\n table[i] = r;\r\n }\r\n return table;\r\n}\r\n\r\n/**\r\n * Compute the Ogg page checksum (forward CRC-32, polynomial 0x04c11db7,\r\n * zero initial value, no final xor).\r\n *\r\n * @param {Uint8Array} bytes Page bytes with the checksum field zeroed.\r\n * @param {number} length Number of bytes to include.\r\n * @returns {number} Unsigned 32-bit checksum.\r\n */\r\nexport function oggChecksum(bytes, length)\r\n{\r\n let crc = 0;\r\n for (let i = 0; i < length; i++)\r\n {\r\n crc = (((crc << 8) >>> 0) ^ CRC_TABLE[((crc >>> 24) ^ bytes[i]) & 0xff]) >>> 0;\r\n }\r\n return crc;\r\n}\r\n\r\n/**\r\n * LSB-first bit reader over a byte range.\r\n */\r\nexport class BitReader\r\n{\r\n #bytes;\r\n #position;\r\n #bitBuffer = 0;\r\n #bitsLeft = 0;\r\n #totalBitsRead = 0;\r\n\r\n /**\r\n * Create a reader over `bytes` starting at `offset`.\r\n *\r\n * @param {Uint8Array} bytes Source bytes.\r\n * @param {number} [offset] Starting byte offset.\r\n */\r\n constructor(bytes, offset = 0)\r\n {\r\n this.#bytes = bytes;\r\n this.#position = offset;\r\n }\r\n\r\n /**\r\n * Read a single bit.\r\n *\r\n * @returns {number} 0 or 1.\r\n */\r\n readBit()\r\n {\r\n if (this.#bitsLeft === 0)\r\n {\r\n if (this.#position >= this.#bytes.length)\r\n {\r\n const error = new Error(\"wem: bitstream out of bits\");\r\n error.code = \"CJS_FORMAT_TRUNCATED\";\r\n throw error;\r\n }\r\n this.#bitBuffer = this.#bytes[this.#position++];\r\n this.#bitsLeft = 8;\r\n }\r\n const bit = this.#bitBuffer & 1;\r\n this.#bitBuffer >>= 1;\r\n this.#bitsLeft--;\r\n this.#totalBitsRead++;\r\n return bit;\r\n }\r\n\r\n /**\r\n * Read `count` bits as an unsigned integer (LSB-first).\r\n *\r\n * @param {number} count Bit count (0..32).\r\n * @returns {number} Unsigned value.\r\n */\r\n readBits(count)\r\n {\r\n let value = 0;\r\n for (let i = 0; i < count; i++)\r\n {\r\n if (this.readBit()) value |= (1 << i);\r\n }\r\n return value >>> 0;\r\n }\r\n\r\n /**\r\n * Total bits consumed so far.\r\n *\r\n * @returns {number} Bit count.\r\n */\r\n get totalBitsRead()\r\n {\r\n return this.#totalBitsRead;\r\n }\r\n}\r\n\r\n/**\r\n * LSB-first bit writer that assembles Ogg pages, one packet per page.\r\n */\r\nexport class OggPageWriter\r\n{\r\n #pages = [];\r\n #payload = new Uint8Array(OGG_MAX_PAYLOAD);\r\n #payloadBytes = 0;\r\n #bitBuffer = 0;\r\n #bitsStored = 0;\r\n #granule = 0;\r\n #sequenceNumber = 0;\r\n #first = true;\r\n #continued = false;\r\n\r\n /**\r\n * Write a single bit.\r\n *\r\n * @param {number|boolean} bit Bit value.\r\n */\r\n writeBit(bit)\r\n {\r\n if (bit) this.#bitBuffer |= (1 << this.#bitsStored);\r\n this.#bitsStored++;\r\n if (this.#bitsStored === 8) this.#flushBits();\r\n }\r\n\r\n /**\r\n * Write `count` bits of `value` (LSB-first).\r\n *\r\n * @param {number} value Unsigned value.\r\n * @param {number} count Bit count (0..32).\r\n */\r\n writeBits(value, count)\r\n {\r\n for (let i = 0; i < count; i++)\r\n {\r\n this.writeBit((value >>> i) & 1);\r\n }\r\n }\r\n\r\n /**\r\n * Set the granule position recorded on the next flushed page.\r\n *\r\n * @param {number} granule Unsigned granule position (< 2^53).\r\n */\r\n setGranule(granule)\r\n {\r\n this.#granule = granule;\r\n }\r\n\r\n /** Flushes bits into the current WEM binary writer output. */\r\n #flushBits()\r\n {\r\n if (this.#bitsStored === 0) return;\r\n if (this.#payloadBytes === OGG_MAX_PAYLOAD)\r\n {\r\n const error = new Error(\"wem: packet too large for one Ogg page\");\r\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\r\n throw error;\r\n }\r\n this.#payload[this.#payloadBytes++] = this.#bitBuffer;\r\n this.#bitsStored = 0;\r\n this.#bitBuffer = 0;\r\n }\r\n\r\n /**\r\n * Finish the current packet and emit it as one Ogg page.\r\n *\r\n * @param {boolean} [last] Mark this page as end-of-stream.\r\n */\r\n flushPage(last = false)\r\n {\r\n this.#flushBits();\r\n if (this.#payloadBytes === 0) return;\r\n\r\n const payloadBytes = this.#payloadBytes;\r\n let segments = Math.floor((payloadBytes + OGG_SEGMENT_SIZE) / OGG_SEGMENT_SIZE);\r\n if (segments === OGG_MAX_SEGMENTS + 1) segments = OGG_MAX_SEGMENTS;\r\n\r\n const page = new Uint8Array(OGG_HEADER_BYTES + segments + payloadBytes);\r\n page[0] = 0x4f;\r\n page[1] = 0x67;\r\n page[2] = 0x67;\r\n page[3] = 0x53;\r\n page[4] = 0;\r\n page[5] = (this.#continued ? 1 : 0) | (this.#first ? 2 : 0) | (last ? 4 : 0);\r\n writeU32(page, 6, this.#granule % 0x100000000);\r\n writeU32(page, 10, Math.floor(this.#granule / 0x100000000));\r\n writeU32(page, 14, 1);\r\n writeU32(page, 18, this.#sequenceNumber);\r\n writeU32(page, 22, 0);\r\n page[26] = segments;\r\n\r\n let bytesLeft = payloadBytes;\r\n for (let i = 0; i < segments; i++)\r\n {\r\n if (bytesLeft >= OGG_SEGMENT_SIZE)\r\n {\r\n page[27 + i] = OGG_SEGMENT_SIZE;\r\n bytesLeft -= OGG_SEGMENT_SIZE;\r\n }\r\n else\r\n {\r\n page[27 + i] = bytesLeft;\r\n }\r\n }\r\n\r\n page.set(this.#payload.subarray(0, payloadBytes), OGG_HEADER_BYTES + segments);\r\n writeU32(page, 22, oggChecksum(page, page.length));\r\n\r\n this.#pages.push(page);\r\n this.#sequenceNumber++;\r\n this.#first = false;\r\n this.#continued = false;\r\n this.#payloadBytes = 0;\r\n }\r\n\r\n /**\r\n * Concatenate all flushed pages into one buffer.\r\n *\r\n * @returns {Uint8Array} Complete Ogg stream bytes.\r\n */\r\n toBytes()\r\n {\r\n let total = 0;\r\n for (const page of this.#pages) total += page.length;\r\n const bytes = new Uint8Array(total);\r\n let offset = 0;\r\n for (const page of this.#pages)\r\n {\r\n bytes.set(page, offset);\r\n offset += page.length;\r\n }\r\n return bytes;\r\n }\r\n\r\n /**\r\n * Number of pages flushed so far.\r\n *\r\n * @returns {number} Page count.\r\n */\r\n get pageCount()\r\n {\r\n return this.#pages.length;\r\n }\r\n}\r\n\r\nfunction writeU32(bytes, offset, value)\r\n{\r\n bytes[offset] = value & 0xff;\r\n bytes[offset + 1] = (value >>> 8) & 0xff;\r\n bytes[offset + 2] = (value >>> 16) & 0xff;\r\n bytes[offset + 3] = (value >>> 24) & 0xff;\r\n}\r\n\r\n/**\r\n * Smallest number of bits needed to represent `value` (Vorbis ilog).\r\n *\r\n * @param {number} value Unsigned value.\r\n * @returns {number} Bit count; 0 when value is 0.\r\n */\r\nexport function ilog(value)\r\n{\r\n let result = 0;\r\n let v = value >>> 0;\r\n while (v)\r\n {\r\n result++;\r\n v >>>= 1;\r\n }\r\n return result;\r\n}\r\n"],"names":["OGG_HEADER_BYTES","OGG_MAX_SEGMENTS","OGG_SEGMENT_SIZE","OGG_MAX_PAYLOAD","CRC_TABLE","buildCrcTable","table","Uint32Array","i","r","bit","oggChecksum","bytes","length","crc","BitReader","constructor","offset","readBit","error","Error","code","readBits","count","value","totalBitsRead","OggPageWriter","Uint8Array","writeBit","writeBits","setGranule","granule","#flushBits","flushPage","last","payloadBytes","segments","Math","floor","page","writeU32","bytesLeft","set","subarray","push","toBytes","total","pageCount","ilog","result","v"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bitStream.js","sources":["../../../../../../src/resource/formats/wem/core/bitStream.js"],"sourcesContent":["/**\n * Bit-level IO for Wwise Vorbis repacking.\n *\n * Vorbis bitstreams are LSB-first within each byte; both the reader and the\n * Ogg writer here follow that convention. The writer assembles one Ogg page\n * per packet (identification, comment, setup, then one page per audio\n * packet), matching the ww2ogg reference behavior.\n */\n\nimport { CjsBitReader } from \"../../../format/CjsBitReader.js\";\nimport { CjsFormatRangeError } from \"../../../format/CjsFormatError.js\";\n\nconst OGG_HEADER_BYTES = 27;\nconst OGG_MAX_SEGMENTS = 255;\nconst OGG_SEGMENT_SIZE = 255;\nconst OGG_MAX_PAYLOAD = OGG_MAX_SEGMENTS * OGG_SEGMENT_SIZE;\n\nconst CRC_TABLE = buildCrcTable();\n\nfunction buildCrcTable()\n{\n const table = new Uint32Array(256);\n for (let i = 0; i < 256; i++)\n {\n let r = (i << 24) >>> 0;\n for (let bit = 0; bit < 8; bit++)\n {\n r = ((r & 0x80000000) ? ((r << 1) ^ 0x04c11db7) : (r << 1)) >>> 0;\n }\n table[i] = r;\n }\n return table;\n}\n\n/**\n * Compute the Ogg page checksum (forward CRC-32, polynomial 0x04c11db7,\n * zero initial value, no final xor).\n *\n * @param {Uint8Array} bytes Page bytes with the checksum field zeroed.\n * @param {number} length Number of bytes to include.\n * @returns {number} Unsigned 32-bit checksum.\n */\nexport function oggChecksum(bytes, length)\n{\n let crc = 0;\n for (let i = 0; i < length; i++)\n {\n crc = (((crc << 8) >>> 0) ^ CRC_TABLE[((crc >>> 24) ^ bytes[i]) & 0xff]) >>> 0;\n }\n return crc;\n}\n\n/**\n * Error raised when a Wwise Vorbis bitstream runs out mid-read.\n *\n * The `code` is the package-wide truncation code, which `CjsFormatReadError`\n * does not itself carry.\n */\nclass WemBitstreamError extends CjsFormatRangeError\n{\n /** Creates a truncation error with the cursor state that produced it. */\n constructor(message, details = {})\n {\n super(message, details);\n this.name = \"WemBitstreamError\";\n this.code = \"CJS_FORMAT_TRUNCATED\";\n }\n}\n\n/**\n * LSB-first bit reader over a byte range.\n *\n * The bit cursor itself is shared (`CjsBitReader`); Vorbis is LSB-first, which\n * is the shared convention. Only the error identity is Wwise's own: a truncated\n * bitstream here is a truncated FILE, so it throws rather than reporting a\n * recoverable end-of-packet the way the Ogg packet reader does.\n */\nexport class BitReader extends CjsBitReader\n{\n static ReadError = WemBitstreamError;\n\n static endOfDataMessage = \"wem: bitstream out of bits\";\n\n /**\n * Create a reader over `bytes` starting at `offset`.\n *\n * @param {Uint8Array} bytes Source bytes.\n * @param {number} [offset] Starting byte offset.\n */\n constructor(bytes, offset = 0)\n {\n super(bytes, { offset, source: \"wem\" });\n }\n}\n\n/**\n * LSB-first bit writer that assembles Ogg pages, one packet per page.\n */\nexport class OggPageWriter\n{\n #pages = [];\n #payload = new Uint8Array(OGG_MAX_PAYLOAD);\n #payloadBytes = 0;\n #bitBuffer = 0;\n #bitsStored = 0;\n #granule = 0;\n #sequenceNumber = 0;\n #first = true;\n #continued = false;\n\n /**\n * Write a single bit.\n *\n * @param {number|boolean} bit Bit value.\n */\n writeBit(bit)\n {\n if (bit) this.#bitBuffer |= (1 << this.#bitsStored);\n this.#bitsStored++;\n if (this.#bitsStored === 8) this.#flushBits();\n }\n\n /**\n * Write `count` bits of `value` (LSB-first).\n *\n * @param {number} value Unsigned value.\n * @param {number} count Bit count (0..32).\n */\n writeBits(value, count)\n {\n for (let i = 0; i < count; i++)\n {\n this.writeBit((value >>> i) & 1);\n }\n }\n\n /**\n * Set the granule position recorded on the next flushed page.\n *\n * @param {number} granule Unsigned granule position (< 2^53).\n */\n setGranule(granule)\n {\n this.#granule = granule;\n }\n\n /** Flushes bits into the current WEM binary writer output. */\n #flushBits()\n {\n if (this.#bitsStored === 0) return;\n if (this.#payloadBytes === OGG_MAX_PAYLOAD)\n {\n const error = new Error(\"wem: packet too large for one Ogg page\");\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n throw error;\n }\n this.#payload[this.#payloadBytes++] = this.#bitBuffer;\n this.#bitsStored = 0;\n this.#bitBuffer = 0;\n }\n\n /**\n * Finish the current packet and emit it as one Ogg page.\n *\n * @param {boolean} [last] Mark this page as end-of-stream.\n */\n flushPage(last = false)\n {\n this.#flushBits();\n if (this.#payloadBytes === 0) return;\n\n const payloadBytes = this.#payloadBytes;\n let segments = Math.floor((payloadBytes + OGG_SEGMENT_SIZE) / OGG_SEGMENT_SIZE);\n if (segments === OGG_MAX_SEGMENTS + 1) segments = OGG_MAX_SEGMENTS;\n\n const page = new Uint8Array(OGG_HEADER_BYTES + segments + payloadBytes);\n page[0] = 0x4f;\n page[1] = 0x67;\n page[2] = 0x67;\n page[3] = 0x53;\n page[4] = 0;\n page[5] = (this.#continued ? 1 : 0) | (this.#first ? 2 : 0) | (last ? 4 : 0);\n writeU32(page, 6, this.#granule % 0x100000000);\n writeU32(page, 10, Math.floor(this.#granule / 0x100000000));\n writeU32(page, 14, 1);\n writeU32(page, 18, this.#sequenceNumber);\n writeU32(page, 22, 0);\n page[26] = segments;\n\n let bytesLeft = payloadBytes;\n for (let i = 0; i < segments; i++)\n {\n if (bytesLeft >= OGG_SEGMENT_SIZE)\n {\n page[27 + i] = OGG_SEGMENT_SIZE;\n bytesLeft -= OGG_SEGMENT_SIZE;\n }\n else\n {\n page[27 + i] = bytesLeft;\n }\n }\n\n page.set(this.#payload.subarray(0, payloadBytes), OGG_HEADER_BYTES + segments);\n writeU32(page, 22, oggChecksum(page, page.length));\n\n this.#pages.push(page);\n this.#sequenceNumber++;\n this.#first = false;\n this.#continued = false;\n this.#payloadBytes = 0;\n }\n\n /**\n * Concatenate all flushed pages into one buffer.\n *\n * @returns {Uint8Array} Complete Ogg stream bytes.\n */\n toBytes()\n {\n let total = 0;\n for (const page of this.#pages) total += page.length;\n const bytes = new Uint8Array(total);\n let offset = 0;\n for (const page of this.#pages)\n {\n bytes.set(page, offset);\n offset += page.length;\n }\n return bytes;\n }\n\n /**\n * Number of pages flushed so far.\n *\n * @returns {number} Page count.\n */\n get pageCount()\n {\n return this.#pages.length;\n }\n}\n\nfunction writeU32(bytes, offset, value)\n{\n bytes[offset] = value & 0xff;\n bytes[offset + 1] = (value >>> 8) & 0xff;\n bytes[offset + 2] = (value >>> 16) & 0xff;\n bytes[offset + 3] = (value >>> 24) & 0xff;\n}\n\n/**\n * Smallest number of bits needed to represent `value` (Vorbis ilog).\n *\n * @param {number} value Unsigned value.\n * @returns {number} Bit count; 0 when value is 0.\n */\nexport function ilog(value)\n{\n let result = 0;\n let v = value >>> 0;\n while (v)\n {\n result++;\n v >>>= 1;\n }\n return result;\n}\n"],"names":["OGG_HEADER_BYTES","OGG_MAX_SEGMENTS","OGG_SEGMENT_SIZE","OGG_MAX_PAYLOAD","CRC_TABLE","buildCrcTable","table","Uint32Array","i","r","bit","oggChecksum","bytes","length","crc","WemBitstreamError","CjsFormatRangeError","constructor","message","details","name","code","BitReader","CjsBitReader","ReadError","endOfDataMessage","offset","source","OggPageWriter","Uint8Array","writeBit","writeBits","value","count","setGranule","granule","#flushBits","error","Error","flushPage","last","payloadBytes","segments","Math","floor","page","writeU32","bytesLeft","set","subarray","push","toBytes","total","pageCount","ilog","result","v"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,MAAMA,gBAAgB,GAAG,EAAE;AAC3B,MAAMC,gBAAgB,GAAG,GAAG;AAC5B,MAAMC,gBAAgB,GAAG,GAAG;AAC5B,MAAMC,eAAe,GAAGF,gBAAgB,GAAGC,gBAAgB;AAE3D,MAAME,SAAS,GAAGC,aAAa,EAAE;AAEjC,SAASA,aAAaA,GACtB;AACI,EAAA,MAAMC,KAAK,GAAG,IAAIC,WAAW,CAAC,GAAG,CAAC;EAClC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,GAAG,EAAEA,CAAC,EAAE,EAC5B;AACI,IAAA,IAAIC,CAAC,GAAID,CAAC,IAAI,EAAE,KAAM,CAAC;IACvB,KAAK,IAAIE,GAAG,GAAG,CAAC,EAAEA,GAAG,GAAG,CAAC,EAAEA,GAAG,EAAE,EAChC;AACID,MAAAA,CAAC,GAAG,CAAEA,CAAC,GAAG,UAAU,GAAMA,CAAC,IAAI,CAAC,GAAI,UAAU,GAAKA,CAAC,IAAI,CAAE,MAAM,CAAC;AACrE,IAAA;AACAH,IAAAA,KAAK,CAACE,CAAC,CAAC,GAAGC,CAAC;AAChB,EAAA;AACA,EAAA,OAAOH,KAAK;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASK,WAAWA,CAACC,KAAK,EAAEC,MAAM,EACzC;EACI,IAAIC,GAAG,GAAG,CAAC;EACX,KAAK,IAAIN,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGK,MAAM,EAAEL,CAAC,EAAE,EAC/B;IACIM,GAAG,GAAG,CAAGA,GAAG,IAAI,CAAC,KAAM,CAAC,GAAIV,SAAS,CAAC,CAAEU,GAAG,KAAK,EAAE,GAAIF,KAAK,CAACJ,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC;AAClF,EAAA;AACA,EAAA,OAAOM,GAAG;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,iBAAiB,SAASC,mBAAmB,CACnD;AACI;AACAC,EAAAA,WAAWA,CAACC,OAAO,EAAEC,OAAO,GAAG,EAAE,EACjC;AACI,IAAA,KAAK,CAACD,OAAO,EAAEC,OAAO,CAAC;IACvB,IAAI,CAACC,IAAI,GAAG,mBAAmB;IAC/B,IAAI,CAACC,IAAI,GAAG,sBAAsB;AACtC,EAAA;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,SAAS,SAASC,YAAY,CAC3C;EACI,OAAOC,SAAS,GAAGT,iBAAiB;EAEpC,OAAOU,gBAAgB,GAAG,4BAA4B;;AAEtD;AACJ;AACA;AACA;AACA;AACA;AACIR,EAAAA,WAAWA,CAACL,KAAK,EAAEc,MAAM,GAAG,CAAC,EAC7B;IACI,KAAK,CAACd,KAAK,EAAE;MAAEc,MAAM;AAAEC,MAAAA,MAAM,EAAE;AAAM,KAAC,CAAC;AAC3C,EAAA;AACJ;;AAEA;AACA;AACA;AACO,MAAMC,aAAa,CAC1B;EACI,MAAM,GAAG,EAAE;AACX,EAAA,QAAQ,GAAG,IAAIC,UAAU,CAAC1B,eAAe,CAAC;EAC1C,aAAa,GAAG,CAAC;EACjB,UAAU,GAAG,CAAC;EACd,WAAW,GAAG,CAAC;EACf,QAAQ,GAAG,CAAC;EACZ,eAAe,GAAG,CAAC;EACnB,MAAM,GAAG,IAAI;EACb,UAAU,GAAG,KAAK;;AAElB;AACJ;AACA;AACA;AACA;EACI2B,QAAQA,CAACpB,GAAG,EACZ;AACI,IAAA,IAAIA,GAAG,EAAE,IAAI,CAAC,UAAU,IAAK,CAAC,IAAI,IAAI,CAAC,WAAY;IACnD,IAAI,CAAC,WAAW,EAAE;AAClB,IAAA,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE;AACjD,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACIqB,EAAAA,SAASA,CAACC,KAAK,EAAEC,KAAK,EACtB;IACI,KAAK,IAAIzB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGyB,KAAK,EAAEzB,CAAC,EAAE,EAC9B;MACI,IAAI,CAACsB,QAAQ,CAAEE,KAAK,KAAKxB,CAAC,GAAI,CAAC,CAAC;AACpC,IAAA;AACJ,EAAA;;AAEA;AACJ;AACA;AACA;AACA;EACI0B,UAAUA,CAACC,OAAO,EAClB;AACI,IAAA,IAAI,CAAC,QAAQ,GAAGA,OAAO;AAC3B,EAAA;;AAEA;EACA,UAAUC,GACV;AACI,IAAA,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,EAAE;AAC5B,IAAA,IAAI,IAAI,CAAC,aAAa,KAAKjC,eAAe,EAC1C;AACI,MAAA,MAAMkC,KAAK,GAAG,IAAIC,KAAK,CAAC,wCAAwC,CAAC;MACjED,KAAK,CAAChB,IAAI,GAAG,iCAAiC;AAC9C,MAAA,MAAMgB,KAAK;AACf,IAAA;AACA,IAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU;AACrD,IAAA,IAAI,CAAC,WAAW,GAAG,CAAC;AACpB,IAAA,IAAI,CAAC,UAAU,GAAG,CAAC;AACvB,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACIE,EAAAA,SAASA,CAACC,IAAI,GAAG,KAAK,EACtB;AACI,IAAA,IAAI,CAAC,UAAU,EAAE;AACjB,IAAA,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,EAAE;AAE9B,IAAA,MAAMC,YAAY,GAAG,IAAI,CAAC,aAAa;AACvC,IAAA,IAAIC,QAAQ,GAAGC,IAAI,CAACC,KAAK,CAAC,CAACH,YAAY,GAAGvC,gBAAgB,IAAIA,gBAAgB,CAAC;IAC/E,IAAIwC,QAAQ,KAAKzC,gBAAgB,GAAG,CAAC,EAAEyC,QAAQ,GAAGzC,gBAAgB;IAElE,MAAM4C,IAAI,GAAG,IAAIhB,UAAU,CAAC7B,gBAAgB,GAAG0C,QAAQ,GAAGD,YAAY,CAAC;AACvEI,IAAAA,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI;AACdA,IAAAA,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI;AACdA,IAAAA,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI;AACdA,IAAAA,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI;AACdA,IAAAA,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;AACXA,IAAAA,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,IAAIL,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5EM,QAAQ,CAACD,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;AAC9CC,IAAAA,QAAQ,CAACD,IAAI,EAAE,EAAE,EAAEF,IAAI,CAACC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,CAAC;AAC3DE,IAAAA,QAAQ,CAACD,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACrBC,QAAQ,CAACD,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC;AACxCC,IAAAA,QAAQ,CAACD,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;AACrBA,IAAAA,IAAI,CAAC,EAAE,CAAC,GAAGH,QAAQ;IAEnB,IAAIK,SAAS,GAAGN,YAAY;IAC5B,KAAK,IAAIjC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGkC,QAAQ,EAAElC,CAAC,EAAE,EACjC;MACI,IAAIuC,SAAS,IAAI7C,gBAAgB,EACjC;AACI2C,QAAAA,IAAI,CAAC,EAAE,GAAGrC,CAAC,CAAC,GAAGN,gBAAgB;AAC/B6C,QAAAA,SAAS,IAAI7C,gBAAgB;AACjC,MAAA,CAAC,MAED;AACI2C,QAAAA,IAAI,CAAC,EAAE,GAAGrC,CAAC,CAAC,GAAGuC,SAAS;AAC5B,MAAA;AACJ,IAAA;AAEAF,IAAAA,IAAI,CAACG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAACC,QAAQ,CAAC,CAAC,EAAER,YAAY,CAAC,EAAEzC,gBAAgB,GAAG0C,QAAQ,CAAC;AAC9EI,IAAAA,QAAQ,CAACD,IAAI,EAAE,EAAE,EAAElC,WAAW,CAACkC,IAAI,EAAEA,IAAI,CAAChC,MAAM,CAAC,CAAC;AAElD,IAAA,IAAI,CAAC,MAAM,CAACqC,IAAI,CAACL,IAAI,CAAC;IACtB,IAAI,CAAC,eAAe,EAAE;AACtB,IAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,IAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,IAAA,IAAI,CAAC,aAAa,GAAG,CAAC;AAC1B,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACIM,EAAAA,OAAOA,GACP;IACI,IAAIC,KAAK,GAAG,CAAC;AACb,IAAA,KAAK,MAAMP,IAAI,IAAI,IAAI,CAAC,MAAM,EAAEO,KAAK,IAAIP,IAAI,CAAChC,MAAM;AACpD,IAAA,MAAMD,KAAK,GAAG,IAAIiB,UAAU,CAACuB,KAAK,CAAC;IACnC,IAAI1B,MAAM,GAAG,CAAC;AACd,IAAA,KAAK,MAAMmB,IAAI,IAAI,IAAI,CAAC,MAAM,EAC9B;AACIjC,MAAAA,KAAK,CAACoC,GAAG,CAACH,IAAI,EAAEnB,MAAM,CAAC;MACvBA,MAAM,IAAImB,IAAI,CAAChC,MAAM;AACzB,IAAA;AACA,IAAA,OAAOD,KAAK;AAChB,EAAA;;AAEA;AACJ;AACA;AACA;AACA;EACI,IAAIyC,SAASA,GACb;AACI,IAAA,OAAO,IAAI,CAAC,MAAM,CAACxC,MAAM;AAC7B,EAAA;AACJ;AAEA,SAASiC,QAAQA,CAAClC,KAAK,EAAEc,MAAM,EAAEM,KAAK,EACtC;AACIpB,EAAAA,KAAK,CAACc,MAAM,CAAC,GAAGM,KAAK,GAAG,IAAI;EAC5BpB,KAAK,CAACc,MAAM,GAAG,CAAC,CAAC,GAAIM,KAAK,KAAK,CAAC,GAAI,IAAI;EACxCpB,KAAK,CAACc,MAAM,GAAG,CAAC,CAAC,GAAIM,KAAK,KAAK,EAAE,GAAI,IAAI;EACzCpB,KAAK,CAACc,MAAM,GAAG,CAAC,CAAC,GAAIM,KAAK,KAAK,EAAE,GAAI,IAAI;AAC7C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASsB,IAAIA,CAACtB,KAAK,EAC1B;EACI,IAAIuB,MAAM,GAAG,CAAC;AACd,EAAA,IAAIC,CAAC,GAAGxB,KAAK,KAAK,CAAC;AACnB,EAAA,OAAOwB,CAAC,EACR;AACID,IAAAA,MAAM,EAAE;AACRC,IAAAA,CAAC,MAAM,CAAC;AACZ,EAAA;AACA,EAAA,OAAOD,MAAM;AACjB;;;;"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { BitReader, ilog } from './bitStream.js';
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
* Packed Vorbis codebook library handling for Wwise Vorbis repacking.
|
|
5
|
-
*
|
|
6
|
-
* Wwise strips the standard Vorbis codebooks from the setup header and
|
|
7
|
-
* references entries in a shared packed library by 10-bit id. Rebuilding
|
|
8
|
-
* expands each packed codebook back into the standard Vorbis codebook
|
|
9
|
-
* encoding. Behavior mirrors the ww2ogg reference (BSD-licensed, Xiph.org
|
|
10
|
-
* Foundation / Adam Gashlin); this is an original reimplementation.
|
|
3
|
+
/**
|
|
4
|
+
* Packed Vorbis codebook library handling for Wwise Vorbis repacking.
|
|
5
|
+
*
|
|
6
|
+
* Wwise strips the standard Vorbis codebooks from the setup header and
|
|
7
|
+
* references entries in a shared packed library by 10-bit id. Rebuilding
|
|
8
|
+
* expands each packed codebook back into the standard Vorbis codebook
|
|
9
|
+
* encoding. Behavior mirrors the ww2ogg reference (BSD-licensed, Xiph.org
|
|
10
|
+
* Foundation / Adam Gashlin); this is an original reimplementation.
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
function parseError(message) {
|
|
@@ -16,15 +16,15 @@ function parseError(message) {
|
|
|
16
16
|
return error;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
/**
|
|
20
|
-
* Parse a packed codebook library blob.
|
|
21
|
-
*
|
|
22
|
-
* Layout: codebook data, then a table of u32-le offsets; the last u32 in the
|
|
23
|
-
* file points at the start of the offset table. Codebook `i` spans
|
|
24
|
-
* offsets[i]..offsets[i+1].
|
|
25
|
-
*
|
|
26
|
-
* @param {Uint8Array} bytes Packed codebook library bytes.
|
|
27
|
-
* @returns {object} Parsed library with `count` usable codebooks.
|
|
19
|
+
/**
|
|
20
|
+
* Parse a packed codebook library blob.
|
|
21
|
+
*
|
|
22
|
+
* Layout: codebook data, then a table of u32-le offsets; the last u32 in the
|
|
23
|
+
* file points at the start of the offset table. Codebook `i` spans
|
|
24
|
+
* offsets[i]..offsets[i+1].
|
|
25
|
+
*
|
|
26
|
+
* @param {Uint8Array} bytes Packed codebook library bytes.
|
|
27
|
+
* @returns {object} Parsed library with `count` usable codebooks.
|
|
28
28
|
*/
|
|
29
29
|
function parseCodebookLibrary(bytes) {
|
|
30
30
|
if (bytes.length < 4) throw parseError("packed codebook library is truncated");
|
|
@@ -46,12 +46,12 @@ function parseCodebookLibrary(bytes) {
|
|
|
46
46
|
};
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
/**
|
|
50
|
-
* Rebuild one packed codebook, referenced by library id, into `writer`.
|
|
51
|
-
*
|
|
52
|
-
* @param {object} library `parseCodebookLibrary` output.
|
|
53
|
-
* @param {number} id Codebook id from the setup header.
|
|
54
|
-
* @param {object} writer OggPageWriter positioned inside the setup packet.
|
|
49
|
+
/**
|
|
50
|
+
* Rebuild one packed codebook, referenced by library id, into `writer`.
|
|
51
|
+
*
|
|
52
|
+
* @param {object} library `parseCodebookLibrary` output.
|
|
53
|
+
* @param {number} id Codebook id from the setup header.
|
|
54
|
+
* @param {object} writer OggPageWriter positioned inside the setup packet.
|
|
55
55
|
*/
|
|
56
56
|
function rebuildCodebookById(library, id, writer) {
|
|
57
57
|
if (id < 0 || id >= library.count) {
|
|
@@ -63,36 +63,36 @@ function rebuildCodebookById(library, id, writer) {
|
|
|
63
63
|
rebuildCodebook(reader, size, writer);
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
/**
|
|
67
|
-
* Rebuild one packed codebook from `reader` into the standard Vorbis
|
|
68
|
-
* codebook encoding on `writer`.
|
|
69
|
-
*
|
|
70
|
-
* @param {object} reader BitReader at the start of the packed codebook.
|
|
71
|
-
* @param {number} size Packed codebook size in bytes (0 skips the size check).
|
|
72
|
-
* @param {object} writer OggPageWriter positioned inside the setup packet.
|
|
66
|
+
/**
|
|
67
|
+
* Rebuild one packed codebook from `reader` into the standard Vorbis
|
|
68
|
+
* codebook encoding on `writer`.
|
|
69
|
+
*
|
|
70
|
+
* @param {object} reader BitReader at the start of the packed codebook.
|
|
71
|
+
* @param {number} size Packed codebook size in bytes (0 skips the size check).
|
|
72
|
+
* @param {object} writer OggPageWriter positioned inside the setup packet.
|
|
73
73
|
*/
|
|
74
74
|
function rebuildCodebook(reader, size, writer) {
|
|
75
|
-
const dimensions = reader.
|
|
76
|
-
const entries = reader.
|
|
75
|
+
const dimensions = reader.ReadBits(4);
|
|
76
|
+
const entries = reader.ReadBits(14);
|
|
77
77
|
writer.writeBits(0x564342, 24);
|
|
78
78
|
writer.writeBits(dimensions, 16);
|
|
79
79
|
writer.writeBits(entries, 24);
|
|
80
|
-
const ordered = reader.
|
|
80
|
+
const ordered = reader.ReadBits(1);
|
|
81
81
|
writer.writeBits(ordered, 1);
|
|
82
82
|
if (ordered) {
|
|
83
|
-
const initialLength = reader.
|
|
83
|
+
const initialLength = reader.ReadBits(5);
|
|
84
84
|
writer.writeBits(initialLength, 5);
|
|
85
85
|
let currentEntry = 0;
|
|
86
86
|
while (currentEntry < entries) {
|
|
87
87
|
const bits = ilog(entries - currentEntry);
|
|
88
|
-
const number = reader.
|
|
88
|
+
const number = reader.ReadBits(bits);
|
|
89
89
|
writer.writeBits(number, bits);
|
|
90
90
|
currentEntry += number;
|
|
91
91
|
}
|
|
92
92
|
if (currentEntry > entries) throw parseError("codebook current entry out of range");
|
|
93
93
|
} else {
|
|
94
|
-
const codewordLengthLength = reader.
|
|
95
|
-
const sparse = reader.
|
|
94
|
+
const codewordLengthLength = reader.ReadBits(3);
|
|
95
|
+
const sparse = reader.ReadBits(1);
|
|
96
96
|
if (codewordLengthLength === 0 || codewordLengthLength > 5) {
|
|
97
97
|
throw parseError("nonsense codeword length");
|
|
98
98
|
}
|
|
@@ -100,30 +100,30 @@ function rebuildCodebook(reader, size, writer) {
|
|
|
100
100
|
for (let i = 0; i < entries; i++) {
|
|
101
101
|
let present = true;
|
|
102
102
|
if (sparse) {
|
|
103
|
-
const presentBit = reader.
|
|
103
|
+
const presentBit = reader.ReadBits(1);
|
|
104
104
|
writer.writeBits(presentBit, 1);
|
|
105
105
|
present = presentBit !== 0;
|
|
106
106
|
}
|
|
107
107
|
if (present) {
|
|
108
|
-
const codewordLength = reader.
|
|
108
|
+
const codewordLength = reader.ReadBits(codewordLengthLength);
|
|
109
109
|
writer.writeBits(codewordLength, 5);
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
|
-
const lookupType = reader.
|
|
113
|
+
const lookupType = reader.ReadBits(1);
|
|
114
114
|
writer.writeBits(lookupType, 4);
|
|
115
115
|
if (lookupType === 1) {
|
|
116
|
-
const min = reader.
|
|
117
|
-
const max = reader.
|
|
118
|
-
const valueLength = reader.
|
|
119
|
-
const sequenceFlag = reader.
|
|
116
|
+
const min = reader.ReadBits(32);
|
|
117
|
+
const max = reader.ReadBits(32);
|
|
118
|
+
const valueLength = reader.ReadBits(4);
|
|
119
|
+
const sequenceFlag = reader.ReadBits(1);
|
|
120
120
|
writer.writeBits(min, 32);
|
|
121
121
|
writer.writeBits(max, 32);
|
|
122
122
|
writer.writeBits(valueLength, 4);
|
|
123
123
|
writer.writeBits(sequenceFlag, 1);
|
|
124
124
|
const quantvals = bookMaptype1Quantvals(entries, dimensions);
|
|
125
125
|
for (let i = 0; i < quantvals; i++) {
|
|
126
|
-
writer.writeBits(reader.
|
|
126
|
+
writer.writeBits(reader.ReadBits(valueLength + 1), valueLength + 1);
|
|
127
127
|
}
|
|
128
128
|
} else if (lookupType !== 0) {
|
|
129
129
|
throw parseError(`unexpected codebook lookup type ${lookupType}`);
|
|
@@ -133,13 +133,13 @@ function rebuildCodebook(reader, size, writer) {
|
|
|
133
133
|
}
|
|
134
134
|
}
|
|
135
135
|
|
|
136
|
-
/**
|
|
137
|
-
* Number of quantized values for a maptype-1 codebook lookup table
|
|
138
|
-
* (Vorbis/Tremor `_book_maptype1_quantvals`).
|
|
139
|
-
*
|
|
140
|
-
* @param {number} entries Codebook entry count.
|
|
141
|
-
* @param {number} dimensions Codebook dimensions.
|
|
142
|
-
* @returns {number} Quantized value count.
|
|
136
|
+
/**
|
|
137
|
+
* Number of quantized values for a maptype-1 codebook lookup table
|
|
138
|
+
* (Vorbis/Tremor `_book_maptype1_quantvals`).
|
|
139
|
+
*
|
|
140
|
+
* @param {number} entries Codebook entry count.
|
|
141
|
+
* @param {number} dimensions Codebook dimensions.
|
|
142
|
+
* @returns {number} Quantized value count.
|
|
143
143
|
*/
|
|
144
144
|
function bookMaptype1Quantvals(entries, dimensions) {
|
|
145
145
|
if (dimensions === 0) return 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codebookLibrary.js","sources":["../../../../../../src/resource/formats/wem/core/codebookLibrary.js"],"sourcesContent":["import { BitReader, ilog } from \"./bitStream.js\";\r\n\r\n/**\r\n * Packed Vorbis codebook library handling for Wwise Vorbis repacking.\r\n *\r\n * Wwise strips the standard Vorbis codebooks from the setup header and\r\n * references entries in a shared packed library by 10-bit id. Rebuilding\r\n * expands each packed codebook back into the standard Vorbis codebook\r\n * encoding. Behavior mirrors the ww2ogg reference (BSD-licensed, Xiph.org\r\n * Foundation / Adam Gashlin); this is an original reimplementation.\r\n */\r\n\r\nfunction parseError(message)\r\n{\r\n const error = new Error(`wem: ${message}`);\r\n error.code = \"CJS_FORMAT_PARSE_ERROR\";\r\n return error;\r\n}\r\n\r\n/**\r\n * Parse a packed codebook library blob.\r\n *\r\n * Layout: codebook data, then a table of u32-le offsets; the last u32 in the\r\n * file points at the start of the offset table. Codebook `i` spans\r\n * offsets[i]..offsets[i+1].\r\n *\r\n * @param {Uint8Array} bytes Packed codebook library bytes.\r\n * @returns {object} Parsed library with `count` usable codebooks.\r\n */\r\nexport function parseCodebookLibrary(bytes)\r\n{\r\n if (bytes.length < 4) throw parseError(\"packed codebook library is truncated\");\r\n const offsetTableStart = readU32(bytes, bytes.length - 4);\r\n if (offsetTableStart > bytes.length - 4 || (bytes.length - offsetTableStart) % 4 !== 0)\r\n {\r\n throw parseError(\"packed codebook library has an invalid offset table\");\r\n }\r\n const offsetCount = (bytes.length - offsetTableStart) / 4;\r\n const offsets = new Uint32Array(offsetCount);\r\n for (let i = 0; i < offsetCount; i++)\r\n {\r\n offsets[i] = readU32(bytes, offsetTableStart + i * 4);\r\n if (offsets[i] > offsetTableStart) throw parseError(\"packed codebook offset out of range\");\r\n if (i > 0 && offsets[i] < offsets[i - 1]) throw parseError(\"packed codebook offsets not ascending\");\r\n }\r\n return {\r\n bytes,\r\n offsets,\r\n count: offsetCount - 1\r\n };\r\n}\r\n\r\n/**\r\n * Rebuild one packed codebook, referenced by library id, into `writer`.\r\n *\r\n * @param {object} library `parseCodebookLibrary` output.\r\n * @param {number} id Codebook id from the setup header.\r\n * @param {object} writer OggPageWriter positioned inside the setup packet.\r\n */\r\nexport function rebuildCodebookById(library, id, writer)\r\n{\r\n if (id < 0 || id >= library.count)\r\n {\r\n throw parseError(`invalid codebook id ${id} for library of ${library.count}`);\r\n }\r\n const start = library.offsets[id];\r\n const size = library.offsets[id + 1] - start;\r\n const reader = new BitReader(library.bytes.subarray(start, start + size));\r\n rebuildCodebook(reader, size, writer);\r\n}\r\n\r\n/**\r\n * Rebuild one packed codebook from `reader` into the standard Vorbis\r\n * codebook encoding on `writer`.\r\n *\r\n * @param {object} reader BitReader at the start of the packed codebook.\r\n * @param {number} size Packed codebook size in bytes (0 skips the size check).\r\n * @param {object} writer OggPageWriter positioned inside the setup packet.\r\n */\r\nexport function rebuildCodebook(reader, size, writer)\r\n{\r\n const dimensions = reader.readBits(4);\r\n const entries = reader.readBits(14);\r\n\r\n writer.writeBits(0x564342, 24);\r\n writer.writeBits(dimensions, 16);\r\n writer.writeBits(entries, 24);\r\n\r\n const ordered = reader.readBits(1);\r\n writer.writeBits(ordered, 1);\r\n if (ordered)\r\n {\r\n const initialLength = reader.readBits(5);\r\n writer.writeBits(initialLength, 5);\r\n\r\n let currentEntry = 0;\r\n while (currentEntry < entries)\r\n {\r\n const bits = ilog(entries - currentEntry);\r\n const number = reader.readBits(bits);\r\n writer.writeBits(number, bits);\r\n currentEntry += number;\r\n }\r\n if (currentEntry > entries) throw parseError(\"codebook current entry out of range\");\r\n }\r\n else\r\n {\r\n const codewordLengthLength = reader.readBits(3);\r\n const sparse = reader.readBits(1);\r\n if (codewordLengthLength === 0 || codewordLengthLength > 5)\r\n {\r\n throw parseError(\"nonsense codeword length\");\r\n }\r\n writer.writeBits(sparse, 1);\r\n\r\n for (let i = 0; i < entries; i++)\r\n {\r\n let present = true;\r\n if (sparse)\r\n {\r\n const presentBit = reader.readBits(1);\r\n writer.writeBits(presentBit, 1);\r\n present = presentBit !== 0;\r\n }\r\n if (present)\r\n {\r\n const codewordLength = reader.readBits(codewordLengthLength);\r\n writer.writeBits(codewordLength, 5);\r\n }\r\n }\r\n }\r\n\r\n const lookupType = reader.readBits(1);\r\n writer.writeBits(lookupType, 4);\r\n if (lookupType === 1)\r\n {\r\n const min = reader.readBits(32);\r\n const max = reader.readBits(32);\r\n const valueLength = reader.readBits(4);\r\n const sequenceFlag = reader.readBits(1);\r\n writer.writeBits(min, 32);\r\n writer.writeBits(max, 32);\r\n writer.writeBits(valueLength, 4);\r\n writer.writeBits(sequenceFlag, 1);\r\n\r\n const quantvals = bookMaptype1Quantvals(entries, dimensions);\r\n for (let i = 0; i < quantvals; i++)\r\n {\r\n writer.writeBits(reader.readBits(valueLength + 1), valueLength + 1);\r\n }\r\n }\r\n else if (lookupType !== 0)\r\n {\r\n throw parseError(`unexpected codebook lookup type ${lookupType}`);\r\n }\r\n\r\n if (size !== 0 && Math.floor(reader.totalBitsRead / 8) + 1 !== size)\r\n {\r\n throw parseError(`codebook size mismatch (expected ${size}, used ${Math.floor(reader.totalBitsRead / 8) + 1})`);\r\n }\r\n}\r\n\r\n/**\r\n * Number of quantized values for a maptype-1 codebook lookup table\r\n * (Vorbis/Tremor `_book_maptype1_quantvals`).\r\n *\r\n * @param {number} entries Codebook entry count.\r\n * @param {number} dimensions Codebook dimensions.\r\n * @returns {number} Quantized value count.\r\n */\r\nexport function bookMaptype1Quantvals(entries, dimensions)\r\n{\r\n if (dimensions === 0) return 0;\r\n const bits = ilog(entries);\r\n let vals = entries >>> Math.floor(((bits - 1) * (dimensions - 1)) / dimensions);\r\n\r\n for (;;)\r\n {\r\n let acc = 1;\r\n let acc1 = 1;\r\n for (let i = 0; i < dimensions; i++)\r\n {\r\n acc *= vals;\r\n acc1 *= vals + 1;\r\n }\r\n if (acc <= entries && acc1 > entries) return vals;\r\n if (acc > entries) vals--;\r\n else vals++;\r\n }\r\n}\r\n\r\nfunction readU32(bytes, offset)\r\n{\r\n return (bytes[offset] | (bytes[offset + 1] << 8) | (bytes[offset + 2] << 16) | (bytes[offset + 3] * 0x1000000)) >>> 0;\r\n}\r\n"],"names":["parseError","message","error","Error","code","parseCodebookLibrary","bytes","length","offsetTableStart","readU32","offsetCount","offsets","Uint32Array","i","count","rebuildCodebookById","library","id","writer","start","size","reader","BitReader","subarray","rebuildCodebook","dimensions","readBits","entries","writeBits","ordered","initialLength","currentEntry","bits","ilog","number","codewordLengthLength","sparse","present","presentBit","codewordLength","lookupType","min","max","valueLength","sequenceFlag","quantvals","bookMaptype1Quantvals","Math","floor","totalBitsRead","vals","acc","acc1","offset"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"codebookLibrary.js","sources":["../../../../../../src/resource/formats/wem/core/codebookLibrary.js"],"sourcesContent":["import { BitReader, ilog } from \"./bitStream.js\";\n\n/**\n * Packed Vorbis codebook library handling for Wwise Vorbis repacking.\n *\n * Wwise strips the standard Vorbis codebooks from the setup header and\n * references entries in a shared packed library by 10-bit id. Rebuilding\n * expands each packed codebook back into the standard Vorbis codebook\n * encoding. Behavior mirrors the ww2ogg reference (BSD-licensed, Xiph.org\n * Foundation / Adam Gashlin); this is an original reimplementation.\n */\n\nfunction parseError(message)\n{\n const error = new Error(`wem: ${message}`);\n error.code = \"CJS_FORMAT_PARSE_ERROR\";\n return error;\n}\n\n/**\n * Parse a packed codebook library blob.\n *\n * Layout: codebook data, then a table of u32-le offsets; the last u32 in the\n * file points at the start of the offset table. Codebook `i` spans\n * offsets[i]..offsets[i+1].\n *\n * @param {Uint8Array} bytes Packed codebook library bytes.\n * @returns {object} Parsed library with `count` usable codebooks.\n */\nexport function parseCodebookLibrary(bytes)\n{\n if (bytes.length < 4) throw parseError(\"packed codebook library is truncated\");\n const offsetTableStart = readU32(bytes, bytes.length - 4);\n if (offsetTableStart > bytes.length - 4 || (bytes.length - offsetTableStart) % 4 !== 0)\n {\n throw parseError(\"packed codebook library has an invalid offset table\");\n }\n const offsetCount = (bytes.length - offsetTableStart) / 4;\n const offsets = new Uint32Array(offsetCount);\n for (let i = 0; i < offsetCount; i++)\n {\n offsets[i] = readU32(bytes, offsetTableStart + i * 4);\n if (offsets[i] > offsetTableStart) throw parseError(\"packed codebook offset out of range\");\n if (i > 0 && offsets[i] < offsets[i - 1]) throw parseError(\"packed codebook offsets not ascending\");\n }\n return {\n bytes,\n offsets,\n count: offsetCount - 1\n };\n}\n\n/**\n * Rebuild one packed codebook, referenced by library id, into `writer`.\n *\n * @param {object} library `parseCodebookLibrary` output.\n * @param {number} id Codebook id from the setup header.\n * @param {object} writer OggPageWriter positioned inside the setup packet.\n */\nexport function rebuildCodebookById(library, id, writer)\n{\n if (id < 0 || id >= library.count)\n {\n throw parseError(`invalid codebook id ${id} for library of ${library.count}`);\n }\n const start = library.offsets[id];\n const size = library.offsets[id + 1] - start;\n const reader = new BitReader(library.bytes.subarray(start, start + size));\n rebuildCodebook(reader, size, writer);\n}\n\n/**\n * Rebuild one packed codebook from `reader` into the standard Vorbis\n * codebook encoding on `writer`.\n *\n * @param {object} reader BitReader at the start of the packed codebook.\n * @param {number} size Packed codebook size in bytes (0 skips the size check).\n * @param {object} writer OggPageWriter positioned inside the setup packet.\n */\nexport function rebuildCodebook(reader, size, writer)\n{\n const dimensions = reader.ReadBits(4);\n const entries = reader.ReadBits(14);\n\n writer.writeBits(0x564342, 24);\n writer.writeBits(dimensions, 16);\n writer.writeBits(entries, 24);\n\n const ordered = reader.ReadBits(1);\n writer.writeBits(ordered, 1);\n if (ordered)\n {\n const initialLength = reader.ReadBits(5);\n writer.writeBits(initialLength, 5);\n\n let currentEntry = 0;\n while (currentEntry < entries)\n {\n const bits = ilog(entries - currentEntry);\n const number = reader.ReadBits(bits);\n writer.writeBits(number, bits);\n currentEntry += number;\n }\n if (currentEntry > entries) throw parseError(\"codebook current entry out of range\");\n }\n else\n {\n const codewordLengthLength = reader.ReadBits(3);\n const sparse = reader.ReadBits(1);\n if (codewordLengthLength === 0 || codewordLengthLength > 5)\n {\n throw parseError(\"nonsense codeword length\");\n }\n writer.writeBits(sparse, 1);\n\n for (let i = 0; i < entries; i++)\n {\n let present = true;\n if (sparse)\n {\n const presentBit = reader.ReadBits(1);\n writer.writeBits(presentBit, 1);\n present = presentBit !== 0;\n }\n if (present)\n {\n const codewordLength = reader.ReadBits(codewordLengthLength);\n writer.writeBits(codewordLength, 5);\n }\n }\n }\n\n const lookupType = reader.ReadBits(1);\n writer.writeBits(lookupType, 4);\n if (lookupType === 1)\n {\n const min = reader.ReadBits(32);\n const max = reader.ReadBits(32);\n const valueLength = reader.ReadBits(4);\n const sequenceFlag = reader.ReadBits(1);\n writer.writeBits(min, 32);\n writer.writeBits(max, 32);\n writer.writeBits(valueLength, 4);\n writer.writeBits(sequenceFlag, 1);\n\n const quantvals = bookMaptype1Quantvals(entries, dimensions);\n for (let i = 0; i < quantvals; i++)\n {\n writer.writeBits(reader.ReadBits(valueLength + 1), valueLength + 1);\n }\n }\n else if (lookupType !== 0)\n {\n throw parseError(`unexpected codebook lookup type ${lookupType}`);\n }\n\n if (size !== 0 && Math.floor(reader.totalBitsRead / 8) + 1 !== size)\n {\n throw parseError(`codebook size mismatch (expected ${size}, used ${Math.floor(reader.totalBitsRead / 8) + 1})`);\n }\n}\n\n/**\n * Number of quantized values for a maptype-1 codebook lookup table\n * (Vorbis/Tremor `_book_maptype1_quantvals`).\n *\n * @param {number} entries Codebook entry count.\n * @param {number} dimensions Codebook dimensions.\n * @returns {number} Quantized value count.\n */\nexport function bookMaptype1Quantvals(entries, dimensions)\n{\n if (dimensions === 0) return 0;\n const bits = ilog(entries);\n let vals = entries >>> Math.floor(((bits - 1) * (dimensions - 1)) / dimensions);\n\n for (;;)\n {\n let acc = 1;\n let acc1 = 1;\n for (let i = 0; i < dimensions; i++)\n {\n acc *= vals;\n acc1 *= vals + 1;\n }\n if (acc <= entries && acc1 > entries) return vals;\n if (acc > entries) vals--;\n else vals++;\n }\n}\n\nfunction readU32(bytes, offset)\n{\n return (bytes[offset] | (bytes[offset + 1] << 8) | (bytes[offset + 2] << 16) | (bytes[offset + 3] * 0x1000000)) >>> 0;\n}\n"],"names":["parseError","message","error","Error","code","parseCodebookLibrary","bytes","length","offsetTableStart","readU32","offsetCount","offsets","Uint32Array","i","count","rebuildCodebookById","library","id","writer","start","size","reader","BitReader","subarray","rebuildCodebook","dimensions","ReadBits","entries","writeBits","ordered","initialLength","currentEntry","bits","ilog","number","codewordLengthLength","sparse","present","presentBit","codewordLength","lookupType","min","max","valueLength","sequenceFlag","quantvals","bookMaptype1Quantvals","Math","floor","totalBitsRead","vals","acc","acc1","offset"],"mappings":"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"}
|
|
@@ -288,20 +288,6 @@ function readWithValues(input, values = DEFAULT_VALUES) {
|
|
|
288
288
|
error.emit = values.emit;
|
|
289
289
|
throw error;
|
|
290
290
|
}
|
|
291
|
-
|
|
292
|
-
/** Converts a parsed payload into a JSON-safe value for the WEM format reader. */
|
|
293
|
-
function toJsonValue(value) {
|
|
294
|
-
if (value instanceof Uint8Array) return {
|
|
295
|
-
byteLength: value.byteLength
|
|
296
|
-
};
|
|
297
|
-
if (Array.isArray(value)) return value.map(toJsonValue);
|
|
298
|
-
if (value && typeof value === "object") {
|
|
299
|
-
const output = {};
|
|
300
|
-
for (const [key, entry] of Object.entries(value)) output[key] = toJsonValue(entry);
|
|
301
|
-
return output;
|
|
302
|
-
}
|
|
303
|
-
return value;
|
|
304
|
-
}
|
|
305
291
|
function readU16(bytes, offset, littleEndian) {
|
|
306
292
|
return littleEndian ? bytes[offset] | bytes[offset + 1] << 8 : bytes[offset] << 8 | bytes[offset + 1];
|
|
307
293
|
}
|
|
@@ -309,5 +295,5 @@ function readU32(bytes, offset, littleEndian) {
|
|
|
309
295
|
return littleEndian ? (bytes[offset] | bytes[offset + 1] << 8 | bytes[offset + 2] << 16 | bytes[offset + 3] * 0x1000000) >>> 0 : bytes[offset] * 0x1000000 + (bytes[offset + 1] << 16) + (bytes[offset + 2] << 8) + bytes[offset + 3] >>> 0;
|
|
310
296
|
}
|
|
311
297
|
|
|
312
|
-
export { DEFAULT_VALUES, OUTPUT_JSON, OUTPUT_OGG, OUTPUT_PCM, OUTPUT_RAW, OUTPUT_WEM_JSON, WEM_CODEC_NAMES, inspectWEM, inspectWithValues, isWEM, normalizeEmit, normalizeValues, readWithValues
|
|
298
|
+
export { DEFAULT_VALUES, OUTPUT_JSON, OUTPUT_OGG, OUTPUT_PCM, OUTPUT_RAW, OUTPUT_WEM_JSON, WEM_CODEC_NAMES, inspectWEM, inspectWithValues, isWEM, normalizeEmit, normalizeValues, readWithValues };
|
|
313
299
|
//# sourceMappingURL=helpers.js.map
|