@loaders.gl/i3s 4.0.0-alpha.4 → 4.0.0-alpha.5
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/dist/bundle.d.ts +2 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/dist.min.js +10374 -0
- package/dist/i3s-attribute-loader.d.ts +14 -0
- package/dist/i3s-attribute-loader.d.ts.map +1 -0
- package/dist/i3s-attribute-loader.js +1 -1
- package/dist/i3s-building-scene-layer-loader.d.ts +6 -0
- package/dist/i3s-building-scene-layer-loader.d.ts.map +1 -0
- package/dist/i3s-building-scene-layer-loader.js +1 -1
- package/dist/i3s-content-loader.d.ts +6 -0
- package/dist/i3s-content-loader.d.ts.map +1 -0
- package/dist/i3s-content-loader.js +1 -1
- package/dist/i3s-content-worker.js +391 -270
- package/dist/i3s-loader.d.ts +6 -0
- package/dist/i3s-loader.d.ts.map +1 -0
- package/dist/i3s-loader.js +1 -1
- package/dist/i3s-node-page-loader.d.ts +6 -0
- package/dist/i3s-node-page-loader.d.ts.map +1 -0
- package/dist/i3s-node-page-loader.js +1 -1
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/helpers/i3s-nodepages-tiles.d.ts +73 -0
- package/dist/lib/helpers/i3s-nodepages-tiles.d.ts.map +1 -0
- package/dist/lib/helpers/i3s-nodepages-tiles.js +33 -23
- package/dist/lib/helpers/i3s-nodepages-tiles.js.map +1 -1
- package/dist/lib/parsers/constants.d.ts +40 -0
- package/dist/lib/parsers/constants.d.ts.map +1 -0
- package/dist/lib/parsers/constants.js +54 -38
- package/dist/lib/parsers/constants.js.map +1 -1
- package/dist/lib/parsers/parse-i3s-attribute.d.ts +10 -0
- package/dist/lib/parsers/parse-i3s-attribute.d.ts.map +1 -0
- package/dist/lib/parsers/parse-i3s-building-scene-layer.d.ts +9 -0
- package/dist/lib/parsers/parse-i3s-building-scene-layer.d.ts.map +1 -0
- package/dist/lib/parsers/parse-i3s-building-scene-layer.js +2 -0
- package/dist/lib/parsers/parse-i3s-building-scene-layer.js.map +1 -1
- package/dist/lib/parsers/parse-i3s-tile-content.d.ts +4 -0
- package/dist/lib/parsers/parse-i3s-tile-content.d.ts.map +1 -0
- package/dist/lib/parsers/parse-i3s-tile-content.js +76 -79
- package/dist/lib/parsers/parse-i3s-tile-content.js.map +1 -1
- package/dist/lib/parsers/parse-i3s.d.ts +6 -0
- package/dist/lib/parsers/parse-i3s.d.ts.map +1 -0
- package/dist/lib/parsers/parse-i3s.js +40 -25
- package/dist/lib/parsers/parse-i3s.js.map +1 -1
- package/dist/lib/utils/convert-i3s-obb-to-mbs.d.ts +2 -0
- package/dist/lib/utils/convert-i3s-obb-to-mbs.d.ts.map +1 -0
- package/dist/lib/utils/url-utils.d.ts +22 -0
- package/dist/lib/utils/url-utils.d.ts.map +1 -0
- package/dist/lib/utils/url-utils.js +2 -3
- package/dist/lib/utils/url-utils.js.map +1 -1
- package/dist/types.d.ts +643 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +20 -1
- package/dist/types.js.map +1 -1
- package/dist/workers/i3s-content-worker.d.ts +2 -0
- package/dist/workers/i3s-content-worker.d.ts.map +1 -0
- package/package.json +12 -12
- package/src/index.ts +3 -3
- package/src/lib/helpers/i3s-nodepages-tiles.ts +71 -55
- package/src/lib/parsers/constants.ts +67 -54
- package/src/lib/parsers/parse-i3s-building-scene-layer.ts +2 -1
- package/src/lib/parsers/parse-i3s-tile-content.ts +150 -146
- package/src/lib/parsers/parse-i3s.ts +48 -37
- package/src/lib/utils/url-utils.ts +7 -7
- package/src/types.ts +412 -73
|
@@ -1,11 +1,36 @@
|
|
|
1
1
|
(() => {
|
|
2
|
+
var __create = Object.create;
|
|
2
3
|
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
3
8
|
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
9
|
+
var __commonJS = (cb, mod) => function __require() {
|
|
10
|
+
return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
11
|
+
};
|
|
4
12
|
var __export = (target, all) => {
|
|
5
13
|
__markAsModule(target);
|
|
6
14
|
for (var name in all)
|
|
7
15
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
16
|
};
|
|
17
|
+
var __reExport = (target, module2, desc) => {
|
|
18
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
19
|
+
for (let key of __getOwnPropNames(module2))
|
|
20
|
+
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
21
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
22
|
+
}
|
|
23
|
+
return target;
|
|
24
|
+
};
|
|
25
|
+
var __toModule = (module2) => {
|
|
26
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
// (disabled):../worker-utils/src/lib/node/require-utils.node
|
|
30
|
+
var require_require_utils = __commonJS({
|
|
31
|
+
"(disabled):../worker-utils/src/lib/node/require-utils.node"() {
|
|
32
|
+
}
|
|
33
|
+
});
|
|
9
34
|
|
|
10
35
|
// ../loader-utils/src/lib/env-utils/assert.ts
|
|
11
36
|
function assert(condition, message) {
|
|
@@ -30,9 +55,8 @@
|
|
|
30
55
|
var nodeVersion = matches && parseFloat(matches[1]) || 0;
|
|
31
56
|
|
|
32
57
|
// ../worker-utils/src/lib/env-utils/version.ts
|
|
33
|
-
var
|
|
34
|
-
|
|
35
|
-
if (typeof __VERSION__ === "undefined") {
|
|
58
|
+
var VERSION = true ? "4.0.0-alpha.5" : DEFAULT_VERSION;
|
|
59
|
+
if (false) {
|
|
36
60
|
console.error("loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.");
|
|
37
61
|
}
|
|
38
62
|
|
|
@@ -439,6 +463,9 @@
|
|
|
439
463
|
const workerOptions = options[worker.id] || {};
|
|
440
464
|
const workerFile = `${worker.id}-worker.js`;
|
|
441
465
|
let url = workerOptions.workerUrl;
|
|
466
|
+
if (!url && worker.id === "compression") {
|
|
467
|
+
url = options.workerUrl;
|
|
468
|
+
}
|
|
442
469
|
if (options._workerType === "test") {
|
|
443
470
|
url = `modules/${worker.module}/dist/${workerFile}`;
|
|
444
471
|
}
|
|
@@ -465,6 +492,7 @@
|
|
|
465
492
|
}
|
|
466
493
|
|
|
467
494
|
// ../worker-utils/src/lib/library-utils/library-utils.ts
|
|
495
|
+
var node = __toModule(require_require_utils());
|
|
468
496
|
var LATEST = "beta";
|
|
469
497
|
var VERSION2 = typeof VERSION !== "undefined" ? VERSION : LATEST;
|
|
470
498
|
var loadLibraryPromises = {};
|
|
@@ -501,7 +529,11 @@
|
|
|
501
529
|
return await response2.arrayBuffer();
|
|
502
530
|
}
|
|
503
531
|
if (!isBrowser2) {
|
|
504
|
-
|
|
532
|
+
try {
|
|
533
|
+
return node && node.requireFromFile && await node.requireFromFile(libraryUrl);
|
|
534
|
+
} catch {
|
|
535
|
+
return null;
|
|
536
|
+
}
|
|
505
537
|
}
|
|
506
538
|
if (isWorker) {
|
|
507
539
|
return importScripts(libraryUrl);
|
|
@@ -969,7 +1001,7 @@
|
|
|
969
1001
|
var process_ = globals3.process || {};
|
|
970
1002
|
|
|
971
1003
|
// ../../node_modules/probe.gl/dist/esm/utils/globals.js
|
|
972
|
-
var VERSION3 =
|
|
1004
|
+
var VERSION3 = true ? "4.0.0-alpha.5" : "untranspiled source";
|
|
973
1005
|
var isBrowser4 = isBrowser3();
|
|
974
1006
|
|
|
975
1007
|
// ../../node_modules/probe.gl/dist/esm/utils/local-storage.js
|
|
@@ -1104,7 +1136,7 @@
|
|
|
1104
1136
|
}
|
|
1105
1137
|
|
|
1106
1138
|
// ../../node_modules/probe.gl/dist/esm/utils/hi-res-timestamp.js
|
|
1107
|
-
function
|
|
1139
|
+
function getHiResTimestamp() {
|
|
1108
1140
|
let timestamp;
|
|
1109
1141
|
if (isBrowser4 && window_3.performance) {
|
|
1110
1142
|
timestamp = window_3.performance.now();
|
|
@@ -1151,8 +1183,8 @@
|
|
|
1151
1183
|
}) {
|
|
1152
1184
|
this.id = id;
|
|
1153
1185
|
this.VERSION = VERSION3;
|
|
1154
|
-
this._startTs =
|
|
1155
|
-
this._deltaTs =
|
|
1186
|
+
this._startTs = getHiResTimestamp();
|
|
1187
|
+
this._deltaTs = getHiResTimestamp();
|
|
1156
1188
|
this.LOG_THROTTLE_TIMEOUT = 0;
|
|
1157
1189
|
this._storage = new LocalStorage("__probe-".concat(this.id, "__"), DEFAULT_SETTINGS);
|
|
1158
1190
|
this.userData = {};
|
|
@@ -1173,10 +1205,10 @@
|
|
|
1173
1205
|
return this._storage.config.level;
|
|
1174
1206
|
}
|
|
1175
1207
|
getTotal() {
|
|
1176
|
-
return Number((
|
|
1208
|
+
return Number((getHiResTimestamp() - this._startTs).toPrecision(10));
|
|
1177
1209
|
}
|
|
1178
1210
|
getDelta() {
|
|
1179
|
-
return Number((
|
|
1211
|
+
return Number((getHiResTimestamp() - this._deltaTs).toPrecision(10));
|
|
1180
1212
|
}
|
|
1181
1213
|
set priority(newPriority) {
|
|
1182
1214
|
this.level = newPriority;
|
|
@@ -1331,11 +1363,11 @@
|
|
|
1331
1363
|
assert3(method);
|
|
1332
1364
|
opts.total = this.getTotal();
|
|
1333
1365
|
opts.delta = this.getDelta();
|
|
1334
|
-
this._deltaTs =
|
|
1366
|
+
this._deltaTs = getHiResTimestamp();
|
|
1335
1367
|
const tag = opts.tag || opts.message;
|
|
1336
1368
|
if (opts.once) {
|
|
1337
1369
|
if (!cache[tag]) {
|
|
1338
|
-
cache[tag] =
|
|
1370
|
+
cache[tag] = getHiResTimestamp();
|
|
1339
1371
|
} else {
|
|
1340
1372
|
return noop;
|
|
1341
1373
|
}
|
|
@@ -4272,7 +4304,7 @@
|
|
|
4272
4304
|
};
|
|
4273
4305
|
|
|
4274
4306
|
// ../images/src/lib/utils/version.ts
|
|
4275
|
-
var VERSION4 =
|
|
4307
|
+
var VERSION4 = true ? "4.0.0-alpha.5" : "latest";
|
|
4276
4308
|
|
|
4277
4309
|
// ../images/src/lib/category-api/image-type.ts
|
|
4278
4310
|
var { _parseImageNode } = globalThis;
|
|
@@ -4620,7 +4652,7 @@
|
|
|
4620
4652
|
};
|
|
4621
4653
|
|
|
4622
4654
|
// ../draco/src/lib/utils/version.ts
|
|
4623
|
-
var VERSION5 =
|
|
4655
|
+
var VERSION5 = true ? "4.0.0-alpha.5" : "latest";
|
|
4624
4656
|
|
|
4625
4657
|
// ../draco/src/draco-loader.ts
|
|
4626
4658
|
var DEFAULT_DRACO_OPTIONS = {
|
|
@@ -5604,10 +5636,10 @@
|
|
|
5604
5636
|
}
|
|
5605
5637
|
|
|
5606
5638
|
// ../textures/src/lib/utils/version.ts
|
|
5607
|
-
var VERSION6 =
|
|
5639
|
+
var VERSION6 = true ? "4.0.0-alpha.5" : "beta";
|
|
5608
5640
|
|
|
5609
5641
|
// ../textures/src/lib/parsers/basis-module-loader.ts
|
|
5610
|
-
var VERSION7 =
|
|
5642
|
+
var VERSION7 = true ? "4.0.0-alpha.5" : "beta";
|
|
5611
5643
|
var BASIS_CDN_ENCODER_WASM = `https://unpkg.com/@loaders.gl/textures@${VERSION7}/dist/libs/basis_encoder.wasm`;
|
|
5612
5644
|
var BASIS_CDN_ENCODER_JS = `https://unpkg.com/@loaders.gl/textures@${VERSION7}/dist/libs/basis_encoder.js`;
|
|
5613
5645
|
var loadBasisTranscoderPromise;
|
|
@@ -5675,8 +5707,8 @@
|
|
|
5675
5707
|
});
|
|
5676
5708
|
}
|
|
5677
5709
|
|
|
5678
|
-
// ../textures/src/lib/gl-
|
|
5679
|
-
var
|
|
5710
|
+
// ../textures/src/lib/gl-extensions.ts
|
|
5711
|
+
var GL_EXTENSIONS_CONSTANTS = {
|
|
5680
5712
|
COMPRESSED_RGB_S3TC_DXT1_EXT: 33776,
|
|
5681
5713
|
COMPRESSED_RGBA_S3TC_DXT1_EXT: 33777,
|
|
5682
5714
|
COMPRESSED_RGBA_S3TC_DXT3_EXT: 33778,
|
|
@@ -5737,6 +5769,43 @@
|
|
|
5737
5769
|
COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: 35919
|
|
5738
5770
|
};
|
|
5739
5771
|
|
|
5772
|
+
// ../textures/src/lib/utils/texture-formats.ts
|
|
5773
|
+
var BROWSER_PREFIXES = ["", "WEBKIT_", "MOZ_"];
|
|
5774
|
+
var WEBGL_EXTENSIONS = {
|
|
5775
|
+
WEBGL_compressed_texture_s3tc: "dxt",
|
|
5776
|
+
WEBGL_compressed_texture_s3tc_srgb: "dxt-srgb",
|
|
5777
|
+
WEBGL_compressed_texture_etc1: "etc1",
|
|
5778
|
+
WEBGL_compressed_texture_etc: "etc2",
|
|
5779
|
+
WEBGL_compressed_texture_pvrtc: "pvrtc",
|
|
5780
|
+
WEBGL_compressed_texture_atc: "atc",
|
|
5781
|
+
WEBGL_compressed_texture_astc: "astc",
|
|
5782
|
+
EXT_texture_compression_rgtc: "rgtc"
|
|
5783
|
+
};
|
|
5784
|
+
var formats = null;
|
|
5785
|
+
function getSupportedGPUTextureFormats(gl) {
|
|
5786
|
+
if (!formats) {
|
|
5787
|
+
gl = gl || getWebGLContext() || void 0;
|
|
5788
|
+
formats = new Set();
|
|
5789
|
+
for (const prefix of BROWSER_PREFIXES) {
|
|
5790
|
+
for (const extension in WEBGL_EXTENSIONS) {
|
|
5791
|
+
if (gl && gl.getExtension(`${prefix}${extension}`)) {
|
|
5792
|
+
const gpuTextureFormat = WEBGL_EXTENSIONS[extension];
|
|
5793
|
+
formats.add(gpuTextureFormat);
|
|
5794
|
+
}
|
|
5795
|
+
}
|
|
5796
|
+
}
|
|
5797
|
+
}
|
|
5798
|
+
return formats;
|
|
5799
|
+
}
|
|
5800
|
+
function getWebGLContext() {
|
|
5801
|
+
try {
|
|
5802
|
+
const canvas = document.createElement("canvas");
|
|
5803
|
+
return canvas.getContext("webgl");
|
|
5804
|
+
} catch (error) {
|
|
5805
|
+
return null;
|
|
5806
|
+
}
|
|
5807
|
+
}
|
|
5808
|
+
|
|
5740
5809
|
// ../../node_modules/ktx-parse/dist/ktx-parse.modern.js
|
|
5741
5810
|
var t = new Uint8Array([0]);
|
|
5742
5811
|
var e = [171, 75, 84, 88, 32, 50, 48, 187, 13, 10, 26, 10];
|
|
@@ -5871,72 +5940,72 @@
|
|
|
5871
5940
|
|
|
5872
5941
|
// ../textures/src/lib/utils/ktx-format-helper.ts
|
|
5873
5942
|
var VULKAN_TO_WEBGL_FORMAT_MAP = {
|
|
5874
|
-
131:
|
|
5875
|
-
132:
|
|
5876
|
-
133:
|
|
5877
|
-
134:
|
|
5878
|
-
135:
|
|
5879
|
-
136:
|
|
5880
|
-
137:
|
|
5881
|
-
138:
|
|
5882
|
-
139:
|
|
5883
|
-
140:
|
|
5884
|
-
141:
|
|
5885
|
-
142:
|
|
5886
|
-
147:
|
|
5887
|
-
148:
|
|
5888
|
-
149:
|
|
5889
|
-
150:
|
|
5890
|
-
151:
|
|
5891
|
-
152:
|
|
5892
|
-
153:
|
|
5893
|
-
154:
|
|
5894
|
-
155:
|
|
5895
|
-
156:
|
|
5896
|
-
157:
|
|
5897
|
-
158:
|
|
5898
|
-
159:
|
|
5899
|
-
160:
|
|
5900
|
-
161:
|
|
5901
|
-
162:
|
|
5902
|
-
163:
|
|
5903
|
-
164:
|
|
5904
|
-
165:
|
|
5905
|
-
166:
|
|
5906
|
-
167:
|
|
5907
|
-
168:
|
|
5908
|
-
169:
|
|
5909
|
-
170:
|
|
5910
|
-
171:
|
|
5911
|
-
172:
|
|
5912
|
-
173:
|
|
5913
|
-
174:
|
|
5914
|
-
175:
|
|
5915
|
-
176:
|
|
5916
|
-
177:
|
|
5917
|
-
178:
|
|
5918
|
-
179:
|
|
5919
|
-
180:
|
|
5920
|
-
181:
|
|
5921
|
-
182:
|
|
5922
|
-
183:
|
|
5923
|
-
184:
|
|
5924
|
-
1000054e3:
|
|
5925
|
-
1000054001:
|
|
5926
|
-
1000066e3:
|
|
5927
|
-
1000066001:
|
|
5928
|
-
1000066002:
|
|
5929
|
-
1000066003:
|
|
5930
|
-
1000066004:
|
|
5931
|
-
1000066005:
|
|
5932
|
-
1000066006:
|
|
5933
|
-
1000066007:
|
|
5934
|
-
1000066008:
|
|
5935
|
-
1000066009:
|
|
5936
|
-
1000066010:
|
|
5937
|
-
1000066011:
|
|
5938
|
-
1000066012:
|
|
5939
|
-
1000066013:
|
|
5943
|
+
131: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT,
|
|
5944
|
+
132: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB_S3TC_DXT1_EXT,
|
|
5945
|
+
133: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT1_EXT,
|
|
5946
|
+
134: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,
|
|
5947
|
+
135: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT,
|
|
5948
|
+
136: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,
|
|
5949
|
+
137: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT,
|
|
5950
|
+
138: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,
|
|
5951
|
+
139: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RED_RGTC1_EXT,
|
|
5952
|
+
140: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SIGNED_RED_RGTC1_EXT,
|
|
5953
|
+
141: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RED_GREEN_RGTC2_EXT,
|
|
5954
|
+
142: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT,
|
|
5955
|
+
147: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_ETC2,
|
|
5956
|
+
148: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ETC2,
|
|
5957
|
+
149: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,
|
|
5958
|
+
150: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,
|
|
5959
|
+
151: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA8_ETC2_EAC,
|
|
5960
|
+
152: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,
|
|
5961
|
+
153: GL_EXTENSIONS_CONSTANTS.COMPRESSED_R11_EAC,
|
|
5962
|
+
154: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SIGNED_R11_EAC,
|
|
5963
|
+
155: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RG11_EAC,
|
|
5964
|
+
156: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SIGNED_RG11_EAC,
|
|
5965
|
+
157: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4x4_KHR,
|
|
5966
|
+
158: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,
|
|
5967
|
+
159: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x4_KHR,
|
|
5968
|
+
160: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR,
|
|
5969
|
+
161: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x5_KHR,
|
|
5970
|
+
162: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,
|
|
5971
|
+
163: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x5_KHR,
|
|
5972
|
+
164: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,
|
|
5973
|
+
165: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x6_KHR,
|
|
5974
|
+
166: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,
|
|
5975
|
+
167: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x5_KHR,
|
|
5976
|
+
168: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,
|
|
5977
|
+
169: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x6_KHR,
|
|
5978
|
+
170: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,
|
|
5979
|
+
171: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x8_KHR,
|
|
5980
|
+
172: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,
|
|
5981
|
+
173: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x5_KHR,
|
|
5982
|
+
174: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,
|
|
5983
|
+
175: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x6_KHR,
|
|
5984
|
+
176: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,
|
|
5985
|
+
177: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x8_KHR,
|
|
5986
|
+
178: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,
|
|
5987
|
+
179: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x10_KHR,
|
|
5988
|
+
180: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,
|
|
5989
|
+
181: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x10_KHR,
|
|
5990
|
+
182: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,
|
|
5991
|
+
183: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x12_KHR,
|
|
5992
|
+
184: GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR,
|
|
5993
|
+
1000054e3: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,
|
|
5994
|
+
1000054001: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,
|
|
5995
|
+
1000066e3: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4x4_KHR,
|
|
5996
|
+
1000066001: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x4_KHR,
|
|
5997
|
+
1000066002: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5x5_KHR,
|
|
5998
|
+
1000066003: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x5_KHR,
|
|
5999
|
+
1000066004: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6x6_KHR,
|
|
6000
|
+
1000066005: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x5_KHR,
|
|
6001
|
+
1000066006: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x6_KHR,
|
|
6002
|
+
1000066007: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8x8_KHR,
|
|
6003
|
+
1000066008: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x5_KHR,
|
|
6004
|
+
1000066009: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x6_KHR,
|
|
6005
|
+
1000066010: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x8_KHR,
|
|
6006
|
+
1000066011: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10x10_KHR,
|
|
6007
|
+
1000066012: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x10_KHR,
|
|
6008
|
+
1000066013: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12x12_KHR
|
|
5940
6009
|
};
|
|
5941
6010
|
function mapVkFormatToWebGL(vkFormat) {
|
|
5942
6011
|
return VULKAN_TO_WEBGL_FORMAT_MAP[vkFormat];
|
|
@@ -5978,19 +6047,43 @@
|
|
|
5978
6047
|
});
|
|
5979
6048
|
}
|
|
5980
6049
|
|
|
5981
|
-
// ../textures/src/lib/parsers/parse-basis.
|
|
6050
|
+
// ../textures/src/lib/parsers/parse-basis.ts
|
|
5982
6051
|
var OutputFormat = {
|
|
5983
|
-
etc1: {
|
|
6052
|
+
etc1: {
|
|
6053
|
+
basisFormat: 0,
|
|
6054
|
+
compressed: true,
|
|
6055
|
+
format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ETC1_WEBGL
|
|
6056
|
+
},
|
|
5984
6057
|
etc2: { basisFormat: 1, compressed: true },
|
|
5985
|
-
bc1: {
|
|
5986
|
-
|
|
6058
|
+
bc1: {
|
|
6059
|
+
basisFormat: 2,
|
|
6060
|
+
compressed: true,
|
|
6061
|
+
format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT
|
|
6062
|
+
},
|
|
6063
|
+
bc3: {
|
|
6064
|
+
basisFormat: 3,
|
|
6065
|
+
compressed: true,
|
|
6066
|
+
format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT
|
|
6067
|
+
},
|
|
5987
6068
|
bc4: { basisFormat: 4, compressed: true },
|
|
5988
6069
|
bc5: { basisFormat: 5, compressed: true },
|
|
5989
6070
|
"bc7-m6-opaque-only": { basisFormat: 6, compressed: true },
|
|
5990
6071
|
"bc7-m5": { basisFormat: 7, compressed: true },
|
|
5991
|
-
"pvrtc1-4-rgb": {
|
|
5992
|
-
|
|
5993
|
-
|
|
6072
|
+
"pvrtc1-4-rgb": {
|
|
6073
|
+
basisFormat: 8,
|
|
6074
|
+
compressed: true,
|
|
6075
|
+
format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG
|
|
6076
|
+
},
|
|
6077
|
+
"pvrtc1-4-rgba": {
|
|
6078
|
+
basisFormat: 9,
|
|
6079
|
+
compressed: true,
|
|
6080
|
+
format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
|
|
6081
|
+
},
|
|
6082
|
+
"astc-4x4": {
|
|
6083
|
+
basisFormat: 10,
|
|
6084
|
+
compressed: true,
|
|
6085
|
+
format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4X4_KHR
|
|
6086
|
+
},
|
|
5994
6087
|
"atc-rgb": { basisFormat: 11, compressed: true },
|
|
5995
6088
|
"atc-rgba-interpolated-alpha": { basisFormat: 12, compressed: true },
|
|
5996
6089
|
rgba32: { basisFormat: 13, compressed: false },
|
|
@@ -6027,7 +6120,7 @@
|
|
|
6027
6120
|
const basisFile = new BasisFile(new Uint8Array(data));
|
|
6028
6121
|
try {
|
|
6029
6122
|
if (!basisFile.startTranscoding()) {
|
|
6030
|
-
|
|
6123
|
+
throw new Error("Failed to start basis transcoding");
|
|
6031
6124
|
}
|
|
6032
6125
|
const imageCount = basisFile.getNumImages();
|
|
6033
6126
|
const images = [];
|
|
@@ -6053,22 +6146,22 @@
|
|
|
6053
6146
|
const decodedSize = basisFile.getImageTranscodedSizeInBytes(imageIndex, levelIndex, basisFormat);
|
|
6054
6147
|
const decodedData = new Uint8Array(decodedSize);
|
|
6055
6148
|
if (!basisFile.transcodeImage(decodedData, imageIndex, levelIndex, basisFormat, 0, 0)) {
|
|
6056
|
-
|
|
6149
|
+
throw new Error("failed to start Basis transcoding");
|
|
6057
6150
|
}
|
|
6058
6151
|
return {
|
|
6059
6152
|
width,
|
|
6060
6153
|
height,
|
|
6061
6154
|
data: decodedData,
|
|
6062
6155
|
compressed,
|
|
6063
|
-
|
|
6064
|
-
|
|
6156
|
+
format,
|
|
6157
|
+
hasAlpha
|
|
6065
6158
|
};
|
|
6066
6159
|
}
|
|
6067
6160
|
function parseKTX2File(KTX2File, data, options) {
|
|
6068
6161
|
const ktx2File = new KTX2File(new Uint8Array(data));
|
|
6069
6162
|
try {
|
|
6070
6163
|
if (!ktx2File.startTranscoding()) {
|
|
6071
|
-
|
|
6164
|
+
throw new Error("failed to start KTX2 transcoding");
|
|
6072
6165
|
}
|
|
6073
6166
|
const levelsCount = ktx2File.getLevels();
|
|
6074
6167
|
const levels = [];
|
|
@@ -6076,7 +6169,7 @@
|
|
|
6076
6169
|
levels.push(transcodeKTX2Image(ktx2File, levelIndex, options));
|
|
6077
6170
|
break;
|
|
6078
6171
|
}
|
|
6079
|
-
return levels;
|
|
6172
|
+
return [levels];
|
|
6080
6173
|
} finally {
|
|
6081
6174
|
ktx2File.close();
|
|
6082
6175
|
ktx2File.delete();
|
|
@@ -6088,14 +6181,14 @@
|
|
|
6088
6181
|
const decodedSize = ktx2File.getImageTranscodedSizeInBytes(levelIndex, 0, 0, basisFormat);
|
|
6089
6182
|
const decodedData = new Uint8Array(decodedSize);
|
|
6090
6183
|
if (!ktx2File.transcodeImage(decodedData, levelIndex, 0, 0, basisFormat, 0, -1, -1)) {
|
|
6091
|
-
|
|
6184
|
+
throw new Error("Failed to transcode KTX2 image");
|
|
6092
6185
|
}
|
|
6093
6186
|
return {
|
|
6094
6187
|
width,
|
|
6095
6188
|
height,
|
|
6096
6189
|
data: decodedData,
|
|
6097
6190
|
compressed,
|
|
6098
|
-
alphaFlag,
|
|
6191
|
+
hasAlpha: alphaFlag,
|
|
6099
6192
|
format
|
|
6100
6193
|
};
|
|
6101
6194
|
}
|
|
@@ -6173,12 +6266,12 @@
|
|
|
6173
6266
|
DDPF_FOURCC: 4
|
|
6174
6267
|
};
|
|
6175
6268
|
var DDS_PIXEL_FORMATS = {
|
|
6176
|
-
DXT1:
|
|
6177
|
-
DXT3:
|
|
6178
|
-
DXT5:
|
|
6179
|
-
"ATC ":
|
|
6180
|
-
ATCA:
|
|
6181
|
-
ATCI:
|
|
6269
|
+
DXT1: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT,
|
|
6270
|
+
DXT3: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT,
|
|
6271
|
+
DXT5: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT,
|
|
6272
|
+
"ATC ": GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ATC_WEBGL,
|
|
6273
|
+
ATCA: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL,
|
|
6274
|
+
ATCI: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL
|
|
6182
6275
|
};
|
|
6183
6276
|
var getATCLevelSize = getDxt1LevelSize;
|
|
6184
6277
|
var getATCALevelSize = getDxtXLevelSize;
|
|
@@ -6245,33 +6338,75 @@
|
|
|
6245
6338
|
METADATA_SIZE_INDEX: 12
|
|
6246
6339
|
};
|
|
6247
6340
|
var PVR_PIXEL_FORMATS = {
|
|
6248
|
-
0: [
|
|
6249
|
-
1: [
|
|
6250
|
-
2: [
|
|
6251
|
-
3: [
|
|
6252
|
-
6: [
|
|
6253
|
-
7: [
|
|
6254
|
-
9: [
|
|
6255
|
-
11: [
|
|
6256
|
-
22: [
|
|
6257
|
-
23: [
|
|
6258
|
-
24: [
|
|
6259
|
-
25: [
|
|
6260
|
-
26: [
|
|
6261
|
-
27: [
|
|
6262
|
-
|
|
6263
|
-
|
|
6264
|
-
|
|
6265
|
-
|
|
6266
|
-
|
|
6267
|
-
|
|
6268
|
-
|
|
6269
|
-
|
|
6270
|
-
|
|
6271
|
-
|
|
6272
|
-
|
|
6273
|
-
|
|
6274
|
-
|
|
6341
|
+
0: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_2BPPV1_IMG],
|
|
6342
|
+
1: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG],
|
|
6343
|
+
2: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG],
|
|
6344
|
+
3: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG],
|
|
6345
|
+
6: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ETC1_WEBGL],
|
|
6346
|
+
7: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT],
|
|
6347
|
+
9: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT],
|
|
6348
|
+
11: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT],
|
|
6349
|
+
22: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_ETC2],
|
|
6350
|
+
23: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA8_ETC2_EAC],
|
|
6351
|
+
24: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2],
|
|
6352
|
+
25: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_R11_EAC],
|
|
6353
|
+
26: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RG11_EAC],
|
|
6354
|
+
27: [
|
|
6355
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4X4_KHR,
|
|
6356
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR
|
|
6357
|
+
],
|
|
6358
|
+
28: [
|
|
6359
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5X4_KHR,
|
|
6360
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR
|
|
6361
|
+
],
|
|
6362
|
+
29: [
|
|
6363
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5X5_KHR,
|
|
6364
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR
|
|
6365
|
+
],
|
|
6366
|
+
30: [
|
|
6367
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6X5_KHR,
|
|
6368
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR
|
|
6369
|
+
],
|
|
6370
|
+
31: [
|
|
6371
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6X6_KHR,
|
|
6372
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR
|
|
6373
|
+
],
|
|
6374
|
+
32: [
|
|
6375
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8X5_KHR,
|
|
6376
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR
|
|
6377
|
+
],
|
|
6378
|
+
33: [
|
|
6379
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8X6_KHR,
|
|
6380
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR
|
|
6381
|
+
],
|
|
6382
|
+
34: [
|
|
6383
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8X8_KHR,
|
|
6384
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR
|
|
6385
|
+
],
|
|
6386
|
+
35: [
|
|
6387
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X5_KHR,
|
|
6388
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR
|
|
6389
|
+
],
|
|
6390
|
+
36: [
|
|
6391
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X6_KHR,
|
|
6392
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR
|
|
6393
|
+
],
|
|
6394
|
+
37: [
|
|
6395
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X8_KHR,
|
|
6396
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR
|
|
6397
|
+
],
|
|
6398
|
+
38: [
|
|
6399
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X10_KHR,
|
|
6400
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR
|
|
6401
|
+
],
|
|
6402
|
+
39: [
|
|
6403
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12X10_KHR,
|
|
6404
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR
|
|
6405
|
+
],
|
|
6406
|
+
40: [
|
|
6407
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12X12_KHR,
|
|
6408
|
+
GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR
|
|
6409
|
+
]
|
|
6275
6410
|
};
|
|
6276
6411
|
var PVR_SIZE_FUNCTIONS = {
|
|
6277
6412
|
0: pvrtc2bppSize,
|
|
@@ -6439,48 +6574,30 @@
|
|
|
6439
6574
|
containerFormat: "ktx2",
|
|
6440
6575
|
module: "encoder"
|
|
6441
6576
|
};
|
|
6442
|
-
return await parseBasis(arrayBuffer, options);
|
|
6577
|
+
return (await parseBasis(arrayBuffer, options))[0];
|
|
6443
6578
|
}
|
|
6444
6579
|
return parseCompressedTexture(arrayBuffer);
|
|
6445
6580
|
}
|
|
6446
6581
|
};
|
|
6447
6582
|
|
|
6448
|
-
//
|
|
6449
|
-
var
|
|
6450
|
-
|
|
6451
|
-
|
|
6452
|
-
|
|
6453
|
-
|
|
6454
|
-
|
|
6455
|
-
|
|
6456
|
-
|
|
6457
|
-
|
|
6458
|
-
|
|
6459
|
-
|
|
6460
|
-
|
|
6461
|
-
|
|
6462
|
-
|
|
6463
|
-
|
|
6464
|
-
|
|
6465
|
-
|
|
6466
|
-
for (const extension in WEBGL_EXTENSIONS) {
|
|
6467
|
-
if (gl && gl.getExtension(`${prefix}${extension}`)) {
|
|
6468
|
-
const gpuTextureFormat = WEBGL_EXTENSIONS[extension];
|
|
6469
|
-
formats.add(gpuTextureFormat);
|
|
6470
|
-
}
|
|
6471
|
-
}
|
|
6472
|
-
}
|
|
6473
|
-
}
|
|
6474
|
-
return formats;
|
|
6475
|
-
}
|
|
6476
|
-
function getWebGLContext() {
|
|
6477
|
-
try {
|
|
6478
|
-
const canvas = document.createElement("canvas");
|
|
6479
|
-
return canvas.getContext("webgl");
|
|
6480
|
-
} catch (error) {
|
|
6481
|
-
return null;
|
|
6482
|
-
}
|
|
6483
|
-
}
|
|
6583
|
+
// src/types.ts
|
|
6584
|
+
var DATA_TYPE;
|
|
6585
|
+
(function(DATA_TYPE2) {
|
|
6586
|
+
DATA_TYPE2["UInt8"] = "UInt8";
|
|
6587
|
+
DATA_TYPE2["UInt16"] = "UInt16";
|
|
6588
|
+
DATA_TYPE2["UInt32"] = "UInt32";
|
|
6589
|
+
DATA_TYPE2["UInt64"] = "UInt64";
|
|
6590
|
+
DATA_TYPE2["Int16"] = "Int16";
|
|
6591
|
+
DATA_TYPE2["Int32"] = "Int32";
|
|
6592
|
+
DATA_TYPE2["Int64"] = "Int64";
|
|
6593
|
+
DATA_TYPE2["Float32"] = "Float32";
|
|
6594
|
+
DATA_TYPE2["Float64"] = "Float64";
|
|
6595
|
+
})(DATA_TYPE || (DATA_TYPE = {}));
|
|
6596
|
+
var HeaderAttributeProperty;
|
|
6597
|
+
(function(HeaderAttributeProperty2) {
|
|
6598
|
+
HeaderAttributeProperty2["vertexCount"] = "vertexCount";
|
|
6599
|
+
HeaderAttributeProperty2["featureCount"] = "featureCount";
|
|
6600
|
+
})(HeaderAttributeProperty || (HeaderAttributeProperty = {}));
|
|
6484
6601
|
|
|
6485
6602
|
// src/lib/utils/url-utils.ts
|
|
6486
6603
|
function getUrlWithToken(url, token = null) {
|
|
@@ -7106,13 +7223,22 @@
|
|
|
7106
7223
|
};
|
|
7107
7224
|
|
|
7108
7225
|
// src/lib/parsers/constants.ts
|
|
7109
|
-
|
|
7110
|
-
|
|
7111
|
-
|
|
7112
|
-
|
|
7113
|
-
|
|
7114
|
-
|
|
7115
|
-
|
|
7226
|
+
function getConstructorForDataFormat(dataType) {
|
|
7227
|
+
switch (dataType) {
|
|
7228
|
+
case DATA_TYPE.UInt8:
|
|
7229
|
+
return Uint8Array;
|
|
7230
|
+
case DATA_TYPE.UInt16:
|
|
7231
|
+
return Uint16Array;
|
|
7232
|
+
case DATA_TYPE.UInt32:
|
|
7233
|
+
return Uint32Array;
|
|
7234
|
+
case DATA_TYPE.Float32:
|
|
7235
|
+
return Float32Array;
|
|
7236
|
+
case DATA_TYPE.UInt64:
|
|
7237
|
+
return Float64Array;
|
|
7238
|
+
default:
|
|
7239
|
+
throw new Error(`parse i3s tile content: unknown type of data: ${dataType}`);
|
|
7240
|
+
}
|
|
7241
|
+
}
|
|
7116
7242
|
var GL_TYPE_MAP = {
|
|
7117
7243
|
UInt8: esm_default2.UNSIGNED_BYTE,
|
|
7118
7244
|
UInt16: esm_default2.UNSIGNED_INT,
|
|
@@ -7120,64 +7246,72 @@
|
|
|
7120
7246
|
UInt32: esm_default2.UNSIGNED_INT,
|
|
7121
7247
|
UInt64: esm_default2.DOUBLE
|
|
7122
7248
|
};
|
|
7123
|
-
|
|
7124
|
-
|
|
7125
|
-
|
|
7126
|
-
|
|
7127
|
-
|
|
7128
|
-
|
|
7129
|
-
|
|
7130
|
-
|
|
7131
|
-
|
|
7132
|
-
|
|
7133
|
-
|
|
7134
|
-
|
|
7135
|
-
|
|
7136
|
-
|
|
7137
|
-
|
|
7138
|
-
|
|
7139
|
-
|
|
7140
|
-
|
|
7141
|
-
|
|
7142
|
-
|
|
7143
|
-
|
|
7144
|
-
|
|
7145
|
-
|
|
7146
|
-
|
|
7147
|
-
|
|
7148
|
-
|
|
7149
|
-
|
|
7150
|
-
METER_OFFSETS: 2,
|
|
7151
|
-
LNGLAT_OFFSETS: 3,
|
|
7152
|
-
CARTESIAN: 0
|
|
7153
|
-
};
|
|
7249
|
+
function sizeOf(dataType) {
|
|
7250
|
+
switch (dataType) {
|
|
7251
|
+
case DATA_TYPE.UInt8:
|
|
7252
|
+
return 1;
|
|
7253
|
+
case DATA_TYPE.UInt16:
|
|
7254
|
+
case DATA_TYPE.Int16:
|
|
7255
|
+
return 2;
|
|
7256
|
+
case DATA_TYPE.UInt32:
|
|
7257
|
+
case DATA_TYPE.Int32:
|
|
7258
|
+
case DATA_TYPE.Float32:
|
|
7259
|
+
return 4;
|
|
7260
|
+
case DATA_TYPE.UInt64:
|
|
7261
|
+
case DATA_TYPE.Int64:
|
|
7262
|
+
case DATA_TYPE.Float64:
|
|
7263
|
+
return 8;
|
|
7264
|
+
default:
|
|
7265
|
+
throw new Error(`parse i3s tile content: unknown size of data: ${dataType}`);
|
|
7266
|
+
}
|
|
7267
|
+
}
|
|
7268
|
+
var COORDINATE_SYSTEM;
|
|
7269
|
+
(function(COORDINATE_SYSTEM2) {
|
|
7270
|
+
COORDINATE_SYSTEM2[COORDINATE_SYSTEM2["DEFAULT"] = -1] = "DEFAULT";
|
|
7271
|
+
COORDINATE_SYSTEM2[COORDINATE_SYSTEM2["LNGLAT"] = 1] = "LNGLAT";
|
|
7272
|
+
COORDINATE_SYSTEM2[COORDINATE_SYSTEM2["METER_OFFSETS"] = 2] = "METER_OFFSETS";
|
|
7273
|
+
COORDINATE_SYSTEM2[COORDINATE_SYSTEM2["LNGLAT_OFFSETS"] = 3] = "LNGLAT_OFFSETS";
|
|
7274
|
+
COORDINATE_SYSTEM2[COORDINATE_SYSTEM2["CARTESIAN"] = 0] = "CARTESIAN";
|
|
7275
|
+
})(COORDINATE_SYSTEM || (COORDINATE_SYSTEM = {}));
|
|
7154
7276
|
|
|
7155
7277
|
// src/lib/parsers/parse-i3s-tile-content.ts
|
|
7156
7278
|
var scratchVector5 = new Vector3([0, 0, 0]);
|
|
7157
|
-
|
|
7158
|
-
|
|
7159
|
-
|
|
7160
|
-
|
|
7161
|
-
|
|
7162
|
-
|
|
7163
|
-
|
|
7279
|
+
function getLoaderForTextureFormat(textureFormat) {
|
|
7280
|
+
switch (textureFormat) {
|
|
7281
|
+
case "ktx-etc2":
|
|
7282
|
+
case "dds":
|
|
7283
|
+
return CompressedTextureLoader;
|
|
7284
|
+
case "ktx2":
|
|
7285
|
+
return BasisLoader;
|
|
7286
|
+
case "jpg":
|
|
7287
|
+
case "png":
|
|
7288
|
+
default:
|
|
7289
|
+
return ImageLoader;
|
|
7290
|
+
}
|
|
7291
|
+
}
|
|
7164
7292
|
var I3S_ATTRIBUTE_TYPE = "i3s-attribute-type";
|
|
7165
7293
|
async function parseI3STileContent(arrayBuffer, tile, tileset, options, context) {
|
|
7166
7294
|
tile.content = tile.content || {};
|
|
7167
7295
|
tile.content.featureIds = tile.content.featureIds || null;
|
|
7168
|
-
tile.content.featureData = constructFeatureDataStruct(tile, tileset);
|
|
7169
7296
|
tile.content.attributes = {};
|
|
7170
7297
|
if (tile.textureUrl) {
|
|
7171
7298
|
const url = getUrlWithToken(tile.textureUrl, options?.i3s?.token);
|
|
7172
|
-
const loader =
|
|
7299
|
+
const loader = getLoaderForTextureFormat(tile.textureFormat);
|
|
7173
7300
|
const response = await fetch(url);
|
|
7174
7301
|
const arrayBuffer2 = await response.arrayBuffer();
|
|
7175
7302
|
if (options?.i3s.decodeTextures) {
|
|
7176
7303
|
if (loader === ImageLoader) {
|
|
7177
7304
|
const options2 = { ...tile.textureLoaderOptions, image: { type: "data" } };
|
|
7178
|
-
|
|
7305
|
+
try {
|
|
7306
|
+
tile.content.texture = await context.parse(arrayBuffer2, options2);
|
|
7307
|
+
} catch (e2) {
|
|
7308
|
+
tile.content.texture = await parse(arrayBuffer2, loader, options2);
|
|
7309
|
+
}
|
|
7179
7310
|
} else if (loader === CompressedTextureLoader || loader === BasisLoader) {
|
|
7180
|
-
|
|
7311
|
+
let texture = await load(arrayBuffer2, loader, tile.textureLoaderOptions);
|
|
7312
|
+
if (loader === BasisLoader) {
|
|
7313
|
+
texture = texture[0];
|
|
7314
|
+
}
|
|
7181
7315
|
tile.content.texture = {
|
|
7182
7316
|
compressed: true,
|
|
7183
7317
|
mipmaps: false,
|
|
@@ -7194,9 +7328,9 @@
|
|
|
7194
7328
|
if (tile.content.material) {
|
|
7195
7329
|
tile.content.texture = null;
|
|
7196
7330
|
}
|
|
7197
|
-
return await parseI3SNodeGeometry(arrayBuffer, tile,
|
|
7331
|
+
return await parseI3SNodeGeometry(arrayBuffer, tile, tileset, options);
|
|
7198
7332
|
}
|
|
7199
|
-
async function parseI3SNodeGeometry(arrayBuffer, tile
|
|
7333
|
+
async function parseI3SNodeGeometry(arrayBuffer, tile, tileset, options) {
|
|
7200
7334
|
if (!tile.content) {
|
|
7201
7335
|
return tile;
|
|
7202
7336
|
}
|
|
@@ -7205,6 +7339,7 @@
|
|
|
7205
7339
|
let vertexCount;
|
|
7206
7340
|
let byteOffset = 0;
|
|
7207
7341
|
let featureCount = 0;
|
|
7342
|
+
let indices;
|
|
7208
7343
|
if (tile.isDracoGeometry) {
|
|
7209
7344
|
const decompressedGeometry = await parse(arrayBuffer, DracoLoader2, {
|
|
7210
7345
|
draco: {
|
|
@@ -7212,7 +7347,7 @@
|
|
|
7212
7347
|
}
|
|
7213
7348
|
});
|
|
7214
7349
|
vertexCount = decompressedGeometry.header.vertexCount;
|
|
7215
|
-
|
|
7350
|
+
indices = decompressedGeometry.indices?.value;
|
|
7216
7351
|
const {
|
|
7217
7352
|
POSITION,
|
|
7218
7353
|
NORMAL,
|
|
@@ -7227,8 +7362,7 @@
|
|
|
7227
7362
|
color: COLOR_0,
|
|
7228
7363
|
uv0: TEXCOORD_0,
|
|
7229
7364
|
uvRegion,
|
|
7230
|
-
id: featureIndex
|
|
7231
|
-
indices
|
|
7365
|
+
id: featureIndex
|
|
7232
7366
|
};
|
|
7233
7367
|
updateAttributesMetadata(attributes, decompressedGeometry);
|
|
7234
7368
|
const featureIds = getFeatureIdsFromFeatureIndexMetadata(featureIndex);
|
|
@@ -7236,8 +7370,13 @@
|
|
|
7236
7370
|
flattenFeatureIdsByFeatureIndices(attributes, featureIds);
|
|
7237
7371
|
}
|
|
7238
7372
|
} else {
|
|
7239
|
-
const {
|
|
7240
|
-
|
|
7373
|
+
const {
|
|
7374
|
+
vertexAttributes,
|
|
7375
|
+
ordering: attributesOrder,
|
|
7376
|
+
featureAttributes,
|
|
7377
|
+
featureAttributeOrder
|
|
7378
|
+
} = tileset.store.defaultGeometrySchema;
|
|
7379
|
+
const headers = parseHeaders(tileset, arrayBuffer);
|
|
7241
7380
|
byteOffset = headers.byteOffset;
|
|
7242
7381
|
vertexCount = headers.vertexCount;
|
|
7243
7382
|
featureCount = headers.featureCount;
|
|
@@ -7247,7 +7386,7 @@
|
|
|
7247
7386
|
attributes = concatAttributes(normalizedVertexAttributes, normalizedFeatureAttributes);
|
|
7248
7387
|
}
|
|
7249
7388
|
if (!options?.i3s?.coordinateSystem || options.i3s.coordinateSystem === COORDINATE_SYSTEM.METER_OFFSETS) {
|
|
7250
|
-
const
|
|
7389
|
+
const enuMatrix = parsePositions(attributes.position, tile);
|
|
7251
7390
|
content.modelMatrix = enuMatrix.invert();
|
|
7252
7391
|
content.coordinateSystem = COORDINATE_SYSTEM.METER_OFFSETS;
|
|
7253
7392
|
} else {
|
|
@@ -7261,7 +7400,7 @@
|
|
|
7261
7400
|
texCoords: attributes.uv0,
|
|
7262
7401
|
uvRegions: normalizeAttribute(attributes.uvRegion)
|
|
7263
7402
|
};
|
|
7264
|
-
content.indices =
|
|
7403
|
+
content.indices = indices || null;
|
|
7265
7404
|
if (attributes.id && attributes.id.value) {
|
|
7266
7405
|
tile.content.featureIds = attributes.id.value;
|
|
7267
7406
|
}
|
|
@@ -7299,41 +7438,23 @@
|
|
|
7299
7438
|
attribute.normalized = true;
|
|
7300
7439
|
return attribute;
|
|
7301
7440
|
}
|
|
7302
|
-
function
|
|
7303
|
-
const defaultGeometrySchema = tileset.store.defaultGeometrySchema;
|
|
7304
|
-
const featureData = defaultGeometrySchema;
|
|
7305
|
-
for (const geometryAttribute in I3S_NAMED_GEOMETRY_ATTRIBUTES) {
|
|
7306
|
-
for (const namedAttribute in I3S_NAMED_VERTEX_ATTRIBUTES) {
|
|
7307
|
-
const attribute = defaultGeometrySchema[geometryAttribute][namedAttribute];
|
|
7308
|
-
if (attribute) {
|
|
7309
|
-
const { byteOffset = 0, count = 0, valueType, valuesPerElement } = attribute;
|
|
7310
|
-
featureData[geometryAttribute][namedAttribute] = {
|
|
7311
|
-
valueType,
|
|
7312
|
-
valuesPerElement,
|
|
7313
|
-
byteOffset,
|
|
7314
|
-
count
|
|
7315
|
-
};
|
|
7316
|
-
}
|
|
7317
|
-
}
|
|
7318
|
-
}
|
|
7319
|
-
featureData.attributesOrder = defaultGeometrySchema.ordering;
|
|
7320
|
-
return featureData;
|
|
7321
|
-
}
|
|
7322
|
-
function parseHeaders(content, buffer) {
|
|
7441
|
+
function parseHeaders(tileset, arrayBuffer) {
|
|
7323
7442
|
let byteOffset = 0;
|
|
7324
7443
|
let vertexCount = 0;
|
|
7325
7444
|
let featureCount = 0;
|
|
7326
|
-
const
|
|
7327
|
-
|
|
7328
|
-
|
|
7329
|
-
|
|
7330
|
-
|
|
7331
|
-
|
|
7332
|
-
|
|
7333
|
-
|
|
7334
|
-
|
|
7335
|
-
|
|
7336
|
-
|
|
7445
|
+
for (const { property, type } of tileset.store.defaultGeometrySchema.header) {
|
|
7446
|
+
const TypedArrayTypeHeader = getConstructorForDataFormat(type);
|
|
7447
|
+
switch (property) {
|
|
7448
|
+
case HeaderAttributeProperty.vertexCount:
|
|
7449
|
+
vertexCount = new TypedArrayTypeHeader(arrayBuffer, 0, 4)[0];
|
|
7450
|
+
byteOffset += sizeOf(type);
|
|
7451
|
+
break;
|
|
7452
|
+
case HeaderAttributeProperty.featureCount:
|
|
7453
|
+
featureCount = new TypedArrayTypeHeader(arrayBuffer, 4, 4)[0];
|
|
7454
|
+
byteOffset += sizeOf(type);
|
|
7455
|
+
break;
|
|
7456
|
+
default:
|
|
7457
|
+
break;
|
|
7337
7458
|
}
|
|
7338
7459
|
}
|
|
7339
7460
|
return {
|
|
@@ -7352,11 +7473,11 @@
|
|
|
7352
7473
|
break;
|
|
7353
7474
|
}
|
|
7354
7475
|
const buffer = arrayBuffer.slice(byteOffset);
|
|
7355
|
-
let value
|
|
7476
|
+
let value;
|
|
7356
7477
|
if (valueType === "UInt64") {
|
|
7357
|
-
value = parseUint64Values(buffer, count * valuesPerElement,
|
|
7478
|
+
value = parseUint64Values(buffer, count * valuesPerElement, sizeOf(valueType));
|
|
7358
7479
|
} else {
|
|
7359
|
-
const TypedArrayType =
|
|
7480
|
+
const TypedArrayType = getConstructorForDataFormat(valueType);
|
|
7360
7481
|
value = new TypedArrayType(buffer, 0, count * valuesPerElement);
|
|
7361
7482
|
}
|
|
7362
7483
|
attributes[attribute] = {
|
|
@@ -7373,7 +7494,7 @@
|
|
|
7373
7494
|
case "normal":
|
|
7374
7495
|
default:
|
|
7375
7496
|
}
|
|
7376
|
-
byteOffset = byteOffset + count * valuesPerElement *
|
|
7497
|
+
byteOffset = byteOffset + count * valuesPerElement * sizeOf(valueType);
|
|
7377
7498
|
}
|
|
7378
7499
|
}
|
|
7379
7500
|
return { attributes, byteOffset };
|
|
@@ -7389,7 +7510,7 @@
|
|
|
7389
7510
|
values.push(value);
|
|
7390
7511
|
offset += attributeSize;
|
|
7391
7512
|
}
|
|
7392
|
-
return values;
|
|
7513
|
+
return new Uint32Array(values);
|
|
7393
7514
|
}
|
|
7394
7515
|
function parsePositions(attribute, tile) {
|
|
7395
7516
|
const mbs = tile.mbs;
|
|
@@ -7401,9 +7522,7 @@
|
|
|
7401
7522
|
Ellipsoid.WGS84.cartographicToCartesian(cartographicOrigin, cartesianOrigin);
|
|
7402
7523
|
Ellipsoid.WGS84.eastNorthUpToFixedFrame(cartesianOrigin, enuMatrix);
|
|
7403
7524
|
attribute.value = offsetsToCartesians(value, metadata, cartographicOrigin);
|
|
7404
|
-
return
|
|
7405
|
-
enuMatrix
|
|
7406
|
-
};
|
|
7525
|
+
return enuMatrix;
|
|
7407
7526
|
}
|
|
7408
7527
|
function offsetsToCartesians(vertices, metadata = {}, cartographicOrigin) {
|
|
7409
7528
|
const positions = new Float64Array(vertices.length);
|
|
@@ -7458,7 +7577,9 @@
|
|
|
7458
7577
|
if (pbrMaterial.pbrMetallicRoughness && pbrMaterial.pbrMetallicRoughness.baseColorFactor) {
|
|
7459
7578
|
pbrMaterial.pbrMetallicRoughness.baseColorFactor = convertColorFormat(pbrMaterial.pbrMetallicRoughness.baseColorFactor);
|
|
7460
7579
|
}
|
|
7461
|
-
|
|
7580
|
+
if (texture) {
|
|
7581
|
+
setMaterialTexture(pbrMaterial, texture);
|
|
7582
|
+
}
|
|
7462
7583
|
return pbrMaterial;
|
|
7463
7584
|
}
|
|
7464
7585
|
function convertColorFormat(colorFactor) {
|
|
@@ -7520,11 +7641,11 @@
|
|
|
7520
7641
|
attributes.id.value = result;
|
|
7521
7642
|
}
|
|
7522
7643
|
function getFeatureIdsFromFeatureIndexMetadata(featureIndex) {
|
|
7523
|
-
return featureIndex
|
|
7644
|
+
return featureIndex?.metadata?.["i3s-feature-ids"]?.intArray;
|
|
7524
7645
|
}
|
|
7525
7646
|
|
|
7526
7647
|
// src/i3s-content-loader.ts
|
|
7527
|
-
var VERSION8 =
|
|
7648
|
+
var VERSION8 = true ? "4.0.0-alpha.5" : "beta";
|
|
7528
7649
|
var I3SContentLoader = {
|
|
7529
7650
|
name: "I3S Content (Indexed Scene Layers)",
|
|
7530
7651
|
id: "i3s-content",
|