@carbonenginejs/runtime 0.1.0-alpha.0 → 0.1.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +58 -125
- package/dist/audio/index.js +8 -1
- package/dist/audio/index.js.map +1 -1
- package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js +84 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js +14 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js +26 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js +27 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js +27 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js +25 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js +26 -0
- package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js.map +1 -0
- package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js +58 -0
- package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js.map +1 -0
- package/dist/audio/trinity/audio/AudManager.js +1 -1
- package/dist/audio/trinity/audio/AudManager.js.map +1 -1
- package/dist/audio/trinity/audio/{AudObstructionOcclusion.js → AudObstructionOcclusion/AudObstructionOcclusion.js} +8 -52
- package/dist/audio/trinity/audio/AudObstructionOcclusion/AudObstructionOcclusion.js.map +1 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js +17 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js.map +1 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js +46 -0
- package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js.map +1 -0
- package/dist/audio/trinity/index.js +8 -1
- package/dist/audio/trinity/index.js.map +1 -1
- package/dist/character/CjsCharacterAppearanceConstruction.js +5 -0
- package/dist/character/CjsCharacterAppearanceConstruction.js.map +1 -1
- package/dist/character/CjsCharacterAppearanceManager.js +14 -0
- package/dist/character/CjsCharacterAppearanceManager.js.map +1 -1
- package/dist/character/CjsCharacterFoundationConstruction.js +5 -0
- package/dist/character/CjsCharacterFoundationConstruction.js.map +1 -1
- package/dist/character/CjsCharacterTexturePolicy.js +5 -0
- package/dist/character/CjsCharacterTexturePolicy.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesAppearanceAL.js +17 -0
- package/dist/character/gles/CjsCharacterGlesAppearanceAL.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js +2 -0
- package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js +5 -0
- package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js +5 -0
- package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesMorphDeformation.js +2 -0
- package/dist/character/gles/CjsCharacterGlesMorphDeformation.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js +5 -0
- package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js.map +1 -1
- package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js +5 -0
- package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js.map +1 -1
- package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js +9 -0
- package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js.map +1 -1
- package/dist/global/blue/CjsScriptCallback.js +142 -0
- package/dist/global/blue/CjsScriptCallback.js.map +1 -0
- package/dist/global/blue/index.js +2 -0
- package/dist/global/blue/index.js.map +1 -0
- package/dist/global/consts/renderContext/formats.js +51 -1
- package/dist/global/consts/renderContext/formats.js.map +1 -1
- package/dist/global/consts/renderContext/index.js +2 -2
- package/dist/global/consts/renderContext/renderStates.js +16 -1
- package/dist/global/consts/renderContext/renderStates.js.map +1 -1
- package/dist/global/contracts/index.js +0 -1
- package/dist/global/contracts/index.js.map +1 -1
- package/dist/global/index.js +4 -3
- package/dist/global/index.js.map +1 -1
- package/dist/global/math/index.js +2 -0
- package/dist/global/math/index.js.map +1 -1
- package/dist/global/math/mesh.js +70 -16
- package/dist/global/math/mesh.js.map +1 -1
- package/dist/global/math/noise.js +47 -68
- package/dist/global/math/noise.js.map +1 -1
- package/dist/global/math/pool.js +18 -3
- package/dist/global/math/pool.js.map +1 -1
- package/dist/global/math/random.js +52 -0
- package/dist/global/math/random.js.map +1 -0
- package/dist/global/math/tri3.js +18 -4
- package/dist/global/math/tri3.js.map +1 -1
- package/dist/global/utils/bytes.js +22 -4
- package/dist/global/utils/bytes.js.map +1 -1
- package/dist/global/utils/checksum.js +80 -0
- package/dist/global/utils/checksum.js.map +1 -0
- package/dist/global/utils/errors/CjsCancellationError.js +36 -0
- package/dist/global/utils/errors/CjsCancellationError.js.map +1 -0
- package/dist/global/utils/errors/CjsError.js +21 -52
- package/dist/global/utils/errors/CjsError.js.map +1 -1
- package/dist/global/utils/errors/abort.js +1 -1
- package/dist/global/utils/errors/abort.js.map +1 -1
- package/dist/global/utils/errors/index.js +2 -1
- package/dist/global/utils/errors/index.js.map +1 -1
- package/dist/global/utils/index.js +4 -2
- package/dist/global/utils/index.js.map +1 -1
- package/dist/index.js +95 -35
- package/dist/index.js.map +1 -1
- package/dist/input/Tr2MainWindow.js +7 -9
- package/dist/input/Tr2MainWindow.js.map +1 -1
- package/dist/resource/CjsResMan.js +33 -39
- package/dist/resource/CjsResMan.js.map +1 -1
- package/dist/resource/CjsResource.js +19 -5
- package/dist/resource/CjsResource.js.map +1 -1
- package/dist/resource/audio/AudioGeometryResData.js +22 -27
- package/dist/resource/audio/AudioGeometryResData.js.map +1 -1
- package/dist/resource/audio/CjsAudioRes.js +4 -5
- package/dist/resource/audio/CjsAudioRes.js.map +1 -1
- package/dist/resource/format/CjsBitReader.js +263 -0
- package/dist/resource/format/CjsBitReader.js.map +1 -0
- package/dist/resource/format/CjsByteReader.js +130 -125
- package/dist/resource/format/CjsByteReader.js.map +1 -1
- package/dist/resource/format/CjsFormat.js +11 -4
- package/dist/resource/format/CjsFormat.js.map +1 -1
- package/dist/resource/format/CjsFormatError.js +37 -1
- package/dist/resource/format/CjsFormatError.js.map +1 -1
- package/dist/resource/format/CjsResourceProbe.js +41 -37
- package/dist/resource/format/CjsResourceProbe.js.map +1 -1
- package/dist/resource/format/carbonRecordGuard.js +33 -0
- package/dist/resource/format/carbonRecordGuard.js.map +1 -0
- package/dist/resource/format/imageSignatures.js +202 -0
- package/dist/resource/format/imageSignatures.js.map +1 -0
- package/dist/resource/format/index.js +2 -1
- package/dist/resource/format/index.js.map +1 -1
- package/dist/resource/format/jsonPolicies.js +180 -0
- package/dist/resource/format/jsonPolicies.js.map +1 -0
- package/dist/resource/formats/black/core/helpers.js +18 -29
- package/dist/resource/formats/black/core/helpers.js.map +1 -1
- package/dist/resource/formats/bnk/CjsBnkFormat.js +4 -3
- package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
- package/dist/resource/formats/bnk/core/WwiseCursor.js +218 -0
- package/dist/resource/formats/bnk/core/WwiseCursor.js.map +1 -0
- package/dist/resource/formats/bnk/core/busNodes.js +2 -1
- package/dist/resource/formats/bnk/core/busNodes.js.map +1 -1
- package/dist/resource/formats/bnk/core/effectNodes.js +2 -1
- package/dist/resource/formats/bnk/core/effectNodes.js.map +1 -1
- package/dist/resource/formats/bnk/core/eventAction.js +15 -93
- package/dist/resource/formats/bnk/core/eventAction.js.map +1 -1
- package/dist/resource/formats/bnk/core/globalSettings.js +19 -94
- package/dist/resource/formats/bnk/core/globalSettings.js.map +1 -1
- package/dist/resource/formats/bnk/core/helpers.js +2 -48
- package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
- package/dist/resource/formats/bnk/core/musicNodes.js +42 -134
- package/dist/resource/formats/bnk/core/musicNodes.js.map +1 -1
- package/dist/resource/formats/bnk/core/nodeBase.js +20 -111
- package/dist/resource/formats/bnk/core/nodeBase.js.map +1 -1
- package/dist/resource/formats/bnk/core/sfxNodes.js +2 -1
- package/dist/resource/formats/bnk/core/sfxNodes.js.map +1 -1
- package/dist/resource/formats/cmf/CjsCmfFormat.js +242 -228
- package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
- package/dist/resource/formats/cmf/core/binary.js +54 -60
- package/dist/resource/formats/cmf/core/binary.js.map +1 -1
- package/dist/resource/formats/dds/CjsDdsFormat.js +5 -3
- package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
- package/dist/resource/formats/dds/core/bc6h.js +16 -18
- package/dist/resource/formats/dds/core/bc6h.js.map +1 -1
- package/dist/resource/formats/dds/core/bc7.js +28 -24
- package/dist/resource/formats/dds/core/bc7.js.map +1 -1
- package/dist/resource/formats/dds/core/helpers.js +7 -133
- package/dist/resource/formats/dds/core/helpers.js.map +1 -1
- package/dist/resource/formats/dxbc/CjsDxbcFormat.js +3 -2
- package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
- package/dist/resource/formats/dxbc/core/helpers.js +4 -32
- package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
- package/dist/resource/formats/fbx/CjsFbxFormat.js +11 -0
- package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
- package/dist/resource/formats/fbx/core/helpers.js +18 -12
- package/dist/resource/formats/fbx/core/helpers.js.map +1 -1
- package/dist/resource/formats/flac/CjsFlacFormat.js +4 -9
- package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
- package/dist/resource/formats/flac/core/helpers.js +1 -62
- package/dist/resource/formats/flac/core/helpers.js.map +1 -1
- package/dist/resource/formats/gif/CjsGifFormat.js +4 -9
- package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
- package/dist/resource/formats/gif/core/helpers.js +1 -63
- package/dist/resource/formats/gif/core/helpers.js.map +1 -1
- package/dist/resource/formats/gltf/CjsGltfFormat.js +4 -3
- package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
- package/dist/resource/formats/gltf/core/helpers.js +3 -19
- package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
- package/dist/resource/formats/gr2/CjsGr2Format.js +105 -92
- package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
- package/dist/resource/formats/gr2/core/container.js +1 -10
- package/dist/resource/formats/gr2/core/container.js.map +1 -1
- package/dist/resource/formats/gr2/core/helpers.js +24 -35
- package/dist/resource/formats/gr2/core/helpers.js.map +1 -1
- package/dist/resource/formats/gr2/core/shared.js +193 -189
- package/dist/resource/formats/gr2/core/shared.js.map +1 -1
- package/dist/resource/formats/hlsl/CjsHlslFormat.js +4 -3
- package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
- package/dist/resource/formats/hlsl/core/helpers.js +1 -30
- package/dist/resource/formats/hlsl/core/helpers.js.map +1 -1
- package/dist/resource/formats/jpeg/CjsJpegFormat.js +5 -3
- package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
- package/dist/resource/formats/jpeg/core/helpers.js +7 -134
- package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
- package/dist/resource/formats/mp3/CjsMp3Format.js +4 -9
- package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
- package/dist/resource/formats/mp3/core/helpers.js +1 -64
- package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
- package/dist/resource/formats/mp4/CjsMp4Format.js +4 -9
- package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
- package/dist/resource/formats/mp4/core/helpers.js +1 -73
- package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
- package/dist/resource/formats/obj/CjsObjFormat.js +4 -3
- package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
- package/dist/resource/formats/obj/core/helpers.js +93 -115
- package/dist/resource/formats/obj/core/helpers.js.map +1 -1
- package/dist/resource/formats/ogg/CjsOggFormat.js +4 -3
- package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
- package/dist/resource/formats/ogg/core/helpers.js +1 -15
- package/dist/resource/formats/ogg/core/helpers.js.map +1 -1
- package/dist/resource/formats/ogg/core/vorbis.js +138 -144
- package/dist/resource/formats/ogg/core/vorbis.js.map +1 -1
- package/dist/resource/formats/pickle/CjsPickleFormat.js +83 -114
- package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
- package/dist/resource/formats/png/CjsPngFormat.js +5 -3
- package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
- package/dist/resource/formats/png/core/helpers.js +13 -152
- package/dist/resource/formats/png/core/helpers.js.map +1 -1
- package/dist/resource/formats/png/core/writer.js +3 -27
- package/dist/resource/formats/png/core/writer.js.map +1 -1
- package/dist/resource/formats/red/core/helpers.js +19 -29
- package/dist/resource/formats/red/core/helpers.js.map +1 -1
- package/dist/resource/formats/stl/CjsStlFormat.js +158 -147
- package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
- package/dist/resource/formats/stl/core/helpers.js +44 -66
- package/dist/resource/formats/stl/core/helpers.js.map +1 -1
- package/dist/resource/formats/tga/CjsTgaFormat.js +5 -3
- package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
- package/dist/resource/formats/tga/core/helpers.js +7 -153
- package/dist/resource/formats/tga/core/helpers.js.map +1 -1
- package/dist/resource/formats/vta/CjsVtaFormat.js +4 -3
- package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
- package/dist/resource/formats/vta/core/helpers.js +1 -17
- package/dist/resource/formats/vta/core/helpers.js.map +1 -1
- package/dist/resource/formats/wav/CjsWavFormat.js +4 -3
- package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
- package/dist/resource/formats/wav/core/helpers.js +1 -15
- package/dist/resource/formats/wav/core/helpers.js.map +1 -1
- package/dist/resource/formats/webgl/CjsWebglFormat.js +4 -3
- package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +52 -4
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
- package/dist/resource/formats/webgl/core/helpers.js +39 -68
- package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
- package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +4 -3
- package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
- package/dist/resource/formats/webgpu/core/helpers.js +4 -30
- package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
- package/dist/resource/formats/webm/CjsWebmFormat.js +4 -9
- package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
- package/dist/resource/formats/webm/core/helpers.js +1 -73
- package/dist/resource/formats/webm/core/helpers.js.map +1 -1
- package/dist/resource/formats/webp/CjsWebpFormat.js +4 -9
- package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
- package/dist/resource/formats/webp/core/helpers.js +1 -62
- package/dist/resource/formats/webp/core/helpers.js.map +1 -1
- package/dist/resource/formats/wem/CjsWemFormat.js +4 -3
- package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
- package/dist/resource/formats/wem/core/bitStream.js +83 -106
- package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
- package/dist/resource/formats/wem/core/codebookLibrary.js +52 -52
- package/dist/resource/formats/wem/core/codebookLibrary.js.map +1 -1
- package/dist/resource/formats/wem/core/helpers.js +1 -15
- package/dist/resource/formats/wem/core/helpers.js.map +1 -1
- package/dist/resource/formats/wem/core/wemToOgg.js +67 -67
- package/dist/resource/formats/wem/core/wemToOgg.js.map +1 -1
- package/dist/resource/geometry/MeshDecalData.js +23 -25
- package/dist/resource/geometry/MeshDecalData.js.map +1 -1
- package/dist/resource/geometry/MeshDecalLodData.js +14 -23
- package/dist/resource/geometry/MeshDecalLodData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryRes.js +299 -284
- package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResAreaData.js +30 -31
- package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResJointData.js +16 -24
- package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResLodData.js +50 -41
- package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResMeshData.js +32 -32
- package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -1
- package/dist/resource/geometry/TriGeometryResSkeletonData.js +14 -23
- package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -1
- package/dist/resource/geometry/TriJointBinding.js +16 -24
- package/dist/resource/geometry/TriJointBinding.js.map +1 -1
- package/dist/resource/geometry/TriMorphTargetGeometryConstants.js +22 -27
- package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -1
- package/dist/resource/geometry/TriRtGeometryConstants.js +50 -41
- package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -1
- package/dist/resource/geometry/granny/GStateBindingCallbackData.js +12 -22
- package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -1
- package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +30 -31
- package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -1
- package/dist/resource/index.js +1 -1
- package/dist/resource/shader/reflection/Tr2EffectConstant.js +16 -17
- package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectDescription.js +26 -28
- package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js +24 -25
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +21 -22
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectResource.js +25 -26
- package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js +69 -72
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js +17 -18
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2Pass.js +42 -43
- package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2RenderStateSetup.js +26 -5
- package/dist/resource/shader/reflection/Tr2RenderStateSetup.js.map +1 -1
- package/dist/resource/shader/reflection/carbonRecordFields.js +87 -90
- package/dist/resource/shader/reflection/carbonRecordFields.js.map +1 -1
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js +32 -34
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
- package/dist/resource/texture/CjsTextureArrayRes.js +1 -6
- package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
- package/dist/resource/texture/Tr2TextureLodManager.js +35 -27
- package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -1
- package/dist/resource/texture/Tr2TextureLodUpdateRequest.js +16 -24
- package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePackChannel.js +16 -24
- package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipeline.js +24 -20
- package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineParams.js +14 -23
- package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +18 -25
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +11 -16
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +14 -23
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +12 -22
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js +38 -26
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
- package/dist/resource/worker/CjsResManMainThreadLoader.js +2 -5
- package/dist/resource/worker/CjsResManMainThreadLoader.js.map +1 -1
- package/dist/resource/worker/CjsResManWorkerLoader.js +6 -7
- package/dist/resource/worker/CjsResManWorkerLoader.js.map +1 -1
- package/dist/resource/worker/protocol.js +18 -1
- package/dist/resource/worker/protocol.js.map +1 -1
- package/dist/sof/EveSOF.js +2 -222
- package/dist/sof/EveSOF.js.map +1 -1
- package/dist/sof/SofDocumentBuilder.js +205 -0
- package/dist/sof/SofDocumentBuilder.js.map +1 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js +16 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js.map +1 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js +16 -0
- package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js.map +1 -0
- package/dist/sof/faction/EveSOFDataFactionColorSet.js +3 -27
- package/dist/sof/faction/EveSOFDataFactionColorSet.js.map +1 -1
- package/dist/sof/faction/index.js +3 -1
- package/dist/sof/faction/index.js.map +1 -1
- package/dist/sof/generic/ErrSOFAreaShaderNotFound.js +18 -0
- package/dist/sof/generic/ErrSOFAreaShaderNotFound.js.map +1 -0
- package/dist/sof/generic/ErrSOFDecalShaderNotFound.js +18 -0
- package/dist/sof/generic/ErrSOFDecalShaderNotFound.js.map +1 -0
- package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js +21 -0
- package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js.map +1 -0
- package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js +21 -0
- package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js.map +1 -0
- package/dist/sof/generic/EveSOFDataGeneric.js +5 -69
- package/dist/sof/generic/EveSOFDataGeneric.js.map +1 -1
- package/dist/sof/generic/index.js +5 -1
- package/dist/sof/generic/index.js.map +1 -1
- package/dist/sof/index.js +23 -7
- package/dist/sof/index.js.map +1 -1
- package/dist/sof/pattern/ErrSOFProjectionNotFound.js +20 -0
- package/dist/sof/pattern/ErrSOFProjectionNotFound.js.map +1 -0
- package/dist/sof/pattern/EveSOFDataPattern.js +2 -17
- package/dist/sof/pattern/EveSOFDataPattern.js.map +1 -1
- package/dist/sof/pattern/index.js +2 -1
- package/dist/sof/pattern/index.js.map +1 -1
- package/dist/sof/shared/ErrSOFAreaTypeNotFound.js +16 -0
- package/dist/sof/shared/ErrSOFAreaTypeNotFound.js.map +1 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js +16 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js.map +1 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js +16 -0
- package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js.map +1 -0
- package/dist/sof/shared/EveSOFDataArea.js +2 -13
- package/dist/sof/shared/EveSOFDataArea.js.map +1 -1
- package/dist/sof/shared/EveSOFDataLogoSet.js +3 -27
- package/dist/sof/shared/EveSOFDataLogoSet.js.map +1 -1
- package/dist/sof/shared/EveSOFDataParameter.js +2 -146
- package/dist/sof/shared/EveSOFDataParameter.js.map +1 -1
- package/dist/sof/shared/EveSOFDataParameterBool.js +40 -0
- package/dist/sof/shared/EveSOFDataParameterBool.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterColor.js +36 -0
- package/dist/sof/shared/EveSOFDataParameterColor.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterFloat.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterFloat.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterInt.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterInt.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterVector2.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterVector2.js.map +1 -0
- package/dist/sof/shared/EveSOFDataParameterVector3.js +37 -0
- package/dist/sof/shared/EveSOFDataParameterVector3.js.map +1 -0
- package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js → EveSOFDataSpotLightAttachment.js} +1 -1
- package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js.map → EveSOFDataSpotLightAttachment.js.map} +1 -1
- package/dist/sof/shared/index.js +13 -4
- package/dist/sof/shared/index.js.map +1 -1
- package/dist/sof/sofDocumentValues.js +33 -0
- package/dist/sof/sofDocumentValues.js.map +1 -0
- package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js +168 -0
- package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js.map +1 -0
- package/dist/trinity/controllers/{ITr2Controller.js → ITr2Controller/ITr2Controller.js} +2 -134
- package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js.map +1 -0
- package/dist/trinity/controllers/Tr2Controller.js +2 -1
- package/dist/trinity/controllers/Tr2Controller.js.map +1 -1
- package/dist/trinity/controllers/Tr2ControllerReference.js +2 -1
- package/dist/trinity/controllers/Tr2ControllerReference.js.map +1 -1
- package/dist/trinity/controllers/action/ITr2ControllerAction.js +2 -1
- package/dist/trinity/controllers/action/ITr2ControllerAction.js.map +1 -1
- package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js +10 -9
- package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js.map +1 -1
- package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js +26 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js.map +1 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js +24 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js.map +1 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js +387 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js.map +1 -0
- package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js +4 -1011
- package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js.map +1 -1
- package/dist/trinity/controllers/expression/expressionRuntime.js +605 -0
- package/dist/trinity/controllers/expression/expressionRuntime.js.map +1 -0
- package/dist/trinity/controllers/index.js +5 -2
- package/dist/trinity/controllers/index.js.map +1 -1
- package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js +2 -1
- package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js.map +1 -1
- package/dist/trinity/controllers/timeline/Tr2TimelineController.js +2 -1
- package/dist/trinity/controllers/timeline/Tr2TimelineController.js.map +1 -1
- package/dist/trinity/core/ITr2Updateable.js +2 -1
- package/dist/trinity/core/ITr2Updateable.js.map +1 -1
- package/dist/trinity/core/Tr2Blitter.js +6 -3
- package/dist/trinity/core/Tr2Blitter.js.map +1 -1
- package/dist/trinity/core/Tr2Denoiser.js +256 -0
- package/dist/trinity/core/Tr2Denoiser.js.map +1 -0
- package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js +115 -0
- package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js.map +1 -0
- package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js +79 -0
- package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js.map +1 -0
- package/dist/trinity/core/{Tr2GpuResourcePool.js → Tr2GpuResourcePool/Tr2GpuResourcePool.js} +63 -151
- package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -0
- package/dist/trinity/core/{Tr2QuadRenderer.js → Tr2QuadRenderer/Tr2QuadRenderer.js} +8 -30
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js.map +1 -0
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js +38 -0
- package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js.map +1 -0
- package/dist/trinity/core/Tr2RenderUtils.js +20 -3
- package/dist/trinity/core/Tr2RenderUtils.js.map +1 -1
- package/dist/trinity/core/Tr2Renderer.js +146 -1
- package/dist/trinity/core/Tr2Renderer.js.map +1 -1
- package/dist/trinity/core/Tr2ShadowMap.js +135 -14
- package/dist/trinity/core/Tr2ShadowMap.js.map +1 -1
- package/dist/trinity/core/{Tr2TextureArray.js → Tr2TextureArray/Tr2TextureArray.js} +3 -58
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -0
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js +61 -0
- package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js +26 -0
- package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js +29 -0
- package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js.map +1 -0
- package/dist/trinity/core/batch/{ITriRenderBatchAccumulator.js → TriRenderBatch/ITriRenderBatchAccumulator.js} +30 -30
- package/dist/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js.map +1 -0
- package/dist/trinity/core/batch/{Tr2RenderBatch.js → TriRenderBatch/Tr2RenderBatch.js} +81 -154
- package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js.map +1 -0
- package/dist/trinity/core/batch/{TriRenderBatchAccumulator.js → TriRenderBatch/TriRenderBatchAccumulator.js} +7 -38
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAccumulator.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js +61 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js +40 -0
- package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js.map +1 -0
- package/dist/trinity/core/batch/TriRenderBatchMap.js +6 -1
- package/dist/trinity/core/batch/TriRenderBatchMap.js.map +1 -1
- package/dist/trinity/core/context/Tr2RenderContext.js +75 -57
- package/dist/trinity/core/context/Tr2RenderContext.js.map +1 -1
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js +67 -0
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js.map +1 -0
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js +50 -0
- package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js.map +1 -0
- package/dist/trinity/core/device/Tr2DepthStencil.js +186 -13
- package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
- package/dist/trinity/core/device/{Tr2RingBuffer.js → Tr2RingBuffer/Tr2RingBuffer.js} +27 -79
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js.map +1 -0
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js +114 -0
- package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js.map +1 -0
- package/dist/trinity/core/device/{Tr2SuballocatedBuffer.js → Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js} +5 -59
- package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js.map +1 -0
- package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js +80 -0
- package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js.map +1 -0
- package/dist/trinity/core/index.js +42 -15
- package/dist/trinity/core/index.js.map +1 -1
- package/dist/trinity/core/lighting/Tr2LightManager.js +6 -1
- package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
- package/dist/trinity/core/mesh/{ITr2ImpostorSource.js → ITr2ImpostorSource/ITr2ImpostorSource.js} +6 -28
- package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js.map +1 -0
- package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js +32 -0
- package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js.map +1 -0
- package/dist/trinity/core/mesh/{ITr2InstanceData.js → ITr2InstanceData/ITr2InstanceData.js} +5 -29
- package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js.map +1 -0
- package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js +33 -0
- package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js.map +1 -0
- package/dist/trinity/core/mesh/Tr2DirectInstanceData.js +2 -1
- package/dist/trinity/core/mesh/Tr2DirectInstanceData.js.map +1 -1
- package/dist/trinity/core/mesh/Tr2MeshBase.js +7 -1
- package/dist/trinity/core/mesh/Tr2MeshBase.js.map +1 -1
- package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js +2 -1
- package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js.map +1 -1
- package/dist/trinity/core/mesh/TriGeometryResAllocations.js +6 -2
- package/dist/trinity/core/mesh/TriGeometryResAllocations.js.map +1 -1
- package/dist/trinity/core/rawData/CjsConstantLayout.js +196 -0
- package/dist/trinity/core/rawData/CjsConstantLayout.js.map +1 -0
- package/dist/trinity/core/rawData/CjsPerFrameLayouts.js +8 -3
- package/dist/trinity/core/rawData/CjsPerFrameLayouts.js.map +1 -1
- package/dist/trinity/core/rawData/CjsPerObjectLayouts.js +40 -732
- package/dist/trinity/core/rawData/CjsPerObjectLayouts.js.map +1 -1
- package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js +34 -0
- package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js +69 -0
- package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js +59 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js +37 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js +44 -0
- package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js +31 -0
- package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js +29 -0
- package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js +39 -0
- package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js +30 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js +78 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js +169 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js +107 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js +44 -0
- package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js +34 -0
- package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js +82 -0
- package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js.map +1 -0
- package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js +42 -0
- package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js +59 -0
- package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js +55 -0
- package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/{Tr2PerObjectData.js → perObjectData/Tr2PerObjectData.js} +110 -62
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectData.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js +104 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js.map +1 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js +87 -0
- package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js.map +1 -0
- package/dist/trinity/core/variable/TriVariable.js +83 -83
- package/dist/trinity/core/variable/TriVariable.js.map +1 -1
- package/dist/trinity/core/vertex/{Tr2VertexDefinition.js → Tr2VertexDefinition/Tr2VertexDefinition.js} +4 -20
- package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js.map +1 -0
- package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js +29 -0
- package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js.map +1 -0
- package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +116 -36
- package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
- package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js +50 -92
- package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js.map +1 -1
- package/dist/trinity/eve/EveModularObjectModifier.js +9 -5
- package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
- package/dist/trinity/eve/IEveInheritPropertiesOwner.js +2 -1
- package/dist/trinity/eve/IEveInheritPropertiesOwner.js.map +1 -1
- package/dist/trinity/eve/IEveSpaceObject2.js +2 -1
- package/dist/trinity/eve/IEveSpaceObject2.js.map +1 -1
- package/dist/trinity/eve/IEveTransform.js +2 -1
- package/dist/trinity/eve/IEveTransform.js.map +1 -1
- package/dist/trinity/eve/attachment/banner/EveBannerSet.js +2 -2
- package/dist/trinity/eve/attachment/banner/EveBannerSet.js.map +1 -1
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js +109 -133
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js.map +1 -1
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js +40 -0
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js.map +1 -0
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js +1 -1
- package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -1
- package/dist/trinity/eve/attachment/decal/DecalMeshCache.js +2 -14
- package/dist/trinity/eve/attachment/decal/DecalMeshCache.js.map +1 -1
- package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js +18 -0
- package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js.map +1 -0
- package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js +1 -1
- package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -1
- package/dist/trinity/eve/attachment/haze/EveHazeSet.js +1 -1
- package/dist/trinity/eve/attachment/haze/EveHazeSet.js.map +1 -1
- package/dist/trinity/eve/attachment/plane/EvePlaneSet.js +1 -1
- package/dist/trinity/eve/attachment/plane/EvePlaneSet.js.map +1 -1
- package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js +2 -2
- package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -1
- package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js +4 -2
- package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js.map +1 -1
- package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +143 -139
- package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
- package/dist/trinity/eve/camera/EveCamera.js +1 -1
- package/dist/trinity/eve/camera/EveCamera.js.map +1 -1
- package/dist/trinity/eve/child/EveChildBoosterSet.js +12 -1
- package/dist/trinity/eve/child/EveChildBoosterSet.js.map +1 -1
- package/dist/trinity/eve/child/EveChildCloud2.js +178 -151
- package/dist/trinity/eve/child/EveChildCloud2.js.map +1 -1
- package/dist/trinity/eve/child/EveChildContainer.js +141 -141
- package/dist/trinity/eve/child/EveChildContainer.js.map +1 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +87 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js +46 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js.map +1 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js +35 -0
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js.map +1 -0
- package/dist/trinity/eve/child/{EveChildInstancedMeshes.js → EveChildInstancedMeshes/EveChildInstancedMeshes.js} +42 -163
- package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -0
- package/dist/trinity/eve/child/EveChildMesh.js +218 -218
- package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js +53 -0
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js.map +1 -0
- package/dist/trinity/eve/child/{EveChildPartData.js → EveChildPartData/EveChildPartDataPartData.js} +9 -45
- package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js.map +1 -0
- package/dist/trinity/eve/child/EveChildParticleSystem.js +30 -29
- package/dist/trinity/eve/child/EveChildParticleSystem.js.map +1 -1
- package/dist/trinity/eve/child/EveChildTransform.js +5 -0
- package/dist/trinity/eve/child/EveChildTransform.js.map +1 -1
- package/dist/trinity/eve/child/EveChildTurret.js +7 -0
- package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
- package/dist/trinity/eve/index.js +10 -4
- package/dist/trinity/eve/index.js.map +1 -1
- package/dist/trinity/eve/lights/Tr2Light.js +5 -0
- package/dist/trinity/eve/lights/Tr2Light.js.map +1 -1
- package/dist/trinity/eve/overlays/overlayBatches.js +6 -1
- package/dist/trinity/eve/overlays/overlayBatches.js.map +1 -1
- package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js +4 -4
- package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js.map +1 -1
- package/dist/trinity/eve/renderable/stretch/EveStretch2.js +76 -71
- package/dist/trinity/eve/renderable/stretch/EveStretch2.js.map +1 -1
- package/dist/trinity/eve/renderable/stretch/EveStretch3.js +1 -1
- package/dist/trinity/eve/renderable/stretch/EveStretch3.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveShip2.js +3 -3
- package/dist/trinity/eve/spaceObject/EveShip2.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +408 -407
- package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
- package/dist/trinity/eve/ui/EveTacticalOverlay.js +1 -1
- package/dist/trinity/eve/ui/EveTacticalOverlay.js.map +1 -1
- package/dist/trinity/eve/ui/lines/EveCurveLineSet.js +9 -9
- package/dist/trinity/eve/ui/lines/EveCurveLineSet.js.map +1 -1
- package/dist/trinity/eve/ui/lines/EveLineSet.js +27 -25
- package/dist/trinity/eve/ui/lines/EveLineSet.js.map +1 -1
- package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js +3 -2
- package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -1
- package/dist/trinity/generated/index.js +0 -1
- package/dist/trinity/generated/index.js.map +1 -1
- package/dist/trinity/generated/trinityCore/index.js +0 -1
- package/dist/trinity/generated/trinityCore/index.js.map +1 -1
- package/dist/trinity/index.js +59 -23
- package/dist/trinity/index.js.map +1 -1
- package/dist/trinity/particle/{ITr2GenericEmitter.js → ITr2GenericEmitter/ITr2GenericEmitter.js} +4 -32
- package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js.map +1 -0
- package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js +36 -0
- package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js.map +1 -0
- package/dist/trinity/particle/Tr2ParticleSystem.js +4 -2
- package/dist/trinity/particle/Tr2ParticleSystem.js.map +1 -1
- package/dist/trinity/particle/element/Tr2ParticleElementData.js +15 -4
- package/dist/trinity/particle/element/Tr2ParticleElementData.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js +21 -20
- package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +23 -22
- package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
- package/dist/trinity/particle/emitter/Tr2StaticEmitter.js +14 -13
- package/dist/trinity/particle/emitter/Tr2StaticEmitter.js.map +1 -1
- package/dist/trinity/particle/index.js +2 -1
- package/dist/trinity/particle/index.js.map +1 -1
- package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js +7 -1
- package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js.map +1 -1
- package/dist/trinity/shader/Tr2Effect.js +131 -58
- package/dist/trinity/shader/Tr2Effect.js.map +1 -1
- package/dist/trinity/shader/Tr2EffectStateManager.js +17 -5
- package/dist/trinity/shader/Tr2EffectStateManager.js.map +1 -1
- package/dist/trinity/shader/Tr2Material.js +21 -4
- package/dist/trinity/shader/Tr2Material.js.map +1 -1
- package/dist/trinity/shader/material/Tr2EffectPassParameters.js +4 -1
- package/dist/trinity/shader/material/Tr2EffectPassParameters.js.map +1 -1
- package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js +2 -2
- package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
- package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js +79 -0
- package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js.map +1 -0
- package/dist/trinityal/{Tr2DeviceResourceAL.js → Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js} +77 -79
- package/dist/trinityal/Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js.map +1 -0
- package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js +24 -0
- package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js.map +1 -0
- package/dist/trinityal/Tr2DrawUPHelper.js +2 -1
- package/dist/trinityal/Tr2DrawUPHelper.js.map +1 -1
- package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js +45 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js +154 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js +48 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js +75 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js.map +1 -0
- package/dist/trinityal/{Tr2HalHelperStructures.js → Tr2HalHelperStructures/Tr2TextureSubresource.js} +11 -115
- package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js +51 -0
- package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js.map +1 -0
- package/dist/trinityal/{Tr2RenderPassAL.js → Tr2RenderPassAL/Tr2ColorAttachment.js} +5 -28
- package/dist/trinityal/Tr2RenderPassAL/Tr2ColorAttachment.js.map +1 -0
- package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js +38 -0
- package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js +80 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js +76 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js +96 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js.map +1 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js +196 -0
- package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js.map +1 -0
- package/dist/trinityal/index.js +22 -9
- package/dist/trinityal/index.js.map +1 -1
- package/dist/trinityal/stub/Tr2BufferALStub.js +86 -141
- package/dist/trinityal/stub/Tr2BufferALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2CapsALStub.js +17 -0
- package/dist/trinityal/stub/Tr2CapsALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2ConstantBufferALStub.js +57 -41
- package/dist/trinityal/stub/Tr2ConstantBufferALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2FenceALStub.js +18 -2
- package/dist/trinityal/stub/Tr2FenceALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2GpuTimerALStub.js +97 -0
- package/dist/trinityal/stub/Tr2GpuTimerALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js +124 -0
- package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js +146 -0
- package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js +28 -0
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js.map +1 -0
- package/dist/trinityal/stub/{Tr2RenderContextALStub.js → Tr2RenderContextALStub/Tr2RenderContextALStub.js} +70 -75
- package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -0
- package/dist/trinityal/stub/Tr2SamplerStateALStub.js +47 -31
- package/dist/trinityal/stub/Tr2SamplerStateALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2ShaderALStub.js +61 -45
- package/dist/trinityal/stub/Tr2ShaderALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2ShaderProgramALStub.js +51 -33
- package/dist/trinityal/stub/Tr2ShaderProgramALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2SwapChainALStub.js +61 -45
- package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2TextureALStub.js +188 -171
- package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
- package/dist/trinityal/stub/Tr2VertexLayoutALStub.js +43 -27
- package/dist/trinityal/stub/Tr2VertexLayoutALStub.js.map +1 -1
- package/dist/trinityal/stub/{Tr2VideoAdapterInfoALStub.js → Tr2VideoAdapterInfoStub.js} +16 -1
- package/dist/trinityal/stub/Tr2VideoAdapterInfoStub.js.map +1 -0
- package/dist/trinityal/stub/index.js +8 -4
- package/dist/trinityal/stub/index.js.map +1 -1
- package/dist/trinityal/vertexLayoutMatch.js +2 -2
- package/dist/trinityal/vertexLayoutMatch.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js +105 -90
- package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js +17 -0
- package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js +15 -0
- package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuDevice.js +2 -2
- package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +900 -938
- package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js +56 -60
- package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js +16 -1
- package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js +100 -379
- package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js.map +1 -1
- package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js +330 -0
- package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js.map +1 -0
- package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +15 -0
- package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
- package/dist/trinityal/webgpu/core/{constantArena.js → CjsWebgpuConstantArena.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuConstantArena.js.map +1 -0
- package/dist/trinityal/webgpu/core/{batchGroups.js → CjsWebgpuEncodeState.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuEncodeState.js.map +1 -0
- package/dist/trinityal/webgpu/core/{perFrameSource.js → CjsWebgpuPerFrameSource.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuPerFrameSource.js.map +1 -0
- package/dist/trinityal/webgpu/core/{pipelineCache.js → CjsWebgpuPipelineCache.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuPipelineCache.js.map +1 -0
- package/dist/trinityal/webgpu/core/{psoDescription.js → CjsWebgpuPsoDescription.js} +2 -2
- package/dist/trinityal/webgpu/core/CjsWebgpuPsoDescription.js.map +1 -0
- package/dist/trinityal/webgpu/core/{renderTarget.js → CjsWebgpuRenderTarget.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuRenderTarget.js.map +1 -0
- package/dist/trinityal/webgpu/core/{samplerSource.js → CjsWebgpuSamplerSource.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuSamplerSource.js.map +1 -0
- package/dist/trinityal/webgpu/core/{textureSource.js → CjsWebgpuTextureSource.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuTextureSource.js.map +1 -0
- package/dist/trinityal/webgpu/core/{trinityBatchDispatcher.js → CjsWebgpuTrinityBatchDispatcher.js} +4 -4
- package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchDispatcher.js.map +1 -0
- package/dist/trinityal/webgpu/core/{trinityBatchResolver.js → CjsWebgpuTrinityBatchResolver.js} +81 -81
- package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchResolver.js.map +1 -0
- package/dist/trinityal/webgpu/core/{trinityPassEncoder.js → CjsWebgpuTrinityPassEncoder.js} +2 -2
- package/dist/trinityal/webgpu/core/CjsWebgpuTrinityPassEncoder.js.map +1 -0
- package/dist/trinityal/webgpu/core/{workQueue.js → CjsWebgpuWorkQueue.js} +1 -1
- package/dist/trinityal/webgpu/core/CjsWebgpuWorkQueue.js.map +1 -0
- package/dist/trinityal/webgpu/internal.js +12 -11
- package/dist/trinityal/webgpu/internal.js.map +1 -1
- package/docs/audio/reference/classes/trinity.md +44 -34
- package/docs/character/architecture.md +276 -0
- package/docs/character/reference/character-appearance-plans.md +30 -66
- package/docs/character/reference/prepared-libraries.md +14 -30
- package/docs/global/reference/api.md +2 -1
- package/docs/global/reference/classes/README.md +53 -71
- package/docs/global/reference/classes/dropped.md +16 -0
- package/docs/resource/README.md +19 -15
- package/docs/resource/architecture.md +9 -2
- package/docs/resource/concepts/format-capabilities.md +124 -80
- package/docs/resource/concepts/shared-format-helpers.md +94 -0
- package/docs/resource/formats/README.md +230 -224
- package/docs/resource/formats/bitknit2.md +221 -0
- package/docs/resource/formats/carbon-effect-container.md +184 -269
- package/docs/resource/formats/gr2.md +6 -1
- package/docs/resource/formats/schemabound.md +28 -48
- package/docs/resource/formats/static.md +70 -97
- package/docs/resource/formats/webgl/carbon-constant-layouts.md +8 -8
- package/docs/resource/formats/webgl/decl-io.md +165 -256
- package/docs/resource/formats/webgl/memory-structured.md +64 -142
- package/docs/resource/formats/webgl/texture-sample.md +109 -138
- package/docs/resource/formats/webgpu/formats/carbon-webgpu.md +38 -69
- package/docs/resource/formats/webgpu/guides/effect-packaging.md +54 -116
- package/docs/resource/formats/webgpu/reference/api.md +64 -67
- package/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +104 -260
- package/docs/resource/reference/classes/core.md +256 -236
- package/docs/resource/reference/classes/formats.md +1668 -1672
- package/docs/resource/reference/workers.md +4 -2
- package/docs/sof/reference/classes/core.md +1 -1
- package/docs/sof/reference/classes/faction.md +2 -2
- package/docs/sof/reference/classes/generic.md +4 -4
- package/docs/sof/reference/classes/pattern.md +1 -1
- package/docs/sof/reference/classes/shared.md +10 -10
- package/docs/trinity/architecture.md +55 -44
- package/docs/trinity/concepts/generated-class-lifecycle.md +10 -15
- package/docs/trinity/reference/classes/curves-and-utilities.md +496 -506
- package/docs/trinity/reference/classes/dropped.md +0 -189
- package/docs/trinity/reference/classes/eve-runtime.md +8 -8
- package/docs/trinity/reference/classes/generated.md +0 -10
- package/docs/trinity/reference/classes/particle.md +2 -2
- package/docs/trinity/reference/classes/trinity-core.md +1554 -1256
- package/docs/trinity/reference/implementation-status.md +50 -75
- package/docs/trinity/reference/main-semantic-extraction.md +13 -17
- package/docs/trinityal/reference/classes/README.md +77 -27
- package/docs/trinityal/reference/classes/dropped.md +82 -0
- package/docs/trinityal/webgpu/README.md +3 -1
- package/docs/trinityal/webgpu/architecture.md +121 -228
- package/docs/trinityal/webgpu/reference/api.md +5 -5
- package/docs/trinityal/webgpu/reference/classes/README.md +13 -13
- package/format-notices/gr2/NOTICE +18 -12
- package/format-notices/gr2/THIRD-PARTY-NOTICES.md +5 -5
- package/package.json +4 -1
- package/dist/audio/trinity/audio/AudActionLog.js +0 -173
- package/dist/audio/trinity/audio/AudActionLog.js.map +0 -1
- package/dist/audio/trinity/audio/AudObstructionOcclusion.js.map +0 -1
- package/dist/global/contracts/CjsScriptCallback.js +0 -94
- package/dist/global/contracts/CjsScriptCallback.js.map +0 -1
- package/dist/trinity/controllers/ITr2Controller.js.map +0 -1
- package/dist/trinity/core/Tr2GpuResourcePool.js.map +0 -1
- package/dist/trinity/core/Tr2QuadRenderer.js.map +0 -1
- package/dist/trinity/core/Tr2TextureArray.js.map +0 -1
- package/dist/trinity/core/batch/ITriRenderBatchAccumulator.js.map +0 -1
- package/dist/trinity/core/batch/Tr2RenderBatch.js.map +0 -1
- package/dist/trinity/core/batch/TriRenderBatchAccumulator.js.map +0 -1
- package/dist/trinity/core/context/CjsShadowMapExecutor.js +0 -43
- package/dist/trinity/core/context/CjsShadowMapExecutor.js.map +0 -1
- package/dist/trinity/core/context/CjsVolumetricsExecutor.js +0 -64
- package/dist/trinity/core/context/CjsVolumetricsExecutor.js.map +0 -1
- package/dist/trinity/core/context/Tr2VisibilityResults.js +0 -109
- package/dist/trinity/core/context/Tr2VisibilityResults.js.map +0 -1
- package/dist/trinity/core/device/Tr2RingBuffer.js.map +0 -1
- package/dist/trinity/core/device/Tr2SuballocatedBuffer.js.map +0 -1
- package/dist/trinity/core/mesh/ITr2ImpostorSource.js.map +0 -1
- package/dist/trinity/core/mesh/ITr2InstanceData.js.map +0 -1
- package/dist/trinity/core/rawData/Tr2PerObjectData.js.map +0 -1
- package/dist/trinity/core/rawData/constantLayout.js +0 -175
- package/dist/trinity/core/rawData/constantLayout.js.map +0 -1
- package/dist/trinity/core/vertex/Tr2VertexDefinition.js.map +0 -1
- package/dist/trinity/eve/child/EveChildInstancedMeshes.js.map +0 -1
- package/dist/trinity/eve/child/EveChildPartData.js.map +0 -1
- package/dist/trinity/generated/trinityCore/Tr2Denoiser.js +0 -47
- package/dist/trinity/generated/trinityCore/Tr2Denoiser.js.map +0 -1
- package/dist/trinity/particle/ITr2GenericEmitter.js.map +0 -1
- package/dist/trinityal/Tr2DeviceResourceAL.js.map +0 -1
- package/dist/trinityal/Tr2HalHelperStructures.js.map +0 -1
- package/dist/trinityal/Tr2RenderPassAL.js.map +0 -1
- package/dist/trinityal/Tr2ResourceSetAL.js +0 -419
- package/dist/trinityal/Tr2ResourceSetAL.js.map +0 -1
- package/dist/trinityal/Tr2SamplerDescription.js +0 -72
- package/dist/trinityal/Tr2SamplerDescription.js.map +0 -1
- package/dist/trinityal/stub/Tr2QueryALStub.js +0 -326
- package/dist/trinityal/stub/Tr2QueryALStub.js.map +0 -1
- package/dist/trinityal/stub/Tr2RenderContextALStub.js.map +0 -1
- package/dist/trinityal/stub/Tr2VideoAdapterInfoALStub.js.map +0 -1
- package/dist/trinityal/webgpu/core/batchGroups.js.map +0 -1
- package/dist/trinityal/webgpu/core/constantArena.js.map +0 -1
- package/dist/trinityal/webgpu/core/perFrameSource.js.map +0 -1
- package/dist/trinityal/webgpu/core/pipelineCache.js.map +0 -1
- package/dist/trinityal/webgpu/core/psoDescription.js.map +0 -1
- package/dist/trinityal/webgpu/core/renderTarget.js.map +0 -1
- package/dist/trinityal/webgpu/core/samplerSource.js.map +0 -1
- package/dist/trinityal/webgpu/core/textureSource.js.map +0 -1
- package/dist/trinityal/webgpu/core/trinityBatchDispatcher.js.map +0 -1
- package/dist/trinityal/webgpu/core/trinityBatchResolver.js.map +0 -1
- package/dist/trinityal/webgpu/core/trinityPassEncoder.js.map +0 -1
- package/dist/trinityal/webgpu/core/workQueue.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"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":";;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,UAAUA,CAACC,OAAO,EAC3B;EACI,MAAMC,KAAK,GAAG,IAAIC,KAAK,CAAC,CAAA,KAAA,EAAQF,OAAO,EAAE,CAAC;EAC1CC,KAAK,CAACE,IAAI,GAAG,wBAAwB;AACrC,EAAA,OAAOF,KAAK;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,oBAAoBA,CAACC,KAAK,EAC1C;EACI,IAAIA,KAAK,CAACC,MAAM,GAAG,CAAC,EAAE,MAAMP,UAAU,CAAC,sCAAsC,CAAC;EAC9E,MAAMQ,gBAAgB,GAAGC,OAAO,CAACH,KAAK,EAAEA,KAAK,CAACC,MAAM,GAAG,CAAC,CAAC;AACzD,EAAA,IAAIC,gBAAgB,GAAGF,KAAK,CAACC,MAAM,GAAG,CAAC,IAAI,CAACD,KAAK,CAACC,MAAM,GAAGC,gBAAgB,IAAI,CAAC,KAAK,CAAC,EACtF;IACI,MAAMR,UAAU,CAAC,qDAAqD,CAAC;AAC3E,EAAA;EACA,MAAMU,WAAW,GAAG,CAACJ,KAAK,CAACC,MAAM,GAAGC,gBAAgB,IAAI,CAAC;AACzD,EAAA,MAAMG,OAAO,GAAG,IAAIC,WAAW,CAACF,WAAW,CAAC;EAC5C,KAAK,IAAIG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,WAAW,EAAEG,CAAC,EAAE,EACpC;AACIF,IAAAA,OAAO,CAACE,CAAC,CAAC,GAAGJ,OAAO,CAACH,KAAK,EAAEE,gBAAgB,GAAGK,CAAC,GAAG,CAAC,CAAC;IACrD,IAAIF,OAAO,CAACE,CAAC,CAAC,GAAGL,gBAAgB,EAAE,MAAMR,UAAU,CAAC,qCAAqC,CAAC;IAC1F,IAAIa,CAAC,GAAG,CAAC,IAAIF,OAAO,CAACE,CAAC,CAAC,GAAGF,OAAO,CAACE,CAAC,GAAG,CAAC,CAAC,EAAE,MAAMb,UAAU,CAAC,uCAAuC,CAAC;AACvG,EAAA;EACA,OAAO;IACHM,KAAK;IACLK,OAAO;IACPG,KAAK,EAAEJ,WAAW,GAAG;GACxB;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASK,mBAAmBA,CAACC,OAAO,EAAEC,EAAE,EAAEC,MAAM,EACvD;EACI,IAAID,EAAE,GAAG,CAAC,IAAIA,EAAE,IAAID,OAAO,CAACF,KAAK,EACjC;IACI,MAAMd,UAAU,CAAC,CAAA,oBAAA,EAAuBiB,EAAE,mBAAmBD,OAAO,CAACF,KAAK,CAAA,CAAE,CAAC;AACjF,EAAA;AACA,EAAA,MAAMK,KAAK,GAAGH,OAAO,CAACL,OAAO,CAACM,EAAE,CAAC;EACjC,MAAMG,IAAI,GAAGJ,OAAO,CAACL,OAAO,CAACM,EAAE,GAAG,CAAC,CAAC,GAAGE,KAAK;AAC5C,EAAA,MAAME,MAAM,GAAG,IAAIC,SAAS,CAACN,OAAO,CAACV,KAAK,CAACiB,QAAQ,CAACJ,KAAK,EAAEA,KAAK,GAAGC,IAAI,CAAC,CAAC;AACzEI,EAAAA,eAAe,CAACH,MAAM,EAAED,IAAI,EAAEF,MAAM,CAAC;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASM,eAAeA,CAACH,MAAM,EAAED,IAAI,EAAEF,MAAM,EACpD;AACI,EAAA,MAAMO,UAAU,GAAGJ,MAAM,CAACK,QAAQ,CAAC,CAAC,CAAC;AACrC,EAAA,MAAMC,OAAO,GAAGN,MAAM,CAACK,QAAQ,CAAC,EAAE,CAAC;AAEnCR,EAAAA,MAAM,CAACU,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC;AAC9BV,EAAAA,MAAM,CAACU,SAAS,CAACH,UAAU,EAAE,EAAE,CAAC;AAChCP,EAAAA,MAAM,CAACU,SAAS,CAACD,OAAO,EAAE,EAAE,CAAC;AAE7B,EAAA,MAAME,OAAO,GAAGR,MAAM,CAACK,QAAQ,CAAC,CAAC,CAAC;AAClCR,EAAAA,MAAM,CAACU,SAAS,CAACC,OAAO,EAAE,CAAC,CAAC;AAC5B,EAAA,IAAIA,OAAO,EACX;AACI,IAAA,MAAMC,aAAa,GAAGT,MAAM,CAACK,QAAQ,CAAC,CAAC,CAAC;AACxCR,IAAAA,MAAM,CAACU,SAAS,CAACE,aAAa,EAAE,CAAC,CAAC;IAElC,IAAIC,YAAY,GAAG,CAAC;IACpB,OAAOA,YAAY,GAAGJ,OAAO,EAC7B;AACI,MAAA,MAAMK,IAAI,GAAGC,IAAI,CAACN,OAAO,GAAGI,YAAY,CAAC;AACzC,MAAA,MAAMG,MAAM,GAAGb,MAAM,CAACK,QAAQ,CAACM,IAAI,CAAC;AACpCd,MAAAA,MAAM,CAACU,SAAS,CAACM,MAAM,EAAEF,IAAI,CAAC;AAC9BD,MAAAA,YAAY,IAAIG,MAAM;AAC1B,IAAA;IACA,IAAIH,YAAY,GAAGJ,OAAO,EAAE,MAAM3B,UAAU,CAAC,qCAAqC,CAAC;AACvF,EAAA,CAAC,MAED;AACI,IAAA,MAAMmC,oBAAoB,GAAGd,MAAM,CAACK,QAAQ,CAAC,CAAC,CAAC;AAC/C,IAAA,MAAMU,MAAM,GAAGf,MAAM,CAACK,QAAQ,CAAC,CAAC,CAAC;AACjC,IAAA,IAAIS,oBAAoB,KAAK,CAAC,IAAIA,oBAAoB,GAAG,CAAC,EAC1D;MACI,MAAMnC,UAAU,CAAC,0BAA0B,CAAC;AAChD,IAAA;AACAkB,IAAAA,MAAM,CAACU,SAAS,CAACQ,MAAM,EAAE,CAAC,CAAC;IAE3B,KAAK,IAAIvB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGc,OAAO,EAAEd,CAAC,EAAE,EAChC;MACI,IAAIwB,OAAO,GAAG,IAAI;AAClB,MAAA,IAAID,MAAM,EACV;AACI,QAAA,MAAME,UAAU,GAAGjB,MAAM,CAACK,QAAQ,CAAC,CAAC,CAAC;AACrCR,QAAAA,MAAM,CAACU,SAAS,CAACU,UAAU,EAAE,CAAC,CAAC;QAC/BD,OAAO,GAAGC,UAAU,KAAK,CAAC;AAC9B,MAAA;AACA,MAAA,IAAID,OAAO,EACX;AACI,QAAA,MAAME,cAAc,GAAGlB,MAAM,CAACK,QAAQ,CAACS,oBAAoB,CAAC;AAC5DjB,QAAAA,MAAM,CAACU,SAAS,CAACW,cAAc,EAAE,CAAC,CAAC;AACvC,MAAA;AACJ,IAAA;AACJ,EAAA;AAEA,EAAA,MAAMC,UAAU,GAAGnB,MAAM,CAACK,QAAQ,CAAC,CAAC,CAAC;AACrCR,EAAAA,MAAM,CAACU,SAAS,CAACY,UAAU,EAAE,CAAC,CAAC;EAC/B,IAAIA,UAAU,KAAK,CAAC,EACpB;AACI,IAAA,MAAMC,GAAG,GAAGpB,MAAM,CAACK,QAAQ,CAAC,EAAE,CAAC;AAC/B,IAAA,MAAMgB,GAAG,GAAGrB,MAAM,CAACK,QAAQ,CAAC,EAAE,CAAC;AAC/B,IAAA,MAAMiB,WAAW,GAAGtB,MAAM,CAACK,QAAQ,CAAC,CAAC,CAAC;AACtC,IAAA,MAAMkB,YAAY,GAAGvB,MAAM,CAACK,QAAQ,CAAC,CAAC,CAAC;AACvCR,IAAAA,MAAM,CAACU,SAAS,CAACa,GAAG,EAAE,EAAE,CAAC;AACzBvB,IAAAA,MAAM,CAACU,SAAS,CAACc,GAAG,EAAE,EAAE,CAAC;AACzBxB,IAAAA,MAAM,CAACU,SAAS,CAACe,WAAW,EAAE,CAAC,CAAC;AAChCzB,IAAAA,MAAM,CAACU,SAAS,CAACgB,YAAY,EAAE,CAAC,CAAC;AAEjC,IAAA,MAAMC,SAAS,GAAGC,qBAAqB,CAACnB,OAAO,EAAEF,UAAU,CAAC;IAC5D,KAAK,IAAIZ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGgC,SAAS,EAAEhC,CAAC,EAAE,EAClC;AACIK,MAAAA,MAAM,CAACU,SAAS,CAACP,MAAM,CAACK,QAAQ,CAACiB,WAAW,GAAG,CAAC,CAAC,EAAEA,WAAW,GAAG,CAAC,CAAC;AACvE,IAAA;AACJ,EAAA,CAAC,MACI,IAAIH,UAAU,KAAK,CAAC,EACzB;AACI,IAAA,MAAMxC,UAAU,CAAC,CAAA,gCAAA,EAAmCwC,UAAU,EAAE,CAAC;AACrE,EAAA;AAEA,EAAA,IAAIpB,IAAI,KAAK,CAAC,IAAI2B,IAAI,CAACC,KAAK,CAAC3B,MAAM,CAAC4B,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK7B,IAAI,EACnE;AACI,IAAA,MAAMpB,UAAU,CAAC,CAAA,iCAAA,EAAoCoB,IAAI,CAAA,OAAA,EAAU2B,IAAI,CAACC,KAAK,CAAC3B,MAAM,CAAC4B,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;AACnH,EAAA;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASH,qBAAqBA,CAACnB,OAAO,EAAEF,UAAU,EACzD;AACI,EAAA,IAAIA,UAAU,KAAK,CAAC,EAAE,OAAO,CAAC;AAC9B,EAAA,MAAMO,IAAI,GAAGC,IAAI,CAACN,OAAO,CAAC;AAC1B,EAAA,IAAIuB,IAAI,GAAGvB,OAAO,KAAKoB,IAAI,CAACC,KAAK,CAAE,CAAChB,IAAI,GAAG,CAAC,KAAKP,UAAU,GAAG,CAAC,CAAC,GAAIA,UAAU,CAAC;EAE/E,SACA;IACI,IAAI0B,GAAG,GAAG,CAAC;IACX,IAAIC,IAAI,GAAG,CAAC;IACZ,KAAK,IAAIvC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGY,UAAU,EAAEZ,CAAC,EAAE,EACnC;AACIsC,MAAAA,GAAG,IAAID,IAAI;MACXE,IAAI,IAAIF,IAAI,GAAG,CAAC;AACpB,IAAA;IACA,IAAIC,GAAG,IAAIxB,OAAO,IAAIyB,IAAI,GAAGzB,OAAO,EAAE,OAAOuB,IAAI;IACjD,IAAIC,GAAG,GAAGxB,OAAO,EAAEuB,IAAI,EAAE,CAAC,KACrBA,IAAI,EAAE;AACf,EAAA;AACJ;AAEA,SAASzC,OAAOA,CAACH,KAAK,EAAE+C,MAAM,EAC9B;AACI,EAAA,OAAO,CAAC/C,KAAK,CAAC+C,MAAM,CAAC,GAAI/C,KAAK,CAAC+C,MAAM,GAAG,CAAC,CAAC,IAAI,CAAE,GAAI/C,KAAK,CAAC+C,MAAM,GAAG,CAAC,CAAC,IAAI,EAAG,GAAI/C,KAAK,CAAC+C,MAAM,GAAG,CAAC,CAAC,GAAG,SAAU,MAAM,CAAC;AACzH;;;;"}
|
|
@@ -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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sources":["../../../../../../src/resource/formats/wem/core/helpers.js"],"sourcesContent":["import { asUint8Array, readFourCc } from \"#utils/bytes\";\nimport { convertWemToOgg } from \"./wemToOgg.js\";\nimport { decodePtadpcm } from \"./ptadpcm.js\";\n\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_JSON = \"json\";\nexport const OUTPUT_WEM_JSON = \"wemJson\";\nexport const OUTPUT_OGG = \"ogg\";\nexport const OUTPUT_PCM = \"pcm\";\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_RAW,\n inputType: \"wem\",\n source: \"\"\n});\n\n/**\n * Wwise RIFF format tags mapped to codec names.\n *\n * Tag meanings follow the publicly documented behavior of Wwise media as\n * observed by community tooling (ww2ogg, vgmstream, wwiser). Unknown tags are\n * reported as `wwise-format-0x<tag>` rather than rejected.\n */\nexport const WEM_CODEC_NAMES = Object.freeze({\n 0x0001: \"pcm\",\n 0x0002: \"wwise-ima-adpcm\",\n 0x0069: \"wwise-ima-adpcm\",\n 0x0165: \"xma2\",\n 0x0166: \"xma2\",\n 0x3040: \"wwise-opus\",\n 0x3041: \"wwise-opus-nx\",\n 0x3042: \"wwise-opus-wem\",\n 0x8311: \"wwise-ptadpcm\",\n 0xaac0: \"aac\",\n 0xfffe: \"pcm-extensible\",\n 0xffff: \"wwise-vorbis\"\n});\n\n/**\n * Normalizes reader options against their supported defaults for the WEM format\n * reader.\n */\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsWemFormat\")\n{\n const values = { ...DEFAULT_VALUES, ...(base || {}), ...(options || {}) };\n values.inputType = values.inputType ? String(values.inputType).replace(/^\\./u, \"\").toLowerCase() : \"wem\";\n values.emit = normalizeEmit(values.emit, readerName);\n return values;\n}\n\n/** Normalizes the requested output representation for the WEM format reader. */\nexport function normalizeEmit(emit, readerName)\n{\n if (emit === undefined || emit === null) return OUTPUT_RAW;\n if (emit === OUTPUT_JSON) return OUTPUT_WEM_JSON;\n if ([ OUTPUT_RAW, OUTPUT_WEM_JSON, OUTPUT_OGG, OUTPUT_PCM ].includes(emit)) return emit;\n throw new TypeError(`${readerName}: unknown emit value ${JSON.stringify(emit)}`);\n}\n\n/** Returns a byte view over the supplied binary input for the WEM format reader. */\r/**\n * Test for a Wwise RIFF/RIFX WAVE signature.\n *\n * @param {Uint8Array} bytes Candidate bytes.\n * @returns {boolean} True when a RIFF or RIFX WAVE container is present.\n */\nexport function isWEM(bytes)\n{\n if (bytes.byteLength < 12) return false;\n const container = readFourCc(bytes, 0);\n return (container === \"RIFF\" || container === \"RIFX\") && readFourCc(bytes, 8) === \"WAVE\";\n}\n\n/**\n * Inspect Wwise media bytes without decoding audio data.\n *\n * Reports the chunk map, `fmt ` fields, codec identity, and Vorbis sample\n * count/duration when present. Inspection never throws on unknown chunks or\n * codecs; truncated trailing chunks stop the walk.\n *\n * @param {Uint8Array} bytes Wem bytes.\n * @returns {object} Wem metadata.\n */\nexport function inspectWEM(bytes)\n{\n const littleEndian = readFourCc(bytes, 0) !== \"RIFX\";\n const info = {\n sourceFormat: \"wem\",\n container: readFourCc(bytes, 0),\n littleEndian,\n riffSize: readU32(bytes, 4, littleEndian),\n codec: \"\",\n codecTag: 0,\n channels: 0,\n sampleRate: 0,\n byteRate: 0,\n blockAlign: 0,\n bitsPerSample: 0,\n extraSize: 0,\n sampleCount: 0,\n durationSeconds: 0,\n dataOffset: 0,\n dataBytes: 0,\n vorbis: null,\n chunks: []\n };\n\n let offset = 12;\n let fmtOffset = 0;\n let fmtSize = 0;\n let vorbOffset = 0;\n let vorbSize = 0;\n\n while (offset + 8 <= bytes.byteLength)\n {\n const id = readFourCc(bytes, offset);\n const size = readU32(bytes, offset + 4, littleEndian);\n const dataOffset = offset + 8;\n if (dataOffset + size > bytes.byteLength)\n {\n info.chunks.push({ id, offset, dataOffset, size, truncated: true });\n break;\n }\n info.chunks.push({ id, offset, dataOffset, size });\n\n if (id === \"fmt \" && size >= 16)\n {\n fmtOffset = dataOffset;\n fmtSize = size;\n info.codecTag = readU16(bytes, dataOffset, littleEndian);\n info.channels = readU16(bytes, dataOffset + 2, littleEndian);\n info.sampleRate = readU32(bytes, dataOffset + 4, littleEndian);\n info.byteRate = readU32(bytes, dataOffset + 8, littleEndian);\n info.blockAlign = readU16(bytes, dataOffset + 12, littleEndian);\n info.bitsPerSample = readU16(bytes, dataOffset + 14, littleEndian);\n if (size >= 18) info.extraSize = readU16(bytes, dataOffset + 16, littleEndian);\n info.codec = WEM_CODEC_NAMES[info.codecTag] || `wwise-format-0x${info.codecTag.toString(16).padStart(4, \"0\")}`;\n }\n if (id === \"vorb\")\n {\n vorbOffset = dataOffset;\n vorbSize = size;\n }\n if (id === \"data\")\n {\n info.dataOffset = dataOffset;\n info.dataBytes = size;\n }\n\n offset = dataOffset + size + (size & 1);\n }\n\n if (info.codec === \"wwise-vorbis\")\n {\n // Wwise Vorbis stores its sample count in a separate \"vorb\" chunk, or\n // inline in \"fmt \" at +0x18 when the fmt chunk is 0x42 bytes.\n if (!vorbOffset && fmtSize === 0x42)\n {\n vorbOffset = fmtOffset + 0x18;\n vorbSize = fmtSize - 0x18;\n }\n if (vorbOffset && vorbOffset + 4 <= bytes.byteLength)\n {\n info.sampleCount = readU32(bytes, vorbOffset, littleEndian);\n info.vorbis = {\n vorbOffset,\n vorbSize,\n inline: fmtSize === 0x42,\n sampleCount: info.sampleCount\n };\n }\n }\n\n if (info.sampleCount && info.sampleRate)\n {\n info.durationSeconds = info.sampleCount / info.sampleRate;\n }\n else if ((info.codec === \"pcm\" || info.codec === \"pcm-extensible\") && info.byteRate)\n {\n info.durationSeconds = info.dataBytes / info.byteRate;\n }\n\n return info;\n}\n\n/** Inspects input using normalized format options for the WEM format reader. */\nexport function inspectWithValues(input, values = DEFAULT_VALUES)\n{\n const bytes = asUint8Array(input, \"Wem input\");\n if (!isWEM(bytes))\n {\n throw new TypeError(\"CjsWemFormat: expected a RIFF/RIFX WAVE (wem) container\");\n }\n return {\n payloadType: \"audio\",\n mediaTypes: [ \"audio\" ],\n byteLength: bytes.byteLength,\n source: values.source || \"buffer\",\n ...inspectWEM(bytes)\n };\n}\n\n/**\n * Reports whether input is supported under normalized format options for the WEM\n * format reader.\n */\nexport function probeSupportWithValues(input, values = DEFAULT_VALUES)\n{\n try\n {\n const metadata = inspectWithValues(input, values);\n const oggSupport = getOggSupport(metadata);\n const pcmSupport = getPcmSupport(metadata);\n return {\n format: \"wem\",\n source: values.source || \"buffer\",\n supported: metadata.codec ? \"partial\" : \"none\",\n confidence: metadata.codec ? 1 : 0.5,\n preferredOutput: oggSupport.supported ? OUTPUT_OGG : (pcmSupport.supported ? OUTPUT_PCM : \"raw\"),\n reason: metadata.codec\n ? (oggSupport.supported\n ? \"Wwise Vorbis recognized; repacks losslessly to Ogg Vorbis.\"\n : (metadata.codec === \"wwise-vorbis\"\n ? oggSupport.reason\n : \"Wwise media container recognized; payloads pass through undecoded.\"))\n : \"RIFF/RIFX container recognized but no fmt chunk was found.\",\n metadata,\n variants: [\n {\n kind: \"raw\",\n payloadType: \"raw\",\n codec: metadata.codec || \"unknown\",\n mimeType: \"application/octet-stream\",\n supported: true,\n },\n {\n kind: OUTPUT_OGG,\n payloadType: \"raw\",\n codec: \"vorbis\",\n mimeType: \"audio/ogg\",\n supported: oggSupport.supported,\n reason: oggSupport.supported ? \"\" : oggSupport.reason\n },\n {\n kind: OUTPUT_PCM,\n payloadType: OUTPUT_PCM,\n codec: \"float32\",\n supported: pcmSupport.supported,\n reason: pcmSupport.supported ? \"\" : pcmSupport.reason\n }\n ],\n warnings: [],\n errors: []\n };\n }\n catch (error)\n {\n return {\n format: \"wem\",\n source: values.source || \"buffer\",\n supported: \"none\",\n confidence: 0,\n preferredOutput: \"\",\n reason: error.message,\n metadata: null,\n variants: [],\n warnings: [],\n errors: [ error.message ]\n };\n }\n}\n\n// PCM decode routing by codec: PTADPCM decodes through its own module;\n// uncompressed 16-bit PCM deinterleaves directly. Compressed codecs with\n// their own containers (Vorbis, Opus, XMA) are not decoded here - Vorbis\n// repacks to Ogg instead (OUTPUT_OGG).\nfunction decodeToPcm(bytes, metadata)\n{\n if (metadata.codec === \"wwise-ptadpcm\")\n {\n return decodePtadpcm(bytes, metadata);\n }\n if ((metadata.codec === \"pcm\" || metadata.codec === \"pcm-extensible\") && metadata.bitsPerSample === 16)\n {\n const channels = Math.max(1, metadata.channels);\n const sampleCount = Math.floor(metadata.dataBytes / (2 * channels));\n const channelData = [];\n for (let channel = 0; channel < channels; channel++)\n {\n channelData.push(new Float32Array(sampleCount));\n }\n for (let i = 0; i < sampleCount; i++)\n {\n for (let channel = 0; channel < channels; channel++)\n {\n const at = metadata.dataOffset + (i * channels + channel) * 2;\n const raw = bytes[at] | (bytes[at + 1] << 8);\n channelData[channel][i] = (raw >= 0x8000 ? raw - 0x10000 : raw) / 32768;\n }\n }\n return { channelData, sampleCount, sampleRate: metadata.sampleRate, channels };\n }\n const error = new Error(`wem: pcm decode is not supported for codec ${metadata.codec || \"unknown\"}`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = \"wem\";\n throw error;\n}\n\nfunction getPcmSupport(metadata)\n{\n if (metadata.codec === \"wwise-ptadpcm\") return { supported: true, reason: \"\" };\n if ((metadata.codec === \"pcm\" || metadata.codec === \"pcm-extensible\") && metadata.bitsPerSample === 16)\n {\n return { supported: true, reason: \"\" };\n }\n return {\n supported: false,\n reason: \"PCM decode covers PTADPCM and 16-bit PCM; use the ogg emit for Wwise Vorbis.\"\n };\n}\n\nfunction getOggSupport(metadata)\n{\n if (metadata.codec !== \"wwise-vorbis\")\n {\n return {\n supported: false,\n reason: \"Only Wwise Vorbis media can be repacked to Ogg.\"\n };\n }\n\n const vorbSize = metadata.vorbis?.vorbSize;\n if (vorbSize === 0x28 || vorbSize === 0x2c)\n {\n return {\n supported: false,\n reason: \"Wwise Vorbis recognized, but old header-triad Wwise Vorbis is not supported by this repacker.\"\n };\n }\n\n if (!metadata.vorbis)\n {\n return {\n supported: false,\n reason: \"Wwise Vorbis recognized, but no Vorbis layout metadata was found.\"\n };\n }\n\n return { supported: true, reason: \"\" };\n}\n\n/** Reads input using normalized format options for the WEM format reader. */\nexport function readWithValues(input, values = DEFAULT_VALUES)\n{\n const bytes = asUint8Array(input, \"Wem input\");\n const metadata = inspectWithValues(bytes, values);\n if (values.emit === OUTPUT_WEM_JSON) return metadata;\n if (values.emit === OUTPUT_OGG)\n {\n if (metadata.codec !== \"wwise-vorbis\")\n {\n const error = new Error(`wem: only Wwise Vorbis can be repacked to Ogg (found ${metadata.codec || \"unknown\"})`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = \"wem\";\n throw error;\n }\n const ogg = convertWemToOgg(bytes, { codebooks: values.codebooks });\n return {\n payloadType: \"raw\",\n sourceFormat: \"wem\",\n outputFormat: \"ogg\",\n codec: \"vorbis\",\n mimeType: \"audio/ogg\",\n sampleCount: ogg.sampleCount,\n sampleRate: ogg.sampleRate,\n channels: ogg.channels,\n durationSeconds: ogg.durationSeconds,\n loop: ogg.loop,\n pageCount: ogg.pageCount,\n metadata,\n bytes: ogg.bytes\n };\n }\n if (values.emit === OUTPUT_PCM)\n {\n const decoded = decodeToPcm(bytes, metadata);\n return {\n payloadType: OUTPUT_PCM,\n sourceFormat: \"wem\",\n outputFormat: OUTPUT_PCM,\n codec: \"float32\",\n sourceCodec: metadata.codec,\n sampleCount: decoded.sampleCount,\n sampleRate: decoded.sampleRate,\n channels: decoded.channels,\n durationSeconds: decoded.sampleRate ? decoded.sampleCount / decoded.sampleRate : 0,\n channelData: decoded.channelData,\n metadata\n };\n }\n if (values.emit === OUTPUT_RAW)\n {\n return {\n payloadType: \"raw\",\n sourceFormat: \"wem\",\n codec: metadata.codec,\n mimeType: \"application/octet-stream\",\n metadata,\n bytes\n };\n }\n\n const error = new Error(`wem: emit \"${values.emit}\" is not implemented yet`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_IMPLEMENTED\";\n error.sourceFormat = \"wem\";\n error.emit = values.emit;\n throw error;\n}\n\n/** Converts a parsed payload into a JSON-safe value for the WEM format reader. */\nexport function toJsonValue(value)\n{\n if (value instanceof Uint8Array) return { byteLength: value.byteLength };\n if (Array.isArray(value)) return value.map(toJsonValue);\n if (value && typeof value === \"object\")\n {\n const output = {};\n for (const [ key, entry ] of Object.entries(value)) output[key] = toJsonValue(entry);\n return output;\n }\n return value;\n}\n\n\nfunction readU16(bytes, offset, littleEndian)\n{\n return littleEndian\n ? bytes[offset] | (bytes[offset + 1] << 8)\n : (bytes[offset] << 8) | bytes[offset + 1];\n}\n\nfunction readU32(bytes, offset, littleEndian)\n{\n return littleEndian\n ? (bytes[offset] | (bytes[offset + 1] << 8) | (bytes[offset + 2] << 16) | (bytes[offset + 3] * 0x1000000)) >>> 0\n : ((bytes[offset] * 0x1000000) + (bytes[offset + 1] << 16) + (bytes[offset + 2] << 8) + bytes[offset + 3]) >>> 0;\n}\n\n"],"names":["OUTPUT_RAW","OUTPUT_JSON","OUTPUT_WEM_JSON","OUTPUT_OGG","OUTPUT_PCM","DEFAULT_VALUES","Object","freeze","emit","inputType","source","WEM_CODEC_NAMES","normalizeValues","base","options","readerName","values","String","replace","toLowerCase","normalizeEmit","undefined","includes","TypeError","JSON","stringify","isWEM","bytes","byteLength","container","readFourCc","inspectWEM","littleEndian","info","sourceFormat","riffSize","readU32","codec","codecTag","channels","sampleRate","byteRate","blockAlign","bitsPerSample","extraSize","sampleCount","durationSeconds","dataOffset","dataBytes","vorbis","chunks","offset","fmtOffset","fmtSize","vorbOffset","vorbSize","id","size","push","truncated","readU16","toString","padStart","inline","inspectWithValues","input","asUint8Array","payloadType","mediaTypes","decodeToPcm","metadata","decodePtadpcm","Math","max","floor","channelData","channel","Float32Array","i","at","raw","error","Error","code","readWithValues","ogg","convertWemToOgg","codebooks","outputFormat","mimeType","loop","pageCount","decoded","sourceCodec","toJsonValue","value","Uint8Array","Array","isArray","map","output","key","entry","entries"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helpers.js","sources":["../../../../../../src/resource/formats/wem/core/helpers.js"],"sourcesContent":["import { toJsonWithByteSummary as toJsonValue } from \"../../../format/jsonPolicies.js\";\nimport { asUint8Array, readFourCc } from \"#utils/bytes\";\nimport { convertWemToOgg } from \"./wemToOgg.js\";\nimport { decodePtadpcm } from \"./ptadpcm.js\";\n\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_JSON = \"json\";\nexport const OUTPUT_WEM_JSON = \"wemJson\";\nexport const OUTPUT_OGG = \"ogg\";\nexport const OUTPUT_PCM = \"pcm\";\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_RAW,\n inputType: \"wem\",\n source: \"\"\n});\n\n/**\n * Wwise RIFF format tags mapped to codec names.\n *\n * Tag meanings follow the publicly documented behavior of Wwise media as\n * observed by community tooling (ww2ogg, vgmstream, wwiser). Unknown tags are\n * reported as `wwise-format-0x<tag>` rather than rejected.\n */\nexport const WEM_CODEC_NAMES = Object.freeze({\n 0x0001: \"pcm\",\n 0x0002: \"wwise-ima-adpcm\",\n 0x0069: \"wwise-ima-adpcm\",\n 0x0165: \"xma2\",\n 0x0166: \"xma2\",\n 0x3040: \"wwise-opus\",\n 0x3041: \"wwise-opus-nx\",\n 0x3042: \"wwise-opus-wem\",\n 0x8311: \"wwise-ptadpcm\",\n 0xaac0: \"aac\",\n 0xfffe: \"pcm-extensible\",\n 0xffff: \"wwise-vorbis\"\n});\n\n/**\n * Normalizes reader options against their supported defaults for the WEM format\n * reader.\n */\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsWemFormat\")\n{\n const values = { ...DEFAULT_VALUES, ...(base || {}), ...(options || {}) };\n values.inputType = values.inputType ? String(values.inputType).replace(/^\\./u, \"\").toLowerCase() : \"wem\";\n values.emit = normalizeEmit(values.emit, readerName);\n return values;\n}\n\n/** Normalizes the requested output representation for the WEM format reader. */\nexport function normalizeEmit(emit, readerName)\n{\n if (emit === undefined || emit === null) return OUTPUT_RAW;\n if (emit === OUTPUT_JSON) return OUTPUT_WEM_JSON;\n if ([ OUTPUT_RAW, OUTPUT_WEM_JSON, OUTPUT_OGG, OUTPUT_PCM ].includes(emit)) return emit;\n throw new TypeError(`${readerName}: unknown emit value ${JSON.stringify(emit)}`);\n}\n\n/** Returns a byte view over the supplied binary input for the WEM format reader. */\n/**\n * Test for a Wwise RIFF/RIFX WAVE signature.\n *\n * @param {Uint8Array} bytes Candidate bytes.\n * @returns {boolean} True when a RIFF or RIFX WAVE container is present.\n */\nexport function isWEM(bytes)\n{\n if (bytes.byteLength < 12) return false;\n const container = readFourCc(bytes, 0);\n return (container === \"RIFF\" || container === \"RIFX\") && readFourCc(bytes, 8) === \"WAVE\";\n}\n\n/**\n * Inspect Wwise media bytes without decoding audio data.\n *\n * Reports the chunk map, `fmt ` fields, codec identity, and Vorbis sample\n * count/duration when present. Inspection never throws on unknown chunks or\n * codecs; truncated trailing chunks stop the walk.\n *\n * @param {Uint8Array} bytes Wem bytes.\n * @returns {object} Wem metadata.\n */\nexport function inspectWEM(bytes)\n{\n const littleEndian = readFourCc(bytes, 0) !== \"RIFX\";\n const info = {\n sourceFormat: \"wem\",\n container: readFourCc(bytes, 0),\n littleEndian,\n riffSize: readU32(bytes, 4, littleEndian),\n codec: \"\",\n codecTag: 0,\n channels: 0,\n sampleRate: 0,\n byteRate: 0,\n blockAlign: 0,\n bitsPerSample: 0,\n extraSize: 0,\n sampleCount: 0,\n durationSeconds: 0,\n dataOffset: 0,\n dataBytes: 0,\n vorbis: null,\n chunks: []\n };\n\n let offset = 12;\n let fmtOffset = 0;\n let fmtSize = 0;\n let vorbOffset = 0;\n let vorbSize = 0;\n\n while (offset + 8 <= bytes.byteLength)\n {\n const id = readFourCc(bytes, offset);\n const size = readU32(bytes, offset + 4, littleEndian);\n const dataOffset = offset + 8;\n if (dataOffset + size > bytes.byteLength)\n {\n info.chunks.push({ id, offset, dataOffset, size, truncated: true });\n break;\n }\n info.chunks.push({ id, offset, dataOffset, size });\n\n if (id === \"fmt \" && size >= 16)\n {\n fmtOffset = dataOffset;\n fmtSize = size;\n info.codecTag = readU16(bytes, dataOffset, littleEndian);\n info.channels = readU16(bytes, dataOffset + 2, littleEndian);\n info.sampleRate = readU32(bytes, dataOffset + 4, littleEndian);\n info.byteRate = readU32(bytes, dataOffset + 8, littleEndian);\n info.blockAlign = readU16(bytes, dataOffset + 12, littleEndian);\n info.bitsPerSample = readU16(bytes, dataOffset + 14, littleEndian);\n if (size >= 18) info.extraSize = readU16(bytes, dataOffset + 16, littleEndian);\n info.codec = WEM_CODEC_NAMES[info.codecTag] || `wwise-format-0x${info.codecTag.toString(16).padStart(4, \"0\")}`;\n }\n if (id === \"vorb\")\n {\n vorbOffset = dataOffset;\n vorbSize = size;\n }\n if (id === \"data\")\n {\n info.dataOffset = dataOffset;\n info.dataBytes = size;\n }\n\n offset = dataOffset + size + (size & 1);\n }\n\n if (info.codec === \"wwise-vorbis\")\n {\n // Wwise Vorbis stores its sample count in a separate \"vorb\" chunk, or\n // inline in \"fmt \" at +0x18 when the fmt chunk is 0x42 bytes.\n if (!vorbOffset && fmtSize === 0x42)\n {\n vorbOffset = fmtOffset + 0x18;\n vorbSize = fmtSize - 0x18;\n }\n if (vorbOffset && vorbOffset + 4 <= bytes.byteLength)\n {\n info.sampleCount = readU32(bytes, vorbOffset, littleEndian);\n info.vorbis = {\n vorbOffset,\n vorbSize,\n inline: fmtSize === 0x42,\n sampleCount: info.sampleCount\n };\n }\n }\n\n if (info.sampleCount && info.sampleRate)\n {\n info.durationSeconds = info.sampleCount / info.sampleRate;\n }\n else if ((info.codec === \"pcm\" || info.codec === \"pcm-extensible\") && info.byteRate)\n {\n info.durationSeconds = info.dataBytes / info.byteRate;\n }\n\n return info;\n}\n\n/** Inspects input using normalized format options for the WEM format reader. */\nexport function inspectWithValues(input, values = DEFAULT_VALUES)\n{\n const bytes = asUint8Array(input, \"Wem input\");\n if (!isWEM(bytes))\n {\n throw new TypeError(\"CjsWemFormat: expected a RIFF/RIFX WAVE (wem) container\");\n }\n return {\n payloadType: \"audio\",\n mediaTypes: [ \"audio\" ],\n byteLength: bytes.byteLength,\n source: values.source || \"buffer\",\n ...inspectWEM(bytes)\n };\n}\n\n/**\n * Reports whether input is supported under normalized format options for the WEM\n * format reader.\n */\nexport function probeSupportWithValues(input, values = DEFAULT_VALUES)\n{\n try\n {\n const metadata = inspectWithValues(input, values);\n const oggSupport = getOggSupport(metadata);\n const pcmSupport = getPcmSupport(metadata);\n return {\n format: \"wem\",\n source: values.source || \"buffer\",\n supported: metadata.codec ? \"partial\" : \"none\",\n confidence: metadata.codec ? 1 : 0.5,\n preferredOutput: oggSupport.supported ? OUTPUT_OGG : (pcmSupport.supported ? OUTPUT_PCM : \"raw\"),\n reason: metadata.codec\n ? (oggSupport.supported\n ? \"Wwise Vorbis recognized; repacks losslessly to Ogg Vorbis.\"\n : (metadata.codec === \"wwise-vorbis\"\n ? oggSupport.reason\n : \"Wwise media container recognized; payloads pass through undecoded.\"))\n : \"RIFF/RIFX container recognized but no fmt chunk was found.\",\n metadata,\n variants: [\n {\n kind: \"raw\",\n payloadType: \"raw\",\n codec: metadata.codec || \"unknown\",\n mimeType: \"application/octet-stream\",\n supported: true,\n },\n {\n kind: OUTPUT_OGG,\n payloadType: \"raw\",\n codec: \"vorbis\",\n mimeType: \"audio/ogg\",\n supported: oggSupport.supported,\n reason: oggSupport.supported ? \"\" : oggSupport.reason\n },\n {\n kind: OUTPUT_PCM,\n payloadType: OUTPUT_PCM,\n codec: \"float32\",\n supported: pcmSupport.supported,\n reason: pcmSupport.supported ? \"\" : pcmSupport.reason\n }\n ],\n warnings: [],\n errors: []\n };\n }\n catch (error)\n {\n return {\n format: \"wem\",\n source: values.source || \"buffer\",\n supported: \"none\",\n confidence: 0,\n preferredOutput: \"\",\n reason: error.message,\n metadata: null,\n variants: [],\n warnings: [],\n errors: [ error.message ]\n };\n }\n}\n\n// PCM decode routing by codec: PTADPCM decodes through its own module;\n// uncompressed 16-bit PCM deinterleaves directly. Compressed codecs with\n// their own containers (Vorbis, Opus, XMA) are not decoded here - Vorbis\n// repacks to Ogg instead (OUTPUT_OGG).\nfunction decodeToPcm(bytes, metadata)\n{\n if (metadata.codec === \"wwise-ptadpcm\")\n {\n return decodePtadpcm(bytes, metadata);\n }\n if ((metadata.codec === \"pcm\" || metadata.codec === \"pcm-extensible\") && metadata.bitsPerSample === 16)\n {\n const channels = Math.max(1, metadata.channels);\n const sampleCount = Math.floor(metadata.dataBytes / (2 * channels));\n const channelData = [];\n for (let channel = 0; channel < channels; channel++)\n {\n channelData.push(new Float32Array(sampleCount));\n }\n for (let i = 0; i < sampleCount; i++)\n {\n for (let channel = 0; channel < channels; channel++)\n {\n const at = metadata.dataOffset + (i * channels + channel) * 2;\n const raw = bytes[at] | (bytes[at + 1] << 8);\n channelData[channel][i] = (raw >= 0x8000 ? raw - 0x10000 : raw) / 32768;\n }\n }\n return { channelData, sampleCount, sampleRate: metadata.sampleRate, channels };\n }\n const error = new Error(`wem: pcm decode is not supported for codec ${metadata.codec || \"unknown\"}`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = \"wem\";\n throw error;\n}\n\nfunction getPcmSupport(metadata)\n{\n if (metadata.codec === \"wwise-ptadpcm\") return { supported: true, reason: \"\" };\n if ((metadata.codec === \"pcm\" || metadata.codec === \"pcm-extensible\") && metadata.bitsPerSample === 16)\n {\n return { supported: true, reason: \"\" };\n }\n return {\n supported: false,\n reason: \"PCM decode covers PTADPCM and 16-bit PCM; use the ogg emit for Wwise Vorbis.\"\n };\n}\n\nfunction getOggSupport(metadata)\n{\n if (metadata.codec !== \"wwise-vorbis\")\n {\n return {\n supported: false,\n reason: \"Only Wwise Vorbis media can be repacked to Ogg.\"\n };\n }\n\n const vorbSize = metadata.vorbis?.vorbSize;\n if (vorbSize === 0x28 || vorbSize === 0x2c)\n {\n return {\n supported: false,\n reason: \"Wwise Vorbis recognized, but old header-triad Wwise Vorbis is not supported by this repacker.\"\n };\n }\n\n if (!metadata.vorbis)\n {\n return {\n supported: false,\n reason: \"Wwise Vorbis recognized, but no Vorbis layout metadata was found.\"\n };\n }\n\n return { supported: true, reason: \"\" };\n}\n\n/** Reads input using normalized format options for the WEM format reader. */\nexport function readWithValues(input, values = DEFAULT_VALUES)\n{\n const bytes = asUint8Array(input, \"Wem input\");\n const metadata = inspectWithValues(bytes, values);\n if (values.emit === OUTPUT_WEM_JSON) return metadata;\n if (values.emit === OUTPUT_OGG)\n {\n if (metadata.codec !== \"wwise-vorbis\")\n {\n const error = new Error(`wem: only Wwise Vorbis can be repacked to Ogg (found ${metadata.codec || \"unknown\"})`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = \"wem\";\n throw error;\n }\n const ogg = convertWemToOgg(bytes, { codebooks: values.codebooks });\n return {\n payloadType: \"raw\",\n sourceFormat: \"wem\",\n outputFormat: \"ogg\",\n codec: \"vorbis\",\n mimeType: \"audio/ogg\",\n sampleCount: ogg.sampleCount,\n sampleRate: ogg.sampleRate,\n channels: ogg.channels,\n durationSeconds: ogg.durationSeconds,\n loop: ogg.loop,\n pageCount: ogg.pageCount,\n metadata,\n bytes: ogg.bytes\n };\n }\n if (values.emit === OUTPUT_PCM)\n {\n const decoded = decodeToPcm(bytes, metadata);\n return {\n payloadType: OUTPUT_PCM,\n sourceFormat: \"wem\",\n outputFormat: OUTPUT_PCM,\n codec: \"float32\",\n sourceCodec: metadata.codec,\n sampleCount: decoded.sampleCount,\n sampleRate: decoded.sampleRate,\n channels: decoded.channels,\n durationSeconds: decoded.sampleRate ? decoded.sampleCount / decoded.sampleRate : 0,\n channelData: decoded.channelData,\n metadata\n };\n }\n if (values.emit === OUTPUT_RAW)\n {\n return {\n payloadType: \"raw\",\n sourceFormat: \"wem\",\n codec: metadata.codec,\n mimeType: \"application/octet-stream\",\n metadata,\n bytes\n };\n }\n\n const error = new Error(`wem: emit \"${values.emit}\" is not implemented yet`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_IMPLEMENTED\";\n error.sourceFormat = \"wem\";\n error.emit = values.emit;\n throw error;\n}\n\n/** Converts a parsed payload into a JSON-safe value for the WEM format reader. */\n/** The shared JSON policy for this reader, under the name its callers use. */\nexport { toJsonValue };\n\n\nfunction readU16(bytes, offset, littleEndian)\n{\n return littleEndian\n ? bytes[offset] | (bytes[offset + 1] << 8)\n : (bytes[offset] << 8) | bytes[offset + 1];\n}\n\nfunction readU32(bytes, offset, littleEndian)\n{\n return littleEndian\n ? (bytes[offset] | (bytes[offset + 1] << 8) | (bytes[offset + 2] << 16) | (bytes[offset + 3] * 0x1000000)) >>> 0\n : ((bytes[offset] * 0x1000000) + (bytes[offset + 1] << 16) + (bytes[offset + 2] << 8) + bytes[offset + 3]) >>> 0;\n}\n\n"],"names":["OUTPUT_RAW","OUTPUT_JSON","OUTPUT_WEM_JSON","OUTPUT_OGG","OUTPUT_PCM","DEFAULT_VALUES","Object","freeze","emit","inputType","source","WEM_CODEC_NAMES","normalizeValues","base","options","readerName","values","String","replace","toLowerCase","normalizeEmit","undefined","includes","TypeError","JSON","stringify","isWEM","bytes","byteLength","container","readFourCc","inspectWEM","littleEndian","info","sourceFormat","riffSize","readU32","codec","codecTag","channels","sampleRate","byteRate","blockAlign","bitsPerSample","extraSize","sampleCount","durationSeconds","dataOffset","dataBytes","vorbis","chunks","offset","fmtOffset","fmtSize","vorbOffset","vorbSize","id","size","push","truncated","readU16","toString","padStart","inline","inspectWithValues","input","asUint8Array","payloadType","mediaTypes","decodeToPcm","metadata","decodePtadpcm","Math","max","floor","channelData","channel","Float32Array","i","at","raw","error","Error","code","readWithValues","ogg","convertWemToOgg","codebooks","outputFormat","mimeType","loop","pageCount","decoded","sourceCodec"],"mappings":"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"}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { readU16LE, readU16BE, readU32LE, readU32BE } from '#utils/bytes';
|
|
2
|
-
import {
|
|
2
|
+
import { BitReader, OggPageWriter, ilog } from './bitStream.js';
|
|
3
3
|
import { parseCodebookLibrary, rebuildCodebookById } from './codebookLibrary.js';
|
|
4
4
|
import { getPackedCodebooksAotuv603 } from './packedCodebooksAotuv603.js';
|
|
5
5
|
|
|
6
|
-
/**
|
|
7
|
-
* Wwise Vorbis (.wem) to standard Ogg Vorbis repacker.
|
|
8
|
-
*
|
|
9
|
-
* This is a lossless container transform: the identification/comment/setup
|
|
10
|
-
* headers are regenerated (setup codebooks expanded from the packed aoTuV
|
|
11
|
-
* 6.03 library), modified audio packets get their type/window bits restored,
|
|
12
|
-
* and packets are paginated with correct granule positions computed from the
|
|
13
|
-
* mode block flags — so no separate revorb pass is needed. No audio is
|
|
14
|
-
* decoded or re-encoded. Algorithm behavior follows the ww2ogg reference
|
|
15
|
-
* (BSD-licensed) as an original reimplementation.
|
|
6
|
+
/**
|
|
7
|
+
* Wwise Vorbis (.wem) to standard Ogg Vorbis repacker.
|
|
8
|
+
*
|
|
9
|
+
* This is a lossless container transform: the identification/comment/setup
|
|
10
|
+
* headers are regenerated (setup codebooks expanded from the packed aoTuV
|
|
11
|
+
* 6.03 library), modified audio packets get their type/window bits restored,
|
|
12
|
+
* and packets are paginated with correct granule positions computed from the
|
|
13
|
+
* mode block flags — so no separate revorb pass is needed. No audio is
|
|
14
|
+
* decoded or re-encoded. Algorithm behavior follows the ww2ogg reference
|
|
15
|
+
* (BSD-licensed) as an original reimplementation.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
const VENDOR = "converted from Audiokinetic Wwise by @carbonenginejs/runtime/resource";
|
|
@@ -27,11 +27,11 @@ function notSupported(message) {
|
|
|
27
27
|
return error;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
/**
|
|
31
|
-
* Parse the Wwise Vorbis stream layout needed for repacking.
|
|
32
|
-
*
|
|
33
|
-
* @param {Uint8Array} bytes Wem bytes.
|
|
34
|
-
* @returns {object} Stream layout, vorb fields, and loop info.
|
|
30
|
+
/**
|
|
31
|
+
* Parse the Wwise Vorbis stream layout needed for repacking.
|
|
32
|
+
*
|
|
33
|
+
* @param {Uint8Array} bytes Wem bytes.
|
|
34
|
+
* @returns {object} Stream layout, vorb fields, and loop info.
|
|
35
35
|
*/
|
|
36
36
|
function parseWemVorbisLayout(bytes) {
|
|
37
37
|
if (bytes.length < 12) throw parseError("missing RIFF");
|
|
@@ -197,11 +197,11 @@ function generateHeaders(bytes, layout, library, writer) {
|
|
|
197
197
|
const setupHeader = readPacketHeader(bytes, layout.dataOffset + layout.setupPacketOffset, layout);
|
|
198
198
|
if (setupHeader.granule !== 0) throw parseError("setup packet granule != 0");
|
|
199
199
|
const reader = new BitReader(bytes, setupHeader.payloadOffset);
|
|
200
|
-
const codebookCountLess1 = reader.
|
|
200
|
+
const codebookCountLess1 = reader.ReadBits(8);
|
|
201
201
|
const codebookCount = codebookCountLess1 + 1;
|
|
202
202
|
writer.writeBits(codebookCountLess1, 8);
|
|
203
203
|
for (let i = 0; i < codebookCount; i++) {
|
|
204
|
-
const codebookId = reader.
|
|
204
|
+
const codebookId = reader.ReadBits(10);
|
|
205
205
|
rebuildCodebookById(library, codebookId, writer);
|
|
206
206
|
}
|
|
207
207
|
|
|
@@ -210,64 +210,64 @@ function generateHeaders(bytes, layout, library, writer) {
|
|
|
210
210
|
writer.writeBits(0, 16);
|
|
211
211
|
|
|
212
212
|
// floors
|
|
213
|
-
const floorCountLess1 = reader.
|
|
213
|
+
const floorCountLess1 = reader.ReadBits(6);
|
|
214
214
|
const floorCount = floorCountLess1 + 1;
|
|
215
215
|
writer.writeBits(floorCountLess1, 6);
|
|
216
216
|
for (let i = 0; i < floorCount; i++) {
|
|
217
217
|
writer.writeBits(1, 16);
|
|
218
|
-
const floor1Partitions = reader.
|
|
218
|
+
const floor1Partitions = reader.ReadBits(5);
|
|
219
219
|
writer.writeBits(floor1Partitions, 5);
|
|
220
220
|
const partitionClassList = new Array(floor1Partitions);
|
|
221
221
|
let maximumClass = 0;
|
|
222
222
|
for (let j = 0; j < floor1Partitions; j++) {
|
|
223
|
-
const partitionClass = reader.
|
|
223
|
+
const partitionClass = reader.ReadBits(4);
|
|
224
224
|
writer.writeBits(partitionClass, 4);
|
|
225
225
|
partitionClassList[j] = partitionClass;
|
|
226
226
|
if (partitionClass > maximumClass) maximumClass = partitionClass;
|
|
227
227
|
}
|
|
228
228
|
const classDimensionsList = new Array(maximumClass + 1);
|
|
229
229
|
for (let j = 0; j <= maximumClass; j++) {
|
|
230
|
-
const classDimensionsLess1 = reader.
|
|
230
|
+
const classDimensionsLess1 = reader.ReadBits(3);
|
|
231
231
|
writer.writeBits(classDimensionsLess1, 3);
|
|
232
232
|
classDimensionsList[j] = classDimensionsLess1 + 1;
|
|
233
|
-
const classSubclasses = reader.
|
|
233
|
+
const classSubclasses = reader.ReadBits(2);
|
|
234
234
|
writer.writeBits(classSubclasses, 2);
|
|
235
235
|
if (classSubclasses !== 0) {
|
|
236
|
-
const masterbook = reader.
|
|
236
|
+
const masterbook = reader.ReadBits(8);
|
|
237
237
|
writer.writeBits(masterbook, 8);
|
|
238
238
|
if (masterbook >= codebookCount) throw parseError("invalid floor1 masterbook");
|
|
239
239
|
}
|
|
240
240
|
for (let k = 0; k < 1 << classSubclasses; k++) {
|
|
241
|
-
const subclassBookPlus1 = reader.
|
|
241
|
+
const subclassBookPlus1 = reader.ReadBits(8);
|
|
242
242
|
writer.writeBits(subclassBookPlus1, 8);
|
|
243
243
|
if (subclassBookPlus1 - 1 >= 0 && subclassBookPlus1 - 1 >= codebookCount) {
|
|
244
244
|
throw parseError("invalid floor1 subclass book");
|
|
245
245
|
}
|
|
246
246
|
}
|
|
247
247
|
}
|
|
248
|
-
writer.writeBits(reader.
|
|
249
|
-
const rangebits = reader.
|
|
248
|
+
writer.writeBits(reader.ReadBits(2), 2);
|
|
249
|
+
const rangebits = reader.ReadBits(4);
|
|
250
250
|
writer.writeBits(rangebits, 4);
|
|
251
251
|
for (let j = 0; j < floor1Partitions; j++) {
|
|
252
252
|
for (let k = 0; k < classDimensionsList[partitionClassList[j]]; k++) {
|
|
253
|
-
writer.writeBits(reader.
|
|
253
|
+
writer.writeBits(reader.ReadBits(rangebits), rangebits);
|
|
254
254
|
}
|
|
255
255
|
}
|
|
256
256
|
}
|
|
257
257
|
|
|
258
258
|
// residues
|
|
259
|
-
const residueCountLess1 = reader.
|
|
259
|
+
const residueCountLess1 = reader.ReadBits(6);
|
|
260
260
|
const residueCount = residueCountLess1 + 1;
|
|
261
261
|
writer.writeBits(residueCountLess1, 6);
|
|
262
262
|
for (let i = 0; i < residueCount; i++) {
|
|
263
|
-
const residueType = reader.
|
|
263
|
+
const residueType = reader.ReadBits(2);
|
|
264
264
|
writer.writeBits(residueType, 16);
|
|
265
265
|
if (residueType > 2) throw parseError("invalid residue type");
|
|
266
|
-
const residueBegin = reader.
|
|
267
|
-
const residueEnd = reader.
|
|
268
|
-
const residuePartitionSizeLess1 = reader.
|
|
269
|
-
const residueClassificationsLess1 = reader.
|
|
270
|
-
const residueClassbook = reader.
|
|
266
|
+
const residueBegin = reader.ReadBits(24);
|
|
267
|
+
const residueEnd = reader.ReadBits(24);
|
|
268
|
+
const residuePartitionSizeLess1 = reader.ReadBits(24);
|
|
269
|
+
const residueClassificationsLess1 = reader.ReadBits(6);
|
|
270
|
+
const residueClassbook = reader.ReadBits(8);
|
|
271
271
|
const residueClassifications = residueClassificationsLess1 + 1;
|
|
272
272
|
writer.writeBits(residueBegin, 24);
|
|
273
273
|
writer.writeBits(residueEnd, 24);
|
|
@@ -277,13 +277,13 @@ function generateHeaders(bytes, layout, library, writer) {
|
|
|
277
277
|
if (residueClassbook >= codebookCount) throw parseError("invalid residue classbook");
|
|
278
278
|
const residueCascade = new Array(residueClassifications);
|
|
279
279
|
for (let j = 0; j < residueClassifications; j++) {
|
|
280
|
-
const lowBits = reader.
|
|
280
|
+
const lowBits = reader.ReadBits(3);
|
|
281
281
|
writer.writeBits(lowBits, 3);
|
|
282
|
-
const bitflag = reader.
|
|
282
|
+
const bitflag = reader.ReadBits(1);
|
|
283
283
|
writer.writeBits(bitflag, 1);
|
|
284
284
|
let highBits = 0;
|
|
285
285
|
if (bitflag) {
|
|
286
|
-
highBits = reader.
|
|
286
|
+
highBits = reader.ReadBits(5);
|
|
287
287
|
writer.writeBits(highBits, 5);
|
|
288
288
|
}
|
|
289
289
|
residueCascade[j] = highBits * 8 + lowBits;
|
|
@@ -291,7 +291,7 @@ function generateHeaders(bytes, layout, library, writer) {
|
|
|
291
291
|
for (let j = 0; j < residueClassifications; j++) {
|
|
292
292
|
for (let k = 0; k < 8; k++) {
|
|
293
293
|
if (residueCascade[j] & 1 << k) {
|
|
294
|
-
const residueBook = reader.
|
|
294
|
+
const residueBook = reader.ReadBits(8);
|
|
295
295
|
writer.writeBits(residueBook, 8);
|
|
296
296
|
if (residueBook >= codebookCount) throw parseError("invalid residue book");
|
|
297
297
|
}
|
|
@@ -300,28 +300,28 @@ function generateHeaders(bytes, layout, library, writer) {
|
|
|
300
300
|
}
|
|
301
301
|
|
|
302
302
|
// mappings
|
|
303
|
-
const mappingCountLess1 = reader.
|
|
303
|
+
const mappingCountLess1 = reader.ReadBits(6);
|
|
304
304
|
const mappingCount = mappingCountLess1 + 1;
|
|
305
305
|
writer.writeBits(mappingCountLess1, 6);
|
|
306
306
|
for (let i = 0; i < mappingCount; i++) {
|
|
307
307
|
writer.writeBits(0, 16);
|
|
308
|
-
const submapsFlag = reader.
|
|
308
|
+
const submapsFlag = reader.ReadBits(1);
|
|
309
309
|
writer.writeBits(submapsFlag, 1);
|
|
310
310
|
let submaps = 1;
|
|
311
311
|
if (submapsFlag) {
|
|
312
|
-
const submapsLess1 = reader.
|
|
312
|
+
const submapsLess1 = reader.ReadBits(4);
|
|
313
313
|
writer.writeBits(submapsLess1, 4);
|
|
314
314
|
submaps = submapsLess1 + 1;
|
|
315
315
|
}
|
|
316
|
-
const squarePolarFlag = reader.
|
|
316
|
+
const squarePolarFlag = reader.ReadBits(1);
|
|
317
317
|
writer.writeBits(squarePolarFlag, 1);
|
|
318
318
|
if (squarePolarFlag) {
|
|
319
|
-
const couplingStepsLess1 = reader.
|
|
319
|
+
const couplingStepsLess1 = reader.ReadBits(8);
|
|
320
320
|
writer.writeBits(couplingStepsLess1, 8);
|
|
321
321
|
const couplingBits = ilog(layout.channels - 1);
|
|
322
322
|
for (let j = 0; j < couplingStepsLess1 + 1; j++) {
|
|
323
|
-
const magnitude = reader.
|
|
324
|
-
const angle = reader.
|
|
323
|
+
const magnitude = reader.ReadBits(couplingBits);
|
|
324
|
+
const angle = reader.ReadBits(couplingBits);
|
|
325
325
|
writer.writeBits(magnitude, couplingBits);
|
|
326
326
|
writer.writeBits(angle, couplingBits);
|
|
327
327
|
if (angle === magnitude || magnitude >= layout.channels || angle >= layout.channels) {
|
|
@@ -329,40 +329,40 @@ function generateHeaders(bytes, layout, library, writer) {
|
|
|
329
329
|
}
|
|
330
330
|
}
|
|
331
331
|
}
|
|
332
|
-
const mappingReserved = reader.
|
|
332
|
+
const mappingReserved = reader.ReadBits(2);
|
|
333
333
|
writer.writeBits(mappingReserved, 2);
|
|
334
334
|
if (mappingReserved !== 0) throw parseError("mapping reserved field nonzero");
|
|
335
335
|
if (submaps > 1) {
|
|
336
336
|
for (let j = 0; j < layout.channels; j++) {
|
|
337
|
-
const mappingMux = reader.
|
|
337
|
+
const mappingMux = reader.ReadBits(4);
|
|
338
338
|
writer.writeBits(mappingMux, 4);
|
|
339
339
|
if (mappingMux >= submaps) throw parseError("mapping_mux >= submaps");
|
|
340
340
|
}
|
|
341
341
|
}
|
|
342
342
|
for (let j = 0; j < submaps; j++) {
|
|
343
|
-
writer.writeBits(reader.
|
|
344
|
-
const floorNumber = reader.
|
|
343
|
+
writer.writeBits(reader.ReadBits(8), 8);
|
|
344
|
+
const floorNumber = reader.ReadBits(8);
|
|
345
345
|
writer.writeBits(floorNumber, 8);
|
|
346
346
|
if (floorNumber >= floorCount) throw parseError("invalid floor mapping");
|
|
347
|
-
const residueNumber = reader.
|
|
347
|
+
const residueNumber = reader.ReadBits(8);
|
|
348
348
|
writer.writeBits(residueNumber, 8);
|
|
349
349
|
if (residueNumber >= residueCount) throw parseError("invalid residue mapping");
|
|
350
350
|
}
|
|
351
351
|
}
|
|
352
352
|
|
|
353
353
|
// modes
|
|
354
|
-
const modeCountLess1 = reader.
|
|
354
|
+
const modeCountLess1 = reader.ReadBits(6);
|
|
355
355
|
const modeCount = modeCountLess1 + 1;
|
|
356
356
|
writer.writeBits(modeCountLess1, 6);
|
|
357
357
|
const modeBlockflag = new Array(modeCount);
|
|
358
358
|
const modeBits = ilog(modeCount - 1);
|
|
359
359
|
for (let i = 0; i < modeCount; i++) {
|
|
360
|
-
const blockFlag = reader.
|
|
360
|
+
const blockFlag = reader.ReadBits(1);
|
|
361
361
|
writer.writeBits(blockFlag, 1);
|
|
362
362
|
modeBlockflag[i] = blockFlag !== 0;
|
|
363
363
|
writer.writeBits(0, 16);
|
|
364
364
|
writer.writeBits(0, 16);
|
|
365
|
-
const mapping = reader.
|
|
365
|
+
const mapping = reader.ReadBits(8);
|
|
366
366
|
writer.writeBits(mapping, 8);
|
|
367
367
|
if (mapping >= mappingCount) throw parseError("invalid mode mapping");
|
|
368
368
|
}
|
|
@@ -380,14 +380,14 @@ function generateHeaders(bytes, layout, library, writer) {
|
|
|
380
380
|
};
|
|
381
381
|
}
|
|
382
382
|
|
|
383
|
-
/**
|
|
384
|
-
* Repack a Wwise Vorbis wem into a standard Ogg Vorbis stream.
|
|
385
|
-
*
|
|
386
|
-
* @param {Uint8Array} bytes Wem bytes (RIFF/RIFX with 0xFFFF Vorbis fmt).
|
|
387
|
-
* @param {object} [options] Options.
|
|
388
|
-
* @param {Uint8Array} [options.codebooks] Packed codebook library override
|
|
389
|
-
* (defaults to the bundled aoTuV 6.03 library).
|
|
390
|
-
* @returns {object} `{ bytes, sampleCount, sampleRate, channels, durationSeconds, loop, pageCount, modPackets }`.
|
|
383
|
+
/**
|
|
384
|
+
* Repack a Wwise Vorbis wem into a standard Ogg Vorbis stream.
|
|
385
|
+
*
|
|
386
|
+
* @param {Uint8Array} bytes Wem bytes (RIFF/RIFX with 0xFFFF Vorbis fmt).
|
|
387
|
+
* @param {object} [options] Options.
|
|
388
|
+
* @param {Uint8Array} [options.codebooks] Packed codebook library override
|
|
389
|
+
* (defaults to the bundled aoTuV 6.03 library).
|
|
390
|
+
* @returns {object} `{ bytes, sampleCount, sampleRate, channels, durationSeconds, loop, pageCount, modPackets }`.
|
|
391
391
|
*/
|
|
392
392
|
function convertWemToOgg(bytes, options = {}) {
|
|
393
393
|
const layout = parseWemVorbisLayout(bytes);
|
|
@@ -416,16 +416,16 @@ function convertWemToOgg(bytes, options = {}) {
|
|
|
416
416
|
if (layout.modPackets) {
|
|
417
417
|
// rebuild the packet type and window bits Wwise strips
|
|
418
418
|
writer.writeBits(0, 1);
|
|
419
|
-
modeNumber = payloadReader.
|
|
419
|
+
modeNumber = payloadReader.ReadBits(modeBits);
|
|
420
420
|
writer.writeBits(modeNumber, modeBits);
|
|
421
|
-
const remainder = payloadReader.
|
|
421
|
+
const remainder = payloadReader.ReadBits(8 - modeBits);
|
|
422
422
|
if (modeBlockflag[modeNumber]) {
|
|
423
423
|
let nextBlockflag = false;
|
|
424
424
|
if (!isLast) {
|
|
425
425
|
const nextPacket = readPacketHeader(bytes, packet.nextOffset, layout);
|
|
426
426
|
if (nextPacket.size > 0) {
|
|
427
427
|
const nextReader = new BitReader(bytes, nextPacket.payloadOffset);
|
|
428
|
-
nextBlockflag = modeBlockflag[nextReader.
|
|
428
|
+
nextBlockflag = modeBlockflag[nextReader.ReadBits(modeBits)];
|
|
429
429
|
}
|
|
430
430
|
}
|
|
431
431
|
writer.writeBits(prevBlockflag ? 1 : 0, 1);
|
|
@@ -438,8 +438,8 @@ function convertWemToOgg(bytes, options = {}) {
|
|
|
438
438
|
}
|
|
439
439
|
} else {
|
|
440
440
|
// standard packet: copy verbatim, peek the mode for granule math
|
|
441
|
-
const packetType = payloadReader.
|
|
442
|
-
modeNumber = payloadReader.
|
|
441
|
+
const packetType = payloadReader.ReadBits(1);
|
|
442
|
+
modeNumber = payloadReader.ReadBits(modeBits);
|
|
443
443
|
if (packetType !== 0) throw parseError("audio packet is not type 0");
|
|
444
444
|
for (let i = 0; i < packet.size; i++) {
|
|
445
445
|
writer.writeBits(payload[i], 8);
|