@carbonenginejs/runtime-resource 0.8.0 → 0.9.1
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 +31 -29
- package/README.md +67 -548
- package/dist/CjsMotherLode.js +1271 -1271
- package/dist/CjsResMan.js +3005 -3005
- package/dist/CjsResManQueue.js +214 -214
- package/dist/CjsResource.js +566 -566
- package/dist/CjsResourceSource.js +68 -59
- package/dist/CjsResourceSource.js.map +1 -1
- package/dist/_virtual/_rollupPluginBabelHelpers.js +153 -153
- package/dist/format/CjsBlueReader.js +269 -269
- package/dist/format/CjsFormat.js +197 -192
- package/dist/format/CjsFormat.js.map +1 -1
- package/dist/format/CjsReader.js +18 -18
- package/dist/format/CjsResourceProbe.js +277 -277
- package/dist/format/payloadContract.js +173 -173
- package/dist/formats/black/CjsBlackFormat.js +278 -278
- package/dist/formats/black/core/CjsBlackBinaryReader.js +157 -153
- package/dist/formats/black/core/CjsBlackBinaryReader.js.map +1 -1
- package/dist/formats/black/core/CjsBlackPropertyReaders.js +387 -382
- package/dist/formats/black/core/CjsBlackPropertyReaders.js.map +1 -1
- package/dist/formats/black/core/CjsBlackReader.js +639 -639
- package/dist/formats/black/core/CjsBlackSchemaRegistry.js +437 -433
- package/dist/formats/black/core/CjsBlackSchemaRegistry.js.map +1 -1
- package/dist/formats/black/core/black-schema-v1-2026-07-23.json.js +4 -0
- package/dist/formats/black/core/black-schema-v1-2026-07-23.json.js.map +1 -0
- package/dist/formats/black/core/blackConstants.js +7 -7
- package/dist/formats/black/core/blackDefinitions.js +10 -10
- package/dist/formats/black/core/blackDefinitions.js.map +1 -1
- 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 +182 -182
- package/dist/formats/black/core/schema.js +4 -4
- package/dist/formats/black/index.js +2 -2
- package/dist/formats/bnk/CjsBnkFormat.js +125 -125
- package/dist/formats/bnk/core/graph.js +140 -140
- package/dist/formats/bnk/core/helpers.js +409 -409
- package/dist/formats/bnk/core/musicNodes.js +493 -489
- package/dist/formats/bnk/core/musicNodes.js.map +1 -1
- package/dist/formats/bnk/core/soundbanksInfo.js +246 -246
- package/dist/formats/bnk/index.js +2 -2
- package/dist/formats/cmf/CjsCmfFormat.js +497 -497
- package/dist/formats/cmf/core/binary.js +123 -118
- package/dist/formats/cmf/core/binary.js.map +1 -1
- package/dist/formats/cmf/core/buffers.js +233 -233
- 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 +287 -287
- package/dist/formats/cmf/core/pack.js +276 -276
- package/dist/formats/cmf/core/schema.js +364 -364
- package/dist/formats/cmf/core/shared.js +268 -268
- package/dist/formats/cmf/core/writer.js +517 -517
- package/dist/formats/cmf/index.js +2 -2
- package/dist/formats/dds/CjsDdsFormat.js +200 -193
- package/dist/formats/dds/CjsDdsFormat.js.map +1 -1
- package/dist/formats/dds/core/bc6h.js +288 -288
- package/dist/formats/dds/core/bc7.js +256 -251
- package/dist/formats/dds/core/bc7.js.map +1 -1
- package/dist/formats/dds/core/helpers.js +815 -815
- package/dist/formats/dds/index.js +2 -2
- package/dist/formats/fbx/CjsFbxFormat.js +266 -266
- package/dist/formats/fbx/core/helpers.js +3911 -3901
- package/dist/formats/fbx/core/helpers.js.map +1 -1
- package/dist/formats/fbx/index.js +2 -2
- package/dist/formats/flac/CjsFlacFormat.js +93 -87
- package/dist/formats/flac/CjsFlacFormat.js.map +1 -1
- package/dist/formats/flac/core/helpers.js +295 -295
- package/dist/formats/flac/index.js +2 -2
- package/dist/formats/gif/CjsGifFormat.js +92 -87
- package/dist/formats/gif/CjsGifFormat.js.map +1 -1
- package/dist/formats/gif/core/helpers.js +360 -360
- package/dist/formats/gif/index.js +2 -2
- package/dist/formats/gltf/CjsGltfFormat.js +290 -290
- package/dist/formats/gltf/core/helpers.js +292 -292
- package/dist/formats/gltf/core/json.js +79 -79
- package/dist/formats/gltf/core/parser.js +666 -666
- package/dist/formats/gltf/core/targets.js +163 -163
- package/dist/formats/gltf/index.js +2 -2
- package/dist/formats/gr2/CjsGr2Format.js +46 -0
- package/dist/formats/gr2/CjsGr2Format.js.map +1 -0
- package/dist/formats/gr2/core/CjsFormatGr2.js +273 -0
- package/dist/formats/gr2/core/CjsFormatGr2.js.map +1 -0
- package/dist/formats/gr2/core/bitknit2.js +280 -0
- package/dist/formats/gr2/core/bitknit2.js.map +1 -0
- package/dist/formats/gr2/core/curves.js +1047 -0
- package/dist/formats/gr2/core/curves.js.map +1 -0
- package/dist/formats/gr2/core/gsf.js +72 -0
- package/dist/formats/gr2/core/gsf.js.map +1 -0
- package/dist/formats/gr2/core/helpers.js +332 -0
- package/dist/formats/gr2/core/helpers.js.map +1 -0
- package/dist/formats/gr2/core/json.js +622 -0
- package/dist/formats/gr2/core/json.js.map +1 -0
- package/dist/formats/gr2/core/oodle1.js +388 -0
- package/dist/formats/gr2/core/oodle1.js.map +1 -0
- package/dist/formats/gr2/core/reader.js +617 -0
- package/dist/formats/gr2/core/reader.js.map +1 -0
- package/dist/formats/gr2/core/tangents.js +48 -0
- package/dist/formats/gr2/core/tangents.js.map +1 -0
- package/dist/formats/gr2/core/targets.js +351 -0
- package/dist/formats/gr2/core/targets.js.map +1 -0
- package/dist/formats/gr2/index.js +3 -0
- package/dist/formats/gr2/index.js.map +1 -0
- package/dist/formats/index.js +30 -23
- package/dist/formats/index.js.map +1 -1
- package/dist/formats/jpeg/CjsJpegFormat.js +212 -206
- package/dist/formats/jpeg/CjsJpegFormat.js.map +1 -1
- package/dist/formats/jpeg/core/helpers.js +350 -350
- package/dist/formats/jpeg/core/jpeg.js +387 -377
- package/dist/formats/jpeg/core/jpeg.js.map +1 -1
- package/dist/formats/jpeg/index.js +2 -2
- package/dist/formats/mp3/CjsMp3Format.js +197 -192
- package/dist/formats/mp3/CjsMp3Format.js.map +1 -1
- package/dist/formats/mp3/core/helpers.js +338 -338
- package/dist/formats/mp3/index.js +2 -2
- package/dist/formats/mp4/CjsMp4Format.js +197 -191
- package/dist/formats/mp4/CjsMp4Format.js.map +1 -1
- package/dist/formats/mp4/core/helpers.js +449 -449
- 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 +94 -88
- package/dist/formats/ogg/CjsOggFormat.js.map +1 -1
- package/dist/formats/ogg/core/helpers.js +387 -387
- package/dist/formats/ogg/core/imdct.js +178 -178
- package/dist/formats/ogg/core/vorbis.js +1004 -999
- package/dist/formats/ogg/core/vorbis.js.map +1 -1
- package/dist/formats/ogg/index.js +2 -2
- package/dist/formats/png/CjsPngFormat.js +201 -195
- package/dist/formats/png/CjsPngFormat.js.map +1 -1
- package/dist/formats/png/core/helpers.js +583 -583
- package/dist/formats/png/index.js +2 -2
- package/dist/formats/red/CjsRedFormat.js +261 -261
- package/dist/formats/red/core/CjsRedReader.js +194 -194
- package/dist/formats/red/core/blackDefinitions.js +3 -3
- package/dist/formats/red/core/helpers.js +139 -139
- package/dist/formats/red/core/redGraph.js +68 -68
- 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 +634 -629
- package/dist/formats/stl/core/stl.js.map +1 -1
- package/dist/formats/stl/core/targets.js +163 -163
- package/dist/formats/stl/index.js +2 -2
- package/dist/formats/tga/CjsTgaFormat.js +197 -192
- package/dist/formats/tga/CjsTgaFormat.js.map +1 -1
- package/dist/formats/tga/core/helpers.js +446 -446
- package/dist/formats/tga/index.js +2 -2
- package/dist/formats/wav/CjsWavFormat.js +198 -192
- package/dist/formats/wav/CjsWavFormat.js.map +1 -1
- package/dist/formats/wav/core/helpers.js +328 -328
- package/dist/formats/wav/index.js +2 -2
- package/dist/formats/webm/CjsWebmFormat.js +197 -191
- package/dist/formats/webm/CjsWebmFormat.js.map +1 -1
- package/dist/formats/webm/core/helpers.js +537 -537
- package/dist/formats/webm/index.js +2 -2
- package/dist/formats/webp/CjsWebpFormat.js +91 -86
- package/dist/formats/webp/CjsWebpFormat.js.map +1 -1
- package/dist/formats/webp/core/helpers.js +214 -214
- package/dist/formats/webp/index.js +2 -2
- package/dist/formats/wem/CjsWemFormat.js +242 -241
- package/dist/formats/wem/CjsWemFormat.js.map +1 -1
- package/dist/formats/wem/core/bitStream.js +259 -259
- package/dist/formats/wem/core/codebookLibrary.js +164 -164
- package/dist/formats/wem/core/helpers.js +417 -417
- 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 +89 -83
- package/dist/formats/yaml/CjsYamlFormat.js.map +1 -1
- package/dist/formats/yaml/core/CjsYamlReader.js +311 -305
- package/dist/formats/yaml/core/CjsYamlReader.js.map +1 -1
- package/dist/formats/yaml/core/helpers.js +160 -160
- package/dist/formats/yaml/index.js +2 -2
- package/dist/index.js +49 -48
- package/dist/index.js.map +1 -1
- package/dist/resourcePath.js +18 -18
- package/dist/resourceStates.js +9 -9
- package/dist/resources/AudioGeometryResData.js +47 -47
- package/dist/resources/GStateBindingCallbackData.js +31 -31
- package/dist/resources/MeshDecalData.js +37 -37
- package/dist/resources/MeshDecalLodData.js +34 -34
- package/dist/resources/Tr2EffectRes.js +71 -71
- package/dist/resources/Tr2GrannyIntersectionResult.js +60 -60
- package/dist/resources/Tr2GrannyStateRes.js +44 -44
- package/dist/resources/Tr2ImageRes.js +114 -114
- package/dist/resources/Tr2LightProfileRes.js +40 -40
- package/dist/resources/Tr2MaterialArea.js +34 -34
- package/dist/resources/Tr2MaterialMesh.js +31 -31
- package/dist/resources/Tr2MaterialRes.js +34 -34
- package/dist/resources/Tr2ShaderPermutation.js +43 -43
- package/dist/resources/Tr2TextureLodManager.js +80 -80
- package/dist/resources/Tr2TextureLodUpdateRequest.js +37 -37
- package/dist/resources/Tr2TexturePackChannel.js +37 -37
- package/dist/resources/Tr2TexturePipeline.js +52 -52
- package/dist/resources/Tr2TexturePipelineParams.js +34 -34
- package/dist/resources/Tr2TexturePipelineStepCompress.js +40 -40
- package/dist/resources/Tr2TexturePipelineStepGenerateMips.js +22 -0
- package/dist/resources/Tr2TexturePipelineStepGenerateMips.js.map +1 -0
- package/dist/resources/Tr2TexturePipelineStepLimitSize.js +34 -34
- package/dist/resources/Tr2TexturePipelineStepLoad.js +31 -31
- package/dist/resources/Tr2TexturePipelineStepPack.js +43 -43
- package/dist/resources/TriGeometryRes.js +239 -239
- package/dist/resources/TriGeometryResAreaData.js +59 -59
- package/dist/resources/TriGeometryResJointData.js +38 -38
- package/dist/resources/TriGeometryResLodData.js +88 -88
- package/dist/resources/TriGeometryResMeshData.js +63 -63
- package/dist/resources/TriGeometryResSkeletonData.js +34 -34
- package/dist/resources/TriGrannyRes.js +43 -43
- package/dist/resources/TriJointBinding.js +38 -38
- package/dist/resources/TriMorphTargetGeometryConstants.js +46 -46
- package/dist/resources/TriRtGeometryConstants.js +88 -88
- package/dist/resources/TriTextureRes.js +304 -304
- package/dist/resources/enums.js +18 -18
- package/dist/resources/resourceBoundary.js +47 -47
- package/dist/resources/texturePipelineBehavior.js +308 -308
- package/dist/texture/CjsTextureArrayRes.js +406 -406
- package/dist/texture/CjsTextureParameterProxy.js +133 -133
- package/docs/README.md +73 -0
- package/docs/architecture.md +86 -0
- package/docs/concepts/resource-lifecycle.md +217 -0
- package/docs/formats/README.md +105 -0
- package/docs/formats/gr2.md +161 -0
- package/{FORMAT-PROVENANCE.md → docs/formats/provenance.md} +173 -155
- package/docs/formats/stl.md +37 -0
- package/docs/formats/wwise.md +44 -0
- package/docs/reference/classes/README.md +33 -0
- package/docs/reference/classes/core.md +106 -0
- package/docs/reference/classes/dropped.md +46 -0
- package/docs/reference/classes/formats.md +522 -0
- package/docs/reference/classes/resources.md +346 -0
- package/docs/reference/classes/texture.md +26 -0
- package/docs/reference/events.md +92 -0
- package/docs/reference/motherlode-cache.md +244 -0
- package/docs/reference/queues.md +102 -0
- package/docs/reference/reload.md +107 -0
- package/docs/reference/texture-arrays.md +113 -0
- package/docs/reference/texture-pipeline.md +53 -0
- package/docs/roadmap.md +104 -0
- 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 +20 -20
- 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/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 -0
- package/format-notices/gr2/NOTICE +60 -0
- package/format-notices/gr2/THIRD-PARTY-NOTICES.md +93 -0
- 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/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 +52 -51
- package/dist/formats/black/core/black-schema-v1-2026-07-11.json.js +0 -4
- package/dist/formats/black/core/black-schema-v1-2026-07-11.json.js.map +0 -1
- package/resource-lifecycle.md +0 -679
|
@@ -1,382 +1,387 @@
|
|
|
1
|
-
import { normalizeCarbonTypeDescriptor, CARBON_TYPE } from '@carbonenginejs/core-types';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
case CARBON_TYPE.
|
|
16
|
-
return reader.
|
|
17
|
-
case CARBON_TYPE.
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
case CARBON_TYPE.
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
case CARBON_TYPE.
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
case CARBON_TYPE.
|
|
57
|
-
return
|
|
58
|
-
case CARBON_TYPE.
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
case "
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
case "
|
|
77
|
-
return
|
|
78
|
-
case "
|
|
79
|
-
case "
|
|
80
|
-
case "
|
|
81
|
-
case "
|
|
82
|
-
return
|
|
83
|
-
case "
|
|
84
|
-
|
|
85
|
-
case "
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
case "
|
|
105
|
-
return reader.
|
|
106
|
-
|
|
107
|
-
return CjsBlackPropertyReaders.
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
case CARBON_TYPE.
|
|
123
|
-
case CARBON_TYPE.
|
|
124
|
-
case CARBON_TYPE.
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
case CARBON_TYPE.
|
|
130
|
-
case CARBON_TYPE.
|
|
131
|
-
case CARBON_TYPE.
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
case CARBON_TYPE.
|
|
136
|
-
case CARBON_TYPE.
|
|
137
|
-
case CARBON_TYPE.
|
|
138
|
-
reader.Skip(
|
|
139
|
-
return;
|
|
140
|
-
case CARBON_TYPE.
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
case CARBON_TYPE.
|
|
149
|
-
reader.Skip(
|
|
150
|
-
return;
|
|
151
|
-
case CARBON_TYPE.
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
case CARBON_TYPE.
|
|
169
|
-
|
|
170
|
-
reader.context.
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
case "
|
|
188
|
-
case "
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
case "
|
|
192
|
-
case "
|
|
193
|
-
case "
|
|
194
|
-
case "
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
case "
|
|
198
|
-
case "
|
|
199
|
-
case "
|
|
200
|
-
reader.Skip(
|
|
201
|
-
return;
|
|
202
|
-
case "
|
|
203
|
-
case "
|
|
204
|
-
case "
|
|
205
|
-
reader.Skip(
|
|
206
|
-
return;
|
|
207
|
-
case "
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
});
|
|
236
|
-
}
|
|
237
|
-
static
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
return reader.context.
|
|
245
|
-
}
|
|
246
|
-
static
|
|
247
|
-
if (black.container === "dict")
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
}
|
|
290
|
-
static
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
const
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
const
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
}
|
|
358
|
-
static
|
|
359
|
-
const count = reader.
|
|
360
|
-
const
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
}
|
|
375
|
-
static
|
|
376
|
-
const
|
|
377
|
-
reader.
|
|
378
|
-
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
1
|
+
import { normalizeCarbonTypeDescriptor, CARBON_TYPE } from '@carbonenginejs/core-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
|
+
static readValue(reader, field) {
|
|
10
|
+
const descriptor = normalizeCarbonTypeDescriptor(field);
|
|
11
|
+
if (field?.black?.beType) {
|
|
12
|
+
return CjsBlackPropertyReaders.readBlackValue(reader, field.black, descriptor);
|
|
13
|
+
}
|
|
14
|
+
switch (descriptor.kind) {
|
|
15
|
+
case CARBON_TYPE.BOOLEAN:
|
|
16
|
+
return reader.ReadU8() !== 0;
|
|
17
|
+
case CARBON_TYPE.STRING:
|
|
18
|
+
case CARBON_TYPE.EXPRESSION:
|
|
19
|
+
return reader.ReadStringRef();
|
|
20
|
+
case CARBON_TYPE.PATH:
|
|
21
|
+
return reader.context.TransformPath(reader.ReadStringRef());
|
|
22
|
+
case CARBON_TYPE.ENUM:
|
|
23
|
+
return reader.ReadI32();
|
|
24
|
+
case CARBON_TYPE.FLOAT32:
|
|
25
|
+
return reader.ReadF32();
|
|
26
|
+
case CARBON_TYPE.FLOAT64:
|
|
27
|
+
return reader.ReadF64();
|
|
28
|
+
case CARBON_TYPE.INT8:
|
|
29
|
+
return reader.ReadI8();
|
|
30
|
+
case CARBON_TYPE.UINT8:
|
|
31
|
+
return reader.ReadU8();
|
|
32
|
+
case CARBON_TYPE.INT16:
|
|
33
|
+
return reader.ReadI16();
|
|
34
|
+
case CARBON_TYPE.UINT16:
|
|
35
|
+
return reader.ReadU16();
|
|
36
|
+
case CARBON_TYPE.INT32:
|
|
37
|
+
return reader.ReadI32();
|
|
38
|
+
case CARBON_TYPE.UINT32:
|
|
39
|
+
return reader.ReadU32();
|
|
40
|
+
case CARBON_TYPE.INT64:
|
|
41
|
+
return reader.ReadI64();
|
|
42
|
+
case CARBON_TYPE.UINT64:
|
|
43
|
+
return reader.ReadU64();
|
|
44
|
+
case CARBON_TYPE.VECTOR2:
|
|
45
|
+
return CjsBlackPropertyReaders.readFloatArray(reader, 2);
|
|
46
|
+
case CARBON_TYPE.VECTOR3:
|
|
47
|
+
return CjsBlackPropertyReaders.readFloatArray(reader, 3);
|
|
48
|
+
case CARBON_TYPE.VECTOR4:
|
|
49
|
+
case CARBON_TYPE.COLOR:
|
|
50
|
+
case CARBON_TYPE.QUATERNION:
|
|
51
|
+
return CjsBlackPropertyReaders.readFloatArray(reader, 4);
|
|
52
|
+
case CARBON_TYPE.MATRIX3:
|
|
53
|
+
return CjsBlackPropertyReaders.readFloatArray(reader, 9);
|
|
54
|
+
case CARBON_TYPE.MATRIX4:
|
|
55
|
+
return CjsBlackPropertyReaders.readFloatArray(reader, 16);
|
|
56
|
+
case CARBON_TYPE.ARRAY:
|
|
57
|
+
return CjsBlackPropertyReaders.readArray(reader, descriptor);
|
|
58
|
+
case CARBON_TYPE.TYPED_ARRAY:
|
|
59
|
+
return CjsBlackPropertyReaders.readTypedArray(reader, descriptor);
|
|
60
|
+
case CARBON_TYPE.STRUCT:
|
|
61
|
+
case CARBON_TYPE.RAW_STRUCT:
|
|
62
|
+
return reader.context.ReadEmbeddedObject(reader);
|
|
63
|
+
case CARBON_TYPE.OBJECT_REF:
|
|
64
|
+
case CARBON_TYPE.UNKNOWN:
|
|
65
|
+
default:
|
|
66
|
+
return reader.context.ReadObject(reader);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
static readBlackValue(reader, black, descriptor) {
|
|
70
|
+
switch (black.beType) {
|
|
71
|
+
case "IROOT":
|
|
72
|
+
if (black.container === "list" && black.cppType && /StructureList/.test(String(black.cppType))) {
|
|
73
|
+
return CjsBlackPropertyReaders.readBlackStructureList(reader, black);
|
|
74
|
+
}
|
|
75
|
+
return CjsBlackPropertyReaders.readBlackIRoot(reader, black, descriptor);
|
|
76
|
+
case "BOOL":
|
|
77
|
+
return reader.ReadU8() !== 0;
|
|
78
|
+
case "CSTRING":
|
|
79
|
+
case "STDSTRING":
|
|
80
|
+
case "SHAREDSTRING":
|
|
81
|
+
case "REFERENCE":
|
|
82
|
+
return CjsBlackPropertyReaders.readStringRef(reader, descriptor);
|
|
83
|
+
case "WCSTRING":
|
|
84
|
+
case "STDWSTRING":
|
|
85
|
+
case "SHAREDSTRINGW":
|
|
86
|
+
case "WREFERENCE":
|
|
87
|
+
return reader.ReadWideStringRef();
|
|
88
|
+
case "FLOAT":
|
|
89
|
+
return reader.ReadF32();
|
|
90
|
+
case "DOUBLE":
|
|
91
|
+
return reader.ReadF64();
|
|
92
|
+
case "LONG":
|
|
93
|
+
return reader.ReadI32();
|
|
94
|
+
case "ULONG":
|
|
95
|
+
return reader.ReadU32();
|
|
96
|
+
case "INT64":
|
|
97
|
+
return reader.ReadI64();
|
|
98
|
+
case "UINT64":
|
|
99
|
+
return reader.ReadU64();
|
|
100
|
+
case "BYTE":
|
|
101
|
+
return black.signed ? reader.ReadI8() : reader.ReadU8();
|
|
102
|
+
case "SHORT":
|
|
103
|
+
return black.signed ? reader.ReadI16() : reader.ReadU16();
|
|
104
|
+
case "FLOATARRAY":
|
|
105
|
+
return CjsBlackPropertyReaders.readFloatArray(reader, black.length || descriptor.length || 0);
|
|
106
|
+
case "BINARYBLOCK":
|
|
107
|
+
return CjsBlackPropertyReaders.readBinaryBlock(reader, black);
|
|
108
|
+
case "IROOTPTR":
|
|
109
|
+
case "IROOTWEAKREF":
|
|
110
|
+
return reader.context.ReadObject(reader);
|
|
111
|
+
default:
|
|
112
|
+
return CjsBlackPropertyReaders.readValueWithoutBlack(reader, descriptor);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
static skipValue(reader, field) {
|
|
116
|
+
const descriptor = normalizeCarbonTypeDescriptor(field);
|
|
117
|
+
if (field?.black?.beType) {
|
|
118
|
+
CjsBlackPropertyReaders.skipBlackValue(reader, field.black, descriptor);
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
switch (descriptor.kind) {
|
|
122
|
+
case CARBON_TYPE.BOOLEAN:
|
|
123
|
+
case CARBON_TYPE.INT8:
|
|
124
|
+
case CARBON_TYPE.UINT8:
|
|
125
|
+
reader.Skip(1);
|
|
126
|
+
return;
|
|
127
|
+
case CARBON_TYPE.STRING:
|
|
128
|
+
case CARBON_TYPE.PATH:
|
|
129
|
+
case CARBON_TYPE.EXPRESSION:
|
|
130
|
+
case CARBON_TYPE.INT16:
|
|
131
|
+
case CARBON_TYPE.UINT16:
|
|
132
|
+
reader.Skip(2);
|
|
133
|
+
return;
|
|
134
|
+
case CARBON_TYPE.ENUM:
|
|
135
|
+
case CARBON_TYPE.FLOAT32:
|
|
136
|
+
case CARBON_TYPE.INT32:
|
|
137
|
+
case CARBON_TYPE.UINT32:
|
|
138
|
+
reader.Skip(4);
|
|
139
|
+
return;
|
|
140
|
+
case CARBON_TYPE.FLOAT64:
|
|
141
|
+
case CARBON_TYPE.INT64:
|
|
142
|
+
case CARBON_TYPE.UINT64:
|
|
143
|
+
reader.Skip(8);
|
|
144
|
+
return;
|
|
145
|
+
case CARBON_TYPE.VECTOR2:
|
|
146
|
+
reader.Skip(8);
|
|
147
|
+
return;
|
|
148
|
+
case CARBON_TYPE.VECTOR3:
|
|
149
|
+
reader.Skip(12);
|
|
150
|
+
return;
|
|
151
|
+
case CARBON_TYPE.VECTOR4:
|
|
152
|
+
case CARBON_TYPE.COLOR:
|
|
153
|
+
case CARBON_TYPE.QUATERNION:
|
|
154
|
+
reader.Skip(16);
|
|
155
|
+
return;
|
|
156
|
+
case CARBON_TYPE.MATRIX3:
|
|
157
|
+
reader.Skip(36);
|
|
158
|
+
return;
|
|
159
|
+
case CARBON_TYPE.MATRIX4:
|
|
160
|
+
reader.Skip(64);
|
|
161
|
+
return;
|
|
162
|
+
case CARBON_TYPE.ARRAY:
|
|
163
|
+
CjsBlackPropertyReaders.skipArray(reader, descriptor);
|
|
164
|
+
return;
|
|
165
|
+
case CARBON_TYPE.TYPED_ARRAY:
|
|
166
|
+
CjsBlackPropertyReaders.skipTypedArray(reader);
|
|
167
|
+
return;
|
|
168
|
+
case CARBON_TYPE.STRUCT:
|
|
169
|
+
case CARBON_TYPE.RAW_STRUCT:
|
|
170
|
+
reader.context.SkipEmbeddedObject(reader);
|
|
171
|
+
return;
|
|
172
|
+
case CARBON_TYPE.OBJECT_REF:
|
|
173
|
+
case CARBON_TYPE.UNKNOWN:
|
|
174
|
+
default:
|
|
175
|
+
reader.context.SkipObject(reader);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
static skipBlackValue(reader, black, descriptor) {
|
|
179
|
+
switch (black.beType) {
|
|
180
|
+
case "IROOT":
|
|
181
|
+
if (black.container === "list" && black.cppType && /StructureList/.test(String(black.cppType))) {
|
|
182
|
+
CjsBlackPropertyReaders.skipStructureList(reader);
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
CjsBlackPropertyReaders.skipBlackIRoot(reader, black, descriptor);
|
|
186
|
+
return;
|
|
187
|
+
case "BOOL":
|
|
188
|
+
case "BYTE":
|
|
189
|
+
reader.Skip(1);
|
|
190
|
+
return;
|
|
191
|
+
case "CSTRING":
|
|
192
|
+
case "STDSTRING":
|
|
193
|
+
case "SHAREDSTRING":
|
|
194
|
+
case "REFERENCE":
|
|
195
|
+
case "WCSTRING":
|
|
196
|
+
case "STDWSTRING":
|
|
197
|
+
case "SHAREDSTRINGW":
|
|
198
|
+
case "WREFERENCE":
|
|
199
|
+
case "SHORT":
|
|
200
|
+
reader.Skip(2);
|
|
201
|
+
return;
|
|
202
|
+
case "FLOAT":
|
|
203
|
+
case "LONG":
|
|
204
|
+
case "ULONG":
|
|
205
|
+
reader.Skip(4);
|
|
206
|
+
return;
|
|
207
|
+
case "DOUBLE":
|
|
208
|
+
case "INT64":
|
|
209
|
+
case "UINT64":
|
|
210
|
+
reader.Skip(8);
|
|
211
|
+
return;
|
|
212
|
+
case "FLOATARRAY":
|
|
213
|
+
reader.Skip((black.length || descriptor.length || 0) * 4);
|
|
214
|
+
return;
|
|
215
|
+
case "BINARYBLOCK":
|
|
216
|
+
CjsBlackPropertyReaders.skipBinaryBlock(reader);
|
|
217
|
+
return;
|
|
218
|
+
case "IROOTPTR":
|
|
219
|
+
case "IROOTWEAKREF":
|
|
220
|
+
reader.context.SkipObject(reader);
|
|
221
|
+
return;
|
|
222
|
+
default:
|
|
223
|
+
CjsBlackPropertyReaders.skipValue(reader, {
|
|
224
|
+
jsType: descriptor
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
static readBlackStructureList(reader, black) {
|
|
229
|
+
return CjsBlackPropertyReaders.readStructureList(reader, {
|
|
230
|
+
cppType: black.cppType,
|
|
231
|
+
elementType: {
|
|
232
|
+
kind: CARBON_TYPE.RAW_STRUCT,
|
|
233
|
+
cppType: black.cppType
|
|
234
|
+
}
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
static readValueWithoutBlack(reader, descriptor) {
|
|
238
|
+
return CjsBlackPropertyReaders.readValue(reader, {
|
|
239
|
+
jsType: descriptor
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
static readStringRef(reader, descriptor) {
|
|
243
|
+
const value = reader.ReadStringRef();
|
|
244
|
+
return descriptor.kind === CARBON_TYPE.PATH ? reader.context.TransformPath(value) : value;
|
|
245
|
+
}
|
|
246
|
+
static readBlackIRoot(reader, black, descriptor) {
|
|
247
|
+
if (black.container === "dict") return CjsBlackPropertyReaders.readDict(reader);
|
|
248
|
+
if (black.container === "list" || black.container === "set") return CjsBlackPropertyReaders.readArray(reader, descriptor);
|
|
249
|
+
return reader.context.ReadEmbeddedObject(reader);
|
|
250
|
+
}
|
|
251
|
+
static skipBlackIRoot(reader, black, descriptor) {
|
|
252
|
+
if (black.container === "dict") {
|
|
253
|
+
CjsBlackPropertyReaders.skipDict(reader);
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
if (black.container === "list" || black.container === "set") {
|
|
257
|
+
CjsBlackPropertyReaders.skipArray(reader, descriptor);
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
reader.context.SkipEmbeddedObject(reader);
|
|
261
|
+
}
|
|
262
|
+
static readDict(reader) {
|
|
263
|
+
const count = reader.ReadU32();
|
|
264
|
+
const result = {};
|
|
265
|
+
for (let i = 0; i < count; i++) {
|
|
266
|
+
result[reader.ReadStringRef()] = reader.context.ReadObject(reader);
|
|
267
|
+
}
|
|
268
|
+
return result;
|
|
269
|
+
}
|
|
270
|
+
static skipDict(reader) {
|
|
271
|
+
const count = reader.ReadU32();
|
|
272
|
+
for (let i = 0; i < count; i++) {
|
|
273
|
+
reader.Skip(2);
|
|
274
|
+
reader.context.SkipObject(reader);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
static readBinaryBlock(reader, black) {
|
|
278
|
+
const byteLength = reader.ReadI32();
|
|
279
|
+
const bytes = reader.ReadBytes(byteLength);
|
|
280
|
+
if (CjsBlackPropertyReaders.isUint32IndexBufferBlock(reader, black, byteLength)) {
|
|
281
|
+
return CjsBlackPropertyReaders.readUint32Array(bytes);
|
|
282
|
+
}
|
|
283
|
+
return {
|
|
284
|
+
$type: "black.binaryBlock",
|
|
285
|
+
beType: black.beType,
|
|
286
|
+
byteLength,
|
|
287
|
+
bytes: Array.from(bytes)
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
static isUint32IndexBufferBlock(reader, black, byteLength) {
|
|
291
|
+
if (byteLength % 4 !== 0) return false;
|
|
292
|
+
if (reader.context?.readMode === "document" && !reader.context?.options.decodeBinaryBlocks) return false;
|
|
293
|
+
return black.name === "indexBuffer" || black.fieldName === "indexBuffer" || black.storageName === "indexBuffer";
|
|
294
|
+
}
|
|
295
|
+
static readUint32Array(bytes) {
|
|
296
|
+
const result = new Uint32Array(bytes.byteLength / 4);
|
|
297
|
+
const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
|
|
298
|
+
for (let i = 0; i < result.length; i++) {
|
|
299
|
+
result[i] = view.getUint32(i * 4, true);
|
|
300
|
+
}
|
|
301
|
+
return result;
|
|
302
|
+
}
|
|
303
|
+
static readArray(reader, descriptor) {
|
|
304
|
+
const elementType = normalizeCarbonTypeDescriptor(descriptor.elementType);
|
|
305
|
+
if (elementType.kind === CARBON_TYPE.RAW_STRUCT) {
|
|
306
|
+
return CjsBlackPropertyReaders.readStructureList(reader, descriptor);
|
|
307
|
+
}
|
|
308
|
+
const count = reader.ReadU32();
|
|
309
|
+
const result = [];
|
|
310
|
+
for (let i = 0; i < count; i++) {
|
|
311
|
+
if (!descriptor.elementType || elementType.kind === CARBON_TYPE.OBJECT_REF || elementType.kind === CARBON_TYPE.UNKNOWN) {
|
|
312
|
+
result[i] = reader.context.ReadObject(reader);
|
|
313
|
+
} else {
|
|
314
|
+
result[i] = CjsBlackPropertyReaders.readValue(reader, {
|
|
315
|
+
jsType: elementType
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
return result;
|
|
320
|
+
}
|
|
321
|
+
static skipArray(reader, descriptor) {
|
|
322
|
+
const elementType = normalizeCarbonTypeDescriptor(descriptor.elementType);
|
|
323
|
+
if (elementType.kind === CARBON_TYPE.RAW_STRUCT) {
|
|
324
|
+
CjsBlackPropertyReaders.skipStructureList(reader);
|
|
325
|
+
return;
|
|
326
|
+
}
|
|
327
|
+
const count = reader.ReadU32();
|
|
328
|
+
for (let i = 0; i < count; i++) {
|
|
329
|
+
if (!descriptor.elementType || elementType.kind === CARBON_TYPE.OBJECT_REF || elementType.kind === CARBON_TYPE.UNKNOWN) {
|
|
330
|
+
reader.context.SkipObject(reader);
|
|
331
|
+
} else {
|
|
332
|
+
CjsBlackPropertyReaders.skipValue(reader, {
|
|
333
|
+
jsType: elementType
|
|
334
|
+
});
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
static readFloatArray(reader, count) {
|
|
339
|
+
const result = [];
|
|
340
|
+
for (let i = 0; i < count; i++) {
|
|
341
|
+
result[i] = reader.ReadF32();
|
|
342
|
+
}
|
|
343
|
+
return result;
|
|
344
|
+
}
|
|
345
|
+
static readStructureList(reader, descriptor) {
|
|
346
|
+
const count = reader.ReadI32();
|
|
347
|
+
const structureSize = reader.ReadU16();
|
|
348
|
+
const bytes = reader.ReadBytes(count * structureSize);
|
|
349
|
+
return {
|
|
350
|
+
$type: "black.structureList",
|
|
351
|
+
count,
|
|
352
|
+
structureSize,
|
|
353
|
+
cppType: descriptor.cppType || null,
|
|
354
|
+
elementType: descriptor.elementType?.cppType || null,
|
|
355
|
+
bytes: Array.from(bytes)
|
|
356
|
+
};
|
|
357
|
+
}
|
|
358
|
+
static skipStructureList(reader) {
|
|
359
|
+
const count = reader.ReadI32();
|
|
360
|
+
const structureSize = reader.ReadU16();
|
|
361
|
+
reader.Skip(count * structureSize);
|
|
362
|
+
}
|
|
363
|
+
static readTypedArray(reader, descriptor) {
|
|
364
|
+
const count = reader.ReadU32();
|
|
365
|
+
const elementSize = reader.ReadU16();
|
|
366
|
+
const bytes = reader.ReadBytes(count * elementSize);
|
|
367
|
+
return {
|
|
368
|
+
$type: "black.typedArray",
|
|
369
|
+
count,
|
|
370
|
+
elementSize,
|
|
371
|
+
js: descriptor.js || null,
|
|
372
|
+
bytes: Array.from(bytes)
|
|
373
|
+
};
|
|
374
|
+
}
|
|
375
|
+
static skipTypedArray(reader) {
|
|
376
|
+
const count = reader.ReadU32();
|
|
377
|
+
const elementSize = reader.ReadU16();
|
|
378
|
+
reader.Skip(count * elementSize);
|
|
379
|
+
}
|
|
380
|
+
static skipBinaryBlock(reader) {
|
|
381
|
+
const byteLength = reader.ReadI32();
|
|
382
|
+
reader.Skip(byteLength);
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
export { CjsBlackPropertyReaders };
|
|
387
|
+
//# sourceMappingURL=CjsBlackPropertyReaders.js.map
|