@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.
Files changed (65) hide show
  1. package/dist/bundle.d.ts +2 -0
  2. package/dist/bundle.d.ts.map +1 -0
  3. package/dist/dist.min.js +10374 -0
  4. package/dist/i3s-attribute-loader.d.ts +14 -0
  5. package/dist/i3s-attribute-loader.d.ts.map +1 -0
  6. package/dist/i3s-attribute-loader.js +1 -1
  7. package/dist/i3s-building-scene-layer-loader.d.ts +6 -0
  8. package/dist/i3s-building-scene-layer-loader.d.ts.map +1 -0
  9. package/dist/i3s-building-scene-layer-loader.js +1 -1
  10. package/dist/i3s-content-loader.d.ts +6 -0
  11. package/dist/i3s-content-loader.d.ts.map +1 -0
  12. package/dist/i3s-content-loader.js +1 -1
  13. package/dist/i3s-content-worker.js +391 -270
  14. package/dist/i3s-loader.d.ts +6 -0
  15. package/dist/i3s-loader.d.ts.map +1 -0
  16. package/dist/i3s-loader.js +1 -1
  17. package/dist/i3s-node-page-loader.d.ts +6 -0
  18. package/dist/i3s-node-page-loader.d.ts.map +1 -0
  19. package/dist/i3s-node-page-loader.js +1 -1
  20. package/dist/index.d.ts +7 -0
  21. package/dist/index.d.ts.map +1 -0
  22. package/dist/index.js.map +1 -1
  23. package/dist/lib/helpers/i3s-nodepages-tiles.d.ts +73 -0
  24. package/dist/lib/helpers/i3s-nodepages-tiles.d.ts.map +1 -0
  25. package/dist/lib/helpers/i3s-nodepages-tiles.js +33 -23
  26. package/dist/lib/helpers/i3s-nodepages-tiles.js.map +1 -1
  27. package/dist/lib/parsers/constants.d.ts +40 -0
  28. package/dist/lib/parsers/constants.d.ts.map +1 -0
  29. package/dist/lib/parsers/constants.js +54 -38
  30. package/dist/lib/parsers/constants.js.map +1 -1
  31. package/dist/lib/parsers/parse-i3s-attribute.d.ts +10 -0
  32. package/dist/lib/parsers/parse-i3s-attribute.d.ts.map +1 -0
  33. package/dist/lib/parsers/parse-i3s-building-scene-layer.d.ts +9 -0
  34. package/dist/lib/parsers/parse-i3s-building-scene-layer.d.ts.map +1 -0
  35. package/dist/lib/parsers/parse-i3s-building-scene-layer.js +2 -0
  36. package/dist/lib/parsers/parse-i3s-building-scene-layer.js.map +1 -1
  37. package/dist/lib/parsers/parse-i3s-tile-content.d.ts +4 -0
  38. package/dist/lib/parsers/parse-i3s-tile-content.d.ts.map +1 -0
  39. package/dist/lib/parsers/parse-i3s-tile-content.js +76 -79
  40. package/dist/lib/parsers/parse-i3s-tile-content.js.map +1 -1
  41. package/dist/lib/parsers/parse-i3s.d.ts +6 -0
  42. package/dist/lib/parsers/parse-i3s.d.ts.map +1 -0
  43. package/dist/lib/parsers/parse-i3s.js +40 -25
  44. package/dist/lib/parsers/parse-i3s.js.map +1 -1
  45. package/dist/lib/utils/convert-i3s-obb-to-mbs.d.ts +2 -0
  46. package/dist/lib/utils/convert-i3s-obb-to-mbs.d.ts.map +1 -0
  47. package/dist/lib/utils/url-utils.d.ts +22 -0
  48. package/dist/lib/utils/url-utils.d.ts.map +1 -0
  49. package/dist/lib/utils/url-utils.js +2 -3
  50. package/dist/lib/utils/url-utils.js.map +1 -1
  51. package/dist/types.d.ts +643 -0
  52. package/dist/types.d.ts.map +1 -0
  53. package/dist/types.js +20 -1
  54. package/dist/types.js.map +1 -1
  55. package/dist/workers/i3s-content-worker.d.ts +2 -0
  56. package/dist/workers/i3s-content-worker.d.ts.map +1 -0
  57. package/package.json +12 -12
  58. package/src/index.ts +3 -3
  59. package/src/lib/helpers/i3s-nodepages-tiles.ts +71 -55
  60. package/src/lib/parsers/constants.ts +67 -54
  61. package/src/lib/parsers/parse-i3s-building-scene-layer.ts +2 -1
  62. package/src/lib/parsers/parse-i3s-tile-content.ts +150 -146
  63. package/src/lib/parsers/parse-i3s.ts +48 -37
  64. package/src/lib/utils/url-utils.ts +7 -7
  65. 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 DEFAULT_VERSION = "beta";
34
- var VERSION = typeof __VERSION__ !== "undefined" ? __VERSION__ : DEFAULT_VERSION;
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
- return node.requireFromFile && await node.requireFromFile(libraryUrl);
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 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "untranspiled source";
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 getHiResTimestamp2() {
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 = getHiResTimestamp2();
1155
- this._deltaTs = getHiResTimestamp2();
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((getHiResTimestamp2() - this._startTs).toPrecision(10));
1208
+ return Number((getHiResTimestamp() - this._startTs).toPrecision(10));
1177
1209
  }
1178
1210
  getDelta() {
1179
- return Number((getHiResTimestamp2() - this._deltaTs).toPrecision(10));
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 = getHiResTimestamp2();
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] = getHiResTimestamp2();
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 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
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 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
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 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
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 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
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-constants.ts
5679
- var GL = {
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: GL.COMPRESSED_RGB_S3TC_DXT1_EXT,
5875
- 132: GL.COMPRESSED_SRGB_S3TC_DXT1_EXT,
5876
- 133: GL.COMPRESSED_RGBA_S3TC_DXT1_EXT,
5877
- 134: GL.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,
5878
- 135: GL.COMPRESSED_RGBA_S3TC_DXT3_EXT,
5879
- 136: GL.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,
5880
- 137: GL.COMPRESSED_RGBA_S3TC_DXT5_EXT,
5881
- 138: GL.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,
5882
- 139: GL.COMPRESSED_RED_RGTC1_EXT,
5883
- 140: GL.COMPRESSED_SIGNED_RED_RGTC1_EXT,
5884
- 141: GL.COMPRESSED_RED_GREEN_RGTC2_EXT,
5885
- 142: GL.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT,
5886
- 147: GL.COMPRESSED_RGB8_ETC2,
5887
- 148: GL.COMPRESSED_SRGB8_ETC2,
5888
- 149: GL.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,
5889
- 150: GL.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,
5890
- 151: GL.COMPRESSED_RGBA8_ETC2_EAC,
5891
- 152: GL.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,
5892
- 153: GL.COMPRESSED_R11_EAC,
5893
- 154: GL.COMPRESSED_SIGNED_R11_EAC,
5894
- 155: GL.COMPRESSED_RG11_EAC,
5895
- 156: GL.COMPRESSED_SIGNED_RG11_EAC,
5896
- 157: GL.COMPRESSED_RGBA_ASTC_4x4_KHR,
5897
- 158: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,
5898
- 159: GL.COMPRESSED_RGBA_ASTC_5x4_KHR,
5899
- 160: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR,
5900
- 161: GL.COMPRESSED_RGBA_ASTC_5x5_KHR,
5901
- 162: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,
5902
- 163: GL.COMPRESSED_RGBA_ASTC_6x5_KHR,
5903
- 164: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,
5904
- 165: GL.COMPRESSED_RGBA_ASTC_6x6_KHR,
5905
- 166: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,
5906
- 167: GL.COMPRESSED_RGBA_ASTC_8x5_KHR,
5907
- 168: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,
5908
- 169: GL.COMPRESSED_RGBA_ASTC_8x6_KHR,
5909
- 170: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,
5910
- 171: GL.COMPRESSED_RGBA_ASTC_8x8_KHR,
5911
- 172: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,
5912
- 173: GL.COMPRESSED_RGBA_ASTC_10x5_KHR,
5913
- 174: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,
5914
- 175: GL.COMPRESSED_RGBA_ASTC_10x6_KHR,
5915
- 176: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,
5916
- 177: GL.COMPRESSED_RGBA_ASTC_10x8_KHR,
5917
- 178: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,
5918
- 179: GL.COMPRESSED_RGBA_ASTC_10x10_KHR,
5919
- 180: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,
5920
- 181: GL.COMPRESSED_RGBA_ASTC_12x10_KHR,
5921
- 182: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,
5922
- 183: GL.COMPRESSED_RGBA_ASTC_12x12_KHR,
5923
- 184: GL.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR,
5924
- 1000054e3: GL.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,
5925
- 1000054001: GL.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,
5926
- 1000066e3: GL.COMPRESSED_RGBA_ASTC_4x4_KHR,
5927
- 1000066001: GL.COMPRESSED_RGBA_ASTC_5x4_KHR,
5928
- 1000066002: GL.COMPRESSED_RGBA_ASTC_5x5_KHR,
5929
- 1000066003: GL.COMPRESSED_RGBA_ASTC_6x5_KHR,
5930
- 1000066004: GL.COMPRESSED_RGBA_ASTC_6x6_KHR,
5931
- 1000066005: GL.COMPRESSED_RGBA_ASTC_8x5_KHR,
5932
- 1000066006: GL.COMPRESSED_RGBA_ASTC_8x6_KHR,
5933
- 1000066007: GL.COMPRESSED_RGBA_ASTC_8x8_KHR,
5934
- 1000066008: GL.COMPRESSED_RGBA_ASTC_10x5_KHR,
5935
- 1000066009: GL.COMPRESSED_RGBA_ASTC_10x6_KHR,
5936
- 1000066010: GL.COMPRESSED_RGBA_ASTC_10x8_KHR,
5937
- 1000066011: GL.COMPRESSED_RGBA_ASTC_10x10_KHR,
5938
- 1000066012: GL.COMPRESSED_RGBA_ASTC_12x10_KHR,
5939
- 1000066013: GL.COMPRESSED_RGBA_ASTC_12x12_KHR
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.js
6050
+ // ../textures/src/lib/parsers/parse-basis.ts
5982
6051
  var OutputFormat = {
5983
- etc1: { basisFormat: 0, compressed: true, format: GL.COMPRESSED_RGB_ETC1_WEBGL },
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: { basisFormat: 2, compressed: true, format: GL.COMPRESSED_RGB_S3TC_DXT1_EXT },
5986
- bc3: { basisFormat: 3, compressed: true, format: GL.COMPRESSED_RGBA_S3TC_DXT5_EXT },
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": { basisFormat: 8, compressed: true, format: GL.COMPRESSED_RGB_PVRTC_4BPPV1_IMG },
5992
- "pvrtc1-4-rgba": { basisFormat: 9, compressed: true, format: GL.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG },
5993
- "astc-4x4": { basisFormat: 10, compressed: true, format: GL.COMPRESSED_RGBA_ASTC_4X4_KHR },
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
- return null;
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
- return null;
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
- hasAlpha,
6064
- format
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
- return null;
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
- return null;
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: GL.COMPRESSED_RGB_S3TC_DXT1_EXT,
6177
- DXT3: GL.COMPRESSED_RGBA_S3TC_DXT3_EXT,
6178
- DXT5: GL.COMPRESSED_RGBA_S3TC_DXT5_EXT,
6179
- "ATC ": GL.COMPRESSED_RGB_ATC_WEBGL,
6180
- ATCA: GL.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL,
6181
- ATCI: GL.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL
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: [GL.COMPRESSED_RGB_PVRTC_2BPPV1_IMG],
6249
- 1: [GL.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG],
6250
- 2: [GL.COMPRESSED_RGB_PVRTC_4BPPV1_IMG],
6251
- 3: [GL.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG],
6252
- 6: [GL.COMPRESSED_RGB_ETC1_WEBGL],
6253
- 7: [GL.COMPRESSED_RGB_S3TC_DXT1_EXT],
6254
- 9: [GL.COMPRESSED_RGBA_S3TC_DXT3_EXT],
6255
- 11: [GL.COMPRESSED_RGBA_S3TC_DXT5_EXT],
6256
- 22: [GL.COMPRESSED_RGB8_ETC2],
6257
- 23: [GL.COMPRESSED_RGBA8_ETC2_EAC],
6258
- 24: [GL.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2],
6259
- 25: [GL.COMPRESSED_R11_EAC],
6260
- 26: [GL.COMPRESSED_RG11_EAC],
6261
- 27: [GL.COMPRESSED_RGBA_ASTC_4X4_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR],
6262
- 28: [GL.COMPRESSED_RGBA_ASTC_5X4_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR],
6263
- 29: [GL.COMPRESSED_RGBA_ASTC_5X5_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR],
6264
- 30: [GL.COMPRESSED_RGBA_ASTC_6X5_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR],
6265
- 31: [GL.COMPRESSED_RGBA_ASTC_6X6_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR],
6266
- 32: [GL.COMPRESSED_RGBA_ASTC_8X5_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR],
6267
- 33: [GL.COMPRESSED_RGBA_ASTC_8X6_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR],
6268
- 34: [GL.COMPRESSED_RGBA_ASTC_8X8_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR],
6269
- 35: [GL.COMPRESSED_RGBA_ASTC_10X5_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR],
6270
- 36: [GL.COMPRESSED_RGBA_ASTC_10X6_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR],
6271
- 37: [GL.COMPRESSED_RGBA_ASTC_10X8_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR],
6272
- 38: [GL.COMPRESSED_RGBA_ASTC_10X10_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR],
6273
- 39: [GL.COMPRESSED_RGBA_ASTC_12X10_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR],
6274
- 40: [GL.COMPRESSED_RGBA_ASTC_12X12_KHR, GL.COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR]
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
- // ../textures/src/lib/utils/texture-formats.ts
6449
- var BROWSER_PREFIXES = ["", "WEBKIT_", "MOZ_"];
6450
- var WEBGL_EXTENSIONS = {
6451
- WEBGL_compressed_texture_s3tc: "dxt",
6452
- WEBGL_compressed_texture_s3tc_srgb: "dxt-srgb",
6453
- WEBGL_compressed_texture_etc1: "etc1",
6454
- WEBGL_compressed_texture_etc: "etc2",
6455
- WEBGL_compressed_texture_pvrtc: "pvrtc",
6456
- WEBGL_compressed_texture_atc: "atc",
6457
- WEBGL_compressed_texture_astc: "astc",
6458
- EXT_texture_compression_rgtc: "rgtc"
6459
- };
6460
- var formats = null;
6461
- function getSupportedGPUTextureFormats(gl) {
6462
- if (!formats) {
6463
- gl = gl || getWebGLContext() || void 0;
6464
- formats = new Set();
6465
- for (const prefix of BROWSER_PREFIXES) {
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
- var TYPE_ARRAY_MAP = {
7110
- UInt8: Uint8Array,
7111
- UInt16: Uint16Array,
7112
- UInt32: Uint32Array,
7113
- Float32: Float32Array,
7114
- UInt64: Float64Array
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
- var I3S_NAMED_VERTEX_ATTRIBUTES = {
7124
- position: "position",
7125
- normal: "normal",
7126
- uv0: "uv0",
7127
- color: "color",
7128
- region: "region"
7129
- };
7130
- var I3S_NAMED_GEOMETRY_ATTRIBUTES = {
7131
- vertexAttributes: "vertexAttributes",
7132
- featureAttributeOrder: "featureAttributeOrder",
7133
- featureAttributes: "featureAttributes"
7134
- };
7135
- var I3S_NAMED_HEADER_ATTRIBUTES = {
7136
- header: "header",
7137
- vertexCount: "vertexCount",
7138
- featureCount: "featureCount"
7139
- };
7140
- var SIZEOF = {
7141
- UInt8: 1,
7142
- UInt16: 2,
7143
- UInt32: 4,
7144
- Float32: 4,
7145
- UInt64: 8
7146
- };
7147
- var COORDINATE_SYSTEM = {
7148
- DEFAULT: -1,
7149
- LNGLAT: 1,
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
- var FORMAT_LOADER_MAP = {
7158
- jpeg: ImageLoader,
7159
- png: ImageLoader,
7160
- "ktx-etc2": CompressedTextureLoader,
7161
- dds: CompressedTextureLoader,
7162
- ktx2: BasisLoader
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 = FORMAT_LOADER_MAP[tile.textureFormat] || ImageLoader;
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
- tile.content.texture = await context.parse(arrayBuffer2, options2);
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
- const texture = await load(arrayBuffer2, loader, tile.textureLoaderOptions);
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, options, context);
7331
+ return await parseI3SNodeGeometry(arrayBuffer, tile, tileset, options);
7198
7332
  }
7199
- async function parseI3SNodeGeometry(arrayBuffer, tile = {}, options, context) {
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
- const indices = decompressedGeometry.indices.value;
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 { vertexAttributes, attributesOrder, featureAttributes, featureAttributeOrder } = content.featureData;
7240
- const headers = parseHeaders(content, arrayBuffer);
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 { enuMatrix } = parsePositions(attributes.position, tile);
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 = attributes.indices || null;
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 constructFeatureDataStruct(tile, tileset) {
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 headers = content.featureData[I3S_NAMED_HEADER_ATTRIBUTES.header];
7327
- for (const header in headers) {
7328
- const { property, type } = headers[header];
7329
- const TypedArrayTypeHeader = TYPE_ARRAY_MAP[type];
7330
- if (property === I3S_NAMED_HEADER_ATTRIBUTES.vertexCount) {
7331
- vertexCount = new TypedArrayTypeHeader(buffer, 0, 4)[0];
7332
- byteOffset += SIZEOF[type];
7333
- }
7334
- if (property === I3S_NAMED_HEADER_ATTRIBUTES.featureCount) {
7335
- featureCount = new TypedArrayTypeHeader(buffer, 4, 4)[0];
7336
- byteOffset += SIZEOF[type];
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, SIZEOF[valueType]);
7478
+ value = parseUint64Values(buffer, count * valuesPerElement, sizeOf(valueType));
7358
7479
  } else {
7359
- const TypedArrayType = TYPE_ARRAY_MAP[valueType];
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 * SIZEOF[valueType];
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
- setMaterialTexture(pbrMaterial, texture);
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 && featureIndex.metadata && featureIndex.metadata["i3s-feature-ids"] && featureIndex.metadata["i3s-feature-ids"].intArray;
7644
+ return featureIndex?.metadata?.["i3s-feature-ids"]?.intArray;
7524
7645
  }
7525
7646
 
7526
7647
  // src/i3s-content-loader.ts
7527
- var VERSION8 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
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",