@carbonenginejs/runtime-resource 0.12.2 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/NOTICE +32 -32
- package/README.md +129 -108
- package/dist/CjsMotherLode.js +1271 -1271
- package/dist/CjsResMan.js +3858 -3494
- package/dist/CjsResMan.js.map +1 -1
- package/dist/CjsResManFetchProvider.js +94 -94
- package/dist/CjsResManWorkQueue.js +301 -301
- package/dist/_virtual/_rollupPluginBabelHelpers.js +150 -150
- package/dist/format/CjsBlueReader.js +358 -358
- package/dist/format/CjsByteReader.js +310 -310
- package/dist/format/CjsByteWriter.js +242 -242
- package/dist/format/CjsFormat.js +223 -223
- package/dist/format/CjsFormatError.js +41 -41
- package/dist/format/CjsReader.js +22 -22
- package/dist/format/CjsResourceProbe.js +279 -279
- package/dist/format/CjsStringTable.js +268 -268
- package/dist/format/carbonEffect/CjsCarbonEffectReader.js +408 -361
- package/dist/format/carbonEffect/CjsCarbonEffectReader.js.map +1 -1
- package/dist/format/carbonEffect/CjsCarbonEffectWriter.js +373 -373
- package/dist/format/carbonEffect/buildCarbonEffectContainer.js +182 -0
- package/dist/format/carbonEffect/buildCarbonEffectContainer.js.map +1 -0
- package/dist/format/carbonEffect/carbonEffectBackendBlock.js +321 -427
- package/dist/format/carbonEffect/carbonEffectBackendBlock.js.map +1 -1
- package/dist/format/carbonEffect/carbonEffectRecords.js +1147 -955
- package/dist/format/carbonEffect/carbonEffectRecords.js.map +1 -1
- package/dist/format/carbonEffect/carbonEffectResourceTransform.js +197 -0
- package/dist/format/carbonEffect/carbonEffectResourceTransform.js.map +1 -0
- package/dist/format/compareUtf8.js +36 -36
- package/dist/format/effect/effectBodyInventory.js +146 -0
- package/dist/format/effect/effectBodyInventory.js.map +1 -0
- package/dist/format/effect/effectPermutationGraph.js +257 -257
- package/dist/format/effect/effectPermutationGraph.js.map +1 -1
- package/dist/format/effect/sha256.js +114 -114
- package/dist/format/index.js +11 -11
- package/dist/format/payloadContract.js +193 -193
- package/dist/formats/black/CjsBlackFormat.js +310 -292
- package/dist/formats/black/CjsBlackFormat.js.map +1 -1
- package/dist/formats/black/core/CjsBlackBinaryReader.js +260 -260
- package/dist/formats/black/core/CjsBlackPropertyReaders.js +448 -448
- package/dist/formats/black/core/CjsBlackReader.js +764 -764
- package/dist/formats/black/core/CjsBlackSchemaRegistry.js +540 -540
- package/dist/formats/black/core/black-schema-v1-2026-07-23.json.js +4 -4
- package/dist/formats/black/core/blackConstants.js +7 -7
- package/dist/formats/black/core/blackDefinitions.js +10 -10
- package/dist/formats/black/core/blackEnums.js +6 -6
- package/dist/formats/black/core/blackSchema.js +3 -3
- package/dist/formats/black/core/blackVersion.js +22 -22
- package/dist/formats/black/core/helpers.js +199 -199
- package/dist/formats/black/core/schema.js +4 -4
- package/dist/formats/black/index.js +2 -2
- package/dist/formats/bnk/CjsBnkFormat.js +175 -156
- package/dist/formats/bnk/CjsBnkFormat.js.map +1 -1
- package/dist/formats/bnk/core/busNodes.js +252 -0
- package/dist/formats/bnk/core/busNodes.js.map +1 -0
- package/dist/formats/bnk/core/effectNodes.js +147 -0
- package/dist/formats/bnk/core/effectNodes.js.map +1 -0
- package/dist/formats/bnk/core/eventAction.js +416 -305
- package/dist/formats/bnk/core/eventAction.js.map +1 -1
- package/dist/formats/bnk/core/globalSettings.js +215 -0
- package/dist/formats/bnk/core/globalSettings.js.map +1 -0
- package/dist/formats/bnk/core/graph.js +137 -137
- package/dist/formats/bnk/core/helpers.js +512 -480
- package/dist/formats/bnk/core/helpers.js.map +1 -1
- package/dist/formats/bnk/core/musicNodes.js +533 -509
- package/dist/formats/bnk/core/musicNodes.js.map +1 -1
- package/dist/formats/bnk/core/nodeBase.js +553 -532
- package/dist/formats/bnk/core/nodeBase.js.map +1 -1
- package/dist/formats/bnk/core/sfxNodes.js +632 -632
- package/dist/formats/bnk/core/soundbanksInfo.js +209 -209
- package/dist/formats/bnk/index.js +2 -2
- package/dist/formats/cmf/CjsCmfFormat.js +497 -497
- package/dist/formats/cmf/core/binary.js +194 -194
- package/dist/formats/cmf/core/buffers.js +237 -237
- package/dist/formats/cmf/core/constants.js +47 -47
- package/dist/formats/cmf/core/gr2Anim.js +453 -453
- package/dist/formats/cmf/core/helpers.js +318 -318
- package/dist/formats/cmf/core/pack.js +276 -276
- package/dist/formats/cmf/core/schema.js +374 -374
- package/dist/formats/cmf/core/shared.js +277 -277
- package/dist/formats/cmf/core/writer.js +571 -571
- package/dist/formats/cmf/index.js +2 -2
- package/dist/formats/dds/CjsDdsFormat.js +200 -200
- package/dist/formats/dds/core/bc6h.js +298 -298
- package/dist/formats/dds/core/bc7.js +272 -272
- package/dist/formats/dds/core/helpers.js +862 -862
- package/dist/formats/dds/index.js +2 -2
- package/dist/formats/dxbc/CjsDxbcFormat.js +142 -142
- package/dist/formats/dxbc/core/DxbcReader.js +266 -266
- package/dist/formats/dxbc/core/container.js +169 -169
- package/dist/formats/dxbc/core/decoder.js +789 -789
- package/dist/formats/dxbc/core/errors.js +19 -19
- package/dist/formats/dxbc/core/helpers.js +220 -220
- package/dist/formats/dxbc/core/opcodes.js +45 -45
- package/dist/formats/dxbc/core/program.js +91 -91
- package/dist/formats/dxbc/core/signature.js +172 -172
- package/dist/formats/dxbc/index.js +2 -2
- package/dist/formats/fbx/CjsFbxFormat.js +266 -266
- package/dist/formats/fbx/core/helpers.js +3932 -3932
- package/dist/formats/fbx/index.js +2 -2
- package/dist/formats/flac/CjsFlacFormat.js +142 -142
- package/dist/formats/flac/core/helpers.js +315 -315
- package/dist/formats/flac/index.js +2 -2
- package/dist/formats/gif/CjsGifFormat.js +141 -141
- package/dist/formats/gif/core/helpers.js +380 -380
- package/dist/formats/gif/index.js +2 -2
- package/dist/formats/gltf/CjsGltfFormat.js +290 -290
- package/dist/formats/gltf/core/helpers.js +307 -307
- package/dist/formats/gltf/core/json.js +79 -79
- package/dist/formats/gltf/core/parser.js +679 -679
- package/dist/formats/gltf/core/targets.js +173 -173
- package/dist/formats/gltf/index.js +2 -2
- package/dist/formats/gr2/CjsGr2Format.js +289 -289
- package/dist/formats/gr2/core/bitknit2.js +282 -282
- package/dist/formats/gr2/core/curves.js +1047 -1047
- package/dist/formats/gr2/core/gsf.js +72 -72
- package/dist/formats/gr2/core/helpers.js +352 -352
- package/dist/formats/gr2/core/json.js +622 -622
- package/dist/formats/gr2/core/oodle1.js +388 -388
- package/dist/formats/gr2/core/tangents.js +48 -48
- package/dist/formats/gr2/core/targets.js +361 -361
- package/dist/formats/gr2/index.js +2 -2
- package/dist/formats/hlsl/CjsHlslFormat.js +254 -254
- package/dist/formats/hlsl/core/HlslBinaryUtils.js +15 -15
- package/dist/formats/hlsl/core/HlslEffectReadError.js +19 -19
- package/dist/formats/hlsl/core/HlslEffectStateManager.js +130 -130
- package/dist/formats/hlsl/core/HlslRenderStateSetup.js +37 -37
- package/dist/formats/hlsl/core/HlslResourceSetDescription.js +94 -94
- package/dist/formats/hlsl/core/HlslShaderBytecode.js +44 -44
- package/dist/formats/hlsl/core/analysis.js +51 -51
- package/dist/formats/hlsl/core/carbonDescriptionToRuntime.js +850 -781
- package/dist/formats/hlsl/core/carbonDescriptionToRuntime.js.map +1 -1
- package/dist/formats/hlsl/core/detailMapFamily.js +128 -0
- package/dist/formats/hlsl/core/detailMapFamily.js.map +1 -0
- package/dist/formats/hlsl/core/helpers.js +270 -270
- package/dist/formats/hlsl/core/json.js +284 -284
- package/dist/formats/hlsl/core/localLightFamily.js +133 -0
- package/dist/formats/hlsl/core/localLightFamily.js.map +1 -0
- package/dist/formats/hlsl/core/metadata.js +327 -327
- package/dist/formats/hlsl/core/render-states.js +280 -280
- package/dist/formats/hlsl/core/tr2/HlslRenderContextEnum.js +43 -43
- package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js +320 -314
- package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js.map +1 -1
- package/dist/formats/hlsl/core/tr2/resources/HlslShaderPermutation.js +33 -33
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js +416 -416
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectConstant.js +40 -40
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js +62 -742
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js.map +1 -1
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectLibrary.js +52 -52
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectParameterAnnotation.js +38 -38
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectResource.js +50 -50
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js +86 -86
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectTechnique.js +31 -31
- package/dist/formats/hlsl/core/tr2/shader/HlslPass.js +42 -42
- package/dist/formats/hlsl/core/tr2/shader/HlslSamplerDescription.js +55 -55
- package/dist/formats/hlsl/core/tr2/shader/HlslSamplerSetup.js +29 -29
- package/dist/formats/hlsl/core/tr2/shader/HlslShader.js +220 -220
- package/dist/formats/hlsl/core/tr2/shader/HlslShaderOption.js +30 -30
- package/dist/formats/hlsl/index.js +3 -3
- package/dist/formats/index.js +33 -31
- package/dist/formats/index.js.map +1 -1
- package/dist/formats/jpeg/CjsJpegFormat.js +212 -212
- package/dist/formats/jpeg/core/helpers.js +402 -402
- package/dist/formats/jpeg/core/jpeg.js +480 -480
- package/dist/formats/jpeg/index.js +2 -2
- package/dist/formats/mp3/CjsMp3Format.js +197 -197
- package/dist/formats/mp3/core/helpers.js +375 -375
- package/dist/formats/mp3/index.js +2 -2
- package/dist/formats/mp4/CjsMp4Format.js +197 -197
- package/dist/formats/mp4/core/helpers.js +484 -484
- package/dist/formats/mp4/index.js +2 -2
- package/dist/formats/obj/CjsObjFormat.js +253 -253
- package/dist/formats/obj/core/helpers.js +573 -573
- package/dist/formats/obj/core/json.js +64 -64
- package/dist/formats/obj/core/parser.js +321 -321
- package/dist/formats/obj/index.js +2 -2
- package/dist/formats/ogg/CjsOggFormat.js +143 -143
- package/dist/formats/ogg/core/helpers.js +410 -410
- package/dist/formats/ogg/core/imdct.js +178 -178
- package/dist/formats/ogg/core/vorbis.js +1017 -1017
- package/dist/formats/ogg/index.js +2 -2
- package/dist/formats/pickle/CjsPickleFormat.js +214 -0
- package/dist/formats/pickle/CjsPickleFormat.js.map +1 -0
- package/dist/formats/pickle/core/CjsPickleProtocol0Reader.js +551 -0
- package/dist/formats/pickle/core/CjsPickleProtocol0Reader.js.map +1 -0
- package/dist/formats/pickle/index.js +2 -0
- package/dist/formats/pickle/index.js.map +1 -0
- package/dist/formats/png/CjsPngFormat.js +201 -201
- package/dist/formats/png/core/helpers.js +635 -635
- package/dist/formats/png/index.js +2 -2
- package/dist/formats/red/CjsRedFormat.js +263 -263
- package/dist/formats/red/core/CjsRedReader.js +246 -246
- package/dist/formats/red/core/blackDefinitions.js +3 -3
- package/dist/formats/red/core/helpers.js +158 -158
- package/dist/formats/red/core/redGraph.js +71 -68
- package/dist/formats/red/core/redGraph.js.map +1 -1
- package/dist/formats/red/core/schema.js +4 -4
- package/dist/formats/red/index.js +2 -2
- package/dist/formats/stl/CjsStlFormat.js +365 -365
- package/dist/formats/stl/core/helpers.js +261 -261
- package/dist/formats/stl/core/json.js +51 -51
- package/dist/formats/stl/core/stl.js +642 -642
- package/dist/formats/stl/core/targets.js +173 -173
- package/dist/formats/stl/index.js +2 -2
- package/dist/formats/tga/CjsTgaFormat.js +197 -197
- package/dist/formats/tga/core/helpers.js +493 -493
- package/dist/formats/tga/index.js +2 -2
- package/dist/formats/wav/CjsWavFormat.js +198 -198
- package/dist/formats/wav/core/helpers.js +365 -365
- package/dist/formats/wav/index.js +2 -2
- package/dist/formats/webgl/CjsWebglFormat.js +199 -221
- package/dist/formats/webgl/CjsWebglFormat.js.map +1 -1
- package/dist/formats/webgl/core/buildGlslEffectContainer.js +70 -0
- package/dist/formats/webgl/core/buildGlslEffectContainer.js.map +1 -0
- package/dist/formats/webgl/core/effectPackage.js +900 -792
- package/dist/formats/webgl/core/effectPackage.js.map +1 -1
- package/dist/formats/webgl/core/errors.js +27 -27
- package/dist/formats/webgl/core/errors.js.map +1 -1
- package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js +2820 -2678
- package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
- package/dist/formats/webgl/core/glsl/DxbcGlslHelpers.js +89 -89
- package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +486 -428
- package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -1
- package/dist/formats/webgl/core/glsl/packedLightFixups.js +98 -0
- package/dist/formats/webgl/core/glsl/packedLightFixups.js.map +1 -0
- package/dist/formats/webgl/core/glslBackendBlock.js +552 -0
- package/dist/formats/webgl/core/glslBackendBlock.js.map +1 -0
- package/dist/formats/webgl/core/glslBackendBodySet.js +243 -0
- package/dist/formats/webgl/core/glslBackendBodySet.js.map +1 -0
- package/dist/formats/webgl/core/{cewgCompleteness.js → glslEffectCompleteness.js} +85 -81
- package/dist/formats/webgl/core/glslEffectCompleteness.js.map +1 -0
- package/dist/formats/webgl/core/helpers.js +167 -306
- package/dist/formats/webgl/core/helpers.js.map +1 -1
- package/dist/formats/webgl/core/inspectGlslEffectContainer.js +122 -0
- package/dist/formats/webgl/core/inspectGlslEffectContainer.js.map +1 -0
- package/dist/formats/webgl/core/readGlslEffectContainer.js +303 -0
- package/dist/formats/webgl/core/readGlslEffectContainer.js.map +1 -0
- package/dist/formats/webgl/index.js +2 -2
- package/dist/formats/webgpu/CjsWebgpuFormat.js +357 -357
- package/dist/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
- package/dist/formats/webgpu/core/buildCarbonEffectContainer.js +89 -197
- package/dist/formats/webgpu/core/buildCarbonEffectContainer.js.map +1 -1
- package/dist/formats/webgpu/core/{cewgpu/CewgpuContainer.js → carbonWebgpu/CarbonWebgpuContainer.js} +354 -368
- package/dist/formats/webgpu/core/carbonWebgpu/CarbonWebgpuContainer.js.map +1 -0
- package/dist/formats/webgpu/core/{cewgpu → carbonWebgpu}/containerViews.js +355 -355
- package/dist/formats/webgpu/core/carbonWebgpu/containerViews.js.map +1 -0
- package/dist/formats/webgpu/core/{cewgpu → carbonWebgpu}/validateContainer.js +90 -90
- package/dist/formats/webgpu/core/carbonWebgpu/validateContainer.js.map +1 -0
- package/dist/formats/webgpu/core/effectAnalysis.js +82 -82
- package/dist/formats/webgpu/core/effectBackendBodySet.js +289 -289
- package/dist/formats/webgpu/core/effectBackendBodySet.js.map +1 -1
- package/dist/formats/webgpu/core/errors.js +20 -20
- package/dist/formats/webgpu/core/errors.js.map +1 -1
- package/dist/formats/webgpu/core/helpers.js +443 -443
- package/dist/formats/webgpu/core/helpers.js.map +1 -1
- package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js +212 -212
- package/dist/formats/webgpu/core/ir/buildControlFlow.js +220 -220
- package/dist/formats/webgpu/core/ir/indexableTemps.js +137 -137
- package/dist/formats/webgpu/core/ir/inferValueTypes.js +449 -449
- package/dist/formats/webgpu/core/ir/lowerDxbcToIr.js +494 -494
- package/dist/formats/webgpu/core/ir/resolveRegisterFlow.js +177 -177
- package/dist/formats/webgpu/core/ir/sourceLanes.js +61 -61
- package/dist/formats/webgpu/core/packageEffect.js +381 -385
- package/dist/formats/webgpu/core/packageEffect.js.map +1 -1
- package/dist/formats/webgpu/core/packageEffectSelection.js +164 -164
- package/dist/formats/webgpu/core/packageEffectSelection.js.map +1 -1
- package/dist/formats/webgpu/core/packageMetadata.js +17 -17
- package/dist/formats/webgpu/core/schema.js +4 -4
- package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js +263 -263
- package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js.map +1 -1
- package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js +172 -172
- package/dist/formats/webgpu/core/wgsl/buildWgslSet.js +320 -320
- package/dist/formats/webgpu/core/wgsl/buildWgslSet.js.map +1 -1
- package/dist/formats/webgpu/core/wgsl/emitWgsl.js +356 -356
- package/dist/formats/webgpu/core/wgsl/hoistEscapingValues.js +77 -77
- package/dist/formats/webgpu/core/wgsl/lowerBindingLayout.js +451 -451
- package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js +735 -735
- package/dist/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js +457 -457
- package/dist/formats/webgpu/core/wgsl/lowerFragmentProgram.js +1572 -1572
- package/dist/formats/webgpu/core/wgsl/lowerMergeHistogramsComputeProgram.js +659 -659
- package/dist/formats/webgpu/core/wgsl/lowerParticleClearComputePrograms.js +734 -734
- package/dist/formats/webgpu/core/wgsl/lowerParticleEmitComputeProgram.js +583 -583
- package/dist/formats/webgpu/core/wgsl/lowerSkinVerticesComputeProgram.js +621 -621
- package/dist/formats/webgpu/core/wgsl/lowerSortComputeProgram.js +824 -824
- package/dist/formats/webgpu/core/wgsl/lowerSortInnerComputeProgram.js +697 -697
- package/dist/formats/webgpu/core/wgsl/lowerSortStepComputeProgram.js +559 -559
- package/dist/formats/webgpu/core/wgsl/lowerVertexProgram.js +1328 -1328
- package/dist/formats/webgpu/core/wgsl/particleEmitSemanticDigest.js +110 -110
- package/dist/formats/webgpu/core/wgsl/precisionControls.js +55 -55
- package/dist/formats/webgpu/core/wgsl/selectionPlans.js +717 -717
- package/dist/formats/webgpu/core/wgsl/uniformity.js +78 -78
- package/dist/formats/webgpu/core/wgsl/validateExactComputeIr.js +196 -196
- package/dist/formats/webgpu/core/wgsl/validateHandleOperand.js +37 -37
- package/dist/formats/webgpu/index.js +2 -2
- package/dist/formats/webm/CjsWebmFormat.js +197 -197
- package/dist/formats/webm/core/helpers.js +572 -572
- package/dist/formats/webm/index.js +2 -2
- package/dist/formats/webp/CjsWebpFormat.js +140 -140
- package/dist/formats/webp/core/helpers.js +237 -237
- package/dist/formats/webp/index.js +2 -2
- package/dist/formats/wem/CjsWemFormat.js +250 -250
- package/dist/formats/wem/core/bitStream.js +261 -261
- package/dist/formats/wem/core/codebookLibrary.js +164 -164
- package/dist/formats/wem/core/helpers.js +437 -437
- package/dist/formats/wem/core/packedCodebooksAotuv603.js +30 -30
- package/dist/formats/wem/core/ptadpcm.js +77 -77
- package/dist/formats/wem/core/resolve.js +121 -121
- package/dist/formats/wem/core/wemToOgg.js +485 -485
- package/dist/formats/wem/index.js +2 -2
- package/dist/formats/yaml/CjsYamlFormat.js +134 -134
- package/dist/formats/yaml/CjsYamlFormat.js.map +1 -1
- package/dist/formats/yaml/core/CjsYamlReader.js +400 -402
- package/dist/formats/yaml/core/CjsYamlReader.js.map +1 -1
- package/dist/formats/yaml/core/helpers.js +196 -170
- package/dist/formats/yaml/core/helpers.js.map +1 -1
- package/dist/formats/yaml/index.js +2 -2
- package/dist/index.js +64 -62
- package/dist/index.js.map +1 -1
- package/dist/resource/CjsLoadingObject.js +19 -0
- package/dist/resource/CjsLoadingObject.js.map +1 -0
- package/dist/resource/CjsResource.js +801 -797
- package/dist/resource/CjsResource.js.map +1 -1
- package/dist/resource/ResourceHandlerMode.js +14 -0
- package/dist/resource/ResourceHandlerMode.js.map +1 -0
- package/dist/resource/Tr2LightProfileRes.js +32 -32
- package/dist/resource/audio/AudioGeometryResData.js +47 -47
- package/dist/resource/audio/CjsAudioBufferRes.js +86 -86
- package/dist/resource/audio/CjsAudioRes.js +213 -213
- package/dist/resource/audio/index.js +4 -4
- package/dist/resource/geometry/MeshDecalData.js +37 -37
- package/dist/resource/geometry/MeshDecalLodData.js +34 -34
- package/dist/resource/geometry/TriGeometryRes.js +675 -675
- package/dist/resource/geometry/TriGeometryResAreaData.js +59 -59
- package/dist/resource/geometry/TriGeometryResJointData.js +38 -38
- package/dist/resource/geometry/TriGeometryResLodData.js +88 -88
- package/dist/resource/geometry/TriGeometryResMeshData.js +63 -63
- package/dist/resource/geometry/TriGeometryResSkeletonData.js +34 -34
- package/dist/resource/geometry/TriJointBinding.js +38 -38
- package/dist/resource/geometry/TriMorphTargetGeometryConstants.js +46 -46
- package/dist/resource/geometry/TriRtGeometryConstants.js +88 -88
- package/dist/resource/geometry/granny/GStateBindingCallbackData.js +31 -31
- package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +60 -60
- package/dist/resource/geometry/granny/Tr2GrannyStateRes.js +36 -36
- package/dist/resource/geometry/granny/TriGrannyRes.js +35 -35
- package/dist/resource/geometry/granny/enums.js +10 -10
- package/dist/resource/geometry/granny/index.js +6 -6
- package/dist/resource/geometry/index.js +17 -17
- package/dist/resource/index.js +54 -52
- package/dist/resource/index.js.map +1 -1
- package/dist/resource/resourceBoundary.js +64 -64
- package/dist/resource/shader/Tr2EffectRes.js +336 -431
- package/dist/resource/shader/Tr2EffectRes.js.map +1 -1
- package/dist/resource/shader/Tr2MaterialArea.js +31 -31
- package/dist/resource/shader/Tr2MaterialMesh.js +27 -27
- package/dist/resource/shader/Tr2MaterialRes.js +31 -31
- package/dist/resource/shader/Tr2Shader.js +283 -261
- package/dist/resource/shader/Tr2Shader.js.map +1 -1
- package/dist/resource/shader/Tr2ShaderPermutation.js +43 -43
- package/dist/resource/shader/index.js +17 -17
- package/dist/resource/shader/reflection/Tr2EffectConstant.js +143 -135
- package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectDefine.js +30 -30
- package/dist/resource/shader/reflection/Tr2EffectDescription.js +114 -109
- package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js +168 -147
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +125 -105
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectResource.js +120 -86
- package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js +372 -241
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js +78 -68
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2Pass.js +168 -111
- package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
- package/dist/resource/shader/reflection/carbonRecordFields.js +159 -0
- package/dist/resource/shader/reflection/carbonRecordFields.js.map +1 -0
- package/dist/resource/shader/reflection/shaderStage.js +22 -0
- package/dist/resource/shader/reflection/shaderStage.js.map +1 -0
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js +135 -77
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
- package/dist/resource/texture/CjsTextureArrayRes.js +472 -472
- package/dist/resource/texture/CjsTextureArrayResParameterProxy.js +179 -179
- package/dist/resource/texture/Tr2ImageRes.js +120 -120
- package/dist/resource/texture/Tr2TextureLodManager.js +82 -82
- package/dist/resource/texture/Tr2TextureLodUpdateRequest.js +37 -37
- package/dist/resource/texture/Tr2TexturePackChannel.js +37 -37
- package/dist/resource/texture/Tr2TexturePipeline.js +54 -54
- package/dist/resource/texture/Tr2TexturePipelineParams.js +34 -34
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +40 -40
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +22 -22
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +34 -34
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +31 -31
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js +43 -43
- package/dist/resource/texture/TriTextureRes.js +359 -359
- package/dist/resource/texture/index.js +15 -15
- package/dist/resource/texture/texturePipelineBehavior.js +308 -308
- package/dist/worker/CjsResManMainThreadLoader.js +89 -87
- package/dist/worker/CjsResManMainThreadLoader.js.map +1 -1
- package/dist/worker/CjsResManWorker.js +218 -217
- package/dist/worker/CjsResManWorker.js.map +1 -1
- package/dist/worker/CjsResManWorkerLoader.js +437 -434
- package/dist/worker/CjsResManWorkerLoader.js.map +1 -1
- package/dist/worker/protocol.js +12 -12
- package/docs/README.md +98 -98
- package/docs/architecture.md +118 -109
- package/docs/concepts/resource-lifecycle.md +226 -225
- package/docs/concepts/shader-resource-model.md +111 -114
- package/docs/concepts/writing-an-engine-adapter.md +115 -115
- package/docs/formats/README.md +138 -136
- package/docs/formats/carbon-effect-container.md +553 -452
- package/docs/formats/dxbc/README.md +68 -68
- package/docs/formats/dxbc/architecture.md +80 -80
- package/docs/formats/dxbc/reference/api.md +77 -77
- package/docs/formats/dxbc/reference/classes/README.md +9 -9
- package/docs/formats/dxbc/reference/decoded-output.md +122 -122
- package/docs/formats/gr2.md +160 -160
- package/docs/formats/hlsl/README.md +54 -54
- package/docs/formats/hlsl/architecture.md +65 -67
- package/docs/formats/hlsl/guides/hydrating-json-output.md +60 -62
- package/docs/formats/hlsl/guides/reading-effects.md +64 -64
- package/docs/formats/hlsl/reference/advanced-analysis.md +61 -66
- package/docs/formats/hlsl/reference/api.md +92 -98
- package/docs/formats/hlsl/reference/classes/README.md +11 -11
- package/docs/formats/hlsl/reference/json-graph.md +97 -100
- package/docs/formats/pickle.md +82 -0
- package/docs/formats/provenance.md +196 -196
- package/docs/formats/stl.md +37 -37
- package/docs/formats/webgl/README.md +115 -57
- package/docs/formats/webgl/architecture.md +69 -70
- package/docs/formats/webgl/carbon-constant-layouts.md +326 -326
- package/docs/formats/webgl/decl-io.md +1234 -1234
- package/docs/formats/webgl/memory-structured.md +890 -871
- package/docs/formats/webgl/reference/classes/README.md +9 -9
- package/docs/formats/webgl/texture-sample.md +964 -964
- package/docs/formats/webgpu/README.md +84 -84
- package/docs/formats/webgpu/architecture.md +95 -96
- package/docs/formats/webgpu/formats/{cewgpu.md → carbon-webgpu.md} +215 -216
- package/docs/formats/webgpu/guides/effect-packaging.md +189 -191
- package/docs/formats/webgpu/reference/api.md +196 -197
- package/docs/formats/webgpu/reference/classes/README.md +9 -9
- package/docs/formats/webgpu/reference/wgsl-compatibility.md +1546 -1543
- package/docs/formats/wwise.md +146 -85
- package/docs/reference/classes/README.md +35 -35
- package/docs/reference/classes/audio.md +30 -30
- package/docs/reference/classes/core.md +216 -206
- package/docs/reference/classes/dropped.md +46 -46
- package/docs/reference/classes/formats.md +944 -952
- package/docs/reference/classes/resources.md +456 -456
- package/docs/reference/classes/texture.md +26 -26
- package/docs/reference/events.md +117 -117
- package/docs/reference/motherlode-cache.md +275 -275
- package/docs/reference/queues.md +194 -110
- package/docs/reference/reload.md +107 -107
- package/docs/reference/texture-arrays.md +113 -113
- package/docs/reference/texture-pipeline.md +53 -53
- package/docs/reference/workers.md +142 -135
- package/docs/roadmap.md +150 -150
- package/format-notices/black/LICENSE +21 -21
- package/format-notices/black/NOTICE +47 -47
- package/format-notices/bnk/LICENSE +21 -21
- package/format-notices/bnk/NOTICE +21 -21
- package/format-notices/cmf/LICENSE +21 -21
- package/format-notices/cmf/NOTICE +36 -36
- package/format-notices/dds/LICENSE +21 -21
- package/format-notices/dds/NOTICE +14 -14
- package/format-notices/dxbc/LICENSE +21 -21
- package/format-notices/dxbc/NOTICE +20 -20
- package/format-notices/fbx/LICENSE +21 -21
- package/format-notices/fbx/NOTICE +14 -14
- package/format-notices/flac/LICENSE +21 -21
- package/format-notices/flac/NOTICE +14 -14
- package/format-notices/gif/LICENSE +21 -21
- package/format-notices/gif/NOTICE +14 -14
- package/format-notices/gltf/LICENSE +21 -21
- package/format-notices/gltf/NOTICE +27 -27
- package/format-notices/gr2/LICENSE +21 -21
- package/format-notices/gr2/NOTICE +60 -60
- package/format-notices/gr2/THIRD-PARTY-NOTICES.md +93 -93
- package/format-notices/hlsl/LICENSE +21 -21
- package/format-notices/hlsl/NOTICE +25 -25
- package/format-notices/jpeg/LICENSE +21 -21
- package/format-notices/jpeg/NOTICE +14 -14
- package/format-notices/mp3/LICENSE +21 -21
- package/format-notices/mp3/NOTICE +14 -14
- package/format-notices/mp4/LICENSE +21 -21
- package/format-notices/mp4/NOTICE +14 -14
- package/format-notices/obj/LICENSE +21 -21
- package/format-notices/obj/NOTICE +26 -26
- package/format-notices/ogg/LICENSE +21 -21
- package/format-notices/ogg/NOTICE +28 -28
- package/format-notices/png/LICENSE +21 -21
- package/format-notices/png/NOTICE +14 -14
- package/format-notices/red/LICENSE +21 -21
- package/format-notices/red/NOTICE +31 -31
- package/format-notices/stl/LICENSE +21 -21
- package/format-notices/stl/NOTICE +21 -21
- package/format-notices/tga/LICENSE +21 -21
- package/format-notices/tga/NOTICE +14 -14
- package/format-notices/wav/LICENSE +21 -21
- package/format-notices/wav/NOTICE +14 -14
- package/format-notices/webgl/LICENSE +21 -21
- package/format-notices/webgl/NOTICE +35 -35
- package/format-notices/webgpu/LICENSE +21 -21
- package/format-notices/webgpu/NOTICE +31 -31
- package/format-notices/webm/LICENSE +21 -21
- package/format-notices/webm/NOTICE +14 -14
- package/format-notices/webp/LICENSE +21 -21
- package/format-notices/webp/NOTICE +14 -14
- package/format-notices/wem/LICENSE +57 -57
- package/format-notices/wem/NOTICE +33 -33
- package/format-notices/yaml/LICENSE +21 -21
- package/format-notices/yaml/NOTICE +44 -44
- package/package.json +63 -63
- package/dist/format/carbonEffect/carbonDescriptionFromPortable.js +0 -372
- package/dist/format/carbonEffect/carbonDescriptionFromPortable.js.map +0 -1
- package/dist/format/effect/effectReflectionPackage.js +0 -636
- package/dist/format/effect/effectReflectionPackage.js.map +0 -1
- package/dist/formats/hlsl/core/HlslReader.js +0 -16
- package/dist/formats/hlsl/core/HlslReader.js.map +0 -1
- package/dist/formats/hlsl/core/portableReflection.js +0 -848
- package/dist/formats/hlsl/core/portableReflection.js.map +0 -1
- package/dist/formats/hlsl/portable.js +0 -2
- package/dist/formats/hlsl/portable.js.map +0 -1
- package/dist/formats/webgl/core/cewg/CewgPackage.js +0 -340
- package/dist/formats/webgl/core/cewg/CewgPackage.js.map +0 -1
- package/dist/formats/webgl/core/cewg/CewgPackageBuilder.js +0 -104
- package/dist/formats/webgl/core/cewg/CewgPackageBuilder.js.map +0 -1
- package/dist/formats/webgl/core/cewg/binary.js +0 -19
- package/dist/formats/webgl/core/cewg/binary.js.map +0 -1
- package/dist/formats/webgl/core/cewgCompleteness.js.map +0 -1
- package/dist/formats/webgl/core/effectPackageValidation.js +0 -331
- package/dist/formats/webgl/core/effectPackageValidation.js.map +0 -1
- package/dist/formats/webgpu/core/cewgpu/CewgpuContainer.js.map +0 -1
- package/dist/formats/webgpu/core/cewgpu/containerViews.js.map +0 -1
- package/dist/formats/webgpu/core/cewgpu/validateContainer.js.map +0 -1
- package/dist/resource/shader/portable.js +0 -33
- package/dist/resource/shader/portable.js.map +0 -1
- package/docs/formats/hlsl/reference/portable-reflection.md +0 -141
- package/docs/formats/webgl/effect-reflection.md +0 -127
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeBase.js","sources":["../../../../../src/formats/bnk/core/nodeBase.js"],"sourcesContent":["// Exact Wwise v150 common audio-node decoding. This module is internal to the\n// BNK toolkit: it preserves authored facts and byte unions without assigning\n// runtime playback or attenuation-curve semantics.\n\nimport { readWwiseVar } from \"./helpers.js\";\n\nexport const WWISE_NODE_BASE_VERSION = 150;\n\nconst ATTENUATION_PROPERTY_ID = 0x55;\nconst LOOP_COUNT_PROPERTY_ID = 0x54;\nconst VALID_CURVE_SCALING = new Set([ 0, 2, 3, 4 ]);\n\n/** Bounds-aware little-endian cursor over one HIRC payload. */\nexport class WwiseCursor\n{\n /**\n * Creates a cursor over a bounded portion of a Wwise payload.\n *\n * @param {Uint8Array} bytes Payload bytes.\n * @param {number} [offset=0] Initial byte offset.\n * @param {number} [end=bytes.byteLength] Exclusive ending offset.\n */\n constructor(bytes, offset = 0, end = bytes?.byteLength)\n {\n if (!(bytes instanceof Uint8Array)\n || !Number.isSafeInteger(offset)\n || !Number.isSafeInteger(end)\n || offset < 0\n || end < offset\n || end > bytes.byteLength)\n {\n throw new TypeError(\"Invalid Wwise cursor range\");\n }\n\n this.bytes = bytes;\n this.view = new DataView(\n bytes.buffer,\n bytes.byteOffset,\n bytes.byteLength,\n );\n this.at = offset;\n this.end = end;\n }\n\n /** Gets the number of unread bytes in the bounded range. */\n get remaining()\n {\n return this.end - this.at;\n }\n\n /**\n * Verifies that a read of the requested size stays within the range.\n *\n * @param {number} size Number of bytes to read.\n * @throws {RangeError} The read would exceed the bounded range.\n */\n ensure(size)\n {\n if (!Number.isSafeInteger(size)\n || size < 0\n || this.at + size > this.end)\n {\n throw new RangeError(\"truncated Wwise object\");\n }\n }\n\n /** Reads an unsigned 8-bit integer. */\n u8()\n {\n this.ensure(1);\n return this.view.getUint8(this.at++);\n }\n\n /** Reads a signed 8-bit integer. */\n s8()\n {\n this.ensure(1);\n return this.view.getInt8(this.at++);\n }\n\n /** Reads a little-endian unsigned 16-bit integer. */\n u16()\n {\n this.ensure(2);\n const value = this.view.getUint16(this.at, true);\n\n this.at += 2;\n return value;\n }\n\n /** Reads a little-endian unsigned 32-bit integer. */\n u32()\n {\n this.ensure(4);\n const value = this.view.getUint32(this.at, true);\n\n this.at += 4;\n return value;\n }\n\n /** Reads a little-endian signed 32-bit integer. */\n s32()\n {\n this.ensure(4);\n const value = this.view.getInt32(this.at, true);\n\n this.at += 4;\n return value;\n }\n\n /** Reads a little-endian 32-bit floating-point value. */\n f32()\n {\n this.ensure(4);\n const value = this.view.getFloat32(this.at, true);\n\n this.at += 4;\n return value;\n }\n\n /** Reads a Wwise variable-length unsigned integer. */\n variable()\n {\n const result = readWwiseVar(\n this.bytes.subarray(0, this.end),\n this.at,\n );\n\n if (!result)\n {\n throw new RangeError(\"invalid Wwise variable integer\");\n }\n\n this.at = result.nextOffset;\n return result.value;\n }\n}\n\n/**\n * Reads one v150 NodeBase from the current cursor position.\n *\n * The cursor is left at the first type-specific byte.\n */\nexport function readNodeBase(cursor)\n{\n const fx = ReadInitialFx(cursor);\n const metadata = ReadInitialMetadata(cursor);\n const overrideBusId = cursor.u32();\n const directParentId = cursor.u32();\n const priority = ReadPriority(cursor);\n const {\n properties,\n ranges,\n attenuationId,\n loopCount,\n } = ReadInitialProperties(cursor);\n const positioning = ReadPositioning(cursor);\n const aux = ReadAux(cursor);\n const advanced = ReadAdvanced(cursor);\n const state = ReadStateChunk(cursor);\n const rtpcs = readInitialRtpcs(cursor);\n\n return {\n fx,\n metadata,\n overrideBusId,\n directParentId,\n priority,\n properties,\n ranges,\n attenuationId,\n loopCount,\n positioning,\n aux,\n advanced,\n state,\n rtpcs,\n };\n}\n\n/** Parses one NodeBase that must consume exactly the supplied byte range. */\nexport function parseNodeBaseRange(\n bytes,\n start,\n end,\n { bankVersion = WWISE_NODE_BASE_VERSION } = {},\n)\n{\n if (!(bytes instanceof Uint8Array)\n || Number(bankVersion) !== WWISE_NODE_BASE_VERSION)\n {\n return null;\n }\n\n try\n {\n const cursor = new WwiseCursor(bytes, start, end);\n const nodeBase = readNodeBase(cursor);\n\n return cursor.at === end ? nodeBase : null;\n }\n catch\n {\n return null;\n }\n}\n\n/** Reads the v150 initial-RTPC list shared by NodeBase and attenuation. */\nexport function readInitialRtpcs(cursor)\n{\n const count = boundedCount(cursor.u16(), cursor.remaining, 14, 4096);\n const rtpcs = [];\n\n for (let index = 0; index < count; index++)\n {\n rtpcs.push(readInitialRtpc(cursor));\n }\n\n return rtpcs;\n}\n\n/** Reads one v150 initial RTPC. */\nexport function readInitialRtpc(cursor)\n{\n const controlId = cursor.u32();\n const controlType = cursor.u8();\n const accumulation = cursor.u8();\n const parameterId = cursor.variable();\n const curveId = cursor.u32();\n const scaling = cursor.u8();\n const pointCount = boundedCount(\n cursor.u16(),\n cursor.remaining,\n 12,\n 65535,\n );\n\n if (controlType > 4\n || accumulation > 6\n || !VALID_CURVE_SCALING.has(scaling))\n {\n throw new RangeError(\"invalid initial RTPC enum\");\n }\n\n return {\n controlId,\n controlType,\n accumulation,\n parameterId,\n curveId,\n scaling,\n points: readCurvePoints(cursor, pointCount),\n };\n}\n\n/** Reads exact Wwise graph points without inferring curve meaning. */\nexport function readCurvePoints(cursor, count)\n{\n const points = [];\n\n for (let index = 0; index < count; index++)\n {\n const from = finite(cursor.f32());\n const to = finite(cursor.f32());\n const interpolation = cursor.u32();\n\n if (interpolation > 9)\n {\n throw new RangeError(\"invalid curve interpolation\");\n }\n\n points.push({ from, to, interpolation });\n }\n\n return points;\n}\n\n/** Validates an encoded count before allocating or iterating it. */\nexport function boundedCount(value, remaining, stride, maximum)\n{\n if (!Number.isSafeInteger(value)\n || value < 0\n || value > maximum\n || value * stride > remaining)\n {\n throw new RangeError(\"invalid Wwise object count\");\n }\n\n return value;\n}\n\n/** Rejects non-finite authored curve/position values. */\nexport function finite(value)\n{\n if (!Number.isFinite(value))\n {\n throw new RangeError(\"non-finite Wwise object value\");\n }\n\n return value;\n}\n\nfunction ReadInitialFx(cursor)\n{\n const overrideParentRaw = cursor.u8();\n const count = cursor.u8();\n const bypassAllRaw = count ? cursor.u8() : 0;\n const slots = [];\n\n boundedCount(count, cursor.remaining, 6, 255);\n\n for (let index = 0; index < count; index++)\n {\n const slot = cursor.u8();\n const fxId = cursor.u32();\n const flags = cursor.u8();\n\n slots.push({\n index: slot,\n fxId,\n flags,\n bypass: Boolean(flags & 0x01),\n shareSet: Boolean(flags & 0x02),\n rendered: Boolean(flags & 0x04),\n });\n }\n\n return {\n overrideParentRaw,\n overrideParent: Boolean(overrideParentRaw),\n bypassAllRaw,\n bypassAll: Boolean(bypassAllRaw),\n slots,\n };\n}\n\nfunction ReadInitialMetadata(cursor)\n{\n const overrideParentRaw = cursor.u8();\n const count = cursor.u8();\n const slots = [];\n\n boundedCount(count, cursor.remaining, 6, 255);\n\n for (let index = 0; index < count; index++)\n {\n const slot = cursor.u8();\n const fxId = cursor.u32();\n const shareSetRaw = cursor.u8();\n\n slots.push({\n index: slot,\n fxId,\n shareSetRaw,\n shareSet: Boolean(shareSetRaw),\n });\n }\n\n return {\n overrideParentRaw,\n overrideParent: Boolean(overrideParentRaw),\n slots,\n };\n}\n\nfunction ReadPriority(cursor)\n{\n const flags = cursor.u8();\n\n return {\n flags,\n overrideParent: Boolean(flags & 0x01),\n applyDistanceFactor: Boolean(flags & 0x02),\n overrideMidiEventsBehavior: Boolean(flags & 0x04),\n overrideMidiNoteTracking: Boolean(flags & 0x08),\n enableMidiNoteTracking: Boolean(flags & 0x10),\n midiBreakLoopOnNoteOff: Boolean(flags & 0x20),\n };\n}\n\nfunction ReadInitialProperties(cursor)\n{\n const propertyCount = boundedCount(\n cursor.u8(),\n cursor.remaining,\n 5,\n 255,\n );\n const propertyIds = [];\n\n for (let index = 0; index < propertyCount; index++)\n {\n propertyIds.push(cursor.u8());\n }\n\n const properties = propertyIds.map((id) =>\n {\n const rawValue = cursor.u32();\n\n if (id === LOOP_COUNT_PROPERTY_ID)\n {\n return {\n id,\n rawValue,\n valueType: \"loop-count\",\n value: rawValue,\n };\n }\n if (id === ATTENUATION_PROPERTY_ID)\n {\n return {\n id,\n rawValue,\n valueType: \"id\",\n value: rawValue,\n };\n }\n\n return {\n id,\n rawValue,\n valueType: \"union\",\n floatValue: FloatFromBits(rawValue),\n };\n });\n const rangeCount = boundedCount(\n cursor.u8(),\n cursor.remaining,\n 9,\n 255,\n );\n const rangeIds = [];\n\n for (let index = 0; index < rangeCount; index++)\n {\n rangeIds.push(cursor.u8());\n }\n\n const ranges = rangeIds.map((id) =>\n {\n const minRaw = cursor.u32();\n const maxRaw = cursor.u32();\n\n return {\n id,\n minRaw,\n maxRaw,\n minFloat: FloatFromBits(minRaw),\n maxFloat: FloatFromBits(maxRaw),\n };\n });\n const attenuationProperties = properties.filter(\n property => property.id === ATTENUATION_PROPERTY_ID,\n );\n const loopCountProperties = properties.filter(\n property => property.id === LOOP_COUNT_PROPERTY_ID,\n );\n\n if (attenuationProperties.length > 1)\n {\n throw new RangeError(\"duplicate v150 Wwise attenuation property\");\n }\n if (loopCountProperties.length > 1)\n {\n throw new RangeError(\"duplicate v150 Wwise loop-count property\");\n }\n\n const loopCount = loopCountProperties[0]?.value ?? null;\n\n if (loopCount !== null && loopCount > 32767)\n {\n throw new RangeError(\"invalid v150 Wwise loop count\");\n }\n\n return {\n properties,\n ranges,\n attenuationId: attenuationProperties[0]?.value ?? null,\n // Wwise serializes this property only when looping is enabled.\n // Zero means infinite; positive values are finite authored repeats.\n loopCount,\n };\n}\n\nfunction ReadPositioning(cursor)\n{\n const flags = cursor.u8();\n const overrideParent = Boolean(flags & 0x01);\n const listenerRelative = Boolean(flags & 0x02);\n const pannerType = (flags >>> 2) & 0x03;\n const positionType = (flags >>> 5) & 0x03;\n let spatial = null;\n let automation = null;\n\n if (positionType === 3)\n {\n throw new RangeError(\"invalid v150 Wwise position type\");\n }\n\n if (overrideParent && listenerRelative)\n {\n const spatialFlags = cursor.u8();\n\n spatial = {\n flags: spatialFlags,\n mode: spatialFlags & 0x03,\n enableAttenuation: Boolean(spatialFlags & 0x08),\n holdEmitterPositionOrientation: Boolean(spatialFlags & 0x10),\n holdListenerOrientation: Boolean(spatialFlags & 0x20),\n enableDiffraction: Boolean(spatialFlags & 0x40),\n };\n\n if (positionType !== 0)\n {\n automation = ReadAutomation(cursor);\n }\n }\n\n return {\n flags,\n overrideParent,\n listenerRelative,\n pannerType,\n positionType,\n spatial,\n automation,\n };\n}\n\nfunction ReadAutomation(cursor)\n{\n const pathMode = cursor.u8();\n const transitionTime = cursor.s32();\n const vertexCount = boundedCount(\n cursor.u32(),\n cursor.remaining,\n 16,\n 65535,\n );\n const vertices = [];\n\n for (let index = 0; index < vertexCount; index++)\n {\n vertices.push({\n x: finite(cursor.f32()),\n y: finite(cursor.f32()),\n z: finite(cursor.f32()),\n duration: cursor.s32(),\n });\n }\n\n const playlistCount = boundedCount(\n cursor.u32(),\n cursor.remaining,\n 20,\n 65535,\n );\n const playlist = [];\n\n for (let index = 0; index < playlistCount; index++)\n {\n playlist.push({\n verticesOffset: cursor.u32(),\n numVertices: cursor.u32(),\n });\n }\n\n const ranges = [];\n\n for (let index = 0; index < playlistCount; index++)\n {\n ranges.push({\n x: finite(cursor.f32()),\n y: finite(cursor.f32()),\n z: finite(cursor.f32()),\n });\n }\n\n return {\n pathMode,\n transitionTime,\n vertices,\n playlist,\n ranges,\n };\n}\n\nfunction ReadAux(cursor)\n{\n const flags = cursor.u8();\n const hasAux = Boolean(flags & 0x08);\n const auxIds = [];\n\n if (hasAux)\n {\n for (let index = 0; index < 4; index++)\n {\n auxIds.push(cursor.u32());\n }\n }\n\n return {\n flags,\n overrideUserAux: Boolean(flags & 0x04),\n hasAux,\n overrideReflectionsAux: Boolean(flags & 0x10),\n auxIds,\n reflectionsAuxBusId: cursor.u32(),\n };\n}\n\nfunction ReadAdvanced(cursor)\n{\n const flags = cursor.u8();\n const virtualQueueBehavior = cursor.u8();\n const maxInstances = cursor.u16();\n const belowThresholdBehavior = cursor.u8();\n const hdrFlags = cursor.u8();\n\n if (virtualQueueBehavior > 2 || belowThresholdBehavior > 3)\n {\n throw new RangeError(\"invalid v150 Wwise advanced setting\");\n }\n\n return {\n flags,\n killNewest: Boolean(flags & 0x01),\n useVirtualBehavior: Boolean(flags & 0x02),\n ignoreParentMaxInstances: Boolean(flags & 0x08),\n overrideVirtualVoiceBehavior: Boolean(flags & 0x10),\n virtualQueueBehavior,\n maxInstances,\n belowThresholdBehavior,\n hdrFlags,\n overrideHdrEnvelope: Boolean(hdrFlags & 0x01),\n overrideAnalysis: Boolean(hdrFlags & 0x02),\n normalizeLoudness: Boolean(hdrFlags & 0x04),\n enableEnvelope: Boolean(hdrFlags & 0x08),\n };\n}\n\nfunction ReadStateChunk(cursor)\n{\n const propertyCount = boundedCount(\n cursor.variable(),\n cursor.remaining,\n 3,\n 4096,\n );\n const properties = [];\n\n for (let index = 0; index < propertyCount; index++)\n {\n const propertyId = cursor.variable();\n const accumulation = cursor.u8();\n const inDbRaw = cursor.u8();\n\n if (accumulation > 6 || inDbRaw > 1)\n {\n throw new RangeError(\"invalid v150 Wwise state property\");\n }\n\n properties.push({\n propertyId,\n accumulation,\n inDbRaw,\n inDb: Boolean(inDbRaw),\n });\n }\n\n const groupCount = boundedCount(\n cursor.variable(),\n cursor.remaining,\n 6,\n 4096,\n );\n const groups = [];\n\n for (let index = 0; index < groupCount; index++)\n {\n const groupId = cursor.u32();\n const syncType = cursor.u8();\n const stateCount = boundedCount(\n cursor.variable(),\n cursor.remaining,\n 6,\n 4096,\n );\n const states = [];\n\n if (syncType > 9)\n {\n throw new RangeError(\"invalid v150 Wwise state sync type\");\n }\n\n for (let stateIndex = 0; stateIndex < stateCount; stateIndex++)\n {\n const stateId = cursor.u32();\n const valueCount = boundedCount(\n cursor.u16(),\n cursor.remaining,\n 6,\n 65535,\n );\n const propertyIds = [];\n\n for (let valueIndex = 0; valueIndex < valueCount; valueIndex++)\n {\n propertyIds.push(cursor.u16());\n }\n\n const values = propertyIds.map(propertyId => ({\n propertyId,\n value: finite(cursor.f32()),\n }));\n\n states.push({ stateId, values });\n }\n\n groups.push({ groupId, syncType, states });\n }\n\n return { properties, groups };\n}\n\nfunction FloatFromBits(value)\n{\n const bytes = new ArrayBuffer(4);\n const view = new DataView(bytes);\n\n view.setUint32(0, value, true);\n return view.getFloat32(0, true);\n}\n"],"names":["WWISE_NODE_BASE_VERSION","ATTENUATION_PROPERTY_ID","LOOP_COUNT_PROPERTY_ID","VALID_CURVE_SCALING","Set","WwiseCursor","constructor","bytes","offset","end","byteLength","Uint8Array","Number","isSafeInteger","TypeError","view","DataView","buffer","byteOffset","at","remaining","ensure","size","RangeError","u8","getUint8","s8","getInt8","u16","value","getUint16","u32","getUint32","s32","getInt32","f32","getFloat32","variable","result","readWwiseVar","subarray","nextOffset","readNodeBase","cursor","fx","ReadInitialFx","metadata","ReadInitialMetadata","overrideBusId","directParentId","priority","ReadPriority","properties","ranges","attenuationId","loopCount","ReadInitialProperties","positioning","ReadPositioning","aux","ReadAux","advanced","ReadAdvanced","state","ReadStateChunk","rtpcs","readInitialRtpcs","parseNodeBaseRange","start","bankVersion","nodeBase","count","boundedCount","index","push","readInitialRtpc","controlId","controlType","accumulation","parameterId","curveId","scaling","pointCount","has","points","readCurvePoints","from","finite","to","interpolation","stride","maximum","isFinite","overrideParentRaw","bypassAllRaw","slots","slot","fxId","flags","bypass","Boolean","shareSet","rendered","overrideParent","bypassAll","shareSetRaw","applyDistanceFactor","overrideMidiEventsBehavior","overrideMidiNoteTracking","enableMidiNoteTracking","midiBreakLoopOnNoteOff","propertyCount","propertyIds","map","id","rawValue","valueType","floatValue","FloatFromBits","rangeCount","rangeIds","minRaw","maxRaw","minFloat","maxFloat","attenuationProperties","filter","property","loopCountProperties","length","listenerRelative","pannerType","positionType","spatial","automation","spatialFlags","mode","enableAttenuation","holdEmitterPositionOrientation","holdListenerOrientation","enableDiffraction","ReadAutomation","pathMode","transitionTime","vertexCount","vertices","x","y","z","duration","playlistCount","playlist","verticesOffset","numVertices","hasAux","auxIds","overrideUserAux","overrideReflectionsAux","reflectionsAuxBusId","virtualQueueBehavior","maxInstances","belowThresholdBehavior","hdrFlags","killNewest","useVirtualBehavior","ignoreParentMaxInstances","overrideVirtualVoiceBehavior","overrideHdrEnvelope","overrideAnalysis","normalizeLoudness","enableEnvelope","propertyId","inDbRaw","inDb","groupCount","groups","groupId","syncType","stateCount","states","stateIndex","stateId","valueCount","valueIndex","values","ArrayBuffer","setUint32"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nodeBase.js","sources":["../../../../../src/formats/bnk/core/nodeBase.js"],"sourcesContent":["// Exact Wwise v150 common audio-node decoding. This module is internal to the\n// BNK toolkit: it preserves authored facts and byte unions without assigning\n// runtime playback or attenuation-curve semantics.\n\nimport { readWwiseVar } from \"./helpers.js\";\n\nexport const WWISE_NODE_BASE_VERSION = 150;\n\nconst ATTENUATION_PROPERTY_ID = 0x55;\nconst LOOP_COUNT_PROPERTY_ID = 0x54;\nconst VALID_CURVE_SCALING = new Set([ 0, 2, 3, 4 ]);\n\n/** Bounds-aware little-endian cursor over one HIRC payload. */\nexport class WwiseCursor\n{\n /**\n * Creates a cursor over a bounded portion of a Wwise payload.\n *\n * @param {Uint8Array} bytes Payload bytes.\n * @param {number} [offset=0] Initial byte offset.\n * @param {number} [end=bytes.byteLength] Exclusive ending offset.\n */\n constructor(bytes, offset = 0, end = bytes?.byteLength)\n {\n if (!(bytes instanceof Uint8Array)\n || !Number.isSafeInteger(offset)\n || !Number.isSafeInteger(end)\n || offset < 0\n || end < offset\n || end > bytes.byteLength)\n {\n throw new TypeError(\"Invalid Wwise cursor range\");\n }\n\n this.bytes = bytes;\n this.view = new DataView(\n bytes.buffer,\n bytes.byteOffset,\n bytes.byteLength,\n );\n this.at = offset;\n this.end = end;\n }\n\n /** Gets the number of unread bytes in the bounded range. */\n get remaining()\n {\n return this.end - this.at;\n }\n\n /**\n * Verifies that a read of the requested size stays within the range.\n *\n * @param {number} size Number of bytes to read.\n * @throws {RangeError} The read would exceed the bounded range.\n */\n ensure(size)\n {\n if (!Number.isSafeInteger(size)\n || size < 0\n || this.at + size > this.end)\n {\n throw new RangeError(\"truncated Wwise object\");\n }\n }\n\n /** Reads an unsigned 8-bit integer. */\n u8()\n {\n this.ensure(1);\n return this.view.getUint8(this.at++);\n }\n\n /** Reads a signed 8-bit integer. */\n s8()\n {\n this.ensure(1);\n return this.view.getInt8(this.at++);\n }\n\n /** Reads a little-endian unsigned 16-bit integer. */\n u16()\n {\n this.ensure(2);\n const value = this.view.getUint16(this.at, true);\n\n this.at += 2;\n return value;\n }\n\n /** Reads a little-endian unsigned 32-bit integer. */\n u32()\n {\n this.ensure(4);\n const value = this.view.getUint32(this.at, true);\n\n this.at += 4;\n return value;\n }\n\n /** Reads a little-endian signed 32-bit integer. */\n s32()\n {\n this.ensure(4);\n const value = this.view.getInt32(this.at, true);\n\n this.at += 4;\n return value;\n }\n\n /** Reads a little-endian 32-bit floating-point value. */\n f32()\n {\n this.ensure(4);\n const value = this.view.getFloat32(this.at, true);\n\n this.at += 4;\n return value;\n }\n\n /** Reads a Wwise variable-length unsigned integer. */\n variable()\n {\n const result = readWwiseVar(\n this.bytes.subarray(0, this.end),\n this.at,\n );\n\n if (!result)\n {\n throw new RangeError(\"invalid Wwise variable integer\");\n }\n\n this.at = result.nextOffset;\n return result.value;\n }\n}\n\n/**\n * Reads one v150 NodeBase from the current cursor position.\n *\n * The cursor is left at the first type-specific byte.\n */\nexport function readNodeBase(cursor)\n{\n const fx = ReadInitialFx(cursor);\n const metadata = ReadInitialMetadata(cursor);\n const overrideBusId = cursor.u32();\n const directParentId = cursor.u32();\n const priority = ReadPriority(cursor);\n const {\n properties,\n ranges,\n attenuationId,\n loopCount,\n } = ReadInitialProperties(cursor);\n const positioning = readPositioning(cursor);\n const aux = readAux(cursor);\n const advanced = ReadAdvanced(cursor);\n const state = readStateChunk(cursor);\n const rtpcs = readInitialRtpcs(cursor);\n\n return {\n fx,\n metadata,\n overrideBusId,\n directParentId,\n priority,\n properties,\n ranges,\n attenuationId,\n loopCount,\n positioning,\n aux,\n advanced,\n state,\n rtpcs,\n };\n}\n\n/** Parses one NodeBase that must consume exactly the supplied byte range. */\nexport function parseNodeBaseRange(\n bytes,\n start,\n end,\n { bankVersion = WWISE_NODE_BASE_VERSION } = {},\n)\n{\n if (!(bytes instanceof Uint8Array)\n || Number(bankVersion) !== WWISE_NODE_BASE_VERSION)\n {\n return null;\n }\n\n try\n {\n const cursor = new WwiseCursor(bytes, start, end);\n const nodeBase = readNodeBase(cursor);\n\n return cursor.at === end ? nodeBase : null;\n }\n catch\n {\n return null;\n }\n}\n\n/** Reads the v150 initial-RTPC list shared by NodeBase and attenuation. */\nexport function readInitialRtpcs(cursor)\n{\n const count = boundedCount(cursor.u16(), cursor.remaining, 14, 4096);\n const rtpcs = [];\n\n for (let index = 0; index < count; index++)\n {\n rtpcs.push(readInitialRtpc(cursor));\n }\n\n return rtpcs;\n}\n\n/** Reads one v150 initial RTPC. */\nexport function readInitialRtpc(cursor)\n{\n const controlId = cursor.u32();\n const controlType = cursor.u8();\n const accumulation = cursor.u8();\n const parameterId = cursor.variable();\n const curveId = cursor.u32();\n const scaling = cursor.u8();\n const pointCount = boundedCount(\n cursor.u16(),\n cursor.remaining,\n 12,\n 65535,\n );\n\n if (controlType > 4\n || accumulation > 6\n || !VALID_CURVE_SCALING.has(scaling))\n {\n throw new RangeError(\"invalid initial RTPC enum\");\n }\n\n return {\n controlId,\n controlType,\n accumulation,\n parameterId,\n curveId,\n scaling,\n points: readCurvePoints(cursor, pointCount),\n };\n}\n\n/** Reads exact Wwise graph points without inferring curve meaning. */\nexport function readCurvePoints(cursor, count)\n{\n const points = [];\n\n for (let index = 0; index < count; index++)\n {\n const from = finite(cursor.f32());\n const to = finite(cursor.f32());\n const interpolation = cursor.u32();\n\n if (interpolation > 9)\n {\n throw new RangeError(\"invalid curve interpolation\");\n }\n\n points.push({ from, to, interpolation });\n }\n\n return points;\n}\n\n/** Validates an encoded count before allocating or iterating it. */\nexport function boundedCount(value, remaining, stride, maximum)\n{\n if (!Number.isSafeInteger(value)\n || value < 0\n || value > maximum\n || value * stride > remaining)\n {\n throw new RangeError(\"invalid Wwise object count\");\n }\n\n return value;\n}\n\n/** Rejects non-finite authored curve/position values. */\nexport function finite(value)\n{\n if (!Number.isFinite(value))\n {\n throw new RangeError(\"non-finite Wwise object value\");\n }\n\n return value;\n}\n\nfunction ReadInitialFx(cursor)\n{\n const overrideParentRaw = cursor.u8();\n const count = cursor.u8();\n const bypassAllRaw = count ? cursor.u8() : 0;\n const slots = [];\n\n boundedCount(count, cursor.remaining, 6, 255);\n\n for (let index = 0; index < count; index++)\n {\n const slot = cursor.u8();\n const fxId = cursor.u32();\n const flags = cursor.u8();\n\n slots.push({\n index: slot,\n fxId,\n flags,\n bypass: Boolean(flags & 0x01),\n shareSet: Boolean(flags & 0x02),\n rendered: Boolean(flags & 0x04),\n });\n }\n\n return {\n overrideParentRaw,\n overrideParent: Boolean(overrideParentRaw),\n bypassAllRaw,\n bypassAll: Boolean(bypassAllRaw),\n slots,\n };\n}\n\nfunction ReadInitialMetadata(cursor)\n{\n const overrideParentRaw = cursor.u8();\n const count = cursor.u8();\n const slots = [];\n\n boundedCount(count, cursor.remaining, 6, 255);\n\n for (let index = 0; index < count; index++)\n {\n const slot = cursor.u8();\n const fxId = cursor.u32();\n const shareSetRaw = cursor.u8();\n\n slots.push({\n index: slot,\n fxId,\n shareSetRaw,\n shareSet: Boolean(shareSetRaw),\n });\n }\n\n return {\n overrideParentRaw,\n overrideParent: Boolean(overrideParentRaw),\n slots,\n };\n}\n\nfunction ReadPriority(cursor)\n{\n const flags = cursor.u8();\n\n return {\n flags,\n overrideParent: Boolean(flags & 0x01),\n applyDistanceFactor: Boolean(flags & 0x02),\n overrideMidiEventsBehavior: Boolean(flags & 0x04),\n overrideMidiNoteTracking: Boolean(flags & 0x08),\n enableMidiNoteTracking: Boolean(flags & 0x10),\n midiBreakLoopOnNoteOff: Boolean(flags & 0x20),\n };\n}\n\nfunction ReadInitialProperties(cursor)\n{\n const propertyCount = boundedCount(\n cursor.u8(),\n cursor.remaining,\n 5,\n 255,\n );\n const propertyIds = [];\n\n for (let index = 0; index < propertyCount; index++)\n {\n propertyIds.push(cursor.u8());\n }\n\n const properties = propertyIds.map((id) =>\n {\n const rawValue = cursor.u32();\n\n if (id === LOOP_COUNT_PROPERTY_ID)\n {\n return {\n id,\n rawValue,\n valueType: \"loop-count\",\n value: rawValue,\n };\n }\n if (id === ATTENUATION_PROPERTY_ID)\n {\n return {\n id,\n rawValue,\n valueType: \"id\",\n value: rawValue,\n };\n }\n\n return {\n id,\n rawValue,\n valueType: \"union\",\n floatValue: FloatFromBits(rawValue),\n };\n });\n const rangeCount = boundedCount(\n cursor.u8(),\n cursor.remaining,\n 9,\n 255,\n );\n const rangeIds = [];\n\n for (let index = 0; index < rangeCount; index++)\n {\n rangeIds.push(cursor.u8());\n }\n\n const ranges = rangeIds.map((id) =>\n {\n const minRaw = cursor.u32();\n const maxRaw = cursor.u32();\n\n return {\n id,\n minRaw,\n maxRaw,\n minFloat: FloatFromBits(minRaw),\n maxFloat: FloatFromBits(maxRaw),\n };\n });\n const attenuationProperties = properties.filter(\n property => property.id === ATTENUATION_PROPERTY_ID,\n );\n const loopCountProperties = properties.filter(\n property => property.id === LOOP_COUNT_PROPERTY_ID,\n );\n\n if (attenuationProperties.length > 1)\n {\n throw new RangeError(\"duplicate v150 Wwise attenuation property\");\n }\n if (loopCountProperties.length > 1)\n {\n throw new RangeError(\"duplicate v150 Wwise loop-count property\");\n }\n\n const loopCount = loopCountProperties[0]?.value ?? null;\n\n if (loopCount !== null && loopCount > 32767)\n {\n throw new RangeError(\"invalid v150 Wwise loop count\");\n }\n\n return {\n properties,\n ranges,\n attenuationId: attenuationProperties[0]?.value ?? null,\n // Wwise serializes this property only when looping is enabled.\n // Zero means infinite; positive values are finite authored repeats.\n loopCount,\n };\n}\n\n/**\n * Reads the v150 positioning block shared by NodeBase and bus records.\n *\n * @param {WwiseCursor} cursor Bounded object cursor.\n * @returns {object} Exact positioning flags and optional automation.\n */\nexport function readPositioning(cursor)\n{\n const flags = cursor.u8();\n const overrideParent = Boolean(flags & 0x01);\n const listenerRelative = Boolean(flags & 0x02);\n const pannerType = (flags >>> 2) & 0x03;\n const positionType = (flags >>> 5) & 0x03;\n let spatial = null;\n let automation = null;\n\n if (positionType === 3)\n {\n throw new RangeError(\"invalid v150 Wwise position type\");\n }\n\n if (overrideParent && listenerRelative)\n {\n const spatialFlags = cursor.u8();\n\n spatial = {\n flags: spatialFlags,\n mode: spatialFlags & 0x03,\n enableAttenuation: Boolean(spatialFlags & 0x08),\n holdEmitterPositionOrientation: Boolean(spatialFlags & 0x10),\n holdListenerOrientation: Boolean(spatialFlags & 0x20),\n enableDiffraction: Boolean(spatialFlags & 0x40),\n };\n\n if (positionType !== 0)\n {\n automation = ReadAutomation(cursor);\n }\n }\n\n return {\n flags,\n overrideParent,\n listenerRelative,\n pannerType,\n positionType,\n spatial,\n automation,\n };\n}\n\nfunction ReadAutomation(cursor)\n{\n const pathMode = cursor.u8();\n const transitionTime = cursor.s32();\n const vertexCount = boundedCount(\n cursor.u32(),\n cursor.remaining,\n 16,\n 65535,\n );\n const vertices = [];\n\n for (let index = 0; index < vertexCount; index++)\n {\n vertices.push({\n x: finite(cursor.f32()),\n y: finite(cursor.f32()),\n z: finite(cursor.f32()),\n duration: cursor.s32(),\n });\n }\n\n const playlistCount = boundedCount(\n cursor.u32(),\n cursor.remaining,\n 20,\n 65535,\n );\n const playlist = [];\n\n for (let index = 0; index < playlistCount; index++)\n {\n playlist.push({\n verticesOffset: cursor.u32(),\n numVertices: cursor.u32(),\n });\n }\n\n const ranges = [];\n\n for (let index = 0; index < playlistCount; index++)\n {\n ranges.push({\n x: finite(cursor.f32()),\n y: finite(cursor.f32()),\n z: finite(cursor.f32()),\n });\n }\n\n return {\n pathMode,\n transitionTime,\n vertices,\n playlist,\n ranges,\n };\n}\n\n/**\n * Reads the v150 auxiliary-send block shared by NodeBase and bus records.\n *\n * @param {WwiseCursor} cursor Bounded object cursor.\n * @returns {object} Exact auxiliary flags and target identities.\n */\nexport function readAux(cursor)\n{\n const flags = cursor.u8();\n const hasAux = Boolean(flags & 0x08);\n const auxIds = [];\n\n if (hasAux)\n {\n for (let index = 0; index < 4; index++)\n {\n auxIds.push(cursor.u32());\n }\n }\n\n return {\n flags,\n overrideUserAux: Boolean(flags & 0x04),\n hasAux,\n overrideReflectionsAux: Boolean(flags & 0x10),\n auxIds,\n reflectionsAuxBusId: cursor.u32(),\n };\n}\n\nfunction ReadAdvanced(cursor)\n{\n const flags = cursor.u8();\n const virtualQueueBehavior = cursor.u8();\n const maxInstances = cursor.u16();\n const belowThresholdBehavior = cursor.u8();\n const hdrFlags = cursor.u8();\n\n if (virtualQueueBehavior > 2 || belowThresholdBehavior > 3)\n {\n throw new RangeError(\"invalid v150 Wwise advanced setting\");\n }\n\n return {\n flags,\n killNewest: Boolean(flags & 0x01),\n useVirtualBehavior: Boolean(flags & 0x02),\n ignoreParentMaxInstances: Boolean(flags & 0x08),\n overrideVirtualVoiceBehavior: Boolean(flags & 0x10),\n virtualQueueBehavior,\n maxInstances,\n belowThresholdBehavior,\n hdrFlags,\n overrideHdrEnvelope: Boolean(hdrFlags & 0x01),\n overrideAnalysis: Boolean(hdrFlags & 0x02),\n normalizeLoudness: Boolean(hdrFlags & 0x04),\n enableEnvelope: Boolean(hdrFlags & 0x08),\n };\n}\n\n/**\n * Reads one v150 state-aware property and group chunk.\n *\n * @param {WwiseCursor} cursor Bounded object cursor.\n * @returns {object} Exact state property declarations and values.\n */\nexport function readStateChunk(cursor)\n{\n const propertyCount = boundedCount(\n cursor.variable(),\n cursor.remaining,\n 3,\n 4096,\n );\n const properties = [];\n\n for (let index = 0; index < propertyCount; index++)\n {\n const propertyId = cursor.variable();\n const accumulation = cursor.u8();\n const inDbRaw = cursor.u8();\n\n if (accumulation > 6 || inDbRaw > 1)\n {\n throw new RangeError(\"invalid v150 Wwise state property\");\n }\n\n properties.push({\n propertyId,\n accumulation,\n inDbRaw,\n inDb: Boolean(inDbRaw),\n });\n }\n\n const groupCount = boundedCount(\n cursor.variable(),\n cursor.remaining,\n 6,\n 4096,\n );\n const groups = [];\n\n for (let index = 0; index < groupCount; index++)\n {\n const groupId = cursor.u32();\n const syncType = cursor.u8();\n const stateCount = boundedCount(\n cursor.variable(),\n cursor.remaining,\n 6,\n 4096,\n );\n const states = [];\n\n if (syncType > 9)\n {\n throw new RangeError(\"invalid v150 Wwise state sync type\");\n }\n\n for (let stateIndex = 0; stateIndex < stateCount; stateIndex++)\n {\n const stateId = cursor.u32();\n const valueCount = boundedCount(\n cursor.u16(),\n cursor.remaining,\n 6,\n 65535,\n );\n const propertyIds = [];\n\n for (let valueIndex = 0; valueIndex < valueCount; valueIndex++)\n {\n propertyIds.push(cursor.u16());\n }\n\n const values = propertyIds.map(propertyId => ({\n propertyId,\n value: finite(cursor.f32()),\n }));\n\n states.push({ stateId, values });\n }\n\n groups.push({ groupId, syncType, states });\n }\n\n return { properties, groups };\n}\n\nfunction FloatFromBits(value)\n{\n const bytes = new ArrayBuffer(4);\n const view = new DataView(bytes);\n\n view.setUint32(0, value, true);\n return view.getFloat32(0, true);\n}\n"],"names":["WWISE_NODE_BASE_VERSION","ATTENUATION_PROPERTY_ID","LOOP_COUNT_PROPERTY_ID","VALID_CURVE_SCALING","Set","WwiseCursor","constructor","bytes","offset","end","byteLength","Uint8Array","Number","isSafeInteger","TypeError","view","DataView","buffer","byteOffset","at","remaining","ensure","size","RangeError","u8","getUint8","s8","getInt8","u16","value","getUint16","u32","getUint32","s32","getInt32","f32","getFloat32","variable","result","readWwiseVar","subarray","nextOffset","readNodeBase","cursor","fx","ReadInitialFx","metadata","ReadInitialMetadata","overrideBusId","directParentId","priority","ReadPriority","properties","ranges","attenuationId","loopCount","ReadInitialProperties","positioning","readPositioning","aux","readAux","advanced","ReadAdvanced","state","readStateChunk","rtpcs","readInitialRtpcs","parseNodeBaseRange","start","bankVersion","nodeBase","count","boundedCount","index","push","readInitialRtpc","controlId","controlType","accumulation","parameterId","curveId","scaling","pointCount","has","points","readCurvePoints","from","finite","to","interpolation","stride","maximum","isFinite","overrideParentRaw","bypassAllRaw","slots","slot","fxId","flags","bypass","Boolean","shareSet","rendered","overrideParent","bypassAll","shareSetRaw","applyDistanceFactor","overrideMidiEventsBehavior","overrideMidiNoteTracking","enableMidiNoteTracking","midiBreakLoopOnNoteOff","propertyCount","propertyIds","map","id","rawValue","valueType","floatValue","FloatFromBits","rangeCount","rangeIds","minRaw","maxRaw","minFloat","maxFloat","attenuationProperties","filter","property","loopCountProperties","length","listenerRelative","pannerType","positionType","spatial","automation","spatialFlags","mode","enableAttenuation","holdEmitterPositionOrientation","holdListenerOrientation","enableDiffraction","ReadAutomation","pathMode","transitionTime","vertexCount","vertices","x","y","z","duration","playlistCount","playlist","verticesOffset","numVertices","hasAux","auxIds","overrideUserAux","overrideReflectionsAux","reflectionsAuxBusId","virtualQueueBehavior","maxInstances","belowThresholdBehavior","hdrFlags","killNewest","useVirtualBehavior","ignoreParentMaxInstances","overrideVirtualVoiceBehavior","overrideHdrEnvelope","overrideAnalysis","normalizeLoudness","enableEnvelope","propertyId","inDbRaw","inDb","groupCount","groups","groupId","syncType","stateCount","states","stateIndex","stateId","valueCount","valueIndex","values","ArrayBuffer","setUint32"],"mappings":"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"}
|