@loaders.gl/textures 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 (144) hide show
  1. package/dist/basis-loader.d.ts +50 -0
  2. package/dist/basis-loader.d.ts.map +1 -0
  3. package/dist/basis-worker.js +116 -60
  4. package/dist/bundle.d.ts +2 -0
  5. package/dist/bundle.d.ts.map +1 -0
  6. package/dist/compressed-texture-loader.d.ts +49 -0
  7. package/dist/compressed-texture-loader.d.ts.map +1 -0
  8. package/dist/compressed-texture-loader.js +1 -1
  9. package/dist/compressed-texture-loader.js.map +1 -1
  10. package/dist/compressed-texture-worker.js +221 -123
  11. package/dist/compressed-texture-writer.d.ts +25 -0
  12. package/dist/compressed-texture-writer.d.ts.map +1 -0
  13. package/dist/crunch-loader.d.ts +21 -0
  14. package/dist/crunch-loader.d.ts.map +1 -0
  15. package/dist/crunch-worker.js +59 -26
  16. package/dist/dist.min.js +2123 -0
  17. package/dist/index.d.ts +16 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +1 -1
  20. package/dist/index.js.map +1 -1
  21. package/dist/ktx2-basis-universal-texture-writer.d.ts +22 -0
  22. package/dist/ktx2-basis-universal-texture-writer.d.ts.map +1 -0
  23. package/dist/lib/encoders/encode-ktx.d.ts +2 -0
  24. package/dist/lib/encoders/encode-ktx.d.ts.map +1 -0
  25. package/dist/lib/encoders/encode-ktx2-basis-texture.d.ts +10 -0
  26. package/dist/lib/encoders/encode-ktx2-basis-texture.d.ts.map +1 -0
  27. package/dist/lib/encoders/encode-ktx2-basis-texture.js +1 -1
  28. package/dist/lib/encoders/encode-ktx2-basis-texture.js.map +1 -1
  29. package/dist/lib/encoders/encode-texture.d.ts +4 -0
  30. package/dist/lib/encoders/encode-texture.d.ts.map +1 -0
  31. package/dist/lib/encoders/encode-texture.js +2 -5
  32. package/dist/lib/encoders/encode-texture.js.map +1 -1
  33. package/dist/lib/gl-extensions.d.ts +61 -0
  34. package/dist/lib/gl-extensions.d.ts.map +1 -0
  35. package/dist/lib/{gl-constants.js → gl-extensions.js} +2 -2
  36. package/dist/lib/gl-extensions.js.map +1 -0
  37. package/dist/lib/parsers/basis-module-loader.d.ts +13 -0
  38. package/dist/lib/parsers/basis-module-loader.d.ts.map +1 -0
  39. package/dist/lib/parsers/basis-module-loader.js +1 -1
  40. package/dist/lib/parsers/crunch-module-loader.d.ts +7 -0
  41. package/dist/lib/parsers/crunch-module-loader.d.ts.map +1 -0
  42. package/dist/lib/parsers/crunch-module-loader.js +1 -1
  43. package/dist/lib/parsers/crunch-module-loader.js.map +1 -1
  44. package/dist/lib/parsers/parse-basis.d.ts +18 -0
  45. package/dist/lib/parsers/parse-basis.d.ts.map +1 -0
  46. package/dist/lib/parsers/parse-basis.js +16 -16
  47. package/dist/lib/parsers/parse-basis.js.map +1 -1
  48. package/dist/lib/parsers/parse-compressed-texture.d.ts +8 -0
  49. package/dist/lib/parsers/parse-compressed-texture.d.ts.map +1 -0
  50. package/dist/lib/parsers/parse-compressed-texture.js.map +1 -1
  51. package/dist/lib/parsers/parse-crunch.d.ts +9 -0
  52. package/dist/lib/parsers/parse-crunch.d.ts.map +1 -0
  53. package/dist/lib/parsers/parse-crunch.js +14 -13
  54. package/dist/lib/parsers/parse-crunch.js.map +1 -1
  55. package/dist/lib/parsers/parse-dds.d.ts +28 -0
  56. package/dist/lib/parsers/parse-dds.d.ts.map +1 -0
  57. package/dist/lib/parsers/parse-dds.js +7 -7
  58. package/dist/lib/parsers/parse-dds.js.map +1 -1
  59. package/dist/lib/parsers/parse-ktx.d.ts +4 -0
  60. package/dist/lib/parsers/parse-ktx.d.ts.map +1 -0
  61. package/dist/lib/parsers/parse-ktx.js.map +1 -1
  62. package/dist/lib/parsers/parse-npy.d.ts +10 -0
  63. package/dist/lib/parsers/parse-npy.d.ts.map +1 -0
  64. package/dist/lib/parsers/parse-npy.js.map +1 -1
  65. package/dist/lib/parsers/parse-pvr.d.ts +15 -0
  66. package/dist/lib/parsers/parse-pvr.d.ts.map +1 -0
  67. package/dist/lib/parsers/parse-pvr.js +28 -28
  68. package/dist/lib/parsers/parse-pvr.js.map +1 -1
  69. package/dist/lib/texture-api/async-deep-map.d.ts +5 -0
  70. package/dist/lib/texture-api/async-deep-map.d.ts.map +1 -0
  71. package/dist/lib/texture-api/deep-load.d.ts +5 -0
  72. package/dist/lib/texture-api/deep-load.d.ts.map +1 -0
  73. package/dist/lib/texture-api/generate-url.d.ts +3 -0
  74. package/dist/lib/texture-api/generate-url.d.ts.map +1 -0
  75. package/dist/lib/texture-api/load-image-array.d.ts +4 -0
  76. package/dist/lib/texture-api/load-image-array.d.ts.map +1 -0
  77. package/dist/lib/texture-api/load-image-cube.d.ts +12 -0
  78. package/dist/lib/texture-api/load-image-cube.d.ts.map +1 -0
  79. package/dist/lib/texture-api/load-image.d.ts +8 -0
  80. package/dist/lib/texture-api/load-image.d.ts.map +1 -0
  81. package/dist/lib/texture-api/texture-api-types.d.ts +10 -0
  82. package/dist/lib/texture-api/texture-api-types.d.ts.map +1 -0
  83. package/dist/lib/utils/extract-mipmap-images.d.ts +20 -0
  84. package/dist/lib/utils/extract-mipmap-images.d.ts.map +1 -0
  85. package/dist/lib/utils/extract-mipmap-images.js.map +1 -1
  86. package/dist/lib/utils/ktx-format-helper.d.ts +9 -0
  87. package/dist/lib/utils/ktx-format-helper.d.ts.map +1 -0
  88. package/dist/lib/utils/ktx-format-helper.js +67 -67
  89. package/dist/lib/utils/ktx-format-helper.js.map +1 -1
  90. package/dist/lib/utils/texture-formats.d.ts +8 -0
  91. package/dist/lib/utils/texture-formats.d.ts.map +1 -0
  92. package/dist/lib/utils/texture-formats.js.map +1 -1
  93. package/dist/lib/utils/version.d.ts +2 -0
  94. package/dist/lib/utils/version.d.ts.map +1 -0
  95. package/dist/lib/utils/version.js +1 -1
  96. package/dist/libs/README.md +2 -2
  97. package/dist/libs/basis_encoder.js +1 -1
  98. package/dist/libs/basis_transcoder.js +1 -1
  99. package/dist/libs/crunch.js +1 -0
  100. package/dist/libs/libs/README.md +9 -0
  101. package/dist/libs/libs/basis_encoder.js +22 -0
  102. package/dist/libs/libs/basis_encoder.wasm +0 -0
  103. package/dist/libs/libs/basis_transcoder.js +21 -0
  104. package/dist/libs/libs/basis_transcoder.wasm +0 -0
  105. package/dist/libs/libs/crunch.js +136 -0
  106. package/dist/npy-loader.d.ts +45 -0
  107. package/dist/npy-loader.d.ts.map +1 -0
  108. package/dist/npy-worker.js +1 -1
  109. package/dist/types.d.ts +1 -0
  110. package/dist/types.d.ts.map +1 -0
  111. package/dist/types.js +1 -1
  112. package/dist/workers/basis-worker.d.ts +2 -0
  113. package/dist/workers/basis-worker.d.ts.map +1 -0
  114. package/dist/workers/compressed-texture-worker.d.ts +2 -0
  115. package/dist/workers/compressed-texture-worker.d.ts.map +1 -0
  116. package/dist/workers/crunch-worker.d.ts +21 -0
  117. package/dist/workers/crunch-worker.d.ts.map +1 -0
  118. package/dist/workers/npy-worker.d.ts +2 -0
  119. package/dist/workers/npy-worker.d.ts.map +1 -0
  120. package/package.json +12 -11
  121. package/src/compressed-texture-loader.ts +1 -1
  122. package/src/index.ts +2 -2
  123. package/src/lib/encoders/encode-ktx2-basis-texture.ts +2 -2
  124. package/src/lib/encoders/encode-texture.ts +6 -6
  125. package/src/lib/{gl-constants.ts → gl-extensions.ts} +1 -1
  126. package/src/lib/parsers/crunch-module-loader.ts +1 -1
  127. package/src/lib/parsers/{parse-basis.js → parse-basis.ts} +100 -44
  128. package/src/lib/parsers/parse-compressed-texture.ts +1 -1
  129. package/src/lib/parsers/parse-crunch.ts +16 -15
  130. package/src/lib/parsers/parse-dds.ts +8 -8
  131. package/src/lib/parsers/parse-ktx.ts +2 -1
  132. package/src/lib/parsers/parse-npy.ts +2 -0
  133. package/src/lib/parsers/parse-pvr.ts +72 -29
  134. package/src/lib/utils/extract-mipmap-images.ts +9 -1
  135. package/src/lib/utils/ktx-format-helper.ts +67 -67
  136. package/src/lib/utils/texture-formats.ts +1 -1
  137. package/src/libs/README.md +2 -2
  138. package/src/libs/basis_encoder.js +1 -1
  139. package/src/libs/basis_transcoder.js +1 -1
  140. package/src/libs/crunch.js +1 -0
  141. package/src/types.ts +0 -30
  142. package/dist/lib/gl-constants.js.map +0 -1
  143. package/src/lib/parsers/parse-ktx.js +0 -45
  144. package/src/lib/parsers/parse-npy.js +0 -96
@@ -0,0 +1,50 @@
1
+ import type { Loader, LoaderWithParser } from '@loaders.gl/loader-utils';
2
+ import parseBasis from './lib/parsers/parse-basis';
3
+ /**
4
+ * Worker loader for Basis super compressed textures
5
+ */
6
+ export declare const BasisWorkerLoader: {
7
+ name: string;
8
+ id: string;
9
+ module: string;
10
+ version: any;
11
+ worker: boolean;
12
+ extensions: string[];
13
+ mimeTypes: string[];
14
+ tests: string[];
15
+ binary: boolean;
16
+ options: {
17
+ basis: {
18
+ format: string;
19
+ libraryPath: string;
20
+ containerFormat: string;
21
+ module: string;
22
+ };
23
+ };
24
+ };
25
+ /**
26
+ * Loader for Basis super compressed textures
27
+ */
28
+ export declare const BasisLoader: {
29
+ parse: typeof parseBasis;
30
+ name: string;
31
+ id: string;
32
+ module: string;
33
+ version: any;
34
+ worker: boolean;
35
+ extensions: string[];
36
+ mimeTypes: string[];
37
+ tests: string[];
38
+ binary: boolean;
39
+ options: {
40
+ basis: {
41
+ format: string;
42
+ libraryPath: string;
43
+ containerFormat: string;
44
+ module: string;
45
+ };
46
+ };
47
+ };
48
+ export declare const _TypecheckBasisWorkerLoader: Loader;
49
+ export declare const _TypecheckBasisLoader: LoaderWithParser;
50
+ //# sourceMappingURL=basis-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basis-loader.d.ts","sourceRoot":"","sources":["../src/basis-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAE,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAEvE,OAAO,UAAU,MAAM,2BAA2B,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;CAkB7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;CAGvB,CAAC;AAGF,eAAO,MAAM,2BAA2B,EAAE,MAA0B,CAAC;AACrE,eAAO,MAAM,qBAAqB,EAAE,gBAA8B,CAAC"}
@@ -1,8 +1,35 @@
1
1
  (() => {
2
+ var __create = Object.create;
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;
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
+ };
12
+ var __reExport = (target, module, desc) => {
13
+ if (module && typeof module === "object" || typeof module === "function") {
14
+ for (let key of __getOwnPropNames(module))
15
+ if (!__hasOwnProp.call(target, key) && key !== "default")
16
+ __defProp(target, key, { get: () => module[key], enumerable: !(desc = __getOwnPropDesc(module, key)) || desc.enumerable });
17
+ }
18
+ return target;
19
+ };
20
+ var __toModule = (module) => {
21
+ return __reExport(__markAsModule(__defProp(module != null ? __create(__getProtoOf(module)) : {}, "default", module && module.__esModule && "default" in module ? { get: () => module.default, enumerable: true } : { value: module, enumerable: true })), module);
22
+ };
23
+
24
+ // (disabled):../worker-utils/src/lib/node/require-utils.node
25
+ var require_require_utils = __commonJS({
26
+ "(disabled):../worker-utils/src/lib/node/require-utils.node"() {
27
+ }
28
+ });
29
+
2
30
  // ../worker-utils/src/lib/env-utils/version.ts
3
- var DEFAULT_VERSION = "beta";
4
- var VERSION = typeof __VERSION__ !== "undefined" ? __VERSION__ : DEFAULT_VERSION;
5
- if (typeof __VERSION__ === "undefined") {
31
+ var VERSION = true ? "4.0.0-alpha.5" : DEFAULT_VERSION;
32
+ if (false) {
6
33
  console.error("loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.");
7
34
  }
8
35
 
@@ -109,6 +136,7 @@
109
136
  }
110
137
 
111
138
  // ../worker-utils/src/lib/library-utils/library-utils.ts
139
+ var node = __toModule(require_require_utils());
112
140
  var LATEST = "beta";
113
141
  var VERSION2 = typeof VERSION !== "undefined" ? VERSION : LATEST;
114
142
  var loadLibraryPromises = {};
@@ -145,7 +173,11 @@
145
173
  return await response2.arrayBuffer();
146
174
  }
147
175
  if (!isBrowser) {
148
- return node.requireFromFile && await node.requireFromFile(libraryUrl);
176
+ try {
177
+ return node && node.requireFromFile && await node.requireFromFile(libraryUrl);
178
+ } catch {
179
+ return null;
180
+ }
149
181
  }
150
182
  if (isWorker) {
151
183
  return importScripts(libraryUrl);
@@ -248,10 +280,10 @@
248
280
  }
249
281
 
250
282
  // src/lib/utils/version.ts
251
- var VERSION3 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
283
+ var VERSION3 = true ? "4.0.0-alpha.5" : "beta";
252
284
 
253
285
  // src/lib/parsers/basis-module-loader.ts
254
- var VERSION4 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
286
+ var VERSION4 = true ? "4.0.0-alpha.5" : "beta";
255
287
  var BASIS_CDN_ENCODER_WASM = `https://unpkg.com/@loaders.gl/textures@${VERSION4}/dist/libs/basis_encoder.wasm`;
256
288
  var BASIS_CDN_ENCODER_JS = `https://unpkg.com/@loaders.gl/textures@${VERSION4}/dist/libs/basis_encoder.js`;
257
289
  var loadBasisTranscoderPromise;
@@ -319,8 +351,8 @@
319
351
  });
320
352
  }
321
353
 
322
- // src/lib/gl-constants.ts
323
- var GL = {
354
+ // src/lib/gl-extensions.ts
355
+ var GL_EXTENSIONS_CONSTANTS = {
324
356
  COMPRESSED_RGB_S3TC_DXT1_EXT: 33776,
325
357
  COMPRESSED_RGBA_S3TC_DXT1_EXT: 33777,
326
358
  COMPRESSED_RGBA_S3TC_DXT3_EXT: 33778,
@@ -381,6 +413,43 @@
381
413
  COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: 35919
382
414
  };
383
415
 
416
+ // src/lib/utils/texture-formats.ts
417
+ var BROWSER_PREFIXES = ["", "WEBKIT_", "MOZ_"];
418
+ var WEBGL_EXTENSIONS = {
419
+ WEBGL_compressed_texture_s3tc: "dxt",
420
+ WEBGL_compressed_texture_s3tc_srgb: "dxt-srgb",
421
+ WEBGL_compressed_texture_etc1: "etc1",
422
+ WEBGL_compressed_texture_etc: "etc2",
423
+ WEBGL_compressed_texture_pvrtc: "pvrtc",
424
+ WEBGL_compressed_texture_atc: "atc",
425
+ WEBGL_compressed_texture_astc: "astc",
426
+ EXT_texture_compression_rgtc: "rgtc"
427
+ };
428
+ var formats = null;
429
+ function getSupportedGPUTextureFormats(gl) {
430
+ if (!formats) {
431
+ gl = gl || getWebGLContext() || void 0;
432
+ formats = new Set();
433
+ for (const prefix of BROWSER_PREFIXES) {
434
+ for (const extension in WEBGL_EXTENSIONS) {
435
+ if (gl && gl.getExtension(`${prefix}${extension}`)) {
436
+ const gpuTextureFormat = WEBGL_EXTENSIONS[extension];
437
+ formats.add(gpuTextureFormat);
438
+ }
439
+ }
440
+ }
441
+ }
442
+ return formats;
443
+ }
444
+ function getWebGLContext() {
445
+ try {
446
+ const canvas = document.createElement("canvas");
447
+ return canvas.getContext("webgl");
448
+ } catch (error) {
449
+ return null;
450
+ }
451
+ }
452
+
384
453
  // ../../node_modules/ktx-parse/dist/ktx-parse.modern.js
385
454
  var t = new Uint8Array([0]);
386
455
  var n;
@@ -430,56 +499,43 @@
430
499
  return !notKTX;
431
500
  }
432
501
 
433
- // src/lib/utils/texture-formats.ts
434
- var BROWSER_PREFIXES = ["", "WEBKIT_", "MOZ_"];
435
- var WEBGL_EXTENSIONS = {
436
- WEBGL_compressed_texture_s3tc: "dxt",
437
- WEBGL_compressed_texture_s3tc_srgb: "dxt-srgb",
438
- WEBGL_compressed_texture_etc1: "etc1",
439
- WEBGL_compressed_texture_etc: "etc2",
440
- WEBGL_compressed_texture_pvrtc: "pvrtc",
441
- WEBGL_compressed_texture_atc: "atc",
442
- WEBGL_compressed_texture_astc: "astc",
443
- EXT_texture_compression_rgtc: "rgtc"
444
- };
445
- var formats = null;
446
- function getSupportedGPUTextureFormats(gl) {
447
- if (!formats) {
448
- gl = gl || getWebGLContext() || void 0;
449
- formats = new Set();
450
- for (const prefix of BROWSER_PREFIXES) {
451
- for (const extension in WEBGL_EXTENSIONS) {
452
- if (gl && gl.getExtension(`${prefix}${extension}`)) {
453
- const gpuTextureFormat = WEBGL_EXTENSIONS[extension];
454
- formats.add(gpuTextureFormat);
455
- }
456
- }
457
- }
458
- }
459
- return formats;
460
- }
461
- function getWebGLContext() {
462
- try {
463
- const canvas = document.createElement("canvas");
464
- return canvas.getContext("webgl");
465
- } catch (error) {
466
- return null;
467
- }
468
- }
469
-
470
- // src/lib/parsers/parse-basis.js
502
+ // src/lib/parsers/parse-basis.ts
471
503
  var OutputFormat = {
472
- etc1: { basisFormat: 0, compressed: true, format: GL.COMPRESSED_RGB_ETC1_WEBGL },
504
+ etc1: {
505
+ basisFormat: 0,
506
+ compressed: true,
507
+ format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ETC1_WEBGL
508
+ },
473
509
  etc2: { basisFormat: 1, compressed: true },
474
- bc1: { basisFormat: 2, compressed: true, format: GL.COMPRESSED_RGB_S3TC_DXT1_EXT },
475
- bc3: { basisFormat: 3, compressed: true, format: GL.COMPRESSED_RGBA_S3TC_DXT5_EXT },
510
+ bc1: {
511
+ basisFormat: 2,
512
+ compressed: true,
513
+ format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT
514
+ },
515
+ bc3: {
516
+ basisFormat: 3,
517
+ compressed: true,
518
+ format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT
519
+ },
476
520
  bc4: { basisFormat: 4, compressed: true },
477
521
  bc5: { basisFormat: 5, compressed: true },
478
522
  "bc7-m6-opaque-only": { basisFormat: 6, compressed: true },
479
523
  "bc7-m5": { basisFormat: 7, compressed: true },
480
- "pvrtc1-4-rgb": { basisFormat: 8, compressed: true, format: GL.COMPRESSED_RGB_PVRTC_4BPPV1_IMG },
481
- "pvrtc1-4-rgba": { basisFormat: 9, compressed: true, format: GL.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG },
482
- "astc-4x4": { basisFormat: 10, compressed: true, format: GL.COMPRESSED_RGBA_ASTC_4X4_KHR },
524
+ "pvrtc1-4-rgb": {
525
+ basisFormat: 8,
526
+ compressed: true,
527
+ format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG
528
+ },
529
+ "pvrtc1-4-rgba": {
530
+ basisFormat: 9,
531
+ compressed: true,
532
+ format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
533
+ },
534
+ "astc-4x4": {
535
+ basisFormat: 10,
536
+ compressed: true,
537
+ format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4X4_KHR
538
+ },
483
539
  "atc-rgb": { basisFormat: 11, compressed: true },
484
540
  "atc-rgba-interpolated-alpha": { basisFormat: 12, compressed: true },
485
541
  rgba32: { basisFormat: 13, compressed: false },
@@ -516,7 +572,7 @@
516
572
  const basisFile = new BasisFile(new Uint8Array(data));
517
573
  try {
518
574
  if (!basisFile.startTranscoding()) {
519
- return null;
575
+ throw new Error("Failed to start basis transcoding");
520
576
  }
521
577
  const imageCount = basisFile.getNumImages();
522
578
  const images = [];
@@ -542,22 +598,22 @@
542
598
  const decodedSize = basisFile.getImageTranscodedSizeInBytes(imageIndex, levelIndex, basisFormat);
543
599
  const decodedData = new Uint8Array(decodedSize);
544
600
  if (!basisFile.transcodeImage(decodedData, imageIndex, levelIndex, basisFormat, 0, 0)) {
545
- return null;
601
+ throw new Error("failed to start Basis transcoding");
546
602
  }
547
603
  return {
548
604
  width,
549
605
  height,
550
606
  data: decodedData,
551
607
  compressed,
552
- hasAlpha,
553
- format
608
+ format,
609
+ hasAlpha
554
610
  };
555
611
  }
556
612
  function parseKTX2File(KTX2File, data, options) {
557
613
  const ktx2File = new KTX2File(new Uint8Array(data));
558
614
  try {
559
615
  if (!ktx2File.startTranscoding()) {
560
- return null;
616
+ throw new Error("failed to start KTX2 transcoding");
561
617
  }
562
618
  const levelsCount = ktx2File.getLevels();
563
619
  const levels = [];
@@ -565,7 +621,7 @@
565
621
  levels.push(transcodeKTX2Image(ktx2File, levelIndex, options));
566
622
  break;
567
623
  }
568
- return levels;
624
+ return [levels];
569
625
  } finally {
570
626
  ktx2File.close();
571
627
  ktx2File.delete();
@@ -577,14 +633,14 @@
577
633
  const decodedSize = ktx2File.getImageTranscodedSizeInBytes(levelIndex, 0, 0, basisFormat);
578
634
  const decodedData = new Uint8Array(decodedSize);
579
635
  if (!ktx2File.transcodeImage(decodedData, levelIndex, 0, 0, basisFormat, 0, -1, -1)) {
580
- return null;
636
+ throw new Error("Failed to transcode KTX2 image");
581
637
  }
582
638
  return {
583
639
  width,
584
640
  height,
585
641
  data: decodedData,
586
642
  compressed,
587
- alphaFlag,
643
+ hasAlpha: alphaFlag,
588
644
  format
589
645
  };
590
646
  }
@@ -0,0 +1,2 @@
1
+ declare const moduleExports: any;
2
+ //# sourceMappingURL=bundle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AACA,QAAA,MAAM,aAAa,KAAqB,CAAC"}
@@ -0,0 +1,49 @@
1
+ import type { Loader, LoaderWithParser } from '@loaders.gl/loader-utils';
2
+ export declare type TextureLoaderOptions = {
3
+ 'compressed-texture'?: {
4
+ libraryPath?: string;
5
+ useBasis?: boolean;
6
+ };
7
+ };
8
+ /**
9
+ * Worker Loader for KTX, DDS, and PVR texture container formats
10
+ */
11
+ export declare const CompressedTextureWorkerLoader: {
12
+ name: string;
13
+ id: string;
14
+ module: string;
15
+ version: any;
16
+ worker: boolean;
17
+ extensions: string[];
18
+ mimeTypes: string[];
19
+ binary: boolean;
20
+ options: {
21
+ 'compressed-texture': {
22
+ libraryPath: string;
23
+ useBasis: boolean;
24
+ };
25
+ };
26
+ };
27
+ /**
28
+ * Loader for KTX, DDS, and PVR texture container formats
29
+ */
30
+ export declare const CompressedTextureLoader: {
31
+ parse: (arrayBuffer: any, options: any) => Promise<import("@loaders.gl/schema").TextureLevel[]>;
32
+ name: string;
33
+ id: string;
34
+ module: string;
35
+ version: any;
36
+ worker: boolean;
37
+ extensions: string[];
38
+ mimeTypes: string[];
39
+ binary: boolean;
40
+ options: {
41
+ 'compressed-texture': {
42
+ libraryPath: string;
43
+ useBasis: boolean;
44
+ };
45
+ };
46
+ };
47
+ export declare const _TypecheckCompressedTextureWorkerLoader: Loader;
48
+ export declare const _TypecheckCompressedTextureLoader: LoaderWithParser;
49
+ //# sourceMappingURL=compressed-texture-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compressed-texture-loader.d.ts","sourceRoot":"","sources":["../src/compressed-texture-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAE,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAKvE,oBAAY,oBAAoB,GAAG;IACjC,oBAAoB,CAAC,EAAE;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;CACH,CAAC;AASF;;GAEG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;CAqBzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;CAiBnC,CAAC;AAGF,eAAO,MAAM,uCAAuC,EAAE,MAAsC,CAAC;AAC7F,eAAO,MAAM,iCAAiC,EAAE,gBAA0C,CAAC"}
@@ -30,7 +30,7 @@ export const CompressedTextureLoader = { ...CompressedTextureWorkerLoader,
30
30
  containerFormat: 'ktx2',
31
31
  module: 'encoder'
32
32
  };
33
- return await parseBasis(arrayBuffer, options);
33
+ return (await parseBasis(arrayBuffer, options))[0];
34
34
  }
35
35
 
36
36
  return parseCompressedTexture(arrayBuffer);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/compressed-texture-loader.ts"],"names":["VERSION","parseCompressedTexture","parseBasis","DEFAULT_TEXTURE_LOADER_OPTIONS","libraryPath","useBasis","CompressedTextureWorkerLoader","name","id","module","version","worker","extensions","mimeTypes","binary","options","CompressedTextureLoader","parse","arrayBuffer","basis","format","alpha","noAlpha","containerFormat","_TypecheckCompressedTextureWorkerLoader","_TypecheckCompressedTextureLoader"],"mappings":"AACA,SAAQA,OAAR,QAAsB,qBAAtB;AACA,SAAQC,sBAAR,QAAqC,wCAArC;AACA,OAAOC,UAAP,MAAuB,2BAAvB;AASA,MAAMC,8BAA8B,GAAG;AACrC,wBAAsB;AACpBC,IAAAA,WAAW,EAAE,OADO;AAEpBC,IAAAA,QAAQ,EAAE;AAFU;AADe,CAAvC;AAUA,OAAO,MAAMC,6BAA6B,GAAG;AAC3CC,EAAAA,IAAI,EAAE,oBADqC;AAE3CC,EAAAA,EAAE,EAAE,oBAFuC;AAG3CC,EAAAA,MAAM,EAAE,UAHmC;AAI3CC,EAAAA,OAAO,EAAEV,OAJkC;AAK3CW,EAAAA,MAAM,EAAE,IALmC;AAM3CC,EAAAA,UAAU,EAAE,CACV,KADU,EAEV,MAFU,EAGV,KAHU,EAIV,KAJU,CAN+B;AAY3CC,EAAAA,SAAS,EAAE,CACT,YADS,EAET,WAFS,EAGT,kBAHS,EAIT,aAJS,EAKT,0BALS,CAZgC;AAmB3CC,EAAAA,MAAM,EAAE,IAnBmC;AAoB3CC,EAAAA,OAAO,EAAEZ;AApBkC,CAAtC;AA0BP,OAAO,MAAMa,uBAAuB,GAAG,EACrC,GAAGV,6BADkC;AAErCW,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAoBH,OAApB,KAAgC;AACrC,QAAIA,OAAO,CAAC,oBAAD,CAAP,CAA8BV,QAAlC,EAA4C;AAC1CU,MAAAA,OAAO,CAACI,KAAR,GAAgB;AACdC,QAAAA,MAAM,EAAE;AACNC,UAAAA,KAAK,EAAE,KADD;AAENC,UAAAA,OAAO,EAAE;AAFH,SADM;AAKd,WAAGP,OAAO,CAACI,KALG;AAMdI,QAAAA,eAAe,EAAE,MANH;AAOdd,QAAAA,MAAM,EAAE;AAPM,OAAhB;AASA,aAAO,MAAMP,UAAU,CAACgB,WAAD,EAAcH,OAAd,CAAvB;AACD;;AACD,WAAOd,sBAAsB,CAACiB,WAAD,CAA7B;AACD;AAhBoC,CAAhC;AAoBP,OAAO,MAAMM,uCAA+C,GAAGlB,6BAAxD;AACP,OAAO,MAAMmB,iCAAmD,GAAGT,uBAA5D","sourcesContent":["import type {Loader, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport {parseCompressedTexture} from './lib/parsers/parse-compressed-texture';\nimport parseBasis from './lib/parsers/parse-basis';\n\nexport type TextureLoaderOptions = {\n 'compressed-texture'?: {\n libraryPath?: string;\n useBasis?: boolean;\n };\n};\n\nconst DEFAULT_TEXTURE_LOADER_OPTIONS = {\n 'compressed-texture': {\n libraryPath: 'libs/',\n useBasis: false\n }\n};\n\n/**\n * Worker Loader for KTX, DDS, and PVR texture container formats\n */\nexport const CompressedTextureWorkerLoader = {\n name: 'Texture Containers',\n id: 'compressed-texture',\n module: 'textures',\n version: VERSION,\n worker: true,\n extensions: [\n 'ktx',\n 'ktx2',\n 'dds', // WEBGL_compressed_texture_s3tc, WEBGL_compressed_texture_atc\n 'pvr' // WEBGL_compressed_texture_pvrtc\n ],\n mimeTypes: [\n 'image/ktx2',\n 'image/ktx',\n 'image/vnd-ms.dds',\n 'image/x-dds',\n 'application/octet-stream'\n ],\n binary: true,\n options: DEFAULT_TEXTURE_LOADER_OPTIONS\n};\n\n/**\n * Loader for KTX, DDS, and PVR texture container formats\n */\nexport const CompressedTextureLoader = {\n ...CompressedTextureWorkerLoader,\n parse: async (arrayBuffer, options) => {\n if (options['compressed-texture'].useBasis) {\n options.basis = {\n format: {\n alpha: 'BC3',\n noAlpha: 'BC1'\n },\n ...options.basis,\n containerFormat: 'ktx2',\n module: 'encoder'\n };\n return await parseBasis(arrayBuffer, options);\n }\n return parseCompressedTexture(arrayBuffer);\n }\n};\n\n// TYPE TESTS - TODO find a better way than exporting junk\nexport const _TypecheckCompressedTextureWorkerLoader: Loader = CompressedTextureWorkerLoader;\nexport const _TypecheckCompressedTextureLoader: LoaderWithParser = CompressedTextureLoader;\n"],"file":"compressed-texture-loader.js"}
1
+ {"version":3,"sources":["../src/compressed-texture-loader.ts"],"names":["VERSION","parseCompressedTexture","parseBasis","DEFAULT_TEXTURE_LOADER_OPTIONS","libraryPath","useBasis","CompressedTextureWorkerLoader","name","id","module","version","worker","extensions","mimeTypes","binary","options","CompressedTextureLoader","parse","arrayBuffer","basis","format","alpha","noAlpha","containerFormat","_TypecheckCompressedTextureWorkerLoader","_TypecheckCompressedTextureLoader"],"mappings":"AACA,SAAQA,OAAR,QAAsB,qBAAtB;AACA,SAAQC,sBAAR,QAAqC,wCAArC;AACA,OAAOC,UAAP,MAAuB,2BAAvB;AASA,MAAMC,8BAA8B,GAAG;AACrC,wBAAsB;AACpBC,IAAAA,WAAW,EAAE,OADO;AAEpBC,IAAAA,QAAQ,EAAE;AAFU;AADe,CAAvC;AAUA,OAAO,MAAMC,6BAA6B,GAAG;AAC3CC,EAAAA,IAAI,EAAE,oBADqC;AAE3CC,EAAAA,EAAE,EAAE,oBAFuC;AAG3CC,EAAAA,MAAM,EAAE,UAHmC;AAI3CC,EAAAA,OAAO,EAAEV,OAJkC;AAK3CW,EAAAA,MAAM,EAAE,IALmC;AAM3CC,EAAAA,UAAU,EAAE,CACV,KADU,EAEV,MAFU,EAGV,KAHU,EAIV,KAJU,CAN+B;AAY3CC,EAAAA,SAAS,EAAE,CACT,YADS,EAET,WAFS,EAGT,kBAHS,EAIT,aAJS,EAKT,0BALS,CAZgC;AAmB3CC,EAAAA,MAAM,EAAE,IAnBmC;AAoB3CC,EAAAA,OAAO,EAAEZ;AApBkC,CAAtC;AA0BP,OAAO,MAAMa,uBAAuB,GAAG,EACrC,GAAGV,6BADkC;AAErCW,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAoBH,OAApB,KAAgC;AACrC,QAAIA,OAAO,CAAC,oBAAD,CAAP,CAA8BV,QAAlC,EAA4C;AAC1CU,MAAAA,OAAO,CAACI,KAAR,GAAgB;AACdC,QAAAA,MAAM,EAAE;AACNC,UAAAA,KAAK,EAAE,KADD;AAENC,UAAAA,OAAO,EAAE;AAFH,SADM;AAKd,WAAGP,OAAO,CAACI,KALG;AAMdI,QAAAA,eAAe,EAAE,MANH;AAOdd,QAAAA,MAAM,EAAE;AAPM,OAAhB;AASA,aAAO,CAAC,MAAMP,UAAU,CAACgB,WAAD,EAAcH,OAAd,CAAjB,EAAyC,CAAzC,CAAP;AACD;;AACD,WAAOd,sBAAsB,CAACiB,WAAD,CAA7B;AACD;AAhBoC,CAAhC;AAoBP,OAAO,MAAMM,uCAA+C,GAAGlB,6BAAxD;AACP,OAAO,MAAMmB,iCAAmD,GAAGT,uBAA5D","sourcesContent":["import type {Loader, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport {parseCompressedTexture} from './lib/parsers/parse-compressed-texture';\nimport parseBasis from './lib/parsers/parse-basis';\n\nexport type TextureLoaderOptions = {\n 'compressed-texture'?: {\n libraryPath?: string;\n useBasis?: boolean;\n };\n};\n\nconst DEFAULT_TEXTURE_LOADER_OPTIONS = {\n 'compressed-texture': {\n libraryPath: 'libs/',\n useBasis: false\n }\n};\n\n/**\n * Worker Loader for KTX, DDS, and PVR texture container formats\n */\nexport const CompressedTextureWorkerLoader = {\n name: 'Texture Containers',\n id: 'compressed-texture',\n module: 'textures',\n version: VERSION,\n worker: true,\n extensions: [\n 'ktx',\n 'ktx2',\n 'dds', // WEBGL_compressed_texture_s3tc, WEBGL_compressed_texture_atc\n 'pvr' // WEBGL_compressed_texture_pvrtc\n ],\n mimeTypes: [\n 'image/ktx2',\n 'image/ktx',\n 'image/vnd-ms.dds',\n 'image/x-dds',\n 'application/octet-stream'\n ],\n binary: true,\n options: DEFAULT_TEXTURE_LOADER_OPTIONS\n};\n\n/**\n * Loader for KTX, DDS, and PVR texture container formats\n */\nexport const CompressedTextureLoader = {\n ...CompressedTextureWorkerLoader,\n parse: async (arrayBuffer, options) => {\n if (options['compressed-texture'].useBasis) {\n options.basis = {\n format: {\n alpha: 'BC3',\n noAlpha: 'BC1'\n },\n ...options.basis,\n containerFormat: 'ktx2',\n module: 'encoder'\n };\n return (await parseBasis(arrayBuffer, options))[0];\n }\n return parseCompressedTexture(arrayBuffer);\n }\n};\n\n// TYPE TESTS - TODO find a better way than exporting junk\nexport const _TypecheckCompressedTextureWorkerLoader: Loader = CompressedTextureWorkerLoader;\nexport const _TypecheckCompressedTextureLoader: LoaderWithParser = CompressedTextureLoader;\n"],"file":"compressed-texture-loader.js"}