@carbonenginejs/runtime-resource 0.13.0 → 0.14.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 -129
- package/dist/CjsMotherLode.js +1271 -1271
- package/dist/CjsResMan.js +3858 -3858
- 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 +265 -265
- package/dist/format/carbonEffect/CjsCarbonEffectWriter.js +373 -373
- package/dist/format/carbonEffect/buildCarbonEffectContainer.js +182 -182
- package/dist/format/carbonEffect/carbonEffectBackendBlock.js +321 -321
- package/dist/format/carbonEffect/carbonEffectRecords.js +1147 -1147
- package/dist/format/carbonEffect/carbonEffectResourceTransform.js +197 -197
- package/dist/format/compareUtf8.js +36 -36
- package/dist/format/effect/effectBodyInventory.js +146 -146
- package/dist/format/effect/effectPermutationGraph.js +257 -257
- 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 -310
- 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 -175
- package/dist/formats/bnk/core/busNodes.js +252 -252
- package/dist/formats/bnk/core/effectNodes.js +147 -147
- package/dist/formats/bnk/core/eventAction.js +416 -416
- package/dist/formats/bnk/core/globalSettings.js +215 -215
- package/dist/formats/bnk/core/graph.js +137 -137
- package/dist/formats/bnk/core/helpers.js +512 -512
- package/dist/formats/bnk/core/musicNodes.js +540 -540
- package/dist/formats/bnk/core/nodeBase.js +553 -553
- 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 +901 -862
- package/dist/formats/dds/core/helpers.js.map +1 -1
- package/dist/formats/dds/index.js +2 -2
- package/dist/formats/dxbc/CjsDxbcFormat.js +187 -142
- package/dist/formats/dxbc/CjsDxbcFormat.js.map +1 -1
- 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/disassemble.js +240 -0
- package/dist/formats/dxbc/core/disassemble.js.map +1 -0
- 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 +252 -290
- package/dist/formats/gltf/CjsGltfFormat.js.map +1 -1
- package/dist/formats/gltf/core/helpers.js +287 -307
- package/dist/formats/gltf/core/helpers.js.map +1 -1
- 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 +233 -254
- package/dist/formats/hlsl/CjsHlslFormat.js.map +1 -1
- 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 -850
- package/dist/formats/hlsl/core/detailMapFamily.js +128 -128
- 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 -133
- 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 -320
- package/dist/formats/hlsl/core/tr2/resources/HlslShaderPermutation.js +33 -33
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js +423 -416
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js.map +1 -1
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectConstant.js +40 -40
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js +62 -62
- 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 -33
- 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 +232 -253
- package/dist/formats/obj/CjsObjFormat.js.map +1 -1
- package/dist/formats/obj/core/helpers.js +553 -573
- package/dist/formats/obj/core/helpers.js.map +1 -1
- 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 -214
- package/dist/formats/pickle/core/CjsPickleProtocol0Reader.js +551 -551
- package/dist/formats/pickle/index.js +2 -2
- 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 -71
- package/dist/formats/red/core/schema.js +4 -4
- package/dist/formats/red/index.js +2 -2
- package/dist/formats/stl/CjsStlFormat.js +320 -365
- package/dist/formats/stl/CjsStlFormat.js.map +1 -1
- package/dist/formats/stl/core/helpers.js +241 -261
- package/dist/formats/stl/core/helpers.js.map +1 -1
- 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 -199
- package/dist/formats/webgl/core/buildGlslEffectContainer.js +70 -70
- package/dist/formats/webgl/core/effectPackage.js +900 -900
- package/dist/formats/webgl/core/errors.js +27 -27
- package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js +2820 -2820
- package/dist/formats/webgl/core/glsl/DxbcGlslHelpers.js +89 -89
- package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +486 -486
- package/dist/formats/webgl/core/glsl/packedLightFixups.js +98 -98
- package/dist/formats/webgl/core/glslBackendBlock.js +552 -552
- package/dist/formats/webgl/core/glslBackendBodySet.js +243 -243
- package/dist/formats/webgl/core/glslEffectCompleteness.js +85 -85
- package/dist/formats/webgl/core/glslEffectCompleteness.js.map +1 -1
- package/dist/formats/webgl/core/helpers.js +167 -167
- package/dist/formats/webgl/core/inspectGlslEffectContainer.js +122 -122
- package/dist/formats/webgl/core/readGlslEffectContainer.js +202 -256
- package/dist/formats/webgl/core/readGlslEffectContainer.js.map +1 -1
- package/dist/formats/webgl/index.js +2 -2
- package/dist/formats/webgpu/CjsWebgpuFormat.js +357 -357
- package/dist/formats/webgpu/core/buildCarbonEffectContainer.js +89 -89
- package/dist/formats/webgpu/core/carbonWebgpu/CarbonWebgpuContainer.js +354 -354
- package/dist/formats/webgpu/core/carbonWebgpu/containerViews.js +355 -355
- package/dist/formats/webgpu/core/carbonWebgpu/validateContainer.js +90 -90
- package/dist/formats/webgpu/core/effectAnalysis.js +82 -82
- package/dist/formats/webgpu/core/effectBackendBodySet.js +306 -306
- package/dist/formats/webgpu/core/errors.js +20 -20
- package/dist/formats/webgpu/core/helpers.js +443 -443
- 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 -381
- package/dist/formats/webgpu/core/packageEffectSelection.js +164 -164
- 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/buildWgslBindingPlan.js +172 -172
- package/dist/formats/webgpu/core/wgsl/buildWgslSet.js +325 -325
- 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/core/CjsYamlReader.js +400 -400
- package/dist/formats/yaml/core/helpers.js +196 -196
- package/dist/formats/yaml/index.js +2 -2
- package/dist/index.js +64 -64
- package/dist/resource/CjsLoadingObject.js +19 -19
- package/dist/resource/CjsResource.js +801 -801
- package/dist/resource/ResourceHandlerMode.js +14 -14
- 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 -54
- package/dist/resource/resourceBoundary.js +64 -64
- package/dist/resource/shader/Tr2EffectRes.js +336 -336
- 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 -283
- package/dist/resource/shader/Tr2ShaderPermutation.js +43 -43
- package/dist/resource/shader/index.js +17 -17
- package/dist/resource/shader/reflection/Tr2EffectConstant.js +143 -143
- package/dist/resource/shader/reflection/Tr2EffectDefine.js +30 -30
- package/dist/resource/shader/reflection/Tr2EffectDescription.js +114 -114
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js +168 -168
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +125 -125
- package/dist/resource/shader/reflection/Tr2EffectResource.js +120 -120
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js +372 -372
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js +78 -78
- package/dist/resource/shader/reflection/Tr2Pass.js +168 -168
- package/dist/resource/shader/reflection/carbonRecordFields.js +159 -159
- package/dist/resource/shader/reflection/shaderStage.js +22 -22
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js +135 -135
- 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 -89
- package/dist/worker/CjsResManWorker.js +218 -218
- package/dist/worker/CjsResManWorkerLoader.js +437 -437
- package/dist/worker/protocol.js +12 -12
- package/docs/README.md +98 -98
- package/docs/architecture.md +118 -118
- package/docs/concepts/resource-lifecycle.md +226 -226
- package/docs/concepts/shader-resource-model.md +111 -111
- package/docs/concepts/writing-an-engine-adapter.md +115 -115
- package/docs/formats/README.md +138 -138
- package/docs/formats/carbon-effect-container.md +553 -553
- package/docs/formats/dxbc/README.md +68 -68
- package/docs/formats/dxbc/architecture.md +80 -80
- package/docs/formats/dxbc/reference/api.md +105 -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 +66 -65
- package/docs/formats/hlsl/guides/hydrating-json-output.md +60 -60
- package/docs/formats/hlsl/guides/reading-effects.md +68 -64
- package/docs/formats/hlsl/reference/advanced-analysis.md +61 -61
- package/docs/formats/hlsl/reference/api.md +91 -92
- package/docs/formats/hlsl/reference/classes/README.md +11 -11
- package/docs/formats/hlsl/reference/json-graph.md +97 -97
- package/docs/formats/pickle.md +82 -82
- package/docs/formats/provenance.md +196 -196
- package/docs/formats/stl.md +37 -37
- package/docs/formats/webgl/README.md +115 -115
- package/docs/formats/webgl/architecture.md +69 -69
- 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 -890
- 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 -95
- package/docs/formats/webgpu/formats/carbon-webgpu.md +215 -215
- package/docs/formats/webgpu/guides/effect-packaging.md +189 -189
- package/docs/formats/webgpu/reference/api.md +196 -196
- package/docs/formats/webgpu/reference/classes/README.md +9 -9
- package/docs/formats/webgpu/reference/wgsl-compatibility.md +1546 -1546
- package/docs/formats/wwise.md +146 -146
- package/docs/reference/classes/README.md +35 -35
- package/docs/reference/classes/audio.md +30 -30
- package/docs/reference/classes/core.md +216 -216
- package/docs/reference/classes/dropped.md +46 -46
- package/docs/reference/classes/formats.md +944 -944
- 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 -194
- 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 -142
- 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
|
@@ -1,128 +1,128 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Recognises Carbon's Detail-map resource family from reflection alone.
|
|
3
|
-
*
|
|
4
|
-
* Both backends merge `Detail1Map`/`Detail2Map`/`Detail3Map` into a single
|
|
5
|
-
* array texture, and both need to agree exactly on *which* registers take part.
|
|
6
|
-
* That decision is about the resources, not about the shading language, so it
|
|
7
|
-
* lives here rather than twice in the two emitters.
|
|
8
|
-
*
|
|
9
|
-
* What this module does **not** do is prove the merge is safe. Recognising the
|
|
10
|
-
* family is necessary but not sufficient: a backend must also confirm that every
|
|
11
|
-
* use of those registers is a plain sample it can redirect at an array layer. A
|
|
12
|
-
* detail map fetched by integer coordinate, or queried for its size, cannot be
|
|
13
|
-
* merged, and only the code walking the shader can see that. So each backend
|
|
14
|
-
* pairs this recogniser with its own use check and fails closed on anything it
|
|
15
|
-
* does not understand.
|
|
16
|
-
*
|
|
17
|
-
* The WebGL 2 motivation is a hard limit rather than tidiness: the affected
|
|
18
|
-
* shaders sit at exactly 16 textures against a 16-unit guarantee, so merging
|
|
19
|
-
* three maps into one is what creates the headroom lighting needs. See
|
|
20
|
-
* docs/contracts/webgl2-texture-budget.md.
|
|
21
|
-
*/
|
|
22
|
-
|
|
23
|
-
/** Resource names that make up the family, in layer order. */
|
|
24
|
-
const DETAIL_PARAMETERS = Object.freeze(["Detail1Map", "Detail2Map", "Detail3Map"]);
|
|
25
|
-
|
|
26
|
-
/** Carbon's resource type code for a 2D texture. */
|
|
27
|
-
const CARBON_TEXTURE_2D = 2;
|
|
28
|
-
|
|
29
|
-
/** The merged array's name, and the transform family it belongs to. */
|
|
30
|
-
const DETAIL_MAP_ARRAY_NAME = "DetailArrayMap";
|
|
31
|
-
const DETAIL_MAP_ARRAY_FAMILY = "detail-map-array";
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Recognises the detail-map family in one stage's reflected resources.
|
|
35
|
-
*
|
|
36
|
-
* Requires the maps to be contiguous from `Detail1Map` with no gap, in one
|
|
37
|
-
* register space, at strictly ascending registers, and each an ordinary
|
|
38
|
-
* single-element 2D texture declared linear. Anything else returns null: a
|
|
39
|
-
* partial or unusual family is not merged, because guessing produces a shader
|
|
40
|
-
* that links and samples the wrong thing.
|
|
41
|
-
*
|
|
42
|
-
* `isSRGB` must be present and false rather than merely not true. Carbon's
|
|
43
|
-
* reader always sets it, so an absent flag means the caller is passing
|
|
44
|
-
* something other than resource reflection, and the layers of one array texture
|
|
45
|
-
* cannot disagree about whether sampling decodes sRGB.
|
|
46
|
-
*
|
|
47
|
-
* @param {Array<object>} resources Reflected resources, each carrying
|
|
48
|
-
* `registerIndex`, `name`, `type`, `isSRGB`, and optionally `registerSpace`
|
|
49
|
-
* and `arrayElements`. `parameter` is accepted in place of `name`.
|
|
50
|
-
* @param {object} [options] Recognition options.
|
|
51
|
-
* @param {number} [options.registerSpace] Default register space.
|
|
52
|
-
* @returns {object|null} Frozen plan, or null when the family is absent or unusable.
|
|
53
|
-
*/
|
|
54
|
-
function recogniseDetailMapFamily(resources, options = {}) {
|
|
55
|
-
const registerSpace = options.registerSpace ?? 0;
|
|
56
|
-
const byParameter = new Map();
|
|
57
|
-
for (const resource of resources ?? []) {
|
|
58
|
-
const value = resource?.toJSON?.() ?? resource;
|
|
59
|
-
const name = value?.name ?? value?.parameter;
|
|
60
|
-
if (typeof name !== "string" || !DETAIL_PARAMETERS.includes(name)) continue;
|
|
61
|
-
|
|
62
|
-
// A duplicate name means the reflection is not what this recogniser
|
|
63
|
-
// assumes, so it declines rather than picking one.
|
|
64
|
-
if (byParameter.has(name)) return null;
|
|
65
|
-
byParameter.set(name, {
|
|
66
|
-
registerIndex: value.registerIndex,
|
|
67
|
-
value
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
if (byParameter.size < 2) return null;
|
|
71
|
-
|
|
72
|
-
// Contiguous from Detail1Map: {1,2} and {1,2,3} merge, {1,3} does not.
|
|
73
|
-
const parameters = DETAIL_PARAMETERS.slice(0, byParameter.size);
|
|
74
|
-
if (parameters.some(parameter => !byParameter.has(parameter))) return null;
|
|
75
|
-
const layers = [];
|
|
76
|
-
for (const [layer, parameter] of parameters.entries()) {
|
|
77
|
-
const {
|
|
78
|
-
registerIndex,
|
|
79
|
-
value
|
|
80
|
-
} = byParameter.get(parameter);
|
|
81
|
-
if (!Number.isInteger(registerIndex) || registerIndex < 0 || value.type !== CARBON_TEXTURE_2D || (value.arrayElements ?? 1) !== 1 || value.isSRGB !== false) {
|
|
82
|
-
return null;
|
|
83
|
-
}
|
|
84
|
-
const space = value.registerSpace ?? registerSpace;
|
|
85
|
-
|
|
86
|
-
// One array texture occupies one binding, so the layers cannot come
|
|
87
|
-
// from different register spaces.
|
|
88
|
-
if (layer > 0 && space !== layers[layer - 1].registerSpace) return null;
|
|
89
|
-
if (layer > 0 && registerIndex <= layers[layer - 1].registerIndex) return null;
|
|
90
|
-
layers.push({
|
|
91
|
-
parameter,
|
|
92
|
-
layer,
|
|
93
|
-
registerIndex,
|
|
94
|
-
registerSpace: space
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
return Object.freeze({
|
|
98
|
-
family: DETAIL_MAP_ARRAY_FAMILY,
|
|
99
|
-
outputName: DETAIL_MAP_ARRAY_NAME,
|
|
100
|
-
registerSpace,
|
|
101
|
-
layerCount: layers.length,
|
|
102
|
-
layers: Object.freeze(layers.map(entry => Object.freeze(entry))),
|
|
103
|
-
registers: Object.freeze(layers.map(entry => entry.registerIndex))
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* Builds the transform record the container's shared transform section stores.
|
|
109
|
-
*
|
|
110
|
-
* @param {object} plan Recognised family plan.
|
|
111
|
-
* @param {string} layoutKey Enclosing pass key.
|
|
112
|
-
* @returns {object} Transform record.
|
|
113
|
-
*/
|
|
114
|
-
function detailMapTransformFor(plan, layoutKey) {
|
|
115
|
-
return {
|
|
116
|
-
id: `${layoutKey}:${DETAIL_MAP_ARRAY_FAMILY}:sampled-resource:${plan.registerSpace}:${plan.registers[0]}`,
|
|
117
|
-
family: DETAIL_MAP_ARRAY_FAMILY,
|
|
118
|
-
layoutKey,
|
|
119
|
-
inputs: plan.layers.map(entry => ({
|
|
120
|
-
registerSpace: entry.registerSpace,
|
|
121
|
-
registerIndex: entry.registerIndex,
|
|
122
|
-
parameter: entry.parameter
|
|
123
|
-
}))
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
export { DETAIL_MAP_ARRAY_FAMILY, DETAIL_MAP_ARRAY_NAME, detailMapTransformFor, recogniseDetailMapFamily };
|
|
128
|
-
//# sourceMappingURL=detailMapFamily.js.map
|
|
1
|
+
/**
|
|
2
|
+
* Recognises Carbon's Detail-map resource family from reflection alone.
|
|
3
|
+
*
|
|
4
|
+
* Both backends merge `Detail1Map`/`Detail2Map`/`Detail3Map` into a single
|
|
5
|
+
* array texture, and both need to agree exactly on *which* registers take part.
|
|
6
|
+
* That decision is about the resources, not about the shading language, so it
|
|
7
|
+
* lives here rather than twice in the two emitters.
|
|
8
|
+
*
|
|
9
|
+
* What this module does **not** do is prove the merge is safe. Recognising the
|
|
10
|
+
* family is necessary but not sufficient: a backend must also confirm that every
|
|
11
|
+
* use of those registers is a plain sample it can redirect at an array layer. A
|
|
12
|
+
* detail map fetched by integer coordinate, or queried for its size, cannot be
|
|
13
|
+
* merged, and only the code walking the shader can see that. So each backend
|
|
14
|
+
* pairs this recogniser with its own use check and fails closed on anything it
|
|
15
|
+
* does not understand.
|
|
16
|
+
*
|
|
17
|
+
* The WebGL 2 motivation is a hard limit rather than tidiness: the affected
|
|
18
|
+
* shaders sit at exactly 16 textures against a 16-unit guarantee, so merging
|
|
19
|
+
* three maps into one is what creates the headroom lighting needs. See
|
|
20
|
+
* docs/contracts/webgl2-texture-budget.md.
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
/** Resource names that make up the family, in layer order. */
|
|
24
|
+
const DETAIL_PARAMETERS = Object.freeze(["Detail1Map", "Detail2Map", "Detail3Map"]);
|
|
25
|
+
|
|
26
|
+
/** Carbon's resource type code for a 2D texture. */
|
|
27
|
+
const CARBON_TEXTURE_2D = 2;
|
|
28
|
+
|
|
29
|
+
/** The merged array's name, and the transform family it belongs to. */
|
|
30
|
+
const DETAIL_MAP_ARRAY_NAME = "DetailArrayMap";
|
|
31
|
+
const DETAIL_MAP_ARRAY_FAMILY = "detail-map-array";
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Recognises the detail-map family in one stage's reflected resources.
|
|
35
|
+
*
|
|
36
|
+
* Requires the maps to be contiguous from `Detail1Map` with no gap, in one
|
|
37
|
+
* register space, at strictly ascending registers, and each an ordinary
|
|
38
|
+
* single-element 2D texture declared linear. Anything else returns null: a
|
|
39
|
+
* partial or unusual family is not merged, because guessing produces a shader
|
|
40
|
+
* that links and samples the wrong thing.
|
|
41
|
+
*
|
|
42
|
+
* `isSRGB` must be present and false rather than merely not true. Carbon's
|
|
43
|
+
* reader always sets it, so an absent flag means the caller is passing
|
|
44
|
+
* something other than resource reflection, and the layers of one array texture
|
|
45
|
+
* cannot disagree about whether sampling decodes sRGB.
|
|
46
|
+
*
|
|
47
|
+
* @param {Array<object>} resources Reflected resources, each carrying
|
|
48
|
+
* `registerIndex`, `name`, `type`, `isSRGB`, and optionally `registerSpace`
|
|
49
|
+
* and `arrayElements`. `parameter` is accepted in place of `name`.
|
|
50
|
+
* @param {object} [options] Recognition options.
|
|
51
|
+
* @param {number} [options.registerSpace] Default register space.
|
|
52
|
+
* @returns {object|null} Frozen plan, or null when the family is absent or unusable.
|
|
53
|
+
*/
|
|
54
|
+
function recogniseDetailMapFamily(resources, options = {}) {
|
|
55
|
+
const registerSpace = options.registerSpace ?? 0;
|
|
56
|
+
const byParameter = new Map();
|
|
57
|
+
for (const resource of resources ?? []) {
|
|
58
|
+
const value = resource?.toJSON?.() ?? resource;
|
|
59
|
+
const name = value?.name ?? value?.parameter;
|
|
60
|
+
if (typeof name !== "string" || !DETAIL_PARAMETERS.includes(name)) continue;
|
|
61
|
+
|
|
62
|
+
// A duplicate name means the reflection is not what this recogniser
|
|
63
|
+
// assumes, so it declines rather than picking one.
|
|
64
|
+
if (byParameter.has(name)) return null;
|
|
65
|
+
byParameter.set(name, {
|
|
66
|
+
registerIndex: value.registerIndex,
|
|
67
|
+
value
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
if (byParameter.size < 2) return null;
|
|
71
|
+
|
|
72
|
+
// Contiguous from Detail1Map: {1,2} and {1,2,3} merge, {1,3} does not.
|
|
73
|
+
const parameters = DETAIL_PARAMETERS.slice(0, byParameter.size);
|
|
74
|
+
if (parameters.some(parameter => !byParameter.has(parameter))) return null;
|
|
75
|
+
const layers = [];
|
|
76
|
+
for (const [layer, parameter] of parameters.entries()) {
|
|
77
|
+
const {
|
|
78
|
+
registerIndex,
|
|
79
|
+
value
|
|
80
|
+
} = byParameter.get(parameter);
|
|
81
|
+
if (!Number.isInteger(registerIndex) || registerIndex < 0 || value.type !== CARBON_TEXTURE_2D || (value.arrayElements ?? 1) !== 1 || value.isSRGB !== false) {
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
const space = value.registerSpace ?? registerSpace;
|
|
85
|
+
|
|
86
|
+
// One array texture occupies one binding, so the layers cannot come
|
|
87
|
+
// from different register spaces.
|
|
88
|
+
if (layer > 0 && space !== layers[layer - 1].registerSpace) return null;
|
|
89
|
+
if (layer > 0 && registerIndex <= layers[layer - 1].registerIndex) return null;
|
|
90
|
+
layers.push({
|
|
91
|
+
parameter,
|
|
92
|
+
layer,
|
|
93
|
+
registerIndex,
|
|
94
|
+
registerSpace: space
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
return Object.freeze({
|
|
98
|
+
family: DETAIL_MAP_ARRAY_FAMILY,
|
|
99
|
+
outputName: DETAIL_MAP_ARRAY_NAME,
|
|
100
|
+
registerSpace,
|
|
101
|
+
layerCount: layers.length,
|
|
102
|
+
layers: Object.freeze(layers.map(entry => Object.freeze(entry))),
|
|
103
|
+
registers: Object.freeze(layers.map(entry => entry.registerIndex))
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Builds the transform record the container's shared transform section stores.
|
|
109
|
+
*
|
|
110
|
+
* @param {object} plan Recognised family plan.
|
|
111
|
+
* @param {string} layoutKey Enclosing pass key.
|
|
112
|
+
* @returns {object} Transform record.
|
|
113
|
+
*/
|
|
114
|
+
function detailMapTransformFor(plan, layoutKey) {
|
|
115
|
+
return {
|
|
116
|
+
id: `${layoutKey}:${DETAIL_MAP_ARRAY_FAMILY}:sampled-resource:${plan.registerSpace}:${plan.registers[0]}`,
|
|
117
|
+
family: DETAIL_MAP_ARRAY_FAMILY,
|
|
118
|
+
layoutKey,
|
|
119
|
+
inputs: plan.layers.map(entry => ({
|
|
120
|
+
registerSpace: entry.registerSpace,
|
|
121
|
+
registerIndex: entry.registerIndex,
|
|
122
|
+
parameter: entry.parameter
|
|
123
|
+
}))
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export { DETAIL_MAP_ARRAY_FAMILY, DETAIL_MAP_ARRAY_NAME, detailMapTransformFor, recogniseDetailMapFamily };
|
|
128
|
+
//# sourceMappingURL=detailMapFamily.js.map
|