@carbonenginejs/runtime-resource 0.9.2 → 0.11.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/NOTICE +3 -2
- package/README.md +47 -6
- package/dist/CjsMotherLode.js +88 -88
- package/dist/CjsMotherLode.js.map +1 -1
- package/dist/CjsResMan.js +717 -228
- package/dist/CjsResMan.js.map +1 -1
- package/dist/CjsResManFetchProvider.js +94 -0
- package/dist/CjsResManFetchProvider.js.map +1 -0
- package/dist/{CjsResManQueue.js → CjsResManWorkQueue.js} +112 -25
- package/dist/CjsResManWorkQueue.js.map +1 -0
- package/dist/format/CjsBlueReader.js +89 -0
- package/dist/format/CjsBlueReader.js.map +1 -1
- package/dist/format/CjsFormat.js +42 -16
- package/dist/format/CjsFormat.js.map +1 -1
- package/dist/format/CjsReader.js +4 -0
- package/dist/format/CjsReader.js.map +1 -1
- package/dist/format/CjsResourceProbe.js +2 -0
- package/dist/format/CjsResourceProbe.js.map +1 -1
- package/dist/format/effect/effectPermutationGraph.js +257 -0
- package/dist/format/effect/effectPermutationGraph.js.map +1 -0
- package/dist/format/effect/effectReflectionPackage.js +636 -0
- package/dist/format/effect/effectReflectionPackage.js.map +1 -0
- package/dist/format/effect/sha256.js +114 -0
- package/dist/format/effect/sha256.js.map +1 -0
- package/dist/format/payloadContract.js +20 -0
- package/dist/format/payloadContract.js.map +1 -1
- package/dist/formats/black/CjsBlackFormat.js +15 -1
- package/dist/formats/black/CjsBlackFormat.js.map +1 -1
- package/dist/formats/black/core/CjsBlackBinaryReader.js +103 -0
- package/dist/formats/black/core/CjsBlackBinaryReader.js.map +1 -1
- package/dist/formats/black/core/CjsBlackPropertyReaders.js +61 -0
- package/dist/formats/black/core/CjsBlackPropertyReaders.js.map +1 -1
- package/dist/formats/black/core/CjsBlackReader.js +125 -0
- package/dist/formats/black/core/CjsBlackReader.js.map +1 -1
- package/dist/formats/black/core/CjsBlackSchemaRegistry.js +103 -0
- package/dist/formats/black/core/CjsBlackSchemaRegistry.js.map +1 -1
- package/dist/formats/black/core/helpers.js +17 -0
- package/dist/formats/black/core/helpers.js.map +1 -1
- package/dist/formats/bnk/CjsBnkFormat.js +8 -0
- package/dist/formats/bnk/CjsBnkFormat.js.map +1 -1
- package/dist/formats/bnk/core/helpers.js +20 -0
- package/dist/formats/bnk/core/helpers.js.map +1 -1
- package/dist/formats/bnk/core/musicNodes.js +40 -3
- package/dist/formats/bnk/core/musicNodes.js.map +1 -1
- package/dist/formats/bnk/core/soundbanksInfo.js +2 -0
- package/dist/formats/bnk/core/soundbanksInfo.js.map +1 -1
- package/dist/formats/cmf/core/binary.js +71 -0
- package/dist/formats/cmf/core/binary.js.map +1 -1
- package/dist/formats/cmf/core/buffers.js +4 -0
- package/dist/formats/cmf/core/buffers.js.map +1 -1
- package/dist/formats/cmf/core/helpers.js +31 -0
- package/dist/formats/cmf/core/helpers.js.map +1 -1
- package/dist/formats/cmf/core/schema.js +10 -0
- package/dist/formats/cmf/core/schema.js.map +1 -1
- package/dist/formats/cmf/core/shared.js +9 -0
- package/dist/formats/cmf/core/shared.js.map +1 -1
- package/dist/formats/cmf/core/writer.js +54 -0
- package/dist/formats/cmf/core/writer.js.map +1 -1
- package/dist/formats/dds/core/bc6h.js +10 -0
- package/dist/formats/dds/core/bc6h.js.map +1 -1
- package/dist/formats/dds/core/bc7.js +16 -0
- package/dist/formats/dds/core/bc7.js.map +1 -1
- package/dist/formats/dds/core/helpers.js +47 -0
- package/dist/formats/dds/core/helpers.js.map +1 -1
- package/dist/formats/dxbc/CjsDxbcFormat.js +142 -0
- package/dist/formats/dxbc/CjsDxbcFormat.js.map +1 -0
- package/dist/formats/dxbc/core/DxbcReader.js +266 -0
- package/dist/formats/dxbc/core/DxbcReader.js.map +1 -0
- package/dist/formats/dxbc/core/container.js +169 -0
- package/dist/formats/dxbc/core/container.js.map +1 -0
- package/dist/formats/dxbc/core/decoder.js +789 -0
- package/dist/formats/dxbc/core/decoder.js.map +1 -0
- package/dist/formats/dxbc/core/errors.js +19 -0
- package/dist/formats/dxbc/core/errors.js.map +1 -0
- package/dist/formats/dxbc/core/helpers.js +220 -0
- package/dist/formats/dxbc/core/helpers.js.map +1 -0
- package/dist/formats/dxbc/core/opcodes.js +45 -0
- package/dist/formats/dxbc/core/opcodes.js.map +1 -0
- package/dist/formats/dxbc/core/program.js +91 -0
- package/dist/formats/dxbc/core/program.js.map +1 -0
- package/dist/formats/dxbc/core/signature.js +172 -0
- package/dist/formats/dxbc/core/signature.js.map +1 -0
- package/dist/formats/dxbc/index.js +2 -0
- package/dist/formats/dxbc/index.js.map +1 -0
- package/dist/formats/fbx/core/helpers.js +21 -0
- package/dist/formats/fbx/core/helpers.js.map +1 -1
- package/dist/formats/flac/CjsFlacFormat.js +49 -0
- package/dist/formats/flac/CjsFlacFormat.js.map +1 -1
- package/dist/formats/flac/core/helpers.js +20 -0
- package/dist/formats/flac/core/helpers.js.map +1 -1
- package/dist/formats/gif/CjsGifFormat.js +49 -0
- package/dist/formats/gif/CjsGifFormat.js.map +1 -1
- package/dist/formats/gif/core/helpers.js +20 -0
- package/dist/formats/gif/core/helpers.js.map +1 -1
- package/dist/formats/gltf/core/helpers.js +15 -0
- package/dist/formats/gltf/core/helpers.js.map +1 -1
- package/dist/formats/gltf/core/parser.js +13 -0
- package/dist/formats/gltf/core/parser.js.map +1 -1
- package/dist/formats/gltf/core/targets.js +10 -0
- package/dist/formats/gltf/core/targets.js.map +1 -1
- package/dist/formats/gr2/core/bitknit2.js +2 -0
- package/dist/formats/gr2/core/bitknit2.js.map +1 -1
- package/dist/formats/gr2/core/helpers.js +20 -0
- package/dist/formats/gr2/core/helpers.js.map +1 -1
- package/dist/formats/gr2/core/targets.js +10 -0
- package/dist/formats/gr2/core/targets.js.map +1 -1
- package/dist/formats/hlsl/CjsHlslFormat.js +254 -0
- package/dist/formats/hlsl/CjsHlslFormat.js.map +1 -0
- package/dist/formats/hlsl/core/HlslBinaryUtils.js +15 -0
- package/dist/formats/hlsl/core/HlslBinaryUtils.js.map +1 -0
- package/dist/formats/hlsl/core/HlslEffectReadError.js +19 -0
- package/dist/formats/hlsl/core/HlslEffectReadError.js.map +1 -0
- package/dist/formats/hlsl/core/HlslEffectStateManager.js +130 -0
- package/dist/formats/hlsl/core/HlslEffectStateManager.js.map +1 -0
- package/dist/formats/hlsl/core/HlslReader.js +266 -0
- package/dist/formats/hlsl/core/HlslReader.js.map +1 -0
- package/dist/formats/hlsl/core/HlslRenderStateSetup.js +37 -0
- package/dist/formats/hlsl/core/HlslRenderStateSetup.js.map +1 -0
- package/dist/formats/hlsl/core/HlslResourceSetDescription.js +94 -0
- package/dist/formats/hlsl/core/HlslResourceSetDescription.js.map +1 -0
- package/dist/formats/hlsl/core/HlslShaderBytecode.js +44 -0
- package/dist/formats/hlsl/core/HlslShaderBytecode.js.map +1 -0
- package/dist/formats/hlsl/core/analysis.js +51 -0
- package/dist/formats/hlsl/core/analysis.js.map +1 -0
- package/dist/formats/hlsl/core/helpers.js +270 -0
- package/dist/formats/hlsl/core/helpers.js.map +1 -0
- package/dist/formats/hlsl/core/json.js +284 -0
- package/dist/formats/hlsl/core/json.js.map +1 -0
- package/dist/formats/hlsl/core/metadata.js +327 -0
- package/dist/formats/hlsl/core/metadata.js.map +1 -0
- package/dist/formats/hlsl/core/portableReflection.js +848 -0
- package/dist/formats/hlsl/core/portableReflection.js.map +1 -0
- package/dist/formats/hlsl/core/render-states.js +280 -0
- package/dist/formats/hlsl/core/render-states.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/HlslRenderContextEnum.js +43 -0
- package/dist/formats/hlsl/core/tr2/HlslRenderContextEnum.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js +294 -0
- package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/resources/HlslShaderPermutation.js +33 -0
- package/dist/formats/hlsl/core/tr2/resources/HlslShaderPermutation.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js +416 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectConstant.js +40 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectConstant.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js +742 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectLibrary.js +52 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectLibrary.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectParameterAnnotation.js +38 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectParameterAnnotation.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectResource.js +50 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectResource.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js +86 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectTechnique.js +31 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectTechnique.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslPass.js +42 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslPass.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslSamplerDescription.js +55 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslSamplerDescription.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslSamplerSetup.js +29 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslSamplerSetup.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslShader.js +220 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslShader.js.map +1 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslShaderOption.js +30 -0
- package/dist/formats/hlsl/core/tr2/shader/HlslShaderOption.js.map +1 -0
- package/dist/formats/hlsl/index.js +2 -0
- package/dist/formats/hlsl/index.js.map +1 -0
- package/dist/formats/hlsl/portable.js +2 -0
- package/dist/formats/hlsl/portable.js.map +1 -0
- package/dist/formats/index.js +4 -0
- package/dist/formats/index.js.map +1 -1
- package/dist/formats/jpeg/core/helpers.js +52 -0
- package/dist/formats/jpeg/core/helpers.js.map +1 -1
- package/dist/formats/jpeg/core/jpeg.js +93 -0
- package/dist/formats/jpeg/core/jpeg.js.map +1 -1
- package/dist/formats/mp3/core/helpers.js +37 -0
- package/dist/formats/mp3/core/helpers.js.map +1 -1
- package/dist/formats/mp4/core/helpers.js +35 -0
- package/dist/formats/mp4/core/helpers.js.map +1 -1
- package/dist/formats/ogg/CjsOggFormat.js +49 -0
- package/dist/formats/ogg/CjsOggFormat.js.map +1 -1
- package/dist/formats/ogg/core/helpers.js +23 -0
- package/dist/formats/ogg/core/helpers.js.map +1 -1
- package/dist/formats/ogg/core/vorbis.js +13 -0
- package/dist/formats/ogg/core/vorbis.js.map +1 -1
- package/dist/formats/png/core/helpers.js +52 -0
- package/dist/formats/png/core/helpers.js.map +1 -1
- package/dist/formats/red/CjsRedFormat.js +2 -0
- package/dist/formats/red/CjsRedFormat.js.map +1 -1
- package/dist/formats/red/core/CjsRedReader.js +52 -0
- package/dist/formats/red/core/CjsRedReader.js.map +1 -1
- package/dist/formats/red/core/helpers.js +19 -0
- package/dist/formats/red/core/helpers.js.map +1 -1
- package/dist/formats/stl/core/stl.js +8 -0
- package/dist/formats/stl/core/stl.js.map +1 -1
- package/dist/formats/stl/core/targets.js +10 -0
- package/dist/formats/stl/core/targets.js.map +1 -1
- package/dist/formats/tga/core/helpers.js +47 -0
- package/dist/formats/tga/core/helpers.js.map +1 -1
- package/dist/formats/wav/core/helpers.js +37 -0
- package/dist/formats/wav/core/helpers.js.map +1 -1
- package/dist/formats/webgl/CjsWebglFormat.js +221 -0
- package/dist/formats/webgl/CjsWebglFormat.js.map +1 -0
- package/dist/formats/webgl/core/cewg/CewgPackage.js +339 -0
- package/dist/formats/webgl/core/cewg/CewgPackage.js.map +1 -0
- package/dist/formats/webgl/core/cewg/CewgPackageBuilder.js +104 -0
- package/dist/formats/webgl/core/cewg/CewgPackageBuilder.js.map +1 -0
- package/dist/formats/webgl/core/cewg/binary.js +101 -0
- package/dist/formats/webgl/core/cewg/binary.js.map +1 -0
- package/dist/formats/webgl/core/cewgCompleteness.js +81 -0
- package/dist/formats/webgl/core/cewgCompleteness.js.map +1 -0
- package/dist/formats/webgl/core/effectPackage.js +789 -0
- package/dist/formats/webgl/core/effectPackage.js.map +1 -0
- package/dist/formats/webgl/core/effectPackageValidation.js +331 -0
- package/dist/formats/webgl/core/effectPackageValidation.js.map +1 -0
- package/dist/formats/webgl/core/errors.js +27 -0
- package/dist/formats/webgl/core/errors.js.map +1 -0
- package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js +2678 -0
- package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -0
- package/dist/formats/webgl/core/glsl/DxbcGlslHelpers.js +89 -0
- package/dist/formats/webgl/core/glsl/DxbcGlslHelpers.js.map +1 -0
- package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +428 -0
- package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -0
- package/dist/formats/webgl/core/helpers.js +306 -0
- package/dist/formats/webgl/core/helpers.js.map +1 -0
- package/dist/formats/webgl/index.js +2 -0
- package/dist/formats/webgl/index.js.map +1 -0
- package/dist/formats/webgpu/CjsWebgpuFormat.js +376 -0
- package/dist/formats/webgpu/CjsWebgpuFormat.js.map +1 -0
- package/dist/formats/webgpu/core/cewgpu/CewgpuPackage.js +415 -0
- package/dist/formats/webgpu/core/cewgpu/CewgpuPackage.js.map +1 -0
- package/dist/formats/webgpu/core/cewgpu/CewgpuPackageBuilder.js +100 -0
- package/dist/formats/webgpu/core/cewgpu/CewgpuPackageBuilder.js.map +1 -0
- package/dist/formats/webgpu/core/cewgpu/binary.js +93 -0
- package/dist/formats/webgpu/core/cewgpu/binary.js.map +1 -0
- package/dist/formats/webgpu/core/cewgpu/tags.js +17 -0
- package/dist/formats/webgpu/core/cewgpu/tags.js.map +1 -0
- package/dist/formats/webgpu/core/effectAnalysis.js +82 -0
- package/dist/formats/webgpu/core/effectAnalysis.js.map +1 -0
- package/dist/formats/webgpu/core/effectBackendBodySet.js +305 -0
- package/dist/formats/webgpu/core/effectBackendBodySet.js.map +1 -0
- package/dist/formats/webgpu/core/effectPackageValidation.js +1078 -0
- package/dist/formats/webgpu/core/effectPackageValidation.js.map +1 -0
- package/dist/formats/webgpu/core/errors.js +20 -0
- package/dist/formats/webgpu/core/errors.js.map +1 -0
- package/dist/formats/webgpu/core/helpers.js +448 -0
- package/dist/formats/webgpu/core/helpers.js.map +1 -0
- package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js +223 -0
- package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js.map +1 -0
- package/dist/formats/webgpu/core/ir/buildControlFlow.js +220 -0
- package/dist/formats/webgpu/core/ir/buildControlFlow.js.map +1 -0
- package/dist/formats/webgpu/core/ir/indexableTemps.js +137 -0
- package/dist/formats/webgpu/core/ir/indexableTemps.js.map +1 -0
- package/dist/formats/webgpu/core/ir/inferValueTypes.js +454 -0
- package/dist/formats/webgpu/core/ir/inferValueTypes.js.map +1 -0
- package/dist/formats/webgpu/core/ir/lowerDxbcToIr.js +494 -0
- package/dist/formats/webgpu/core/ir/lowerDxbcToIr.js.map +1 -0
- package/dist/formats/webgpu/core/ir/resolveRegisterFlow.js +177 -0
- package/dist/formats/webgpu/core/ir/resolveRegisterFlow.js.map +1 -0
- package/dist/formats/webgpu/core/ir/sourceLanes.js +61 -0
- package/dist/formats/webgpu/core/ir/sourceLanes.js.map +1 -0
- package/dist/formats/webgpu/core/packageEffect.js +300 -0
- package/dist/formats/webgpu/core/packageEffect.js.map +1 -0
- package/dist/formats/webgpu/core/packageEffectSelection.js +164 -0
- package/dist/formats/webgpu/core/packageEffectSelection.js.map +1 -0
- package/dist/formats/webgpu/core/packageMetadata.js +8 -0
- package/dist/formats/webgpu/core/packageMetadata.js.map +1 -0
- package/dist/formats/webgpu/core/schema.js +4 -0
- package/dist/formats/webgpu/core/schema.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js +275 -0
- package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js +182 -0
- package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/buildWgslSet.js +324 -0
- package/dist/formats/webgpu/core/wgsl/buildWgslSet.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/emitWgsl.js +356 -0
- package/dist/formats/webgpu/core/wgsl/emitWgsl.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/hoistEscapingValues.js +77 -0
- package/dist/formats/webgpu/core/wgsl/hoistEscapingValues.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerBindingLayout.js +451 -0
- package/dist/formats/webgpu/core/wgsl/lowerBindingLayout.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js +754 -0
- package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js +457 -0
- package/dist/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerFragmentProgram.js +1572 -0
- package/dist/formats/webgpu/core/wgsl/lowerFragmentProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerMergeHistogramsComputeProgram.js +659 -0
- package/dist/formats/webgpu/core/wgsl/lowerMergeHistogramsComputeProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerParticleClearComputePrograms.js +734 -0
- package/dist/formats/webgpu/core/wgsl/lowerParticleClearComputePrograms.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerParticleEmitComputeProgram.js +583 -0
- package/dist/formats/webgpu/core/wgsl/lowerParticleEmitComputeProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerSkinVerticesComputeProgram.js +621 -0
- package/dist/formats/webgpu/core/wgsl/lowerSkinVerticesComputeProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerSortComputeProgram.js +824 -0
- package/dist/formats/webgpu/core/wgsl/lowerSortComputeProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerSortInnerComputeProgram.js +697 -0
- package/dist/formats/webgpu/core/wgsl/lowerSortInnerComputeProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerSortStepComputeProgram.js +559 -0
- package/dist/formats/webgpu/core/wgsl/lowerSortStepComputeProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/lowerVertexProgram.js +1328 -0
- package/dist/formats/webgpu/core/wgsl/lowerVertexProgram.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/particleEmitSemanticDigest.js +110 -0
- package/dist/formats/webgpu/core/wgsl/particleEmitSemanticDigest.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/precisionControls.js +55 -0
- package/dist/formats/webgpu/core/wgsl/precisionControls.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/selectionPlans.js +758 -0
- package/dist/formats/webgpu/core/wgsl/selectionPlans.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/uniformity.js +78 -0
- package/dist/formats/webgpu/core/wgsl/uniformity.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/validateExactComputeIr.js +196 -0
- package/dist/formats/webgpu/core/wgsl/validateExactComputeIr.js.map +1 -0
- package/dist/formats/webgpu/core/wgsl/validateHandleOperand.js +37 -0
- package/dist/formats/webgpu/core/wgsl/validateHandleOperand.js.map +1 -0
- package/dist/formats/webgpu/index.js +2 -0
- package/dist/formats/webgpu/index.js.map +1 -0
- package/dist/formats/webm/core/helpers.js +35 -0
- package/dist/formats/webm/core/helpers.js.map +1 -1
- package/dist/formats/webp/CjsWebpFormat.js +49 -0
- package/dist/formats/webp/CjsWebpFormat.js.map +1 -1
- package/dist/formats/webp/core/helpers.js +23 -0
- package/dist/formats/webp/core/helpers.js.map +1 -1
- package/dist/formats/wem/CjsWemFormat.js +8 -0
- package/dist/formats/wem/CjsWemFormat.js.map +1 -1
- package/dist/formats/wem/core/bitStream.js +2 -0
- package/dist/formats/wem/core/bitStream.js.map +1 -1
- package/dist/formats/wem/core/helpers.js +20 -0
- package/dist/formats/wem/core/helpers.js.map +1 -1
- package/dist/formats/yaml/CjsYamlFormat.js +45 -0
- package/dist/formats/yaml/CjsYamlFormat.js.map +1 -1
- package/dist/formats/yaml/core/CjsYamlReader.js +91 -0
- package/dist/formats/yaml/core/CjsYamlReader.js.map +1 -1
- package/dist/formats/yaml/core/helpers.js +10 -0
- package/dist/formats/yaml/core/helpers.js.map +1 -1
- package/dist/index.js +56 -43
- package/dist/index.js.map +1 -1
- package/dist/{CjsResource.js → resource/CjsResource.js} +232 -17
- package/dist/resource/CjsResource.js.map +1 -0
- package/dist/{resources → resource}/Tr2LightProfileRes.js +4 -3
- package/dist/resource/Tr2LightProfileRes.js.map +1 -0
- package/dist/{resources → resource/audio}/AudioGeometryResData.js +1 -1
- package/dist/resource/audio/AudioGeometryResData.js.map +1 -0
- package/dist/resource/audio/CjsAudioBufferRes.js +86 -0
- package/dist/resource/audio/CjsAudioBufferRes.js.map +1 -0
- package/dist/resource/audio/CjsAudioRes.js +213 -0
- package/dist/resource/audio/CjsAudioRes.js.map +1 -0
- package/dist/resource/audio/index.js +4 -0
- package/dist/resource/audio/index.js.map +1 -0
- package/dist/{resources → resource/geometry}/MeshDecalData.js +1 -1
- package/dist/resource/geometry/MeshDecalData.js.map +1 -0
- package/dist/{resources → resource/geometry}/MeshDecalLodData.js +1 -1
- package/dist/resource/geometry/MeshDecalLodData.js.map +1 -0
- package/dist/resource/geometry/TriGeometryRes.js +656 -0
- package/dist/resource/geometry/TriGeometryRes.js.map +1 -0
- package/dist/{resources → resource/geometry}/TriGeometryResAreaData.js +1 -1
- package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -0
- package/dist/{resources → resource/geometry}/TriGeometryResJointData.js +1 -1
- package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -0
- package/dist/{resources → resource/geometry}/TriGeometryResLodData.js +1 -1
- package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -0
- package/dist/{resources → resource/geometry}/TriGeometryResMeshData.js +1 -1
- package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -0
- package/dist/{resources → resource/geometry}/TriGeometryResSkeletonData.js +1 -1
- package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -0
- package/dist/{resources → resource/geometry}/TriJointBinding.js +1 -1
- package/dist/resource/geometry/TriJointBinding.js.map +1 -0
- package/dist/{resources → resource/geometry}/TriMorphTargetGeometryConstants.js +1 -1
- package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -0
- package/dist/{resources → resource/geometry}/TriRtGeometryConstants.js +1 -1
- package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -0
- package/dist/{resources → resource/geometry/granny}/GStateBindingCallbackData.js +1 -1
- package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -0
- package/dist/{resources → resource/geometry/granny}/Tr2GrannyIntersectionResult.js +1 -1
- package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -0
- package/dist/{resources → resource/geometry/granny}/Tr2GrannyStateRes.js +6 -5
- package/dist/resource/geometry/granny/Tr2GrannyStateRes.js.map +1 -0
- package/dist/{resources → resource/geometry/granny}/TriGrannyRes.js +6 -5
- package/dist/resource/geometry/granny/TriGrannyRes.js.map +1 -0
- package/dist/{resources → resource/geometry/granny}/enums.js +1 -9
- package/dist/resource/geometry/granny/enums.js.map +1 -0
- package/dist/resource/geometry/granny/index.js +6 -0
- package/dist/resource/geometry/granny/index.js.map +1 -0
- package/dist/resource/geometry/index.js +17 -0
- package/dist/resource/geometry/index.js.map +1 -0
- package/dist/resource/index.js +52 -0
- package/dist/resource/index.js.map +1 -0
- package/dist/resource/resourceBoundary.js +64 -0
- package/dist/resource/resourceBoundary.js.map +1 -0
- package/dist/resource/shader/Tr2EffectRes.js +429 -0
- package/dist/resource/shader/Tr2EffectRes.js.map +1 -0
- package/dist/resource/shader/Tr2MaterialArea.js +34 -0
- package/dist/resource/shader/Tr2MaterialArea.js.map +1 -0
- package/dist/resource/shader/Tr2MaterialMesh.js +30 -0
- package/dist/resource/shader/Tr2MaterialMesh.js.map +1 -0
- package/dist/resource/shader/Tr2MaterialRes.js +35 -0
- package/dist/resource/shader/Tr2MaterialRes.js.map +1 -0
- package/dist/resource/shader/Tr2Shader.js +256 -0
- package/dist/resource/shader/Tr2Shader.js.map +1 -0
- package/dist/resource/shader/Tr2ShaderPermutation.js +47 -0
- package/dist/resource/shader/Tr2ShaderPermutation.js.map +1 -0
- package/dist/resource/shader/index.js +17 -0
- package/dist/resource/shader/index.js.map +1 -0
- package/dist/resource/shader/portable.js +33 -0
- package/dist/resource/shader/portable.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2EffectConstant.js +135 -0
- package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2EffectDefine.js +28 -0
- package/dist/resource/shader/reflection/Tr2EffectDefine.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2EffectDescription.js +107 -0
- package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js +145 -0
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +103 -0
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2EffectResource.js +84 -0
- package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js +239 -0
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js +66 -0
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -0
- package/dist/resource/shader/reflection/Tr2Pass.js +109 -0
- package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -0
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js +75 -0
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -0
- package/dist/{texture → resource/texture}/CjsTextureArrayRes.js +83 -6
- package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -0
- package/dist/{texture/CjsTextureParameterProxy.js → resource/texture/CjsTextureArrayResParameterProxy.js} +56 -10
- package/dist/resource/texture/CjsTextureArrayResParameterProxy.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2ImageRes.js +6 -4
- package/dist/resource/texture/Tr2ImageRes.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TextureLodManager.js +3 -1
- package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TextureLodUpdateRequest.js +1 -1
- package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TexturePackChannel.js +1 -1
- package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TexturePipeline.js +6 -4
- package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TexturePipelineParams.js +1 -1
- package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TexturePipelineStepCompress.js +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TexturePipelineStepGenerateMips.js +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TexturePipelineStepLimitSize.js +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TexturePipelineStepLoad.js +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -0
- package/dist/{resources → resource/texture}/Tr2TexturePipelineStepPack.js +1 -1
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -0
- package/dist/{resources → resource/texture}/TriTextureRes.js +42 -26
- package/dist/resource/texture/TriTextureRes.js.map +1 -0
- package/dist/resource/texture/index.js +15 -0
- package/dist/resource/texture/index.js.map +1 -0
- package/dist/{resources → resource/texture}/texturePipelineBehavior.js +59 -59
- package/dist/resource/texture/texturePipelineBehavior.js.map +1 -0
- package/dist/worker/CjsResManMainThreadLoader.js +87 -0
- package/dist/worker/CjsResManMainThreadLoader.js.map +1 -0
- package/dist/worker/CjsResManWorker.js +217 -0
- package/dist/worker/CjsResManWorker.js.map +1 -0
- package/dist/worker/CjsResManWorkerLoader.js +434 -0
- package/dist/worker/CjsResManWorkerLoader.js.map +1 -0
- package/dist/worker/protocol.js +12 -0
- package/dist/worker/protocol.js.map +1 -0
- package/docs/README.md +16 -3
- package/docs/architecture.md +39 -16
- package/docs/concepts/resource-lifecycle.md +2 -1
- package/docs/formats/README.md +8 -0
- package/docs/formats/provenance.md +11 -3
- package/docs/reference/classes/README.md +6 -4
- package/docs/reference/classes/audio.md +30 -0
- package/docs/reference/classes/core.md +31 -11
- package/docs/reference/classes/formats.md +440 -0
- package/docs/reference/classes/resources.md +151 -41
- package/docs/reference/classes/texture.md +7 -7
- package/docs/reference/motherlode-cache.md +17 -0
- package/docs/reference/queues.md +9 -1
- package/docs/reference/workers.md +135 -0
- package/docs/roadmap.md +27 -1
- package/format-notices/dxbc/LICENSE +21 -0
- package/format-notices/dxbc/NOTICE +20 -0
- package/format-notices/hlsl/LICENSE +21 -0
- package/format-notices/hlsl/NOTICE +25 -0
- package/format-notices/webgl/LICENSE +21 -0
- package/format-notices/webgl/NOTICE +35 -0
- package/format-notices/webgpu/LICENSE +21 -0
- package/format-notices/webgpu/NOTICE +31 -0
- package/package.json +13 -1
- package/dist/CjsResManQueue.js.map +0 -1
- package/dist/CjsResource.js.map +0 -1
- package/dist/CjsResourceSource.js +0 -68
- package/dist/CjsResourceSource.js.map +0 -1
- package/dist/resourcePath.js +0 -18
- package/dist/resourcePath.js.map +0 -1
- package/dist/resourceStates.js +0 -9
- package/dist/resourceStates.js.map +0 -1
- package/dist/resources/AudioGeometryResData.js.map +0 -1
- package/dist/resources/GStateBindingCallbackData.js.map +0 -1
- package/dist/resources/MeshDecalData.js.map +0 -1
- package/dist/resources/MeshDecalLodData.js.map +0 -1
- package/dist/resources/Tr2EffectRes.js +0 -71
- package/dist/resources/Tr2EffectRes.js.map +0 -1
- package/dist/resources/Tr2GrannyIntersectionResult.js.map +0 -1
- package/dist/resources/Tr2GrannyStateRes.js.map +0 -1
- package/dist/resources/Tr2ImageRes.js.map +0 -1
- package/dist/resources/Tr2LightProfileRes.js.map +0 -1
- package/dist/resources/Tr2MaterialArea.js +0 -34
- package/dist/resources/Tr2MaterialArea.js.map +0 -1
- package/dist/resources/Tr2MaterialMesh.js +0 -31
- package/dist/resources/Tr2MaterialMesh.js.map +0 -1
- package/dist/resources/Tr2MaterialRes.js +0 -34
- package/dist/resources/Tr2MaterialRes.js.map +0 -1
- package/dist/resources/Tr2ShaderPermutation.js +0 -43
- package/dist/resources/Tr2ShaderPermutation.js.map +0 -1
- package/dist/resources/Tr2TextureLodManager.js.map +0 -1
- package/dist/resources/Tr2TextureLodUpdateRequest.js.map +0 -1
- package/dist/resources/Tr2TexturePackChannel.js.map +0 -1
- package/dist/resources/Tr2TexturePipeline.js.map +0 -1
- package/dist/resources/Tr2TexturePipelineParams.js.map +0 -1
- package/dist/resources/Tr2TexturePipelineStepCompress.js.map +0 -1
- package/dist/resources/Tr2TexturePipelineStepGenerateMips.js.map +0 -1
- package/dist/resources/Tr2TexturePipelineStepLimitSize.js.map +0 -1
- package/dist/resources/Tr2TexturePipelineStepLoad.js.map +0 -1
- package/dist/resources/Tr2TexturePipelineStepPack.js.map +0 -1
- package/dist/resources/TriGeometryRes.js +0 -239
- package/dist/resources/TriGeometryRes.js.map +0 -1
- package/dist/resources/TriGeometryResAreaData.js.map +0 -1
- package/dist/resources/TriGeometryResJointData.js.map +0 -1
- package/dist/resources/TriGeometryResLodData.js.map +0 -1
- package/dist/resources/TriGeometryResMeshData.js.map +0 -1
- package/dist/resources/TriGeometryResSkeletonData.js.map +0 -1
- package/dist/resources/TriGrannyRes.js.map +0 -1
- package/dist/resources/TriJointBinding.js.map +0 -1
- package/dist/resources/TriMorphTargetGeometryConstants.js.map +0 -1
- package/dist/resources/TriRtGeometryConstants.js.map +0 -1
- package/dist/resources/TriTextureRes.js.map +0 -1
- package/dist/resources/enums.js.map +0 -1
- package/dist/resources/resourceBoundary.js +0 -47
- package/dist/resources/resourceBoundary.js.map +0 -1
- package/dist/resources/texturePipelineBehavior.js.map +0 -1
- package/dist/texture/CjsTextureArrayRes.js.map +0 -1
- package/dist/texture/CjsTextureParameterProxy.js.map +0 -1
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { DxbcReader } from './DxbcReader.js';
|
|
2
|
+
import { DxbcReadError } from './errors.js';
|
|
3
|
+
|
|
4
|
+
const SIGNATURE_TABLE_HEADER_SIZE = 8;
|
|
5
|
+
const semanticNameDecoder = new TextDecoder("latin1");
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Per-fourCC signature element layouts.
|
|
9
|
+
*
|
|
10
|
+
* `ISGN`/`OSGN`/`PCSG` use the 24-byte Shader Model 4 layout. `OSG5` prefixes
|
|
11
|
+
* a stream index. `ISG1`/`OSG1`/`PSG1` prefix a stream index and append a
|
|
12
|
+
* minimum-precision field.
|
|
13
|
+
*/
|
|
14
|
+
const SIGNATURE_ELEMENT_LAYOUTS = Object.freeze({
|
|
15
|
+
ISGN: {
|
|
16
|
+
stride: 24,
|
|
17
|
+
hasStream: false,
|
|
18
|
+
hasMinPrecision: false
|
|
19
|
+
},
|
|
20
|
+
OSGN: {
|
|
21
|
+
stride: 24,
|
|
22
|
+
hasStream: false,
|
|
23
|
+
hasMinPrecision: false
|
|
24
|
+
},
|
|
25
|
+
PCSG: {
|
|
26
|
+
stride: 24,
|
|
27
|
+
hasStream: false,
|
|
28
|
+
hasMinPrecision: false
|
|
29
|
+
},
|
|
30
|
+
OSG5: {
|
|
31
|
+
stride: 28,
|
|
32
|
+
hasStream: true,
|
|
33
|
+
hasMinPrecision: false
|
|
34
|
+
},
|
|
35
|
+
ISG1: {
|
|
36
|
+
stride: 32,
|
|
37
|
+
hasStream: true,
|
|
38
|
+
hasMinPrecision: true
|
|
39
|
+
},
|
|
40
|
+
OSG1: {
|
|
41
|
+
stride: 32,
|
|
42
|
+
hasStream: true,
|
|
43
|
+
hasMinPrecision: true
|
|
44
|
+
},
|
|
45
|
+
PSG1: {
|
|
46
|
+
stride: 32,
|
|
47
|
+
hasStream: true,
|
|
48
|
+
hasMinPrecision: true
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Register component type names indexed by DXBC signature component-type ids.
|
|
54
|
+
*/
|
|
55
|
+
const DxbcComponentTypeNames = Object.freeze(["unknown", "uint32", "int32", "float32"]);
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* DXBC input/output signature chunk reader for `ISGN`-family chunks.
|
|
59
|
+
*/
|
|
60
|
+
class DxbcSignatureChunk {
|
|
61
|
+
/**
|
|
62
|
+
* Creates an empty signature chunk; call a read entry point to populate its parameter records.
|
|
63
|
+
*/
|
|
64
|
+
constructor() {
|
|
65
|
+
this.fourCC = "";
|
|
66
|
+
this.elements = [];
|
|
67
|
+
this.source = "memory";
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Reads a signature chunk payload into semantic/register element records.
|
|
72
|
+
*
|
|
73
|
+
* @param {{fourCC:string,bytes:Uint8Array}} chunk Chunk record from `DxbcContainer`.
|
|
74
|
+
* @param {object} [options] Read options.
|
|
75
|
+
* @param {string} [options.source] Source name used in error details.
|
|
76
|
+
* @returns {DxbcSignatureChunk} This signature.
|
|
77
|
+
*/
|
|
78
|
+
Read(chunk, options = {}) {
|
|
79
|
+
this.fourCC = chunk.fourCC;
|
|
80
|
+
this.source = options.source || "memory";
|
|
81
|
+
const layout = SIGNATURE_ELEMENT_LAYOUTS[this.fourCC];
|
|
82
|
+
if (!layout) {
|
|
83
|
+
throw new DxbcReadError("Unsupported DXBC signature chunk", {
|
|
84
|
+
source: this.source,
|
|
85
|
+
fourCC: this.fourCC
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
const bytes = chunk.bytes;
|
|
89
|
+
const reader = new DxbcReader(bytes, {
|
|
90
|
+
source: this.source
|
|
91
|
+
});
|
|
92
|
+
const elementCount = reader.readUint32();
|
|
93
|
+
const elementOffset = reader.readUint32() || SIGNATURE_TABLE_HEADER_SIZE;
|
|
94
|
+
if (elementOffset + elementCount * layout.stride > bytes.length) {
|
|
95
|
+
throw new DxbcReadError("DXBC signature elements lie outside the chunk", {
|
|
96
|
+
source: this.source,
|
|
97
|
+
fourCC: this.fourCC,
|
|
98
|
+
elementCount,
|
|
99
|
+
elementOffset,
|
|
100
|
+
chunkSize: bytes.length
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
this.elements = [];
|
|
104
|
+
reader.offset = elementOffset;
|
|
105
|
+
for (let index = 0; index < elementCount; index += 1) {
|
|
106
|
+
const stream = layout.hasStream ? reader.readUint32() : 0;
|
|
107
|
+
const semanticNameOffset = reader.readUint32();
|
|
108
|
+
const semanticIndex = reader.readUint32();
|
|
109
|
+
const systemValueType = reader.readUint32();
|
|
110
|
+
const componentType = reader.readUint32();
|
|
111
|
+
const registerIndex = reader.readUint32();
|
|
112
|
+
const mask = reader.readUint8();
|
|
113
|
+
const readWriteMask = reader.readUint8();
|
|
114
|
+
reader.Skip(2);
|
|
115
|
+
const minPrecision = layout.hasMinPrecision ? reader.readUint32() : 0;
|
|
116
|
+
this.elements.push({
|
|
117
|
+
semanticName: this._readSemanticName(bytes, semanticNameOffset, index),
|
|
118
|
+
semanticIndex,
|
|
119
|
+
systemValueType,
|
|
120
|
+
componentType,
|
|
121
|
+
componentTypeName: DxbcComponentTypeNames[componentType] || "unknown",
|
|
122
|
+
registerIndex,
|
|
123
|
+
mask,
|
|
124
|
+
readWriteMask,
|
|
125
|
+
stream,
|
|
126
|
+
minPrecision
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
return this;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Finds a signature element by semantic name and index.
|
|
134
|
+
*
|
|
135
|
+
* @param {string} semanticName Case-insensitive semantic name such as `"TEXCOORD"`.
|
|
136
|
+
* @param {number} [semanticIndex] Semantic index, defaulting to 0.
|
|
137
|
+
* @returns {object|null} Element record or null.
|
|
138
|
+
*/
|
|
139
|
+
findElement(semanticName, semanticIndex = 0) {
|
|
140
|
+
const wanted = String(semanticName).toUpperCase();
|
|
141
|
+
return this.elements.find(element => element.semanticName.toUpperCase() === wanted && element.semanticIndex === semanticIndex) || null;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Resolves a null-terminated semantic name inside the chunk payload.
|
|
146
|
+
*
|
|
147
|
+
* @param {Uint8Array} bytes Chunk payload.
|
|
148
|
+
* @param {number} offset Name offset relative to the chunk payload start.
|
|
149
|
+
* @param {number} index Element index used in error details.
|
|
150
|
+
* @returns {string} Decoded semantic name.
|
|
151
|
+
* @private
|
|
152
|
+
*/
|
|
153
|
+
_readSemanticName(bytes, offset, index) {
|
|
154
|
+
if (offset >= bytes.length) {
|
|
155
|
+
throw new DxbcReadError("DXBC signature semantic name lies outside the chunk", {
|
|
156
|
+
source: this.source,
|
|
157
|
+
fourCC: this.fourCC,
|
|
158
|
+
elementIndex: index,
|
|
159
|
+
offset,
|
|
160
|
+
chunkSize: bytes.length
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
let end = offset;
|
|
164
|
+
while (end < bytes.length && bytes[end] !== 0) {
|
|
165
|
+
end += 1;
|
|
166
|
+
}
|
|
167
|
+
return semanticNameDecoder.decode(bytes.subarray(offset, end));
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
export { DxbcComponentTypeNames, DxbcSignatureChunk };
|
|
172
|
+
//# sourceMappingURL=signature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signature.js","sources":["../../../../../src/formats/dxbc/core/signature.js"],"sourcesContent":["import { DxbcReader } from \"./DxbcReader.js\";\nimport { DxbcReadError } from \"./errors.js\";\n\nconst SIGNATURE_TABLE_HEADER_SIZE = 8;\n\nconst semanticNameDecoder = new TextDecoder(\"latin1\");\n\n/**\n * Per-fourCC signature element layouts.\n *\n * `ISGN`/`OSGN`/`PCSG` use the 24-byte Shader Model 4 layout. `OSG5` prefixes\n * a stream index. `ISG1`/`OSG1`/`PSG1` prefix a stream index and append a\n * minimum-precision field.\n */\nconst SIGNATURE_ELEMENT_LAYOUTS = Object.freeze({\n ISGN: { stride: 24, hasStream: false, hasMinPrecision: false },\n OSGN: { stride: 24, hasStream: false, hasMinPrecision: false },\n PCSG: { stride: 24, hasStream: false, hasMinPrecision: false },\n OSG5: { stride: 28, hasStream: true, hasMinPrecision: false },\n ISG1: { stride: 32, hasStream: true, hasMinPrecision: true },\n OSG1: { stride: 32, hasStream: true, hasMinPrecision: true },\n PSG1: { stride: 32, hasStream: true, hasMinPrecision: true }\n});\n\n/**\n * Register component type names indexed by DXBC signature component-type ids.\n */\nexport const DxbcComponentTypeNames = Object.freeze([ \"unknown\", \"uint32\", \"int32\", \"float32\" ]);\n\n/**\n * DXBC input/output signature chunk reader for `ISGN`-family chunks.\n */\nexport class DxbcSignatureChunk\n{\n /**\n * Creates an empty signature chunk; call a read entry point to populate its parameter records.\n */\n constructor()\n {\n this.fourCC = \"\";\n this.elements = [];\n this.source = \"memory\";\n }\n\n /**\n * Reads a signature chunk payload into semantic/register element records.\n *\n * @param {{fourCC:string,bytes:Uint8Array}} chunk Chunk record from `DxbcContainer`.\n * @param {object} [options] Read options.\n * @param {string} [options.source] Source name used in error details.\n * @returns {DxbcSignatureChunk} This signature.\n */\n Read(chunk, options = {})\n {\n this.fourCC = chunk.fourCC;\n this.source = options.source || \"memory\";\n const layout = SIGNATURE_ELEMENT_LAYOUTS[this.fourCC];\n if (!layout)\n {\n throw new DxbcReadError(\"Unsupported DXBC signature chunk\", {\n source: this.source,\n fourCC: this.fourCC\n });\n }\n\n const bytes = chunk.bytes;\n const reader = new DxbcReader(bytes, { source: this.source });\n const elementCount = reader.readUint32();\n const elementOffset = reader.readUint32() || SIGNATURE_TABLE_HEADER_SIZE;\n if (elementOffset + elementCount * layout.stride > bytes.length)\n {\n throw new DxbcReadError(\"DXBC signature elements lie outside the chunk\", {\n source: this.source,\n fourCC: this.fourCC,\n elementCount,\n elementOffset,\n chunkSize: bytes.length\n });\n }\n\n this.elements = [];\n reader.offset = elementOffset;\n for (let index = 0; index < elementCount; index += 1)\n {\n const stream = layout.hasStream ? reader.readUint32() : 0;\n const semanticNameOffset = reader.readUint32();\n const semanticIndex = reader.readUint32();\n const systemValueType = reader.readUint32();\n const componentType = reader.readUint32();\n const registerIndex = reader.readUint32();\n const mask = reader.readUint8();\n const readWriteMask = reader.readUint8();\n reader.Skip(2);\n const minPrecision = layout.hasMinPrecision ? reader.readUint32() : 0;\n\n this.elements.push({\n semanticName: this._readSemanticName(bytes, semanticNameOffset, index),\n semanticIndex,\n systemValueType,\n componentType,\n componentTypeName: DxbcComponentTypeNames[componentType] || \"unknown\",\n registerIndex,\n mask,\n readWriteMask,\n stream,\n minPrecision\n });\n }\n return this;\n }\n\n /**\n * Finds a signature element by semantic name and index.\n *\n * @param {string} semanticName Case-insensitive semantic name such as `\"TEXCOORD\"`.\n * @param {number} [semanticIndex] Semantic index, defaulting to 0.\n * @returns {object|null} Element record or null.\n */\n findElement(semanticName, semanticIndex = 0)\n {\n const wanted = String(semanticName).toUpperCase();\n return this.elements.find(\n (element) => element.semanticName.toUpperCase() === wanted && element.semanticIndex === semanticIndex\n ) || null;\n }\n\n /**\n * Resolves a null-terminated semantic name inside the chunk payload.\n *\n * @param {Uint8Array} bytes Chunk payload.\n * @param {number} offset Name offset relative to the chunk payload start.\n * @param {number} index Element index used in error details.\n * @returns {string} Decoded semantic name.\n * @private\n */\n _readSemanticName(bytes, offset, index)\n {\n if (offset >= bytes.length)\n {\n throw new DxbcReadError(\"DXBC signature semantic name lies outside the chunk\", {\n source: this.source,\n fourCC: this.fourCC,\n elementIndex: index,\n offset,\n chunkSize: bytes.length\n });\n }\n let end = offset;\n while (end < bytes.length && bytes[end] !== 0)\n {\n end += 1;\n }\n return semanticNameDecoder.decode(bytes.subarray(offset, end));\n }\n}\n"],"names":["SIGNATURE_TABLE_HEADER_SIZE","semanticNameDecoder","TextDecoder","SIGNATURE_ELEMENT_LAYOUTS","Object","freeze","ISGN","stride","hasStream","hasMinPrecision","OSGN","PCSG","OSG5","ISG1","OSG1","PSG1","DxbcComponentTypeNames","DxbcSignatureChunk","constructor","fourCC","elements","source","Read","chunk","options","layout","DxbcReadError","bytes","reader","DxbcReader","elementCount","readUint32","elementOffset","length","chunkSize","offset","index","stream","semanticNameOffset","semanticIndex","systemValueType","componentType","registerIndex","mask","readUint8","readWriteMask","Skip","minPrecision","push","semanticName","_readSemanticName","componentTypeName","findElement","wanted","String","toUpperCase","find","element","elementIndex","end","decode","subarray"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1032,12 +1032,18 @@ function adler32(bytes) {
|
|
|
1032
1032
|
* property arrays.
|
|
1033
1033
|
*/
|
|
1034
1034
|
class DeflateBitReader {
|
|
1035
|
+
/**
|
|
1036
|
+
* Creates a DeflateBitReader over caller-provided FBX bytes and reader
|
|
1037
|
+
* options.
|
|
1038
|
+
*/
|
|
1035
1039
|
constructor(bytes) {
|
|
1036
1040
|
this.bytes = bytes;
|
|
1037
1041
|
this.byteOffset = 0;
|
|
1038
1042
|
this.bitBuffer = 0;
|
|
1039
1043
|
this.bitCount = 0;
|
|
1040
1044
|
}
|
|
1045
|
+
|
|
1046
|
+
/** Reads bits from the current FBX binary reader. */
|
|
1041
1047
|
readBits(count) {
|
|
1042
1048
|
let value = 0,
|
|
1043
1049
|
shift = 0,
|
|
@@ -1059,16 +1065,25 @@ class DeflateBitReader {
|
|
|
1059
1065
|
}
|
|
1060
1066
|
return value;
|
|
1061
1067
|
}
|
|
1068
|
+
|
|
1069
|
+
/**
|
|
1070
|
+
* Moves the compressed-bit cursor to the next byte boundary for the FBX
|
|
1071
|
+
* binary reader.
|
|
1072
|
+
*/
|
|
1062
1073
|
alignByte() {
|
|
1063
1074
|
this.bitBuffer = 0;
|
|
1064
1075
|
this.bitCount = 0;
|
|
1065
1076
|
}
|
|
1077
|
+
|
|
1078
|
+
/** Reads aligned byte from the current FBX binary reader. */
|
|
1066
1079
|
readAlignedByte() {
|
|
1067
1080
|
if (this.byteOffset >= this.bytes.byteLength) {
|
|
1068
1081
|
throw new Error("fbx: compressed array stored block is truncated");
|
|
1069
1082
|
}
|
|
1070
1083
|
return this.bytes[this.byteOffset++];
|
|
1071
1084
|
}
|
|
1085
|
+
|
|
1086
|
+
/** Reads aligned U16 LE from the current FBX binary reader. */
|
|
1072
1087
|
readAlignedU16LE() {
|
|
1073
1088
|
const low = this.readAlignedByte(),
|
|
1074
1089
|
high = this.readAlignedByte();
|
|
@@ -1081,6 +1096,7 @@ class DeflateBitReader {
|
|
|
1081
1096
|
* inflating compressed FBX property arrays.
|
|
1082
1097
|
*/
|
|
1083
1098
|
class DeflateHuffmanTable {
|
|
1099
|
+
/** Creates a DeflateHuffmanTable with caller-provided initial state. */
|
|
1084
1100
|
constructor(lengths) {
|
|
1085
1101
|
this.tables = [];
|
|
1086
1102
|
this.maxBits = 0;
|
|
@@ -1113,6 +1129,11 @@ class DeflateHuffmanTable {
|
|
|
1113
1129
|
this.tables[length][reversed] = symbol;
|
|
1114
1130
|
}
|
|
1115
1131
|
}
|
|
1132
|
+
|
|
1133
|
+
/**
|
|
1134
|
+
* Decodes one symbol through the canonical Deflate Huffman table for the FBX
|
|
1135
|
+
* decoder.
|
|
1136
|
+
*/
|
|
1116
1137
|
decode(reader) {
|
|
1117
1138
|
let code = 0;
|
|
1118
1139
|
for (let length = 1; length <= this.maxBits; length++) {
|