@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,98 +1,92 @@
|
|
|
1
|
-
# API reference
|
|
2
|
-
|
|
3
|
-
Status: Evolving
|
|
4
|
-
Scope: `@carbonenginejs/runtime-resource/formats/hlsl` supported reader API
|
|
5
|
-
Audience: Users and integrators
|
|
6
|
-
Summary: Documents the reader class, options, output modes, and Node adapters.
|
|
7
|
-
|
|
8
|
-
## Imports
|
|
9
|
-
|
|
10
|
-
The package root exports `CjsHlslFormat` as both the default and a named
|
|
11
|
-
export:
|
|
12
|
-
|
|
13
|
-
```js
|
|
14
|
-
import CjsHlslFormat from "@carbonenginejs/runtime-resource/formats/hlsl";
|
|
15
|
-
import { CjsHlslFormat as NamedReader } from "@carbonenginejs/runtime-resource/formats/hlsl";
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
Additional named exports intended for advanced tooling are documented
|
|
19
|
-
separately in [advanced-analysis.md](advanced-analysis.md).
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
- `
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
- `
|
|
48
|
-
- `
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
- `
|
|
53
|
-
- `
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
- [Reading effects](../guides/reading-effects.md)
|
|
95
|
-
- [Hydrating JSON output](../guides/hydrating-json-output.md)
|
|
96
|
-
- [Advanced analysis exports](advanced-analysis.md)
|
|
97
|
-
- [Portable body reflection](portable-reflection.md)
|
|
98
|
-
- [Class catalog](classes/README.md)
|
|
1
|
+
# API reference
|
|
2
|
+
|
|
3
|
+
Status: Evolving
|
|
4
|
+
Scope: `@carbonenginejs/runtime-resource/formats/hlsl` supported reader API
|
|
5
|
+
Audience: Users and integrators
|
|
6
|
+
Summary: Documents the reader class, options, output modes, and Node adapters.
|
|
7
|
+
|
|
8
|
+
## Imports
|
|
9
|
+
|
|
10
|
+
The package root exports `CjsHlslFormat` as both the default and a named
|
|
11
|
+
export:
|
|
12
|
+
|
|
13
|
+
```js
|
|
14
|
+
import CjsHlslFormat from "@carbonenginejs/runtime-resource/formats/hlsl";
|
|
15
|
+
import { CjsHlslFormat as NamedReader } from "@carbonenginejs/runtime-resource/formats/hlsl";
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Additional named exports intended for advanced tooling are documented
|
|
19
|
+
separately in [advanced-analysis.md](advanced-analysis.md).
|
|
20
|
+
|
|
21
|
+
## Constructor
|
|
22
|
+
|
|
23
|
+
```js
|
|
24
|
+
const reader = new CjsHlslFormat({
|
|
25
|
+
emit: "json",
|
|
26
|
+
source: "effect.sm_hi",
|
|
27
|
+
permutation: null,
|
|
28
|
+
classes: {}
|
|
29
|
+
});
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Options are reusable on an instance and can be overridden per call:
|
|
33
|
+
|
|
34
|
+
- `emit`: `"json"` (default), `"metadata"`, or advanced `"raw"` output.
|
|
35
|
+
- `source`: a caller-supplied label used in diagnostics and output.
|
|
36
|
+
- `permutation`: a `Map` or an array of `{ name, value }` selections.
|
|
37
|
+
- `classes`: constructors used for caller-selected JSON-node projection; this
|
|
38
|
+
is not canonical runtime shader hydration.
|
|
39
|
+
|
|
40
|
+
## Instance methods
|
|
41
|
+
|
|
42
|
+
- `SetValues(options)` updates the reusable profile and returns the reader.
|
|
43
|
+
- `GetValues(options)` returns effective values with optional overrides.
|
|
44
|
+
- `SetClasses(classes)` and `SetClass(type, Class)` configure hydration.
|
|
45
|
+
- `GetClass(type)` and `HasClass(type)` inspect hydration registrations.
|
|
46
|
+
- `Read(input, options)` parses input and emits the configured graph.
|
|
47
|
+
- `Inspect(input, options)` returns header and technique summary data.
|
|
48
|
+
- `ToJSON(value)` converts reader output to JSON-compatible data.
|
|
49
|
+
|
|
50
|
+
## Static methods
|
|
51
|
+
|
|
52
|
+
- `CjsHlslFormat.isSupported(input)` performs a header-level support check.
|
|
53
|
+
- `CjsHlslFormat.read(input, options)` performs a one-shot read.
|
|
54
|
+
- `CjsHlslFormat.inspect(input, options)` performs a one-shot inspection.
|
|
55
|
+
- `CjsHlslFormat.toJSON(value)` converts output to JSON-compatible data.
|
|
56
|
+
- `CjsHlslFormat.readFile(path, options)` reads and parses a file in Node.
|
|
57
|
+
|
|
58
|
+
Inputs may be `Uint8Array`, `ArrayBuffer`, `Buffer`, or `DataView` values.
|
|
59
|
+
Supported container versions are 8 through 15.
|
|
60
|
+
|
|
61
|
+
## Constants
|
|
62
|
+
|
|
63
|
+
The class exposes `OUTPUT_JSON`, `OUTPUT_METADATA`, `OUTPUT_RAW`,
|
|
64
|
+
`CLASS_KEYS`, `type`, `mediaTypes`, `inputTypes`, `outputTypes`, and
|
|
65
|
+
`debugOutputTypes`. `inputTypes` contains `sm_hi`, `sm_lo`, and `sm_depth`.
|
|
66
|
+
|
|
67
|
+
## Output stability
|
|
68
|
+
|
|
69
|
+
The `json` and `metadata` modes are the supported data contracts described in
|
|
70
|
+
[json-graph.md](json-graph.md). `raw` returns internal parser-DTO
|
|
71
|
+
`Tr2EffectRes` objects, not the canonical runtime-resource class, and may
|
|
72
|
+
change without a major version bump.
|
|
73
|
+
|
|
74
|
+
## Repository metadata adapter
|
|
75
|
+
|
|
76
|
+
The repository provides a development script that writes metadata JSON. It is
|
|
77
|
+
not installed as a package `bin`:
|
|
78
|
+
|
|
79
|
+
```sh
|
|
80
|
+
npm run metadata:hlsl -- effect.sm_hi
|
|
81
|
+
npm run metadata:hlsl -- effect.sm_hi effect.json
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
When the output path is omitted, the CLI writes `<input-name>.json` in the
|
|
85
|
+
current working directory.
|
|
86
|
+
|
|
87
|
+
## Related documentation
|
|
88
|
+
|
|
89
|
+
- [Reading effects](../guides/reading-effects.md)
|
|
90
|
+
- [Hydrating JSON output](../guides/hydrating-json-output.md)
|
|
91
|
+
- [Advanced analysis exports](advanced-analysis.md)
|
|
92
|
+
- [Class catalog](classes/README.md)
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
# Class catalog
|
|
2
|
-
|
|
3
|
-
Status: Deprecated
|
|
4
|
-
Scope: `@carbonenginejs/runtime-resource/formats/hlsl` maintained classes
|
|
5
|
-
Audience: Users, maintainers, and automated readers
|
|
6
|
-
Summary: Points to the canonical package-wide catalogs after format-package consolidation.
|
|
7
|
-
|
|
8
|
-
The maintained HLSL format entries now live in the
|
|
9
|
-
[package-wide formats class catalog](../../../../reference/classes/formats.md#hlsl).
|
|
10
|
-
Canonical runtime effect-resource and shader-reflection entries live in the
|
|
11
|
-
[resources class catalog](../../../../reference/classes/resources.md).
|
|
1
|
+
# Class catalog
|
|
2
|
+
|
|
3
|
+
Status: Deprecated
|
|
4
|
+
Scope: `@carbonenginejs/runtime-resource/formats/hlsl` maintained classes
|
|
5
|
+
Audience: Users, maintainers, and automated readers
|
|
6
|
+
Summary: Points to the canonical package-wide catalogs after format-package consolidation.
|
|
7
|
+
|
|
8
|
+
The maintained HLSL format entries now live in the
|
|
9
|
+
[package-wide formats class catalog](../../../../reference/classes/formats.md#hlsl).
|
|
10
|
+
Canonical runtime effect-resource and shader-reflection entries live in the
|
|
11
|
+
[resources class catalog](../../../../reference/classes/resources.md).
|
|
@@ -1,100 +1,97 @@
|
|
|
1
|
-
# JSON and metadata graphs
|
|
2
|
-
|
|
3
|
-
Status: Evolving
|
|
4
|
-
Scope: `@carbonenginejs/runtime-resource/formats/hlsl` emitted data
|
|
5
|
-
Audience: Users and integrators
|
|
6
|
-
Summary: Documents the default JSON graph, compact metadata graph, and permutation selection.
|
|
7
|
-
|
|
8
|
-
## Default JSON graph
|
|
9
|
-
|
|
10
|
-
`emit: "json"` is the default:
|
|
11
|
-
|
|
12
|
-
```text
|
|
13
|
-
Root
|
|
14
|
-
|- version, compilerVersion, sourcePath, bodyCount, loadError
|
|
15
|
-
|- permutations: Permutation[]
|
|
16
|
-
`- effect: EffectDescription | null
|
|
17
|
-
|- version, effectName, annotations, readError
|
|
18
|
-
`- techniques: Technique[]
|
|
19
|
-
`- passes: Pass[]
|
|
20
|
-
|- renderStates: { key, value }[]
|
|
21
|
-
`- stageInputs: (StageInput | null)[]
|
|
22
|
-
|- constants: Constant[]
|
|
23
|
-
|- resources: Resource[]
|
|
24
|
-
|- uavs: Resource[]
|
|
25
|
-
|- samplers: Sampler[]
|
|
26
|
-
|- signature
|
|
27
|
-
`- bytecode: ShaderBytecode | null
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
Bytecode values are opaque payloads. A compatible bytecode-format package
|
|
31
|
-
must decode their instruction streams.
|
|
32
|
-
|
|
33
|
-
## Permutation selection
|
|
34
|
-
|
|
35
|
-
By default, `effect` represents the container's default option set. Select
|
|
36
|
-
another compiled body with an array or `Map`:
|
|
37
|
-
|
|
38
|
-
```js
|
|
39
|
-
const effect = CjsHlslFormat.read(bytes, {
|
|
40
|
-
permutation: [
|
|
41
|
-
{ name: "BLEND_MODE", value: "TRANSPARENT" }
|
|
42
|
-
]
|
|
43
|
-
});
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
## Metadata graph
|
|
47
|
-
|
|
48
|
-
`emit: "metadata"` returns compact inspection data without bytecode,
|
|
49
|
-
constant-value bytes, or runtime handles:
|
|
50
|
-
|
|
51
|
-
```text
|
|
52
|
-
MetadataRoot
|
|
53
|
-
|- version, compilerVersion, sourcePath, bodyCount, loadError
|
|
54
|
-
|- permutations: Permutation[]
|
|
55
|
-
|- bodyIndex
|
|
56
|
-
|- selectedOptions: Option[]
|
|
57
|
-
`- effect: MetadataEffect | null
|
|
58
|
-
`- techniques: Technique[]
|
|
59
|
-
`- passes: Pass[]
|
|
60
|
-
|- renderStates: RenderState[]
|
|
61
|
-
`- stageInputs: (StageInput | null)[]
|
|
62
|
-
|- constantValueSize
|
|
63
|
-
|- constants: Constant[]
|
|
64
|
-
|- resources: Resource[]
|
|
65
|
-
|- uavs: Resource[]
|
|
66
|
-
|- samplers: Sampler[]
|
|
67
|
-
|- annotations
|
|
68
|
-
`- signature
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
Each render-state record retains its numeric `key` and `value`. Known state
|
|
72
|
-
types can also include readable or typed fields such as `name`, `valueName`,
|
|
73
|
-
`valueFloat`, `valueHex`, or `valueFlags`.
|
|
74
|
-
|
|
75
|
-
## Raw graph
|
|
76
|
-
|
|
77
|
-
`emit: "raw"` returns the internal parser-DTO `Tr2EffectRes` graph. It is not
|
|
78
|
-
the canonical runtime-resource class. It allows advanced callers to resolve
|
|
79
|
-
multiple permutations after one parse, but it is not a stable or
|
|
80
|
-
serialization-safe schema.
|
|
81
|
-
|
|
82
|
-
Raw stage and library inputs retain authored `sourceConstantValueSize` /
|
|
83
|
-
`sourceConstantValues` separately from Carbon-compatible mutable constant
|
|
84
|
-
buffers. Libraries retain their source `cjsShaderBytecode` directly.
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
- [
|
|
98
|
-
- [Advanced analysis exports](advanced-analysis.md)
|
|
99
|
-
- [Portable body reflection](portable-reflection.md)
|
|
100
|
-
- [Reading effects](../guides/reading-effects.md)
|
|
1
|
+
# JSON and metadata graphs
|
|
2
|
+
|
|
3
|
+
Status: Evolving
|
|
4
|
+
Scope: `@carbonenginejs/runtime-resource/formats/hlsl` emitted data
|
|
5
|
+
Audience: Users and integrators
|
|
6
|
+
Summary: Documents the default JSON graph, compact metadata graph, and permutation selection.
|
|
7
|
+
|
|
8
|
+
## Default JSON graph
|
|
9
|
+
|
|
10
|
+
`emit: "json"` is the default:
|
|
11
|
+
|
|
12
|
+
```text
|
|
13
|
+
Root
|
|
14
|
+
|- version, compilerVersion, sourcePath, bodyCount, loadError
|
|
15
|
+
|- permutations: Permutation[]
|
|
16
|
+
`- effect: EffectDescription | null
|
|
17
|
+
|- version, effectName, annotations, readError
|
|
18
|
+
`- techniques: Technique[]
|
|
19
|
+
`- passes: Pass[]
|
|
20
|
+
|- renderStates: { key, value }[]
|
|
21
|
+
`- stageInputs: (StageInput | null)[]
|
|
22
|
+
|- constants: Constant[]
|
|
23
|
+
|- resources: Resource[]
|
|
24
|
+
|- uavs: Resource[]
|
|
25
|
+
|- samplers: Sampler[]
|
|
26
|
+
|- signature
|
|
27
|
+
`- bytecode: ShaderBytecode | null
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Bytecode values are opaque payloads. A compatible bytecode-format package
|
|
31
|
+
must decode their instruction streams.
|
|
32
|
+
|
|
33
|
+
## Permutation selection
|
|
34
|
+
|
|
35
|
+
By default, `effect` represents the container's default option set. Select
|
|
36
|
+
another compiled body with an array or `Map`:
|
|
37
|
+
|
|
38
|
+
```js
|
|
39
|
+
const effect = CjsHlslFormat.read(bytes, {
|
|
40
|
+
permutation: [
|
|
41
|
+
{ name: "BLEND_MODE", value: "TRANSPARENT" }
|
|
42
|
+
]
|
|
43
|
+
});
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Metadata graph
|
|
47
|
+
|
|
48
|
+
`emit: "metadata"` returns compact inspection data without bytecode,
|
|
49
|
+
constant-value bytes, or runtime handles:
|
|
50
|
+
|
|
51
|
+
```text
|
|
52
|
+
MetadataRoot
|
|
53
|
+
|- version, compilerVersion, sourcePath, bodyCount, loadError
|
|
54
|
+
|- permutations: Permutation[]
|
|
55
|
+
|- bodyIndex
|
|
56
|
+
|- selectedOptions: Option[]
|
|
57
|
+
`- effect: MetadataEffect | null
|
|
58
|
+
`- techniques: Technique[]
|
|
59
|
+
`- passes: Pass[]
|
|
60
|
+
|- renderStates: RenderState[]
|
|
61
|
+
`- stageInputs: (StageInput | null)[]
|
|
62
|
+
|- constantValueSize
|
|
63
|
+
|- constants: Constant[]
|
|
64
|
+
|- resources: Resource[]
|
|
65
|
+
|- uavs: Resource[]
|
|
66
|
+
|- samplers: Sampler[]
|
|
67
|
+
|- annotations
|
|
68
|
+
`- signature
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Each render-state record retains its numeric `key` and `value`. Known state
|
|
72
|
+
types can also include readable or typed fields such as `name`, `valueName`,
|
|
73
|
+
`valueFloat`, `valueHex`, or `valueFlags`.
|
|
74
|
+
|
|
75
|
+
## Raw graph
|
|
76
|
+
|
|
77
|
+
`emit: "raw"` returns the internal parser-DTO `Tr2EffectRes` graph. It is not
|
|
78
|
+
the canonical runtime-resource class. It allows advanced callers to resolve
|
|
79
|
+
multiple permutations after one parse, but it is not a stable or
|
|
80
|
+
serialization-safe schema.
|
|
81
|
+
|
|
82
|
+
Raw stage and library inputs retain authored `sourceConstantValueSize` /
|
|
83
|
+
`sourceConstantValues` separately from Carbon-compatible mutable constant
|
|
84
|
+
buffers. Libraries retain their source `cjsShaderBytecode` directly.
|
|
85
|
+
|
|
86
|
+
## Compatibility and failures
|
|
87
|
+
|
|
88
|
+
The reader supports compiled effect versions 8 through 15. The root or
|
|
89
|
+
selected effect can contain format-defined error fields when a compiled body
|
|
90
|
+
cannot be decoded. Invalid input reads and unsupported layout decisions throw
|
|
91
|
+
rather than being filled with guessed values.
|
|
92
|
+
|
|
93
|
+
## Related documentation
|
|
94
|
+
|
|
95
|
+
- [API reference](api.md)
|
|
96
|
+
- [Advanced analysis exports](advanced-analysis.md)
|
|
97
|
+
- [Reading effects](../guides/reading-effects.md)
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Data-only pickle protocol 0
|
|
2
|
+
|
|
3
|
+
Status: Experimental
|
|
4
|
+
Scope: `@carbonenginejs/runtime-resource/formats/pickle`
|
|
5
|
+
Audience: Resource integrators handling inert legacy data caches
|
|
6
|
+
Summary: Defines safe protocol-0 pickle decoding without Python object reconstruction.
|
|
7
|
+
|
|
8
|
+
## Boundary
|
|
9
|
+
|
|
10
|
+
`CjsPickleFormat` reads `.pickle` bytes through an internal protocol-0 reader.
|
|
11
|
+
It is a data decoder, not a general Python unpickler. It never imports a
|
|
12
|
+
module, resolves a global, calls a reducer, follows a persistent ID, or
|
|
13
|
+
constructs a Python object. Every executable, object-bearing, newer-protocol,
|
|
14
|
+
or unknown opcode fails at its exact byte offset.
|
|
15
|
+
|
|
16
|
+
The initial reader accepts the protocol-0 scalar, string, list, tuple,
|
|
17
|
+
dictionary, memo, append, and set-item operations required by inert data
|
|
18
|
+
graphs. Lists and tuples become JavaScript arrays. Integers outside the safe
|
|
19
|
+
JavaScript range become lossless decimal strings. Dictionary keys must be
|
|
20
|
+
strings or safe integers; collisions introduced by JSON key normalization are
|
|
21
|
+
rejected.
|
|
22
|
+
|
|
23
|
+
## Outputs
|
|
24
|
+
|
|
25
|
+
The default `json` output returns a plain JSON-compatible graph and rejects
|
|
26
|
+
cycles. `payload` and debug `raw` output preserve memo aliases and may contain
|
|
27
|
+
cycles:
|
|
28
|
+
|
|
29
|
+
```js
|
|
30
|
+
import { CjsPickleFormat } from
|
|
31
|
+
"@carbonenginejs/runtime-resource/formats/pickle";
|
|
32
|
+
|
|
33
|
+
const values = CjsPickleFormat.read(bytes);
|
|
34
|
+
const exactGraph = CjsPickleFormat.read(bytes, { emit: "payload" });
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
`CjsPickleFormat.supportedProtocols` currently contains only protocol `0`.
|
|
38
|
+
The public format name follows the `.pickle` extension so future protocol
|
|
39
|
+
dispatch can be added without changing resource registration. Unsupported
|
|
40
|
+
protocols continue to fail closed until their data-only semantics are
|
|
41
|
+
implemented and tested.
|
|
42
|
+
|
|
43
|
+
## Resource registration
|
|
44
|
+
|
|
45
|
+
The format contains no domain target policy. A caller registers the extension
|
|
46
|
+
and decides whether an exact resource path returns raw decoded data or hydrates
|
|
47
|
+
a target:
|
|
48
|
+
|
|
49
|
+
```js
|
|
50
|
+
import {
|
|
51
|
+
CjsLoadingObject,
|
|
52
|
+
CjsResMan
|
|
53
|
+
} from "@carbonenginejs/runtime-resource";
|
|
54
|
+
import { CjsPickleFormat } from
|
|
55
|
+
"@carbonenginejs/runtime-resource/formats/pickle";
|
|
56
|
+
|
|
57
|
+
const resMan = new CjsResMan({ source });
|
|
58
|
+
|
|
59
|
+
resMan.RegisterExtension("pickle", CjsLoadingObject, {
|
|
60
|
+
Format: CjsPickleFormat,
|
|
61
|
+
Identify(_values, context) {
|
|
62
|
+
return context.resFilePath === "res:/data/profile.pickle";
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Resource paths, extensions, and filenames in the context are normalized to
|
|
68
|
+
lowercase. URL-backed sources additionally expose the exact translated URL.
|
|
69
|
+
|
|
70
|
+
## Limits
|
|
71
|
+
|
|
72
|
+
Every read is bounded by configurable positive safe-integer limits for input
|
|
73
|
+
bytes, operations, stack depth, memo size and IDs, container items, and string
|
|
74
|
+
bytes. Defaults are conservative for ordinary resource files. Callers may
|
|
75
|
+
lower limits per profile or read; raising them remains an explicit trust and
|
|
76
|
+
memory decision.
|
|
77
|
+
|
|
78
|
+
## Related documentation
|
|
79
|
+
|
|
80
|
+
- [Format subpaths](README.md)
|
|
81
|
+
- [Queues, publication, and registration](../reference/queues.md)
|
|
82
|
+
- [Browser worker execution](../reference/workers.md)
|