@carbonenginejs/runtime-resource 0.8.0 → 0.9.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 +29 -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 +59 -59
- package/dist/_virtual/_rollupPluginBabelHelpers.js +153 -153
- package/dist/format/CjsBlueReader.js +269 -269
- package/dist/format/CjsFormat.js +192 -192
- 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 +153 -153
- package/dist/formats/black/core/CjsBlackPropertyReaders.js +382 -382
- package/dist/formats/black/core/CjsBlackReader.js +639 -639
- package/dist/formats/black/core/CjsBlackSchemaRegistry.js +433 -433
- package/dist/formats/black/core/black-schema-v1-2026-07-11.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 +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 +489 -489
- 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 +118 -118
- 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 +193 -193
- package/dist/formats/dds/core/bc6h.js +288 -288
- package/dist/formats/dds/core/bc7.js +251 -251
- 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 +3901 -3901
- package/dist/formats/fbx/index.js +2 -2
- package/dist/formats/flac/CjsFlacFormat.js +87 -87
- package/dist/formats/flac/core/helpers.js +295 -295
- package/dist/formats/flac/index.js +2 -2
- package/dist/formats/gif/CjsGifFormat.js +87 -87
- 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 +206 -206
- package/dist/formats/jpeg/core/helpers.js +350 -350
- package/dist/formats/jpeg/core/jpeg.js +377 -377
- package/dist/formats/jpeg/index.js +2 -2
- package/dist/formats/mp3/CjsMp3Format.js +192 -192
- package/dist/formats/mp3/core/helpers.js +338 -338
- package/dist/formats/mp3/index.js +2 -2
- package/dist/formats/mp4/CjsMp4Format.js +191 -191
- 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 +88 -88
- 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 +999 -999
- package/dist/formats/ogg/index.js +2 -2
- package/dist/formats/png/CjsPngFormat.js +195 -195
- 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 +629 -629
- package/dist/formats/stl/core/targets.js +163 -163
- package/dist/formats/stl/index.js +2 -2
- package/dist/formats/tga/CjsTgaFormat.js +192 -192
- package/dist/formats/tga/core/helpers.js +446 -446
- package/dist/formats/tga/index.js +2 -2
- package/dist/formats/wav/CjsWavFormat.js +192 -192
- package/dist/formats/wav/core/helpers.js +328 -328
- package/dist/formats/wav/index.js +2 -2
- package/dist/formats/webm/CjsWebmFormat.js +191 -191
- package/dist/formats/webm/core/helpers.js +537 -537
- package/dist/formats/webm/index.js +2 -2
- package/dist/formats/webp/CjsWebpFormat.js +86 -86
- package/dist/formats/webp/core/helpers.js +214 -214
- package/dist/formats/webp/index.js +2 -2
- package/dist/formats/wem/CjsWemFormat.js +241 -241
- 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 +83 -83
- package/dist/formats/yaml/core/CjsYamlReader.js +305 -305
- 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 +69 -0
- package/docs/architecture.md +86 -0
- package/docs/concepts/resource-lifecycle.md +217 -0
- package/docs/formats/README.md +104 -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/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/resource-lifecycle.md +0 -679
|
@@ -1,192 +1,192 @@
|
|
|
1
|
-
import { DEFAULT_VALUES, normalizeValues, readWithValues, inspectWithValues, isSupportedWithValues, toJsonValue, isTGA, toBytes, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_RGBA, OUTPUT_IMAGE } from './core/helpers.js';
|
|
2
|
-
|
|
3
|
-
const FORMAT_NAME = "CjsTgaFormat";
|
|
4
|
-
class CjsTgaFormat {
|
|
5
|
-
#values = DEFAULT_VALUES;
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Create a reusable TGA format profile.
|
|
9
|
-
*
|
|
10
|
-
* @param {object} [options] Default read/inspect options.
|
|
11
|
-
*/
|
|
12
|
-
constructor(options = {}) {
|
|
13
|
-
this.SetValues(options);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Merge options into this profile.
|
|
18
|
-
*
|
|
19
|
-
* @param {object} [options] Values to merge.
|
|
20
|
-
* @returns {CjsTgaFormat} This format profile.
|
|
21
|
-
*/
|
|
22
|
-
SetValues(options = {}) {
|
|
23
|
-
this.#values = normalizeValues(this.#values, {
|
|
24
|
-
inputType: "tga",
|
|
25
|
-
...options
|
|
26
|
-
}, FORMAT_NAME);
|
|
27
|
-
return this;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Get normalized profile values with optional per-call overrides.
|
|
32
|
-
*
|
|
33
|
-
* @param {object} [options] Per-call values.
|
|
34
|
-
* @returns {object} Normalized read values.
|
|
35
|
-
*/
|
|
36
|
-
GetValues(options = {}) {
|
|
37
|
-
return normalizeValues(this.#values, {
|
|
38
|
-
inputType: "tga",
|
|
39
|
-
...options
|
|
40
|
-
}, FORMAT_NAME);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Read TGA bytes with this profile.
|
|
45
|
-
*
|
|
46
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input TGA bytes.
|
|
47
|
-
* @param {object} [options] Per-call values.
|
|
48
|
-
* @returns {object} GPU-free raw/debug/RGBA payload for the selected emit target.
|
|
49
|
-
*/
|
|
50
|
-
Read(input, options = {}) {
|
|
51
|
-
return readWithValues(input, this.GetValues(options), "tga");
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Read TGA bytes asynchronously with this profile.
|
|
56
|
-
*
|
|
57
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input TGA bytes.
|
|
58
|
-
* @param {object} [options] Per-call values.
|
|
59
|
-
* @returns {Promise<object>} GPU-free raw/debug/RGBA payload for the selected emit target.
|
|
60
|
-
*/
|
|
61
|
-
async ReadAsync(input, options = {}) {
|
|
62
|
-
return this.Read(input, options);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Inspect TGA bytes without decoding full image data.
|
|
67
|
-
*
|
|
68
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input TGA bytes.
|
|
69
|
-
* @param {object} [options] Per-call values.
|
|
70
|
-
* @returns {object} TGA header metadata.
|
|
71
|
-
*/
|
|
72
|
-
Inspect(input, options = {}) {
|
|
73
|
-
return inspectWithValues(input, this.GetValues(options), "tga");
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* Report whether TGA input and requested output variants are supported.
|
|
78
|
-
*
|
|
79
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input TGA bytes.
|
|
80
|
-
* @param {object} [options] Per-call values.
|
|
81
|
-
* @returns {object} Support/probe report.
|
|
82
|
-
*/
|
|
83
|
-
IsSupported(input, options = {}) {
|
|
84
|
-
return isSupportedWithValues(input, this.GetValues(options), "tga");
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* Convert format output into JSON-compatible debug data.
|
|
89
|
-
*
|
|
90
|
-
* @param {any} value Format output.
|
|
91
|
-
* @returns {any} JSON-compatible value.
|
|
92
|
-
*/
|
|
93
|
-
ToJSON(value) {
|
|
94
|
-
return toJsonValue(value);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* One-shot TGA read.
|
|
99
|
-
*
|
|
100
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input TGA bytes.
|
|
101
|
-
* @param {object} [options] Read options.
|
|
102
|
-
* @returns {object} GPU-free raw/debug/RGBA payload for the selected emit target.
|
|
103
|
-
*/
|
|
104
|
-
static read(input, options = {}) {
|
|
105
|
-
return readWithValues(input, normalizeValues(DEFAULT_VALUES, {
|
|
106
|
-
inputType: "tga",
|
|
107
|
-
...options
|
|
108
|
-
}, FORMAT_NAME), "tga");
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
/**
|
|
112
|
-
* One-shot asynchronous TGA read.
|
|
113
|
-
*
|
|
114
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input TGA bytes.
|
|
115
|
-
* @param {object} [options] Read options.
|
|
116
|
-
* @returns {Promise<object>} GPU-free raw/debug/RGBA payload for the selected emit target.
|
|
117
|
-
*/
|
|
118
|
-
static async readAsync(input, options = {}) {
|
|
119
|
-
return CjsTgaFormat.read(input, options);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
/**
|
|
123
|
-
* One-shot TGA inspection.
|
|
124
|
-
*
|
|
125
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input TGA bytes.
|
|
126
|
-
* @param {object} [options] Inspect options.
|
|
127
|
-
* @returns {object} TGA header metadata.
|
|
128
|
-
*/
|
|
129
|
-
static inspect(input, options = {}) {
|
|
130
|
-
return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, {
|
|
131
|
-
inputType: "tga",
|
|
132
|
-
...options
|
|
133
|
-
}, FORMAT_NAME), "tga");
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
/**
|
|
137
|
-
* One-shot TGA support probe.
|
|
138
|
-
*
|
|
139
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input TGA bytes.
|
|
140
|
-
* @param {object} [options] Probe options.
|
|
141
|
-
* @returns {object} Support/probe report.
|
|
142
|
-
*/
|
|
143
|
-
static isSupported(input, options = {}) {
|
|
144
|
-
return isSupportedWithValues(input, normalizeValues(DEFAULT_VALUES, {
|
|
145
|
-
inputType: "tga",
|
|
146
|
-
...options
|
|
147
|
-
}, FORMAT_NAME), "tga");
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
/**
|
|
151
|
-
* Convert format output into JSON-compatible debug data.
|
|
152
|
-
*
|
|
153
|
-
* @param {any} value Format output.
|
|
154
|
-
* @returns {any} JSON-compatible value.
|
|
155
|
-
*/
|
|
156
|
-
static toJSON(value) {
|
|
157
|
-
return toJsonValue(value);
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
/**
|
|
161
|
-
* Test whether bytes look like a TGA file.
|
|
162
|
-
*
|
|
163
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input Candidate TGA bytes.
|
|
164
|
-
* @returns {boolean} True when the TGA header looks valid.
|
|
165
|
-
*/
|
|
166
|
-
static isTGA(input) {
|
|
167
|
-
try {
|
|
168
|
-
return isTGA(toBytes(input));
|
|
169
|
-
} catch {
|
|
170
|
-
return false;
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
/**
|
|
175
|
-
* Emit targets for this format (canonical frozen enum).
|
|
176
|
-
*/
|
|
177
|
-
static Output = Object.freeze({
|
|
178
|
-
IMAGE: OUTPUT_IMAGE,
|
|
179
|
-
RGBA: OUTPUT_RGBA,
|
|
180
|
-
RAW: OUTPUT_RAW,
|
|
181
|
-
JSON: OUTPUT_JSON
|
|
182
|
-
});
|
|
183
|
-
static OUTPUT_TGA_JSON = "tgaJson";
|
|
184
|
-
static type = Object.freeze(["image"]);
|
|
185
|
-
static mediaTypes = Object.freeze(["image"]);
|
|
186
|
-
static inputTypes = Object.freeze(["tga"]);
|
|
187
|
-
static outputTypes = Object.freeze([OUTPUT_IMAGE, OUTPUT_RGBA]);
|
|
188
|
-
static debugOutputTypes = Object.freeze(["tgaJson", OUTPUT_RAW]);
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
export { CjsTgaFormat };
|
|
192
|
-
//# sourceMappingURL=CjsTgaFormat.js.map
|
|
1
|
+
import { DEFAULT_VALUES, normalizeValues, readWithValues, inspectWithValues, isSupportedWithValues, toJsonValue, isTGA, toBytes, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_RGBA, OUTPUT_IMAGE } from './core/helpers.js';
|
|
2
|
+
|
|
3
|
+
const FORMAT_NAME = "CjsTgaFormat";
|
|
4
|
+
class CjsTgaFormat {
|
|
5
|
+
#values = DEFAULT_VALUES;
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Create a reusable TGA format profile.
|
|
9
|
+
*
|
|
10
|
+
* @param {object} [options] Default read/inspect options.
|
|
11
|
+
*/
|
|
12
|
+
constructor(options = {}) {
|
|
13
|
+
this.SetValues(options);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Merge options into this profile.
|
|
18
|
+
*
|
|
19
|
+
* @param {object} [options] Values to merge.
|
|
20
|
+
* @returns {CjsTgaFormat} This format profile.
|
|
21
|
+
*/
|
|
22
|
+
SetValues(options = {}) {
|
|
23
|
+
this.#values = normalizeValues(this.#values, {
|
|
24
|
+
inputType: "tga",
|
|
25
|
+
...options
|
|
26
|
+
}, FORMAT_NAME);
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Get normalized profile values with optional per-call overrides.
|
|
32
|
+
*
|
|
33
|
+
* @param {object} [options] Per-call values.
|
|
34
|
+
* @returns {object} Normalized read values.
|
|
35
|
+
*/
|
|
36
|
+
GetValues(options = {}) {
|
|
37
|
+
return normalizeValues(this.#values, {
|
|
38
|
+
inputType: "tga",
|
|
39
|
+
...options
|
|
40
|
+
}, FORMAT_NAME);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Read TGA bytes with this profile.
|
|
45
|
+
*
|
|
46
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input TGA bytes.
|
|
47
|
+
* @param {object} [options] Per-call values.
|
|
48
|
+
* @returns {object} GPU-free raw/debug/RGBA payload for the selected emit target.
|
|
49
|
+
*/
|
|
50
|
+
Read(input, options = {}) {
|
|
51
|
+
return readWithValues(input, this.GetValues(options), "tga");
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Read TGA bytes asynchronously with this profile.
|
|
56
|
+
*
|
|
57
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input TGA bytes.
|
|
58
|
+
* @param {object} [options] Per-call values.
|
|
59
|
+
* @returns {Promise<object>} GPU-free raw/debug/RGBA payload for the selected emit target.
|
|
60
|
+
*/
|
|
61
|
+
async ReadAsync(input, options = {}) {
|
|
62
|
+
return this.Read(input, options);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Inspect TGA bytes without decoding full image data.
|
|
67
|
+
*
|
|
68
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input TGA bytes.
|
|
69
|
+
* @param {object} [options] Per-call values.
|
|
70
|
+
* @returns {object} TGA header metadata.
|
|
71
|
+
*/
|
|
72
|
+
Inspect(input, options = {}) {
|
|
73
|
+
return inspectWithValues(input, this.GetValues(options), "tga");
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Report whether TGA input and requested output variants are supported.
|
|
78
|
+
*
|
|
79
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input TGA bytes.
|
|
80
|
+
* @param {object} [options] Per-call values.
|
|
81
|
+
* @returns {object} Support/probe report.
|
|
82
|
+
*/
|
|
83
|
+
IsSupported(input, options = {}) {
|
|
84
|
+
return isSupportedWithValues(input, this.GetValues(options), "tga");
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Convert format output into JSON-compatible debug data.
|
|
89
|
+
*
|
|
90
|
+
* @param {any} value Format output.
|
|
91
|
+
* @returns {any} JSON-compatible value.
|
|
92
|
+
*/
|
|
93
|
+
ToJSON(value) {
|
|
94
|
+
return toJsonValue(value);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* One-shot TGA read.
|
|
99
|
+
*
|
|
100
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input TGA bytes.
|
|
101
|
+
* @param {object} [options] Read options.
|
|
102
|
+
* @returns {object} GPU-free raw/debug/RGBA payload for the selected emit target.
|
|
103
|
+
*/
|
|
104
|
+
static read(input, options = {}) {
|
|
105
|
+
return readWithValues(input, normalizeValues(DEFAULT_VALUES, {
|
|
106
|
+
inputType: "tga",
|
|
107
|
+
...options
|
|
108
|
+
}, FORMAT_NAME), "tga");
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* One-shot asynchronous TGA read.
|
|
113
|
+
*
|
|
114
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input TGA bytes.
|
|
115
|
+
* @param {object} [options] Read options.
|
|
116
|
+
* @returns {Promise<object>} GPU-free raw/debug/RGBA payload for the selected emit target.
|
|
117
|
+
*/
|
|
118
|
+
static async readAsync(input, options = {}) {
|
|
119
|
+
return CjsTgaFormat.read(input, options);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* One-shot TGA inspection.
|
|
124
|
+
*
|
|
125
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input TGA bytes.
|
|
126
|
+
* @param {object} [options] Inspect options.
|
|
127
|
+
* @returns {object} TGA header metadata.
|
|
128
|
+
*/
|
|
129
|
+
static inspect(input, options = {}) {
|
|
130
|
+
return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, {
|
|
131
|
+
inputType: "tga",
|
|
132
|
+
...options
|
|
133
|
+
}, FORMAT_NAME), "tga");
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* One-shot TGA support probe.
|
|
138
|
+
*
|
|
139
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input TGA bytes.
|
|
140
|
+
* @param {object} [options] Probe options.
|
|
141
|
+
* @returns {object} Support/probe report.
|
|
142
|
+
*/
|
|
143
|
+
static isSupported(input, options = {}) {
|
|
144
|
+
return isSupportedWithValues(input, normalizeValues(DEFAULT_VALUES, {
|
|
145
|
+
inputType: "tga",
|
|
146
|
+
...options
|
|
147
|
+
}, FORMAT_NAME), "tga");
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Convert format output into JSON-compatible debug data.
|
|
152
|
+
*
|
|
153
|
+
* @param {any} value Format output.
|
|
154
|
+
* @returns {any} JSON-compatible value.
|
|
155
|
+
*/
|
|
156
|
+
static toJSON(value) {
|
|
157
|
+
return toJsonValue(value);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Test whether bytes look like a TGA file.
|
|
162
|
+
*
|
|
163
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input Candidate TGA bytes.
|
|
164
|
+
* @returns {boolean} True when the TGA header looks valid.
|
|
165
|
+
*/
|
|
166
|
+
static isTGA(input) {
|
|
167
|
+
try {
|
|
168
|
+
return isTGA(toBytes(input));
|
|
169
|
+
} catch {
|
|
170
|
+
return false;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Emit targets for this format (canonical frozen enum).
|
|
176
|
+
*/
|
|
177
|
+
static Output = Object.freeze({
|
|
178
|
+
IMAGE: OUTPUT_IMAGE,
|
|
179
|
+
RGBA: OUTPUT_RGBA,
|
|
180
|
+
RAW: OUTPUT_RAW,
|
|
181
|
+
JSON: OUTPUT_JSON
|
|
182
|
+
});
|
|
183
|
+
static OUTPUT_TGA_JSON = "tgaJson";
|
|
184
|
+
static type = Object.freeze(["image"]);
|
|
185
|
+
static mediaTypes = Object.freeze(["image"]);
|
|
186
|
+
static inputTypes = Object.freeze(["tga"]);
|
|
187
|
+
static outputTypes = Object.freeze([OUTPUT_IMAGE, OUTPUT_RGBA]);
|
|
188
|
+
static debugOutputTypes = Object.freeze(["tgaJson", OUTPUT_RAW]);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
export { CjsTgaFormat };
|
|
192
|
+
//# sourceMappingURL=CjsTgaFormat.js.map
|