@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,17 +1,17 @@
|
|
|
1
|
-
export { GetGlobalEffectOptions, ModifyGlobalEffectOptions, Tr2EffectRes } from './Tr2EffectRes.js';
|
|
2
|
-
export { Tr2MaterialArea } from './Tr2MaterialArea.js';
|
|
3
|
-
export { Tr2MaterialMesh } from './Tr2MaterialMesh.js';
|
|
4
|
-
export { Tr2MaterialRes } from './Tr2MaterialRes.js';
|
|
5
|
-
export { Tr2Shader } from './Tr2Shader.js';
|
|
6
|
-
export { Tr2ShaderPermutation } from './Tr2ShaderPermutation.js';
|
|
7
|
-
export { Tr2EffectConstant } from './reflection/Tr2EffectConstant.js';
|
|
8
|
-
export { Tr2EffectDefine } from './reflection/Tr2EffectDefine.js';
|
|
9
|
-
export { Tr2EffectDescription } from './reflection/Tr2EffectDescription.js';
|
|
10
|
-
export { Tr2EffectLibrary } from './reflection/Tr2EffectLibrary.js';
|
|
11
|
-
export { Tr2EffectParameterAnnotation } from './reflection/Tr2EffectParameterAnnotation.js';
|
|
12
|
-
export { Tr2EffectResource } from './reflection/Tr2EffectResource.js';
|
|
13
|
-
export { Tr2EffectStageInput } from './reflection/Tr2EffectStageInput.js';
|
|
14
|
-
export { Tr2EffectTechnique } from './reflection/Tr2EffectTechnique.js';
|
|
15
|
-
export { Tr2Pass } from './reflection/Tr2Pass.js';
|
|
16
|
-
export { Tr2SamplerSetup } from './sampler/Tr2SamplerSetup.js';
|
|
17
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
export { GetGlobalEffectOptions, ModifyGlobalEffectOptions, Tr2EffectRes } from './Tr2EffectRes.js';
|
|
2
|
+
export { Tr2MaterialArea } from './Tr2MaterialArea.js';
|
|
3
|
+
export { Tr2MaterialMesh } from './Tr2MaterialMesh.js';
|
|
4
|
+
export { Tr2MaterialRes } from './Tr2MaterialRes.js';
|
|
5
|
+
export { Tr2Shader } from './Tr2Shader.js';
|
|
6
|
+
export { Tr2ShaderPermutation } from './Tr2ShaderPermutation.js';
|
|
7
|
+
export { Tr2EffectConstant } from './reflection/Tr2EffectConstant.js';
|
|
8
|
+
export { Tr2EffectDefine } from './reflection/Tr2EffectDefine.js';
|
|
9
|
+
export { Tr2EffectDescription } from './reflection/Tr2EffectDescription.js';
|
|
10
|
+
export { Tr2EffectLibrary } from './reflection/Tr2EffectLibrary.js';
|
|
11
|
+
export { Tr2EffectParameterAnnotation } from './reflection/Tr2EffectParameterAnnotation.js';
|
|
12
|
+
export { Tr2EffectResource } from './reflection/Tr2EffectResource.js';
|
|
13
|
+
export { Tr2EffectStageInput } from './reflection/Tr2EffectStageInput.js';
|
|
14
|
+
export { Tr2EffectTechnique } from './reflection/Tr2EffectTechnique.js';
|
|
15
|
+
export { Tr2Pass } from './reflection/Tr2Pass.js';
|
|
16
|
+
export { Tr2SamplerSetup } from './sampler/Tr2SamplerSetup.js';
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -1,143 +1,143 @@
|
|
|
1
|
-
import { CjsSchema } from '@carbonenginejs/runtime-utils/schema';
|
|
2
|
-
import { CjsModel } from '@carbonenginejs/runtime-utils/model';
|
|
3
|
-
import { isPlainObject } from '@carbonenginejs/runtime-utils/is';
|
|
4
|
-
import { recordText, toRecordText } from './carbonRecordFields.js';
|
|
5
|
-
|
|
6
|
-
// Source: trinity/trinity/Shader/Tr2EffectDescription.h
|
|
7
|
-
|
|
8
|
-
/** Reflected shader constant metadata. */
|
|
9
|
-
class Tr2EffectConstant extends CjsModel {
|
|
10
|
-
/** name (BlueSharedString) */
|
|
11
|
-
name = "";
|
|
12
|
-
|
|
13
|
-
/** offset (unsigned) */
|
|
14
|
-
offset = 0;
|
|
15
|
-
|
|
16
|
-
/** size (unsigned) */
|
|
17
|
-
size = 0;
|
|
18
|
-
|
|
19
|
-
/** type (Type - enum Type) */
|
|
20
|
-
type = 0;
|
|
21
|
-
|
|
22
|
-
/** dimension (unsigned) */
|
|
23
|
-
dimension = 0;
|
|
24
|
-
|
|
25
|
-
/** elements (unsigned) */
|
|
26
|
-
elements = 0;
|
|
27
|
-
|
|
28
|
-
/** isSRGB (bool) */
|
|
29
|
-
isSRGB = false;
|
|
30
|
-
|
|
31
|
-
/** isAutoregister (bool) */
|
|
32
|
-
isAutoregister = false;
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Build one constant from its Carbon v15 description record.
|
|
36
|
-
*
|
|
37
|
-
* The record's numeric fields are already the widths Carbon declares, so this
|
|
38
|
-
* is a rename plus the two byte-to-bool conversions; only `name` needs
|
|
39
|
-
* dereferencing, because strings live in the container's arena.
|
|
40
|
-
*
|
|
41
|
-
* @param {object} record Carbon constant record.
|
|
42
|
-
* @returns {Tr2EffectConstant} Reflected constant.
|
|
43
|
-
*/
|
|
44
|
-
static fromCarbonBinary(record) {
|
|
45
|
-
if (!isPlainObject(record)) {
|
|
46
|
-
throw new TypeError("Carbon effect constant record must be an object");
|
|
47
|
-
}
|
|
48
|
-
const constant = new this();
|
|
49
|
-
constant.name = recordText(record.name);
|
|
50
|
-
constant.offset = record.offset;
|
|
51
|
-
constant.size = record.size;
|
|
52
|
-
constant.type = record.type;
|
|
53
|
-
constant.dimension = record.dimension;
|
|
54
|
-
constant.elements = record.elements;
|
|
55
|
-
constant.isSRGB = !!record.isSRGB;
|
|
56
|
-
constant.isAutoregister = !!record.isAutoregister;
|
|
57
|
-
return constant;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Emit this constant as a Carbon v15 description record.
|
|
62
|
-
*
|
|
63
|
-
* @returns {object} Carbon constant record.
|
|
64
|
-
*/
|
|
65
|
-
toCarbonBinary() {
|
|
66
|
-
return {
|
|
67
|
-
name: toRecordText(this.name),
|
|
68
|
-
offset: this.offset,
|
|
69
|
-
size: this.size,
|
|
70
|
-
type: this.type,
|
|
71
|
-
dimension: this.dimension,
|
|
72
|
-
elements: this.elements,
|
|
73
|
-
isSRGB: this.isSRGB ? 1 : 0,
|
|
74
|
-
isAutoregister: this.isAutoregister ? 1 : 0
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
static Type = Object.freeze({
|
|
78
|
-
FLOAT: 0,
|
|
79
|
-
INT: 1,
|
|
80
|
-
UINT: 2,
|
|
81
|
-
BOOL: 3,
|
|
82
|
-
OTHER: 4
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
// Declared imperatively rather than with decorators, so this module stays plain
|
|
87
|
-
// ESM that loads from source without a transform, which lets its tests import
|
|
88
|
-
// source instead of build output.
|
|
89
|
-
//
|
|
90
|
-
// Field order matters: it drives GetValues() export order. Statics belong in
|
|
91
|
-
// `methods` here rather than in a decorateMethod() call, which targets the
|
|
92
|
-
// prototype and would register a static as an instance field.
|
|
93
|
-
CjsSchema.define(Tr2EffectConstant, {
|
|
94
|
-
className: "Tr2EffectConstant",
|
|
95
|
-
family: "shader",
|
|
96
|
-
fields: [{
|
|
97
|
-
name: "name",
|
|
98
|
-
type: {
|
|
99
|
-
kind: "string"
|
|
100
|
-
}
|
|
101
|
-
}, {
|
|
102
|
-
name: "offset",
|
|
103
|
-
type: {
|
|
104
|
-
kind: "uint32"
|
|
105
|
-
}
|
|
106
|
-
}, {
|
|
107
|
-
name: "size",
|
|
108
|
-
type: {
|
|
109
|
-
kind: "uint32"
|
|
110
|
-
}
|
|
111
|
-
}, {
|
|
112
|
-
name: "type",
|
|
113
|
-
enum: {
|
|
114
|
-
enumType: "Type"
|
|
115
|
-
},
|
|
116
|
-
type: {
|
|
117
|
-
kind: "int32"
|
|
118
|
-
}
|
|
119
|
-
}, {
|
|
120
|
-
name: "dimension",
|
|
121
|
-
type: {
|
|
122
|
-
kind: "uint32"
|
|
123
|
-
}
|
|
124
|
-
}, {
|
|
125
|
-
name: "elements",
|
|
126
|
-
type: {
|
|
127
|
-
kind: "uint32"
|
|
128
|
-
}
|
|
129
|
-
}, {
|
|
130
|
-
name: "isSRGB",
|
|
131
|
-
type: {
|
|
132
|
-
kind: "boolean"
|
|
133
|
-
}
|
|
134
|
-
}, {
|
|
135
|
-
name: "isAutoregister",
|
|
136
|
-
type: {
|
|
137
|
-
kind: "boolean"
|
|
138
|
-
}
|
|
139
|
-
}]
|
|
140
|
-
});
|
|
141
|
-
|
|
142
|
-
export { Tr2EffectConstant };
|
|
143
|
-
//# sourceMappingURL=Tr2EffectConstant.js.map
|
|
1
|
+
import { CjsSchema } from '@carbonenginejs/runtime-utils/schema';
|
|
2
|
+
import { CjsModel } from '@carbonenginejs/runtime-utils/model';
|
|
3
|
+
import { isPlainObject } from '@carbonenginejs/runtime-utils/is';
|
|
4
|
+
import { recordText, toRecordText } from './carbonRecordFields.js';
|
|
5
|
+
|
|
6
|
+
// Source: trinity/trinity/Shader/Tr2EffectDescription.h
|
|
7
|
+
|
|
8
|
+
/** Reflected shader constant metadata. */
|
|
9
|
+
class Tr2EffectConstant extends CjsModel {
|
|
10
|
+
/** name (BlueSharedString) */
|
|
11
|
+
name = "";
|
|
12
|
+
|
|
13
|
+
/** offset (unsigned) */
|
|
14
|
+
offset = 0;
|
|
15
|
+
|
|
16
|
+
/** size (unsigned) */
|
|
17
|
+
size = 0;
|
|
18
|
+
|
|
19
|
+
/** type (Type - enum Type) */
|
|
20
|
+
type = 0;
|
|
21
|
+
|
|
22
|
+
/** dimension (unsigned) */
|
|
23
|
+
dimension = 0;
|
|
24
|
+
|
|
25
|
+
/** elements (unsigned) */
|
|
26
|
+
elements = 0;
|
|
27
|
+
|
|
28
|
+
/** isSRGB (bool) */
|
|
29
|
+
isSRGB = false;
|
|
30
|
+
|
|
31
|
+
/** isAutoregister (bool) */
|
|
32
|
+
isAutoregister = false;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Build one constant from its Carbon v15 description record.
|
|
36
|
+
*
|
|
37
|
+
* The record's numeric fields are already the widths Carbon declares, so this
|
|
38
|
+
* is a rename plus the two byte-to-bool conversions; only `name` needs
|
|
39
|
+
* dereferencing, because strings live in the container's arena.
|
|
40
|
+
*
|
|
41
|
+
* @param {object} record Carbon constant record.
|
|
42
|
+
* @returns {Tr2EffectConstant} Reflected constant.
|
|
43
|
+
*/
|
|
44
|
+
static fromCarbonBinary(record) {
|
|
45
|
+
if (!isPlainObject(record)) {
|
|
46
|
+
throw new TypeError("Carbon effect constant record must be an object");
|
|
47
|
+
}
|
|
48
|
+
const constant = new this();
|
|
49
|
+
constant.name = recordText(record.name);
|
|
50
|
+
constant.offset = record.offset;
|
|
51
|
+
constant.size = record.size;
|
|
52
|
+
constant.type = record.type;
|
|
53
|
+
constant.dimension = record.dimension;
|
|
54
|
+
constant.elements = record.elements;
|
|
55
|
+
constant.isSRGB = !!record.isSRGB;
|
|
56
|
+
constant.isAutoregister = !!record.isAutoregister;
|
|
57
|
+
return constant;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Emit this constant as a Carbon v15 description record.
|
|
62
|
+
*
|
|
63
|
+
* @returns {object} Carbon constant record.
|
|
64
|
+
*/
|
|
65
|
+
toCarbonBinary() {
|
|
66
|
+
return {
|
|
67
|
+
name: toRecordText(this.name),
|
|
68
|
+
offset: this.offset,
|
|
69
|
+
size: this.size,
|
|
70
|
+
type: this.type,
|
|
71
|
+
dimension: this.dimension,
|
|
72
|
+
elements: this.elements,
|
|
73
|
+
isSRGB: this.isSRGB ? 1 : 0,
|
|
74
|
+
isAutoregister: this.isAutoregister ? 1 : 0
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
static Type = Object.freeze({
|
|
78
|
+
FLOAT: 0,
|
|
79
|
+
INT: 1,
|
|
80
|
+
UINT: 2,
|
|
81
|
+
BOOL: 3,
|
|
82
|
+
OTHER: 4
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// Declared imperatively rather than with decorators, so this module stays plain
|
|
87
|
+
// ESM that loads from source without a transform, which lets its tests import
|
|
88
|
+
// source instead of build output.
|
|
89
|
+
//
|
|
90
|
+
// Field order matters: it drives GetValues() export order. Statics belong in
|
|
91
|
+
// `methods` here rather than in a decorateMethod() call, which targets the
|
|
92
|
+
// prototype and would register a static as an instance field.
|
|
93
|
+
CjsSchema.define(Tr2EffectConstant, {
|
|
94
|
+
className: "Tr2EffectConstant",
|
|
95
|
+
family: "shader",
|
|
96
|
+
fields: [{
|
|
97
|
+
name: "name",
|
|
98
|
+
type: {
|
|
99
|
+
kind: "string"
|
|
100
|
+
}
|
|
101
|
+
}, {
|
|
102
|
+
name: "offset",
|
|
103
|
+
type: {
|
|
104
|
+
kind: "uint32"
|
|
105
|
+
}
|
|
106
|
+
}, {
|
|
107
|
+
name: "size",
|
|
108
|
+
type: {
|
|
109
|
+
kind: "uint32"
|
|
110
|
+
}
|
|
111
|
+
}, {
|
|
112
|
+
name: "type",
|
|
113
|
+
enum: {
|
|
114
|
+
enumType: "Type"
|
|
115
|
+
},
|
|
116
|
+
type: {
|
|
117
|
+
kind: "int32"
|
|
118
|
+
}
|
|
119
|
+
}, {
|
|
120
|
+
name: "dimension",
|
|
121
|
+
type: {
|
|
122
|
+
kind: "uint32"
|
|
123
|
+
}
|
|
124
|
+
}, {
|
|
125
|
+
name: "elements",
|
|
126
|
+
type: {
|
|
127
|
+
kind: "uint32"
|
|
128
|
+
}
|
|
129
|
+
}, {
|
|
130
|
+
name: "isSRGB",
|
|
131
|
+
type: {
|
|
132
|
+
kind: "boolean"
|
|
133
|
+
}
|
|
134
|
+
}, {
|
|
135
|
+
name: "isAutoregister",
|
|
136
|
+
type: {
|
|
137
|
+
kind: "boolean"
|
|
138
|
+
}
|
|
139
|
+
}]
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
export { Tr2EffectConstant };
|
|
143
|
+
//# sourceMappingURL=Tr2EffectConstant.js.map
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
import { CjsSchema, type } from '@carbonenginejs/runtime-utils/schema';
|
|
2
|
-
import { CjsModel } from '@carbonenginejs/runtime-utils/model';
|
|
3
|
-
|
|
4
|
-
// Source: trinity/trinity/Shader/Tr2EffectDescription.h
|
|
5
|
-
|
|
6
|
-
/** Effect compile define retained as source metadata. */
|
|
7
|
-
class Tr2EffectDefine extends CjsModel {
|
|
8
|
-
/** name (const char*) */
|
|
9
|
-
name = "";
|
|
10
|
-
|
|
11
|
-
/** value (const char*) */
|
|
12
|
-
value = "";
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
// Declared imperatively rather than with decorators, so this module stays
|
|
16
|
-
// plain ESM that loads from source without a transform. The decorator
|
|
17
|
-
// expressions are reused verbatim, so the registered metadata is identical.
|
|
18
|
-
// Statics belong in `methods`: decorateMethod targets the prototype and
|
|
19
|
-
// would register a static as an instance field.
|
|
20
|
-
CjsSchema.define(Tr2EffectDefine, {
|
|
21
|
-
className: "Tr2EffectDefine",
|
|
22
|
-
family: "shader",
|
|
23
|
-
fields: {
|
|
24
|
-
name: type.string,
|
|
25
|
-
value: type.string
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
export { Tr2EffectDefine };
|
|
30
|
-
//# sourceMappingURL=Tr2EffectDefine.js.map
|
|
1
|
+
import { CjsSchema, type } from '@carbonenginejs/runtime-utils/schema';
|
|
2
|
+
import { CjsModel } from '@carbonenginejs/runtime-utils/model';
|
|
3
|
+
|
|
4
|
+
// Source: trinity/trinity/Shader/Tr2EffectDescription.h
|
|
5
|
+
|
|
6
|
+
/** Effect compile define retained as source metadata. */
|
|
7
|
+
class Tr2EffectDefine extends CjsModel {
|
|
8
|
+
/** name (const char*) */
|
|
9
|
+
name = "";
|
|
10
|
+
|
|
11
|
+
/** value (const char*) */
|
|
12
|
+
value = "";
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// Declared imperatively rather than with decorators, so this module stays
|
|
16
|
+
// plain ESM that loads from source without a transform. The decorator
|
|
17
|
+
// expressions are reused verbatim, so the registered metadata is identical.
|
|
18
|
+
// Statics belong in `methods`: decorateMethod targets the prototype and
|
|
19
|
+
// would register a static as an instance field.
|
|
20
|
+
CjsSchema.define(Tr2EffectDefine, {
|
|
21
|
+
className: "Tr2EffectDefine",
|
|
22
|
+
family: "shader",
|
|
23
|
+
fields: {
|
|
24
|
+
name: type.string,
|
|
25
|
+
value: type.string
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
export { Tr2EffectDefine };
|
|
30
|
+
//# sourceMappingURL=Tr2EffectDefine.js.map
|
|
@@ -1,114 +1,114 @@
|
|
|
1
|
-
import { CjsSchema, type } from '@carbonenginejs/runtime-utils/schema';
|
|
2
|
-
import { CjsModel } from '@carbonenginejs/runtime-utils/model';
|
|
3
|
-
import { isPlainObject } from '@carbonenginejs/runtime-utils/is';
|
|
4
|
-
import { Tr2EffectParameterAnnotation } from './Tr2EffectParameterAnnotation.js';
|
|
5
|
-
import { Tr2EffectTechnique } from './Tr2EffectTechnique.js';
|
|
6
|
-
import { recordText, toRecordText } from './carbonRecordFields.js';
|
|
7
|
-
import { compareUtf8 } from '../../../format/compareUtf8.js';
|
|
8
|
-
|
|
9
|
-
// Source: trinity/trinity/Shader/Tr2EffectDescription.h
|
|
10
|
-
// Source: trinity/trinity/Shader/Tr2EffectDescription.cpp
|
|
11
|
-
|
|
12
|
-
/** Complete device-free effect description for one selected shader body. */
|
|
13
|
-
class Tr2EffectDescription extends CjsModel {
|
|
14
|
-
/** techniques (TrackableStdVector<Tr2EffectTechnique>) */
|
|
15
|
-
techniques = [];
|
|
16
|
-
|
|
17
|
-
/** annotations (Tr2EffectAnnotationMap) */
|
|
18
|
-
annotations = new Map();
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Construct a canonical effect description from JS/JSON model values.
|
|
22
|
-
*
|
|
23
|
-
* @param {object} values Canonical model values.
|
|
24
|
-
* @param {object} options CjsModel import options.
|
|
25
|
-
* @returns {Tr2EffectDescription} Hydrated description.
|
|
26
|
-
*/
|
|
27
|
-
static from(values = {}, options = {}) {
|
|
28
|
-
let normalized = values;
|
|
29
|
-
let annotations = null;
|
|
30
|
-
if (values && Object.hasOwn(values, "annotations")) {
|
|
31
|
-
const entries = values.annotations instanceof Map ? values.annotations : Object.entries(values.annotations ?? {});
|
|
32
|
-
annotations = new Map();
|
|
33
|
-
for (const [parameterName, records] of entries) {
|
|
34
|
-
if (!Array.isArray(records)) {
|
|
35
|
-
throw new TypeError(`Effect annotations for "${parameterName}" must be an array`);
|
|
36
|
-
}
|
|
37
|
-
annotations.set(String(parameterName), records.map(record => record instanceof Tr2EffectParameterAnnotation ? record : Tr2EffectParameterAnnotation.from(record, options)));
|
|
38
|
-
}
|
|
39
|
-
normalized = {
|
|
40
|
-
...values,
|
|
41
|
-
annotations
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
const effect = super.from(normalized, options);
|
|
45
|
-
if (annotations) {
|
|
46
|
-
effect.annotations = annotations;
|
|
47
|
-
}
|
|
48
|
-
return effect;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Build one complete effect description from its Carbon v15 record tree.
|
|
53
|
-
*
|
|
54
|
-
* This is the whole body: every technique, and the effect-level annotation
|
|
55
|
-
* groups keyed by the parameter they annotate. Carbon sorts those keys by
|
|
56
|
-
* `strcmp` on the way out, and the map preserves whatever order the file used,
|
|
57
|
-
* so nothing here depends on the ordering being meaningful.
|
|
58
|
-
*
|
|
59
|
-
* @param {object} record Carbon effect description record.
|
|
60
|
-
* @returns {Tr2EffectDescription} Reflected description.
|
|
61
|
-
*/
|
|
62
|
-
static fromCarbonBinary(record) {
|
|
63
|
-
if (!isPlainObject(record)) {
|
|
64
|
-
throw new TypeError("Carbon effect description record must be an object");
|
|
65
|
-
}
|
|
66
|
-
const effect = new this();
|
|
67
|
-
effect.annotations = new Map();
|
|
68
|
-
for (const group of record.annotations) {
|
|
69
|
-
const parameterName = recordText(group.name);
|
|
70
|
-
if (effect.annotations.has(parameterName)) {
|
|
71
|
-
throw new Error(`Carbon effect annotation group "${parameterName}" is duplicated`);
|
|
72
|
-
}
|
|
73
|
-
effect.annotations.set(parameterName, group.annotations.map(entry => Tr2EffectParameterAnnotation.fromCarbonBinary(entry)));
|
|
74
|
-
}
|
|
75
|
-
effect.techniques = record.techniques.map(entry => Tr2EffectTechnique.fromCarbonBinary(entry));
|
|
76
|
-
return effect;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Emit this description as a Carbon v15 record tree.
|
|
81
|
-
*
|
|
82
|
-
* Effect-level annotation groups are sorted by parameter name, and each
|
|
83
|
-
* group's annotations by their own name, because Carbon sorts both by `strcmp`
|
|
84
|
-
* before writing.
|
|
85
|
-
*
|
|
86
|
-
* @returns {object} Carbon effect description record.
|
|
87
|
-
*/
|
|
88
|
-
toCarbonBinary() {
|
|
89
|
-
return {
|
|
90
|
-
techniques: this.techniques.map(technique => technique.toCarbonBinary()),
|
|
91
|
-
annotations: Array.from(this.annotations, ([name, annotations]) => ({
|
|
92
|
-
name: toRecordText(name),
|
|
93
|
-
annotations: annotations.map(entry => entry.toCarbonBinary()).sort((left, right) => compareUtf8(left.name.value, right.name.value))
|
|
94
|
-
})).sort((left, right) => compareUtf8(left.name.value, right.name.value))
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
// Declared imperatively rather than with decorators, so this module stays
|
|
100
|
-
// plain ESM that loads from source without a transform. The decorator
|
|
101
|
-
// expressions are reused verbatim, so the registered metadata is identical.
|
|
102
|
-
// Statics belong in `methods`: decorateMethod targets the prototype and
|
|
103
|
-
// would register a static as an instance field.
|
|
104
|
-
CjsSchema.define(Tr2EffectDescription, {
|
|
105
|
-
className: "Tr2EffectDescription",
|
|
106
|
-
family: "shader",
|
|
107
|
-
fields: {
|
|
108
|
-
techniques: type.list("Tr2EffectTechnique"),
|
|
109
|
-
annotations: type.map("Tr2EffectParameterAnnotationMap")
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
|
-
|
|
113
|
-
export { Tr2EffectDescription };
|
|
114
|
-
//# sourceMappingURL=Tr2EffectDescription.js.map
|
|
1
|
+
import { CjsSchema, type } from '@carbonenginejs/runtime-utils/schema';
|
|
2
|
+
import { CjsModel } from '@carbonenginejs/runtime-utils/model';
|
|
3
|
+
import { isPlainObject } from '@carbonenginejs/runtime-utils/is';
|
|
4
|
+
import { Tr2EffectParameterAnnotation } from './Tr2EffectParameterAnnotation.js';
|
|
5
|
+
import { Tr2EffectTechnique } from './Tr2EffectTechnique.js';
|
|
6
|
+
import { recordText, toRecordText } from './carbonRecordFields.js';
|
|
7
|
+
import { compareUtf8 } from '../../../format/compareUtf8.js';
|
|
8
|
+
|
|
9
|
+
// Source: trinity/trinity/Shader/Tr2EffectDescription.h
|
|
10
|
+
// Source: trinity/trinity/Shader/Tr2EffectDescription.cpp
|
|
11
|
+
|
|
12
|
+
/** Complete device-free effect description for one selected shader body. */
|
|
13
|
+
class Tr2EffectDescription extends CjsModel {
|
|
14
|
+
/** techniques (TrackableStdVector<Tr2EffectTechnique>) */
|
|
15
|
+
techniques = [];
|
|
16
|
+
|
|
17
|
+
/** annotations (Tr2EffectAnnotationMap) */
|
|
18
|
+
annotations = new Map();
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Construct a canonical effect description from JS/JSON model values.
|
|
22
|
+
*
|
|
23
|
+
* @param {object} values Canonical model values.
|
|
24
|
+
* @param {object} options CjsModel import options.
|
|
25
|
+
* @returns {Tr2EffectDescription} Hydrated description.
|
|
26
|
+
*/
|
|
27
|
+
static from(values = {}, options = {}) {
|
|
28
|
+
let normalized = values;
|
|
29
|
+
let annotations = null;
|
|
30
|
+
if (values && Object.hasOwn(values, "annotations")) {
|
|
31
|
+
const entries = values.annotations instanceof Map ? values.annotations : Object.entries(values.annotations ?? {});
|
|
32
|
+
annotations = new Map();
|
|
33
|
+
for (const [parameterName, records] of entries) {
|
|
34
|
+
if (!Array.isArray(records)) {
|
|
35
|
+
throw new TypeError(`Effect annotations for "${parameterName}" must be an array`);
|
|
36
|
+
}
|
|
37
|
+
annotations.set(String(parameterName), records.map(record => record instanceof Tr2EffectParameterAnnotation ? record : Tr2EffectParameterAnnotation.from(record, options)));
|
|
38
|
+
}
|
|
39
|
+
normalized = {
|
|
40
|
+
...values,
|
|
41
|
+
annotations
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
const effect = super.from(normalized, options);
|
|
45
|
+
if (annotations) {
|
|
46
|
+
effect.annotations = annotations;
|
|
47
|
+
}
|
|
48
|
+
return effect;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Build one complete effect description from its Carbon v15 record tree.
|
|
53
|
+
*
|
|
54
|
+
* This is the whole body: every technique, and the effect-level annotation
|
|
55
|
+
* groups keyed by the parameter they annotate. Carbon sorts those keys by
|
|
56
|
+
* `strcmp` on the way out, and the map preserves whatever order the file used,
|
|
57
|
+
* so nothing here depends on the ordering being meaningful.
|
|
58
|
+
*
|
|
59
|
+
* @param {object} record Carbon effect description record.
|
|
60
|
+
* @returns {Tr2EffectDescription} Reflected description.
|
|
61
|
+
*/
|
|
62
|
+
static fromCarbonBinary(record) {
|
|
63
|
+
if (!isPlainObject(record)) {
|
|
64
|
+
throw new TypeError("Carbon effect description record must be an object");
|
|
65
|
+
}
|
|
66
|
+
const effect = new this();
|
|
67
|
+
effect.annotations = new Map();
|
|
68
|
+
for (const group of record.annotations) {
|
|
69
|
+
const parameterName = recordText(group.name);
|
|
70
|
+
if (effect.annotations.has(parameterName)) {
|
|
71
|
+
throw new Error(`Carbon effect annotation group "${parameterName}" is duplicated`);
|
|
72
|
+
}
|
|
73
|
+
effect.annotations.set(parameterName, group.annotations.map(entry => Tr2EffectParameterAnnotation.fromCarbonBinary(entry)));
|
|
74
|
+
}
|
|
75
|
+
effect.techniques = record.techniques.map(entry => Tr2EffectTechnique.fromCarbonBinary(entry));
|
|
76
|
+
return effect;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Emit this description as a Carbon v15 record tree.
|
|
81
|
+
*
|
|
82
|
+
* Effect-level annotation groups are sorted by parameter name, and each
|
|
83
|
+
* group's annotations by their own name, because Carbon sorts both by `strcmp`
|
|
84
|
+
* before writing.
|
|
85
|
+
*
|
|
86
|
+
* @returns {object} Carbon effect description record.
|
|
87
|
+
*/
|
|
88
|
+
toCarbonBinary() {
|
|
89
|
+
return {
|
|
90
|
+
techniques: this.techniques.map(technique => technique.toCarbonBinary()),
|
|
91
|
+
annotations: Array.from(this.annotations, ([name, annotations]) => ({
|
|
92
|
+
name: toRecordText(name),
|
|
93
|
+
annotations: annotations.map(entry => entry.toCarbonBinary()).sort((left, right) => compareUtf8(left.name.value, right.name.value))
|
|
94
|
+
})).sort((left, right) => compareUtf8(left.name.value, right.name.value))
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// Declared imperatively rather than with decorators, so this module stays
|
|
100
|
+
// plain ESM that loads from source without a transform. The decorator
|
|
101
|
+
// expressions are reused verbatim, so the registered metadata is identical.
|
|
102
|
+
// Statics belong in `methods`: decorateMethod targets the prototype and
|
|
103
|
+
// would register a static as an instance field.
|
|
104
|
+
CjsSchema.define(Tr2EffectDescription, {
|
|
105
|
+
className: "Tr2EffectDescription",
|
|
106
|
+
family: "shader",
|
|
107
|
+
fields: {
|
|
108
|
+
techniques: type.list("Tr2EffectTechnique"),
|
|
109
|
+
annotations: type.map("Tr2EffectParameterAnnotationMap")
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
export { Tr2EffectDescription };
|
|
114
|
+
//# sourceMappingURL=Tr2EffectDescription.js.map
|