@loaders.gl/textures 4.2.0-alpha.4 → 4.2.0-alpha.6

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 (110) hide show
  1. package/dist/basis-loader.js +27 -19
  2. package/dist/basis-worker-node.js +183 -127
  3. package/dist/basis-worker.js +5 -3
  4. package/dist/compressed-texture-loader.js +51 -31
  5. package/dist/compressed-texture-worker.js +5 -3
  6. package/dist/compressed-texture-writer.js +32 -19
  7. package/dist/crunch-loader.js +19 -13
  8. package/dist/crunch-worker.js +5 -3
  9. package/dist/dist.dev.js +326 -212
  10. package/dist/dist.min.js +10 -0
  11. package/dist/index.cjs +41 -60
  12. package/dist/index.cjs.map +7 -0
  13. package/dist/index.d.ts +16 -16
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +21 -13
  16. package/dist/ktx2-basis-writer-worker-node.js +183 -127
  17. package/dist/ktx2-basis-writer-worker.js +5 -3
  18. package/dist/ktx2-basis-writer.js +21 -15
  19. package/dist/lib/encoders/encode-ktx.js +6 -3
  20. package/dist/lib/encoders/encode-ktx2-basis-texture.js +38 -33
  21. package/dist/lib/encoders/encode-texture.d.ts +1 -1
  22. package/dist/lib/encoders/encode-texture.d.ts.map +1 -1
  23. package/dist/lib/encoders/encode-texture.js +23 -9
  24. package/dist/lib/gl-extensions.js +70 -59
  25. package/dist/lib/parsers/basis-module-loader.js +97 -61
  26. package/dist/lib/parsers/crunch-module-loader.js +29 -13
  27. package/dist/lib/parsers/parse-basis.js +217 -205
  28. package/dist/lib/parsers/parse-compressed-texture.js +20 -11
  29. package/dist/lib/parsers/parse-crunch.js +89 -59
  30. package/dist/lib/parsers/parse-dds.js +82 -53
  31. package/dist/lib/parsers/parse-ktx.js +37 -18
  32. package/dist/lib/parsers/parse-npy.js +70 -53
  33. package/dist/lib/parsers/parse-pvr.js +203 -112
  34. package/dist/lib/texture-api/async-deep-map.js +33 -28
  35. package/dist/lib/texture-api/deep-load.js +7 -5
  36. package/dist/lib/texture-api/generate-url.d.ts +1 -1
  37. package/dist/lib/texture-api/generate-url.d.ts.map +1 -1
  38. package/dist/lib/texture-api/generate-url.js +12 -10
  39. package/dist/lib/texture-api/load-image-array.d.ts +1 -1
  40. package/dist/lib/texture-api/load-image-array.d.ts.map +1 -1
  41. package/dist/lib/texture-api/load-image-array.js +13 -15
  42. package/dist/lib/texture-api/load-image-cube.d.ts +1 -1
  43. package/dist/lib/texture-api/load-image-cube.d.ts.map +1 -1
  44. package/dist/lib/texture-api/load-image-cube.js +32 -51
  45. package/dist/lib/texture-api/load-image.d.ts +1 -1
  46. package/dist/lib/texture-api/load-image.d.ts.map +1 -1
  47. package/dist/lib/texture-api/load-image.js +30 -36
  48. package/dist/lib/texture-api/texture-api-types.js +3 -1
  49. package/dist/lib/utils/extract-mipmap-images.js +43 -29
  50. package/dist/lib/utils/ktx-format-helper.js +119 -68
  51. package/dist/lib/utils/texture-formats.js +40 -26
  52. package/dist/lib/utils/version.js +7 -2
  53. package/dist/npy-loader.d.ts +1 -1
  54. package/dist/npy-loader.d.ts.map +1 -1
  55. package/dist/npy-loader.js +24 -15
  56. package/dist/npy-worker.js +4 -2
  57. package/dist/workers/basis-worker-node.js +4 -1
  58. package/dist/workers/basis-worker.js +3 -1
  59. package/dist/workers/compressed-texture-worker.js +4 -1
  60. package/dist/workers/crunch-worker.d.ts +1 -1
  61. package/dist/workers/crunch-worker.d.ts.map +1 -1
  62. package/dist/workers/crunch-worker.js +8 -3
  63. package/dist/workers/ktx2-basis-writer-worker-node.js +23 -26
  64. package/dist/workers/ktx2-basis-writer-worker.js +22 -26
  65. package/dist/workers/npy-worker.js +3 -1
  66. package/package.json +12 -10
  67. package/dist/basis-loader.js.map +0 -1
  68. package/dist/compressed-texture-loader.js.map +0 -1
  69. package/dist/compressed-texture-writer.js.map +0 -1
  70. package/dist/crunch-loader.js.map +0 -1
  71. package/dist/index.js.map +0 -1
  72. package/dist/ktx2-basis-writer.js.map +0 -1
  73. package/dist/lib/encoders/encode-ktx.js.map +0 -1
  74. package/dist/lib/encoders/encode-ktx2-basis-texture.js.map +0 -1
  75. package/dist/lib/encoders/encode-texture.js.map +0 -1
  76. package/dist/lib/gl-extensions.js.map +0 -1
  77. package/dist/lib/parsers/basis-module-loader.js.map +0 -1
  78. package/dist/lib/parsers/crunch-module-loader.js.map +0 -1
  79. package/dist/lib/parsers/parse-basis.js.map +0 -1
  80. package/dist/lib/parsers/parse-compressed-texture.js.map +0 -1
  81. package/dist/lib/parsers/parse-crunch.js.map +0 -1
  82. package/dist/lib/parsers/parse-dds.js.map +0 -1
  83. package/dist/lib/parsers/parse-ktx.js.map +0 -1
  84. package/dist/lib/parsers/parse-npy.js.map +0 -1
  85. package/dist/lib/parsers/parse-pvr.js.map +0 -1
  86. package/dist/lib/texture-api/async-deep-map.js.map +0 -1
  87. package/dist/lib/texture-api/deep-load.js.map +0 -1
  88. package/dist/lib/texture-api/generate-url.js.map +0 -1
  89. package/dist/lib/texture-api/load-image-array.js.map +0 -1
  90. package/dist/lib/texture-api/load-image-cube.js.map +0 -1
  91. package/dist/lib/texture-api/load-image.js.map +0 -1
  92. package/dist/lib/texture-api/texture-api-types.js.map +0 -1
  93. package/dist/lib/utils/extract-mipmap-images.js.map +0 -1
  94. package/dist/lib/utils/ktx-format-helper.js.map +0 -1
  95. package/dist/lib/utils/texture-formats.js.map +0 -1
  96. package/dist/lib/utils/version.js.map +0 -1
  97. package/dist/libs/libs/README.md +0 -9
  98. package/dist/libs/libs/basis_encoder.js +0 -21
  99. package/dist/libs/libs/basis_encoder.wasm +0 -0
  100. package/dist/libs/libs/basis_transcoder.js +0 -22
  101. package/dist/libs/libs/basis_transcoder.wasm +0 -0
  102. package/dist/libs/libs/crunch.js +0 -136
  103. package/dist/npy-loader.js.map +0 -1
  104. package/dist/workers/basis-worker-node.js.map +0 -1
  105. package/dist/workers/basis-worker.js.map +0 -1
  106. package/dist/workers/compressed-texture-worker.js.map +0 -1
  107. package/dist/workers/crunch-worker.js.map +0 -1
  108. package/dist/workers/ktx2-basis-writer-worker-node.js.map +0 -1
  109. package/dist/workers/ktx2-basis-writer-worker.js.map +0 -1
  110. package/dist/workers/npy-worker.js.map +0 -1
@@ -43,7 +43,7 @@
43
43
  );
44
44
  globalThis._loadersgl_.version = NPM_TAG;
45
45
  } else {
46
- globalThis._loadersgl_.version = "4.2.0-alpha.4";
46
+ globalThis._loadersgl_.version = "4.2.0-alpha.5";
47
47
  }
48
48
  }
49
49
  return globalThis._loadersgl_.version;
@@ -136,7 +136,9 @@
136
136
  }
137
137
  getParentPort().then((parentPort2) => {
138
138
  if (parentPort2) {
139
- parentPort2.on("message", handleMessage);
139
+ parentPort2.on("message", (message) => {
140
+ handleMessage(message);
141
+ });
140
142
  parentPort2.on("exit", () => console.debug("Node worker closing"));
141
143
  } else {
142
144
  globalThis.onmessage = handleMessage;
@@ -277,7 +279,7 @@
277
279
  }
278
280
 
279
281
  // src/lib/utils/version.ts
280
- var VERSION2 = true ? "4.2.0-alpha.4" : "latest";
282
+ var VERSION2 = true ? "4.2.0-alpha.5" : "latest";
281
283
 
282
284
  // src/lib/parsers/basis-module-loader.ts
283
285
  var BASIS_EXTERNAL_LIBRARIES = {
@@ -1,19 +1,25 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
1
4
  import { VERSION } from "./lib/utils/version.js";
2
5
  import { encodeKTX2BasisTexture } from "./lib/encoders/encode-ktx2-basis-texture.js";
6
+ /**
7
+ * Basis Universal Supercompressed GPU Texture.
8
+ * Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/textureSetDefinitionFormat.cmn.md
9
+ */
3
10
  export const KTX2BasisWriter = {
4
- name: 'Basis Universal Supercompressed GPU Texture',
5
- id: 'ktx2-basis-writer',
6
- module: 'textures',
7
- version: VERSION,
8
- extensions: ['ktx2'],
9
- options: {
10
- ['ktx2-basis-writer']: {
11
- useSRGB: false,
12
- qualityLevel: 10,
13
- encodeUASTC: false,
14
- mipmaps: false
15
- }
16
- },
17
- encode: encodeKTX2BasisTexture
11
+ name: 'Basis Universal Supercompressed GPU Texture',
12
+ id: 'ktx2-basis-writer',
13
+ module: 'textures',
14
+ version: VERSION,
15
+ extensions: ['ktx2'],
16
+ options: {
17
+ ['ktx2-basis-writer']: {
18
+ useSRGB: false,
19
+ qualityLevel: 10,
20
+ encodeUASTC: false,
21
+ mipmaps: false
22
+ }
23
+ },
24
+ encode: encodeKTX2BasisTexture
18
25
  };
19
- //# sourceMappingURL=ktx2-basis-writer.js.map
@@ -1,6 +1,9 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
1
4
  import { read } from 'ktx-parse';
2
5
  export function encodeKTX(texture) {
3
- const ktx = read(texture);
4
- return ktx;
6
+ const ktx = read(texture);
7
+ // post process
8
+ return ktx;
5
9
  }
6
- //# sourceMappingURL=encode-ktx.js.map
@@ -1,35 +1,40 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
1
4
  import { loadBasisEncoderModule } from "../parsers/basis-module-loader.js";
2
- export async function encodeKTX2BasisTexture(image) {
3
- let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
4
- const {
5
- useSRGB = false,
6
- qualityLevel = 10,
7
- encodeUASTC = false,
8
- mipmaps = false
9
- } = (options === null || options === void 0 ? void 0 : options['ktx2-basis-writer']) || {};
10
- const {
11
- BasisEncoder
12
- } = await loadBasisEncoderModule(options);
13
- const basisEncoder = new BasisEncoder();
14
- try {
15
- const basisFileData = new Uint8Array(image.width * image.height * 4);
16
- basisEncoder.setCreateKTX2File(true);
17
- basisEncoder.setKTX2UASTCSupercompression(true);
18
- basisEncoder.setKTX2SRGBTransferFunc(true);
19
- basisEncoder.setSliceSourceImage(0, image.data, image.width, image.height, false);
20
- basisEncoder.setPerceptual(useSRGB);
21
- basisEncoder.setMipSRGB(useSRGB);
22
- basisEncoder.setQualityLevel(qualityLevel);
23
- basisEncoder.setUASTC(encodeUASTC);
24
- basisEncoder.setMipGen(mipmaps);
25
- const numOutputBytes = basisEncoder.encode(basisFileData);
26
- const actualKTX2FileData = basisFileData.subarray(0, numOutputBytes).buffer;
27
- return actualKTX2FileData;
28
- } catch (error) {
29
- console.error('Basis Universal Supercompressed GPU Texture encoder Error: ', error);
30
- throw error;
31
- } finally {
32
- basisEncoder.delete();
33
- }
5
+ /**
6
+ * Encodes image to Basis Universal Supercompressed GPU Texture.
7
+ * Code example is taken from here - https://github.com/BinomialLLC/basis_universal/blob/master/webgl/ktx2_encode_test/index.html#L279
8
+ * BasisEncoder API - https://github.com/BinomialLLC/basis_universal/blob/master/webgl/transcoder/basis_wrappers.cpp#L1712
9
+ * @param image
10
+ * @param options
11
+ */
12
+ export async function encodeKTX2BasisTexture(image, options = {}) {
13
+ // TODO remove default values after writer options will be normalized like it done in load module.
14
+ const { useSRGB = false, qualityLevel = 10, encodeUASTC = false, mipmaps = false } = options?.['ktx2-basis-writer'] || {};
15
+ const { BasisEncoder } = await loadBasisEncoderModule(options);
16
+ const basisEncoder = new BasisEncoder();
17
+ try {
18
+ const basisFileData = new Uint8Array(image.width * image.height * 4);
19
+ basisEncoder.setCreateKTX2File(true);
20
+ basisEncoder.setKTX2UASTCSupercompression(true);
21
+ basisEncoder.setKTX2SRGBTransferFunc(true);
22
+ basisEncoder.setSliceSourceImage(0, image.data, image.width, image.height, false);
23
+ basisEncoder.setPerceptual(useSRGB);
24
+ basisEncoder.setMipSRGB(useSRGB);
25
+ basisEncoder.setQualityLevel(qualityLevel);
26
+ basisEncoder.setUASTC(encodeUASTC);
27
+ basisEncoder.setMipGen(mipmaps);
28
+ const numOutputBytes = basisEncoder.encode(basisFileData);
29
+ const actualKTX2FileData = basisFileData.subarray(0, numOutputBytes).buffer;
30
+ return actualKTX2FileData;
31
+ }
32
+ catch (error) {
33
+ // eslint-disable-next-line no-console
34
+ console.error('Basis Universal Supercompressed GPU Texture encoder Error: ', error);
35
+ throw error;
36
+ }
37
+ finally {
38
+ basisEncoder.delete();
39
+ }
34
40
  }
35
- //# sourceMappingURL=encode-ktx2-basis-texture.js.map
@@ -1,3 +1,3 @@
1
- import { CompressedTextureWriterOptions } from '../../compressed-texture-writer';
1
+ import { CompressedTextureWriterOptions } from "../../compressed-texture-writer.js";
2
2
  export declare function encodeImageURLToCompressedTextureURL(inputUrl: string, outputUrl: string, options?: CompressedTextureWriterOptions): Promise<string>;
3
3
  //# sourceMappingURL=encode-texture.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"encode-texture.d.ts","sourceRoot":"","sources":["../../../src/lib/encoders/encode-texture.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,8BAA8B,EAAC,MAAM,iCAAiC,CAAC;AAK/E,wBAAsB,oCAAoC,CACxD,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,8BAA8B,GACvC,OAAO,CAAC,MAAM,CAAC,CAkBjB"}
1
+ {"version":3,"file":"encode-texture.d.ts","sourceRoot":"","sources":["../../../src/lib/encoders/encode-texture.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,8BAA8B,EAAC,2CAAwC;AAK/E,wBAAsB,oCAAoC,CACxD,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,8BAA8B,GACvC,OAAO,CAAC,MAAM,CAAC,CAkBjB"}
@@ -1,12 +1,26 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
1
4
  import { ChildProcessProxy } from '@loaders.gl/worker-utils';
5
+ /*
6
+ * @see https://github.com/TimvanScherpenzeel/texture-compressor
7
+ */
2
8
  export async function encodeImageURLToCompressedTextureURL(inputUrl, outputUrl, options) {
3
- const args = ['texture-compressor', '--type', 's3tc', '--compression', 'DXT1', '--quality', 'normal', '--input', inputUrl, '--output', outputUrl];
4
- const childProcess = new ChildProcessProxy();
5
- await childProcess.start({
6
- command: 'npx',
7
- arguments: args,
8
- spawn: options
9
- });
10
- return outputUrl;
9
+ // prettier-ignore
10
+ const args = [
11
+ // Note: our actual executable is `npx`, so `texture-compressor` is an argument
12
+ 'texture-compressor',
13
+ '--type', 's3tc',
14
+ '--compression', 'DXT1',
15
+ '--quality', 'normal',
16
+ '--input', inputUrl,
17
+ '--output', outputUrl
18
+ ];
19
+ const childProcess = new ChildProcessProxy();
20
+ await childProcess.start({
21
+ command: 'npx',
22
+ arguments: args,
23
+ spawn: options
24
+ });
25
+ return outputUrl;
11
26
  }
12
- //# sourceMappingURL=encode-texture.js.map
@@ -1,61 +1,72 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ /* eslint-disable camelcase */
1
5
  export const GL_EXTENSIONS_CONSTANTS = {
2
- COMPRESSED_RGB_S3TC_DXT1_EXT: 0x83f0,
3
- COMPRESSED_RGBA_S3TC_DXT1_EXT: 0x83f1,
4
- COMPRESSED_RGBA_S3TC_DXT3_EXT: 0x83f2,
5
- COMPRESSED_RGBA_S3TC_DXT5_EXT: 0x83f3,
6
- COMPRESSED_R11_EAC: 0x9270,
7
- COMPRESSED_SIGNED_R11_EAC: 0x9271,
8
- COMPRESSED_RG11_EAC: 0x9272,
9
- COMPRESSED_SIGNED_RG11_EAC: 0x9273,
10
- COMPRESSED_RGB8_ETC2: 0x9274,
11
- COMPRESSED_RGBA8_ETC2_EAC: 0x9275,
12
- COMPRESSED_SRGB8_ETC2: 0x9276,
13
- COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: 0x9277,
14
- COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: 0x9278,
15
- COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: 0x9279,
16
- COMPRESSED_RGB_PVRTC_4BPPV1_IMG: 0x8c00,
17
- COMPRESSED_RGBA_PVRTC_4BPPV1_IMG: 0x8c02,
18
- COMPRESSED_RGB_PVRTC_2BPPV1_IMG: 0x8c01,
19
- COMPRESSED_RGBA_PVRTC_2BPPV1_IMG: 0x8c03,
20
- COMPRESSED_RGB_ETC1_WEBGL: 0x8d64,
21
- COMPRESSED_RGB_ATC_WEBGL: 0x8c92,
22
- COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL: 0x8c93,
23
- COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL: 0x87ee,
24
- COMPRESSED_RGBA_ASTC_4X4_KHR: 0x93b0,
25
- COMPRESSED_RGBA_ASTC_5X4_KHR: 0x93b1,
26
- COMPRESSED_RGBA_ASTC_5X5_KHR: 0x93b2,
27
- COMPRESSED_RGBA_ASTC_6X5_KHR: 0x93b3,
28
- COMPRESSED_RGBA_ASTC_6X6_KHR: 0x93b4,
29
- COMPRESSED_RGBA_ASTC_8X5_KHR: 0x93b5,
30
- COMPRESSED_RGBA_ASTC_8X6_KHR: 0x93b6,
31
- COMPRESSED_RGBA_ASTC_8X8_KHR: 0x93b7,
32
- COMPRESSED_RGBA_ASTC_10X5_KHR: 0x93b8,
33
- COMPRESSED_RGBA_ASTC_10X6_KHR: 0x93b9,
34
- COMPRESSED_RGBA_ASTC_10X8_KHR: 0x93ba,
35
- COMPRESSED_RGBA_ASTC_10X10_KHR: 0x93bb,
36
- COMPRESSED_RGBA_ASTC_12X10_KHR: 0x93bc,
37
- COMPRESSED_RGBA_ASTC_12X12_KHR: 0x93bd,
38
- COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR: 0x93d0,
39
- COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR: 0x93d1,
40
- COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR: 0x93d2,
41
- COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR: 0x93d3,
42
- COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR: 0x93d4,
43
- COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR: 0x93d5,
44
- COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR: 0x93d6,
45
- COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR: 0x93d7,
46
- COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR: 0x93d8,
47
- COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR: 0x93d9,
48
- COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR: 0x93da,
49
- COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR: 0x93db,
50
- COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR: 0x93dc,
51
- COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR: 0x93dd,
52
- COMPRESSED_RED_RGTC1_EXT: 0x8dbb,
53
- COMPRESSED_SIGNED_RED_RGTC1_EXT: 0x8dbc,
54
- COMPRESSED_RED_GREEN_RGTC2_EXT: 0x8dbd,
55
- COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT: 0x8dbe,
56
- COMPRESSED_SRGB_S3TC_DXT1_EXT: 0x8c4c,
57
- COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: 0x8c4d,
58
- COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: 0x8c4e,
59
- COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: 0x8c4f
6
+ // WEBGL_compressed_texture_s3tc
7
+ COMPRESSED_RGB_S3TC_DXT1_EXT: 0x83f0,
8
+ COMPRESSED_RGBA_S3TC_DXT1_EXT: 0x83f1,
9
+ COMPRESSED_RGBA_S3TC_DXT3_EXT: 0x83f2,
10
+ COMPRESSED_RGBA_S3TC_DXT5_EXT: 0x83f3,
11
+ // WEBGL_compressed_texture_es3
12
+ COMPRESSED_R11_EAC: 0x9270,
13
+ COMPRESSED_SIGNED_R11_EAC: 0x9271,
14
+ COMPRESSED_RG11_EAC: 0x9272,
15
+ COMPRESSED_SIGNED_RG11_EAC: 0x9273,
16
+ COMPRESSED_RGB8_ETC2: 0x9274,
17
+ COMPRESSED_RGBA8_ETC2_EAC: 0x9275,
18
+ COMPRESSED_SRGB8_ETC2: 0x9276,
19
+ COMPRESSED_SRGB8_ALPHA8_ETC2_EAC: 0x9277,
20
+ COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: 0x9278,
21
+ COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: 0x9279,
22
+ // WEBGL_compressed_texture_pvrtc
23
+ COMPRESSED_RGB_PVRTC_4BPPV1_IMG: 0x8c00,
24
+ COMPRESSED_RGBA_PVRTC_4BPPV1_IMG: 0x8c02,
25
+ COMPRESSED_RGB_PVRTC_2BPPV1_IMG: 0x8c01,
26
+ COMPRESSED_RGBA_PVRTC_2BPPV1_IMG: 0x8c03,
27
+ // WEBGL_compressed_texture_etc1
28
+ COMPRESSED_RGB_ETC1_WEBGL: 0x8d64,
29
+ // WEBGL_compressed_texture_atc
30
+ COMPRESSED_RGB_ATC_WEBGL: 0x8c92,
31
+ COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL: 0x8c93,
32
+ COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL: 0x87ee,
33
+ // WEBGL_compressed_texture_astc
34
+ COMPRESSED_RGBA_ASTC_4X4_KHR: 0x93b0,
35
+ COMPRESSED_RGBA_ASTC_5X4_KHR: 0x93b1,
36
+ COMPRESSED_RGBA_ASTC_5X5_KHR: 0x93b2,
37
+ COMPRESSED_RGBA_ASTC_6X5_KHR: 0x93b3,
38
+ COMPRESSED_RGBA_ASTC_6X6_KHR: 0x93b4,
39
+ COMPRESSED_RGBA_ASTC_8X5_KHR: 0x93b5,
40
+ COMPRESSED_RGBA_ASTC_8X6_KHR: 0x93b6,
41
+ COMPRESSED_RGBA_ASTC_8X8_KHR: 0x93b7,
42
+ COMPRESSED_RGBA_ASTC_10X5_KHR: 0x93b8,
43
+ COMPRESSED_RGBA_ASTC_10X6_KHR: 0x93b9,
44
+ COMPRESSED_RGBA_ASTC_10X8_KHR: 0x93ba,
45
+ COMPRESSED_RGBA_ASTC_10X10_KHR: 0x93bb,
46
+ COMPRESSED_RGBA_ASTC_12X10_KHR: 0x93bc,
47
+ COMPRESSED_RGBA_ASTC_12X12_KHR: 0x93bd,
48
+ COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR: 0x93d0,
49
+ COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR: 0x93d1,
50
+ COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR: 0x93d2,
51
+ COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR: 0x93d3,
52
+ COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR: 0x93d4,
53
+ COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR: 0x93d5,
54
+ COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR: 0x93d6,
55
+ COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR: 0x93d7,
56
+ COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR: 0x93d8,
57
+ COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR: 0x93d9,
58
+ COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR: 0x93da,
59
+ COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR: 0x93db,
60
+ COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR: 0x93dc,
61
+ COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR: 0x93dd,
62
+ // EXT_texture_compression_rgtc
63
+ COMPRESSED_RED_RGTC1_EXT: 0x8dbb,
64
+ COMPRESSED_SIGNED_RED_RGTC1_EXT: 0x8dbc,
65
+ COMPRESSED_RED_GREEN_RGTC2_EXT: 0x8dbd,
66
+ COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT: 0x8dbe,
67
+ // WEBGL_compressed_texture_s3tc_srgb
68
+ COMPRESSED_SRGB_S3TC_DXT1_EXT: 0x8c4c,
69
+ COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT: 0x8c4d,
70
+ COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT: 0x8c4e,
71
+ COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT: 0x8c4f
60
72
  };
61
- //# sourceMappingURL=gl-extensions.js.map
@@ -1,80 +1,116 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
1
4
  import { loadLibrary } from '@loaders.gl/worker-utils';
2
5
  export const BASIS_EXTERNAL_LIBRARIES = {
3
- TRANSCODER: 'basis_transcoder.js',
4
- TRANSCODER_WASM: 'basis_transcoder.wasm',
5
- ENCODER: 'basis_encoder.js',
6
- ENCODER_WASM: 'basis_encoder.wasm'
6
+ /** Basis transcoder, javascript wrapper part */
7
+ TRANSCODER: 'basis_transcoder.js',
8
+ /** Basis transcoder, compiled web assembly part */
9
+ TRANSCODER_WASM: 'basis_transcoder.wasm',
10
+ /** Basis encoder, javascript wrapper part */
11
+ ENCODER: 'basis_encoder.js',
12
+ /** Basis encoder, compiled web assembly part */
13
+ ENCODER_WASM: 'basis_encoder.wasm'
7
14
  };
8
15
  let loadBasisTranscoderPromise;
16
+ /**
17
+ * Loads wasm transcoder module
18
+ * @param options
19
+ * @returns {BasisFile} promise
20
+ */
9
21
  export async function loadBasisTranscoderModule(options) {
10
- const modules = options.modules || {};
11
- if (modules.basis) {
12
- return modules.basis;
13
- }
14
- loadBasisTranscoderPromise = loadBasisTranscoderPromise || loadBasisTranscoder(options);
15
- return await loadBasisTranscoderPromise;
22
+ const modules = options.modules || {};
23
+ if (modules.basis) {
24
+ return modules.basis;
25
+ }
26
+ loadBasisTranscoderPromise = loadBasisTranscoderPromise || loadBasisTranscoder(options);
27
+ return await loadBasisTranscoderPromise;
16
28
  }
29
+ /**
30
+ * Loads wasm transcoder module
31
+ * @param options
32
+ * @returns {BasisFile} promise
33
+ */
17
34
  async function loadBasisTranscoder(options) {
18
- let BASIS = null;
19
- let wasmBinary = null;
20
- [BASIS, wasmBinary] = await Promise.all([await loadLibrary(BASIS_EXTERNAL_LIBRARIES.TRANSCODER, 'textures', options), await loadLibrary(BASIS_EXTERNAL_LIBRARIES.TRANSCODER_WASM, 'textures', options)]);
21
- BASIS = BASIS || globalThis.BASIS;
22
- return await initializeBasisTranscoderModule(BASIS, wasmBinary);
35
+ let BASIS = null;
36
+ let wasmBinary = null;
37
+ [BASIS, wasmBinary] = await Promise.all([
38
+ await loadLibrary(BASIS_EXTERNAL_LIBRARIES.TRANSCODER, 'textures', options),
39
+ await loadLibrary(BASIS_EXTERNAL_LIBRARIES.TRANSCODER_WASM, 'textures', options)
40
+ ]);
41
+ // Depends on how import happened...
42
+ // @ts-ignore TS2339: Property does not exist on type
43
+ BASIS = BASIS || globalThis.BASIS;
44
+ return await initializeBasisTranscoderModule(BASIS, wasmBinary);
23
45
  }
46
+ /**
47
+ * Initialize wasm transcoder module
48
+ * @param BasisModule - js part of the module
49
+ * @param wasmBinary - wasm part of the module
50
+ * @returns {BasisFile} promise
51
+ */
24
52
  function initializeBasisTranscoderModule(BasisModule, wasmBinary) {
25
- const options = {};
26
- if (wasmBinary) {
27
- options.wasmBinary = wasmBinary;
28
- }
29
- return new Promise(resolve => {
30
- BasisModule(options).then(module => {
31
- const {
32
- BasisFile,
33
- initializeBasis
34
- } = module;
35
- initializeBasis();
36
- resolve({
37
- BasisFile
38
- });
53
+ const options = {};
54
+ if (wasmBinary) {
55
+ options.wasmBinary = wasmBinary;
56
+ }
57
+ return new Promise((resolve) => {
58
+ // if you try to return BasisModule the browser crashes!
59
+ BasisModule(options).then((module) => {
60
+ const { BasisFile, initializeBasis } = module;
61
+ initializeBasis();
62
+ resolve({ BasisFile });
63
+ });
39
64
  });
40
- });
41
65
  }
42
66
  let loadBasisEncoderPromise;
67
+ /**
68
+ * Loads wasm encoder module
69
+ * @param options
70
+ * @returns {BasisFile, KTX2File} promise
71
+ */
43
72
  export async function loadBasisEncoderModule(options) {
44
- const modules = options.modules || {};
45
- if (modules.basisEncoder) {
46
- return modules.basisEncoder;
47
- }
48
- loadBasisEncoderPromise = loadBasisEncoderPromise || loadBasisEncoder(options);
49
- return await loadBasisEncoderPromise;
73
+ const modules = options.modules || {};
74
+ if (modules.basisEncoder) {
75
+ return modules.basisEncoder;
76
+ }
77
+ loadBasisEncoderPromise = loadBasisEncoderPromise || loadBasisEncoder(options);
78
+ return await loadBasisEncoderPromise;
50
79
  }
80
+ /**
81
+ * Loads wasm encoder module
82
+ * @param options
83
+ * @returns {BasisFile, KTX2File} promise
84
+ */
51
85
  async function loadBasisEncoder(options) {
52
- let BASIS_ENCODER = null;
53
- let wasmBinary = null;
54
- [BASIS_ENCODER, wasmBinary] = await Promise.all([await loadLibrary(BASIS_EXTERNAL_LIBRARIES.ENCODER, 'textures', options), await loadLibrary(BASIS_EXTERNAL_LIBRARIES.ENCODER_WASM, 'textures', options)]);
55
- BASIS_ENCODER = BASIS_ENCODER || globalThis.BASIS;
56
- return await initializeBasisEncoderModule(BASIS_ENCODER, wasmBinary);
86
+ let BASIS_ENCODER = null;
87
+ let wasmBinary = null;
88
+ [BASIS_ENCODER, wasmBinary] = await Promise.all([
89
+ await loadLibrary(BASIS_EXTERNAL_LIBRARIES.ENCODER, 'textures', options),
90
+ await loadLibrary(BASIS_EXTERNAL_LIBRARIES.ENCODER_WASM, 'textures', options)
91
+ ]);
92
+ // Depends on how import happened...
93
+ // @ts-ignore TS2339: Property does not exist on type
94
+ BASIS_ENCODER = BASIS_ENCODER || globalThis.BASIS;
95
+ return await initializeBasisEncoderModule(BASIS_ENCODER, wasmBinary);
57
96
  }
97
+ /**
98
+ * Initialize wasm transcoder module
99
+ * @param BasisEncoderModule - js part of the module
100
+ * @param wasmBinary - wasm part of the module
101
+ * @returns {BasisFile, KTX2File} promise
102
+ */
58
103
  function initializeBasisEncoderModule(BasisEncoderModule, wasmBinary) {
59
- const options = {};
60
- if (wasmBinary) {
61
- options.wasmBinary = wasmBinary;
62
- }
63
- return new Promise(resolve => {
64
- BasisEncoderModule(options).then(module => {
65
- const {
66
- BasisFile,
67
- KTX2File,
68
- initializeBasis,
69
- BasisEncoder
70
- } = module;
71
- initializeBasis();
72
- resolve({
73
- BasisFile,
74
- KTX2File,
75
- BasisEncoder
76
- });
104
+ const options = {};
105
+ if (wasmBinary) {
106
+ options.wasmBinary = wasmBinary;
107
+ }
108
+ return new Promise((resolve) => {
109
+ // if you try to return BasisModule the browser crashes!
110
+ BasisEncoderModule(options).then((module) => {
111
+ const { BasisFile, KTX2File, initializeBasis, BasisEncoder } = module;
112
+ initializeBasis();
113
+ resolve({ BasisFile, KTX2File, BasisEncoder });
114
+ });
77
115
  });
78
- });
79
116
  }
80
- //# sourceMappingURL=basis-module-loader.js.map
@@ -1,22 +1,38 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ // @ts-nocheck
1
5
  import { loadLibrary } from '@loaders.gl/worker-utils';
2
6
  export const CRUNCH_EXTERNAL_LIBRARIES = {
3
- DECODER: 'crunch.js'
7
+ /** Crunch decoder library. It is used as dynamically imported script */
8
+ DECODER: 'crunch.js'
4
9
  };
10
+ /**
11
+ * Load crunch decoder module
12
+ * @param options - loader options
13
+ * @returns Promise of module object
14
+ */
5
15
  export async function loadCrunchModule(options) {
6
- const modules = options.modules || {};
7
- if (modules.crunch) {
8
- return modules.crunch;
9
- }
10
- return loadCrunch(options);
16
+ const modules = options.modules || {};
17
+ if (modules.crunch) {
18
+ return modules.crunch;
19
+ }
20
+ return loadCrunch(options);
11
21
  }
12
22
  let crunchModule;
23
+ /**
24
+ * Load crunch decoder module
25
+ * @param {any} options - Loader options
26
+ * @returns {Promise<any>} Promise of Module object
27
+ */
13
28
  async function loadCrunch(options) {
14
- if (crunchModule) {
29
+ if (crunchModule) {
30
+ return crunchModule;
31
+ }
32
+ let loadCrunchDecoder = await loadLibrary(CRUNCH_EXTERNAL_LIBRARIES.DECODER, 'textures', options);
33
+ // Depends on how import happened...
34
+ // @ts-ignore TS2339: Property does not exist on type
35
+ loadCrunchDecoder = loadCrunchDecoder || globalThis.LoadCrunchDecoder;
36
+ crunchModule = loadCrunchDecoder();
15
37
  return crunchModule;
16
- }
17
- let loadCrunchDecoder = await loadLibrary(CRUNCH_EXTERNAL_LIBRARIES.DECODER, 'textures', options);
18
- loadCrunchDecoder = loadCrunchDecoder || globalThis.LoadCrunchDecoder;
19
- crunchModule = loadCrunchDecoder();
20
- return crunchModule;
21
38
  }
22
- //# sourceMappingURL=crunch-module-loader.js.map