@carbonenginejs/runtime-resource 0.12.1 → 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,54 +1,54 @@
|
|
|
1
|
-
# Package documentation
|
|
2
|
-
|
|
3
|
-
Status: Evolving
|
|
4
|
-
Scope: `@carbonenginejs/runtime-resource/formats/hlsl`
|
|
5
|
-
Audience: Users and integrators
|
|
6
|
-
Summary: Documentation home for the compiled Carbon/Trinity effect-container reader.
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
|
|
10
|
-
`@carbonenginejs/runtime-resource/formats/hlsl` reads versions 8 through 15 of the compiled
|
|
11
|
-
effect container used by Carbon/Trinity. It resolves a permutation and exposes
|
|
12
|
-
techniques, passes, stage metadata, render states, signatures, and opaque
|
|
13
|
-
shader bytecode as JavaScript data.
|
|
14
|
-
|
|
15
|
-
```js
|
|
16
|
-
import CjsHlslFormat from "@carbonenginejs/runtime-resource/formats/hlsl";
|
|
17
|
-
|
|
18
|
-
const metadata = CjsHlslFormat.read(bytes, {
|
|
19
|
-
emit: "metadata"
|
|
20
|
-
});
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
## Where it fits
|
|
24
|
-
|
|
25
|
-
- Use this package for the effect container and its metadata.
|
|
26
|
-
- Use `@carbonenginejs/runtime-resource/formats/dxbc` to decode supported embedded Direct3D
|
|
27
|
-
shader bytecode.
|
|
28
|
-
- Translation backends such as `@carbonenginejs/runtime-resource/formats/webgpu` can consume
|
|
29
|
-
the metadata and bytecode through their own integration layers.
|
|
30
|
-
- `@carbonenginejs/runtime-resource`
|
|
31
|
-
owns canonical `Tr2EffectRes`/`Tr2Shader`
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
- [
|
|
42
|
-
- [
|
|
43
|
-
- [
|
|
44
|
-
- [
|
|
45
|
-
- [
|
|
46
|
-
- [
|
|
47
|
-
- [Class catalog](reference/classes/README.md)
|
|
48
|
-
|
|
49
|
-
## Compatibility
|
|
50
|
-
|
|
51
|
-
Supported input types are `.sm_hi`, `.sm_lo`, and `.sm_depth` compiled effect
|
|
52
|
-
bodies. Unsupported headers, invalid offsets, truncated data, and invalid
|
|
53
|
-
permutation selections fail with an error rather than returning a partial
|
|
54
|
-
success value.
|
|
1
|
+
# Package documentation
|
|
2
|
+
|
|
3
|
+
Status: Evolving
|
|
4
|
+
Scope: `@carbonenginejs/runtime-resource/formats/hlsl`
|
|
5
|
+
Audience: Users and integrators
|
|
6
|
+
Summary: Documentation home for the compiled Carbon/Trinity effect-container reader.
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
|
|
10
|
+
`@carbonenginejs/runtime-resource/formats/hlsl` reads versions 8 through 15 of the compiled
|
|
11
|
+
effect container used by Carbon/Trinity. It resolves a permutation and exposes
|
|
12
|
+
techniques, passes, stage metadata, render states, signatures, and opaque
|
|
13
|
+
shader bytecode as JavaScript data.
|
|
14
|
+
|
|
15
|
+
```js
|
|
16
|
+
import CjsHlslFormat from "@carbonenginejs/runtime-resource/formats/hlsl";
|
|
17
|
+
|
|
18
|
+
const metadata = CjsHlslFormat.read(bytes, {
|
|
19
|
+
emit: "metadata"
|
|
20
|
+
});
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Where it fits
|
|
24
|
+
|
|
25
|
+
- Use this package for the effect container and its metadata.
|
|
26
|
+
- Use `@carbonenginejs/runtime-resource/formats/dxbc` to decode supported embedded Direct3D
|
|
27
|
+
shader bytecode.
|
|
28
|
+
- Translation backends such as `@carbonenginejs/runtime-resource/formats/webgpu` can consume
|
|
29
|
+
the metadata and bytecode through their own integration layers.
|
|
30
|
+
- `@carbonenginejs/runtime-resource` reads the compiled container directly and
|
|
31
|
+
owns canonical `Tr2EffectRes`/`Tr2Shader` construction, selection, and
|
|
32
|
+
caching.
|
|
33
|
+
- `@carbonenginejs/runtime-trinity` consumes that shader graph through its
|
|
34
|
+
mutable effect/material facade, parameters, options, and sampler overrides.
|
|
35
|
+
|
|
36
|
+
The package does not compile HLSL source, translate shader instructions,
|
|
37
|
+
construct canonical runtime model instances, or provide a rendering runtime.
|
|
38
|
+
|
|
39
|
+
## Start here
|
|
40
|
+
|
|
41
|
+
- [Architecture](architecture.md)
|
|
42
|
+
- [Reading effects](guides/reading-effects.md)
|
|
43
|
+
- [Hydrating JSON output](guides/hydrating-json-output.md)
|
|
44
|
+
- [API reference](reference/api.md)
|
|
45
|
+
- [Advanced analysis exports](reference/advanced-analysis.md)
|
|
46
|
+
- [JSON graph reference](reference/json-graph.md)
|
|
47
|
+
- [Class catalog](reference/classes/README.md)
|
|
48
|
+
|
|
49
|
+
## Compatibility
|
|
50
|
+
|
|
51
|
+
Supported input types are `.sm_hi`, `.sm_lo`, and `.sm_depth` compiled effect
|
|
52
|
+
bodies. Unsupported headers, invalid offsets, truncated data, and invalid
|
|
53
|
+
permutation selections fail with an error rather than returning a partial
|
|
54
|
+
success value.
|
|
@@ -1,67 +1,65 @@
|
|
|
1
|
-
# Architecture
|
|
2
|
-
|
|
3
|
-
Status: Evolving
|
|
4
|
-
Scope: `@carbonenginejs/runtime-resource/formats/hlsl` implementation boundaries
|
|
5
|
-
Audience: Integrators and maintainers
|
|
6
|
-
Summary: Explains the package boundary, parsing flow, output modes, and platform adapters.
|
|
7
|
-
|
|
8
|
-
## Ownership boundary
|
|
9
|
-
|
|
10
|
-
The package owns the compiled Carbon/Trinity effect-container boundary:
|
|
11
|
-
headers, string tables, permutation selection, effect descriptions,
|
|
12
|
-
techniques, passes, render states, stage metadata, signatures, and the
|
|
13
|
-
packaging of opaque shader bytecode.
|
|
14
|
-
|
|
15
|
-
It does not decode shader instructions, compile source code, or own runtime
|
|
16
|
-
resource binding. Those responsibilities remain with bytecode-format,
|
|
17
|
-
translation, and runtime packages.
|
|
18
|
-
|
|
19
|
-
## Read flow
|
|
20
|
-
|
|
21
|
-
```text
|
|
22
|
-
caller bytes
|
|
23
|
-
-> input and option normalization
|
|
24
|
-
-> effect header, strings, and permutation axes
|
|
25
|
-
-> selected compiled body
|
|
26
|
-
-> techniques, passes, and stage metadata
|
|
27
|
-
-> json | metadata | raw output
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
`src/CjsHlslFormat.js` is the supported reader boundary. Binary
|
|
31
|
-
format-shaped compatibility models live below
|
|
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
|
-
in raw or JSON-oriented inspection data where the format model supports that
|
|
67
|
-
state.
|
|
1
|
+
# Architecture
|
|
2
|
+
|
|
3
|
+
Status: Evolving
|
|
4
|
+
Scope: `@carbonenginejs/runtime-resource/formats/hlsl` implementation boundaries
|
|
5
|
+
Audience: Integrators and maintainers
|
|
6
|
+
Summary: Explains the package boundary, parsing flow, output modes, and platform adapters.
|
|
7
|
+
|
|
8
|
+
## Ownership boundary
|
|
9
|
+
|
|
10
|
+
The package owns the compiled Carbon/Trinity effect-container boundary:
|
|
11
|
+
headers, string tables, permutation selection, effect descriptions,
|
|
12
|
+
techniques, passes, render states, stage metadata, signatures, and the
|
|
13
|
+
packaging of opaque shader bytecode.
|
|
14
|
+
|
|
15
|
+
It does not decode shader instructions, compile source code, or own runtime
|
|
16
|
+
resource binding. Those responsibilities remain with bytecode-format,
|
|
17
|
+
translation, and runtime packages.
|
|
18
|
+
|
|
19
|
+
## Read flow
|
|
20
|
+
|
|
21
|
+
```text
|
|
22
|
+
caller bytes
|
|
23
|
+
-> input and option normalization
|
|
24
|
+
-> effect header, strings, and permutation axes
|
|
25
|
+
-> selected compiled body
|
|
26
|
+
-> techniques, passes, and stage metadata
|
|
27
|
+
-> json | metadata | raw output
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
`src/formats/hlsl/CjsHlslFormat.js` is the supported reader boundary. Binary
|
|
31
|
+
utilities and format-shaped compatibility models live below
|
|
32
|
+
`src/formats/hlsl/core` and `src/formats/hlsl/core/tr2`.
|
|
33
|
+
Their same-named `Tr2*` classes are internal parser DTOs, not canonical runtime
|
|
34
|
+
model identity, and are not independent package entry points.
|
|
35
|
+
|
|
36
|
+
## Output modes
|
|
37
|
+
|
|
38
|
+
- `json` is the default interoperable data graph and may include opaque
|
|
39
|
+
bytecode and constant-value bytes.
|
|
40
|
+
- `metadata` is a compact, bytecode-free graph for inspection and pipeline
|
|
41
|
+
planning.
|
|
42
|
+
- `raw` exposes internal effect-model instances for advanced tooling and is
|
|
43
|
+
not a stable schema.
|
|
44
|
+
|
|
45
|
+
`runtime-resource` owns canonical `Tr2EffectRes`/`Tr2Shader` construction,
|
|
46
|
+
permutation selection, and caching, reading the compiled container directly. `runtime-trinity` owns the mutable
|
|
47
|
+
effect/material facade, parameters, authored options, and sampler overrides.
|
|
48
|
+
Engines own GPU realization.
|
|
49
|
+
|
|
50
|
+
The graph shapes are documented in
|
|
51
|
+
[reference/json-graph.md](reference/json-graph.md).
|
|
52
|
+
|
|
53
|
+
## Platform boundary
|
|
54
|
+
|
|
55
|
+
`read`, `inspect`, and `toJSON` operate on caller-provided bytes and work
|
|
56
|
+
without filesystem access. `readFile` and the CLI are Node-specific adapters.
|
|
57
|
+
The package has no runtime dependencies.
|
|
58
|
+
|
|
59
|
+
## Error boundary
|
|
60
|
+
|
|
61
|
+
Structural failures include the source label and read context where available.
|
|
62
|
+
The reader rejects unsupported versions and unsafe reads instead of silently
|
|
63
|
+
guessing a layout. A selected compiled body can record its own decode failure
|
|
64
|
+
in raw or JSON-oriented inspection data where the format model supports that
|
|
65
|
+
state.
|
|
@@ -1,62 +1,60 @@
|
|
|
1
|
-
# Hydrating JSON output
|
|
2
|
-
|
|
3
|
-
Status: Evolving
|
|
4
|
-
Scope: `@carbonenginejs/runtime-resource/formats/hlsl` JSON node hydration
|
|
5
|
-
Audience: Advanced users and integrators
|
|
6
|
-
Summary: Explains how callers can replace selected plain JSON nodes with their own constructors.
|
|
7
|
-
|
|
8
|
-
## Register constructors
|
|
9
|
-
|
|
10
|
-
The default `json` output uses plain objects. The `classes` option can
|
|
11
|
-
instantiate selected node kinds with caller-provided constructors:
|
|
12
|
-
|
|
13
|
-
```js
|
|
14
|
-
import CjsHlslFormat from "@carbonenginejs/runtime-resource/formats/hlsl";
|
|
15
|
-
|
|
16
|
-
const effect = CjsHlslFormat.read(bytes, {
|
|
17
|
-
classes: {
|
|
18
|
-
Technique: MyTechnique,
|
|
19
|
-
StageInput: MyStageInput
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
Supported keys are exposed as `CjsHlslFormat.CLASS_KEYS`:
|
|
25
|
-
|
|
26
|
-
```text
|
|
27
|
-
Root
|
|
28
|
-
Permutation
|
|
29
|
-
EffectDescription
|
|
30
|
-
Technique
|
|
31
|
-
Pass
|
|
32
|
-
StageInput
|
|
33
|
-
Constant
|
|
34
|
-
Resource
|
|
35
|
-
Sampler
|
|
36
|
-
ShaderBytecode
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
## Reuse a profile
|
|
40
|
-
|
|
41
|
-
```js
|
|
42
|
-
const reader = new CjsHlslFormat();
|
|
43
|
-
|
|
44
|
-
reader.SetClass("Technique", MyTechnique);
|
|
45
|
-
reader.SetClasses({ StageInput: MyStageInput });
|
|
46
|
-
|
|
47
|
-
reader.HasClass("Technique");
|
|
48
|
-
reader.GetClass("Technique");
|
|
49
|
-
|
|
50
|
-
const effect = reader.Read(bytes);
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
Hydration changes object prototypes, not the documented field shape. Nested
|
|
54
|
-
records without a class key remain plain JSON-compatible data. Depending on
|
|
55
|
-
the caller's constructors as a serialization schema is discouraged; persist
|
|
56
|
-
the documented graph fields instead.
|
|
57
|
-
|
|
58
|
-
This feature is caller-selected JSON projection only. It does not
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
`CJS_EFFECT_BODY_REFLECTION` hydration belongs to
|
|
62
|
-
`@carbonenginejs/runtime-resource`.
|
|
1
|
+
# Hydrating JSON output
|
|
2
|
+
|
|
3
|
+
Status: Evolving
|
|
4
|
+
Scope: `@carbonenginejs/runtime-resource/formats/hlsl` JSON node hydration
|
|
5
|
+
Audience: Advanced users and integrators
|
|
6
|
+
Summary: Explains how callers can replace selected plain JSON nodes with their own constructors.
|
|
7
|
+
|
|
8
|
+
## Register constructors
|
|
9
|
+
|
|
10
|
+
The default `json` output uses plain objects. The `classes` option can
|
|
11
|
+
instantiate selected node kinds with caller-provided constructors:
|
|
12
|
+
|
|
13
|
+
```js
|
|
14
|
+
import CjsHlslFormat from "@carbonenginejs/runtime-resource/formats/hlsl";
|
|
15
|
+
|
|
16
|
+
const effect = CjsHlslFormat.read(bytes, {
|
|
17
|
+
classes: {
|
|
18
|
+
Technique: MyTechnique,
|
|
19
|
+
StageInput: MyStageInput
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Supported keys are exposed as `CjsHlslFormat.CLASS_KEYS`:
|
|
25
|
+
|
|
26
|
+
```text
|
|
27
|
+
Root
|
|
28
|
+
Permutation
|
|
29
|
+
EffectDescription
|
|
30
|
+
Technique
|
|
31
|
+
Pass
|
|
32
|
+
StageInput
|
|
33
|
+
Constant
|
|
34
|
+
Resource
|
|
35
|
+
Sampler
|
|
36
|
+
ShaderBytecode
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Reuse a profile
|
|
40
|
+
|
|
41
|
+
```js
|
|
42
|
+
const reader = new CjsHlslFormat();
|
|
43
|
+
|
|
44
|
+
reader.SetClass("Technique", MyTechnique);
|
|
45
|
+
reader.SetClasses({ StageInput: MyStageInput });
|
|
46
|
+
|
|
47
|
+
reader.HasClass("Technique");
|
|
48
|
+
reader.GetClass("Technique");
|
|
49
|
+
|
|
50
|
+
const effect = reader.Read(bytes);
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Hydration changes object prototypes, not the documented field shape. Nested
|
|
54
|
+
records without a class key remain plain JSON-compatible data. Depending on
|
|
55
|
+
the caller's constructors as a serialization schema is discouraged; persist
|
|
56
|
+
the documented graph fields instead.
|
|
57
|
+
|
|
58
|
+
This feature is caller-selected JSON projection only. It does not construct
|
|
59
|
+
canonical runtime `Tr2EffectRes` or `Tr2Shader` instances. Those are built
|
|
60
|
+
from the compiled container bytes by `@carbonenginejs/runtime-resource`.
|
|
@@ -1,64 +1,64 @@
|
|
|
1
|
-
# Reading effects
|
|
2
|
-
|
|
3
|
-
Status: Evolving
|
|
4
|
-
Scope: `@carbonenginejs/runtime-resource/formats/hlsl` read workflows
|
|
5
|
-
Audience: Users and integrators
|
|
6
|
-
Summary: Shows browser-neutral byte reads, permutation selection, inspection, and Node file workflows.
|
|
7
|
-
|
|
8
|
-
## Read caller-provided bytes
|
|
9
|
-
|
|
10
|
-
```js
|
|
11
|
-
import CjsHlslFormat from "@carbonenginejs/runtime-resource/formats/hlsl";
|
|
12
|
-
|
|
13
|
-
const response = await fetch("/shaders/effect.sm_hi");
|
|
14
|
-
const bytes = new Uint8Array(await response.arrayBuffer());
|
|
15
|
-
const effect = CjsHlslFormat.read(bytes);
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
Use `inspect` when only header and technique summary information is needed:
|
|
19
|
-
|
|
20
|
-
```js
|
|
21
|
-
const summary = CjsHlslFormat.inspect(bytes, {
|
|
22
|
-
source: "effect.sm_hi"
|
|
23
|
-
});
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
## Select a permutation
|
|
27
|
-
|
|
28
|
-
Without a `permutation` option, the reader applies the container's default
|
|
29
|
-
selection rules. Override individual axes by name and value:
|
|
30
|
-
|
|
31
|
-
```js
|
|
32
|
-
const effect = CjsHlslFormat.read(bytes, {
|
|
33
|
-
permutation: [
|
|
34
|
-
{ name: "BLEND_MODE", value: "TRANSPARENT" }
|
|
35
|
-
]
|
|
36
|
-
});
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
A `Map` of names to values is also accepted. Unknown axes or invalid values
|
|
40
|
-
are rejected rather than silently ignored.
|
|
41
|
-
|
|
42
|
-
## Read compact metadata
|
|
43
|
-
|
|
44
|
-
```js
|
|
45
|
-
const metadata = CjsHlslFormat.read(bytes, {
|
|
46
|
-
emit: CjsHlslFormat.OUTPUT_METADATA
|
|
47
|
-
});
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
Metadata output omits embedded bytecode and constant-value bytes. It retains
|
|
51
|
-
the selected options, techniques, passes, stage resources, signatures, and
|
|
52
|
-
render-state records needed for inspection and pipeline planning.
|
|
53
|
-
|
|
54
|
-
## Read a file in Node
|
|
55
|
-
|
|
56
|
-
```js
|
|
57
|
-
const effect = await CjsHlslFormat.readFile("effect.sm_hi");
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
The CLI provides the same metadata workflow:
|
|
61
|
-
|
|
62
|
-
```sh
|
|
63
|
-
format-hlsl metadata effect.sm_hi effect.json
|
|
64
|
-
```
|
|
1
|
+
# Reading effects
|
|
2
|
+
|
|
3
|
+
Status: Evolving
|
|
4
|
+
Scope: `@carbonenginejs/runtime-resource/formats/hlsl` read workflows
|
|
5
|
+
Audience: Users and integrators
|
|
6
|
+
Summary: Shows browser-neutral byte reads, permutation selection, inspection, and Node file workflows.
|
|
7
|
+
|
|
8
|
+
## Read caller-provided bytes
|
|
9
|
+
|
|
10
|
+
```js
|
|
11
|
+
import CjsHlslFormat from "@carbonenginejs/runtime-resource/formats/hlsl";
|
|
12
|
+
|
|
13
|
+
const response = await fetch("/shaders/effect.sm_hi");
|
|
14
|
+
const bytes = new Uint8Array(await response.arrayBuffer());
|
|
15
|
+
const effect = CjsHlslFormat.read(bytes);
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Use `inspect` when only header and technique summary information is needed:
|
|
19
|
+
|
|
20
|
+
```js
|
|
21
|
+
const summary = CjsHlslFormat.inspect(bytes, {
|
|
22
|
+
source: "effect.sm_hi"
|
|
23
|
+
});
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Select a permutation
|
|
27
|
+
|
|
28
|
+
Without a `permutation` option, the reader applies the container's default
|
|
29
|
+
selection rules. Override individual axes by name and value:
|
|
30
|
+
|
|
31
|
+
```js
|
|
32
|
+
const effect = CjsHlslFormat.read(bytes, {
|
|
33
|
+
permutation: [
|
|
34
|
+
{ name: "BLEND_MODE", value: "TRANSPARENT" }
|
|
35
|
+
]
|
|
36
|
+
});
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
A `Map` of names to values is also accepted. Unknown axes or invalid values
|
|
40
|
+
are rejected rather than silently ignored.
|
|
41
|
+
|
|
42
|
+
## Read compact metadata
|
|
43
|
+
|
|
44
|
+
```js
|
|
45
|
+
const metadata = CjsHlslFormat.read(bytes, {
|
|
46
|
+
emit: CjsHlslFormat.OUTPUT_METADATA
|
|
47
|
+
});
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Metadata output omits embedded bytecode and constant-value bytes. It retains
|
|
51
|
+
the selected options, techniques, passes, stage resources, signatures, and
|
|
52
|
+
render-state records needed for inspection and pipeline planning.
|
|
53
|
+
|
|
54
|
+
## Read a file in Node
|
|
55
|
+
|
|
56
|
+
```js
|
|
57
|
+
const effect = await CjsHlslFormat.readFile("effect.sm_hi");
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
The CLI provides the same metadata workflow:
|
|
61
|
+
|
|
62
|
+
```sh
|
|
63
|
+
format-hlsl metadata effect.sm_hi effect.json
|
|
64
|
+
```
|
|
@@ -1,66 +1,61 @@
|
|
|
1
|
-
# Advanced analysis exports
|
|
2
|
-
|
|
3
|
-
Status: Experimental
|
|
4
|
-
Scope: `@carbonenginejs/runtime-resource/formats/hlsl` advanced named exports
|
|
5
|
-
Audience: Translation-tool authors and maintainers
|
|
6
|
-
Summary: Documents unstable helpers for raw graph analysis and binding-manifest construction.
|
|
7
|
-
|
|
8
|
-
## Stability
|
|
9
|
-
|
|
10
|
-
These exports support translation and inspection tooling that needs internal
|
|
11
|
-
effect-model objects. Their shapes may change without a major version bump.
|
|
12
|
-
Use `CjsHlslFormat.read(..., { emit: "json" })` or `"metadata"` for the
|
|
13
|
-
supported data contracts.
|
|
14
|
-
|
|
15
|
-
## `readEffectAnalysis`
|
|
16
|
-
|
|
17
|
-
```js
|
|
18
|
-
import { readEffectAnalysis } from "@carbonenginejs/runtime-resource/formats/hlsl";
|
|
19
|
-
|
|
20
|
-
const analysis = readEffectAnalysis(bytes, {
|
|
21
|
-
source: "effect.sm_hi",
|
|
22
|
-
permutation: [
|
|
23
|
-
{ name: "BLEND_MODE", value: "TRANSPARENT" }
|
|
24
|
-
]
|
|
25
|
-
});
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
The result contains the loaded effect resource, resolved shader, selected
|
|
29
|
-
option and body-index data, effect description, and a binding manifest when
|
|
30
|
-
an effect description is available.
|
|
31
|
-
|
|
32
|
-
The returned internal parser-DTO effect resource also has
|
|
33
|
-
`GetShaderByIndex(index)`. It decodes one exact permutation-table slot without
|
|
34
|
-
applying global or local option overrides
|
|
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
|
-
cross-package enumeration contract.
|
|
63
|
-
|
|
64
|
-
## Related documentation
|
|
65
|
-
|
|
66
|
-
- [Portable body reflection](portable-reflection.md)
|
|
1
|
+
# Advanced analysis exports
|
|
2
|
+
|
|
3
|
+
Status: Experimental
|
|
4
|
+
Scope: `@carbonenginejs/runtime-resource/formats/hlsl` advanced named exports
|
|
5
|
+
Audience: Translation-tool authors and maintainers
|
|
6
|
+
Summary: Documents unstable helpers for raw graph analysis and binding-manifest construction.
|
|
7
|
+
|
|
8
|
+
## Stability
|
|
9
|
+
|
|
10
|
+
These exports support translation and inspection tooling that needs internal
|
|
11
|
+
effect-model objects. Their shapes may change without a major version bump.
|
|
12
|
+
Use `CjsHlslFormat.read(..., { emit: "json" })` or `"metadata"` for the
|
|
13
|
+
supported data contracts.
|
|
14
|
+
|
|
15
|
+
## `readEffectAnalysis`
|
|
16
|
+
|
|
17
|
+
```js
|
|
18
|
+
import { readEffectAnalysis } from "@carbonenginejs/runtime-resource/formats/hlsl";
|
|
19
|
+
|
|
20
|
+
const analysis = readEffectAnalysis(bytes, {
|
|
21
|
+
source: "effect.sm_hi",
|
|
22
|
+
permutation: [
|
|
23
|
+
{ name: "BLEND_MODE", value: "TRANSPARENT" }
|
|
24
|
+
]
|
|
25
|
+
});
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
The result contains the loaded effect resource, resolved shader, selected
|
|
29
|
+
option and body-index data, effect description, and a binding manifest when
|
|
30
|
+
an effect description is available.
|
|
31
|
+
|
|
32
|
+
The returned internal parser-DTO effect resource also has
|
|
33
|
+
`GetShaderByIndex(index)`. It decodes one exact permutation-table slot without
|
|
34
|
+
applying global or local option overrides, so a body-table index stays stable
|
|
35
|
+
even when an application has set global effect options. It is distinct from the
|
|
36
|
+
canonical `Tr2EffectRes.GetShaderByIndex`, which resolves options, hydrates a
|
|
37
|
+
`Tr2Shader`, and caches it per index.
|
|
38
|
+
|
|
39
|
+
## Binding manifest
|
|
40
|
+
|
|
41
|
+
`analysis.bindingManifest` derives register-named constant, resource, sampler,
|
|
42
|
+
and UAV bindings from an internal effect description. Its class is internal to
|
|
43
|
+
the format and is not a published export; treat the manifest as data.
|
|
44
|
+
|
|
45
|
+
## Source truth and realization
|
|
46
|
+
|
|
47
|
+
Nothing this subpath returns carries a renderer handle: no shader, program,
|
|
48
|
+
render-state, sampler, or library handles, and no resource sets, heap-view
|
|
49
|
+
arrays, backend layouts, masks, sort values, or caches. Engines own all of
|
|
50
|
+
that. Two consequences are easy to trip over:
|
|
51
|
+
|
|
52
|
+
- Register dynamic classification is not persisted. It follows per-frame
|
|
53
|
+
reader and engine policy, and is not an authored binary field.
|
|
54
|
+
- Authored constant defaults are separate from the raw model's mutable
|
|
55
|
+
`constantValues`. Carbon-compatible sampler-heap realization may zero-extend
|
|
56
|
+
the latter; it cannot change the authored source prefix.
|
|
57
|
+
|
|
58
|
+
## Related documentation
|
|
59
|
+
|
|
60
|
+
- [JSON and metadata graphs](json-graph.md)
|
|
61
|
+
- [Carbon compiled-effect container](../../carbon-effect-container.md)
|