@carbonenginejs/runtime-resource 0.13.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/NOTICE +32 -32
- package/README.md +129 -129
- package/dist/CjsMotherLode.js +1271 -1271
- package/dist/CjsResMan.js +3858 -3858
- package/dist/CjsResManFetchProvider.js +94 -94
- package/dist/CjsResManWorkQueue.js +301 -301
- package/dist/_virtual/_rollupPluginBabelHelpers.js +150 -150
- package/dist/format/CjsBlueReader.js +358 -358
- package/dist/format/CjsByteReader.js +310 -310
- package/dist/format/CjsByteWriter.js +242 -242
- package/dist/format/CjsFormat.js +223 -223
- package/dist/format/CjsFormatError.js +41 -41
- package/dist/format/CjsReader.js +22 -22
- package/dist/format/CjsResourceProbe.js +279 -279
- package/dist/format/CjsStringTable.js +268 -268
- package/dist/format/carbonEffect/CjsCarbonEffectReader.js +265 -265
- package/dist/format/carbonEffect/CjsCarbonEffectWriter.js +373 -373
- package/dist/format/carbonEffect/buildCarbonEffectContainer.js +182 -182
- package/dist/format/carbonEffect/carbonEffectBackendBlock.js +321 -321
- package/dist/format/carbonEffect/carbonEffectRecords.js +1147 -1147
- package/dist/format/carbonEffect/carbonEffectResourceTransform.js +197 -197
- package/dist/format/compareUtf8.js +36 -36
- package/dist/format/effect/effectBodyInventory.js +146 -146
- package/dist/format/effect/effectPermutationGraph.js +257 -257
- package/dist/format/effect/sha256.js +114 -114
- package/dist/format/index.js +11 -11
- package/dist/format/payloadContract.js +193 -193
- package/dist/formats/black/CjsBlackFormat.js +310 -310
- package/dist/formats/black/core/CjsBlackBinaryReader.js +260 -260
- package/dist/formats/black/core/CjsBlackPropertyReaders.js +448 -448
- package/dist/formats/black/core/CjsBlackReader.js +764 -764
- package/dist/formats/black/core/CjsBlackSchemaRegistry.js +540 -540
- package/dist/formats/black/core/black-schema-v1-2026-07-23.json.js +4 -4
- package/dist/formats/black/core/blackConstants.js +7 -7
- package/dist/formats/black/core/blackDefinitions.js +10 -10
- package/dist/formats/black/core/blackEnums.js +6 -6
- package/dist/formats/black/core/blackSchema.js +3 -3
- package/dist/formats/black/core/blackVersion.js +22 -22
- package/dist/formats/black/core/helpers.js +199 -199
- package/dist/formats/black/core/schema.js +4 -4
- package/dist/formats/black/index.js +2 -2
- package/dist/formats/bnk/CjsBnkFormat.js +175 -175
- package/dist/formats/bnk/core/busNodes.js +252 -252
- package/dist/formats/bnk/core/effectNodes.js +147 -147
- package/dist/formats/bnk/core/eventAction.js +416 -416
- package/dist/formats/bnk/core/globalSettings.js +215 -215
- package/dist/formats/bnk/core/graph.js +137 -137
- package/dist/formats/bnk/core/helpers.js +512 -512
- package/dist/formats/bnk/core/musicNodes.js +540 -540
- package/dist/formats/bnk/core/nodeBase.js +553 -553
- package/dist/formats/bnk/core/sfxNodes.js +632 -632
- package/dist/formats/bnk/core/soundbanksInfo.js +209 -209
- package/dist/formats/bnk/index.js +2 -2
- package/dist/formats/cmf/CjsCmfFormat.js +497 -497
- package/dist/formats/cmf/core/binary.js +194 -194
- package/dist/formats/cmf/core/buffers.js +237 -237
- package/dist/formats/cmf/core/constants.js +47 -47
- package/dist/formats/cmf/core/gr2Anim.js +453 -453
- package/dist/formats/cmf/core/helpers.js +318 -318
- package/dist/formats/cmf/core/pack.js +276 -276
- package/dist/formats/cmf/core/schema.js +374 -374
- package/dist/formats/cmf/core/shared.js +277 -277
- package/dist/formats/cmf/core/writer.js +571 -571
- package/dist/formats/cmf/index.js +2 -2
- package/dist/formats/dds/CjsDdsFormat.js +200 -200
- package/dist/formats/dds/core/bc6h.js +298 -298
- package/dist/formats/dds/core/bc7.js +272 -272
- package/dist/formats/dds/core/helpers.js +901 -862
- package/dist/formats/dds/core/helpers.js.map +1 -1
- package/dist/formats/dds/index.js +2 -2
- package/dist/formats/dxbc/CjsDxbcFormat.js +187 -142
- package/dist/formats/dxbc/CjsDxbcFormat.js.map +1 -1
- package/dist/formats/dxbc/core/DxbcReader.js +266 -266
- package/dist/formats/dxbc/core/container.js +169 -169
- package/dist/formats/dxbc/core/decoder.js +789 -789
- package/dist/formats/dxbc/core/disassemble.js +240 -0
- package/dist/formats/dxbc/core/disassemble.js.map +1 -0
- package/dist/formats/dxbc/core/errors.js +19 -19
- package/dist/formats/dxbc/core/helpers.js +220 -220
- package/dist/formats/dxbc/core/opcodes.js +45 -45
- package/dist/formats/dxbc/core/program.js +91 -91
- package/dist/formats/dxbc/core/signature.js +172 -172
- package/dist/formats/dxbc/index.js +2 -2
- package/dist/formats/fbx/CjsFbxFormat.js +266 -266
- package/dist/formats/fbx/core/helpers.js +3932 -3932
- package/dist/formats/fbx/index.js +2 -2
- package/dist/formats/flac/CjsFlacFormat.js +142 -142
- package/dist/formats/flac/core/helpers.js +315 -315
- package/dist/formats/flac/index.js +2 -2
- package/dist/formats/gif/CjsGifFormat.js +141 -141
- package/dist/formats/gif/core/helpers.js +380 -380
- package/dist/formats/gif/index.js +2 -2
- package/dist/formats/gltf/CjsGltfFormat.js +252 -290
- package/dist/formats/gltf/CjsGltfFormat.js.map +1 -1
- package/dist/formats/gltf/core/helpers.js +287 -307
- package/dist/formats/gltf/core/helpers.js.map +1 -1
- package/dist/formats/gltf/core/json.js +79 -79
- package/dist/formats/gltf/core/parser.js +679 -679
- package/dist/formats/gltf/core/targets.js +173 -173
- package/dist/formats/gltf/index.js +2 -2
- package/dist/formats/gr2/CjsGr2Format.js +289 -289
- package/dist/formats/gr2/core/bitknit2.js +282 -282
- package/dist/formats/gr2/core/curves.js +1047 -1047
- package/dist/formats/gr2/core/gsf.js +72 -72
- package/dist/formats/gr2/core/helpers.js +352 -352
- package/dist/formats/gr2/core/json.js +622 -622
- package/dist/formats/gr2/core/oodle1.js +388 -388
- package/dist/formats/gr2/core/tangents.js +48 -48
- package/dist/formats/gr2/core/targets.js +361 -361
- package/dist/formats/gr2/index.js +2 -2
- package/dist/formats/hlsl/CjsHlslFormat.js +233 -254
- package/dist/formats/hlsl/CjsHlslFormat.js.map +1 -1
- package/dist/formats/hlsl/core/HlslBinaryUtils.js +15 -15
- package/dist/formats/hlsl/core/HlslEffectReadError.js +19 -19
- package/dist/formats/hlsl/core/HlslEffectStateManager.js +130 -130
- package/dist/formats/hlsl/core/HlslRenderStateSetup.js +37 -37
- package/dist/formats/hlsl/core/HlslResourceSetDescription.js +94 -94
- package/dist/formats/hlsl/core/HlslShaderBytecode.js +44 -44
- package/dist/formats/hlsl/core/analysis.js +51 -51
- package/dist/formats/hlsl/core/carbonDescriptionToRuntime.js +850 -850
- package/dist/formats/hlsl/core/detailMapFamily.js +128 -128
- package/dist/formats/hlsl/core/helpers.js +270 -270
- package/dist/formats/hlsl/core/json.js +284 -284
- package/dist/formats/hlsl/core/localLightFamily.js +133 -133
- package/dist/formats/hlsl/core/metadata.js +327 -327
- package/dist/formats/hlsl/core/render-states.js +280 -280
- package/dist/formats/hlsl/core/tr2/HlslRenderContextEnum.js +43 -43
- package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js +320 -320
- package/dist/formats/hlsl/core/tr2/resources/HlslShaderPermutation.js +33 -33
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js +423 -416
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js.map +1 -1
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectConstant.js +40 -40
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js +62 -62
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectLibrary.js +52 -52
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectParameterAnnotation.js +38 -38
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectResource.js +50 -50
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js +86 -86
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectTechnique.js +31 -31
- package/dist/formats/hlsl/core/tr2/shader/HlslPass.js +42 -42
- package/dist/formats/hlsl/core/tr2/shader/HlslSamplerDescription.js +55 -55
- package/dist/formats/hlsl/core/tr2/shader/HlslSamplerSetup.js +29 -29
- package/dist/formats/hlsl/core/tr2/shader/HlslShader.js +220 -220
- package/dist/formats/hlsl/core/tr2/shader/HlslShaderOption.js +30 -30
- package/dist/formats/hlsl/index.js +3 -3
- package/dist/formats/index.js +33 -33
- package/dist/formats/jpeg/CjsJpegFormat.js +212 -212
- package/dist/formats/jpeg/core/helpers.js +402 -402
- package/dist/formats/jpeg/core/jpeg.js +480 -480
- package/dist/formats/jpeg/index.js +2 -2
- package/dist/formats/mp3/CjsMp3Format.js +197 -197
- package/dist/formats/mp3/core/helpers.js +375 -375
- package/dist/formats/mp3/index.js +2 -2
- package/dist/formats/mp4/CjsMp4Format.js +197 -197
- package/dist/formats/mp4/core/helpers.js +484 -484
- package/dist/formats/mp4/index.js +2 -2
- package/dist/formats/obj/CjsObjFormat.js +232 -253
- package/dist/formats/obj/CjsObjFormat.js.map +1 -1
- package/dist/formats/obj/core/helpers.js +553 -573
- package/dist/formats/obj/core/helpers.js.map +1 -1
- package/dist/formats/obj/core/json.js +64 -64
- package/dist/formats/obj/core/parser.js +321 -321
- package/dist/formats/obj/index.js +2 -2
- package/dist/formats/ogg/CjsOggFormat.js +143 -143
- package/dist/formats/ogg/core/helpers.js +410 -410
- package/dist/formats/ogg/core/imdct.js +178 -178
- package/dist/formats/ogg/core/vorbis.js +1017 -1017
- package/dist/formats/ogg/index.js +2 -2
- package/dist/formats/pickle/CjsPickleFormat.js +214 -214
- package/dist/formats/pickle/core/CjsPickleProtocol0Reader.js +551 -551
- package/dist/formats/pickle/index.js +2 -2
- package/dist/formats/png/CjsPngFormat.js +201 -201
- package/dist/formats/png/core/helpers.js +635 -635
- package/dist/formats/png/index.js +2 -2
- package/dist/formats/red/CjsRedFormat.js +263 -263
- package/dist/formats/red/core/CjsRedReader.js +246 -246
- package/dist/formats/red/core/blackDefinitions.js +3 -3
- package/dist/formats/red/core/helpers.js +158 -158
- package/dist/formats/red/core/redGraph.js +71 -71
- package/dist/formats/red/core/schema.js +4 -4
- package/dist/formats/red/index.js +2 -2
- package/dist/formats/stl/CjsStlFormat.js +320 -365
- package/dist/formats/stl/CjsStlFormat.js.map +1 -1
- package/dist/formats/stl/core/helpers.js +241 -261
- package/dist/formats/stl/core/helpers.js.map +1 -1
- package/dist/formats/stl/core/json.js +51 -51
- package/dist/formats/stl/core/stl.js +642 -642
- package/dist/formats/stl/core/targets.js +173 -173
- package/dist/formats/stl/index.js +2 -2
- package/dist/formats/tga/CjsTgaFormat.js +197 -197
- package/dist/formats/tga/core/helpers.js +493 -493
- package/dist/formats/tga/index.js +2 -2
- package/dist/formats/wav/CjsWavFormat.js +198 -198
- package/dist/formats/wav/core/helpers.js +365 -365
- package/dist/formats/wav/index.js +2 -2
- package/dist/formats/webgl/CjsWebglFormat.js +199 -199
- package/dist/formats/webgl/core/buildGlslEffectContainer.js +70 -70
- package/dist/formats/webgl/core/effectPackage.js +900 -900
- package/dist/formats/webgl/core/errors.js +27 -27
- package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js +2820 -2820
- package/dist/formats/webgl/core/glsl/DxbcGlslHelpers.js +89 -89
- package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +486 -486
- package/dist/formats/webgl/core/glsl/packedLightFixups.js +98 -98
- package/dist/formats/webgl/core/glslBackendBlock.js +552 -552
- package/dist/formats/webgl/core/glslBackendBodySet.js +243 -243
- package/dist/formats/webgl/core/glslEffectCompleteness.js +85 -85
- package/dist/formats/webgl/core/glslEffectCompleteness.js.map +1 -1
- package/dist/formats/webgl/core/helpers.js +167 -167
- package/dist/formats/webgl/core/inspectGlslEffectContainer.js +122 -122
- package/dist/formats/webgl/core/readGlslEffectContainer.js +202 -256
- package/dist/formats/webgl/core/readGlslEffectContainer.js.map +1 -1
- package/dist/formats/webgl/index.js +2 -2
- package/dist/formats/webgpu/CjsWebgpuFormat.js +357 -357
- package/dist/formats/webgpu/core/buildCarbonEffectContainer.js +89 -89
- package/dist/formats/webgpu/core/carbonWebgpu/CarbonWebgpuContainer.js +354 -354
- package/dist/formats/webgpu/core/carbonWebgpu/containerViews.js +355 -355
- package/dist/formats/webgpu/core/carbonWebgpu/validateContainer.js +90 -90
- package/dist/formats/webgpu/core/effectAnalysis.js +82 -82
- package/dist/formats/webgpu/core/effectBackendBodySet.js +306 -306
- package/dist/formats/webgpu/core/errors.js +20 -20
- package/dist/formats/webgpu/core/helpers.js +443 -443
- package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js +212 -212
- package/dist/formats/webgpu/core/ir/buildControlFlow.js +220 -220
- package/dist/formats/webgpu/core/ir/indexableTemps.js +137 -137
- package/dist/formats/webgpu/core/ir/inferValueTypes.js +449 -449
- package/dist/formats/webgpu/core/ir/lowerDxbcToIr.js +494 -494
- package/dist/formats/webgpu/core/ir/resolveRegisterFlow.js +177 -177
- package/dist/formats/webgpu/core/ir/sourceLanes.js +61 -61
- package/dist/formats/webgpu/core/packageEffect.js +381 -381
- package/dist/formats/webgpu/core/packageEffectSelection.js +164 -164
- package/dist/formats/webgpu/core/packageMetadata.js +17 -17
- package/dist/formats/webgpu/core/schema.js +4 -4
- package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js +263 -263
- package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js +172 -172
- package/dist/formats/webgpu/core/wgsl/buildWgslSet.js +325 -325
- package/dist/formats/webgpu/core/wgsl/emitWgsl.js +356 -356
- package/dist/formats/webgpu/core/wgsl/hoistEscapingValues.js +77 -77
- package/dist/formats/webgpu/core/wgsl/lowerBindingLayout.js +451 -451
- package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js +735 -735
- package/dist/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js +457 -457
- package/dist/formats/webgpu/core/wgsl/lowerFragmentProgram.js +1572 -1572
- package/dist/formats/webgpu/core/wgsl/lowerMergeHistogramsComputeProgram.js +659 -659
- package/dist/formats/webgpu/core/wgsl/lowerParticleClearComputePrograms.js +734 -734
- package/dist/formats/webgpu/core/wgsl/lowerParticleEmitComputeProgram.js +583 -583
- package/dist/formats/webgpu/core/wgsl/lowerSkinVerticesComputeProgram.js +621 -621
- package/dist/formats/webgpu/core/wgsl/lowerSortComputeProgram.js +824 -824
- package/dist/formats/webgpu/core/wgsl/lowerSortInnerComputeProgram.js +697 -697
- package/dist/formats/webgpu/core/wgsl/lowerSortStepComputeProgram.js +559 -559
- package/dist/formats/webgpu/core/wgsl/lowerVertexProgram.js +1328 -1328
- package/dist/formats/webgpu/core/wgsl/particleEmitSemanticDigest.js +110 -110
- package/dist/formats/webgpu/core/wgsl/precisionControls.js +55 -55
- package/dist/formats/webgpu/core/wgsl/selectionPlans.js +717 -717
- package/dist/formats/webgpu/core/wgsl/uniformity.js +78 -78
- package/dist/formats/webgpu/core/wgsl/validateExactComputeIr.js +196 -196
- package/dist/formats/webgpu/core/wgsl/validateHandleOperand.js +37 -37
- package/dist/formats/webgpu/index.js +2 -2
- package/dist/formats/webm/CjsWebmFormat.js +197 -197
- package/dist/formats/webm/core/helpers.js +572 -572
- package/dist/formats/webm/index.js +2 -2
- package/dist/formats/webp/CjsWebpFormat.js +140 -140
- package/dist/formats/webp/core/helpers.js +237 -237
- package/dist/formats/webp/index.js +2 -2
- package/dist/formats/wem/CjsWemFormat.js +250 -250
- package/dist/formats/wem/core/bitStream.js +261 -261
- package/dist/formats/wem/core/codebookLibrary.js +164 -164
- package/dist/formats/wem/core/helpers.js +437 -437
- package/dist/formats/wem/core/packedCodebooksAotuv603.js +30 -30
- package/dist/formats/wem/core/ptadpcm.js +77 -77
- package/dist/formats/wem/core/resolve.js +121 -121
- package/dist/formats/wem/core/wemToOgg.js +485 -485
- package/dist/formats/wem/index.js +2 -2
- package/dist/formats/yaml/CjsYamlFormat.js +134 -134
- package/dist/formats/yaml/core/CjsYamlReader.js +400 -400
- package/dist/formats/yaml/core/helpers.js +196 -196
- package/dist/formats/yaml/index.js +2 -2
- package/dist/index.js +64 -64
- package/dist/resource/CjsLoadingObject.js +19 -19
- package/dist/resource/CjsResource.js +801 -801
- package/dist/resource/ResourceHandlerMode.js +14 -14
- package/dist/resource/Tr2LightProfileRes.js +32 -32
- package/dist/resource/audio/AudioGeometryResData.js +47 -47
- package/dist/resource/audio/CjsAudioBufferRes.js +86 -86
- package/dist/resource/audio/CjsAudioRes.js +213 -213
- package/dist/resource/audio/index.js +4 -4
- package/dist/resource/geometry/MeshDecalData.js +37 -37
- package/dist/resource/geometry/MeshDecalLodData.js +34 -34
- package/dist/resource/geometry/TriGeometryRes.js +675 -675
- package/dist/resource/geometry/TriGeometryResAreaData.js +59 -59
- package/dist/resource/geometry/TriGeometryResJointData.js +38 -38
- package/dist/resource/geometry/TriGeometryResLodData.js +88 -88
- package/dist/resource/geometry/TriGeometryResMeshData.js +63 -63
- package/dist/resource/geometry/TriGeometryResSkeletonData.js +34 -34
- package/dist/resource/geometry/TriJointBinding.js +38 -38
- package/dist/resource/geometry/TriMorphTargetGeometryConstants.js +46 -46
- package/dist/resource/geometry/TriRtGeometryConstants.js +88 -88
- package/dist/resource/geometry/granny/GStateBindingCallbackData.js +31 -31
- package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +60 -60
- package/dist/resource/geometry/granny/Tr2GrannyStateRes.js +36 -36
- package/dist/resource/geometry/granny/TriGrannyRes.js +35 -35
- package/dist/resource/geometry/granny/enums.js +10 -10
- package/dist/resource/geometry/granny/index.js +6 -6
- package/dist/resource/geometry/index.js +17 -17
- package/dist/resource/index.js +54 -54
- package/dist/resource/resourceBoundary.js +64 -64
- package/dist/resource/shader/Tr2EffectRes.js +336 -336
- package/dist/resource/shader/Tr2MaterialArea.js +31 -31
- package/dist/resource/shader/Tr2MaterialMesh.js +27 -27
- package/dist/resource/shader/Tr2MaterialRes.js +31 -31
- package/dist/resource/shader/Tr2Shader.js +283 -283
- package/dist/resource/shader/Tr2ShaderPermutation.js +43 -43
- package/dist/resource/shader/index.js +17 -17
- package/dist/resource/shader/reflection/Tr2EffectConstant.js +143 -143
- package/dist/resource/shader/reflection/Tr2EffectDefine.js +30 -30
- package/dist/resource/shader/reflection/Tr2EffectDescription.js +114 -114
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js +168 -168
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +125 -125
- package/dist/resource/shader/reflection/Tr2EffectResource.js +120 -120
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js +372 -372
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js +78 -78
- package/dist/resource/shader/reflection/Tr2Pass.js +168 -168
- package/dist/resource/shader/reflection/carbonRecordFields.js +159 -159
- package/dist/resource/shader/reflection/shaderStage.js +22 -22
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js +135 -135
- package/dist/resource/texture/CjsTextureArrayRes.js +472 -472
- package/dist/resource/texture/CjsTextureArrayResParameterProxy.js +179 -179
- package/dist/resource/texture/Tr2ImageRes.js +120 -120
- package/dist/resource/texture/Tr2TextureLodManager.js +82 -82
- package/dist/resource/texture/Tr2TextureLodUpdateRequest.js +37 -37
- package/dist/resource/texture/Tr2TexturePackChannel.js +37 -37
- package/dist/resource/texture/Tr2TexturePipeline.js +54 -54
- package/dist/resource/texture/Tr2TexturePipelineParams.js +34 -34
- package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +40 -40
- package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +22 -22
- package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +34 -34
- package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +31 -31
- package/dist/resource/texture/Tr2TexturePipelineStepPack.js +43 -43
- package/dist/resource/texture/TriTextureRes.js +359 -359
- package/dist/resource/texture/index.js +15 -15
- package/dist/resource/texture/texturePipelineBehavior.js +308 -308
- package/dist/worker/CjsResManMainThreadLoader.js +89 -89
- package/dist/worker/CjsResManWorker.js +218 -218
- package/dist/worker/CjsResManWorkerLoader.js +437 -437
- package/dist/worker/protocol.js +12 -12
- package/docs/README.md +98 -98
- package/docs/architecture.md +118 -118
- package/docs/concepts/resource-lifecycle.md +226 -226
- package/docs/concepts/shader-resource-model.md +111 -111
- package/docs/concepts/writing-an-engine-adapter.md +115 -115
- package/docs/formats/README.md +138 -138
- package/docs/formats/carbon-effect-container.md +553 -553
- package/docs/formats/dxbc/README.md +68 -68
- package/docs/formats/dxbc/architecture.md +80 -80
- package/docs/formats/dxbc/reference/api.md +105 -77
- package/docs/formats/dxbc/reference/classes/README.md +9 -9
- package/docs/formats/dxbc/reference/decoded-output.md +122 -122
- package/docs/formats/gr2.md +160 -160
- package/docs/formats/hlsl/README.md +54 -54
- package/docs/formats/hlsl/architecture.md +66 -65
- package/docs/formats/hlsl/guides/hydrating-json-output.md +60 -60
- package/docs/formats/hlsl/guides/reading-effects.md +68 -64
- package/docs/formats/hlsl/reference/advanced-analysis.md +61 -61
- package/docs/formats/hlsl/reference/api.md +91 -92
- package/docs/formats/hlsl/reference/classes/README.md +11 -11
- package/docs/formats/hlsl/reference/json-graph.md +97 -97
- package/docs/formats/pickle.md +82 -82
- package/docs/formats/provenance.md +196 -196
- package/docs/formats/stl.md +37 -37
- package/docs/formats/webgl/README.md +115 -115
- package/docs/formats/webgl/architecture.md +69 -69
- package/docs/formats/webgl/carbon-constant-layouts.md +326 -326
- package/docs/formats/webgl/decl-io.md +1234 -1234
- package/docs/formats/webgl/memory-structured.md +890 -890
- package/docs/formats/webgl/reference/classes/README.md +9 -9
- package/docs/formats/webgl/texture-sample.md +964 -964
- package/docs/formats/webgpu/README.md +84 -84
- package/docs/formats/webgpu/architecture.md +95 -95
- package/docs/formats/webgpu/formats/carbon-webgpu.md +215 -215
- package/docs/formats/webgpu/guides/effect-packaging.md +189 -189
- package/docs/formats/webgpu/reference/api.md +196 -196
- package/docs/formats/webgpu/reference/classes/README.md +9 -9
- package/docs/formats/webgpu/reference/wgsl-compatibility.md +1546 -1546
- package/docs/formats/wwise.md +146 -146
- package/docs/reference/classes/README.md +35 -35
- package/docs/reference/classes/audio.md +30 -30
- package/docs/reference/classes/core.md +216 -216
- package/docs/reference/classes/dropped.md +46 -46
- package/docs/reference/classes/formats.md +944 -944
- package/docs/reference/classes/resources.md +456 -456
- package/docs/reference/classes/texture.md +26 -26
- package/docs/reference/events.md +117 -117
- package/docs/reference/motherlode-cache.md +275 -275
- package/docs/reference/queues.md +194 -194
- package/docs/reference/reload.md +107 -107
- package/docs/reference/texture-arrays.md +113 -113
- package/docs/reference/texture-pipeline.md +53 -53
- package/docs/reference/workers.md +142 -142
- package/docs/roadmap.md +150 -150
- package/format-notices/black/LICENSE +21 -21
- package/format-notices/black/NOTICE +47 -47
- package/format-notices/bnk/LICENSE +21 -21
- package/format-notices/bnk/NOTICE +21 -21
- package/format-notices/cmf/LICENSE +21 -21
- package/format-notices/cmf/NOTICE +36 -36
- package/format-notices/dds/LICENSE +21 -21
- package/format-notices/dds/NOTICE +14 -14
- package/format-notices/dxbc/LICENSE +21 -21
- package/format-notices/dxbc/NOTICE +20 -20
- package/format-notices/fbx/LICENSE +21 -21
- package/format-notices/fbx/NOTICE +14 -14
- package/format-notices/flac/LICENSE +21 -21
- package/format-notices/flac/NOTICE +14 -14
- package/format-notices/gif/LICENSE +21 -21
- package/format-notices/gif/NOTICE +14 -14
- package/format-notices/gltf/LICENSE +21 -21
- package/format-notices/gltf/NOTICE +27 -27
- package/format-notices/gr2/LICENSE +21 -21
- package/format-notices/gr2/NOTICE +60 -60
- package/format-notices/gr2/THIRD-PARTY-NOTICES.md +93 -93
- package/format-notices/hlsl/LICENSE +21 -21
- package/format-notices/hlsl/NOTICE +25 -25
- package/format-notices/jpeg/LICENSE +21 -21
- package/format-notices/jpeg/NOTICE +14 -14
- package/format-notices/mp3/LICENSE +21 -21
- package/format-notices/mp3/NOTICE +14 -14
- package/format-notices/mp4/LICENSE +21 -21
- package/format-notices/mp4/NOTICE +14 -14
- package/format-notices/obj/LICENSE +21 -21
- package/format-notices/obj/NOTICE +26 -26
- package/format-notices/ogg/LICENSE +21 -21
- package/format-notices/ogg/NOTICE +28 -28
- package/format-notices/png/LICENSE +21 -21
- package/format-notices/png/NOTICE +14 -14
- package/format-notices/red/LICENSE +21 -21
- package/format-notices/red/NOTICE +31 -31
- package/format-notices/stl/LICENSE +21 -21
- package/format-notices/stl/NOTICE +21 -21
- package/format-notices/tga/LICENSE +21 -21
- package/format-notices/tga/NOTICE +14 -14
- package/format-notices/wav/LICENSE +21 -21
- package/format-notices/wav/NOTICE +14 -14
- package/format-notices/webgl/LICENSE +21 -21
- package/format-notices/webgl/NOTICE +35 -35
- package/format-notices/webgpu/LICENSE +21 -21
- package/format-notices/webgpu/NOTICE +31 -31
- package/format-notices/webm/LICENSE +21 -21
- package/format-notices/webm/NOTICE +14 -14
- package/format-notices/webp/LICENSE +21 -21
- package/format-notices/webp/NOTICE +14 -14
- package/format-notices/wem/LICENSE +57 -57
- package/format-notices/wem/NOTICE +33 -33
- package/format-notices/yaml/LICENSE +21 -21
- package/format-notices/yaml/NOTICE +44 -44
- package/package.json +63 -63
|
@@ -1,68 +1,68 @@
|
|
|
1
|
-
# DXBC format documentation
|
|
2
|
-
|
|
3
|
-
Status: Evolving
|
|
4
|
-
Scope: `@carbonenginejs/runtime-resource/formats/dxbc`
|
|
5
|
-
Audience: Shader-tool authors, lowering-backend authors, and maintainers
|
|
6
|
-
Summary: Explains the pure-JavaScript DXBC reader, its decoded output, and its boundary with effect and shader-lowering packages.
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
|
|
10
|
-
`@carbonenginejs/runtime-resource/formats/dxbc` owns pure-JavaScript reading of Microsoft DXBC
|
|
11
|
-
containers. It validates the chunk directory, decodes input/output/patch
|
|
12
|
-
signatures, reads SM4/SM5 program headers, and converts instruction tokens into
|
|
13
|
-
structured records.
|
|
14
|
-
|
|
15
|
-
The package preserves unfamiliar declaration payload words as `tailTokens`
|
|
16
|
-
where the framing is valid. Executable instructions decode strictly and reject
|
|
17
|
-
malformed operand lengths.
|
|
18
|
-
|
|
19
|
-
## Use this package when
|
|
20
|
-
|
|
21
|
-
Use `format-dxbc` when you need:
|
|
22
|
-
|
|
23
|
-
- cheap DXBC identification and container inspection;
|
|
24
|
-
- plain JSON-compatible signatures and instruction records;
|
|
25
|
-
- internal decoder objects for an advanced shader backend; or
|
|
26
|
-
- a browser-safe byte decoder with no native executable or filesystem
|
|
27
|
-
dependency.
|
|
28
|
-
|
|
29
|
-
Do not place target-language lowering rules here. GLSL emission belongs to
|
|
30
|
-
`@carbonenginejs/runtime-resource/formats/webgl`, and WGSL emission belongs to
|
|
31
|
-
`@carbonenginejs/runtime-resource/formats/webgpu`.
|
|
32
|
-
|
|
33
|
-
## Where it fits
|
|
34
|
-
|
|
35
|
-
```text
|
|
36
|
-
compiled effects
|
|
37
|
-
|
|
|
38
|
-
v
|
|
39
|
-
format-hlsl
|
|
40
|
-
|
|
|
41
|
-
| opaque DXBC stage bytes
|
|
42
|
-
v
|
|
43
|
-
format-dxbc
|
|
44
|
-
|
|
|
45
|
-
+---- decoded records ----> format-webgl
|
|
46
|
-
|
|
|
47
|
-
+---- decoded records ----> format-webgpu
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
The public decoder contract is Microsoft DXBC data. Package-local binary
|
|
51
|
-
utilities are internal implementation details and are not public npm subpaths.
|
|
52
|
-
|
|
53
|
-
## Start here
|
|
54
|
-
|
|
55
|
-
```js
|
|
56
|
-
import { CjsDxbcFormat } from "@carbonenginejs/runtime-resource/formats/dxbc";
|
|
57
|
-
|
|
58
|
-
const decoded = CjsDxbcFormat.read(shaderBytes, {
|
|
59
|
-
source: "example.dxbc"
|
|
60
|
-
});
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
## Documentation map
|
|
64
|
-
|
|
65
|
-
- [Architecture and boundaries](architecture.md)
|
|
66
|
-
- [Public API reference](reference/api.md)
|
|
67
|
-
- [Decoded output contract](reference/decoded-output.md)
|
|
68
|
-
- [Class-purpose catalog](reference/classes/README.md)
|
|
1
|
+
# DXBC format documentation
|
|
2
|
+
|
|
3
|
+
Status: Evolving
|
|
4
|
+
Scope: `@carbonenginejs/runtime-resource/formats/dxbc`
|
|
5
|
+
Audience: Shader-tool authors, lowering-backend authors, and maintainers
|
|
6
|
+
Summary: Explains the pure-JavaScript DXBC reader, its decoded output, and its boundary with effect and shader-lowering packages.
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
|
|
10
|
+
`@carbonenginejs/runtime-resource/formats/dxbc` owns pure-JavaScript reading of Microsoft DXBC
|
|
11
|
+
containers. It validates the chunk directory, decodes input/output/patch
|
|
12
|
+
signatures, reads SM4/SM5 program headers, and converts instruction tokens into
|
|
13
|
+
structured records.
|
|
14
|
+
|
|
15
|
+
The package preserves unfamiliar declaration payload words as `tailTokens`
|
|
16
|
+
where the framing is valid. Executable instructions decode strictly and reject
|
|
17
|
+
malformed operand lengths.
|
|
18
|
+
|
|
19
|
+
## Use this package when
|
|
20
|
+
|
|
21
|
+
Use `format-dxbc` when you need:
|
|
22
|
+
|
|
23
|
+
- cheap DXBC identification and container inspection;
|
|
24
|
+
- plain JSON-compatible signatures and instruction records;
|
|
25
|
+
- internal decoder objects for an advanced shader backend; or
|
|
26
|
+
- a browser-safe byte decoder with no native executable or filesystem
|
|
27
|
+
dependency.
|
|
28
|
+
|
|
29
|
+
Do not place target-language lowering rules here. GLSL emission belongs to
|
|
30
|
+
`@carbonenginejs/runtime-resource/formats/webgl`, and WGSL emission belongs to
|
|
31
|
+
`@carbonenginejs/runtime-resource/formats/webgpu`.
|
|
32
|
+
|
|
33
|
+
## Where it fits
|
|
34
|
+
|
|
35
|
+
```text
|
|
36
|
+
compiled effects
|
|
37
|
+
|
|
|
38
|
+
v
|
|
39
|
+
format-hlsl
|
|
40
|
+
|
|
|
41
|
+
| opaque DXBC stage bytes
|
|
42
|
+
v
|
|
43
|
+
format-dxbc
|
|
44
|
+
|
|
|
45
|
+
+---- decoded records ----> format-webgl
|
|
46
|
+
|
|
|
47
|
+
+---- decoded records ----> format-webgpu
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
The public decoder contract is Microsoft DXBC data. Package-local binary
|
|
51
|
+
utilities are internal implementation details and are not public npm subpaths.
|
|
52
|
+
|
|
53
|
+
## Start here
|
|
54
|
+
|
|
55
|
+
```js
|
|
56
|
+
import { CjsDxbcFormat } from "@carbonenginejs/runtime-resource/formats/dxbc";
|
|
57
|
+
|
|
58
|
+
const decoded = CjsDxbcFormat.read(shaderBytes, {
|
|
59
|
+
source: "example.dxbc"
|
|
60
|
+
});
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Documentation map
|
|
64
|
+
|
|
65
|
+
- [Architecture and boundaries](architecture.md)
|
|
66
|
+
- [Public API reference](reference/api.md)
|
|
67
|
+
- [Decoded output contract](reference/decoded-output.md)
|
|
68
|
+
- [Class-purpose catalog](reference/classes/README.md)
|
|
@@ -1,80 +1,80 @@
|
|
|
1
|
-
# Architecture and boundaries
|
|
2
|
-
|
|
3
|
-
Status: Evolving
|
|
4
|
-
Scope: `@carbonenginejs/runtime-resource/formats/dxbc`
|
|
5
|
-
Audience: Shader-tool authors, lowering-backend authors, and maintainers
|
|
6
|
-
Summary: Defines DXBC decoding ownership, strictness, dependency direction, and target-language non-goals.
|
|
7
|
-
|
|
8
|
-
## Purpose
|
|
9
|
-
|
|
10
|
-
`format-dxbc` turns caller-supplied DXBC bytes into validated container,
|
|
11
|
-
signature, program, operand, declaration, and instruction records. It stops
|
|
12
|
-
before target-language code generation.
|
|
13
|
-
|
|
14
|
-
## Dependency direction
|
|
15
|
-
|
|
16
|
-
```text
|
|
17
|
-
caller or format-hlsl
|
|
18
|
-
|
|
|
19
|
-
| DXBC bytes
|
|
20
|
-
v
|
|
21
|
-
format-dxbc
|
|
22
|
-
/ \
|
|
23
|
-
v v
|
|
24
|
-
format-webgl format-webgpu
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
The package has no runtime dependency and its public source works in browsers
|
|
28
|
-
and Node. Lowering packages depend on its decoded records; it does not import
|
|
29
|
-
them.
|
|
30
|
-
|
|
31
|
-
## Owned responsibilities
|
|
32
|
-
|
|
33
|
-
- DXBC magic, header, checksum field, total-size, and chunk-directory parsing.
|
|
34
|
-
- Bounds-checked access to chunk payloads.
|
|
35
|
-
- `ISGN`, `ISG1`, `OSGN`, `OSG1`, `OSG5`, `PCSG`, and `PSG1` signature
|
|
36
|
-
records.
|
|
37
|
-
- `SHEX` and `SHDR` program version and token-stream reading.
|
|
38
|
-
- SM4/SM5 opcode, operand, declaration, control, and extension-token decoding.
|
|
39
|
-
- SM5.1 binding-range and resource-reference records.
|
|
40
|
-
- JSON-compatible output and an internal raw-object mode.
|
|
41
|
-
- Structured decode errors with source and offset details.
|
|
42
|
-
|
|
43
|
-
## Ownership elsewhere
|
|
44
|
-
|
|
45
|
-
- Compiled effect containers, permutations, techniques, and binding manifests
|
|
46
|
-
belong to `format-hlsl`.
|
|
47
|
-
- GLSL ES generation and WebGL-specific register/storage policy belong to
|
|
48
|
-
`format-webgl`.
|
|
49
|
-
- WGSL generation, pass-global WebGPU binding allocation, and Carbon WebGPU assembly
|
|
50
|
-
belong to `format-webgpu`.
|
|
51
|
-
- GPU shader-module and pipeline realization belongs to engine packages.
|
|
52
|
-
|
|
53
|
-
## Strictness
|
|
54
|
-
|
|
55
|
-
The reader validates container and chunk bounds before exposing data.
|
|
56
|
-
Executable instructions must consume exactly their declared token length.
|
|
57
|
-
Declarations decode the payload forms implemented by the package and retain
|
|
58
|
-
remaining valid words in `tailTokens`, allowing unusual stages to remain
|
|
59
|
-
inspectable without pretending every declaration payload has a specialized
|
|
60
|
-
projection.
|
|
61
|
-
|
|
62
|
-
The opcode-name table covers the SM4/SM5 vocabulary used for framing. That does
|
|
63
|
-
not imply every opcode has a target-language implementation in every lowering
|
|
64
|
-
package.
|
|
65
|
-
|
|
66
|
-
## Output stability
|
|
67
|
-
|
|
68
|
-
`emit: "json"` is the stable integration surface. It returns plain data and
|
|
69
|
-
converts typed arrays into number arrays.
|
|
70
|
-
|
|
71
|
-
`emit: "raw"` exposes package-internal class instances for advanced backends.
|
|
72
|
-
Those classes are not public npm exports; consumers should treat their concrete
|
|
73
|
-
constructors as internal and depend only on the fields used by the owning
|
|
74
|
-
lowering package.
|
|
75
|
-
|
|
76
|
-
## Related documentation
|
|
77
|
-
|
|
78
|
-
- [Package documentation](README.md)
|
|
79
|
-
- [Public API reference](reference/api.md)
|
|
80
|
-
- [Decoded output contract](reference/decoded-output.md)
|
|
1
|
+
# Architecture and boundaries
|
|
2
|
+
|
|
3
|
+
Status: Evolving
|
|
4
|
+
Scope: `@carbonenginejs/runtime-resource/formats/dxbc`
|
|
5
|
+
Audience: Shader-tool authors, lowering-backend authors, and maintainers
|
|
6
|
+
Summary: Defines DXBC decoding ownership, strictness, dependency direction, and target-language non-goals.
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
|
|
10
|
+
`format-dxbc` turns caller-supplied DXBC bytes into validated container,
|
|
11
|
+
signature, program, operand, declaration, and instruction records. It stops
|
|
12
|
+
before target-language code generation.
|
|
13
|
+
|
|
14
|
+
## Dependency direction
|
|
15
|
+
|
|
16
|
+
```text
|
|
17
|
+
caller or format-hlsl
|
|
18
|
+
|
|
|
19
|
+
| DXBC bytes
|
|
20
|
+
v
|
|
21
|
+
format-dxbc
|
|
22
|
+
/ \
|
|
23
|
+
v v
|
|
24
|
+
format-webgl format-webgpu
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
The package has no runtime dependency and its public source works in browsers
|
|
28
|
+
and Node. Lowering packages depend on its decoded records; it does not import
|
|
29
|
+
them.
|
|
30
|
+
|
|
31
|
+
## Owned responsibilities
|
|
32
|
+
|
|
33
|
+
- DXBC magic, header, checksum field, total-size, and chunk-directory parsing.
|
|
34
|
+
- Bounds-checked access to chunk payloads.
|
|
35
|
+
- `ISGN`, `ISG1`, `OSGN`, `OSG1`, `OSG5`, `PCSG`, and `PSG1` signature
|
|
36
|
+
records.
|
|
37
|
+
- `SHEX` and `SHDR` program version and token-stream reading.
|
|
38
|
+
- SM4/SM5 opcode, operand, declaration, control, and extension-token decoding.
|
|
39
|
+
- SM5.1 binding-range and resource-reference records.
|
|
40
|
+
- JSON-compatible output and an internal raw-object mode.
|
|
41
|
+
- Structured decode errors with source and offset details.
|
|
42
|
+
|
|
43
|
+
## Ownership elsewhere
|
|
44
|
+
|
|
45
|
+
- Compiled effect containers, permutations, techniques, and binding manifests
|
|
46
|
+
belong to `format-hlsl`.
|
|
47
|
+
- GLSL ES generation and WebGL-specific register/storage policy belong to
|
|
48
|
+
`format-webgl`.
|
|
49
|
+
- WGSL generation, pass-global WebGPU binding allocation, and Carbon WebGPU assembly
|
|
50
|
+
belong to `format-webgpu`.
|
|
51
|
+
- GPU shader-module and pipeline realization belongs to engine packages.
|
|
52
|
+
|
|
53
|
+
## Strictness
|
|
54
|
+
|
|
55
|
+
The reader validates container and chunk bounds before exposing data.
|
|
56
|
+
Executable instructions must consume exactly their declared token length.
|
|
57
|
+
Declarations decode the payload forms implemented by the package and retain
|
|
58
|
+
remaining valid words in `tailTokens`, allowing unusual stages to remain
|
|
59
|
+
inspectable without pretending every declaration payload has a specialized
|
|
60
|
+
projection.
|
|
61
|
+
|
|
62
|
+
The opcode-name table covers the SM4/SM5 vocabulary used for framing. That does
|
|
63
|
+
not imply every opcode has a target-language implementation in every lowering
|
|
64
|
+
package.
|
|
65
|
+
|
|
66
|
+
## Output stability
|
|
67
|
+
|
|
68
|
+
`emit: "json"` is the stable integration surface. It returns plain data and
|
|
69
|
+
converts typed arrays into number arrays.
|
|
70
|
+
|
|
71
|
+
`emit: "raw"` exposes package-internal class instances for advanced backends.
|
|
72
|
+
Those classes are not public npm exports; consumers should treat their concrete
|
|
73
|
+
constructors as internal and depend only on the fields used by the owning
|
|
74
|
+
lowering package.
|
|
75
|
+
|
|
76
|
+
## Related documentation
|
|
77
|
+
|
|
78
|
+
- [Package documentation](README.md)
|
|
79
|
+
- [Public API reference](reference/api.md)
|
|
80
|
+
- [Decoded output contract](reference/decoded-output.md)
|
|
@@ -1,77 +1,105 @@
|
|
|
1
|
-
# Public API reference
|
|
2
|
-
|
|
3
|
-
Status: Evolving
|
|
4
|
-
Scope: `@carbonenginejs/runtime-resource/formats/dxbc`
|
|
5
|
-
Audience: Shader-tool authors and lowering-backend authors
|
|
6
|
-
Summary: Defines the public `CjsDxbcFormat` profile, one-shot helpers, options, and failure behavior.
|
|
7
|
-
|
|
8
|
-
## Export
|
|
9
|
-
|
|
10
|
-
The package root exports `CjsDxbcFormat` as both a named and default export:
|
|
11
|
-
|
|
12
|
-
```js
|
|
13
|
-
import CjsDxbcFormat, {
|
|
14
|
-
CjsDxbcFormat as DxbcFormat
|
|
15
|
-
} from "@carbonenginejs/runtime-resource/formats/dxbc";
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
No internal container, signature, program, decoder, or error class is exposed
|
|
19
|
-
through the package export map.
|
|
20
|
-
|
|
21
|
-
## Reusable profile
|
|
22
|
-
|
|
23
|
-
```js
|
|
24
|
-
const reader = new DxbcFormat({
|
|
25
|
-
emit: "json",
|
|
26
|
-
source: "example.dxbc",
|
|
27
|
-
decodeInstructions: true
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
const decoded = reader.Read(shaderBytes);
|
|
31
|
-
const summary = reader.Inspect(shaderBytes);
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
| Instance method | Purpose |
|
|
35
|
-
| --- | --- |
|
|
36
|
-
| `SetValues(options)` | Merges reusable profile defaults and returns the profile. |
|
|
37
|
-
| `GetValues(options?)` | Returns effective values with optional per-call overrides. |
|
|
38
|
-
| `Read(bytes, options?)` | Reads one DXBC payload using the effective profile. |
|
|
39
|
-
| `Inspect(bytes, options?)` | Returns container, stage, shader-model, and signature counts without instruction decoding. |
|
|
40
|
-
|
|
41
|
-
## One-shot helpers
|
|
42
|
-
|
|
43
|
-
| Static helper | Purpose |
|
|
44
|
-
| --- | --- |
|
|
45
|
-
| `isDxbc(bytes)` | Returns `true` when input starts with the DXBC magic; invalid input returns `false`. |
|
|
46
|
-
| `read(bytes, options?)` | Reads one DXBC payload. |
|
|
47
|
-
| `inspect(bytes, options?)` | Inspects one payload without instruction decoding. |
|
|
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
|
-
|
|
1
|
+
# Public API reference
|
|
2
|
+
|
|
3
|
+
Status: Evolving
|
|
4
|
+
Scope: `@carbonenginejs/runtime-resource/formats/dxbc`
|
|
5
|
+
Audience: Shader-tool authors and lowering-backend authors
|
|
6
|
+
Summary: Defines the public `CjsDxbcFormat` profile, one-shot helpers, options, and failure behavior.
|
|
7
|
+
|
|
8
|
+
## Export
|
|
9
|
+
|
|
10
|
+
The package root exports `CjsDxbcFormat` as both a named and default export:
|
|
11
|
+
|
|
12
|
+
```js
|
|
13
|
+
import CjsDxbcFormat, {
|
|
14
|
+
CjsDxbcFormat as DxbcFormat
|
|
15
|
+
} from "@carbonenginejs/runtime-resource/formats/dxbc";
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
No internal container, signature, program, decoder, or error class is exposed
|
|
19
|
+
through the package export map.
|
|
20
|
+
|
|
21
|
+
## Reusable profile
|
|
22
|
+
|
|
23
|
+
```js
|
|
24
|
+
const reader = new DxbcFormat({
|
|
25
|
+
emit: "json",
|
|
26
|
+
source: "example.dxbc",
|
|
27
|
+
decodeInstructions: true
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
const decoded = reader.Read(shaderBytes);
|
|
31
|
+
const summary = reader.Inspect(shaderBytes);
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
| Instance method | Purpose |
|
|
35
|
+
| --- | --- |
|
|
36
|
+
| `SetValues(options)` | Merges reusable profile defaults and returns the profile. |
|
|
37
|
+
| `GetValues(options?)` | Returns effective values with optional per-call overrides. |
|
|
38
|
+
| `Read(bytes, options?)` | Reads one DXBC payload using the effective profile. |
|
|
39
|
+
| `Inspect(bytes, options?)` | Returns container, stage, shader-model, and signature counts without instruction decoding. |
|
|
40
|
+
|
|
41
|
+
## One-shot helpers
|
|
42
|
+
|
|
43
|
+
| Static helper | Purpose |
|
|
44
|
+
| --- | --- |
|
|
45
|
+
| `isDxbc(bytes)` | Returns `true` when input starts with the DXBC magic; invalid input returns `false`. |
|
|
46
|
+
| `read(bytes, options?)` | Reads one DXBC payload. |
|
|
47
|
+
| `inspect(bytes, options?)` | Inspects one payload without instruction decoding. |
|
|
48
|
+
| `disassemble(input, options?)` | Returns an assembly listing of the decoded instruction stream. |
|
|
49
|
+
| `toJSON(value)` | Deep-converts supported values to JSON-compatible data. |
|
|
50
|
+
|
|
51
|
+
The class also exposes `OUTPUT_JSON`, `OUTPUT_RAW`, input/output media metadata,
|
|
52
|
+
and the format's supported input type.
|
|
53
|
+
|
|
54
|
+
## Options
|
|
55
|
+
|
|
56
|
+
| Option | Default | Meaning |
|
|
57
|
+
| --- | --- | --- |
|
|
58
|
+
| `emit` | `"json"` | `"json"` returns plain data; `"raw"` returns internal decoder objects. |
|
|
59
|
+
| `source` | `"memory"` | Caller-owned label included in error details; no path is opened. |
|
|
60
|
+
| `decodeInstructions` | `true` | When false, reads the container, signatures, and program header without decoding instructions. |
|
|
61
|
+
|
|
62
|
+
Inputs may be `Uint8Array`, `ArrayBuffer`, Node `Buffer`, `DataView`, or another
|
|
63
|
+
array-buffer view.
|
|
64
|
+
|
|
65
|
+
## Disassembly
|
|
66
|
+
|
|
67
|
+
`disassemble` renders decoded instructions as assembly text. It exists so a
|
|
68
|
+
translated shader can be checked against the bytecode it was translated from:
|
|
69
|
+
comparing emitted GLSL or WGSL against the original HLSL proves nothing, because
|
|
70
|
+
the compiler that produced the bytecode already rewrote the program, and an
|
|
71
|
+
emitter cannot be its own oracle.
|
|
72
|
+
|
|
73
|
+
```js
|
|
74
|
+
const listing = CjsDxbcFormat.disassemble(stageBytes);
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Bytes, a previous `read` result, and a decoder record are all accepted, so a
|
|
78
|
+
caller that already decoded the payload does not decode it twice.
|
|
79
|
+
|
|
80
|
+
| Option | Default | Meaning |
|
|
81
|
+
| --- | --- | --- |
|
|
82
|
+
| `declarations` | `true` | Include declaration instructions. |
|
|
83
|
+
| `numbers` | `true` | Prefix executable instructions with their index. Declarations are not numbered, so the numbering matches the order a backend walks. |
|
|
84
|
+
| `indent` | `true` | Indent control-flow bodies. |
|
|
85
|
+
|
|
86
|
+
Component selection prints exactly as encoded rather than normalized. A
|
|
87
|
+
destination mask selects source components by position, so `mad r[2].xyw,
|
|
88
|
+
r[2].xxxx, v[3].xyxz, r[5].xyxz` writes `x`, `y`, and `w` from source components
|
|
89
|
+
0, 1, and 3. Normalizing that away would hide the most common class of
|
|
90
|
+
translation mistake.
|
|
91
|
+
|
|
92
|
+
## Errors
|
|
93
|
+
|
|
94
|
+
Invalid options and unsupported input types throw `TypeError`. Malformed DXBC
|
|
95
|
+
throws an internal `DxbcReadError` carrying a stable human-readable message and
|
|
96
|
+
a `details` record with relevant source, offset, size, chunk, or opcode
|
|
97
|
+
information.
|
|
98
|
+
|
|
99
|
+
`isDxbc` is the non-throwing sniff operation.
|
|
100
|
+
|
|
101
|
+
## Related documentation
|
|
102
|
+
|
|
103
|
+
- [Decoded output contract](decoded-output.md)
|
|
104
|
+
- [Architecture and boundaries](../architecture.md)
|
|
105
|
+
- [Class-purpose catalog](classes/README.md)
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
# DXBC class catalog
|
|
2
|
-
|
|
3
|
-
Status: Deprecated
|
|
4
|
-
Scope: `@carbonenginejs/runtime-resource/formats/dxbc` maintained classes
|
|
5
|
-
Audience: Users, maintainers, and automated readers
|
|
6
|
-
Summary: Points to the canonical package-wide class catalog after format-package consolidation.
|
|
7
|
-
|
|
8
|
-
The maintained DXBC entries now live in the
|
|
9
|
-
[package-wide formats class catalog](../../../../reference/classes/formats.md#dxbc).
|
|
1
|
+
# DXBC class catalog
|
|
2
|
+
|
|
3
|
+
Status: Deprecated
|
|
4
|
+
Scope: `@carbonenginejs/runtime-resource/formats/dxbc` maintained classes
|
|
5
|
+
Audience: Users, maintainers, and automated readers
|
|
6
|
+
Summary: Points to the canonical package-wide class catalog after format-package consolidation.
|
|
7
|
+
|
|
8
|
+
The maintained DXBC entries now live in the
|
|
9
|
+
[package-wide formats class catalog](../../../../reference/classes/formats.md#dxbc).
|