@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,220 +1,220 @@
|
|
|
1
|
-
import { HlslRenderContextEnum } from '../HlslRenderContextEnum.js';
|
|
2
|
-
import { HlslEffectDescription, ANY_TECHNIQUE } from './HlslEffectDescription.js';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Trinity shader wrapper around a decoded `HlslEffectDescription`.
|
|
6
|
-
*/
|
|
7
|
-
class HlslShader {
|
|
8
|
-
/**
|
|
9
|
-
* Creates an empty shader wrapper.
|
|
10
|
-
*/
|
|
11
|
-
constructor() {
|
|
12
|
-
this.m_sortValue = 0;
|
|
13
|
-
this.m_effect = new HlslEffectDescription();
|
|
14
|
-
this.m_hasVertexBufferAccessInRtShadow = false;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Finds a technique index by name, or returns the first technique for `ANY_TECHNIQUE`.
|
|
19
|
-
*
|
|
20
|
-
* @param {string} [name] Technique name to locate.
|
|
21
|
-
* @returns {number} Technique index, or -1 when missing.
|
|
22
|
-
*/
|
|
23
|
-
GetTechniqueIndex(name = ANY_TECHNIQUE) {
|
|
24
|
-
if (!this.m_effect.techniques.length) {
|
|
25
|
-
return -1;
|
|
26
|
-
}
|
|
27
|
-
if (name === ANY_TECHNIQUE || name === null || name === undefined) {
|
|
28
|
-
return 0;
|
|
29
|
-
}
|
|
30
|
-
return this.m_effect.techniques.findIndex(technique => technique.name === name);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Returns the number of passes in a decoded technique.
|
|
35
|
-
*
|
|
36
|
-
* @param {number} techniqueIndex Technique index.
|
|
37
|
-
* @returns {number} Pass count.
|
|
38
|
-
*/
|
|
39
|
-
GetPassCount(techniqueIndex) {
|
|
40
|
-
const technique = this.m_effect.techniques[techniqueIndex];
|
|
41
|
-
return technique ? technique.passes.length : 0;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Applies shader program and render-state handles for one pass to a render context.
|
|
46
|
-
*
|
|
47
|
-
* @param {number} techniqueIndex Technique index.
|
|
48
|
-
* @param {number} passIndex Pass index.
|
|
49
|
-
* @param {object} renderContext Render context with an `m_esm` state manager.
|
|
50
|
-
* @returns {boolean} True when the pass existed.
|
|
51
|
-
*/
|
|
52
|
-
ApplyAllStateForPass(techniqueIndex, passIndex, renderContext) {
|
|
53
|
-
const pass = this.m_effect.techniques[techniqueIndex]?.passes?.[passIndex];
|
|
54
|
-
if (!pass) return false;
|
|
55
|
-
renderContext?.m_esm?.ApplyShaderProgram?.(pass.shaderProgram);
|
|
56
|
-
renderContext?.m_esm?.ApplyRenderStates?.(pass.renderStates);
|
|
57
|
-
return true;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Applies only render-state handles for one pass to a render context.
|
|
62
|
-
*
|
|
63
|
-
* @param {number} techniqueIndex Technique index.
|
|
64
|
-
* @param {number} passIndex Pass index.
|
|
65
|
-
* @param {object} renderContext Render context with an `m_esm` state manager.
|
|
66
|
-
* @returns {boolean} True when the pass existed.
|
|
67
|
-
*/
|
|
68
|
-
ApplyRenderStates(techniqueIndex, passIndex, renderContext) {
|
|
69
|
-
const pass = this.m_effect.techniques[techniqueIndex]?.passes?.[passIndex];
|
|
70
|
-
if (!pass) return false;
|
|
71
|
-
renderContext?.m_esm?.ApplyRenderStates?.(pass.renderStates);
|
|
72
|
-
return true;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* Registers and applies a shader program override for a pass.
|
|
77
|
-
*
|
|
78
|
-
* @param {number} techniqueIndex Base technique index.
|
|
79
|
-
* @param {number} passIndex Base pass index.
|
|
80
|
-
* @param {HlslShader} overrideShader Shader providing the override program.
|
|
81
|
-
* @param {number} overridePassIndex Override pass index.
|
|
82
|
-
* @param {object} renderContext Render context with an `m_esm` state manager.
|
|
83
|
-
* @returns {number} Override program handle, or 0 when unavailable.
|
|
84
|
-
*/
|
|
85
|
-
ApplyShaderOverride(techniqueIndex, passIndex, overrideShader, overridePassIndex, renderContext) {
|
|
86
|
-
const program = this.m_effect.techniques[techniqueIndex]?.passes?.[passIndex]?.shaderProgram;
|
|
87
|
-
const overrideProgram = overrideShader?.m_effect?.techniques?.[0]?.passes?.[overridePassIndex]?.shaderProgram;
|
|
88
|
-
if (!program || !overrideProgram) return 0;
|
|
89
|
-
const combined = renderContext?.m_esm?.RegisterShaderProgramOverride?.(program, overrideProgram) || 0;
|
|
90
|
-
renderContext?.m_esm?.ApplyShaderProgram?.(combined);
|
|
91
|
-
return combined;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* Returns the shader-stage bit mask for a technique.
|
|
96
|
-
*
|
|
97
|
-
* @param {number} techniqueIndex Technique index.
|
|
98
|
-
* @returns {number} Shader-stage bit mask.
|
|
99
|
-
*/
|
|
100
|
-
GetShaderTypeMask(techniqueIndex) {
|
|
101
|
-
return this.m_effect.techniques[techniqueIndex]?.shaderTypeMask || 0;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* Finds the first constant metadata record with the supplied name.
|
|
106
|
-
*
|
|
107
|
-
* @param {string} name Constant name.
|
|
108
|
-
* @returns {object|null} Constant metadata or null.
|
|
109
|
-
*/
|
|
110
|
-
GetConstant(name) {
|
|
111
|
-
for (const technique of this.m_effect.techniques) {
|
|
112
|
-
for (const pass of technique.passes) {
|
|
113
|
-
for (const stage of pass.stageInputs) {
|
|
114
|
-
const found = stage.constants.find(constant => constant.name === name);
|
|
115
|
-
if (found) return found;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
return null;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
/**
|
|
123
|
-
* Finds the first SRV or UAV resource metadata record with the supplied name.
|
|
124
|
-
*
|
|
125
|
-
* @param {string} name Resource name.
|
|
126
|
-
* @returns {object|null} Resource metadata or null.
|
|
127
|
-
*/
|
|
128
|
-
GetResource(name) {
|
|
129
|
-
for (const technique of this.m_effect.techniques) {
|
|
130
|
-
for (const pass of technique.passes) {
|
|
131
|
-
for (const stage of pass.stageInputs) {
|
|
132
|
-
for (const resource of stage.resources.values()) {
|
|
133
|
-
if (resource.name === name) return resource;
|
|
134
|
-
}
|
|
135
|
-
for (const resource of stage.uavs.values()) {
|
|
136
|
-
if (resource.name === name) return resource;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
return null;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
/**
|
|
145
|
-
* Looks up annotations attached to a parameter name.
|
|
146
|
-
*
|
|
147
|
-
* @param {string} parameterName Parameter name.
|
|
148
|
-
* @returns {object[]|null} Annotation records or null.
|
|
149
|
-
*/
|
|
150
|
-
GetParameterAnnotations(parameterName) {
|
|
151
|
-
return this.m_effect.annotations.get(parameterName) || null;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
/**
|
|
155
|
-
* Returns Carbon's compact pass sort value.
|
|
156
|
-
*
|
|
157
|
-
* @returns {number} Sort value.
|
|
158
|
-
*/
|
|
159
|
-
GetSortValue() {
|
|
160
|
-
return this.m_sortValue;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
/**
|
|
164
|
-
* Returns the decoded effect description.
|
|
165
|
-
*
|
|
166
|
-
* @returns {HlslEffectDescription} Effect description.
|
|
167
|
-
*/
|
|
168
|
-
GetEffectDescription() {
|
|
169
|
-
return this.m_effect;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
/**
|
|
173
|
-
* Returns the decoded effect description.
|
|
174
|
-
*
|
|
175
|
-
* @returns {HlslEffectDescription} Effect description.
|
|
176
|
-
*/
|
|
177
|
-
GetEffect() {
|
|
178
|
-
return this.m_effect;
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
/**
|
|
182
|
-
* Recomputes Carbon's sort value from the first technique/pass handles.
|
|
183
|
-
*/
|
|
184
|
-
ProcessEffect() {
|
|
185
|
-
this.m_sortValue = 0;
|
|
186
|
-
const technique = this.m_effect.techniques[0];
|
|
187
|
-
const pass = technique?.passes?.[0];
|
|
188
|
-
if (!pass) return;
|
|
189
|
-
const ps = pass.stageInputs[HlslRenderContextEnum.PIXEL_SHADER]?.m_shader & 0x3ff;
|
|
190
|
-
const vs = pass.stageInputs[HlslRenderContextEnum.VERTEX_SHADER]?.m_shader & 0x3ff;
|
|
191
|
-
const states = pass.renderStates & 0x3ff;
|
|
192
|
-
const numPasses = technique.passes.length & 0x3;
|
|
193
|
-
this.m_sortValue = numPasses << 30 | ps << 20 | vs << 10 | states;
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
/**
|
|
197
|
-
* Reports whether this shader uses vertex-buffer access in RT shadow mode.
|
|
198
|
-
*
|
|
199
|
-
* @returns {boolean} True when RT shadow vertex-buffer access is flagged.
|
|
200
|
-
*/
|
|
201
|
-
HasVertexBufferAccessInRtShadow() {
|
|
202
|
-
return this.m_hasVertexBufferAccessInRtShadow;
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
/**
|
|
206
|
-
* Returns a JSON-safe shader wrapper summary.
|
|
207
|
-
*
|
|
208
|
-
* @returns {object} Serializable shader summary.
|
|
209
|
-
*/
|
|
210
|
-
toJSON() {
|
|
211
|
-
return {
|
|
212
|
-
m_sortValue: this.m_sortValue,
|
|
213
|
-
m_hasVertexBufferAccessInRtShadow: this.m_hasVertexBufferAccessInRtShadow,
|
|
214
|
-
effect: this.m_effect.toJSON()
|
|
215
|
-
};
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
export { HlslShader };
|
|
220
|
-
//# sourceMappingURL=HlslShader.js.map
|
|
1
|
+
import { HlslRenderContextEnum } from '../HlslRenderContextEnum.js';
|
|
2
|
+
import { HlslEffectDescription, ANY_TECHNIQUE } from './HlslEffectDescription.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Trinity shader wrapper around a decoded `HlslEffectDescription`.
|
|
6
|
+
*/
|
|
7
|
+
class HlslShader {
|
|
8
|
+
/**
|
|
9
|
+
* Creates an empty shader wrapper.
|
|
10
|
+
*/
|
|
11
|
+
constructor() {
|
|
12
|
+
this.m_sortValue = 0;
|
|
13
|
+
this.m_effect = new HlslEffectDescription();
|
|
14
|
+
this.m_hasVertexBufferAccessInRtShadow = false;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Finds a technique index by name, or returns the first technique for `ANY_TECHNIQUE`.
|
|
19
|
+
*
|
|
20
|
+
* @param {string} [name] Technique name to locate.
|
|
21
|
+
* @returns {number} Technique index, or -1 when missing.
|
|
22
|
+
*/
|
|
23
|
+
GetTechniqueIndex(name = ANY_TECHNIQUE) {
|
|
24
|
+
if (!this.m_effect.techniques.length) {
|
|
25
|
+
return -1;
|
|
26
|
+
}
|
|
27
|
+
if (name === ANY_TECHNIQUE || name === null || name === undefined) {
|
|
28
|
+
return 0;
|
|
29
|
+
}
|
|
30
|
+
return this.m_effect.techniques.findIndex(technique => technique.name === name);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Returns the number of passes in a decoded technique.
|
|
35
|
+
*
|
|
36
|
+
* @param {number} techniqueIndex Technique index.
|
|
37
|
+
* @returns {number} Pass count.
|
|
38
|
+
*/
|
|
39
|
+
GetPassCount(techniqueIndex) {
|
|
40
|
+
const technique = this.m_effect.techniques[techniqueIndex];
|
|
41
|
+
return technique ? technique.passes.length : 0;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Applies shader program and render-state handles for one pass to a render context.
|
|
46
|
+
*
|
|
47
|
+
* @param {number} techniqueIndex Technique index.
|
|
48
|
+
* @param {number} passIndex Pass index.
|
|
49
|
+
* @param {object} renderContext Render context with an `m_esm` state manager.
|
|
50
|
+
* @returns {boolean} True when the pass existed.
|
|
51
|
+
*/
|
|
52
|
+
ApplyAllStateForPass(techniqueIndex, passIndex, renderContext) {
|
|
53
|
+
const pass = this.m_effect.techniques[techniqueIndex]?.passes?.[passIndex];
|
|
54
|
+
if (!pass) return false;
|
|
55
|
+
renderContext?.m_esm?.ApplyShaderProgram?.(pass.shaderProgram);
|
|
56
|
+
renderContext?.m_esm?.ApplyRenderStates?.(pass.renderStates);
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Applies only render-state handles for one pass to a render context.
|
|
62
|
+
*
|
|
63
|
+
* @param {number} techniqueIndex Technique index.
|
|
64
|
+
* @param {number} passIndex Pass index.
|
|
65
|
+
* @param {object} renderContext Render context with an `m_esm` state manager.
|
|
66
|
+
* @returns {boolean} True when the pass existed.
|
|
67
|
+
*/
|
|
68
|
+
ApplyRenderStates(techniqueIndex, passIndex, renderContext) {
|
|
69
|
+
const pass = this.m_effect.techniques[techniqueIndex]?.passes?.[passIndex];
|
|
70
|
+
if (!pass) return false;
|
|
71
|
+
renderContext?.m_esm?.ApplyRenderStates?.(pass.renderStates);
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Registers and applies a shader program override for a pass.
|
|
77
|
+
*
|
|
78
|
+
* @param {number} techniqueIndex Base technique index.
|
|
79
|
+
* @param {number} passIndex Base pass index.
|
|
80
|
+
* @param {HlslShader} overrideShader Shader providing the override program.
|
|
81
|
+
* @param {number} overridePassIndex Override pass index.
|
|
82
|
+
* @param {object} renderContext Render context with an `m_esm` state manager.
|
|
83
|
+
* @returns {number} Override program handle, or 0 when unavailable.
|
|
84
|
+
*/
|
|
85
|
+
ApplyShaderOverride(techniqueIndex, passIndex, overrideShader, overridePassIndex, renderContext) {
|
|
86
|
+
const program = this.m_effect.techniques[techniqueIndex]?.passes?.[passIndex]?.shaderProgram;
|
|
87
|
+
const overrideProgram = overrideShader?.m_effect?.techniques?.[0]?.passes?.[overridePassIndex]?.shaderProgram;
|
|
88
|
+
if (!program || !overrideProgram) return 0;
|
|
89
|
+
const combined = renderContext?.m_esm?.RegisterShaderProgramOverride?.(program, overrideProgram) || 0;
|
|
90
|
+
renderContext?.m_esm?.ApplyShaderProgram?.(combined);
|
|
91
|
+
return combined;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Returns the shader-stage bit mask for a technique.
|
|
96
|
+
*
|
|
97
|
+
* @param {number} techniqueIndex Technique index.
|
|
98
|
+
* @returns {number} Shader-stage bit mask.
|
|
99
|
+
*/
|
|
100
|
+
GetShaderTypeMask(techniqueIndex) {
|
|
101
|
+
return this.m_effect.techniques[techniqueIndex]?.shaderTypeMask || 0;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Finds the first constant metadata record with the supplied name.
|
|
106
|
+
*
|
|
107
|
+
* @param {string} name Constant name.
|
|
108
|
+
* @returns {object|null} Constant metadata or null.
|
|
109
|
+
*/
|
|
110
|
+
GetConstant(name) {
|
|
111
|
+
for (const technique of this.m_effect.techniques) {
|
|
112
|
+
for (const pass of technique.passes) {
|
|
113
|
+
for (const stage of pass.stageInputs) {
|
|
114
|
+
const found = stage.constants.find(constant => constant.name === name);
|
|
115
|
+
if (found) return found;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return null;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Finds the first SRV or UAV resource metadata record with the supplied name.
|
|
124
|
+
*
|
|
125
|
+
* @param {string} name Resource name.
|
|
126
|
+
* @returns {object|null} Resource metadata or null.
|
|
127
|
+
*/
|
|
128
|
+
GetResource(name) {
|
|
129
|
+
for (const technique of this.m_effect.techniques) {
|
|
130
|
+
for (const pass of technique.passes) {
|
|
131
|
+
for (const stage of pass.stageInputs) {
|
|
132
|
+
for (const resource of stage.resources.values()) {
|
|
133
|
+
if (resource.name === name) return resource;
|
|
134
|
+
}
|
|
135
|
+
for (const resource of stage.uavs.values()) {
|
|
136
|
+
if (resource.name === name) return resource;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Looks up annotations attached to a parameter name.
|
|
146
|
+
*
|
|
147
|
+
* @param {string} parameterName Parameter name.
|
|
148
|
+
* @returns {object[]|null} Annotation records or null.
|
|
149
|
+
*/
|
|
150
|
+
GetParameterAnnotations(parameterName) {
|
|
151
|
+
return this.m_effect.annotations.get(parameterName) || null;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Returns Carbon's compact pass sort value.
|
|
156
|
+
*
|
|
157
|
+
* @returns {number} Sort value.
|
|
158
|
+
*/
|
|
159
|
+
GetSortValue() {
|
|
160
|
+
return this.m_sortValue;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Returns the decoded effect description.
|
|
165
|
+
*
|
|
166
|
+
* @returns {HlslEffectDescription} Effect description.
|
|
167
|
+
*/
|
|
168
|
+
GetEffectDescription() {
|
|
169
|
+
return this.m_effect;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Returns the decoded effect description.
|
|
174
|
+
*
|
|
175
|
+
* @returns {HlslEffectDescription} Effect description.
|
|
176
|
+
*/
|
|
177
|
+
GetEffect() {
|
|
178
|
+
return this.m_effect;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Recomputes Carbon's sort value from the first technique/pass handles.
|
|
183
|
+
*/
|
|
184
|
+
ProcessEffect() {
|
|
185
|
+
this.m_sortValue = 0;
|
|
186
|
+
const technique = this.m_effect.techniques[0];
|
|
187
|
+
const pass = technique?.passes?.[0];
|
|
188
|
+
if (!pass) return;
|
|
189
|
+
const ps = pass.stageInputs[HlslRenderContextEnum.PIXEL_SHADER]?.m_shader & 0x3ff;
|
|
190
|
+
const vs = pass.stageInputs[HlslRenderContextEnum.VERTEX_SHADER]?.m_shader & 0x3ff;
|
|
191
|
+
const states = pass.renderStates & 0x3ff;
|
|
192
|
+
const numPasses = technique.passes.length & 0x3;
|
|
193
|
+
this.m_sortValue = numPasses << 30 | ps << 20 | vs << 10 | states;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Reports whether this shader uses vertex-buffer access in RT shadow mode.
|
|
198
|
+
*
|
|
199
|
+
* @returns {boolean} True when RT shadow vertex-buffer access is flagged.
|
|
200
|
+
*/
|
|
201
|
+
HasVertexBufferAccessInRtShadow() {
|
|
202
|
+
return this.m_hasVertexBufferAccessInRtShadow;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* Returns a JSON-safe shader wrapper summary.
|
|
207
|
+
*
|
|
208
|
+
* @returns {object} Serializable shader summary.
|
|
209
|
+
*/
|
|
210
|
+
toJSON() {
|
|
211
|
+
return {
|
|
212
|
+
m_sortValue: this.m_sortValue,
|
|
213
|
+
m_hasVertexBufferAccessInRtShadow: this.m_hasVertexBufferAccessInRtShadow,
|
|
214
|
+
effect: this.m_effect.toJSON()
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
export { HlslShader };
|
|
220
|
+
//# sourceMappingURL=HlslShader.js.map
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Name/value shader permutation option used during effect lookup.
|
|
3
|
-
*/
|
|
4
|
-
class HlslShaderOption {
|
|
5
|
-
/**
|
|
6
|
-
* Creates a shader option selection.
|
|
7
|
-
*
|
|
8
|
-
* @param {string} [name] Permutation axis name.
|
|
9
|
-
* @param {string} [value] Selected option value.
|
|
10
|
-
*/
|
|
11
|
-
constructor(name = "", value = "") {
|
|
12
|
-
this.name = name;
|
|
13
|
-
this.value = value;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Returns a JSON-safe option selection.
|
|
18
|
-
*
|
|
19
|
-
* @returns {object} Serializable option selection.
|
|
20
|
-
*/
|
|
21
|
-
toJSON() {
|
|
22
|
-
return {
|
|
23
|
-
name: this.name,
|
|
24
|
-
value: this.value
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export { HlslShaderOption };
|
|
30
|
-
//# sourceMappingURL=HlslShaderOption.js.map
|
|
1
|
+
/**
|
|
2
|
+
* Name/value shader permutation option used during effect lookup.
|
|
3
|
+
*/
|
|
4
|
+
class HlslShaderOption {
|
|
5
|
+
/**
|
|
6
|
+
* Creates a shader option selection.
|
|
7
|
+
*
|
|
8
|
+
* @param {string} [name] Permutation axis name.
|
|
9
|
+
* @param {string} [value] Selected option value.
|
|
10
|
+
*/
|
|
11
|
+
constructor(name = "", value = "") {
|
|
12
|
+
this.name = name;
|
|
13
|
+
this.value = value;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Returns a JSON-safe option selection.
|
|
18
|
+
*
|
|
19
|
+
* @returns {object} Serializable option selection.
|
|
20
|
+
*/
|
|
21
|
+
toJSON() {
|
|
22
|
+
return {
|
|
23
|
+
name: this.name,
|
|
24
|
+
value: this.value
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export { HlslShaderOption };
|
|
30
|
+
//# sourceMappingURL=HlslShaderOption.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { CjsHlslFormat, CjsHlslFormat as default } from './CjsHlslFormat.js';
|
|
2
|
-
export { readEffectAnalysis } from './core/analysis.js';
|
|
3
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
export { CjsHlslFormat, CjsHlslFormat as default } from './CjsHlslFormat.js';
|
|
2
|
+
export { readEffectAnalysis } from './core/analysis.js';
|
|
3
|
+
//# sourceMappingURL=index.js.map
|
package/dist/formats/index.js
CHANGED
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
export { CjsBlackFormat } from './black/CjsBlackFormat.js';
|
|
2
|
-
export { CjsBnkFormat } from './bnk/CjsBnkFormat.js';
|
|
3
|
-
export { CjsCmfFormat } from './cmf/CjsCmfFormat.js';
|
|
4
|
-
export { CjsDdsFormat } from './dds/CjsDdsFormat.js';
|
|
5
|
-
export { CjsDxbcFormat } from './dxbc/CjsDxbcFormat.js';
|
|
6
|
-
export { CjsHlslFormat } from './hlsl/CjsHlslFormat.js';
|
|
7
|
-
import '@carbonenginejs/runtime-utils/bytes';
|
|
8
|
-
import './hlsl/core/carbonDescriptionToRuntime.js';
|
|
9
|
-
import '../format/CjsByteReader.js';
|
|
10
|
-
import '../format/compareUtf8.js';
|
|
11
|
-
export { CjsWebglFormat } from './webgl/CjsWebglFormat.js';
|
|
12
|
-
export { CjsWebgpuFormat } from './webgpu/CjsWebgpuFormat.js';
|
|
13
|
-
export { CjsFbxFormat } from './fbx/CjsFbxFormat.js';
|
|
14
|
-
export { CjsFlacFormat } from './flac/CjsFlacFormat.js';
|
|
15
|
-
export { CjsGifFormat } from './gif/CjsGifFormat.js';
|
|
16
|
-
export { CjsGltfFormat } from './gltf/CjsGltfFormat.js';
|
|
17
|
-
export { CjsGr2Format } from './gr2/CjsGr2Format.js';
|
|
18
|
-
export { CjsJpegFormat } from './jpeg/CjsJpegFormat.js';
|
|
19
|
-
export { CjsMp3Format } from './mp3/CjsMp3Format.js';
|
|
20
|
-
export { CjsMp4Format } from './mp4/CjsMp4Format.js';
|
|
21
|
-
export { CjsObjFormat } from './obj/CjsObjFormat.js';
|
|
22
|
-
export { CjsOggFormat } from './ogg/CjsOggFormat.js';
|
|
23
|
-
export { CjsPickleFormat } from './pickle/CjsPickleFormat.js';
|
|
24
|
-
export { CjsPngFormat } from './png/CjsPngFormat.js';
|
|
25
|
-
export { CjsRedFormat } from './red/CjsRedFormat.js';
|
|
26
|
-
export { CjsStlFormat } from './stl/CjsStlFormat.js';
|
|
27
|
-
export { CjsTgaFormat } from './tga/CjsTgaFormat.js';
|
|
28
|
-
export { CjsWavFormat } from './wav/CjsWavFormat.js';
|
|
29
|
-
export { CjsWebmFormat } from './webm/CjsWebmFormat.js';
|
|
30
|
-
export { CjsWebpFormat } from './webp/CjsWebpFormat.js';
|
|
31
|
-
export { CjsWemFormat } from './wem/CjsWemFormat.js';
|
|
32
|
-
export { CjsYamlFormat } from './yaml/CjsYamlFormat.js';
|
|
33
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
export { CjsBlackFormat } from './black/CjsBlackFormat.js';
|
|
2
|
+
export { CjsBnkFormat } from './bnk/CjsBnkFormat.js';
|
|
3
|
+
export { CjsCmfFormat } from './cmf/CjsCmfFormat.js';
|
|
4
|
+
export { CjsDdsFormat } from './dds/CjsDdsFormat.js';
|
|
5
|
+
export { CjsDxbcFormat } from './dxbc/CjsDxbcFormat.js';
|
|
6
|
+
export { CjsHlslFormat } from './hlsl/CjsHlslFormat.js';
|
|
7
|
+
import '@carbonenginejs/runtime-utils/bytes';
|
|
8
|
+
import './hlsl/core/carbonDescriptionToRuntime.js';
|
|
9
|
+
import '../format/CjsByteReader.js';
|
|
10
|
+
import '../format/compareUtf8.js';
|
|
11
|
+
export { CjsWebglFormat } from './webgl/CjsWebglFormat.js';
|
|
12
|
+
export { CjsWebgpuFormat } from './webgpu/CjsWebgpuFormat.js';
|
|
13
|
+
export { CjsFbxFormat } from './fbx/CjsFbxFormat.js';
|
|
14
|
+
export { CjsFlacFormat } from './flac/CjsFlacFormat.js';
|
|
15
|
+
export { CjsGifFormat } from './gif/CjsGifFormat.js';
|
|
16
|
+
export { CjsGltfFormat } from './gltf/CjsGltfFormat.js';
|
|
17
|
+
export { CjsGr2Format } from './gr2/CjsGr2Format.js';
|
|
18
|
+
export { CjsJpegFormat } from './jpeg/CjsJpegFormat.js';
|
|
19
|
+
export { CjsMp3Format } from './mp3/CjsMp3Format.js';
|
|
20
|
+
export { CjsMp4Format } from './mp4/CjsMp4Format.js';
|
|
21
|
+
export { CjsObjFormat } from './obj/CjsObjFormat.js';
|
|
22
|
+
export { CjsOggFormat } from './ogg/CjsOggFormat.js';
|
|
23
|
+
export { CjsPickleFormat } from './pickle/CjsPickleFormat.js';
|
|
24
|
+
export { CjsPngFormat } from './png/CjsPngFormat.js';
|
|
25
|
+
export { CjsRedFormat } from './red/CjsRedFormat.js';
|
|
26
|
+
export { CjsStlFormat } from './stl/CjsStlFormat.js';
|
|
27
|
+
export { CjsTgaFormat } from './tga/CjsTgaFormat.js';
|
|
28
|
+
export { CjsWavFormat } from './wav/CjsWavFormat.js';
|
|
29
|
+
export { CjsWebmFormat } from './webm/CjsWebmFormat.js';
|
|
30
|
+
export { CjsWebpFormat } from './webp/CjsWebpFormat.js';
|
|
31
|
+
export { CjsWemFormat } from './wem/CjsWemFormat.js';
|
|
32
|
+
export { CjsYamlFormat } from './yaml/CjsYamlFormat.js';
|
|
33
|
+
//# sourceMappingURL=index.js.map
|