@carbonenginejs/runtime-resource 0.13.0 → 0.15.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 +570 -467
- package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
- 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,2 +1,2 @@
|
|
|
1
|
-
export { CjsWavFormat, CjsWavFormat as default } from './CjsWavFormat.js';
|
|
2
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
export { CjsWavFormat, CjsWavFormat as default } from './CjsWavFormat.js';
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -1,199 +1,199 @@
|
|
|
1
|
-
import { DEFAULT_VALUES, normalizeValues, emitGlslWithOptions, toJsonValue, isWebglEffectContainer, OUTPUT_JSON } from './core/helpers.js';
|
|
2
|
-
import { buildEffectPackage } from './core/effectPackage.js';
|
|
3
|
-
import { readGlslEffectContainer } from './core/readGlslEffectContainer.js';
|
|
4
|
-
import { inspectGlslEffectContainer } from './core/inspectGlslEffectContainer.js';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Exposed CarbonEngineJS-facing WebGL format class.
|
|
8
|
-
*
|
|
9
|
-
* Keep this file small and reviewable: container decoding lives in
|
|
10
|
-
* core/readGlslEffectContainer.js, summarising in
|
|
11
|
-
* core/inspectGlslEffectContainer.js, the DXBC-to-GLSL ES 3.00 emitter under
|
|
12
|
-
* core/glsl, and option normalization in core/helpers.js.
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
const FORMAT_NAME = "CjsWebglFormat";
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* CarbonEngineJS-facing format surface for `.carbonwebgl` WebGL shader packages, and
|
|
19
|
-
* a DXBC -> GLSL ES 3.00 emitter for the WebGL2 vertex/pixel/map-style-compute
|
|
20
|
-
* stages ccpwgl targets.
|
|
21
|
-
*
|
|
22
|
-
* The Cjs prefix marks this as a JavaScript format/construction boundary. A
|
|
23
|
-
* WebGL effect is a stock Carbon effect container whose stored programs are
|
|
24
|
-
* GLSL ES 3.00 - the same file shape Carbon ships for its own backends, and the
|
|
25
|
-
* same one WebGPU emits with WGSL. `Read` decodes one into stage and shader
|
|
26
|
-
* records; `Inspect` is a cheap structural summary; `BuildEffect` translates a
|
|
27
|
-
* compiled Tr2 effect into one; `EmitGlsl` translates a single DXBC stage.
|
|
28
|
-
*/
|
|
29
|
-
class CjsWebglFormat {
|
|
30
|
-
#emit = DEFAULT_VALUES.emit;
|
|
31
|
-
#source = DEFAULT_VALUES.source;
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Create a reusable format profile.
|
|
35
|
-
*
|
|
36
|
-
* @param {object} [options] Default format values.
|
|
37
|
-
*/
|
|
38
|
-
constructor(options = {}) {
|
|
39
|
-
this.SetValues(options);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Set format values for this reusable profile.
|
|
44
|
-
*
|
|
45
|
-
* @param {object} [options] Values to merge into the profile.
|
|
46
|
-
* @returns {CjsWebglFormat} This format profile.
|
|
47
|
-
*/
|
|
48
|
-
SetValues(options = {}) {
|
|
49
|
-
const values = normalizeValues(this.GetValues(), options, FORMAT_NAME);
|
|
50
|
-
this.#emit = values.emit;
|
|
51
|
-
this.#source = values.source;
|
|
52
|
-
return this;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Get this profile's current values, optionally with per-call overrides.
|
|
57
|
-
*
|
|
58
|
-
* @param {object} [options] Optional values to merge into a copy.
|
|
59
|
-
* @returns {object} A copy of the effective values.
|
|
60
|
-
*/
|
|
61
|
-
GetValues(options = {}) {
|
|
62
|
-
return normalizeValues({
|
|
63
|
-
emit: this.#emit,
|
|
64
|
-
source: this.#source
|
|
65
|
-
}, options, FORMAT_NAME);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Decode an effect container into stage and shader records.
|
|
70
|
-
*
|
|
71
|
-
* @param {Uint8Array|ArrayBuffer|Buffer|DataView} input Container bytes.
|
|
72
|
-
* @param {object} [options] Per-call value overrides.
|
|
73
|
-
* @returns {object} Stage graph in the completeness rules' vocabulary.
|
|
74
|
-
*/
|
|
75
|
-
Read(input, options = {}) {
|
|
76
|
-
return readGlslEffectContainer(input, this.GetValues(options));
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Summarise an effect container without decoding every body's records.
|
|
81
|
-
*
|
|
82
|
-
* @param {Uint8Array|ArrayBuffer|Buffer|DataView} input Container bytes.
|
|
83
|
-
* @param {object} [options] Per-call value overrides.
|
|
84
|
-
* @returns {object} Plain summary data.
|
|
85
|
-
*/
|
|
86
|
-
Inspect(input, options = {}) {
|
|
87
|
-
return inspectGlslEffectContainer(input, this.GetValues(options));
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* Translates one DXBC vertex/pixel/map-style-compute stage into GLSL ES 3.00.
|
|
92
|
-
*
|
|
93
|
-
* @param {ArrayBuffer|ArrayBufferView|Uint8Array} dxbcBytes DXBC container bytes.
|
|
94
|
-
* @param {object} [options] Combined ccpwgl-profile/emit options. See {@link CjsWebglFormat.emitGlsl}.
|
|
95
|
-
* @returns {object} GLSL text plus the IO contract the packaging layer records.
|
|
96
|
-
*/
|
|
97
|
-
EmitGlsl(dxbcBytes, options = {}) {
|
|
98
|
-
return emitGlslWithOptions(dxbcBytes, options);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* Builds a complete effect container from compiled Tr2 effect bytes.
|
|
103
|
-
*
|
|
104
|
-
* @param {Uint8Array|ArrayBuffer|ArrayBufferView} input Compiled effect bytes.
|
|
105
|
-
* @param {object} [options] Selection, provenance, and emitter policy.
|
|
106
|
-
* @returns {object} Package bytes plus inspection and qualification records.
|
|
107
|
-
*/
|
|
108
|
-
BuildEffect(input, options = {}) {
|
|
109
|
-
return buildEffectPackage(input, options);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
/**
|
|
113
|
-
* Instance JSON-compatible conversion.
|
|
114
|
-
*
|
|
115
|
-
* @param {any} value Format output to convert.
|
|
116
|
-
* @returns {any} Plain JSON-compatible data.
|
|
117
|
-
*/
|
|
118
|
-
ToJSON(value) {
|
|
119
|
-
return toJsonValue(value);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
/**
|
|
123
|
-
* Static payload sniff. Static methods use camelCase by convention.
|
|
124
|
-
*
|
|
125
|
-
* @param {Uint8Array|ArrayBuffer|Buffer|DataView} input Candidate bytes.
|
|
126
|
-
* @returns {boolean} True when the payload has the container shape.
|
|
127
|
-
*/
|
|
128
|
-
static isWebglEffectContainer(input) {
|
|
129
|
-
return isWebglEffectContainer(input);
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
/**
|
|
133
|
-
* Static one-shot container decode.
|
|
134
|
-
*
|
|
135
|
-
* @param {Uint8Array|ArrayBuffer|Buffer|DataView} input Container bytes.
|
|
136
|
-
* @param {object} [options] Format values.
|
|
137
|
-
* @returns {object} Stage graph in the completeness rules' vocabulary.
|
|
138
|
-
*/
|
|
139
|
-
static read(input, options = {}) {
|
|
140
|
-
return readGlslEffectContainer(input, normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME));
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
/**
|
|
144
|
-
* Static one-shot inspection.
|
|
145
|
-
*
|
|
146
|
-
* @param {Uint8Array|ArrayBuffer|Buffer|DataView} input Container bytes.
|
|
147
|
-
* @param {object} [options] Format values.
|
|
148
|
-
* @returns {object} Plain summary data.
|
|
149
|
-
*/
|
|
150
|
-
static inspect(input, options = {}) {
|
|
151
|
-
return inspectGlslEffectContainer(input, normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME));
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
/**
|
|
155
|
-
* Static one-shot DXBC-to-GLSL emission.
|
|
156
|
-
*
|
|
157
|
-
* @param {ArrayBuffer|ArrayBufferView|Uint8Array} dxbcBytes DXBC container bytes.
|
|
158
|
-
* @param {object} [options] Combined ccpwgl-profile/emit options: `constantBufferStyle`
|
|
159
|
-
* (`"array"` (default) uniform `vec4[]` for ccpwgl's uniform4fv path, or `"std140"`),
|
|
160
|
-
* `pixelConstantBufferRemap` (default `{ 0: 7 }`, pixel-stage cb slot renames),
|
|
161
|
-
* `samplerName(register, stageName)` (naming function), `vertexStructuredCapacity`
|
|
162
|
-
* (default 69, bone-array element capacity), `dataTextureWidth` (default 2048),
|
|
163
|
-
* `pairVaryings` (per-call varying zero-fill list), `source` (per-call error-detail name).
|
|
164
|
-
* @returns {object} GLSL text plus the IO contract the packaging layer records.
|
|
165
|
-
*/
|
|
166
|
-
static emitGlsl(dxbcBytes, options = {}) {
|
|
167
|
-
return emitGlslWithOptions(dxbcBytes, options);
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
/**
|
|
171
|
-
* Static whole-effect container builder.
|
|
172
|
-
*
|
|
173
|
-
* @param {Uint8Array|ArrayBuffer|ArrayBufferView} input Compiled effect bytes.
|
|
174
|
-
* @param {object} [options] Selection, provenance, and emitter policy.
|
|
175
|
-
* @returns {object} Package bytes plus inspection and qualification records.
|
|
176
|
-
*/
|
|
177
|
-
static buildEffect(input, options = {}) {
|
|
178
|
-
return buildEffectPackage(input, options);
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
/**
|
|
182
|
-
* Static JSON-compatible conversion.
|
|
183
|
-
*
|
|
184
|
-
* @param {any} value Format output to convert.
|
|
185
|
-
* @returns {any} Plain JSON-compatible data.
|
|
186
|
-
*/
|
|
187
|
-
static toJSON(value) {
|
|
188
|
-
return toJsonValue(value);
|
|
189
|
-
}
|
|
190
|
-
static OUTPUT_JSON = OUTPUT_JSON;
|
|
191
|
-
static type = Object.freeze(["shader"]);
|
|
192
|
-
static mediaTypes = Object.freeze(["shader"]);
|
|
193
|
-
static inputTypes = Object.freeze(["carbonwebgl"]);
|
|
194
|
-
static outputTypes = Object.freeze([OUTPUT_JSON]);
|
|
195
|
-
static packageVersion = "0.2.0";
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
export { CjsWebglFormat, CjsWebglFormat as default };
|
|
199
|
-
//# sourceMappingURL=CjsWebglFormat.js.map
|
|
1
|
+
import { DEFAULT_VALUES, normalizeValues, emitGlslWithOptions, toJsonValue, isWebglEffectContainer, OUTPUT_JSON } from './core/helpers.js';
|
|
2
|
+
import { buildEffectPackage } from './core/effectPackage.js';
|
|
3
|
+
import { readGlslEffectContainer } from './core/readGlslEffectContainer.js';
|
|
4
|
+
import { inspectGlslEffectContainer } from './core/inspectGlslEffectContainer.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Exposed CarbonEngineJS-facing WebGL format class.
|
|
8
|
+
*
|
|
9
|
+
* Keep this file small and reviewable: container decoding lives in
|
|
10
|
+
* core/readGlslEffectContainer.js, summarising in
|
|
11
|
+
* core/inspectGlslEffectContainer.js, the DXBC-to-GLSL ES 3.00 emitter under
|
|
12
|
+
* core/glsl, and option normalization in core/helpers.js.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
const FORMAT_NAME = "CjsWebglFormat";
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* CarbonEngineJS-facing format surface for `.carbonwebgl` WebGL shader packages, and
|
|
19
|
+
* a DXBC -> GLSL ES 3.00 emitter for the WebGL2 vertex/pixel/map-style-compute
|
|
20
|
+
* stages ccpwgl targets.
|
|
21
|
+
*
|
|
22
|
+
* The Cjs prefix marks this as a JavaScript format/construction boundary. A
|
|
23
|
+
* WebGL effect is a stock Carbon effect container whose stored programs are
|
|
24
|
+
* GLSL ES 3.00 - the same file shape Carbon ships for its own backends, and the
|
|
25
|
+
* same one WebGPU emits with WGSL. `Read` decodes one into stage and shader
|
|
26
|
+
* records; `Inspect` is a cheap structural summary; `BuildEffect` translates a
|
|
27
|
+
* compiled Tr2 effect into one; `EmitGlsl` translates a single DXBC stage.
|
|
28
|
+
*/
|
|
29
|
+
class CjsWebglFormat {
|
|
30
|
+
#emit = DEFAULT_VALUES.emit;
|
|
31
|
+
#source = DEFAULT_VALUES.source;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Create a reusable format profile.
|
|
35
|
+
*
|
|
36
|
+
* @param {object} [options] Default format values.
|
|
37
|
+
*/
|
|
38
|
+
constructor(options = {}) {
|
|
39
|
+
this.SetValues(options);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Set format values for this reusable profile.
|
|
44
|
+
*
|
|
45
|
+
* @param {object} [options] Values to merge into the profile.
|
|
46
|
+
* @returns {CjsWebglFormat} This format profile.
|
|
47
|
+
*/
|
|
48
|
+
SetValues(options = {}) {
|
|
49
|
+
const values = normalizeValues(this.GetValues(), options, FORMAT_NAME);
|
|
50
|
+
this.#emit = values.emit;
|
|
51
|
+
this.#source = values.source;
|
|
52
|
+
return this;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Get this profile's current values, optionally with per-call overrides.
|
|
57
|
+
*
|
|
58
|
+
* @param {object} [options] Optional values to merge into a copy.
|
|
59
|
+
* @returns {object} A copy of the effective values.
|
|
60
|
+
*/
|
|
61
|
+
GetValues(options = {}) {
|
|
62
|
+
return normalizeValues({
|
|
63
|
+
emit: this.#emit,
|
|
64
|
+
source: this.#source
|
|
65
|
+
}, options, FORMAT_NAME);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Decode an effect container into stage and shader records.
|
|
70
|
+
*
|
|
71
|
+
* @param {Uint8Array|ArrayBuffer|Buffer|DataView} input Container bytes.
|
|
72
|
+
* @param {object} [options] Per-call value overrides.
|
|
73
|
+
* @returns {object} Stage graph in the completeness rules' vocabulary.
|
|
74
|
+
*/
|
|
75
|
+
Read(input, options = {}) {
|
|
76
|
+
return readGlslEffectContainer(input, this.GetValues(options));
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Summarise an effect container without decoding every body's records.
|
|
81
|
+
*
|
|
82
|
+
* @param {Uint8Array|ArrayBuffer|Buffer|DataView} input Container bytes.
|
|
83
|
+
* @param {object} [options] Per-call value overrides.
|
|
84
|
+
* @returns {object} Plain summary data.
|
|
85
|
+
*/
|
|
86
|
+
Inspect(input, options = {}) {
|
|
87
|
+
return inspectGlslEffectContainer(input, this.GetValues(options));
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Translates one DXBC vertex/pixel/map-style-compute stage into GLSL ES 3.00.
|
|
92
|
+
*
|
|
93
|
+
* @param {ArrayBuffer|ArrayBufferView|Uint8Array} dxbcBytes DXBC container bytes.
|
|
94
|
+
* @param {object} [options] Combined ccpwgl-profile/emit options. See {@link CjsWebglFormat.emitGlsl}.
|
|
95
|
+
* @returns {object} GLSL text plus the IO contract the packaging layer records.
|
|
96
|
+
*/
|
|
97
|
+
EmitGlsl(dxbcBytes, options = {}) {
|
|
98
|
+
return emitGlslWithOptions(dxbcBytes, options);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Builds a complete effect container from compiled Tr2 effect bytes.
|
|
103
|
+
*
|
|
104
|
+
* @param {Uint8Array|ArrayBuffer|ArrayBufferView} input Compiled effect bytes.
|
|
105
|
+
* @param {object} [options] Selection, provenance, and emitter policy.
|
|
106
|
+
* @returns {object} Package bytes plus inspection and qualification records.
|
|
107
|
+
*/
|
|
108
|
+
BuildEffect(input, options = {}) {
|
|
109
|
+
return buildEffectPackage(input, options);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Instance JSON-compatible conversion.
|
|
114
|
+
*
|
|
115
|
+
* @param {any} value Format output to convert.
|
|
116
|
+
* @returns {any} Plain JSON-compatible data.
|
|
117
|
+
*/
|
|
118
|
+
ToJSON(value) {
|
|
119
|
+
return toJsonValue(value);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Static payload sniff. Static methods use camelCase by convention.
|
|
124
|
+
*
|
|
125
|
+
* @param {Uint8Array|ArrayBuffer|Buffer|DataView} input Candidate bytes.
|
|
126
|
+
* @returns {boolean} True when the payload has the container shape.
|
|
127
|
+
*/
|
|
128
|
+
static isWebglEffectContainer(input) {
|
|
129
|
+
return isWebglEffectContainer(input);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Static one-shot container decode.
|
|
134
|
+
*
|
|
135
|
+
* @param {Uint8Array|ArrayBuffer|Buffer|DataView} input Container bytes.
|
|
136
|
+
* @param {object} [options] Format values.
|
|
137
|
+
* @returns {object} Stage graph in the completeness rules' vocabulary.
|
|
138
|
+
*/
|
|
139
|
+
static read(input, options = {}) {
|
|
140
|
+
return readGlslEffectContainer(input, normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME));
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Static one-shot inspection.
|
|
145
|
+
*
|
|
146
|
+
* @param {Uint8Array|ArrayBuffer|Buffer|DataView} input Container bytes.
|
|
147
|
+
* @param {object} [options] Format values.
|
|
148
|
+
* @returns {object} Plain summary data.
|
|
149
|
+
*/
|
|
150
|
+
static inspect(input, options = {}) {
|
|
151
|
+
return inspectGlslEffectContainer(input, normalizeValues(DEFAULT_VALUES, options, FORMAT_NAME));
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Static one-shot DXBC-to-GLSL emission.
|
|
156
|
+
*
|
|
157
|
+
* @param {ArrayBuffer|ArrayBufferView|Uint8Array} dxbcBytes DXBC container bytes.
|
|
158
|
+
* @param {object} [options] Combined ccpwgl-profile/emit options: `constantBufferStyle`
|
|
159
|
+
* (`"array"` (default) uniform `vec4[]` for ccpwgl's uniform4fv path, or `"std140"`),
|
|
160
|
+
* `pixelConstantBufferRemap` (default `{ 0: 7 }`, pixel-stage cb slot renames),
|
|
161
|
+
* `samplerName(register, stageName)` (naming function), `vertexStructuredCapacity`
|
|
162
|
+
* (default 69, bone-array element capacity), `dataTextureWidth` (default 2048),
|
|
163
|
+
* `pairVaryings` (per-call varying zero-fill list), `source` (per-call error-detail name).
|
|
164
|
+
* @returns {object} GLSL text plus the IO contract the packaging layer records.
|
|
165
|
+
*/
|
|
166
|
+
static emitGlsl(dxbcBytes, options = {}) {
|
|
167
|
+
return emitGlslWithOptions(dxbcBytes, options);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* Static whole-effect container builder.
|
|
172
|
+
*
|
|
173
|
+
* @param {Uint8Array|ArrayBuffer|ArrayBufferView} input Compiled effect bytes.
|
|
174
|
+
* @param {object} [options] Selection, provenance, and emitter policy.
|
|
175
|
+
* @returns {object} Package bytes plus inspection and qualification records.
|
|
176
|
+
*/
|
|
177
|
+
static buildEffect(input, options = {}) {
|
|
178
|
+
return buildEffectPackage(input, options);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Static JSON-compatible conversion.
|
|
183
|
+
*
|
|
184
|
+
* @param {any} value Format output to convert.
|
|
185
|
+
* @returns {any} Plain JSON-compatible data.
|
|
186
|
+
*/
|
|
187
|
+
static toJSON(value) {
|
|
188
|
+
return toJsonValue(value);
|
|
189
|
+
}
|
|
190
|
+
static OUTPUT_JSON = OUTPUT_JSON;
|
|
191
|
+
static type = Object.freeze(["shader"]);
|
|
192
|
+
static mediaTypes = Object.freeze(["shader"]);
|
|
193
|
+
static inputTypes = Object.freeze(["carbonwebgl"]);
|
|
194
|
+
static outputTypes = Object.freeze([OUTPUT_JSON]);
|
|
195
|
+
static packageVersion = "0.2.0";
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
export { CjsWebglFormat, CjsWebglFormat as default };
|
|
199
|
+
//# sourceMappingURL=CjsWebglFormat.js.map
|
|
@@ -1,70 +1,70 @@
|
|
|
1
|
-
import { buildCarbonEffectContainer } from '../../../format/carbonEffect/buildCarbonEffectContainer.js';
|
|
2
|
-
import { writeGlslBackendBlock } from './glslBackendBlock.js';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* The WebGL 2 backend adapter for the shared Carbon container builder.
|
|
6
|
-
*
|
|
7
|
-
* The record layout, the permutation walk and the description mapping are shared
|
|
8
|
-
* with WebGPU and live in `format/carbonEffect/buildCarbonEffectContainer.js`.
|
|
9
|
-
* What remains here is the two backend-varying decisions: a program is GLSL ES
|
|
10
|
-
* 3.00 text, and a pass's trailing block is the GLSL lowering data.
|
|
11
|
-
*
|
|
12
|
-
* There is no entry-point assertion to make. GLSL's entry point is `main` by
|
|
13
|
-
* language rule rather than by our emitter's choice, so unlike WGSL there is
|
|
14
|
-
* nothing a future lowerer could change.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Encodes one GLSL stage program.
|
|
19
|
-
*
|
|
20
|
-
* @param {object} shader Translated shader record.
|
|
21
|
-
* @returns {Uint8Array} Program bytes.
|
|
22
|
-
*/
|
|
23
|
-
function encodeProgram(shader) {
|
|
24
|
-
return new TextEncoder().encode(shader.code);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Builds the per-pass backend block for one pass of one translated body.
|
|
29
|
-
*
|
|
30
|
-
* A pass whose stages added no lowering data emits no block at all rather than
|
|
31
|
-
* an empty one, so the description ends where Carbon's would and the optional
|
|
32
|
-
* block stays genuinely optional.
|
|
33
|
-
*
|
|
34
|
-
* @param {object} unit Pass translation unit.
|
|
35
|
-
* @param {string} passKey Enclosing pass key.
|
|
36
|
-
* @returns {Uint8Array|null} Block bytes, or null when the pass has none.
|
|
37
|
-
*/
|
|
38
|
-
function encodeBackendBlock(unit, passKey) {
|
|
39
|
-
const stages = unit.block;
|
|
40
|
-
const transforms = (unit.resourceTransforms ?? []).filter(transform => transform.layoutKey === passKey);
|
|
41
|
-
if (!stages && !transforms.length) return null;
|
|
42
|
-
return writeGlslBackendBlock({
|
|
43
|
-
stages: stages ?? {},
|
|
44
|
-
transforms
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/** The WebGL encoders, as the shared builder's backend argument. */
|
|
49
|
-
const GLSL_CONTAINER_BACKEND = Object.freeze({
|
|
50
|
-
encodeProgram,
|
|
51
|
-
encodeBackendBlock
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Builds the complete WebGL 2 effect container.
|
|
56
|
-
*
|
|
57
|
-
* @param {object} effectRes Loaded version-15 `Tr2EffectRes`.
|
|
58
|
-
* @param {object} permutationGraph Validated `PGRF` document.
|
|
59
|
-
* @param {object} backendBodySet Translated GLSL bodies.
|
|
60
|
-
* @param {object} [options] Container options.
|
|
61
|
-
* @param {number[]|Uint8Array} [options.compilerVersion] Four version bytes.
|
|
62
|
-
* @param {string} [options.sourceHash] 32 ASCII hash characters.
|
|
63
|
-
* @returns {{bytes:Uint8Array, permutationCount:number, bodyCount:number}} Container and its body accounting.
|
|
64
|
-
*/
|
|
65
|
-
function buildGlslEffectContainer(effectRes, permutationGraph, backendBodySet, options = {}) {
|
|
66
|
-
return buildCarbonEffectContainer(effectRes, permutationGraph, backendBodySet, GLSL_CONTAINER_BACKEND, options);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
export { GLSL_CONTAINER_BACKEND, buildGlslEffectContainer };
|
|
70
|
-
//# sourceMappingURL=buildGlslEffectContainer.js.map
|
|
1
|
+
import { buildCarbonEffectContainer } from '../../../format/carbonEffect/buildCarbonEffectContainer.js';
|
|
2
|
+
import { writeGlslBackendBlock } from './glslBackendBlock.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* The WebGL 2 backend adapter for the shared Carbon container builder.
|
|
6
|
+
*
|
|
7
|
+
* The record layout, the permutation walk and the description mapping are shared
|
|
8
|
+
* with WebGPU and live in `format/carbonEffect/buildCarbonEffectContainer.js`.
|
|
9
|
+
* What remains here is the two backend-varying decisions: a program is GLSL ES
|
|
10
|
+
* 3.00 text, and a pass's trailing block is the GLSL lowering data.
|
|
11
|
+
*
|
|
12
|
+
* There is no entry-point assertion to make. GLSL's entry point is `main` by
|
|
13
|
+
* language rule rather than by our emitter's choice, so unlike WGSL there is
|
|
14
|
+
* nothing a future lowerer could change.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Encodes one GLSL stage program.
|
|
19
|
+
*
|
|
20
|
+
* @param {object} shader Translated shader record.
|
|
21
|
+
* @returns {Uint8Array} Program bytes.
|
|
22
|
+
*/
|
|
23
|
+
function encodeProgram(shader) {
|
|
24
|
+
return new TextEncoder().encode(shader.code);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Builds the per-pass backend block for one pass of one translated body.
|
|
29
|
+
*
|
|
30
|
+
* A pass whose stages added no lowering data emits no block at all rather than
|
|
31
|
+
* an empty one, so the description ends where Carbon's would and the optional
|
|
32
|
+
* block stays genuinely optional.
|
|
33
|
+
*
|
|
34
|
+
* @param {object} unit Pass translation unit.
|
|
35
|
+
* @param {string} passKey Enclosing pass key.
|
|
36
|
+
* @returns {Uint8Array|null} Block bytes, or null when the pass has none.
|
|
37
|
+
*/
|
|
38
|
+
function encodeBackendBlock(unit, passKey) {
|
|
39
|
+
const stages = unit.block;
|
|
40
|
+
const transforms = (unit.resourceTransforms ?? []).filter(transform => transform.layoutKey === passKey);
|
|
41
|
+
if (!stages && !transforms.length) return null;
|
|
42
|
+
return writeGlslBackendBlock({
|
|
43
|
+
stages: stages ?? {},
|
|
44
|
+
transforms
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/** The WebGL encoders, as the shared builder's backend argument. */
|
|
49
|
+
const GLSL_CONTAINER_BACKEND = Object.freeze({
|
|
50
|
+
encodeProgram,
|
|
51
|
+
encodeBackendBlock
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Builds the complete WebGL 2 effect container.
|
|
56
|
+
*
|
|
57
|
+
* @param {object} effectRes Loaded version-15 `Tr2EffectRes`.
|
|
58
|
+
* @param {object} permutationGraph Validated `PGRF` document.
|
|
59
|
+
* @param {object} backendBodySet Translated GLSL bodies.
|
|
60
|
+
* @param {object} [options] Container options.
|
|
61
|
+
* @param {number[]|Uint8Array} [options.compilerVersion] Four version bytes.
|
|
62
|
+
* @param {string} [options.sourceHash] 32 ASCII hash characters.
|
|
63
|
+
* @returns {{bytes:Uint8Array, permutationCount:number, bodyCount:number}} Container and its body accounting.
|
|
64
|
+
*/
|
|
65
|
+
function buildGlslEffectContainer(effectRes, permutationGraph, backendBodySet, options = {}) {
|
|
66
|
+
return buildCarbonEffectContainer(effectRes, permutationGraph, backendBodySet, GLSL_CONTAINER_BACKEND, options);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export { GLSL_CONTAINER_BACKEND, buildGlslEffectContainer };
|
|
70
|
+
//# sourceMappingURL=buildGlslEffectContainer.js.map
|