@loaders.gl/textures 4.4.0-alpha.2 → 4.4.0

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 (234) 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 +1 -1
  5. package/dist/basis-loader.js.map +1 -0
  6. package/dist/basis-worker-node.js +932 -10040
  7. package/dist/basis-worker.d.ts +2 -0
  8. package/dist/basis-worker.d.ts.map +1 -0
  9. package/dist/basis-worker.js +337 -151
  10. package/dist/basis-worker.js.map +1 -0
  11. package/dist/compressed-texture-loader.d.ts +2 -5
  12. package/dist/compressed-texture-loader.d.ts.map +1 -1
  13. package/dist/compressed-texture-loader.js +2 -3
  14. package/dist/compressed-texture-loader.js.map +1 -0
  15. package/dist/compressed-texture-worker.d.ts +2 -0
  16. package/dist/compressed-texture-worker.d.ts.map +1 -0
  17. package/dist/compressed-texture-worker.js +1148 -365
  18. package/dist/compressed-texture-worker.js.map +1 -0
  19. package/dist/compressed-texture-writer.js +1 -0
  20. package/dist/compressed-texture-writer.js.map +1 -0
  21. package/dist/crunch-loader.d.ts +1 -5
  22. package/dist/crunch-loader.d.ts.map +1 -1
  23. package/dist/crunch-loader.js +2 -3
  24. package/dist/crunch-loader.js.map +1 -0
  25. package/dist/crunch-worker.d.ts +2 -0
  26. package/dist/crunch-worker.d.ts.map +1 -0
  27. package/dist/crunch-worker.js +204 -92
  28. package/dist/crunch-worker.js.map +1 -0
  29. package/dist/dist.dev.js +2687 -677
  30. package/dist/dist.min.js +1 -2
  31. package/dist/index.cjs +1644 -428
  32. package/dist/index.cjs.map +4 -4
  33. package/dist/index.d.ts +13 -4
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +7 -3
  36. package/dist/index.js.map +1 -0
  37. package/dist/ktx2-basis-writer-worker-node.js +574 -9832
  38. package/dist/ktx2-basis-writer-worker.d.ts +2 -0
  39. package/dist/ktx2-basis-writer-worker.d.ts.map +1 -0
  40. package/dist/ktx2-basis-writer-worker.js +45 -7
  41. package/dist/ktx2-basis-writer-worker.js.map +1 -0
  42. package/dist/ktx2-basis-writer.js +1 -0
  43. package/dist/ktx2-basis-writer.js.map +1 -0
  44. package/dist/lib/composite-image/image-texture-cube.d.ts +47 -0
  45. package/dist/lib/composite-image/image-texture-cube.d.ts.map +1 -0
  46. package/dist/lib/composite-image/image-texture-cube.js +42 -0
  47. package/dist/lib/composite-image/image-texture-cube.js.map +1 -0
  48. package/dist/lib/composite-image/parse-composite-image.d.ts +43 -0
  49. package/dist/lib/composite-image/parse-composite-image.d.ts.map +1 -0
  50. package/dist/lib/composite-image/parse-composite-image.js +437 -0
  51. package/dist/lib/composite-image/parse-composite-image.js.map +1 -0
  52. package/dist/lib/encoders/encode-ktx.d.ts +1 -1
  53. package/dist/lib/encoders/encode-ktx.d.ts.map +1 -1
  54. package/dist/lib/encoders/encode-ktx.js +1 -0
  55. package/dist/lib/encoders/encode-ktx.js.map +1 -0
  56. package/dist/lib/encoders/encode-ktx2-basis-texture.d.ts +2 -1
  57. package/dist/lib/encoders/encode-ktx2-basis-texture.d.ts.map +1 -1
  58. package/dist/lib/encoders/encode-ktx2-basis-texture.js +3 -1
  59. package/dist/lib/encoders/encode-ktx2-basis-texture.js.map +1 -0
  60. package/dist/lib/encoders/encode-texture.js +1 -0
  61. package/dist/lib/encoders/encode-texture.js.map +1 -0
  62. package/dist/lib/gl-extensions.d.ts +166 -58
  63. package/dist/lib/gl-extensions.d.ts.map +1 -1
  64. package/dist/lib/gl-extensions.js +178 -66
  65. package/dist/lib/gl-extensions.js.map +1 -0
  66. package/dist/lib/gl-types.d.ts +4 -0
  67. package/dist/lib/gl-types.d.ts.map +1 -0
  68. package/dist/lib/gl-types.js +5 -0
  69. package/dist/lib/gl-types.js.map +1 -0
  70. package/dist/lib/parsers/basis-module-loader.d.ts +3 -2
  71. package/dist/lib/parsers/basis-module-loader.d.ts.map +1 -1
  72. package/dist/lib/parsers/basis-module-loader.js +1 -0
  73. package/dist/lib/parsers/basis-module-loader.js.map +1 -0
  74. package/dist/lib/parsers/crunch-module-loader.d.ts +2 -2
  75. package/dist/lib/parsers/crunch-module-loader.d.ts.map +1 -1
  76. package/dist/lib/parsers/crunch-module-loader.js +1 -0
  77. package/dist/lib/parsers/crunch-module-loader.js.map +1 -0
  78. package/dist/lib/parsers/parse-basis.d.ts +34 -2
  79. package/dist/lib/parsers/parse-basis.d.ts.map +1 -1
  80. package/dist/lib/parsers/parse-basis.js +265 -64
  81. package/dist/lib/parsers/parse-basis.js.map +1 -0
  82. package/dist/lib/parsers/parse-compressed-texture.js +1 -0
  83. package/dist/lib/parsers/parse-compressed-texture.js.map +1 -0
  84. package/dist/lib/parsers/parse-crunch.d.ts.map +1 -1
  85. package/dist/lib/parsers/parse-crunch.js +7 -6
  86. package/dist/lib/parsers/parse-crunch.js.map +1 -0
  87. package/dist/lib/parsers/parse-dds.d.ts.map +1 -1
  88. package/dist/lib/parsers/parse-dds.js +11 -11
  89. package/dist/lib/parsers/parse-dds.js.map +1 -0
  90. package/dist/lib/parsers/parse-hdr.d.ts +21 -0
  91. package/dist/lib/parsers/parse-hdr.d.ts.map +1 -0
  92. package/dist/lib/parsers/parse-hdr.js +305 -0
  93. package/dist/lib/parsers/parse-hdr.js.map +1 -0
  94. package/dist/lib/parsers/parse-ktx.d.ts.map +1 -1
  95. package/dist/lib/parsers/parse-ktx.js +11 -3
  96. package/dist/lib/parsers/parse-ktx.js.map +1 -0
  97. package/dist/lib/parsers/parse-npy.js +1 -0
  98. package/dist/lib/parsers/parse-npy.js.map +1 -0
  99. package/dist/lib/parsers/parse-pvr.d.ts.map +1 -1
  100. package/dist/lib/parsers/parse-pvr.js +32 -74
  101. package/dist/lib/parsers/parse-pvr.js.map +1 -0
  102. package/dist/lib/texture-api/async-deep-map.js +1 -0
  103. package/dist/lib/texture-api/async-deep-map.js.map +1 -0
  104. package/dist/lib/texture-api/deep-load.js +1 -0
  105. package/dist/lib/texture-api/deep-load.js.map +1 -0
  106. package/dist/lib/texture-api/generate-url.d.ts.map +1 -1
  107. package/dist/lib/texture-api/generate-url.js +3 -10
  108. package/dist/lib/texture-api/generate-url.js.map +1 -0
  109. package/dist/lib/texture-api/load-image-array.d.ts +6 -3
  110. package/dist/lib/texture-api/load-image-array.d.ts.map +1 -1
  111. package/dist/lib/texture-api/load-image-array.js +6 -3
  112. package/dist/lib/texture-api/load-image-array.js.map +1 -0
  113. package/dist/lib/texture-api/load-image-cube.d.ts +7 -11
  114. package/dist/lib/texture-api/load-image-cube.d.ts.map +1 -1
  115. package/dist/lib/texture-api/load-image-cube.js +9 -20
  116. package/dist/lib/texture-api/load-image-cube.js.map +1 -0
  117. package/dist/lib/texture-api/load-image.d.ts +6 -3
  118. package/dist/lib/texture-api/load-image.d.ts.map +1 -1
  119. package/dist/lib/texture-api/load-image.js +9 -4
  120. package/dist/lib/texture-api/load-image.js.map +1 -0
  121. package/dist/lib/texture-api/texture-api-types.d.ts +13 -0
  122. package/dist/lib/texture-api/texture-api-types.d.ts.map +1 -1
  123. package/dist/lib/texture-api/texture-api-types.js +1 -0
  124. package/dist/lib/texture-api/texture-api-types.js.map +1 -0
  125. package/dist/lib/utils/detect-supported-texture-formats.d.ts +14 -0
  126. package/dist/lib/utils/detect-supported-texture-formats.d.ts.map +1 -0
  127. package/dist/lib/utils/detect-supported-texture-formats.js +197 -0
  128. package/dist/lib/utils/detect-supported-texture-formats.js.map +1 -0
  129. package/dist/lib/utils/extract-mipmap-images.d.ts +6 -2
  130. package/dist/lib/utils/extract-mipmap-images.d.ts.map +1 -1
  131. package/dist/lib/utils/extract-mipmap-images.js +14 -2
  132. package/dist/lib/utils/extract-mipmap-images.js.map +1 -0
  133. package/dist/lib/utils/ktx-format-helper.d.ts +9 -1
  134. package/dist/lib/utils/ktx-format-helper.d.ts.map +1 -1
  135. package/dist/lib/utils/ktx-format-helper.js +77 -109
  136. package/dist/lib/utils/ktx-format-helper.js.map +1 -0
  137. package/dist/lib/utils/texture-format-map.d.ts +10 -0
  138. package/dist/lib/utils/texture-format-map.d.ts.map +1 -0
  139. package/dist/lib/utils/texture-format-map.js +87 -0
  140. package/dist/lib/utils/texture-format-map.js.map +1 -0
  141. package/dist/lib/utils/version.js +2 -1
  142. package/dist/lib/utils/version.js.map +1 -0
  143. package/dist/libs/libs/README.md +9 -0
  144. package/dist/libs/libs/basis_encoder.js +21 -0
  145. package/dist/libs/libs/basis_encoder.wasm +0 -0
  146. package/dist/libs/libs/basis_transcoder.js +22 -0
  147. package/dist/libs/libs/basis_transcoder.wasm +0 -0
  148. package/dist/libs/libs/crunch.js +136 -0
  149. package/dist/npy-loader.d.ts +2 -2
  150. package/dist/npy-loader.js +1 -0
  151. package/dist/npy-loader.js.map +1 -0
  152. package/dist/npy-worker.d.ts +2 -0
  153. package/dist/npy-worker.d.ts.map +1 -0
  154. package/dist/npy-worker.js +5 -2
  155. package/dist/npy-worker.js.map +1 -0
  156. package/dist/radiance-hdr-loader.d.ts +25 -0
  157. package/dist/radiance-hdr-loader.d.ts.map +1 -0
  158. package/dist/radiance-hdr-loader.js +23 -0
  159. package/dist/radiance-hdr-loader.js.map +1 -0
  160. package/dist/texture-array-loader.d.ts +25 -0
  161. package/dist/texture-array-loader.d.ts.map +1 -0
  162. package/dist/texture-array-loader.js +24 -0
  163. package/dist/texture-array-loader.js.map +1 -0
  164. package/dist/texture-cube-array-loader.d.ts +25 -0
  165. package/dist/texture-cube-array-loader.d.ts.map +1 -0
  166. package/dist/texture-cube-array-loader.js +24 -0
  167. package/dist/texture-cube-array-loader.js.map +1 -0
  168. package/dist/texture-cube-loader.d.ts +25 -0
  169. package/dist/texture-cube-loader.d.ts.map +1 -0
  170. package/dist/texture-cube-loader.js +24 -0
  171. package/dist/texture-cube-loader.js.map +1 -0
  172. package/dist/texture-loader.d.ts +25 -0
  173. package/dist/texture-loader.d.ts.map +1 -0
  174. package/dist/texture-loader.js +24 -0
  175. package/dist/texture-loader.js.map +1 -0
  176. package/dist/workers/basis-worker-node.js +1 -0
  177. package/dist/workers/basis-worker-node.js.map +1 -0
  178. package/dist/workers/basis-worker.js +1 -0
  179. package/dist/workers/basis-worker.js.map +1 -0
  180. package/dist/workers/compressed-texture-worker.js +1 -1
  181. package/dist/workers/compressed-texture-worker.js.map +1 -0
  182. package/dist/workers/crunch-worker.d.ts +1 -3
  183. package/dist/workers/crunch-worker.d.ts.map +1 -1
  184. package/dist/workers/crunch-worker.js +1 -0
  185. package/dist/workers/crunch-worker.js.map +1 -0
  186. package/dist/workers/ktx2-basis-writer-worker-node.js +1 -0
  187. package/dist/workers/ktx2-basis-writer-worker-node.js.map +1 -0
  188. package/dist/workers/ktx2-basis-writer-worker.js +1 -0
  189. package/dist/workers/ktx2-basis-writer-worker.js.map +1 -0
  190. package/dist/workers/npy-worker.js +1 -0
  191. package/dist/workers/npy-worker.js.map +1 -0
  192. package/package.json +27 -6
  193. package/src/basis-loader.ts +19 -9
  194. package/src/basis-worker.ts +7 -0
  195. package/src/compressed-texture-loader.ts +3 -7
  196. package/src/compressed-texture-worker.ts +6 -0
  197. package/src/crunch-loader.ts +1 -5
  198. package/src/crunch-worker.ts +6 -0
  199. package/src/index.ts +21 -4
  200. package/src/ktx2-basis-writer-worker.ts +6 -0
  201. package/src/lib/composite-image/image-texture-cube.ts +49 -0
  202. package/src/lib/composite-image/parse-composite-image.ts +699 -0
  203. package/src/lib/encoders/encode-ktx.ts +1 -1
  204. package/src/lib/encoders/encode-ktx2-basis-texture.ts +4 -2
  205. package/src/lib/gl-extensions.ts +188 -81
  206. package/src/lib/gl-types.ts +136 -0
  207. package/src/lib/parsers/basis-module-loader.ts +5 -5
  208. package/src/lib/parsers/crunch-module-loader.ts +4 -4
  209. package/src/lib/parsers/parse-basis.ts +358 -66
  210. package/src/lib/parsers/parse-crunch.ts +11 -8
  211. package/src/lib/parsers/parse-dds.ts +11 -12
  212. package/src/lib/parsers/parse-hdr.ts +426 -0
  213. package/src/lib/parsers/parse-ktx.ts +13 -3
  214. package/src/lib/parsers/parse-pvr.ts +33 -75
  215. package/src/lib/texture-api/generate-url.ts +2 -12
  216. package/src/lib/texture-api/load-image-array.ts +15 -6
  217. package/src/lib/texture-api/load-image-cube.ts +20 -34
  218. package/src/lib/texture-api/load-image.ts +19 -8
  219. package/src/lib/texture-api/texture-api-types.ts +15 -0
  220. package/src/lib/utils/detect-supported-texture-formats.ts +210 -0
  221. package/src/lib/utils/extract-mipmap-images.ts +23 -4
  222. package/src/lib/utils/ktx-format-helper.ts +135 -111
  223. package/src/lib/utils/texture-format-map.ts +162 -0
  224. package/src/npy-worker.ts +6 -0
  225. package/src/radiance-hdr-loader.ts +36 -0
  226. package/src/texture-array-loader.ts +46 -0
  227. package/src/texture-cube-array-loader.ts +49 -0
  228. package/src/texture-cube-loader.ts +46 -0
  229. package/src/texture-loader.ts +49 -0
  230. package/src/workers/compressed-texture-worker.ts +0 -1
  231. package/dist/lib/utils/texture-formats.d.ts +0 -8
  232. package/dist/lib/utils/texture-formats.d.ts.map +0 -1
  233. package/dist/lib/utils/texture-formats.js +0 -50
  234. package/src/lib/utils/texture-formats.ts +0 -59
@@ -1,4 +1,7 @@
1
- import type { GetUrl } from "./texture-api-types.js";
2
- export declare function loadImageTextureArray(count: number, getUrl: GetUrl, options?: {}): Promise<any>;
3
- export declare function getImageArrayUrls(count: number, getUrl: GetUrl, options?: {}): Promise<any>;
1
+ import type { GetUrl, TextureLoaderOptions } from "./texture-api-types.js";
2
+ /**
3
+ * @deprecated Use `load(url, TextureArrayLoader)` for manifest-driven loading.
4
+ */
5
+ export declare function loadImageTextureArray(count: number, getUrl: GetUrl, options?: TextureLoaderOptions): Promise<any>;
6
+ export declare function getImageArrayUrls(count: number, getUrl: GetUrl, options?: TextureLoaderOptions): Promise<any>;
4
7
  //# sourceMappingURL=load-image-array.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"load-image-array.d.ts","sourceRoot":"","sources":["../../../src/lib/texture-api/load-image-array.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,MAAM,EAAC,+BAA4B;AAIhD,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,KAAK,GACX,OAAO,CAAC,GAAG,CAAC,CAGd;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAOjG"}
1
+ {"version":3,"file":"load-image-array.d.ts","sourceRoot":"","sources":["../../../src/lib/texture-api/load-image-array.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAC,MAAM,EAAE,oBAAoB,EAAC,+BAA4B;AAGtE;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,GAAG,CAAC,CAGd;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,GAAG,CAAC,CAOd"}
@@ -1,12 +1,14 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- import { ImageLoader } from '@loaders.gl/images';
4
+ import { loadCompositeImageUrlTree, normalizeCompositeImageOptions } from "../composite-image/parse-composite-image.js";
5
5
  import { getImageUrls } from "./load-image.js";
6
- import { deepLoad } from "./deep-load.js";
6
+ /**
7
+ * @deprecated Use `load(url, TextureArrayLoader)` for manifest-driven loading.
8
+ */
7
9
  export async function loadImageTextureArray(count, getUrl, options = {}) {
8
10
  const imageUrls = await getImageArrayUrls(count, getUrl, options);
9
- return await deepLoad(imageUrls, ImageLoader.parse, options);
11
+ return await loadCompositeImageUrlTree(imageUrls, normalizeCompositeImageOptions(options));
10
12
  }
11
13
  export async function getImageArrayUrls(count, getUrl, options = {}) {
12
14
  const promises = [];
@@ -16,3 +18,4 @@ export async function getImageArrayUrls(count, getUrl, options = {}) {
16
18
  }
17
19
  return await Promise.all(promises);
18
20
  }
21
+ //# sourceMappingURL=load-image-array.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-image-array.js","sourceRoot":"","sources":["../../../src/lib/texture-api/load-image-array.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EACL,yBAAyB,EACzB,8BAA8B,EAC/B,oDAAiD;AAElD,OAAO,EAAC,YAAY,EAAC,wBAAqB;AAE1C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,KAAa,EACb,MAAc,EACd,UAAgC,EAAE;IAElC,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAClE,OAAO,MAAM,yBAAyB,CAAC,SAAS,EAAE,8BAA8B,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAAa,EACb,MAAc,EACd,UAAgC,EAAE;IAElC,MAAM,QAAQ,GAAmB,EAAE,CAAC;IACpC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,EAAC,KAAK,EAAC,CAAC,CAAC;QACvD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC"}
@@ -1,12 +1,8 @@
1
- import type { GetUrl, UrlOptions } from "./texture-api-types.js";
2
- export type ImageCubeTexture = {
3
- GL_TEXTURE_CUBE_MAP_POSITIVE_X: any;
4
- GL_TEXTURE_CUBE_MAP_NEGATIVE_X: any;
5
- GL_TEXTURE_CUBE_MAP_POSITIVE_Y: any;
6
- GL_TEXTURE_CUBE_MAP_NEGATIVE_Y: any;
7
- GL_TEXTURE_CUBE_MAP_POSITIVE_Z: any;
8
- GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: any;
9
- };
10
- export declare function getImageCubeUrls(getUrl: GetUrl, options: UrlOptions): Promise<Record<number, string | string[]>>;
11
- export declare function loadImageTextureCube(getUrl: GetUrl, options?: {}): Promise<ImageCubeTexture>;
1
+ import { type ImageCubeTexture } from "../composite-image/image-texture-cube.js";
2
+ import type { GetUrl, TextureLoaderOptions } from "./texture-api-types.js";
3
+ export declare function getImageCubeUrls(getUrl: GetUrl, options: TextureLoaderOptions): Promise<Record<number, string | string[]>>;
4
+ /**
5
+ * @deprecated Use `load(url, TextureCubeLoader)` for manifest-driven loading.
6
+ */
7
+ export declare function loadImageTextureCube(getUrl: GetUrl, options?: TextureLoaderOptions): Promise<ImageCubeTexture>;
12
8
  //# sourceMappingURL=load-image-cube.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"load-image-cube.d.ts","sourceRoot":"","sources":["../../../src/lib/texture-api/load-image-cube.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,MAAM,EAAE,UAAU,EAAC,+BAA4B;AAqB5D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,8BAA8B,EAAE,GAAG,CAAC;IACpC,8BAA8B,EAAE,GAAG,CAAC;IACpC,8BAA8B,EAAE,GAAG,CAAC;IACpC,8BAA8B,EAAE,GAAG,CAAC;IACpC,8BAA8B,EAAE,GAAG,CAAC;IACpC,8BAA8B,EAAE,GAAG,CAAC;CACrC,CAAC;AAIF,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,8CAiBzE;AAID,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,OAAO,KAAK,GACX,OAAO,CAAC,gBAAgB,CAAC,CAG3B"}
1
+ {"version":3,"file":"load-image-cube.d.ts","sourceRoot":"","sources":["../../../src/lib/texture-api/load-image-cube.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,KAAK,gBAAgB,EACtB,iDAA8C;AAC/C,OAAO,KAAK,EAAC,MAAM,EAAE,oBAAoB,EAAC,+BAA4B;AAKtE,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,8CAiBnF;AAID;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,gBAAgB,CAAC,CAM3B"}
@@ -1,24 +1,9 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- import { ImageLoader } from '@loaders.gl/images';
4
+ import { loadCompositeImageUrlTree, normalizeCompositeImageOptions } from "../composite-image/parse-composite-image.js";
5
+ import { IMAGE_TEXTURE_CUBE_FACES } from "../composite-image/image-texture-cube.js";
5
6
  import { getImageUrls } from "./load-image.js";
6
- import { deepLoad } from "./deep-load.js";
7
- // Returned map will be have keys corresponding to GL cubemap constants
8
- const GL_TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515;
9
- const GL_TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516;
10
- const GL_TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517;
11
- const GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518;
12
- const GL_TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519;
13
- const GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851a;
14
- const CUBE_FACES = [
15
- { face: GL_TEXTURE_CUBE_MAP_POSITIVE_X, direction: 'right', axis: 'x', sign: 'positive' },
16
- { face: GL_TEXTURE_CUBE_MAP_NEGATIVE_X, direction: 'left', axis: 'x', sign: 'negative' },
17
- { face: GL_TEXTURE_CUBE_MAP_POSITIVE_Y, direction: 'top', axis: 'y', sign: 'positive' },
18
- { face: GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, direction: 'bottom', axis: 'y', sign: 'negative' },
19
- { face: GL_TEXTURE_CUBE_MAP_POSITIVE_Z, direction: 'front', axis: 'z', sign: 'positive' },
20
- { face: GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, direction: 'back', axis: 'z', sign: 'negative' }
21
- ];
22
7
  // Returns an object with six key-value pairs containing the urls (or url mip arrays)
23
8
  // for each cube face
24
9
  export async function getImageCubeUrls(getUrl, options) {
@@ -26,8 +11,8 @@ export async function getImageCubeUrls(getUrl, options) {
26
11
  const urls = {};
27
12
  const promises = [];
28
13
  let index = 0;
29
- for (let i = 0; i < CUBE_FACES.length; ++i) {
30
- const face = CUBE_FACES[index];
14
+ for (let i = 0; i < IMAGE_TEXTURE_CUBE_FACES.length; ++i) {
15
+ const face = IMAGE_TEXTURE_CUBE_FACES[index];
31
16
  const promise = getImageUrls(getUrl, options, { ...face, index: index++ }).then((url) => {
32
17
  urls[face.face] = url;
33
18
  });
@@ -38,7 +23,11 @@ export async function getImageCubeUrls(getUrl, options) {
38
23
  }
39
24
  // Returns an object with six key-value pairs containing the images (or image mip arrays)
40
25
  // for each cube face
26
+ /**
27
+ * @deprecated Use `load(url, TextureCubeLoader)` for manifest-driven loading.
28
+ */
41
29
  export async function loadImageTextureCube(getUrl, options = {}) {
42
30
  const urls = await getImageCubeUrls(getUrl, options);
43
- return (await deepLoad(urls, ImageLoader.parse, options));
31
+ return (await loadCompositeImageUrlTree(urls, normalizeCompositeImageOptions(options)));
44
32
  }
33
+ //# sourceMappingURL=load-image-cube.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-image-cube.js","sourceRoot":"","sources":["../../../src/lib/texture-api/load-image-cube.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EACL,yBAAyB,EACzB,8BAA8B,EAC/B,oDAAiD;AAClD,OAAO,EACL,wBAAwB,EAEzB,iDAA8C;AAE/C,OAAO,EAAC,YAAY,EAAC,wBAAqB;AAE1C,qFAAqF;AACrF,qBAAqB;AACrB,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAc,EAAE,OAA6B;IAClF,iBAAiB;IACjB,MAAM,IAAI,GAAsC,EAAE,CAAC;IACnD,MAAM,QAAQ,GAAmB,EAAE,CAAC;IAEpC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,wBAAwB,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,EAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACpF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE5B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,yFAAyF;AACzF,qBAAqB;AACrB;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAc,EACd,UAAgC,EAAE;IAElC,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrD,OAAO,CAAC,MAAM,yBAAyB,CACrC,IAAI,EACJ,8BAA8B,CAAC,OAAO,CAAC,CACxC,CAAqB,CAAC;AACzB,CAAC"}
@@ -1,6 +1,9 @@
1
- import type { GetUrl, UrlOptions } from "./texture-api-types.js";
2
- export declare function loadImageTexture(getUrl: string | GetUrl, options?: {}): Promise<any>;
3
- export declare function getImageUrls(getUrl: string | GetUrl, options: any, urlOptions?: UrlOptions): Promise<any>;
1
+ import type { GetUrl, TextureLoaderOptions, UrlOptions } from "./texture-api-types.js";
2
+ /**
3
+ * @deprecated Use `load(url, TextureLoader)` for manifest-driven loading.
4
+ */
5
+ export declare function loadImageTexture(getUrl: string | GetUrl, options?: TextureLoaderOptions): Promise<any>;
6
+ export declare function getImageUrls(getUrl: string | GetUrl, options: TextureLoaderOptions, urlOptions?: UrlOptions): Promise<any>;
4
7
  export declare function getMipLevels(size: {
5
8
  width: number;
6
9
  height: number;
@@ -1 +1 @@
1
- {"version":3,"file":"load-image.d.ts","sourceRoot":"","sources":["../../../src/lib/texture-api/load-image.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,MAAM,EAAE,UAAU,EAAC,+BAA4B;AAI5D,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAG1F;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,OAAO,EAAE,GAAG,EACZ,UAAU,GAAE,UAAe,GAC1B,OAAO,CAAC,GAAG,CAAC,CAKd;AAkCD,wBAAgB,YAAY,CAAC,IAAI,EAAE;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,GAAG,MAAM,CAE1E"}
1
+ {"version":3,"file":"load-image.d.ts","sourceRoot":"","sources":["../../../src/lib/texture-api/load-image.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAC,MAAM,EAAE,oBAAoB,EAAE,UAAU,EAAC,+BAA4B;AAGlF;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,GAAG,CAAC,CAGd;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,OAAO,EAAE,oBAAoB,EAC7B,UAAU,GAAE,UAAe,GAC1B,OAAO,CAAC,GAAG,CAAC,CAKd;AAmCD,wBAAgB,YAAY,CAAC,IAAI,EAAE;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,GAAG,MAAM,CAE1E"}
@@ -2,12 +2,15 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
  import { assert } from '@loaders.gl/loader-utils';
5
- import { ImageLoader, getImageSize } from '@loaders.gl/images';
5
+ import { getImageSize } from '@loaders.gl/images';
6
+ import { loadCompositeImageMember, loadCompositeImageUrlTree, normalizeCompositeImageOptions } from "../composite-image/parse-composite-image.js";
6
7
  import { generateUrl } from "./generate-url.js";
7
- import { deepLoad, shallowLoad } from "./deep-load.js";
8
+ /**
9
+ * @deprecated Use `load(url, TextureLoader)` for manifest-driven loading.
10
+ */
8
11
  export async function loadImageTexture(getUrl, options = {}) {
9
12
  const imageUrls = await getImageUrls(getUrl, options);
10
- return await deepLoad(imageUrls, ImageLoader.parse, options);
13
+ return await loadCompositeImageUrlTree(imageUrls, normalizeCompositeImageOptions(options));
11
14
  }
12
15
  export async function getImageUrls(getUrl, options, urlOptions = {}) {
13
16
  const mipLevels = (options && options.image && options.image.mipLevels) || 0;
@@ -17,10 +20,11 @@ export async function getImageUrls(getUrl, options, urlOptions = {}) {
17
20
  }
18
21
  async function getMipmappedImageUrls(getUrl, mipLevels, options, urlOptions) {
19
22
  const urls = [];
23
+ const normalizedOptions = normalizeCompositeImageOptions(options);
20
24
  // If no mip levels supplied, we need to load the level 0 image and calculate based on size
21
25
  if (mipLevels === 'auto') {
22
26
  const url = generateUrl(getUrl, options, { ...urlOptions, lod: 0 });
23
- const image = await shallowLoad(url, ImageLoader.parse, options);
27
+ const image = await loadCompositeImageMember(url, normalizedOptions);
24
28
  const { width, height } = getImageSize(image);
25
29
  mipLevels = getMipLevels({ width, height });
26
30
  // TODO - push image and make `deepLoad` pass through non-url values, avoid loading twice?
@@ -38,3 +42,4 @@ async function getMipmappedImageUrls(getUrl, mipLevels, options, urlOptions) {
38
42
  export function getMipLevels(size) {
39
43
  return 1 + Math.floor(Math.log2(Math.max(size.width, size.height)));
40
44
  }
45
+ //# sourceMappingURL=load-image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-image.js","sourceRoot":"","sources":["../../../src/lib/texture-api/load-image.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAChD,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,8BAA8B,EAC/B,oDAAiD;AAElD,OAAO,EAAC,WAAW,EAAC,0BAAuB;AAE3C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAuB,EACvB,UAAgC,EAAE;IAElC,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtD,OAAO,MAAM,yBAAyB,CAAC,SAAS,EAAE,8BAA8B,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAuB,EACvB,OAA6B,EAC7B,aAAyB,EAAE;IAE3B,MAAM,SAAS,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC7E,OAAO,SAAS,KAAK,CAAC;QACpB,CAAC,CAAC,MAAM,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC;QACrE,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AAC/C,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,MAAuB,EACvB,SAA0B,EAC1B,OAA6B,EAC7B,UAAsB;IAEtB,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,iBAAiB,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;IAElE,2FAA2F;IAC3F,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,EAAC,GAAG,UAAU,EAAE,GAAG,EAAE,CAAC,EAAC,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,MAAM,wBAAwB,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;QAErE,MAAM,EAAC,KAAK,EAAE,MAAM,EAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAC5C,SAAS,GAAG,YAAY,CAAC,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC,CAAC;QAE1C,0FAA0F;QAC1F,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IAED,sFAAsF;IACtF,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IAEtB,KAAK,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC;QAClE,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,EAAC,GAAG,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAC,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,YAAY,CAAC,IAAqC;IAChE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC"}
@@ -1,3 +1,5 @@
1
+ import type { LoaderOptions } from '@loaders.gl/loader-utils';
2
+ import type { ImageLoaderOptions } from '@loaders.gl/images';
1
3
  export type { ImageType } from '@loaders.gl/images';
2
4
  export type UrlOptions = {
3
5
  baseUrl?: string;
@@ -7,4 +9,15 @@ export type UrlOptions = {
7
9
  direction?: string;
8
10
  };
9
11
  export type GetUrl = (options: UrlOptions) => string;
12
+ export type TextureLoaderOptions = LoaderOptions & {
13
+ core?: NonNullable<LoaderOptions['core']> & {
14
+ /** Base URL for resolving composite image members when no loader context URL is available */
15
+ baseUrl?: string;
16
+ };
17
+ /** @deprecated Legacy helper alias kept for loadImageTexture* compatibility */
18
+ baseUrl?: string;
19
+ image?: NonNullable<ImageLoaderOptions['image']> & {
20
+ mipLevels?: number | 'auto';
21
+ };
22
+ };
10
23
  //# sourceMappingURL=texture-api-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"texture-api-types.d.ts","sourceRoot":"","sources":["../../../src/lib/texture-api/texture-api-types.ts"],"names":[],"mappings":"AAIA,YAAY,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAElD,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AACF,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,UAAU,KAAK,MAAM,CAAC"}
1
+ {"version":3,"file":"texture-api-types.d.ts","sourceRoot":"","sources":["../../../src/lib/texture-api/texture-api-types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAE3D,YAAY,EAAC,SAAS,EAAC,MAAM,oBAAoB,CAAC;AAElD,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AACF,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,UAAU,KAAK,MAAM,CAAC;AAErD,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG;IACjD,IAAI,CAAC,EAAE,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG;QAC1C,6FAA6F;QAC7F,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,WAAW,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,GAAG;QACjD,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;KAC7B,CAAC;CACH,CAAC"}
@@ -2,3 +2,4 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
  export {};
5
+ //# sourceMappingURL=texture-api-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"texture-api-types.js","sourceRoot":"","sources":["../../../src/lib/texture-api/texture-api-types.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC"}
@@ -0,0 +1,14 @@
1
+ import type { TextureFormat } from '@loaders.gl/schema';
2
+ /**
3
+ * @deprecated Pass `basis.supportedTextureFormats` to Basis loaders instead of relying on global detection.
4
+ */
5
+ export declare function detectSupportedTextureFormats(gl?: WebGLRenderingContext): Set<TextureFormat>;
6
+ /**
7
+ * Returns a list of formats.
8
+ * Creates a temporary WebGLRenderingContext if none is provided.
9
+ *
10
+ * @deprecated Pass `basis.supportedTextureFormats` to Basis loaders instead of relying on global detection.
11
+ * @param gl - Optional context.
12
+ */
13
+ export declare function detectSupportedGPUTextureFormats(gl?: WebGLRenderingContext): Set<string>;
14
+ //# sourceMappingURL=detect-supported-texture-formats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect-supported-texture-formats.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/detect-supported-texture-formats.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAmB,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAmJxE;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,EAAE,CAAC,EAAE,qBAAqB,GAAG,GAAG,CAAC,aAAa,CAAC,CAiB5F;AAGD;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAAC,EAAE,CAAC,EAAE,qBAAqB,GAAG,GAAG,CAAC,MAAM,CAAC,CAgBxF"}
@@ -0,0 +1,197 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ const BROWSER_PREFIXES = ['', 'WEBKIT_', 'MOZ_'];
5
+ const WEBGL_TEXTURE_FORMATS = {
6
+ /* eslint-disable camelcase */
7
+ WEBGL_compressed_texture_s3tc: [
8
+ 'bc1-rgb-unorm-webgl',
9
+ 'bc1-rgba-unorm',
10
+ 'bc2-rgba-unorm',
11
+ 'bc3-rgba-unorm'
12
+ ],
13
+ WEBGL_compressed_texture_s3tc_srgb: [
14
+ 'bc1-rgb-unorm-srgb-webgl',
15
+ 'bc1-rgba-unorm-srgb',
16
+ 'bc2-rgba-unorm-srgb',
17
+ 'bc3-rgba-unorm-srgb'
18
+ ],
19
+ EXT_texture_compression_rgtc: ['bc4-r-unorm', 'bc4-r-snorm', 'bc5-rg-unorm', 'bc5-rg-snorm'],
20
+ EXT_texture_compression_bptc: [
21
+ 'bc6h-rgb-ufloat',
22
+ 'bc6h-rgb-float',
23
+ 'bc7-rgba-unorm',
24
+ 'bc7-rgba-unorm-srgb'
25
+ ],
26
+ WEBGL_compressed_texture_etc1: ['etc1-rgb-unorm-webgl'],
27
+ WEBGL_compressed_texture_etc: [
28
+ 'etc2-rgb8unorm',
29
+ 'etc2-rgb8unorm-srgb',
30
+ 'etc2-rgb8a1unorm',
31
+ 'etc2-rgb8a1unorm-srgb',
32
+ 'etc2-rgba8unorm',
33
+ 'etc2-rgba8unorm-srgb',
34
+ 'eac-r11unorm',
35
+ 'eac-r11snorm',
36
+ 'eac-rg11unorm',
37
+ 'eac-rg11snorm'
38
+ ],
39
+ WEBGL_compressed_texture_pvrtc: [
40
+ 'pvrtc-rgb4unorm-webgl',
41
+ 'pvrtc-rgba4unorm-webgl',
42
+ 'pvrtc-rgb2unorm-webgl',
43
+ 'pvrtc-rgba2unorm-webgl'
44
+ ],
45
+ WEBGL_compressed_texture_atc: [
46
+ 'atc-rgb-unorm-webgl',
47
+ 'atc-rgba-unorm-webgl',
48
+ 'atc-rgbai-unorm-webgl'
49
+ ],
50
+ WEBGL_compressed_texture_astc: [
51
+ 'astc-4x4-unorm',
52
+ 'astc-4x4-unorm-srgb',
53
+ 'astc-5x4-unorm',
54
+ 'astc-5x4-unorm-srgb',
55
+ 'astc-5x5-unorm',
56
+ 'astc-5x5-unorm-srgb',
57
+ 'astc-6x5-unorm',
58
+ 'astc-6x5-unorm-srgb',
59
+ 'astc-6x6-unorm',
60
+ 'astc-6x6-unorm-srgb',
61
+ 'astc-8x5-unorm',
62
+ 'astc-8x5-unorm-srgb',
63
+ 'astc-8x6-unorm',
64
+ 'astc-8x6-unorm-srgb',
65
+ 'astc-8x8-unorm',
66
+ 'astc-8x8-unorm-srgb',
67
+ 'astc-10x5-unorm',
68
+ 'astc-10x5-unorm-srgb',
69
+ 'astc-10x6-unorm',
70
+ 'astc-10x6-unorm-srgb',
71
+ 'astc-10x8-unorm',
72
+ 'astc-10x8-unorm-srgb',
73
+ 'astc-10x10-unorm',
74
+ 'astc-10x10-unorm-srgb',
75
+ 'astc-12x10-unorm',
76
+ 'astc-12x10-unorm-srgb',
77
+ 'astc-12x12-unorm',
78
+ 'astc-12x12-unorm-srgb'
79
+ ]
80
+ /* eslint-enable camelcase */
81
+ };
82
+ const GPU_TEXTURE_FORMATS = {
83
+ dxt: ['bc1-rgb-unorm-webgl', 'bc1-rgba-unorm', 'bc2-rgba-unorm', 'bc3-rgba-unorm'],
84
+ 'dxt-srgb': [
85
+ 'bc1-rgb-unorm-srgb-webgl',
86
+ 'bc1-rgba-unorm-srgb',
87
+ 'bc2-rgba-unorm-srgb',
88
+ 'bc3-rgba-unorm-srgb'
89
+ ],
90
+ etc1: ['etc1-rgb-unorm-webgl'],
91
+ etc2: [
92
+ 'etc2-rgb8unorm',
93
+ 'etc2-rgb8unorm-srgb',
94
+ 'etc2-rgb8a1unorm',
95
+ 'etc2-rgb8a1unorm-srgb',
96
+ 'etc2-rgba8unorm',
97
+ 'etc2-rgba8unorm-srgb',
98
+ 'eac-r11unorm',
99
+ 'eac-r11snorm',
100
+ 'eac-rg11unorm',
101
+ 'eac-rg11snorm'
102
+ ],
103
+ pvrtc: [
104
+ 'pvrtc-rgb4unorm-webgl',
105
+ 'pvrtc-rgba4unorm-webgl',
106
+ 'pvrtc-rgb2unorm-webgl',
107
+ 'pvrtc-rgba2unorm-webgl'
108
+ ],
109
+ atc: ['atc-rgb-unorm-webgl', 'atc-rgba-unorm-webgl', 'atc-rgbai-unorm-webgl'],
110
+ astc: [
111
+ 'astc-4x4-unorm',
112
+ 'astc-4x4-unorm-srgb',
113
+ 'astc-5x4-unorm',
114
+ 'astc-5x4-unorm-srgb',
115
+ 'astc-5x5-unorm',
116
+ 'astc-5x5-unorm-srgb',
117
+ 'astc-6x5-unorm',
118
+ 'astc-6x5-unorm-srgb',
119
+ 'astc-6x6-unorm',
120
+ 'astc-6x6-unorm-srgb',
121
+ 'astc-8x5-unorm',
122
+ 'astc-8x5-unorm-srgb',
123
+ 'astc-8x6-unorm',
124
+ 'astc-8x6-unorm-srgb',
125
+ 'astc-8x8-unorm',
126
+ 'astc-8x8-unorm-srgb',
127
+ 'astc-10x5-unorm',
128
+ 'astc-10x5-unorm-srgb',
129
+ 'astc-10x6-unorm',
130
+ 'astc-10x6-unorm-srgb',
131
+ 'astc-10x8-unorm',
132
+ 'astc-10x8-unorm-srgb',
133
+ 'astc-10x10-unorm',
134
+ 'astc-10x10-unorm-srgb',
135
+ 'astc-12x10-unorm',
136
+ 'astc-12x10-unorm-srgb',
137
+ 'astc-12x12-unorm',
138
+ 'astc-12x12-unorm-srgb'
139
+ ],
140
+ rgtc: ['bc4-r-unorm', 'bc4-r-snorm', 'bc5-rg-unorm', 'bc5-rg-snorm']
141
+ };
142
+ let formats = null;
143
+ let textureFormats = null;
144
+ // DEPRECATED
145
+ /**
146
+ * @deprecated Pass `basis.supportedTextureFormats` to Basis loaders instead of relying on global detection.
147
+ */
148
+ export function detectSupportedTextureFormats(gl) {
149
+ if (!textureFormats) {
150
+ gl = gl || getWebGLContext() || undefined;
151
+ textureFormats = new Set();
152
+ for (const prefix of BROWSER_PREFIXES) {
153
+ for (const extension in WEBGL_TEXTURE_FORMATS) {
154
+ if (gl && gl.getExtension(`${prefix}${extension}`)) {
155
+ for (const textureFormat of WEBGL_TEXTURE_FORMATS[extension]) {
156
+ textureFormats.add(textureFormat);
157
+ }
158
+ }
159
+ }
160
+ }
161
+ }
162
+ return textureFormats;
163
+ }
164
+ // DEPRECATED
165
+ /**
166
+ * Returns a list of formats.
167
+ * Creates a temporary WebGLRenderingContext if none is provided.
168
+ *
169
+ * @deprecated Pass `basis.supportedTextureFormats` to Basis loaders instead of relying on global detection.
170
+ * @param gl - Optional context.
171
+ */
172
+ export function detectSupportedGPUTextureFormats(gl) {
173
+ if (!formats) {
174
+ formats = new Set();
175
+ const supportedTextureFormats = detectSupportedTextureFormats(gl);
176
+ for (const gpuTextureFormat in GPU_TEXTURE_FORMATS) {
177
+ const textureFormatsForGroup = GPU_TEXTURE_FORMATS[gpuTextureFormat];
178
+ if (textureFormatsForGroup.some((textureFormat) => supportedTextureFormats.has(textureFormat))) {
179
+ formats.add(gpuTextureFormat);
180
+ }
181
+ }
182
+ }
183
+ return formats;
184
+ }
185
+ /**
186
+ * @returns {WebGLRenderingContext?}
187
+ */
188
+ function getWebGLContext() {
189
+ try {
190
+ const canvas = document.createElement('canvas');
191
+ return canvas.getContext('webgl');
192
+ }
193
+ catch (error) {
194
+ return null;
195
+ }
196
+ }
197
+ //# sourceMappingURL=detect-supported-texture-formats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect-supported-texture-formats.js","sourceRoot":"","sources":["../../../src/lib/utils/detect-supported-texture-formats.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,13 @@
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
  export type CompressedTextureExtractOptions = {
3
4
  mipMapLevels: number;
4
5
  width: number;
5
6
  height: number;
6
7
  sizeFunction: Function;
7
- internalFormat: number;
8
+ internalFormat?: GLTextureFormat;
9
+ /** Canonical loaders.gl texture format for the mip levels being extracted. */
10
+ textureFormat?: TextureFormat;
8
11
  };
9
12
  /**
10
13
  * Extract mipmap images from compressed texture buffer
@@ -14,6 +17,7 @@ export type CompressedTextureExtractOptions = {
14
17
  * @param options.height - height of 0 - level
15
18
  * @param options.sizeFunction - format-related function to calculate level size in bytes
16
19
  * @param options.internalFormat - WebGL compatible format code
20
+ * @param options.textureFormat - canonical loaders.gl texture format
17
21
  * @returns Array of the texture levels
18
22
  */
19
23
  export declare function extractMipmapImages(data: Uint8Array | object[], options: CompressedTextureExtractOptions): TextureLevel[];
@@ -1 +1 @@
1
- {"version":3,"file":"extract-mipmap-images.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/extract-mipmap-images.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAErD,MAAM,MAAM,+BAA+B,GAAG;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,QAAQ,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,UAAU,GAAG,MAAM,EAAE,EAC3B,OAAO,EAAE,+BAA+B,GACvC,YAAY,EAAE,CA4BhB"}
1
+ {"version":3,"file":"extract-mipmap-images.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/extract-mipmap-images.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,aAAa,EAAE,YAAY,EAAC,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAC,eAAe,EAAC,uBAAoB;AAMjD,MAAM,MAAM,+BAA+B,GAAG;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,QAAQ,CAAC;IACvB,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,8EAA8E;IAC9E,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,UAAU,GAAG,MAAM,EAAE,EAC3B,OAAO,EAAE,+BAA+B,GACvC,YAAY,EAAE,CAuChB"}
@@ -1,6 +1,7 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
+ import { getTextureFormatFromWebGLFormat, getWebGLFormatFromTextureFormat } from "./texture-format-map.js";
4
5
  /**
5
6
  * Extract mipmap images from compressed texture buffer
6
7
  * @param data - binary data of compressed texture or Array of level objects
@@ -9,10 +10,13 @@
9
10
  * @param options.height - height of 0 - level
10
11
  * @param options.sizeFunction - format-related function to calculate level size in bytes
11
12
  * @param options.internalFormat - WebGL compatible format code
13
+ * @param options.textureFormat - canonical loaders.gl texture format
12
14
  * @returns Array of the texture levels
13
15
  */
14
16
  export function extractMipmapImages(data, options) {
15
17
  const images = new Array(options.mipMapLevels);
18
+ const textureFormat = options.textureFormat || getTextureFormatFromWebGLFormat(options.internalFormat);
19
+ const format = options.internalFormat || getWebGLFormatFromTextureFormat(options.textureFormat);
16
20
  let levelWidth = options.width;
17
21
  let levelHeight = options.height;
18
22
  let offset = 0;
@@ -21,14 +25,21 @@ export function extractMipmapImages(data, options) {
21
25
  const levelSize = getLevelSize(options, levelWidth, levelHeight, data, i);
22
26
  // @ts-expect-error
23
27
  const levelData = getLevelData(data, i, offset, levelSize);
24
- images[i] = {
28
+ const image = {
29
+ shape: 'texture-level',
25
30
  compressed: true,
26
- format: options.internalFormat,
27
31
  data: levelData,
28
32
  width: levelWidth,
29
33
  height: levelHeight,
30
34
  levelSize
31
35
  };
36
+ if (format !== undefined) {
37
+ image.format = format;
38
+ }
39
+ if (textureFormat) {
40
+ image.textureFormat = textureFormat;
41
+ }
42
+ images[i] = image;
32
43
  levelWidth = Math.max(1, levelWidth >> 1);
33
44
  levelHeight = Math.max(1, levelHeight >> 1);
34
45
  offset += levelSize;
@@ -47,3 +58,4 @@ function getLevelSize(options, levelWidth, levelHeight, data, index) {
47
58
  }
48
59
  return options.sizeFunction(data[index]);
49
60
  }
61
+ //# sourceMappingURL=extract-mipmap-images.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-mipmap-images.js","sourceRoot":"","sources":["../../../src/lib/utils/extract-mipmap-images.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAIpC,OAAO,EACL,+BAA+B,EAC/B,+BAA+B,EAChC,gCAA6B;AAY9B;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAA2B,EAC3B,OAAwC;IAExC,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/C,MAAM,aAAa,GACjB,OAAO,CAAC,aAAa,IAAI,+BAA+B,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACnF,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,IAAI,+BAA+B,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAEhG,IAAI,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC;IAC/B,IAAI,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IACjC,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,EAAE,CAAC;QAC9C,mBAAmB;QACnB,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1E,mBAAmB;QACnB,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAE3D,MAAM,KAAK,GAAiB;YAC1B,KAAK,EAAE,eAAe;YACtB,UAAU,EAAE,IAAI;YAChB,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,WAAW;YACnB,SAAS;SACV,CAAC;QAEF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QACxB,CAAC;QACD,IAAI,aAAa,EAAE,CAAC;YAClB,KAAK,CAAC,aAAa,GAAG,aAAa,CAAC;QACtC,CAAC;QACD,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QAElB,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,IAAI,CAAC,CAAC,CAAC;QAC1C,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,IAAI,CAAC,CAAC,CAAC;QAE5C,MAAM,IAAI,SAAS,CAAC;IACtB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CACnB,IAAgB,EAChB,KAAa,EACb,MAAc,EACd,SAAiB;IAEjB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,MAAM,EAAE,SAAS,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;AAC/B,CAAC;AAED,SAAS,YAAY,CACnB,OAAwC,EACxC,UAAkB,EAClB,WAAmB,EACnB,IAA6B,EAC7B,KAAa;IAEb,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3C,CAAC"}
@@ -1,3 +1,5 @@
1
+ import type { TextureFormat } from '@loaders.gl/schema';
2
+ import type { GLTextureFormat } from "../gl-types.js";
1
3
  /**
2
4
  * Returns WebGl format based on Vulkan format
3
5
  * Vulkan to WebGl format mapping provided here http://github.khronos.org/KTX-Specification/#formatMapping
@@ -5,5 +7,11 @@
5
7
  * @param vkFormat
6
8
  * @returns WebGL / OpenGL constant
7
9
  */
8
- export declare function mapVkFormatToWebGL(vkFormat: number): number;
10
+ export declare function mapVkFormatToWebGL(vkFormat: number): GLTextureFormat | undefined;
11
+ /**
12
+ * Returns the canonical loaders.gl texture format corresponding to a Vulkan `vkFormat` value.
13
+ * @param vkFormat - Vulkan format constant from the KTX container.
14
+ * @returns Canonical texture format string, if known.
15
+ */
16
+ export declare function mapVkFormatToTextureFormat(vkFormat: number): TextureFormat | undefined;
9
17
  //# sourceMappingURL=ktx-format-helper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ktx-format-helper.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/ktx-format-helper.ts"],"names":[],"mappings":"AAqHA;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE3D"}
1
+ {"version":3,"file":"ktx-format-helper.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/ktx-format-helper.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAC,eAAe,EAAC,uBAAoB;AA8HjD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAEhF;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAEtF"}