@loaders.gl/textures 4.4.0-alpha.9 → 4.4.1

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 (164) hide show
  1. package/README.md +197 -1
  2. package/dist/basis-loader.d.ts +15 -10
  3. package/dist/basis-loader.d.ts.map +1 -1
  4. package/dist/basis-loader.js +0 -1
  5. package/dist/basis-loader.js.map +1 -1
  6. package/dist/basis-worker-node.js +797 -9971
  7. package/dist/basis-worker.js +300 -145
  8. package/dist/compressed-texture-loader.d.ts +0 -4
  9. package/dist/compressed-texture-loader.d.ts.map +1 -1
  10. package/dist/compressed-texture-loader.js +0 -1
  11. package/dist/compressed-texture-loader.js.map +1 -1
  12. package/dist/compressed-texture-worker.js +1110 -358
  13. package/dist/crunch-loader.d.ts +1 -5
  14. package/dist/crunch-loader.d.ts.map +1 -1
  15. package/dist/crunch-loader.js +1 -3
  16. package/dist/crunch-loader.js.map +1 -1
  17. package/dist/crunch-worker.js +168 -87
  18. package/dist/dist.dev.js +2648 -671
  19. package/dist/dist.min.js +1 -2
  20. package/dist/index.cjs +1642 -428
  21. package/dist/index.cjs.map +4 -4
  22. package/dist/index.d.ts +13 -4
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +6 -3
  25. package/dist/index.js.map +1 -1
  26. package/dist/ktx2-basis-writer-worker-node.js +444 -9763
  27. package/dist/ktx2-basis-writer-worker.js +13 -3
  28. package/dist/lib/composite-image/image-texture-cube.d.ts +47 -0
  29. package/dist/lib/composite-image/image-texture-cube.d.ts.map +1 -0
  30. package/dist/lib/composite-image/image-texture-cube.js +42 -0
  31. package/dist/lib/composite-image/image-texture-cube.js.map +1 -0
  32. package/dist/lib/composite-image/parse-composite-image.d.ts +43 -0
  33. package/dist/lib/composite-image/parse-composite-image.d.ts.map +1 -0
  34. package/dist/lib/composite-image/parse-composite-image.js +437 -0
  35. package/dist/lib/composite-image/parse-composite-image.js.map +1 -0
  36. package/dist/lib/encoders/encode-ktx2-basis-texture.d.ts.map +1 -1
  37. package/dist/lib/encoders/encode-ktx2-basis-texture.js +2 -1
  38. package/dist/lib/encoders/encode-ktx2-basis-texture.js.map +1 -1
  39. package/dist/lib/gl-extensions.d.ts +166 -58
  40. package/dist/lib/gl-extensions.d.ts.map +1 -1
  41. package/dist/lib/gl-extensions.js +177 -66
  42. package/dist/lib/gl-extensions.js.map +1 -1
  43. package/dist/lib/gl-types.d.ts +4 -0
  44. package/dist/lib/gl-types.d.ts.map +1 -0
  45. package/dist/lib/gl-types.js +5 -0
  46. package/dist/lib/gl-types.js.map +1 -0
  47. package/dist/lib/parsers/crunch-module-loader.d.ts +2 -2
  48. package/dist/lib/parsers/crunch-module-loader.d.ts.map +1 -1
  49. package/dist/lib/parsers/crunch-module-loader.js.map +1 -1
  50. package/dist/lib/parsers/parse-basis.d.ts +24 -2
  51. package/dist/lib/parsers/parse-basis.d.ts.map +1 -1
  52. package/dist/lib/parsers/parse-basis.js +262 -64
  53. package/dist/lib/parsers/parse-basis.js.map +1 -1
  54. package/dist/lib/parsers/parse-crunch.d.ts.map +1 -1
  55. package/dist/lib/parsers/parse-crunch.js +6 -6
  56. package/dist/lib/parsers/parse-crunch.js.map +1 -1
  57. package/dist/lib/parsers/parse-dds.d.ts.map +1 -1
  58. package/dist/lib/parsers/parse-dds.js +10 -11
  59. package/dist/lib/parsers/parse-dds.js.map +1 -1
  60. package/dist/lib/parsers/parse-hdr.d.ts +21 -0
  61. package/dist/lib/parsers/parse-hdr.d.ts.map +1 -0
  62. package/dist/lib/parsers/parse-hdr.js +305 -0
  63. package/dist/lib/parsers/parse-hdr.js.map +1 -0
  64. package/dist/lib/parsers/parse-ktx.d.ts.map +1 -1
  65. package/dist/lib/parsers/parse-ktx.js +10 -3
  66. package/dist/lib/parsers/parse-ktx.js.map +1 -1
  67. package/dist/lib/parsers/parse-pvr.d.ts.map +1 -1
  68. package/dist/lib/parsers/parse-pvr.js +31 -74
  69. package/dist/lib/parsers/parse-pvr.js.map +1 -1
  70. package/dist/lib/texture-api/generate-url.d.ts.map +1 -1
  71. package/dist/lib/texture-api/generate-url.js +2 -10
  72. package/dist/lib/texture-api/generate-url.js.map +1 -1
  73. package/dist/lib/texture-api/load-image-array.d.ts +6 -3
  74. package/dist/lib/texture-api/load-image-array.d.ts.map +1 -1
  75. package/dist/lib/texture-api/load-image-array.js +5 -3
  76. package/dist/lib/texture-api/load-image-array.js.map +1 -1
  77. package/dist/lib/texture-api/load-image-cube.d.ts +7 -11
  78. package/dist/lib/texture-api/load-image-cube.d.ts.map +1 -1
  79. package/dist/lib/texture-api/load-image-cube.js +8 -20
  80. package/dist/lib/texture-api/load-image-cube.js.map +1 -1
  81. package/dist/lib/texture-api/load-image.d.ts +6 -3
  82. package/dist/lib/texture-api/load-image.d.ts.map +1 -1
  83. package/dist/lib/texture-api/load-image.js +8 -4
  84. package/dist/lib/texture-api/load-image.js.map +1 -1
  85. package/dist/lib/texture-api/texture-api-types.d.ts +13 -0
  86. package/dist/lib/texture-api/texture-api-types.d.ts.map +1 -1
  87. package/dist/lib/utils/detect-supported-texture-formats.d.ts +14 -0
  88. package/dist/lib/utils/detect-supported-texture-formats.d.ts.map +1 -0
  89. package/dist/lib/utils/detect-supported-texture-formats.js +197 -0
  90. package/dist/lib/utils/detect-supported-texture-formats.js.map +1 -0
  91. package/dist/lib/utils/extract-mipmap-images.d.ts +6 -2
  92. package/dist/lib/utils/extract-mipmap-images.d.ts.map +1 -1
  93. package/dist/lib/utils/extract-mipmap-images.js +13 -2
  94. package/dist/lib/utils/extract-mipmap-images.js.map +1 -1
  95. package/dist/lib/utils/ktx-format-helper.d.ts +9 -1
  96. package/dist/lib/utils/ktx-format-helper.d.ts.map +1 -1
  97. package/dist/lib/utils/ktx-format-helper.js +76 -109
  98. package/dist/lib/utils/ktx-format-helper.js.map +1 -1
  99. package/dist/lib/utils/texture-format-map.d.ts +10 -0
  100. package/dist/lib/utils/texture-format-map.d.ts.map +1 -0
  101. package/dist/lib/utils/texture-format-map.js +87 -0
  102. package/dist/lib/utils/texture-format-map.js.map +1 -0
  103. package/dist/lib/utils/version.js +1 -1
  104. package/dist/lib/utils/version.js.map +1 -1
  105. package/dist/npy-loader.d.ts +2 -2
  106. package/dist/npy-worker.js +1 -1
  107. package/dist/radiance-hdr-loader.d.ts +25 -0
  108. package/dist/radiance-hdr-loader.d.ts.map +1 -0
  109. package/dist/radiance-hdr-loader.js +23 -0
  110. package/dist/radiance-hdr-loader.js.map +1 -0
  111. package/dist/texture-array-loader.d.ts +25 -0
  112. package/dist/texture-array-loader.d.ts.map +1 -0
  113. package/dist/texture-array-loader.js +24 -0
  114. package/dist/texture-array-loader.js.map +1 -0
  115. package/dist/texture-cube-array-loader.d.ts +25 -0
  116. package/dist/texture-cube-array-loader.d.ts.map +1 -0
  117. package/dist/texture-cube-array-loader.js +24 -0
  118. package/dist/texture-cube-array-loader.js.map +1 -0
  119. package/dist/texture-cube-loader.d.ts +25 -0
  120. package/dist/texture-cube-loader.d.ts.map +1 -0
  121. package/dist/texture-cube-loader.js +24 -0
  122. package/dist/texture-cube-loader.js.map +1 -0
  123. package/dist/texture-loader.d.ts +25 -0
  124. package/dist/texture-loader.d.ts.map +1 -0
  125. package/dist/texture-loader.js +24 -0
  126. package/dist/texture-loader.js.map +1 -0
  127. package/dist/workers/crunch-worker.d.ts +1 -3
  128. package/dist/workers/crunch-worker.d.ts.map +1 -1
  129. package/package.json +7 -7
  130. package/src/basis-loader.ts +19 -9
  131. package/src/compressed-texture-loader.ts +0 -3
  132. package/src/crunch-loader.ts +1 -5
  133. package/src/index.ts +21 -4
  134. package/src/lib/composite-image/image-texture-cube.ts +49 -0
  135. package/src/lib/composite-image/parse-composite-image.ts +699 -0
  136. package/src/lib/encoders/encode-ktx2-basis-texture.ts +2 -1
  137. package/src/lib/gl-extensions.ts +188 -81
  138. package/src/lib/gl-types.ts +136 -0
  139. package/src/lib/parsers/crunch-module-loader.ts +4 -4
  140. package/src/lib/parsers/parse-basis.ts +326 -62
  141. package/src/lib/parsers/parse-crunch.ts +11 -8
  142. package/src/lib/parsers/parse-dds.ts +11 -12
  143. package/src/lib/parsers/parse-hdr.ts +426 -0
  144. package/src/lib/parsers/parse-ktx.ts +13 -3
  145. package/src/lib/parsers/parse-pvr.ts +33 -75
  146. package/src/lib/texture-api/generate-url.ts +2 -12
  147. package/src/lib/texture-api/load-image-array.ts +15 -6
  148. package/src/lib/texture-api/load-image-cube.ts +20 -34
  149. package/src/lib/texture-api/load-image.ts +19 -8
  150. package/src/lib/texture-api/texture-api-types.ts +15 -0
  151. package/src/lib/utils/detect-supported-texture-formats.ts +210 -0
  152. package/src/lib/utils/extract-mipmap-images.ts +23 -4
  153. package/src/lib/utils/ktx-format-helper.ts +135 -111
  154. package/src/lib/utils/texture-format-map.ts +162 -0
  155. package/src/radiance-hdr-loader.ts +36 -0
  156. package/src/texture-array-loader.ts +46 -0
  157. package/src/texture-cube-array-loader.ts +49 -0
  158. package/src/texture-cube-loader.ts +46 -0
  159. package/src/texture-loader.ts +49 -0
  160. package/dist/lib/utils/texture-formats.d.ts +0 -8
  161. package/dist/lib/utils/texture-formats.d.ts.map +0 -1
  162. package/dist/lib/utils/texture-formats.js +0 -51
  163. package/dist/lib/utils/texture-formats.js.map +0 -1
  164. package/src/lib/utils/texture-formats.ts +0 -59
@@ -1,15 +1,31 @@
1
- import type { TextureLevel } from '@loaders.gl/schema';
1
+ import type { TextureFormat, TextureLevel } from '@loaders.gl/schema';
2
+ import type { GLTextureFormat } from "../gl-types.js";
2
3
  import type { BasisLoaderOptions } from "../../basis-loader.js";
3
4
  export type BasisFormat = 'etc1' | 'etc2' | 'bc1' | 'bc3' | 'bc4' | 'bc5' | 'bc7-m6-opaque-only' | 'bc7-m5' | 'pvrtc1-4-rgb' | 'pvrtc1-4-rgba' | 'astc-4x4' | 'atc-rgb' | 'atc-rgba-interpolated-alpha' | 'rgba32' | 'rgb565' | 'bgr565' | 'rgba4444';
5
+ type BasisOutputOptions = {
6
+ basisFormat: number;
7
+ compressed: boolean;
8
+ format?: GLTextureFormat;
9
+ textureFormat?: TextureFormat;
10
+ };
11
+ export declare const BASIS_FORMAT_TO_OUTPUT_OPTIONS: Record<BasisFormat, BasisOutputOptions>;
12
+ export declare const BASIS_FORMATS: readonly BasisFormat[];
4
13
  export type ParseBasisOptions = {
5
14
  format: 'auto' | BasisFormat | {
6
15
  alpha: BasisFormat;
7
16
  noAlpha: BasisFormat;
8
17
  };
9
- libraryPath?: string;
10
18
  containerFormat: 'auto' | 'ktx2' | 'basis';
11
19
  module: 'transcoder' | 'encoder';
20
+ supportedTextureFormats?: TextureFormat[];
12
21
  };
22
+ /**
23
+ * Serializes access to the Basis transcoder so concurrent callers do not enter the non-reentrant
24
+ * decoder path at the same time.
25
+ * @param transcode - Transcode operation to run with exclusive access.
26
+ * @returns The transcode result.
27
+ */
28
+ export declare function withBasisTranscodingLock<T>(transcode: () => Promise<T> | T): Promise<T>;
13
29
  /**
14
30
  * parse data with a Binomial Basis_Universal module
15
31
  * @param data
@@ -25,4 +41,10 @@ export declare function selectSupportedBasisFormat(): BasisFormat | {
25
41
  alpha: BasisFormat;
26
42
  noAlpha: BasisFormat;
27
43
  };
44
+ export declare function selectSupportedBasisFormat(supportedTextureFormats?: Iterable<TextureFormat>): BasisFormat | {
45
+ alpha: BasisFormat;
46
+ noAlpha: BasisFormat;
47
+ };
48
+ export declare function getSupportedBasisFormats(supportedTextureFormats?: Iterable<TextureFormat>): BasisFormat[];
49
+ export {};
28
50
  //# sourceMappingURL=parse-basis.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-basis.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-basis.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAOrD,OAAO,KAAK,EAAC,kBAAkB,EAAC,8BAA2B;AAE3D,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,MAAM,GACN,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,oBAAoB,GACpB,QAAQ,GACR,cAAc,GACd,eAAe,GACf,UAAU,GACV,SAAS,GACT,6BAA6B,GAC7B,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,UAAU,CAAC;AAoDf,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG;QAAC,KAAK,EAAE,WAAW,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAC,CAAC;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC3C,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC;CAClC,CAAC;AAEF;;;;;GAKG;AAEH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,WAAW,EACjB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAwB3B;AA2LD;;;GAGG;AACH,wBAAgB,0BAA0B,IACtC,WAAW,GACX;IACE,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;CACtB,CAoBJ"}
1
+ {"version":3,"file":"parse-basis.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-basis.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,aAAa,EAAE,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAGpE,OAAO,KAAK,EAAC,eAAe,EAAC,uBAAoB;AAsBjD,OAAO,KAAK,EAAC,kBAAkB,EAAC,8BAA2B;AAE3D,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,MAAM,GACN,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,oBAAoB,GACpB,QAAQ,GACR,cAAc,GACd,eAAe,GACf,UAAU,GACV,SAAS,GACT,6BAA6B,GAC7B,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,UAAU,CAAC;AAEf,KAAK,kBAAkB,GAAG;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,CAAC;AAIF,eAAO,MAAM,8BAA8B,EAAE,MAAM,CAAC,WAAW,EAAE,kBAAkB,CAuGlF,CAAC;AAEF,eAAO,MAAM,aAAa,wBAEzB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG;QAAC,KAAK,EAAE,WAAW,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAC,CAAC;IAC1E,eAAe,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC3C,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC;IACjC,uBAAuB,CAAC,EAAE,aAAa,EAAE,CAAC;CAC3C,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAe7F;AAED;;;;;GAKG;AAEH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,WAAW,EACjB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CA4B3B;AAoMD;;;GAGG;AACH,wBAAgB,0BAA0B,IACtC,WAAW,GACX;IACE,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;CACtB,CAAC;AACN,wBAAgB,0BAA0B,CAAC,uBAAuB,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,GACxF,WAAW,GACX;IACE,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;CACtB,CAAC;AAyEN,wBAAgB,wBAAwB,CACtC,uBAAuB,GAAE,QAAQ,CAAC,aAAa,CAAmC,GACjF,WAAW,EAAE,CAuEf"}
@@ -1,53 +1,137 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
+ import { extractLoadLibraryOptions } from '@loaders.gl/worker-utils';
4
5
  import { loadBasisEncoderModule, loadBasisTranscoderModule } from "./basis-module-loader.js";
5
- import { GL_EXTENSIONS_CONSTANTS } from "../gl-extensions.js";
6
- import { getSupportedGPUTextureFormats } from "../utils/texture-formats.js";
6
+ import { GL_COMPRESSED_RED_GREEN_RGTC2_EXT, GL_COMPRESSED_RED_RGTC1_EXT, GL_COMPRESSED_RGB_ATC_WEBGL, GL_COMPRESSED_RGB_ETC1_WEBGL, GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG, GL_COMPRESSED_RGB_S3TC_DXT1_EXT, GL_COMPRESSED_RGBA8_ETC2_EAC, GL_COMPRESSED_RGBA_ASTC_4x4_KHR, GL_COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL, GL_COMPRESSED_RGBA_BPTC_UNORM_EXT, GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, GL_RGB565, GL_RGBA4, GL_RGBA8 } from "../gl-extensions.js";
7
+ import { detectSupportedTextureFormats } from "../utils/detect-supported-texture-formats.js";
7
8
  import { isKTX } from "./parse-ktx.js";
8
- const OutputFormat = {
9
+ let basisTranscodingLock = Promise.resolve();
10
+ export const BASIS_FORMAT_TO_OUTPUT_OPTIONS = {
9
11
  etc1: {
10
12
  basisFormat: 0,
11
13
  compressed: true,
12
- format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ETC1_WEBGL
14
+ format: GL_COMPRESSED_RGB_ETC1_WEBGL,
15
+ textureFormat: 'etc1-rgb-unorm-webgl'
16
+ },
17
+ etc2: {
18
+ basisFormat: 1,
19
+ compressed: true,
20
+ format: GL_COMPRESSED_RGBA8_ETC2_EAC,
21
+ textureFormat: 'etc2-rgba8unorm'
13
22
  },
14
- etc2: { basisFormat: 1, compressed: true },
15
23
  bc1: {
16
24
  basisFormat: 2,
17
25
  compressed: true,
18
- format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT
26
+ format: GL_COMPRESSED_RGB_S3TC_DXT1_EXT,
27
+ textureFormat: 'bc1-rgb-unorm-webgl'
19
28
  },
20
29
  bc3: {
21
30
  basisFormat: 3,
22
31
  compressed: true,
23
- format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT
32
+ format: GL_COMPRESSED_RGBA_S3TC_DXT5_EXT,
33
+ textureFormat: 'bc3-rgba-unorm'
34
+ },
35
+ bc4: {
36
+ basisFormat: 4,
37
+ compressed: true,
38
+ format: GL_COMPRESSED_RED_RGTC1_EXT,
39
+ textureFormat: 'bc4-r-unorm'
40
+ },
41
+ bc5: {
42
+ basisFormat: 5,
43
+ compressed: true,
44
+ format: GL_COMPRESSED_RED_GREEN_RGTC2_EXT,
45
+ textureFormat: 'bc5-rg-unorm'
46
+ },
47
+ 'bc7-m6-opaque-only': {
48
+ basisFormat: 6,
49
+ compressed: true,
50
+ format: GL_COMPRESSED_RGBA_BPTC_UNORM_EXT,
51
+ textureFormat: 'bc7-rgba-unorm'
52
+ },
53
+ 'bc7-m5': {
54
+ basisFormat: 7,
55
+ compressed: true,
56
+ format: GL_COMPRESSED_RGBA_BPTC_UNORM_EXT,
57
+ textureFormat: 'bc7-rgba-unorm'
24
58
  },
25
- bc4: { basisFormat: 4, compressed: true },
26
- bc5: { basisFormat: 5, compressed: true },
27
- 'bc7-m6-opaque-only': { basisFormat: 6, compressed: true },
28
- 'bc7-m5': { basisFormat: 7, compressed: true },
29
59
  'pvrtc1-4-rgb': {
30
60
  basisFormat: 8,
31
61
  compressed: true,
32
- format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG
62
+ format: GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG,
63
+ textureFormat: 'pvrtc-rgb4unorm-webgl'
33
64
  },
34
65
  'pvrtc1-4-rgba': {
35
66
  basisFormat: 9,
36
67
  compressed: true,
37
- format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
68
+ format: GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,
69
+ textureFormat: 'pvrtc-rgba4unorm-webgl'
38
70
  },
39
71
  'astc-4x4': {
40
72
  basisFormat: 10,
41
73
  compressed: true,
42
- format: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4X4_KHR
43
- },
44
- 'atc-rgb': { basisFormat: 11, compressed: true },
45
- 'atc-rgba-interpolated-alpha': { basisFormat: 12, compressed: true },
46
- rgba32: { basisFormat: 13, compressed: false },
47
- rgb565: { basisFormat: 14, compressed: false },
48
- bgr565: { basisFormat: 15, compressed: false },
49
- rgba4444: { basisFormat: 16, compressed: false }
74
+ format: GL_COMPRESSED_RGBA_ASTC_4x4_KHR,
75
+ textureFormat: 'astc-4x4-unorm'
76
+ },
77
+ 'atc-rgb': {
78
+ basisFormat: 11,
79
+ compressed: true,
80
+ format: GL_COMPRESSED_RGB_ATC_WEBGL,
81
+ textureFormat: 'atc-rgb-unorm-webgl'
82
+ },
83
+ 'atc-rgba-interpolated-alpha': {
84
+ basisFormat: 12,
85
+ compressed: true,
86
+ format: GL_COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL,
87
+ textureFormat: 'atc-rgbai-unorm-webgl'
88
+ },
89
+ rgba32: {
90
+ basisFormat: 13,
91
+ compressed: false,
92
+ format: GL_RGBA8,
93
+ textureFormat: 'rgba8unorm'
94
+ },
95
+ rgb565: {
96
+ basisFormat: 14,
97
+ compressed: false,
98
+ format: GL_RGB565,
99
+ textureFormat: 'rgb565unorm-webgl'
100
+ },
101
+ bgr565: {
102
+ basisFormat: 15,
103
+ compressed: false,
104
+ format: GL_RGB565,
105
+ textureFormat: 'rgb565unorm-webgl'
106
+ },
107
+ rgba4444: {
108
+ basisFormat: 16,
109
+ compressed: false,
110
+ format: GL_RGBA4,
111
+ textureFormat: 'rgba4unorm-webgl'
112
+ }
50
113
  };
114
+ export const BASIS_FORMATS = Object.freeze(Object.keys(BASIS_FORMAT_TO_OUTPUT_OPTIONS));
115
+ /**
116
+ * Serializes access to the Basis transcoder so concurrent callers do not enter the non-reentrant
117
+ * decoder path at the same time.
118
+ * @param transcode - Transcode operation to run with exclusive access.
119
+ * @returns The transcode result.
120
+ */
121
+ export async function withBasisTranscodingLock(transcode) {
122
+ const previousLock = basisTranscodingLock;
123
+ let releaseLock;
124
+ basisTranscodingLock = new Promise((resolve) => {
125
+ releaseLock = resolve;
126
+ });
127
+ await previousLock;
128
+ try {
129
+ return await transcode();
130
+ }
131
+ finally {
132
+ releaseLock();
133
+ }
134
+ }
51
135
  /**
52
136
  * parse data with a Binomial Basis_Universal module
53
137
  * @param data
@@ -56,29 +140,32 @@ const OutputFormat = {
56
140
  */
57
141
  // eslint-disable-next-line complexity
58
142
  export async function parseBasis(data, options = {}) {
59
- if (!options.basis?.containerFormat || options.basis.containerFormat === 'auto') {
60
- if (isKTX(data)) {
61
- const fileConstructors = await loadBasisEncoderModule(options?.core || {});
62
- return parseKTX2File(fileConstructors.KTX2File, data, options);
63
- }
64
- const { BasisFile } = await loadBasisTranscoderModule(options?.core || {});
65
- return parseBasisFile(BasisFile, data, options);
66
- }
67
- switch (options.basis.module) {
68
- case 'encoder':
69
- const fileConstructors = await loadBasisEncoderModule(options?.core || {});
70
- switch (options.basis.containerFormat) {
71
- case 'ktx2':
72
- return parseKTX2File(fileConstructors.KTX2File, data, options);
73
- case 'basis':
74
- default:
75
- return parseBasisFile(fileConstructors.BasisFile, data, options);
143
+ const loadLibraryOptions = extractLoadLibraryOptions(options);
144
+ return await withBasisTranscodingLock(async () => {
145
+ if (!options.basis?.containerFormat || options.basis.containerFormat === 'auto') {
146
+ if (isKTX(data)) {
147
+ const fileConstructors = await loadBasisEncoderModule(loadLibraryOptions);
148
+ return parseKTX2File(fileConstructors.KTX2File, data, options);
76
149
  }
77
- case 'transcoder':
78
- default:
79
- const { BasisFile } = await loadBasisTranscoderModule(options.core || {});
150
+ const { BasisFile } = await loadBasisTranscoderModule(loadLibraryOptions);
80
151
  return parseBasisFile(BasisFile, data, options);
81
- }
152
+ }
153
+ switch (options.basis.module) {
154
+ case 'encoder':
155
+ const fileConstructors = await loadBasisEncoderModule(loadLibraryOptions);
156
+ switch (options.basis.containerFormat) {
157
+ case 'ktx2':
158
+ return parseKTX2File(fileConstructors.KTX2File, data, options);
159
+ case 'basis':
160
+ default:
161
+ return parseBasisFile(fileConstructors.BasisFile, data, options);
162
+ }
163
+ case 'transcoder':
164
+ default:
165
+ const { BasisFile } = await loadBasisTranscoderModule(loadLibraryOptions);
166
+ return parseBasisFile(BasisFile, data, options);
167
+ }
168
+ });
82
169
  }
83
170
  /**
84
171
  * Parse *.basis file data
@@ -124,7 +211,7 @@ function transcodeImage(basisFile, imageIndex, levelIndex, options) {
124
211
  // See https://github.com/BinomialLLC/basis_universal/pull/83
125
212
  const hasAlpha = basisFile.getHasAlpha( /* imageIndex, levelIndex */);
126
213
  // Check options for output format etc
127
- const { compressed, format, basisFormat } = getBasisOptions(options, hasAlpha);
214
+ const { compressed, format, basisFormat, textureFormat } = getBasisOptions(options, hasAlpha);
128
215
  const decodedSize = basisFile.getImageTranscodedSizeInBytes(imageIndex, levelIndex, basisFormat);
129
216
  const decodedData = new Uint8Array(decodedSize);
130
217
  if (!basisFile.transcodeImage(decodedData, imageIndex, levelIndex, basisFormat, 0, 0)) {
@@ -132,11 +219,13 @@ function transcodeImage(basisFile, imageIndex, levelIndex, options) {
132
219
  }
133
220
  return {
134
221
  // standard loaders.gl image category payload
222
+ shape: 'texture-level',
135
223
  width,
136
224
  height,
137
225
  data: decodedData,
138
226
  compressed,
139
- format,
227
+ ...(format !== undefined ? { format } : {}),
228
+ ...(textureFormat !== undefined ? { textureFormat } : {}),
140
229
  // Additional fields
141
230
  // Add levelSize field.
142
231
  hasAlpha
@@ -177,7 +266,7 @@ function parseKTX2File(KTX2File, data, options) {
177
266
  function transcodeKTX2Image(ktx2File, levelIndex, options) {
178
267
  const { alphaFlag, height, width } = ktx2File.getImageLevelInfo(levelIndex, 0, 0);
179
268
  // Check options for output format etc
180
- const { compressed, format, basisFormat } = getBasisOptions(options, alphaFlag);
269
+ const { compressed, format, basisFormat, textureFormat } = getBasisOptions(options, alphaFlag);
181
270
  const decodedSize = ktx2File.getImageTranscodedSizeInBytes(levelIndex, 0 /* layerIndex */, 0 /* faceIndex */, basisFormat);
182
271
  const decodedData = new Uint8Array(decodedSize);
183
272
  if (!ktx2File.transcodeImage(decodedData, levelIndex, 0 /* layerIndex */, 0 /* faceIndex */, basisFormat, 0, -1 /* channel0 */, -1 /* channel1 */)) {
@@ -185,14 +274,16 @@ function transcodeKTX2Image(ktx2File, levelIndex, options) {
185
274
  }
186
275
  return {
187
276
  // standard loaders.gl image category payload
277
+ shape: 'texture-level',
188
278
  width,
189
279
  height,
190
280
  data: decodedData,
191
281
  compressed,
282
+ ...(format !== undefined ? { format } : {}),
283
+ ...(textureFormat !== undefined ? { textureFormat } : {}),
192
284
  // Additional fields
193
285
  levelSize: decodedSize,
194
- hasAlpha: alphaFlag,
195
- format
286
+ hasAlpha: alphaFlag
196
287
  };
197
288
  }
198
289
  /**
@@ -202,44 +293,151 @@ function transcodeKTX2Image(ktx2File, levelIndex, options) {
202
293
  * @returns BasisFormat data
203
294
  */
204
295
  function getBasisOptions(options, hasAlpha) {
205
- // TODO - any
206
- let format = options.basis?.format;
296
+ let format = options.basis?.format || 'auto';
207
297
  if (format === 'auto') {
208
- format = selectSupportedBasisFormat();
298
+ format = options.basis?.supportedTextureFormats
299
+ ? selectSupportedBasisFormat(options.basis.supportedTextureFormats)
300
+ : selectSupportedBasisFormat();
209
301
  }
210
302
  if (typeof format === 'object') {
211
303
  format = hasAlpha ? format.alpha : format.noAlpha;
212
304
  }
213
- format = format.toLowerCase();
214
- return OutputFormat[format];
305
+ const normalizedFormat = format.toLowerCase();
306
+ const basisOutputOptions = BASIS_FORMAT_TO_OUTPUT_OPTIONS[normalizedFormat];
307
+ if (!basisOutputOptions) {
308
+ throw new Error(`Unknown Basis format ${format}`);
309
+ }
310
+ return basisOutputOptions;
215
311
  }
216
- /**
217
- * Select transcode format from the list of supported formats
218
- * @returns key for OutputFormat map
219
- */
220
- export function selectSupportedBasisFormat() {
221
- const supportedFormats = getSupportedGPUTextureFormats();
222
- if (supportedFormats.has('astc')) {
312
+ export function selectSupportedBasisFormat(supportedTextureFormats = detectSupportedTextureFormats()) {
313
+ const textureFormats = new Set(supportedTextureFormats);
314
+ if (hasSupportedTextureFormat(textureFormats, ['astc-4x4-unorm', 'astc-4x4-unorm-srgb'])) {
223
315
  return 'astc-4x4';
224
316
  }
225
- else if (supportedFormats.has('dxt')) {
317
+ else if (hasSupportedTextureFormat(textureFormats, ['bc7-rgba-unorm', 'bc7-rgba-unorm-srgb'])) {
318
+ return {
319
+ alpha: 'bc7-m5',
320
+ noAlpha: 'bc7-m6-opaque-only'
321
+ };
322
+ }
323
+ else if (hasSupportedTextureFormat(textureFormats, [
324
+ 'bc1-rgb-unorm-webgl',
325
+ 'bc1-rgb-unorm-srgb-webgl',
326
+ 'bc1-rgba-unorm',
327
+ 'bc1-rgba-unorm-srgb',
328
+ 'bc2-rgba-unorm',
329
+ 'bc2-rgba-unorm-srgb',
330
+ 'bc3-rgba-unorm',
331
+ 'bc3-rgba-unorm-srgb'
332
+ ])) {
226
333
  return {
227
334
  alpha: 'bc3',
228
335
  noAlpha: 'bc1'
229
336
  };
230
337
  }
231
- else if (supportedFormats.has('pvrtc')) {
338
+ else if (hasSupportedTextureFormat(textureFormats, [
339
+ 'pvrtc-rgb4unorm-webgl',
340
+ 'pvrtc-rgba4unorm-webgl',
341
+ 'pvrtc-rgb2unorm-webgl',
342
+ 'pvrtc-rgba2unorm-webgl'
343
+ ])) {
232
344
  return {
233
345
  alpha: 'pvrtc1-4-rgba',
234
346
  noAlpha: 'pvrtc1-4-rgb'
235
347
  };
236
348
  }
237
- else if (supportedFormats.has('etc1')) {
349
+ else if (hasSupportedTextureFormat(textureFormats, [
350
+ 'etc2-rgb8unorm',
351
+ 'etc2-rgb8unorm-srgb',
352
+ 'etc2-rgb8a1unorm',
353
+ 'etc2-rgb8a1unorm-srgb',
354
+ 'etc2-rgba8unorm',
355
+ 'etc2-rgba8unorm-srgb',
356
+ 'eac-r11unorm',
357
+ 'eac-r11snorm',
358
+ 'eac-rg11unorm',
359
+ 'eac-rg11snorm'
360
+ ])) {
361
+ return 'etc2';
362
+ }
363
+ else if (textureFormats.has('etc1-rgb-unorm-webgl')) {
238
364
  return 'etc1';
239
365
  }
240
- else if (supportedFormats.has('etc2')) {
241
- return 'etc2';
366
+ else if (hasSupportedTextureFormat(textureFormats, [
367
+ 'atc-rgb-unorm-webgl',
368
+ 'atc-rgba-unorm-webgl',
369
+ 'atc-rgbai-unorm-webgl'
370
+ ])) {
371
+ return {
372
+ alpha: 'atc-rgba-interpolated-alpha',
373
+ noAlpha: 'atc-rgb'
374
+ };
242
375
  }
243
376
  return 'rgb565';
244
377
  }
378
+ export function getSupportedBasisFormats(supportedTextureFormats = detectSupportedTextureFormats()) {
379
+ const textureFormats = new Set(supportedTextureFormats);
380
+ const basisFormats = [];
381
+ if (hasSupportedTextureFormat(textureFormats, ['astc-4x4-unorm', 'astc-4x4-unorm-srgb'])) {
382
+ basisFormats.push('astc-4x4');
383
+ }
384
+ if (hasSupportedTextureFormat(textureFormats, [
385
+ 'bc1-rgb-unorm-webgl',
386
+ 'bc1-rgb-unorm-srgb-webgl',
387
+ 'bc1-rgba-unorm',
388
+ 'bc1-rgba-unorm-srgb',
389
+ 'bc2-rgba-unorm',
390
+ 'bc2-rgba-unorm-srgb',
391
+ 'bc3-rgba-unorm',
392
+ 'bc3-rgba-unorm-srgb'
393
+ ])) {
394
+ basisFormats.push('bc1', 'bc3');
395
+ }
396
+ if (hasSupportedTextureFormat(textureFormats, ['bc4-r-unorm', 'bc4-r-snorm'])) {
397
+ basisFormats.push('bc4');
398
+ }
399
+ if (hasSupportedTextureFormat(textureFormats, ['bc5-rg-unorm', 'bc5-rg-snorm'])) {
400
+ basisFormats.push('bc5');
401
+ }
402
+ if (hasSupportedTextureFormat(textureFormats, ['bc7-rgba-unorm', 'bc7-rgba-unorm-srgb'])) {
403
+ basisFormats.push('bc7-m5', 'bc7-m6-opaque-only');
404
+ }
405
+ if (hasSupportedTextureFormat(textureFormats, [
406
+ 'pvrtc-rgb4unorm-webgl',
407
+ 'pvrtc-rgba4unorm-webgl',
408
+ 'pvrtc-rgb2unorm-webgl',
409
+ 'pvrtc-rgba2unorm-webgl'
410
+ ])) {
411
+ basisFormats.push('pvrtc1-4-rgb', 'pvrtc1-4-rgba');
412
+ }
413
+ if (hasSupportedTextureFormat(textureFormats, [
414
+ 'etc2-rgb8unorm',
415
+ 'etc2-rgb8unorm-srgb',
416
+ 'etc2-rgb8a1unorm',
417
+ 'etc2-rgb8a1unorm-srgb',
418
+ 'etc2-rgba8unorm',
419
+ 'etc2-rgba8unorm-srgb',
420
+ 'eac-r11unorm',
421
+ 'eac-r11snorm',
422
+ 'eac-rg11unorm',
423
+ 'eac-rg11snorm'
424
+ ])) {
425
+ basisFormats.push('etc2');
426
+ }
427
+ if (textureFormats.has('etc1-rgb-unorm-webgl')) {
428
+ basisFormats.push('etc1');
429
+ }
430
+ if (hasSupportedTextureFormat(textureFormats, [
431
+ 'atc-rgb-unorm-webgl',
432
+ 'atc-rgba-unorm-webgl',
433
+ 'atc-rgbai-unorm-webgl'
434
+ ])) {
435
+ basisFormats.push('atc-rgb', 'atc-rgba-interpolated-alpha');
436
+ }
437
+ basisFormats.push('rgba32', 'rgb565', 'bgr565', 'rgba4444');
438
+ return basisFormats;
439
+ }
440
+ function hasSupportedTextureFormat(supportedTextureFormats, candidateTextureFormats) {
441
+ return candidateTextureFormats.some((textureFormat) => supportedTextureFormats.has(textureFormat));
442
+ }
245
443
  //# sourceMappingURL=parse-basis.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-basis.js","sourceRoot":"","sources":["../../../src/lib/parsers/parse-basis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse-basis.js","sourceRoot":"","sources":["../../../src/lib/parsers/parse-basis.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-crunch.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-crunch.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAsCrD;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,IAAI,KAAA,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAmD7E"}
1
+ {"version":3,"file":"parse-crunch.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-crunch.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAgB,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAyCpE;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,IAAI,KAAA,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAmD7E"}
@@ -2,8 +2,8 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
  import { loadCrunchModule } from "./crunch-module-loader.js";
5
- import { GL_EXTENSIONS_CONSTANTS } from "../gl-extensions.js";
6
5
  import { assert } from '@loaders.gl/loader-utils';
6
+ import { extractLoadLibraryOptions } from '@loaders.gl/worker-utils';
7
7
  import { getDxt1LevelSize, getDxtXLevelSize } from "./parse-dds.js";
8
8
  import { extractMipmapImages } from "../utils/extract-mipmap-images.js";
9
9
  // Taken from crnlib.h
@@ -18,15 +18,15 @@ const CRN_FORMAT = {
18
18
  /** Mapping of Crunch formats to DXT formats. */
19
19
  const DXT_FORMAT_MAP = {
20
20
  [CRN_FORMAT.cCRNFmtDXT1]: {
21
- pixelFormat: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT,
21
+ textureFormat: 'bc1-rgb-unorm-webgl',
22
22
  sizeFunction: getDxt1LevelSize
23
23
  },
24
24
  [CRN_FORMAT.cCRNFmtDXT3]: {
25
- pixelFormat: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT,
25
+ textureFormat: 'bc2-rgba-unorm',
26
26
  sizeFunction: getDxtXLevelSize
27
27
  },
28
28
  [CRN_FORMAT.cCRNFmtDXT5]: {
29
- pixelFormat: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT,
29
+ textureFormat: 'bc3-rgba-unorm',
30
30
  sizeFunction: getDxtXLevelSize
31
31
  }
32
32
  };
@@ -39,7 +39,7 @@ let dst;
39
39
  * @returns Promise of Array of the texture levels
40
40
  */
41
41
  export async function parseCrunch(data, options) {
42
- const crunchModule = await loadCrunchModule(options);
42
+ const crunchModule = await loadCrunchModule(extractLoadLibraryOptions(options));
43
43
  // Copy the contents of the arrayBuffer into emscriptens heap.
44
44
  const srcSize = data.byteLength;
45
45
  const bytes = new Uint8Array(data);
@@ -79,7 +79,7 @@ export async function parseCrunch(data, options) {
79
79
  width,
80
80
  height,
81
81
  sizeFunction,
82
- internalFormat: DXT_FORMAT_MAP[format].pixelFormat
82
+ textureFormat: DXT_FORMAT_MAP[format].textureFormat
83
83
  });
84
84
  }
85
85
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"parse-crunch.js","sourceRoot":"","sources":["../../../src/lib/parsers/parse-crunch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse-crunch.js","sourceRoot":"","sources":["../../../src/lib/parsers/parse-crunch.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-dds.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-dds.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AA0CrD;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAIhD;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,EAAE,CA4B1D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtE"}
1
+ {"version":3,"file":"parse-dds.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-dds.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAgB,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAyCpE;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAIhD;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,EAAE,CA4B1D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtE"}
@@ -2,7 +2,6 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
  import { assert } from '@loaders.gl/loader-utils';
5
- import { GL_EXTENSIONS_CONSTANTS } from "../gl-extensions.js";
6
5
  import { extractMipmapImages } from "../utils/extract-mipmap-images.js";
7
6
  const DDS_CONSTANTS = {
8
7
  MAGIC_NUMBER: 0x20534444,
@@ -18,13 +17,13 @@ const DDS_CONSTANTS = {
18
17
  DDSD_MIPMAPCOUNT: 0x20000,
19
18
  DDPF_FOURCC: 0x4
20
19
  };
21
- const DDS_PIXEL_FORMATS = {
22
- DXT1: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT,
23
- DXT3: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT,
24
- DXT5: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT,
25
- 'ATC ': GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ATC_WEBGL,
26
- ATCA: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL,
27
- ATCI: GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL
20
+ const DDS_TEXTURE_FORMATS = {
21
+ DXT1: 'bc1-rgb-unorm-webgl',
22
+ DXT3: 'bc2-rgba-unorm',
23
+ DXT5: 'bc3-rgba-unorm',
24
+ 'ATC ': 'atc-rgb-unorm-webgl',
25
+ ATCA: 'atc-rgba-unorm-webgl',
26
+ ATCI: 'atc-rgbai-unorm-webgl'
28
27
  };
29
28
  const getATCLevelSize = getDxt1LevelSize;
30
29
  const getATCALevelSize = getDxtXLevelSize;
@@ -57,9 +56,9 @@ export function parseDDS(data) {
57
56
  const pixelFormatNumber = header[DDS_CONSTANTS.HEADER_PF_FOURCC_INDEX];
58
57
  assert(Boolean(header[DDS_CONSTANTS.HEADER_PF_FLAGS_INDEX] & DDS_CONSTANTS.DDPF_FOURCC), 'DDS: Unsupported format, must contain a FourCC code');
59
58
  const fourCC = int32ToFourCC(pixelFormatNumber);
60
- const internalFormat = DDS_PIXEL_FORMATS[fourCC];
59
+ const textureFormat = DDS_TEXTURE_FORMATS[fourCC];
61
60
  const sizeFunction = DDS_SIZE_FUNCTIONS[fourCC];
62
- assert(internalFormat && sizeFunction, `DDS: Unknown pixel format ${pixelFormatNumber}`);
61
+ assert(textureFormat && sizeFunction, `DDS: Unknown pixel format ${pixelFormatNumber}`);
63
62
  let mipMapLevels = 1;
64
63
  if (header[DDS_CONSTANTS.HEADER_FLAGS_INDEX] & DDS_CONSTANTS.DDSD_MIPMAPCOUNT) {
65
64
  mipMapLevels = Math.max(1, header[DDS_CONSTANTS.MIPMAPCOUNT_INDEX]);
@@ -73,7 +72,7 @@ export function parseDDS(data) {
73
72
  width,
74
73
  height,
75
74
  sizeFunction,
76
- internalFormat
75
+ textureFormat
77
76
  });
78
77
  }
79
78
  /**