@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,168 +1,168 @@
|
|
|
1
|
-
import { CjsSchema, impl, type } from '@carbonenginejs/runtime-utils/schema';
|
|
2
|
-
import { CjsModel } from '@carbonenginejs/runtime-utils/model';
|
|
3
|
-
import { isPlainObject } from '@carbonenginejs/runtime-utils/is';
|
|
4
|
-
import { copyBytes } from '@carbonenginejs/runtime-utils/bytes';
|
|
5
|
-
import { Tr2EffectStageInput } from './Tr2EffectStageInput.js';
|
|
6
|
-
import { recordText, recordBytes, toRecordText, toRecordBlob } from './carbonRecordFields.js';
|
|
7
|
-
|
|
8
|
-
// Source: trinity/trinity/Shader/Tr2EffectDescription.h
|
|
9
|
-
|
|
10
|
-
/** Reflected shader-library metadata. */
|
|
11
|
-
class Tr2EffectLibrary extends CjsModel {
|
|
12
|
-
/** payloadSize (uint32_t) */
|
|
13
|
-
payloadSize = 0;
|
|
14
|
-
|
|
15
|
-
/** libraryHandle (uint32_t) */
|
|
16
|
-
libraryHandle = 0;
|
|
17
|
-
|
|
18
|
-
/** rayGenName (BlueSharedStringW) */
|
|
19
|
-
rayGenName = "";
|
|
20
|
-
|
|
21
|
-
/** missName (BlueSharedStringW) */
|
|
22
|
-
missName = "";
|
|
23
|
-
|
|
24
|
-
/** closestHitName (BlueSharedStringW) */
|
|
25
|
-
closestHitName = "";
|
|
26
|
-
|
|
27
|
-
/** anyHitName (BlueSharedStringW) */
|
|
28
|
-
anyHitName = "";
|
|
29
|
-
|
|
30
|
-
/** intersectionName (BlueSharedStringW) */
|
|
31
|
-
intersectionName = "";
|
|
32
|
-
|
|
33
|
-
/** hitGroupName (BlueSharedStringW) */
|
|
34
|
-
hitGroupName = "";
|
|
35
|
-
|
|
36
|
-
/** globalInput (Tr2EffectStageInput) */
|
|
37
|
-
globalInput = null;
|
|
38
|
-
|
|
39
|
-
/** localInput (Tr2EffectStageInput) */
|
|
40
|
-
localInput = null;
|
|
41
|
-
|
|
42
|
-
/** globalResourceSetDesc (Tr2ResourceSetDescriptionAL) */
|
|
43
|
-
globalResourceSetDesc = null;
|
|
44
|
-
|
|
45
|
-
/** Exact source library program metadata and owned bytes. */
|
|
46
|
-
sourceProgram = null;
|
|
47
|
-
|
|
48
|
-
/** Portable export records retained before backend library registration. */
|
|
49
|
-
exports = [];
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Construct one canonical library from JS/JSON model values.
|
|
53
|
-
*
|
|
54
|
-
* @param {object} values Canonical model values.
|
|
55
|
-
* @param {object} options CjsModel import options.
|
|
56
|
-
* @returns {Tr2EffectLibrary} Hydrated library.
|
|
57
|
-
*/
|
|
58
|
-
static from(values = {}, options = {}) {
|
|
59
|
-
let normalized = values;
|
|
60
|
-
const inputs = new Map();
|
|
61
|
-
for (const field of ["globalInput", "localInput"]) {
|
|
62
|
-
if (values?.[field] && !(values[field] instanceof Tr2EffectStageInput)) {
|
|
63
|
-
normalized = normalized === values ? {
|
|
64
|
-
...values
|
|
65
|
-
} : normalized;
|
|
66
|
-
normalized[field] = Tr2EffectStageInput.from(values[field], options);
|
|
67
|
-
inputs.set(field, normalized[field]);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
const library = super.from(normalized, options);
|
|
71
|
-
for (const [field, value] of inputs) {
|
|
72
|
-
library[field] = value;
|
|
73
|
-
}
|
|
74
|
-
return library;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* Build one raytracing library from its Carbon v15 description record.
|
|
79
|
-
*
|
|
80
|
-
* A library carries two `StageData` blocks of its own — a global and a local
|
|
81
|
-
* input — which are the same block a stage carries, minus the stage wrapper.
|
|
82
|
-
*
|
|
83
|
-
* @param {object} record Carbon library record.
|
|
84
|
-
* @returns {Tr2EffectLibrary} Reflected library.
|
|
85
|
-
*/
|
|
86
|
-
static fromCarbonBinary(record) {
|
|
87
|
-
if (!isPlainObject(record)) {
|
|
88
|
-
throw new TypeError("Carbon effect library record must be an object");
|
|
89
|
-
}
|
|
90
|
-
const library = new this();
|
|
91
|
-
library.payloadSize = record.payloadSize;
|
|
92
|
-
library.hitGroupName = recordText(record.hitGroupName);
|
|
93
|
-
library.exports = record.exports.map(entry => ({
|
|
94
|
-
type: entry.type,
|
|
95
|
-
name: recordText(entry.name)
|
|
96
|
-
}));
|
|
97
|
-
// The export type is the only thing that names an entry point; the record
|
|
98
|
-
// stores a flat list and the named fields are a view onto it.
|
|
99
|
-
for (const entry of library.exports) {
|
|
100
|
-
if (entry.type === 0) library.rayGenName = entry.name;
|
|
101
|
-
if (entry.type === 1) library.missName = entry.name;
|
|
102
|
-
if (entry.type === 2) library.closestHitName = entry.name;
|
|
103
|
-
if (entry.type === 3) library.anyHitName = entry.name;
|
|
104
|
-
if (entry.type === 4) library.intersectionName = entry.name;
|
|
105
|
-
}
|
|
106
|
-
library.sourceProgram = {
|
|
107
|
-
kind: "library",
|
|
108
|
-
bytes: copyBytes(recordBytes(record.shaderData)),
|
|
109
|
-
shaderSize: record.shaderData.size,
|
|
110
|
-
// See Tr2EffectStageInput: only a zero-size blob's word is portable.
|
|
111
|
-
unsetOffset: record.shaderData.size === 0 ? record.shaderData.offset : 0xffffffff
|
|
112
|
-
};
|
|
113
|
-
library.globalInput = Tr2EffectStageInput.fromCarbonBinaryInput(record.globalInputs);
|
|
114
|
-
library.localInput = Tr2EffectStageInput.fromCarbonBinaryInput(record.localInputs);
|
|
115
|
-
return library;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
/**
|
|
119
|
-
* Emit this library as a Carbon v15 record.
|
|
120
|
-
*
|
|
121
|
-
* `exports` is authoritative; the named entry-point fields are a view onto it
|
|
122
|
-
* and are not written separately.
|
|
123
|
-
*
|
|
124
|
-
* @returns {object} Carbon library record.
|
|
125
|
-
*/
|
|
126
|
-
toCarbonBinary() {
|
|
127
|
-
const program = this.sourceProgram ?? {};
|
|
128
|
-
return {
|
|
129
|
-
payloadSize: this.payloadSize >>> 0,
|
|
130
|
-
shaderData: toRecordBlob(program.bytes, program.shaderSize, program.unsetOffset),
|
|
131
|
-
exports: this.exports.map(entry => ({
|
|
132
|
-
type: entry.type,
|
|
133
|
-
name: toRecordText(entry.name)
|
|
134
|
-
})),
|
|
135
|
-
hitGroupName: toRecordText(this.hitGroupName),
|
|
136
|
-
globalInputs: this.globalInput.toCarbonBinaryInput(),
|
|
137
|
-
localInputs: this.localInput.toCarbonBinaryInput()
|
|
138
|
-
};
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
// Declared imperatively rather than with decorators, so this module stays
|
|
143
|
-
// plain ESM that loads from source without a transform. The decorator
|
|
144
|
-
// expressions are reused verbatim, so the registered metadata is identical.
|
|
145
|
-
// Statics belong in `methods`: decorateMethod targets the prototype and
|
|
146
|
-
// would register a static as an instance field.
|
|
147
|
-
CjsSchema.define(Tr2EffectLibrary, {
|
|
148
|
-
className: "Tr2EffectLibrary",
|
|
149
|
-
family: "shader",
|
|
150
|
-
fields: {
|
|
151
|
-
payloadSize: type.uint32,
|
|
152
|
-
libraryHandle: type.uint32,
|
|
153
|
-
rayGenName: type.string,
|
|
154
|
-
missName: type.string,
|
|
155
|
-
closestHitName: type.string,
|
|
156
|
-
anyHitName: type.string,
|
|
157
|
-
intersectionName: type.string,
|
|
158
|
-
hitGroupName: type.string,
|
|
159
|
-
globalInput: type.rawStruct("Tr2EffectStageInput"),
|
|
160
|
-
localInput: type.rawStruct("Tr2EffectStageInput"),
|
|
161
|
-
globalResourceSetDesc: type.rawStruct("Tr2ResourceSetDescriptionAL"),
|
|
162
|
-
sourceProgram: [impl.adapted, impl.reason("Carbon registers the library with the renderer while reading; the device-free graph retains the source program for later engine realization."), type.rawStruct("CjsEffectSourceProgram")],
|
|
163
|
-
exports: [impl.adapted, impl.reason("Carbon resolves these exports into a renderer library handle; the device-free graph keeps the declarative export list."), type.rawStruct("CjsEffectLibraryExports")]
|
|
164
|
-
}
|
|
165
|
-
});
|
|
166
|
-
|
|
167
|
-
export { Tr2EffectLibrary };
|
|
168
|
-
//# sourceMappingURL=Tr2EffectLibrary.js.map
|
|
1
|
+
import { CjsSchema, impl, type } from '@carbonenginejs/runtime-utils/schema';
|
|
2
|
+
import { CjsModel } from '@carbonenginejs/runtime-utils/model';
|
|
3
|
+
import { isPlainObject } from '@carbonenginejs/runtime-utils/is';
|
|
4
|
+
import { copyBytes } from '@carbonenginejs/runtime-utils/bytes';
|
|
5
|
+
import { Tr2EffectStageInput } from './Tr2EffectStageInput.js';
|
|
6
|
+
import { recordText, recordBytes, toRecordText, toRecordBlob } from './carbonRecordFields.js';
|
|
7
|
+
|
|
8
|
+
// Source: trinity/trinity/Shader/Tr2EffectDescription.h
|
|
9
|
+
|
|
10
|
+
/** Reflected shader-library metadata. */
|
|
11
|
+
class Tr2EffectLibrary extends CjsModel {
|
|
12
|
+
/** payloadSize (uint32_t) */
|
|
13
|
+
payloadSize = 0;
|
|
14
|
+
|
|
15
|
+
/** libraryHandle (uint32_t) */
|
|
16
|
+
libraryHandle = 0;
|
|
17
|
+
|
|
18
|
+
/** rayGenName (BlueSharedStringW) */
|
|
19
|
+
rayGenName = "";
|
|
20
|
+
|
|
21
|
+
/** missName (BlueSharedStringW) */
|
|
22
|
+
missName = "";
|
|
23
|
+
|
|
24
|
+
/** closestHitName (BlueSharedStringW) */
|
|
25
|
+
closestHitName = "";
|
|
26
|
+
|
|
27
|
+
/** anyHitName (BlueSharedStringW) */
|
|
28
|
+
anyHitName = "";
|
|
29
|
+
|
|
30
|
+
/** intersectionName (BlueSharedStringW) */
|
|
31
|
+
intersectionName = "";
|
|
32
|
+
|
|
33
|
+
/** hitGroupName (BlueSharedStringW) */
|
|
34
|
+
hitGroupName = "";
|
|
35
|
+
|
|
36
|
+
/** globalInput (Tr2EffectStageInput) */
|
|
37
|
+
globalInput = null;
|
|
38
|
+
|
|
39
|
+
/** localInput (Tr2EffectStageInput) */
|
|
40
|
+
localInput = null;
|
|
41
|
+
|
|
42
|
+
/** globalResourceSetDesc (Tr2ResourceSetDescriptionAL) */
|
|
43
|
+
globalResourceSetDesc = null;
|
|
44
|
+
|
|
45
|
+
/** Exact source library program metadata and owned bytes. */
|
|
46
|
+
sourceProgram = null;
|
|
47
|
+
|
|
48
|
+
/** Portable export records retained before backend library registration. */
|
|
49
|
+
exports = [];
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Construct one canonical library from JS/JSON model values.
|
|
53
|
+
*
|
|
54
|
+
* @param {object} values Canonical model values.
|
|
55
|
+
* @param {object} options CjsModel import options.
|
|
56
|
+
* @returns {Tr2EffectLibrary} Hydrated library.
|
|
57
|
+
*/
|
|
58
|
+
static from(values = {}, options = {}) {
|
|
59
|
+
let normalized = values;
|
|
60
|
+
const inputs = new Map();
|
|
61
|
+
for (const field of ["globalInput", "localInput"]) {
|
|
62
|
+
if (values?.[field] && !(values[field] instanceof Tr2EffectStageInput)) {
|
|
63
|
+
normalized = normalized === values ? {
|
|
64
|
+
...values
|
|
65
|
+
} : normalized;
|
|
66
|
+
normalized[field] = Tr2EffectStageInput.from(values[field], options);
|
|
67
|
+
inputs.set(field, normalized[field]);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
const library = super.from(normalized, options);
|
|
71
|
+
for (const [field, value] of inputs) {
|
|
72
|
+
library[field] = value;
|
|
73
|
+
}
|
|
74
|
+
return library;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Build one raytracing library from its Carbon v15 description record.
|
|
79
|
+
*
|
|
80
|
+
* A library carries two `StageData` blocks of its own — a global and a local
|
|
81
|
+
* input — which are the same block a stage carries, minus the stage wrapper.
|
|
82
|
+
*
|
|
83
|
+
* @param {object} record Carbon library record.
|
|
84
|
+
* @returns {Tr2EffectLibrary} Reflected library.
|
|
85
|
+
*/
|
|
86
|
+
static fromCarbonBinary(record) {
|
|
87
|
+
if (!isPlainObject(record)) {
|
|
88
|
+
throw new TypeError("Carbon effect library record must be an object");
|
|
89
|
+
}
|
|
90
|
+
const library = new this();
|
|
91
|
+
library.payloadSize = record.payloadSize;
|
|
92
|
+
library.hitGroupName = recordText(record.hitGroupName);
|
|
93
|
+
library.exports = record.exports.map(entry => ({
|
|
94
|
+
type: entry.type,
|
|
95
|
+
name: recordText(entry.name)
|
|
96
|
+
}));
|
|
97
|
+
// The export type is the only thing that names an entry point; the record
|
|
98
|
+
// stores a flat list and the named fields are a view onto it.
|
|
99
|
+
for (const entry of library.exports) {
|
|
100
|
+
if (entry.type === 0) library.rayGenName = entry.name;
|
|
101
|
+
if (entry.type === 1) library.missName = entry.name;
|
|
102
|
+
if (entry.type === 2) library.closestHitName = entry.name;
|
|
103
|
+
if (entry.type === 3) library.anyHitName = entry.name;
|
|
104
|
+
if (entry.type === 4) library.intersectionName = entry.name;
|
|
105
|
+
}
|
|
106
|
+
library.sourceProgram = {
|
|
107
|
+
kind: "library",
|
|
108
|
+
bytes: copyBytes(recordBytes(record.shaderData)),
|
|
109
|
+
shaderSize: record.shaderData.size,
|
|
110
|
+
// See Tr2EffectStageInput: only a zero-size blob's word is portable.
|
|
111
|
+
unsetOffset: record.shaderData.size === 0 ? record.shaderData.offset : 0xffffffff
|
|
112
|
+
};
|
|
113
|
+
library.globalInput = Tr2EffectStageInput.fromCarbonBinaryInput(record.globalInputs);
|
|
114
|
+
library.localInput = Tr2EffectStageInput.fromCarbonBinaryInput(record.localInputs);
|
|
115
|
+
return library;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Emit this library as a Carbon v15 record.
|
|
120
|
+
*
|
|
121
|
+
* `exports` is authoritative; the named entry-point fields are a view onto it
|
|
122
|
+
* and are not written separately.
|
|
123
|
+
*
|
|
124
|
+
* @returns {object} Carbon library record.
|
|
125
|
+
*/
|
|
126
|
+
toCarbonBinary() {
|
|
127
|
+
const program = this.sourceProgram ?? {};
|
|
128
|
+
return {
|
|
129
|
+
payloadSize: this.payloadSize >>> 0,
|
|
130
|
+
shaderData: toRecordBlob(program.bytes, program.shaderSize, program.unsetOffset),
|
|
131
|
+
exports: this.exports.map(entry => ({
|
|
132
|
+
type: entry.type,
|
|
133
|
+
name: toRecordText(entry.name)
|
|
134
|
+
})),
|
|
135
|
+
hitGroupName: toRecordText(this.hitGroupName),
|
|
136
|
+
globalInputs: this.globalInput.toCarbonBinaryInput(),
|
|
137
|
+
localInputs: this.localInput.toCarbonBinaryInput()
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// Declared imperatively rather than with decorators, so this module stays
|
|
143
|
+
// plain ESM that loads from source without a transform. The decorator
|
|
144
|
+
// expressions are reused verbatim, so the registered metadata is identical.
|
|
145
|
+
// Statics belong in `methods`: decorateMethod targets the prototype and
|
|
146
|
+
// would register a static as an instance field.
|
|
147
|
+
CjsSchema.define(Tr2EffectLibrary, {
|
|
148
|
+
className: "Tr2EffectLibrary",
|
|
149
|
+
family: "shader",
|
|
150
|
+
fields: {
|
|
151
|
+
payloadSize: type.uint32,
|
|
152
|
+
libraryHandle: type.uint32,
|
|
153
|
+
rayGenName: type.string,
|
|
154
|
+
missName: type.string,
|
|
155
|
+
closestHitName: type.string,
|
|
156
|
+
anyHitName: type.string,
|
|
157
|
+
intersectionName: type.string,
|
|
158
|
+
hitGroupName: type.string,
|
|
159
|
+
globalInput: type.rawStruct("Tr2EffectStageInput"),
|
|
160
|
+
localInput: type.rawStruct("Tr2EffectStageInput"),
|
|
161
|
+
globalResourceSetDesc: type.rawStruct("Tr2ResourceSetDescriptionAL"),
|
|
162
|
+
sourceProgram: [impl.adapted, impl.reason("Carbon registers the library with the renderer while reading; the device-free graph retains the source program for later engine realization."), type.rawStruct("CjsEffectSourceProgram")],
|
|
163
|
+
exports: [impl.adapted, impl.reason("Carbon resolves these exports into a renderer library handle; the device-free graph keeps the declarative export list."), type.rawStruct("CjsEffectLibraryExports")]
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
export { Tr2EffectLibrary };
|
|
168
|
+
//# sourceMappingURL=Tr2EffectLibrary.js.map
|
|
@@ -1,125 +1,125 @@
|
|
|
1
|
-
import { CjsSchema, type, impl, schema } from '@carbonenginejs/runtime-utils/schema';
|
|
2
|
-
import { CjsModel } from '@carbonenginejs/runtime-utils/model';
|
|
3
|
-
import { dwordToFloat } from '@carbonenginejs/runtime-utils/math/num';
|
|
4
|
-
import { isPlainObject } from '@carbonenginejs/runtime-utils/is';
|
|
5
|
-
import { recordText, recordRawValue, toRecordText, toRecordRawValue } from './carbonRecordFields.js';
|
|
6
|
-
|
|
7
|
-
// Source: trinity/trinity/Shader/Tr2EffectDescription.h
|
|
8
|
-
|
|
9
|
-
/** Typed annotation attached to a reflected effect parameter. */
|
|
10
|
-
class Tr2EffectParameterAnnotation extends CjsModel {
|
|
11
|
-
/** name (const char*) */
|
|
12
|
-
name = "";
|
|
13
|
-
|
|
14
|
-
/** type (Type - enum Type) */
|
|
15
|
-
type = 0;
|
|
16
|
-
|
|
17
|
-
/** boolValue (bool) */
|
|
18
|
-
boolValue = false;
|
|
19
|
-
|
|
20
|
-
/** Exact serialized BOOL, INT, or FLOAT payload bits. */
|
|
21
|
-
rawValue = 0;
|
|
22
|
-
|
|
23
|
-
/** intValue (int) */
|
|
24
|
-
intValue = 0;
|
|
25
|
-
|
|
26
|
-
/** floatValue (float) */
|
|
27
|
-
floatValue = 0;
|
|
28
|
-
|
|
29
|
-
/** stringValue (const char*) */
|
|
30
|
-
stringValue = "";
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Build one typed annotation from its Carbon v15 description record.
|
|
34
|
-
*
|
|
35
|
-
* The type byte decides which member is meaningful, and every non-string type
|
|
36
|
-
* arrives as four untyped bytes rather than a number — Carbon writes the value
|
|
37
|
-
* through one member of a `{float,int32_t}` union and reads it back through
|
|
38
|
-
* another, so the bit pattern is the only faithful carrier. `rawValue` keeps
|
|
39
|
-
* those bits and the typed accessor is derived from them, never the reverse.
|
|
40
|
-
*
|
|
41
|
-
* @param {object} record Carbon annotation record.
|
|
42
|
-
* @returns {Tr2EffectParameterAnnotation} Reflected annotation.
|
|
43
|
-
*/
|
|
44
|
-
static fromCarbonBinary(record) {
|
|
45
|
-
if (!isPlainObject(record)) {
|
|
46
|
-
throw new TypeError("Carbon effect annotation record must be an object");
|
|
47
|
-
}
|
|
48
|
-
const annotation = new this();
|
|
49
|
-
annotation.name = recordText(record.name);
|
|
50
|
-
annotation.type = record.type;
|
|
51
|
-
switch (annotation.type) {
|
|
52
|
-
case this.Type.BOOL:
|
|
53
|
-
annotation.rawValue = recordRawValue(record.rawValue);
|
|
54
|
-
annotation.boolValue = annotation.rawValue !== 0;
|
|
55
|
-
break;
|
|
56
|
-
case this.Type.INT:
|
|
57
|
-
annotation.rawValue = recordRawValue(record.rawValue);
|
|
58
|
-
annotation.intValue = annotation.rawValue | 0;
|
|
59
|
-
break;
|
|
60
|
-
case this.Type.FLOAT:
|
|
61
|
-
annotation.rawValue = recordRawValue(record.rawValue);
|
|
62
|
-
annotation.floatValue = dwordToFloat(annotation.rawValue);
|
|
63
|
-
break;
|
|
64
|
-
case this.Type.STRING:
|
|
65
|
-
annotation.stringValue = recordText(record.stringValue);
|
|
66
|
-
break;
|
|
67
|
-
default:
|
|
68
|
-
throw new Error(`Carbon effect annotation type ${annotation.type} is unsupported`);
|
|
69
|
-
}
|
|
70
|
-
return annotation;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Emit this annotation as a Carbon v15 record.
|
|
75
|
-
*
|
|
76
|
-
* The type byte decides which branch the writer takes, and every non-string
|
|
77
|
-
* type travels as the raw bits rather than the typed member.
|
|
78
|
-
*
|
|
79
|
-
* @returns {object} Carbon annotation record.
|
|
80
|
-
*/
|
|
81
|
-
toCarbonBinary() {
|
|
82
|
-
if (this.type === Tr2EffectParameterAnnotation.Type.STRING) {
|
|
83
|
-
return {
|
|
84
|
-
name: toRecordText(this.name),
|
|
85
|
-
type: this.type,
|
|
86
|
-
stringValue: toRecordText(this.stringValue),
|
|
87
|
-
rawValue: null
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
return {
|
|
91
|
-
name: toRecordText(this.name),
|
|
92
|
-
type: this.type,
|
|
93
|
-
stringValue: null,
|
|
94
|
-
rawValue: toRecordRawValue(this.rawValue)
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
static Type = Object.freeze({
|
|
98
|
-
BOOL: 0,
|
|
99
|
-
INT: 1,
|
|
100
|
-
FLOAT: 2,
|
|
101
|
-
STRING: 3
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
// Declared imperatively rather than with decorators, so this module stays
|
|
106
|
-
// plain ESM that loads from source without a transform. The decorator
|
|
107
|
-
// expressions are reused verbatim, so the registered metadata is identical.
|
|
108
|
-
// Statics belong in `methods`: decorateMethod targets the prototype and
|
|
109
|
-
// would register a static as an instance field.
|
|
110
|
-
CjsSchema.define(Tr2EffectParameterAnnotation, {
|
|
111
|
-
className: "Tr2EffectParameterAnnotation",
|
|
112
|
-
family: "shader",
|
|
113
|
-
fields: {
|
|
114
|
-
name: type.string,
|
|
115
|
-
type: [type.int32, schema.enum("Type")],
|
|
116
|
-
boolValue: type.boolean,
|
|
117
|
-
rawValue: [impl.adapted, impl.reason("Carbon reads numeric annotations into typed values; the portable source contract retains the exact uint32 payload so NaN, negative zero, and integer bit patterns round-trip losslessly."), type.uint32],
|
|
118
|
-
intValue: type.int32,
|
|
119
|
-
floatValue: type.float32,
|
|
120
|
-
stringValue: type.string
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
|
-
|
|
124
|
-
export { Tr2EffectParameterAnnotation };
|
|
125
|
-
//# sourceMappingURL=Tr2EffectParameterAnnotation.js.map
|
|
1
|
+
import { CjsSchema, type, impl, schema } from '@carbonenginejs/runtime-utils/schema';
|
|
2
|
+
import { CjsModel } from '@carbonenginejs/runtime-utils/model';
|
|
3
|
+
import { dwordToFloat } from '@carbonenginejs/runtime-utils/math/num';
|
|
4
|
+
import { isPlainObject } from '@carbonenginejs/runtime-utils/is';
|
|
5
|
+
import { recordText, recordRawValue, toRecordText, toRecordRawValue } from './carbonRecordFields.js';
|
|
6
|
+
|
|
7
|
+
// Source: trinity/trinity/Shader/Tr2EffectDescription.h
|
|
8
|
+
|
|
9
|
+
/** Typed annotation attached to a reflected effect parameter. */
|
|
10
|
+
class Tr2EffectParameterAnnotation extends CjsModel {
|
|
11
|
+
/** name (const char*) */
|
|
12
|
+
name = "";
|
|
13
|
+
|
|
14
|
+
/** type (Type - enum Type) */
|
|
15
|
+
type = 0;
|
|
16
|
+
|
|
17
|
+
/** boolValue (bool) */
|
|
18
|
+
boolValue = false;
|
|
19
|
+
|
|
20
|
+
/** Exact serialized BOOL, INT, or FLOAT payload bits. */
|
|
21
|
+
rawValue = 0;
|
|
22
|
+
|
|
23
|
+
/** intValue (int) */
|
|
24
|
+
intValue = 0;
|
|
25
|
+
|
|
26
|
+
/** floatValue (float) */
|
|
27
|
+
floatValue = 0;
|
|
28
|
+
|
|
29
|
+
/** stringValue (const char*) */
|
|
30
|
+
stringValue = "";
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Build one typed annotation from its Carbon v15 description record.
|
|
34
|
+
*
|
|
35
|
+
* The type byte decides which member is meaningful, and every non-string type
|
|
36
|
+
* arrives as four untyped bytes rather than a number — Carbon writes the value
|
|
37
|
+
* through one member of a `{float,int32_t}` union and reads it back through
|
|
38
|
+
* another, so the bit pattern is the only faithful carrier. `rawValue` keeps
|
|
39
|
+
* those bits and the typed accessor is derived from them, never the reverse.
|
|
40
|
+
*
|
|
41
|
+
* @param {object} record Carbon annotation record.
|
|
42
|
+
* @returns {Tr2EffectParameterAnnotation} Reflected annotation.
|
|
43
|
+
*/
|
|
44
|
+
static fromCarbonBinary(record) {
|
|
45
|
+
if (!isPlainObject(record)) {
|
|
46
|
+
throw new TypeError("Carbon effect annotation record must be an object");
|
|
47
|
+
}
|
|
48
|
+
const annotation = new this();
|
|
49
|
+
annotation.name = recordText(record.name);
|
|
50
|
+
annotation.type = record.type;
|
|
51
|
+
switch (annotation.type) {
|
|
52
|
+
case this.Type.BOOL:
|
|
53
|
+
annotation.rawValue = recordRawValue(record.rawValue);
|
|
54
|
+
annotation.boolValue = annotation.rawValue !== 0;
|
|
55
|
+
break;
|
|
56
|
+
case this.Type.INT:
|
|
57
|
+
annotation.rawValue = recordRawValue(record.rawValue);
|
|
58
|
+
annotation.intValue = annotation.rawValue | 0;
|
|
59
|
+
break;
|
|
60
|
+
case this.Type.FLOAT:
|
|
61
|
+
annotation.rawValue = recordRawValue(record.rawValue);
|
|
62
|
+
annotation.floatValue = dwordToFloat(annotation.rawValue);
|
|
63
|
+
break;
|
|
64
|
+
case this.Type.STRING:
|
|
65
|
+
annotation.stringValue = recordText(record.stringValue);
|
|
66
|
+
break;
|
|
67
|
+
default:
|
|
68
|
+
throw new Error(`Carbon effect annotation type ${annotation.type} is unsupported`);
|
|
69
|
+
}
|
|
70
|
+
return annotation;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Emit this annotation as a Carbon v15 record.
|
|
75
|
+
*
|
|
76
|
+
* The type byte decides which branch the writer takes, and every non-string
|
|
77
|
+
* type travels as the raw bits rather than the typed member.
|
|
78
|
+
*
|
|
79
|
+
* @returns {object} Carbon annotation record.
|
|
80
|
+
*/
|
|
81
|
+
toCarbonBinary() {
|
|
82
|
+
if (this.type === Tr2EffectParameterAnnotation.Type.STRING) {
|
|
83
|
+
return {
|
|
84
|
+
name: toRecordText(this.name),
|
|
85
|
+
type: this.type,
|
|
86
|
+
stringValue: toRecordText(this.stringValue),
|
|
87
|
+
rawValue: null
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
return {
|
|
91
|
+
name: toRecordText(this.name),
|
|
92
|
+
type: this.type,
|
|
93
|
+
stringValue: null,
|
|
94
|
+
rawValue: toRecordRawValue(this.rawValue)
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
static Type = Object.freeze({
|
|
98
|
+
BOOL: 0,
|
|
99
|
+
INT: 1,
|
|
100
|
+
FLOAT: 2,
|
|
101
|
+
STRING: 3
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// Declared imperatively rather than with decorators, so this module stays
|
|
106
|
+
// plain ESM that loads from source without a transform. The decorator
|
|
107
|
+
// expressions are reused verbatim, so the registered metadata is identical.
|
|
108
|
+
// Statics belong in `methods`: decorateMethod targets the prototype and
|
|
109
|
+
// would register a static as an instance field.
|
|
110
|
+
CjsSchema.define(Tr2EffectParameterAnnotation, {
|
|
111
|
+
className: "Tr2EffectParameterAnnotation",
|
|
112
|
+
family: "shader",
|
|
113
|
+
fields: {
|
|
114
|
+
name: type.string,
|
|
115
|
+
type: [type.int32, schema.enum("Type")],
|
|
116
|
+
boolValue: type.boolean,
|
|
117
|
+
rawValue: [impl.adapted, impl.reason("Carbon reads numeric annotations into typed values; the portable source contract retains the exact uint32 payload so NaN, negative zero, and integer bit patterns round-trip losslessly."), type.uint32],
|
|
118
|
+
intValue: type.int32,
|
|
119
|
+
floatValue: type.float32,
|
|
120
|
+
stringValue: type.string
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
export { Tr2EffectParameterAnnotation };
|
|
125
|
+
//# sourceMappingURL=Tr2EffectParameterAnnotation.js.map
|