@carbonenginejs/runtime-resource 0.12.1 → 0.13.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 -108
- package/dist/CjsMotherLode.js +1271 -1271
- package/dist/CjsResMan.js +3858 -3494
- package/dist/CjsResMan.js.map +1 -1
- 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 +408 -361
- package/dist/format/carbonEffect/CjsCarbonEffectReader.js.map +1 -1
- package/dist/format/carbonEffect/CjsCarbonEffectWriter.js +373 -373
- package/dist/format/carbonEffect/buildCarbonEffectContainer.js +182 -0
- package/dist/format/carbonEffect/buildCarbonEffectContainer.js.map +1 -0
- package/dist/format/carbonEffect/carbonEffectBackendBlock.js +321 -427
- package/dist/format/carbonEffect/carbonEffectBackendBlock.js.map +1 -1
- package/dist/format/carbonEffect/carbonEffectRecords.js +1147 -955
- package/dist/format/carbonEffect/carbonEffectRecords.js.map +1 -1
- package/dist/format/carbonEffect/carbonEffectResourceTransform.js +197 -0
- package/dist/format/carbonEffect/carbonEffectResourceTransform.js.map +1 -0
- package/dist/format/compareUtf8.js +36 -36
- package/dist/format/effect/effectBodyInventory.js +146 -0
- package/dist/format/effect/effectBodyInventory.js.map +1 -0
- package/dist/format/effect/effectPermutationGraph.js +257 -257
- package/dist/format/effect/effectPermutationGraph.js.map +1 -1
- 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 -292
- package/dist/formats/black/CjsBlackFormat.js.map +1 -1
- 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 -156
- package/dist/formats/bnk/CjsBnkFormat.js.map +1 -1
- package/dist/formats/bnk/core/busNodes.js +252 -0
- package/dist/formats/bnk/core/busNodes.js.map +1 -0
- package/dist/formats/bnk/core/effectNodes.js +147 -0
- package/dist/formats/bnk/core/effectNodes.js.map +1 -0
- package/dist/formats/bnk/core/eventAction.js +416 -305
- package/dist/formats/bnk/core/eventAction.js.map +1 -1
- package/dist/formats/bnk/core/globalSettings.js +215 -0
- package/dist/formats/bnk/core/globalSettings.js.map +1 -0
- package/dist/formats/bnk/core/graph.js +137 -137
- package/dist/formats/bnk/core/helpers.js +512 -480
- package/dist/formats/bnk/core/helpers.js.map +1 -1
- package/dist/formats/bnk/core/musicNodes.js +533 -509
- package/dist/formats/bnk/core/musicNodes.js.map +1 -1
- package/dist/formats/bnk/core/nodeBase.js +553 -532
- package/dist/formats/bnk/core/nodeBase.js.map +1 -1
- 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 +862 -862
- package/dist/formats/dds/index.js +2 -2
- package/dist/formats/dxbc/CjsDxbcFormat.js +142 -142
- 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/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 +290 -290
- package/dist/formats/gltf/core/helpers.js +307 -307
- 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 +254 -254
- 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 -781
- package/dist/formats/hlsl/core/carbonDescriptionToRuntime.js.map +1 -1
- package/dist/formats/hlsl/core/detailMapFamily.js +128 -0
- package/dist/formats/hlsl/core/detailMapFamily.js.map +1 -0
- 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 -0
- package/dist/formats/hlsl/core/localLightFamily.js.map +1 -0
- 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 -314
- package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js.map +1 -1
- package/dist/formats/hlsl/core/tr2/resources/HlslShaderPermutation.js +33 -33
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js +416 -416
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectConstant.js +40 -40
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js +62 -742
- package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js.map +1 -1
- 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 -31
- package/dist/formats/index.js.map +1 -1
- 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 +253 -253
- package/dist/formats/obj/core/helpers.js +573 -573
- 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 -0
- package/dist/formats/pickle/CjsPickleFormat.js.map +1 -0
- package/dist/formats/pickle/core/CjsPickleProtocol0Reader.js +551 -0
- package/dist/formats/pickle/core/CjsPickleProtocol0Reader.js.map +1 -0
- package/dist/formats/pickle/index.js +2 -0
- package/dist/formats/pickle/index.js.map +1 -0
- 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 -68
- package/dist/formats/red/core/redGraph.js.map +1 -1
- package/dist/formats/red/core/schema.js +4 -4
- package/dist/formats/red/index.js +2 -2
- package/dist/formats/stl/CjsStlFormat.js +365 -365
- package/dist/formats/stl/core/helpers.js +261 -261
- 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 -221
- package/dist/formats/webgl/CjsWebglFormat.js.map +1 -1
- package/dist/formats/webgl/core/buildGlslEffectContainer.js +70 -0
- package/dist/formats/webgl/core/buildGlslEffectContainer.js.map +1 -0
- package/dist/formats/webgl/core/effectPackage.js +900 -792
- package/dist/formats/webgl/core/effectPackage.js.map +1 -1
- package/dist/formats/webgl/core/errors.js +27 -27
- package/dist/formats/webgl/core/errors.js.map +1 -1
- package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js +2820 -2678
- package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
- package/dist/formats/webgl/core/glsl/DxbcGlslHelpers.js +89 -89
- package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +486 -428
- package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -1
- package/dist/formats/webgl/core/glsl/packedLightFixups.js +98 -0
- package/dist/formats/webgl/core/glsl/packedLightFixups.js.map +1 -0
- package/dist/formats/webgl/core/glslBackendBlock.js +552 -0
- package/dist/formats/webgl/core/glslBackendBlock.js.map +1 -0
- package/dist/formats/webgl/core/glslBackendBodySet.js +243 -0
- package/dist/formats/webgl/core/glslBackendBodySet.js.map +1 -0
- package/dist/formats/webgl/core/{cewgCompleteness.js → glslEffectCompleteness.js} +85 -81
- package/dist/formats/webgl/core/glslEffectCompleteness.js.map +1 -0
- package/dist/formats/webgl/core/helpers.js +167 -306
- package/dist/formats/webgl/core/helpers.js.map +1 -1
- package/dist/formats/webgl/core/inspectGlslEffectContainer.js +122 -0
- package/dist/formats/webgl/core/inspectGlslEffectContainer.js.map +1 -0
- package/dist/formats/webgl/core/readGlslEffectContainer.js +303 -0
- package/dist/formats/webgl/core/readGlslEffectContainer.js.map +1 -0
- package/dist/formats/webgl/index.js +2 -2
- package/dist/formats/webgpu/CjsWebgpuFormat.js +357 -357
- package/dist/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
- package/dist/formats/webgpu/core/buildCarbonEffectContainer.js +89 -197
- package/dist/formats/webgpu/core/buildCarbonEffectContainer.js.map +1 -1
- package/dist/formats/webgpu/core/{cewgpu/CewgpuContainer.js → carbonWebgpu/CarbonWebgpuContainer.js} +354 -368
- package/dist/formats/webgpu/core/carbonWebgpu/CarbonWebgpuContainer.js.map +1 -0
- package/dist/formats/webgpu/core/{cewgpu → carbonWebgpu}/containerViews.js +355 -355
- package/dist/formats/webgpu/core/carbonWebgpu/containerViews.js.map +1 -0
- package/dist/formats/webgpu/core/{cewgpu → carbonWebgpu}/validateContainer.js +90 -90
- package/dist/formats/webgpu/core/carbonWebgpu/validateContainer.js.map +1 -0
- package/dist/formats/webgpu/core/effectAnalysis.js +82 -82
- package/dist/formats/webgpu/core/effectBackendBodySet.js +289 -289
- package/dist/formats/webgpu/core/effectBackendBodySet.js.map +1 -1
- package/dist/formats/webgpu/core/errors.js +20 -20
- package/dist/formats/webgpu/core/errors.js.map +1 -1
- package/dist/formats/webgpu/core/helpers.js +443 -443
- package/dist/formats/webgpu/core/helpers.js.map +1 -1
- 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 -385
- package/dist/formats/webgpu/core/packageEffect.js.map +1 -1
- package/dist/formats/webgpu/core/packageEffectSelection.js +164 -164
- package/dist/formats/webgpu/core/packageEffectSelection.js.map +1 -1
- 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/buildResourceTransformPlan.js.map +1 -1
- package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js +172 -172
- package/dist/formats/webgpu/core/wgsl/buildWgslSet.js +320 -320
- package/dist/formats/webgpu/core/wgsl/buildWgslSet.js.map +1 -1
- 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/CjsYamlFormat.js.map +1 -1
- package/dist/formats/yaml/core/CjsYamlReader.js +400 -402
- package/dist/formats/yaml/core/CjsYamlReader.js.map +1 -1
- package/dist/formats/yaml/core/helpers.js +196 -170
- package/dist/formats/yaml/core/helpers.js.map +1 -1
- package/dist/formats/yaml/index.js +2 -2
- package/dist/index.js +64 -62
- package/dist/index.js.map +1 -1
- package/dist/resource/CjsLoadingObject.js +19 -0
- package/dist/resource/CjsLoadingObject.js.map +1 -0
- package/dist/resource/CjsResource.js +801 -797
- package/dist/resource/CjsResource.js.map +1 -1
- package/dist/resource/ResourceHandlerMode.js +14 -0
- package/dist/resource/ResourceHandlerMode.js.map +1 -0
- 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 -52
- package/dist/resource/index.js.map +1 -1
- package/dist/resource/resourceBoundary.js +64 -64
- package/dist/resource/shader/Tr2EffectRes.js +336 -431
- package/dist/resource/shader/Tr2EffectRes.js.map +1 -1
- 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 -261
- package/dist/resource/shader/Tr2Shader.js.map +1 -1
- package/dist/resource/shader/Tr2ShaderPermutation.js +43 -43
- package/dist/resource/shader/index.js +17 -17
- package/dist/resource/shader/reflection/Tr2EffectConstant.js +143 -135
- package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectDefine.js +30 -30
- package/dist/resource/shader/reflection/Tr2EffectDescription.js +114 -109
- package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js +168 -147
- package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +125 -105
- package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectResource.js +120 -86
- package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js +372 -241
- package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js +78 -68
- package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
- package/dist/resource/shader/reflection/Tr2Pass.js +168 -111
- package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
- package/dist/resource/shader/reflection/carbonRecordFields.js +159 -0
- package/dist/resource/shader/reflection/carbonRecordFields.js.map +1 -0
- package/dist/resource/shader/reflection/shaderStage.js +22 -0
- package/dist/resource/shader/reflection/shaderStage.js.map +1 -0
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js +135 -77
- package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
- 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 -87
- package/dist/worker/CjsResManMainThreadLoader.js.map +1 -1
- package/dist/worker/CjsResManWorker.js +218 -217
- package/dist/worker/CjsResManWorker.js.map +1 -1
- package/dist/worker/CjsResManWorkerLoader.js +437 -434
- package/dist/worker/CjsResManWorkerLoader.js.map +1 -1
- package/dist/worker/protocol.js +12 -12
- package/docs/README.md +98 -98
- package/docs/architecture.md +118 -109
- package/docs/concepts/resource-lifecycle.md +226 -225
- package/docs/concepts/shader-resource-model.md +111 -114
- package/docs/concepts/writing-an-engine-adapter.md +115 -115
- package/docs/formats/README.md +138 -136
- package/docs/formats/carbon-effect-container.md +553 -452
- package/docs/formats/dxbc/README.md +68 -68
- package/docs/formats/dxbc/architecture.md +80 -80
- package/docs/formats/dxbc/reference/api.md +77 -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 +65 -67
- package/docs/formats/hlsl/guides/hydrating-json-output.md +60 -62
- package/docs/formats/hlsl/guides/reading-effects.md +64 -64
- package/docs/formats/hlsl/reference/advanced-analysis.md +61 -66
- package/docs/formats/hlsl/reference/api.md +92 -98
- package/docs/formats/hlsl/reference/classes/README.md +11 -11
- package/docs/formats/hlsl/reference/json-graph.md +97 -100
- package/docs/formats/pickle.md +82 -0
- package/docs/formats/provenance.md +196 -196
- package/docs/formats/stl.md +37 -37
- package/docs/formats/webgl/README.md +115 -57
- package/docs/formats/webgl/architecture.md +69 -70
- 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 -871
- 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 -96
- package/docs/formats/webgpu/formats/{cewgpu.md → carbon-webgpu.md} +215 -216
- package/docs/formats/webgpu/guides/effect-packaging.md +189 -191
- package/docs/formats/webgpu/reference/api.md +196 -197
- package/docs/formats/webgpu/reference/classes/README.md +9 -9
- package/docs/formats/webgpu/reference/wgsl-compatibility.md +1546 -1543
- package/docs/formats/wwise.md +146 -85
- package/docs/reference/classes/README.md +35 -35
- package/docs/reference/classes/audio.md +30 -30
- package/docs/reference/classes/core.md +216 -206
- package/docs/reference/classes/dropped.md +46 -46
- package/docs/reference/classes/formats.md +944 -952
- 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 -110
- 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 -135
- 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
- package/dist/format/carbonEffect/carbonDescriptionFromPortable.js +0 -372
- package/dist/format/carbonEffect/carbonDescriptionFromPortable.js.map +0 -1
- package/dist/format/effect/effectReflectionPackage.js +0 -636
- package/dist/format/effect/effectReflectionPackage.js.map +0 -1
- package/dist/formats/hlsl/core/HlslReader.js +0 -16
- package/dist/formats/hlsl/core/HlslReader.js.map +0 -1
- package/dist/formats/hlsl/core/portableReflection.js +0 -848
- package/dist/formats/hlsl/core/portableReflection.js.map +0 -1
- package/dist/formats/hlsl/portable.js +0 -2
- package/dist/formats/hlsl/portable.js.map +0 -1
- package/dist/formats/webgl/core/cewg/CewgPackage.js +0 -340
- package/dist/formats/webgl/core/cewg/CewgPackage.js.map +0 -1
- package/dist/formats/webgl/core/cewg/CewgPackageBuilder.js +0 -104
- package/dist/formats/webgl/core/cewg/CewgPackageBuilder.js.map +0 -1
- package/dist/formats/webgl/core/cewg/binary.js +0 -19
- package/dist/formats/webgl/core/cewg/binary.js.map +0 -1
- package/dist/formats/webgl/core/cewgCompleteness.js.map +0 -1
- package/dist/formats/webgl/core/effectPackageValidation.js +0 -331
- package/dist/formats/webgl/core/effectPackageValidation.js.map +0 -1
- package/dist/formats/webgpu/core/cewgpu/CewgpuContainer.js.map +0 -1
- package/dist/formats/webgpu/core/cewgpu/containerViews.js.map +0 -1
- package/dist/formats/webgpu/core/cewgpu/validateContainer.js.map +0 -1
- package/dist/resource/shader/portable.js +0 -33
- package/dist/resource/shader/portable.js.map +0 -1
- package/docs/formats/hlsl/reference/portable-reflection.md +0 -141
- package/docs/formats/webgl/effect-reflection.md +0 -127
|
@@ -1,448 +1,448 @@
|
|
|
1
|
-
import { normalizeCarbonTypeDescriptor, CARBON_TYPE } from '@carbonenginejs/runtime-utils/types';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Static set of read and skip routines that decode or skip individual Black
|
|
5
|
-
* property values (primitives, strings, arrays, structure lists,
|
|
6
|
-
* dictionaries, and binary blocks) from their type descriptors.
|
|
7
|
-
*/
|
|
8
|
-
class CjsBlackPropertyReaders {
|
|
9
|
-
/** Reads value from the current Black object-graph reader. */
|
|
10
|
-
static readValue(reader, field) {
|
|
11
|
-
const descriptor = normalizeCarbonTypeDescriptor(field);
|
|
12
|
-
if (field?.black?.beType) {
|
|
13
|
-
return CjsBlackPropertyReaders.readBlackValue(reader, field.black, descriptor);
|
|
14
|
-
}
|
|
15
|
-
switch (descriptor.kind) {
|
|
16
|
-
case CARBON_TYPE.BOOLEAN:
|
|
17
|
-
return reader.ReadU8() !== 0;
|
|
18
|
-
case CARBON_TYPE.STRING:
|
|
19
|
-
case CARBON_TYPE.EXPRESSION:
|
|
20
|
-
return reader.ReadStringRef();
|
|
21
|
-
case CARBON_TYPE.PATH:
|
|
22
|
-
return reader.context.TransformPath(reader.ReadStringRef());
|
|
23
|
-
case CARBON_TYPE.ENUM:
|
|
24
|
-
return reader.ReadI32();
|
|
25
|
-
case CARBON_TYPE.FLOAT32:
|
|
26
|
-
return reader.ReadF32();
|
|
27
|
-
case CARBON_TYPE.FLOAT64:
|
|
28
|
-
return reader.ReadF64();
|
|
29
|
-
case CARBON_TYPE.INT8:
|
|
30
|
-
return reader.ReadI8();
|
|
31
|
-
case CARBON_TYPE.UINT8:
|
|
32
|
-
return reader.ReadU8();
|
|
33
|
-
case CARBON_TYPE.INT16:
|
|
34
|
-
return reader.ReadI16();
|
|
35
|
-
case CARBON_TYPE.UINT16:
|
|
36
|
-
return reader.ReadU16();
|
|
37
|
-
case CARBON_TYPE.INT32:
|
|
38
|
-
return reader.ReadI32();
|
|
39
|
-
case CARBON_TYPE.UINT32:
|
|
40
|
-
return reader.ReadU32();
|
|
41
|
-
case CARBON_TYPE.INT64:
|
|
42
|
-
return reader.ReadI64();
|
|
43
|
-
case CARBON_TYPE.UINT64:
|
|
44
|
-
return reader.ReadU64();
|
|
45
|
-
case CARBON_TYPE.VECTOR2:
|
|
46
|
-
return CjsBlackPropertyReaders.readFloatArray(reader, 2);
|
|
47
|
-
case CARBON_TYPE.VECTOR3:
|
|
48
|
-
return CjsBlackPropertyReaders.readFloatArray(reader, 3);
|
|
49
|
-
case CARBON_TYPE.VECTOR4:
|
|
50
|
-
case CARBON_TYPE.COLOR:
|
|
51
|
-
case CARBON_TYPE.QUATERNION:
|
|
52
|
-
return CjsBlackPropertyReaders.readFloatArray(reader, 4);
|
|
53
|
-
case CARBON_TYPE.MATRIX3:
|
|
54
|
-
return CjsBlackPropertyReaders.readFloatArray(reader, 9);
|
|
55
|
-
case CARBON_TYPE.MATRIX4:
|
|
56
|
-
return CjsBlackPropertyReaders.readFloatArray(reader, 16);
|
|
57
|
-
case CARBON_TYPE.ARRAY:
|
|
58
|
-
return CjsBlackPropertyReaders.readArray(reader, descriptor);
|
|
59
|
-
case CARBON_TYPE.TYPED_ARRAY:
|
|
60
|
-
return CjsBlackPropertyReaders.readTypedArray(reader, descriptor);
|
|
61
|
-
case CARBON_TYPE.STRUCT:
|
|
62
|
-
case CARBON_TYPE.RAW_STRUCT:
|
|
63
|
-
return reader.context.ReadEmbeddedObject(reader);
|
|
64
|
-
case CARBON_TYPE.OBJECT_REF:
|
|
65
|
-
case CARBON_TYPE.UNKNOWN:
|
|
66
|
-
default:
|
|
67
|
-
return reader.context.ReadObject(reader);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/** Reads black value from the current Black object-graph reader. */
|
|
72
|
-
static readBlackValue(reader, black, descriptor) {
|
|
73
|
-
switch (black.beType) {
|
|
74
|
-
case "IROOT":
|
|
75
|
-
if (black.container === "list" && black.cppType && /StructureList/.test(String(black.cppType))) {
|
|
76
|
-
return CjsBlackPropertyReaders.readBlackStructureList(reader, black);
|
|
77
|
-
}
|
|
78
|
-
return CjsBlackPropertyReaders.readBlackIRoot(reader, black, descriptor);
|
|
79
|
-
case "BOOL":
|
|
80
|
-
return reader.ReadU8() !== 0;
|
|
81
|
-
case "CSTRING":
|
|
82
|
-
case "STDSTRING":
|
|
83
|
-
case "SHAREDSTRING":
|
|
84
|
-
case "REFERENCE":
|
|
85
|
-
return CjsBlackPropertyReaders.readStringRef(reader, descriptor);
|
|
86
|
-
case "WCSTRING":
|
|
87
|
-
case "STDWSTRING":
|
|
88
|
-
case "SHAREDSTRINGW":
|
|
89
|
-
case "WREFERENCE":
|
|
90
|
-
return reader.ReadWideStringRef();
|
|
91
|
-
case "FLOAT":
|
|
92
|
-
return reader.ReadF32();
|
|
93
|
-
case "DOUBLE":
|
|
94
|
-
return reader.ReadF64();
|
|
95
|
-
case "LONG":
|
|
96
|
-
return reader.ReadI32();
|
|
97
|
-
case "ULONG":
|
|
98
|
-
return reader.ReadU32();
|
|
99
|
-
case "INT64":
|
|
100
|
-
return reader.ReadI64();
|
|
101
|
-
case "UINT64":
|
|
102
|
-
return reader.ReadU64();
|
|
103
|
-
case "BYTE":
|
|
104
|
-
return black.signed ? reader.ReadI8() : reader.ReadU8();
|
|
105
|
-
case "SHORT":
|
|
106
|
-
return black.signed ? reader.ReadI16() : reader.ReadU16();
|
|
107
|
-
case "FLOATARRAY":
|
|
108
|
-
return CjsBlackPropertyReaders.readFloatArray(reader, black.length || descriptor.length || 0);
|
|
109
|
-
case "BINARYBLOCK":
|
|
110
|
-
return CjsBlackPropertyReaders.readBinaryBlock(reader, black);
|
|
111
|
-
case "IROOTPTR":
|
|
112
|
-
case "IROOTWEAKREF":
|
|
113
|
-
return reader.context.ReadObject(reader);
|
|
114
|
-
default:
|
|
115
|
-
return CjsBlackPropertyReaders.readValueWithoutBlack(reader, descriptor);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/** Advances past value in the current Black object-graph reader. */
|
|
120
|
-
static skipValue(reader, field) {
|
|
121
|
-
const descriptor = normalizeCarbonTypeDescriptor(field);
|
|
122
|
-
if (field?.black?.beType) {
|
|
123
|
-
CjsBlackPropertyReaders.skipBlackValue(reader, field.black, descriptor);
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
|
-
switch (descriptor.kind) {
|
|
127
|
-
case CARBON_TYPE.BOOLEAN:
|
|
128
|
-
case CARBON_TYPE.INT8:
|
|
129
|
-
case CARBON_TYPE.UINT8:
|
|
130
|
-
reader.Skip(1);
|
|
131
|
-
return;
|
|
132
|
-
case CARBON_TYPE.STRING:
|
|
133
|
-
case CARBON_TYPE.PATH:
|
|
134
|
-
case CARBON_TYPE.EXPRESSION:
|
|
135
|
-
case CARBON_TYPE.INT16:
|
|
136
|
-
case CARBON_TYPE.UINT16:
|
|
137
|
-
reader.Skip(2);
|
|
138
|
-
return;
|
|
139
|
-
case CARBON_TYPE.ENUM:
|
|
140
|
-
case CARBON_TYPE.FLOAT32:
|
|
141
|
-
case CARBON_TYPE.INT32:
|
|
142
|
-
case CARBON_TYPE.UINT32:
|
|
143
|
-
reader.Skip(4);
|
|
144
|
-
return;
|
|
145
|
-
case CARBON_TYPE.FLOAT64:
|
|
146
|
-
case CARBON_TYPE.INT64:
|
|
147
|
-
case CARBON_TYPE.UINT64:
|
|
148
|
-
reader.Skip(8);
|
|
149
|
-
return;
|
|
150
|
-
case CARBON_TYPE.VECTOR2:
|
|
151
|
-
reader.Skip(8);
|
|
152
|
-
return;
|
|
153
|
-
case CARBON_TYPE.VECTOR3:
|
|
154
|
-
reader.Skip(12);
|
|
155
|
-
return;
|
|
156
|
-
case CARBON_TYPE.VECTOR4:
|
|
157
|
-
case CARBON_TYPE.COLOR:
|
|
158
|
-
case CARBON_TYPE.QUATERNION:
|
|
159
|
-
reader.Skip(16);
|
|
160
|
-
return;
|
|
161
|
-
case CARBON_TYPE.MATRIX3:
|
|
162
|
-
reader.Skip(36);
|
|
163
|
-
return;
|
|
164
|
-
case CARBON_TYPE.MATRIX4:
|
|
165
|
-
reader.Skip(64);
|
|
166
|
-
return;
|
|
167
|
-
case CARBON_TYPE.ARRAY:
|
|
168
|
-
CjsBlackPropertyReaders.skipArray(reader, descriptor);
|
|
169
|
-
return;
|
|
170
|
-
case CARBON_TYPE.TYPED_ARRAY:
|
|
171
|
-
CjsBlackPropertyReaders.skipTypedArray(reader);
|
|
172
|
-
return;
|
|
173
|
-
case CARBON_TYPE.STRUCT:
|
|
174
|
-
case CARBON_TYPE.RAW_STRUCT:
|
|
175
|
-
reader.context.SkipEmbeddedObject(reader);
|
|
176
|
-
return;
|
|
177
|
-
case CARBON_TYPE.OBJECT_REF:
|
|
178
|
-
case CARBON_TYPE.UNKNOWN:
|
|
179
|
-
default:
|
|
180
|
-
reader.context.SkipObject(reader);
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
/** Advances past black value in the current Black object-graph reader. */
|
|
185
|
-
static skipBlackValue(reader, black, descriptor) {
|
|
186
|
-
switch (black.beType) {
|
|
187
|
-
case "IROOT":
|
|
188
|
-
if (black.container === "list" && black.cppType && /StructureList/.test(String(black.cppType))) {
|
|
189
|
-
CjsBlackPropertyReaders.skipStructureList(reader);
|
|
190
|
-
return;
|
|
191
|
-
}
|
|
192
|
-
CjsBlackPropertyReaders.skipBlackIRoot(reader, black, descriptor);
|
|
193
|
-
return;
|
|
194
|
-
case "BOOL":
|
|
195
|
-
case "BYTE":
|
|
196
|
-
reader.Skip(1);
|
|
197
|
-
return;
|
|
198
|
-
case "CSTRING":
|
|
199
|
-
case "STDSTRING":
|
|
200
|
-
case "SHAREDSTRING":
|
|
201
|
-
case "REFERENCE":
|
|
202
|
-
case "WCSTRING":
|
|
203
|
-
case "STDWSTRING":
|
|
204
|
-
case "SHAREDSTRINGW":
|
|
205
|
-
case "WREFERENCE":
|
|
206
|
-
case "SHORT":
|
|
207
|
-
reader.Skip(2);
|
|
208
|
-
return;
|
|
209
|
-
case "FLOAT":
|
|
210
|
-
case "LONG":
|
|
211
|
-
case "ULONG":
|
|
212
|
-
reader.Skip(4);
|
|
213
|
-
return;
|
|
214
|
-
case "DOUBLE":
|
|
215
|
-
case "INT64":
|
|
216
|
-
case "UINT64":
|
|
217
|
-
reader.Skip(8);
|
|
218
|
-
return;
|
|
219
|
-
case "FLOATARRAY":
|
|
220
|
-
reader.Skip((black.length || descriptor.length || 0) * 4);
|
|
221
|
-
return;
|
|
222
|
-
case "BINARYBLOCK":
|
|
223
|
-
CjsBlackPropertyReaders.skipBinaryBlock(reader);
|
|
224
|
-
return;
|
|
225
|
-
case "IROOTPTR":
|
|
226
|
-
case "IROOTWEAKREF":
|
|
227
|
-
reader.context.SkipObject(reader);
|
|
228
|
-
return;
|
|
229
|
-
default:
|
|
230
|
-
CjsBlackPropertyReaders.skipValue(reader, {
|
|
231
|
-
jsType: descriptor
|
|
232
|
-
});
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
/** Reads black structure list from the current Black object-graph reader. */
|
|
237
|
-
static readBlackStructureList(reader, black) {
|
|
238
|
-
return CjsBlackPropertyReaders.readStructureList(reader, {
|
|
239
|
-
cppType: black.cppType,
|
|
240
|
-
elementType: {
|
|
241
|
-
kind: CARBON_TYPE.RAW_STRUCT,
|
|
242
|
-
cppType: black.cppType
|
|
243
|
-
}
|
|
244
|
-
});
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
/**
|
|
248
|
-
* Reads a schema field through the non-Black fallback decoder for the Black
|
|
249
|
-
* object-graph reader.
|
|
250
|
-
*/
|
|
251
|
-
static readValueWithoutBlack(reader, descriptor) {
|
|
252
|
-
return CjsBlackPropertyReaders.readValue(reader, {
|
|
253
|
-
jsType: descriptor
|
|
254
|
-
});
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
/**
|
|
258
|
-
* Reads a schema field whose wire value references the Black string table
|
|
259
|
-
* for the Black object-graph reader.
|
|
260
|
-
*/
|
|
261
|
-
static readStringRef(reader, descriptor) {
|
|
262
|
-
const value = reader.ReadStringRef();
|
|
263
|
-
return descriptor.kind === CARBON_TYPE.PATH ? reader.context.TransformPath(value) : value;
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
/**
|
|
267
|
-
* Reads a nested Black root-interface value for the Black object-graph
|
|
268
|
-
* reader.
|
|
269
|
-
*/
|
|
270
|
-
static readBlackIRoot(reader, black, descriptor) {
|
|
271
|
-
if (black.container === "dict") return CjsBlackPropertyReaders.readDict(reader);
|
|
272
|
-
if (black.container === "list" || black.container === "set") return CjsBlackPropertyReaders.readArray(reader, descriptor);
|
|
273
|
-
return reader.context.ReadEmbeddedObject(reader);
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
/**
|
|
277
|
-
* Advances past a nested Black root-interface value for the Black
|
|
278
|
-
* object-graph reader.
|
|
279
|
-
*/
|
|
280
|
-
static skipBlackIRoot(reader, black, descriptor) {
|
|
281
|
-
if (black.container === "dict") {
|
|
282
|
-
CjsBlackPropertyReaders.skipDict(reader);
|
|
283
|
-
return;
|
|
284
|
-
}
|
|
285
|
-
if (black.container === "list" || black.container === "set") {
|
|
286
|
-
CjsBlackPropertyReaders.skipArray(reader, descriptor);
|
|
287
|
-
return;
|
|
288
|
-
}
|
|
289
|
-
reader.context.SkipEmbeddedObject(reader);
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
/** Reads dict from the current Black object-graph reader. */
|
|
293
|
-
static readDict(reader) {
|
|
294
|
-
const count = reader.ReadU32();
|
|
295
|
-
const result = {};
|
|
296
|
-
for (let i = 0; i < count; i++) {
|
|
297
|
-
result[reader.ReadStringRef()] = reader.context.ReadObject(reader);
|
|
298
|
-
}
|
|
299
|
-
return result;
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
/** Advances past dict in the current Black object-graph reader. */
|
|
303
|
-
static skipDict(reader) {
|
|
304
|
-
const count = reader.ReadU32();
|
|
305
|
-
for (let i = 0; i < count; i++) {
|
|
306
|
-
reader.Skip(2);
|
|
307
|
-
reader.context.SkipObject(reader);
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
/** Reads binary block from the current Black object-graph reader. */
|
|
312
|
-
static readBinaryBlock(reader, black) {
|
|
313
|
-
const byteLength = reader.ReadI32();
|
|
314
|
-
const bytes = reader.ReadBytes(byteLength);
|
|
315
|
-
if (CjsBlackPropertyReaders.isUint32IndexBufferBlock(reader, black, byteLength)) {
|
|
316
|
-
return CjsBlackPropertyReaders.readUint32Array(bytes);
|
|
317
|
-
}
|
|
318
|
-
return {
|
|
319
|
-
$type: "black.binaryBlock",
|
|
320
|
-
beType: black.beType,
|
|
321
|
-
byteLength,
|
|
322
|
-
bytes: Array.from(bytes)
|
|
323
|
-
};
|
|
324
|
-
}
|
|
325
|
-
|
|
326
|
-
/**
|
|
327
|
-
* Reports whether a binary block is tagged as a 32-bit index buffer for the
|
|
328
|
-
* Black object-graph reader.
|
|
329
|
-
*/
|
|
330
|
-
static isUint32IndexBufferBlock(reader, black, byteLength) {
|
|
331
|
-
if (byteLength % 4 !== 0) return false;
|
|
332
|
-
if (reader.context?.readMode === "document" && !reader.context?.options.decodeBinaryBlocks) return false;
|
|
333
|
-
return black.name === "indexBuffer" || black.fieldName === "indexBuffer" || black.storageName === "indexBuffer";
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
/**
|
|
337
|
-
* Reads a binary block as an array of unsigned 32-bit integers for the Black
|
|
338
|
-
* object-graph reader.
|
|
339
|
-
*/
|
|
340
|
-
static readUint32Array(bytes) {
|
|
341
|
-
const result = new Uint32Array(bytes.byteLength / 4);
|
|
342
|
-
const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
|
|
343
|
-
for (let i = 0; i < result.length; i++) {
|
|
344
|
-
result[i] = view.getUint32(i * 4, true);
|
|
345
|
-
}
|
|
346
|
-
return result;
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
/** Reads array from the current Black object-graph reader. */
|
|
350
|
-
static readArray(reader, descriptor) {
|
|
351
|
-
const elementType = normalizeCarbonTypeDescriptor(descriptor.elementType);
|
|
352
|
-
if (elementType.kind === CARBON_TYPE.RAW_STRUCT) {
|
|
353
|
-
return CjsBlackPropertyReaders.readStructureList(reader, descriptor);
|
|
354
|
-
}
|
|
355
|
-
const count = reader.ReadU32();
|
|
356
|
-
const result = [];
|
|
357
|
-
for (let i = 0; i < count; i++) {
|
|
358
|
-
if (!descriptor.elementType || elementType.kind === CARBON_TYPE.OBJECT_REF || elementType.kind === CARBON_TYPE.UNKNOWN) {
|
|
359
|
-
result[i] = reader.context.ReadObject(reader);
|
|
360
|
-
} else {
|
|
361
|
-
result[i] = CjsBlackPropertyReaders.readValue(reader, {
|
|
362
|
-
jsType: elementType
|
|
363
|
-
});
|
|
364
|
-
}
|
|
365
|
-
}
|
|
366
|
-
return result;
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
/** Advances past array in the current Black object-graph reader. */
|
|
370
|
-
static skipArray(reader, descriptor) {
|
|
371
|
-
const elementType = normalizeCarbonTypeDescriptor(descriptor.elementType);
|
|
372
|
-
if (elementType.kind === CARBON_TYPE.RAW_STRUCT) {
|
|
373
|
-
CjsBlackPropertyReaders.skipStructureList(reader);
|
|
374
|
-
return;
|
|
375
|
-
}
|
|
376
|
-
const count = reader.ReadU32();
|
|
377
|
-
for (let i = 0; i < count; i++) {
|
|
378
|
-
if (!descriptor.elementType || elementType.kind === CARBON_TYPE.OBJECT_REF || elementType.kind === CARBON_TYPE.UNKNOWN) {
|
|
379
|
-
reader.context.SkipObject(reader);
|
|
380
|
-
} else {
|
|
381
|
-
CjsBlackPropertyReaders.skipValue(reader, {
|
|
382
|
-
jsType: elementType
|
|
383
|
-
});
|
|
384
|
-
}
|
|
385
|
-
}
|
|
386
|
-
}
|
|
387
|
-
|
|
388
|
-
/** Reads float array from the current Black object-graph reader. */
|
|
389
|
-
static readFloatArray(reader, count) {
|
|
390
|
-
const result = [];
|
|
391
|
-
for (let i = 0; i < count; i++) {
|
|
392
|
-
result[i] = reader.ReadF32();
|
|
393
|
-
}
|
|
394
|
-
return result;
|
|
395
|
-
}
|
|
396
|
-
|
|
397
|
-
/** Reads structure list from the current Black object-graph reader. */
|
|
398
|
-
static readStructureList(reader, descriptor) {
|
|
399
|
-
const count = reader.ReadI32();
|
|
400
|
-
const structureSize = reader.ReadU16();
|
|
401
|
-
const bytes = reader.ReadBytes(count * structureSize);
|
|
402
|
-
return {
|
|
403
|
-
$type: "black.structureList",
|
|
404
|
-
count,
|
|
405
|
-
structureSize,
|
|
406
|
-
cppType: descriptor.cppType || null,
|
|
407
|
-
elementType: descriptor.elementType?.cppType || null,
|
|
408
|
-
bytes: Array.from(bytes)
|
|
409
|
-
};
|
|
410
|
-
}
|
|
411
|
-
|
|
412
|
-
/** Advances past structure list in the current Black object-graph reader. */
|
|
413
|
-
static skipStructureList(reader) {
|
|
414
|
-
const count = reader.ReadI32();
|
|
415
|
-
const structureSize = reader.ReadU16();
|
|
416
|
-
reader.Skip(count * structureSize);
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
/** Reads typed array from the current Black object-graph reader. */
|
|
420
|
-
static readTypedArray(reader, descriptor) {
|
|
421
|
-
const count = reader.ReadU32();
|
|
422
|
-
const elementSize = reader.ReadU16();
|
|
423
|
-
const bytes = reader.ReadBytes(count * elementSize);
|
|
424
|
-
return {
|
|
425
|
-
$type: "black.typedArray",
|
|
426
|
-
count,
|
|
427
|
-
elementSize,
|
|
428
|
-
js: descriptor.js || null,
|
|
429
|
-
bytes: Array.from(bytes)
|
|
430
|
-
};
|
|
431
|
-
}
|
|
432
|
-
|
|
433
|
-
/** Advances past typed array in the current Black object-graph reader. */
|
|
434
|
-
static skipTypedArray(reader) {
|
|
435
|
-
const count = reader.ReadU32();
|
|
436
|
-
const elementSize = reader.ReadU16();
|
|
437
|
-
reader.Skip(count * elementSize);
|
|
438
|
-
}
|
|
439
|
-
|
|
440
|
-
/** Advances past binary block in the current Black object-graph reader. */
|
|
441
|
-
static skipBinaryBlock(reader) {
|
|
442
|
-
const byteLength = reader.ReadI32();
|
|
443
|
-
reader.Skip(byteLength);
|
|
444
|
-
}
|
|
445
|
-
}
|
|
446
|
-
|
|
447
|
-
export { CjsBlackPropertyReaders };
|
|
448
|
-
//# sourceMappingURL=CjsBlackPropertyReaders.js.map
|
|
1
|
+
import { normalizeCarbonTypeDescriptor, CARBON_TYPE } from '@carbonenginejs/runtime-utils/types';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Static set of read and skip routines that decode or skip individual Black
|
|
5
|
+
* property values (primitives, strings, arrays, structure lists,
|
|
6
|
+
* dictionaries, and binary blocks) from their type descriptors.
|
|
7
|
+
*/
|
|
8
|
+
class CjsBlackPropertyReaders {
|
|
9
|
+
/** Reads value from the current Black object-graph reader. */
|
|
10
|
+
static readValue(reader, field) {
|
|
11
|
+
const descriptor = normalizeCarbonTypeDescriptor(field);
|
|
12
|
+
if (field?.black?.beType) {
|
|
13
|
+
return CjsBlackPropertyReaders.readBlackValue(reader, field.black, descriptor);
|
|
14
|
+
}
|
|
15
|
+
switch (descriptor.kind) {
|
|
16
|
+
case CARBON_TYPE.BOOLEAN:
|
|
17
|
+
return reader.ReadU8() !== 0;
|
|
18
|
+
case CARBON_TYPE.STRING:
|
|
19
|
+
case CARBON_TYPE.EXPRESSION:
|
|
20
|
+
return reader.ReadStringRef();
|
|
21
|
+
case CARBON_TYPE.PATH:
|
|
22
|
+
return reader.context.TransformPath(reader.ReadStringRef());
|
|
23
|
+
case CARBON_TYPE.ENUM:
|
|
24
|
+
return reader.ReadI32();
|
|
25
|
+
case CARBON_TYPE.FLOAT32:
|
|
26
|
+
return reader.ReadF32();
|
|
27
|
+
case CARBON_TYPE.FLOAT64:
|
|
28
|
+
return reader.ReadF64();
|
|
29
|
+
case CARBON_TYPE.INT8:
|
|
30
|
+
return reader.ReadI8();
|
|
31
|
+
case CARBON_TYPE.UINT8:
|
|
32
|
+
return reader.ReadU8();
|
|
33
|
+
case CARBON_TYPE.INT16:
|
|
34
|
+
return reader.ReadI16();
|
|
35
|
+
case CARBON_TYPE.UINT16:
|
|
36
|
+
return reader.ReadU16();
|
|
37
|
+
case CARBON_TYPE.INT32:
|
|
38
|
+
return reader.ReadI32();
|
|
39
|
+
case CARBON_TYPE.UINT32:
|
|
40
|
+
return reader.ReadU32();
|
|
41
|
+
case CARBON_TYPE.INT64:
|
|
42
|
+
return reader.ReadI64();
|
|
43
|
+
case CARBON_TYPE.UINT64:
|
|
44
|
+
return reader.ReadU64();
|
|
45
|
+
case CARBON_TYPE.VECTOR2:
|
|
46
|
+
return CjsBlackPropertyReaders.readFloatArray(reader, 2);
|
|
47
|
+
case CARBON_TYPE.VECTOR3:
|
|
48
|
+
return CjsBlackPropertyReaders.readFloatArray(reader, 3);
|
|
49
|
+
case CARBON_TYPE.VECTOR4:
|
|
50
|
+
case CARBON_TYPE.COLOR:
|
|
51
|
+
case CARBON_TYPE.QUATERNION:
|
|
52
|
+
return CjsBlackPropertyReaders.readFloatArray(reader, 4);
|
|
53
|
+
case CARBON_TYPE.MATRIX3:
|
|
54
|
+
return CjsBlackPropertyReaders.readFloatArray(reader, 9);
|
|
55
|
+
case CARBON_TYPE.MATRIX4:
|
|
56
|
+
return CjsBlackPropertyReaders.readFloatArray(reader, 16);
|
|
57
|
+
case CARBON_TYPE.ARRAY:
|
|
58
|
+
return CjsBlackPropertyReaders.readArray(reader, descriptor);
|
|
59
|
+
case CARBON_TYPE.TYPED_ARRAY:
|
|
60
|
+
return CjsBlackPropertyReaders.readTypedArray(reader, descriptor);
|
|
61
|
+
case CARBON_TYPE.STRUCT:
|
|
62
|
+
case CARBON_TYPE.RAW_STRUCT:
|
|
63
|
+
return reader.context.ReadEmbeddedObject(reader);
|
|
64
|
+
case CARBON_TYPE.OBJECT_REF:
|
|
65
|
+
case CARBON_TYPE.UNKNOWN:
|
|
66
|
+
default:
|
|
67
|
+
return reader.context.ReadObject(reader);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/** Reads black value from the current Black object-graph reader. */
|
|
72
|
+
static readBlackValue(reader, black, descriptor) {
|
|
73
|
+
switch (black.beType) {
|
|
74
|
+
case "IROOT":
|
|
75
|
+
if (black.container === "list" && black.cppType && /StructureList/.test(String(black.cppType))) {
|
|
76
|
+
return CjsBlackPropertyReaders.readBlackStructureList(reader, black);
|
|
77
|
+
}
|
|
78
|
+
return CjsBlackPropertyReaders.readBlackIRoot(reader, black, descriptor);
|
|
79
|
+
case "BOOL":
|
|
80
|
+
return reader.ReadU8() !== 0;
|
|
81
|
+
case "CSTRING":
|
|
82
|
+
case "STDSTRING":
|
|
83
|
+
case "SHAREDSTRING":
|
|
84
|
+
case "REFERENCE":
|
|
85
|
+
return CjsBlackPropertyReaders.readStringRef(reader, descriptor);
|
|
86
|
+
case "WCSTRING":
|
|
87
|
+
case "STDWSTRING":
|
|
88
|
+
case "SHAREDSTRINGW":
|
|
89
|
+
case "WREFERENCE":
|
|
90
|
+
return reader.ReadWideStringRef();
|
|
91
|
+
case "FLOAT":
|
|
92
|
+
return reader.ReadF32();
|
|
93
|
+
case "DOUBLE":
|
|
94
|
+
return reader.ReadF64();
|
|
95
|
+
case "LONG":
|
|
96
|
+
return reader.ReadI32();
|
|
97
|
+
case "ULONG":
|
|
98
|
+
return reader.ReadU32();
|
|
99
|
+
case "INT64":
|
|
100
|
+
return reader.ReadI64();
|
|
101
|
+
case "UINT64":
|
|
102
|
+
return reader.ReadU64();
|
|
103
|
+
case "BYTE":
|
|
104
|
+
return black.signed ? reader.ReadI8() : reader.ReadU8();
|
|
105
|
+
case "SHORT":
|
|
106
|
+
return black.signed ? reader.ReadI16() : reader.ReadU16();
|
|
107
|
+
case "FLOATARRAY":
|
|
108
|
+
return CjsBlackPropertyReaders.readFloatArray(reader, black.length || descriptor.length || 0);
|
|
109
|
+
case "BINARYBLOCK":
|
|
110
|
+
return CjsBlackPropertyReaders.readBinaryBlock(reader, black);
|
|
111
|
+
case "IROOTPTR":
|
|
112
|
+
case "IROOTWEAKREF":
|
|
113
|
+
return reader.context.ReadObject(reader);
|
|
114
|
+
default:
|
|
115
|
+
return CjsBlackPropertyReaders.readValueWithoutBlack(reader, descriptor);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/** Advances past value in the current Black object-graph reader. */
|
|
120
|
+
static skipValue(reader, field) {
|
|
121
|
+
const descriptor = normalizeCarbonTypeDescriptor(field);
|
|
122
|
+
if (field?.black?.beType) {
|
|
123
|
+
CjsBlackPropertyReaders.skipBlackValue(reader, field.black, descriptor);
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
switch (descriptor.kind) {
|
|
127
|
+
case CARBON_TYPE.BOOLEAN:
|
|
128
|
+
case CARBON_TYPE.INT8:
|
|
129
|
+
case CARBON_TYPE.UINT8:
|
|
130
|
+
reader.Skip(1);
|
|
131
|
+
return;
|
|
132
|
+
case CARBON_TYPE.STRING:
|
|
133
|
+
case CARBON_TYPE.PATH:
|
|
134
|
+
case CARBON_TYPE.EXPRESSION:
|
|
135
|
+
case CARBON_TYPE.INT16:
|
|
136
|
+
case CARBON_TYPE.UINT16:
|
|
137
|
+
reader.Skip(2);
|
|
138
|
+
return;
|
|
139
|
+
case CARBON_TYPE.ENUM:
|
|
140
|
+
case CARBON_TYPE.FLOAT32:
|
|
141
|
+
case CARBON_TYPE.INT32:
|
|
142
|
+
case CARBON_TYPE.UINT32:
|
|
143
|
+
reader.Skip(4);
|
|
144
|
+
return;
|
|
145
|
+
case CARBON_TYPE.FLOAT64:
|
|
146
|
+
case CARBON_TYPE.INT64:
|
|
147
|
+
case CARBON_TYPE.UINT64:
|
|
148
|
+
reader.Skip(8);
|
|
149
|
+
return;
|
|
150
|
+
case CARBON_TYPE.VECTOR2:
|
|
151
|
+
reader.Skip(8);
|
|
152
|
+
return;
|
|
153
|
+
case CARBON_TYPE.VECTOR3:
|
|
154
|
+
reader.Skip(12);
|
|
155
|
+
return;
|
|
156
|
+
case CARBON_TYPE.VECTOR4:
|
|
157
|
+
case CARBON_TYPE.COLOR:
|
|
158
|
+
case CARBON_TYPE.QUATERNION:
|
|
159
|
+
reader.Skip(16);
|
|
160
|
+
return;
|
|
161
|
+
case CARBON_TYPE.MATRIX3:
|
|
162
|
+
reader.Skip(36);
|
|
163
|
+
return;
|
|
164
|
+
case CARBON_TYPE.MATRIX4:
|
|
165
|
+
reader.Skip(64);
|
|
166
|
+
return;
|
|
167
|
+
case CARBON_TYPE.ARRAY:
|
|
168
|
+
CjsBlackPropertyReaders.skipArray(reader, descriptor);
|
|
169
|
+
return;
|
|
170
|
+
case CARBON_TYPE.TYPED_ARRAY:
|
|
171
|
+
CjsBlackPropertyReaders.skipTypedArray(reader);
|
|
172
|
+
return;
|
|
173
|
+
case CARBON_TYPE.STRUCT:
|
|
174
|
+
case CARBON_TYPE.RAW_STRUCT:
|
|
175
|
+
reader.context.SkipEmbeddedObject(reader);
|
|
176
|
+
return;
|
|
177
|
+
case CARBON_TYPE.OBJECT_REF:
|
|
178
|
+
case CARBON_TYPE.UNKNOWN:
|
|
179
|
+
default:
|
|
180
|
+
reader.context.SkipObject(reader);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/** Advances past black value in the current Black object-graph reader. */
|
|
185
|
+
static skipBlackValue(reader, black, descriptor) {
|
|
186
|
+
switch (black.beType) {
|
|
187
|
+
case "IROOT":
|
|
188
|
+
if (black.container === "list" && black.cppType && /StructureList/.test(String(black.cppType))) {
|
|
189
|
+
CjsBlackPropertyReaders.skipStructureList(reader);
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
CjsBlackPropertyReaders.skipBlackIRoot(reader, black, descriptor);
|
|
193
|
+
return;
|
|
194
|
+
case "BOOL":
|
|
195
|
+
case "BYTE":
|
|
196
|
+
reader.Skip(1);
|
|
197
|
+
return;
|
|
198
|
+
case "CSTRING":
|
|
199
|
+
case "STDSTRING":
|
|
200
|
+
case "SHAREDSTRING":
|
|
201
|
+
case "REFERENCE":
|
|
202
|
+
case "WCSTRING":
|
|
203
|
+
case "STDWSTRING":
|
|
204
|
+
case "SHAREDSTRINGW":
|
|
205
|
+
case "WREFERENCE":
|
|
206
|
+
case "SHORT":
|
|
207
|
+
reader.Skip(2);
|
|
208
|
+
return;
|
|
209
|
+
case "FLOAT":
|
|
210
|
+
case "LONG":
|
|
211
|
+
case "ULONG":
|
|
212
|
+
reader.Skip(4);
|
|
213
|
+
return;
|
|
214
|
+
case "DOUBLE":
|
|
215
|
+
case "INT64":
|
|
216
|
+
case "UINT64":
|
|
217
|
+
reader.Skip(8);
|
|
218
|
+
return;
|
|
219
|
+
case "FLOATARRAY":
|
|
220
|
+
reader.Skip((black.length || descriptor.length || 0) * 4);
|
|
221
|
+
return;
|
|
222
|
+
case "BINARYBLOCK":
|
|
223
|
+
CjsBlackPropertyReaders.skipBinaryBlock(reader);
|
|
224
|
+
return;
|
|
225
|
+
case "IROOTPTR":
|
|
226
|
+
case "IROOTWEAKREF":
|
|
227
|
+
reader.context.SkipObject(reader);
|
|
228
|
+
return;
|
|
229
|
+
default:
|
|
230
|
+
CjsBlackPropertyReaders.skipValue(reader, {
|
|
231
|
+
jsType: descriptor
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
/** Reads black structure list from the current Black object-graph reader. */
|
|
237
|
+
static readBlackStructureList(reader, black) {
|
|
238
|
+
return CjsBlackPropertyReaders.readStructureList(reader, {
|
|
239
|
+
cppType: black.cppType,
|
|
240
|
+
elementType: {
|
|
241
|
+
kind: CARBON_TYPE.RAW_STRUCT,
|
|
242
|
+
cppType: black.cppType
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* Reads a schema field through the non-Black fallback decoder for the Black
|
|
249
|
+
* object-graph reader.
|
|
250
|
+
*/
|
|
251
|
+
static readValueWithoutBlack(reader, descriptor) {
|
|
252
|
+
return CjsBlackPropertyReaders.readValue(reader, {
|
|
253
|
+
jsType: descriptor
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* Reads a schema field whose wire value references the Black string table
|
|
259
|
+
* for the Black object-graph reader.
|
|
260
|
+
*/
|
|
261
|
+
static readStringRef(reader, descriptor) {
|
|
262
|
+
const value = reader.ReadStringRef();
|
|
263
|
+
return descriptor.kind === CARBON_TYPE.PATH ? reader.context.TransformPath(value) : value;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* Reads a nested Black root-interface value for the Black object-graph
|
|
268
|
+
* reader.
|
|
269
|
+
*/
|
|
270
|
+
static readBlackIRoot(reader, black, descriptor) {
|
|
271
|
+
if (black.container === "dict") return CjsBlackPropertyReaders.readDict(reader);
|
|
272
|
+
if (black.container === "list" || black.container === "set") return CjsBlackPropertyReaders.readArray(reader, descriptor);
|
|
273
|
+
return reader.context.ReadEmbeddedObject(reader);
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* Advances past a nested Black root-interface value for the Black
|
|
278
|
+
* object-graph reader.
|
|
279
|
+
*/
|
|
280
|
+
static skipBlackIRoot(reader, black, descriptor) {
|
|
281
|
+
if (black.container === "dict") {
|
|
282
|
+
CjsBlackPropertyReaders.skipDict(reader);
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
if (black.container === "list" || black.container === "set") {
|
|
286
|
+
CjsBlackPropertyReaders.skipArray(reader, descriptor);
|
|
287
|
+
return;
|
|
288
|
+
}
|
|
289
|
+
reader.context.SkipEmbeddedObject(reader);
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
/** Reads dict from the current Black object-graph reader. */
|
|
293
|
+
static readDict(reader) {
|
|
294
|
+
const count = reader.ReadU32();
|
|
295
|
+
const result = {};
|
|
296
|
+
for (let i = 0; i < count; i++) {
|
|
297
|
+
result[reader.ReadStringRef()] = reader.context.ReadObject(reader);
|
|
298
|
+
}
|
|
299
|
+
return result;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
/** Advances past dict in the current Black object-graph reader. */
|
|
303
|
+
static skipDict(reader) {
|
|
304
|
+
const count = reader.ReadU32();
|
|
305
|
+
for (let i = 0; i < count; i++) {
|
|
306
|
+
reader.Skip(2);
|
|
307
|
+
reader.context.SkipObject(reader);
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
/** Reads binary block from the current Black object-graph reader. */
|
|
312
|
+
static readBinaryBlock(reader, black) {
|
|
313
|
+
const byteLength = reader.ReadI32();
|
|
314
|
+
const bytes = reader.ReadBytes(byteLength);
|
|
315
|
+
if (CjsBlackPropertyReaders.isUint32IndexBufferBlock(reader, black, byteLength)) {
|
|
316
|
+
return CjsBlackPropertyReaders.readUint32Array(bytes);
|
|
317
|
+
}
|
|
318
|
+
return {
|
|
319
|
+
$type: "black.binaryBlock",
|
|
320
|
+
beType: black.beType,
|
|
321
|
+
byteLength,
|
|
322
|
+
bytes: Array.from(bytes)
|
|
323
|
+
};
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
/**
|
|
327
|
+
* Reports whether a binary block is tagged as a 32-bit index buffer for the
|
|
328
|
+
* Black object-graph reader.
|
|
329
|
+
*/
|
|
330
|
+
static isUint32IndexBufferBlock(reader, black, byteLength) {
|
|
331
|
+
if (byteLength % 4 !== 0) return false;
|
|
332
|
+
if (reader.context?.readMode === "document" && !reader.context?.options.decodeBinaryBlocks) return false;
|
|
333
|
+
return black.name === "indexBuffer" || black.fieldName === "indexBuffer" || black.storageName === "indexBuffer";
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
/**
|
|
337
|
+
* Reads a binary block as an array of unsigned 32-bit integers for the Black
|
|
338
|
+
* object-graph reader.
|
|
339
|
+
*/
|
|
340
|
+
static readUint32Array(bytes) {
|
|
341
|
+
const result = new Uint32Array(bytes.byteLength / 4);
|
|
342
|
+
const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
|
|
343
|
+
for (let i = 0; i < result.length; i++) {
|
|
344
|
+
result[i] = view.getUint32(i * 4, true);
|
|
345
|
+
}
|
|
346
|
+
return result;
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
/** Reads array from the current Black object-graph reader. */
|
|
350
|
+
static readArray(reader, descriptor) {
|
|
351
|
+
const elementType = normalizeCarbonTypeDescriptor(descriptor.elementType);
|
|
352
|
+
if (elementType.kind === CARBON_TYPE.RAW_STRUCT) {
|
|
353
|
+
return CjsBlackPropertyReaders.readStructureList(reader, descriptor);
|
|
354
|
+
}
|
|
355
|
+
const count = reader.ReadU32();
|
|
356
|
+
const result = [];
|
|
357
|
+
for (let i = 0; i < count; i++) {
|
|
358
|
+
if (!descriptor.elementType || elementType.kind === CARBON_TYPE.OBJECT_REF || elementType.kind === CARBON_TYPE.UNKNOWN) {
|
|
359
|
+
result[i] = reader.context.ReadObject(reader);
|
|
360
|
+
} else {
|
|
361
|
+
result[i] = CjsBlackPropertyReaders.readValue(reader, {
|
|
362
|
+
jsType: elementType
|
|
363
|
+
});
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
return result;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
/** Advances past array in the current Black object-graph reader. */
|
|
370
|
+
static skipArray(reader, descriptor) {
|
|
371
|
+
const elementType = normalizeCarbonTypeDescriptor(descriptor.elementType);
|
|
372
|
+
if (elementType.kind === CARBON_TYPE.RAW_STRUCT) {
|
|
373
|
+
CjsBlackPropertyReaders.skipStructureList(reader);
|
|
374
|
+
return;
|
|
375
|
+
}
|
|
376
|
+
const count = reader.ReadU32();
|
|
377
|
+
for (let i = 0; i < count; i++) {
|
|
378
|
+
if (!descriptor.elementType || elementType.kind === CARBON_TYPE.OBJECT_REF || elementType.kind === CARBON_TYPE.UNKNOWN) {
|
|
379
|
+
reader.context.SkipObject(reader);
|
|
380
|
+
} else {
|
|
381
|
+
CjsBlackPropertyReaders.skipValue(reader, {
|
|
382
|
+
jsType: elementType
|
|
383
|
+
});
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
/** Reads float array from the current Black object-graph reader. */
|
|
389
|
+
static readFloatArray(reader, count) {
|
|
390
|
+
const result = [];
|
|
391
|
+
for (let i = 0; i < count; i++) {
|
|
392
|
+
result[i] = reader.ReadF32();
|
|
393
|
+
}
|
|
394
|
+
return result;
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
/** Reads structure list from the current Black object-graph reader. */
|
|
398
|
+
static readStructureList(reader, descriptor) {
|
|
399
|
+
const count = reader.ReadI32();
|
|
400
|
+
const structureSize = reader.ReadU16();
|
|
401
|
+
const bytes = reader.ReadBytes(count * structureSize);
|
|
402
|
+
return {
|
|
403
|
+
$type: "black.structureList",
|
|
404
|
+
count,
|
|
405
|
+
structureSize,
|
|
406
|
+
cppType: descriptor.cppType || null,
|
|
407
|
+
elementType: descriptor.elementType?.cppType || null,
|
|
408
|
+
bytes: Array.from(bytes)
|
|
409
|
+
};
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
/** Advances past structure list in the current Black object-graph reader. */
|
|
413
|
+
static skipStructureList(reader) {
|
|
414
|
+
const count = reader.ReadI32();
|
|
415
|
+
const structureSize = reader.ReadU16();
|
|
416
|
+
reader.Skip(count * structureSize);
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
/** Reads typed array from the current Black object-graph reader. */
|
|
420
|
+
static readTypedArray(reader, descriptor) {
|
|
421
|
+
const count = reader.ReadU32();
|
|
422
|
+
const elementSize = reader.ReadU16();
|
|
423
|
+
const bytes = reader.ReadBytes(count * elementSize);
|
|
424
|
+
return {
|
|
425
|
+
$type: "black.typedArray",
|
|
426
|
+
count,
|
|
427
|
+
elementSize,
|
|
428
|
+
js: descriptor.js || null,
|
|
429
|
+
bytes: Array.from(bytes)
|
|
430
|
+
};
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
/** Advances past typed array in the current Black object-graph reader. */
|
|
434
|
+
static skipTypedArray(reader) {
|
|
435
|
+
const count = reader.ReadU32();
|
|
436
|
+
const elementSize = reader.ReadU16();
|
|
437
|
+
reader.Skip(count * elementSize);
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
/** Advances past binary block in the current Black object-graph reader. */
|
|
441
|
+
static skipBinaryBlock(reader) {
|
|
442
|
+
const byteLength = reader.ReadI32();
|
|
443
|
+
reader.Skip(byteLength);
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
export { CjsBlackPropertyReaders };
|
|
448
|
+
//# sourceMappingURL=CjsBlackPropertyReaders.js.map
|