@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
@@ -0,0 +1,437 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ import { parseFromContext, path, resolvePath } from '@loaders.gl/loader-utils';
5
+ import { ImageLoader, getImageSize, isImage } from '@loaders.gl/images';
6
+ import { asyncDeepMap } from "../texture-api/async-deep-map.js";
7
+ import { IMAGE_TEXTURE_CUBE_FACES } from "./image-texture-cube.js";
8
+ export async function parseCompositeImageManifest(text, expectedShape, options = {}, context) {
9
+ const manifest = parseCompositeImageManifestJSON(text);
10
+ if (manifest.shape !== expectedShape) {
11
+ throw new Error(`Expected ${expectedShape} manifest, got ${manifest.shape}`);
12
+ }
13
+ return await loadCompositeImageManifest(manifest, options, context);
14
+ }
15
+ export function testCompositeImageManifestShape(text, shape) {
16
+ try {
17
+ return parseCompositeImageManifestJSON(text).shape === shape;
18
+ }
19
+ catch {
20
+ return false;
21
+ }
22
+ }
23
+ export async function loadCompositeImageManifest(manifest, options = {}, context) {
24
+ const normalizedOptions = normalizeCompositeImageManifestOptions(options);
25
+ const urlTree = await getCompositeImageUrlTree(manifest, normalizedOptions, context);
26
+ const imageData = await loadCompositeImageUrlTree(urlTree, normalizedOptions, context);
27
+ return convertCompositeImageToTexture(manifest.shape, imageData);
28
+ }
29
+ export async function loadCompositeImageUrlTree(urlTree, options = {}, context) {
30
+ const normalizedOptions = normalizeCompositeImageOptions(options);
31
+ return await asyncDeepMap(urlTree, async (url) => await loadCompositeImageMember(url, normalizedOptions, context));
32
+ }
33
+ export async function loadCompositeImageMember(url, options = {}, context) {
34
+ const resolvedUrl = resolveCompositeImageUrl(url, options, context);
35
+ const fetch = getCompositeImageFetch(options, context);
36
+ const response = await fetch(resolvedUrl);
37
+ const subloaderOptions = getCompositeImageSubloaderOptions(options);
38
+ if (context) {
39
+ const childContext = getCompositeImageMemberContext(resolvedUrl, response, context);
40
+ return await parseFromContext(response, [ImageLoader], subloaderOptions, childContext);
41
+ }
42
+ const arrayBuffer = await response.arrayBuffer();
43
+ return await ImageLoader.parse(arrayBuffer, subloaderOptions);
44
+ }
45
+ export async function getCompositeImageUrlTree(manifest, options = {}, context) {
46
+ switch (manifest.shape) {
47
+ case 'image-texture':
48
+ return await getImageTextureSource(manifest, options, context);
49
+ case 'image-texture-array':
50
+ if (!Array.isArray(manifest.layers) || manifest.layers.length === 0) {
51
+ throw new Error('image-texture-array manifest must define one or more layers');
52
+ }
53
+ return await Promise.all(manifest.layers.map(async (layer, index) => await getNormalizedImageTextureSource(layer, options, context, { index })));
54
+ case 'image-texture-cube':
55
+ return await getImageTextureCubeUrls(manifest, options, context);
56
+ case 'image-texture-cube-array':
57
+ if (!Array.isArray(manifest.layers) || manifest.layers.length === 0) {
58
+ throw new Error('image-texture-cube-array manifest must define one or more layers');
59
+ }
60
+ return await Promise.all(manifest.layers.map(async (layer, index) => await getImageTextureCubeUrls(layer, options, context, { index })));
61
+ default:
62
+ throw new Error('Unsupported composite image manifest');
63
+ }
64
+ }
65
+ export function normalizeCompositeImageOptions(options = {}) {
66
+ if (options.core?.baseUrl) {
67
+ return options;
68
+ }
69
+ const fallbackBaseUrl = options.baseUrl;
70
+ if (!fallbackBaseUrl) {
71
+ return options;
72
+ }
73
+ return {
74
+ ...options,
75
+ core: {
76
+ ...options.core,
77
+ baseUrl: fallbackBaseUrl
78
+ }
79
+ };
80
+ }
81
+ export function resolveCompositeImageUrl(url, options = {}, context) {
82
+ const resolvedUrl = resolvePath(url);
83
+ if (isAbsoluteCompositeImageUrl(url)) {
84
+ return resolvedUrl;
85
+ }
86
+ const baseUrl = getCompositeImageBaseUrl(options, context);
87
+ if (!baseUrl) {
88
+ if (resolvedUrl !== url || url.startsWith('@')) {
89
+ return resolvedUrl;
90
+ }
91
+ throw new Error(`Unable to resolve relative image URL ${url} without a base URL`);
92
+ }
93
+ return resolvePath(joinCompositeImageUrl(baseUrl, url));
94
+ }
95
+ function parseCompositeImageManifestJSON(text) {
96
+ const manifest = JSON.parse(text);
97
+ if (!manifest?.shape) {
98
+ throw new Error('Composite image manifest must contain a shape field');
99
+ }
100
+ return manifest;
101
+ }
102
+ async function getImageTextureSource(manifest, options, context) {
103
+ if ((manifest.image || manifest.mipmaps) && manifest.template) {
104
+ throw new Error('image-texture manifest must define image, mipmaps, or template source');
105
+ }
106
+ if (manifest.image && manifest.mipmaps) {
107
+ throw new Error('image-texture manifest must define image, mipmaps, or template source');
108
+ }
109
+ if (manifest.image) {
110
+ return manifest.image;
111
+ }
112
+ if (manifest.mipmaps?.length) {
113
+ return manifest.mipmaps;
114
+ }
115
+ if (manifest.template) {
116
+ return await expandImageTextureSource({ mipLevels: manifest.mipLevels ?? 'auto', template: manifest.template }, options, context, {});
117
+ }
118
+ throw new Error('image-texture manifest must define image, mipmaps, or template source');
119
+ }
120
+ async function getImageTextureCubeUrls(manifest, options, context, templateOptions = {}) {
121
+ const urls = {};
122
+ for (const { face, name, direction, axis, sign } of IMAGE_TEXTURE_CUBE_FACES) {
123
+ const source = manifest.faces?.[name] || manifest.faces?.[direction];
124
+ if (!source) {
125
+ throw new Error(`image-texture-cube manifest is missing ${name} face`);
126
+ }
127
+ urls[face] = await getNormalizedImageTextureSource(source, options, context, {
128
+ ...templateOptions,
129
+ face: name,
130
+ direction,
131
+ axis,
132
+ sign
133
+ });
134
+ }
135
+ return urls;
136
+ }
137
+ async function getNormalizedImageTextureSource(source, options, context, templateOptions) {
138
+ if (typeof source === 'string') {
139
+ return source;
140
+ }
141
+ if (Array.isArray(source) && source.length > 0) {
142
+ return source;
143
+ }
144
+ if (isImageTextureTemplateSource(source)) {
145
+ return await expandImageTextureSource(source, options, context, templateOptions);
146
+ }
147
+ throw new Error('Composite image source entries must be strings or non-empty mip arrays');
148
+ }
149
+ async function expandImageTextureSource(source, options, context, templateOptions) {
150
+ const mipLevels = source.mipLevels === 'auto'
151
+ ? await getAutoMipLevels(source.template, options, context, templateOptions)
152
+ : source.mipLevels;
153
+ if (!Number.isFinite(mipLevels) || mipLevels <= 0) {
154
+ throw new Error(`Invalid mipLevels value ${source.mipLevels}`);
155
+ }
156
+ const urls = [];
157
+ for (let lod = 0; lod < mipLevels; lod++) {
158
+ urls.push(expandTemplate(source.template, { ...templateOptions, lod }));
159
+ }
160
+ return urls;
161
+ }
162
+ async function getAutoMipLevels(template, options, context, templateOptions) {
163
+ if (!template.includes('{lod}')) {
164
+ throw new Error('Template sources with mipLevels: auto must include a {lod} placeholder');
165
+ }
166
+ const level0Url = expandTemplate(template, { ...templateOptions, lod: 0 });
167
+ const image = await loadCompositeImageMember(level0Url, normalizeCompositeImageOptions(options), context);
168
+ const { width, height } = getImageSize(image);
169
+ return 1 + Math.floor(Math.log2(Math.max(width, height)));
170
+ }
171
+ function expandTemplate(template, templateOptions) {
172
+ let expanded = '';
173
+ for (let index = 0; index < template.length; index++) {
174
+ const character = template[index];
175
+ if (character === '\\') {
176
+ const nextCharacter = template[index + 1];
177
+ if (nextCharacter === '{' || nextCharacter === '}' || nextCharacter === '\\') {
178
+ expanded += nextCharacter;
179
+ index++;
180
+ continue;
181
+ }
182
+ throw new Error(`Invalid escape sequence \\${nextCharacter || ''} in template ${template}`);
183
+ }
184
+ if (character === '}') {
185
+ throw new Error(`Unexpected } in template ${template}`);
186
+ }
187
+ if (character !== '{') {
188
+ expanded += character;
189
+ continue;
190
+ }
191
+ const closingBraceIndex = findClosingBraceIndex(template, index + 1);
192
+ if (closingBraceIndex < 0) {
193
+ throw new Error(`Unterminated placeholder in template ${template}`);
194
+ }
195
+ const placeholder = template.slice(index + 1, closingBraceIndex);
196
+ if (!/^[a-z][a-zA-Z0-9]*$/.test(placeholder)) {
197
+ throw new Error(`Invalid placeholder {${placeholder}} in template ${template}`);
198
+ }
199
+ const value = getTemplateValue(placeholder, templateOptions);
200
+ if (value === undefined) {
201
+ throw new Error(`Template ${template} uses unsupported placeholder {${placeholder}} for this source`);
202
+ }
203
+ expanded += String(value);
204
+ index = closingBraceIndex;
205
+ }
206
+ return expanded;
207
+ }
208
+ function findClosingBraceIndex(template, startIndex) {
209
+ for (let index = startIndex; index < template.length; index++) {
210
+ const character = template[index];
211
+ if (character === '\\') {
212
+ index++;
213
+ continue;
214
+ }
215
+ if (character === '{') {
216
+ throw new Error(`Nested placeholders are not supported in template ${template}`);
217
+ }
218
+ if (character === '}') {
219
+ return index;
220
+ }
221
+ }
222
+ return -1;
223
+ }
224
+ function getTemplateValue(placeholder, templateOptions) {
225
+ switch (placeholder) {
226
+ case 'lod':
227
+ return templateOptions.lod;
228
+ case 'index':
229
+ return templateOptions.index;
230
+ case 'face':
231
+ return templateOptions.face;
232
+ case 'direction':
233
+ return templateOptions.direction;
234
+ case 'axis':
235
+ return templateOptions.axis;
236
+ case 'sign':
237
+ return templateOptions.sign;
238
+ default:
239
+ return undefined;
240
+ }
241
+ }
242
+ function isImageTextureTemplateSource(source) {
243
+ return typeof source === 'object' && source !== null && !Array.isArray(source);
244
+ }
245
+ function getCompositeImageBaseUrl(options, context) {
246
+ if (context?.baseUrl) {
247
+ return context.baseUrl;
248
+ }
249
+ if (options.baseUrl) {
250
+ return stripTrailingSlash(options.baseUrl);
251
+ }
252
+ if (options.core?.baseUrl) {
253
+ return getSourceUrlDirectory(options.core.baseUrl);
254
+ }
255
+ return null;
256
+ }
257
+ function stripTrailingSlash(baseUrl) {
258
+ if (baseUrl.endsWith('/')) {
259
+ return baseUrl.slice(0, -1);
260
+ }
261
+ return baseUrl;
262
+ }
263
+ function getSourceUrlDirectory(baseUrl) {
264
+ return stripTrailingSlash(path.dirname(baseUrl));
265
+ }
266
+ function joinCompositeImageUrl(baseUrl, url) {
267
+ if (isRequestLikeUrl(baseUrl)) {
268
+ return new URL(url, `${stripTrailingSlash(baseUrl)}/`).toString();
269
+ }
270
+ const normalizedBaseUrl = baseUrl.startsWith('/') ? baseUrl : `/${baseUrl}`;
271
+ const normalizedUrl = path.resolve(normalizedBaseUrl, url);
272
+ return baseUrl.startsWith('/') ? normalizedUrl : normalizedUrl.slice(1);
273
+ }
274
+ function isRequestLikeUrl(url) {
275
+ return (url.startsWith('http:') ||
276
+ url.startsWith('https:') ||
277
+ url.startsWith('file:') ||
278
+ url.startsWith('blob:'));
279
+ }
280
+ function getCompositeImageFetch(options, context) {
281
+ const fetchOption = options.fetch ?? options.core?.fetch;
282
+ if (context?.fetch) {
283
+ return context.fetch;
284
+ }
285
+ if (typeof fetchOption === 'function') {
286
+ return fetchOption;
287
+ }
288
+ if (fetchOption && typeof fetchOption === 'object') {
289
+ return (url) => fetch(url, fetchOption);
290
+ }
291
+ return fetch;
292
+ }
293
+ function getCompositeImageSubloaderOptions(options) {
294
+ const core = options.core;
295
+ const rest = { ...options };
296
+ delete rest.baseUrl;
297
+ if (!core?.baseUrl) {
298
+ return rest;
299
+ }
300
+ const restCore = { ...core };
301
+ delete restCore.baseUrl;
302
+ return {
303
+ ...rest,
304
+ core: restCore
305
+ };
306
+ }
307
+ function normalizeCompositeImageManifestOptions(options) {
308
+ if (options.image?.type || typeof ImageBitmap === 'undefined') {
309
+ return options;
310
+ }
311
+ return {
312
+ ...options,
313
+ image: {
314
+ ...options.image,
315
+ type: 'imagebitmap'
316
+ }
317
+ };
318
+ }
319
+ function getCompositeImageMemberContext(resolvedUrl, response, context) {
320
+ const url = response.url || resolvedUrl;
321
+ const [urlWithoutQueryString, queryString = ''] = url.split('?');
322
+ return {
323
+ ...context,
324
+ url,
325
+ response,
326
+ filename: path.filename(urlWithoutQueryString),
327
+ baseUrl: path.dirname(urlWithoutQueryString),
328
+ queryString
329
+ };
330
+ }
331
+ function convertCompositeImageToTexture(shape, imageData) {
332
+ switch (shape) {
333
+ case 'image-texture': {
334
+ const data = normalizeCompositeImageMember(imageData);
335
+ return {
336
+ shape: 'texture',
337
+ type: '2d',
338
+ format: getCompositeTextureFormat(data),
339
+ data
340
+ };
341
+ }
342
+ case 'image-texture-array': {
343
+ const data = imageData.map((layer) => normalizeCompositeImageMember(layer));
344
+ return {
345
+ shape: 'texture',
346
+ type: '2d-array',
347
+ format: getCompositeTextureFormat(data[0]),
348
+ data
349
+ };
350
+ }
351
+ case 'image-texture-cube': {
352
+ const data = IMAGE_TEXTURE_CUBE_FACES.map(({ face }) => normalizeCompositeImageMember(imageData[face]));
353
+ return {
354
+ shape: 'texture',
355
+ type: 'cube',
356
+ format: getCompositeTextureFormat(data[0]),
357
+ data
358
+ };
359
+ }
360
+ case 'image-texture-cube-array': {
361
+ const data = imageData.map((layer) => IMAGE_TEXTURE_CUBE_FACES.map(({ face }) => normalizeCompositeImageMember(layer[face])));
362
+ return {
363
+ shape: 'texture',
364
+ type: 'cube-array',
365
+ format: getCompositeTextureFormat(data[0][0]),
366
+ data
367
+ };
368
+ }
369
+ default:
370
+ throw new Error(`Unsupported composite image shape ${shape}`);
371
+ }
372
+ }
373
+ function normalizeCompositeImageMember(imageData) {
374
+ if (Array.isArray(imageData)) {
375
+ if (imageData.length === 0) {
376
+ throw new Error('Composite image members must not be empty');
377
+ }
378
+ if (imageData.every(isTextureLevel)) {
379
+ return imageData;
380
+ }
381
+ if (imageData.every(isImage)) {
382
+ return imageData.map((image) => getTextureLevelFromImage(image));
383
+ }
384
+ if (imageData.every((entry) => Array.isArray(entry) && entry.every(isTextureLevel))) {
385
+ if (imageData.length !== 1) {
386
+ throw new Error('Composite image members must resolve to a single image or mip chain');
387
+ }
388
+ return imageData[0];
389
+ }
390
+ }
391
+ if (isTexture(imageData)) {
392
+ if (imageData.type !== '2d') {
393
+ throw new Error(`Composite image members must resolve to 2d textures, got ${imageData.type}`);
394
+ }
395
+ return imageData.data;
396
+ }
397
+ if (isTextureLevel(imageData)) {
398
+ return [imageData];
399
+ }
400
+ if (isImage(imageData)) {
401
+ return [getTextureLevelFromImage(imageData)];
402
+ }
403
+ throw new Error('Composite image members must resolve to an image, mip chain, or texture');
404
+ }
405
+ function getTextureLevelFromImage(image) {
406
+ const { width, height } = getImageSize(image);
407
+ return {
408
+ shape: 'texture-level',
409
+ compressed: false,
410
+ width,
411
+ height,
412
+ imageBitmap: typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ? image : undefined,
413
+ data: new Uint8Array(0),
414
+ textureFormat: 'rgba8unorm'
415
+ };
416
+ }
417
+ function getCompositeTextureFormat(textureLevels) {
418
+ return textureLevels[0]?.textureFormat || 'rgba8unorm';
419
+ }
420
+ function isTextureLevel(textureLevel) {
421
+ return Boolean(textureLevel &&
422
+ typeof textureLevel === 'object' &&
423
+ 'shape' in textureLevel &&
424
+ textureLevel.shape === 'texture-level');
425
+ }
426
+ function isTexture(texture) {
427
+ return Boolean(texture && typeof texture === 'object' && 'shape' in texture && texture.shape === 'texture');
428
+ }
429
+ function isAbsoluteCompositeImageUrl(url) {
430
+ return (url.startsWith('data:') ||
431
+ url.startsWith('blob:') ||
432
+ url.startsWith('file:') ||
433
+ url.startsWith('http:') ||
434
+ url.startsWith('https:') ||
435
+ url.startsWith('/'));
436
+ }
437
+ //# sourceMappingURL=parse-composite-image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-composite-image.js","sourceRoot":"","sources":["../../../src/lib/composite-image/parse-composite-image.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare function encodeKTX(texture: any): import("ktx-parse").KTX2Container;
1
+ export declare function encodeKTX(texture: Uint8Array): import("ktx-parse").KTX2Container;
2
2
  //# sourceMappingURL=encode-ktx.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"encode-ktx.d.ts","sourceRoot":"","sources":["../../../src/lib/encoders/encode-ktx.ts"],"names":[],"mappings":"AAMA,wBAAgB,SAAS,CAAC,OAAO,KAAA,qCAIhC"}
1
+ {"version":3,"file":"encode-ktx.d.ts","sourceRoot":"","sources":["../../../src/lib/encoders/encode-ktx.ts"],"names":[],"mappings":"AAMA,wBAAgB,SAAS,CAAC,OAAO,EAAE,UAAU,qCAI5C"}
@@ -7,3 +7,4 @@ export function encodeKTX(texture) {
7
7
  // post process
8
8
  return ktx;
9
9
  }
10
+ //# sourceMappingURL=encode-ktx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encode-ktx.js","sourceRoot":"","sources":["../../../src/lib/encoders/encode-ktx.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAE/B,MAAM,UAAU,SAAS,CAAC,OAAmB;IAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1B,eAAe;IACf,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { ImageDataType } from '@loaders.gl/images';
2
+ import { type KTX2BasisWriterOptions } from "../../ktx2-basis-writer.js";
2
3
  /**
3
4
  * Encodes image to Basis Universal Supercompressed GPU Texture.
4
5
  * Code example is taken from here - https://github.com/BinomialLLC/basis_universal/blob/master/webgl/ktx2_encode_test/index.html#L279
@@ -6,5 +7,5 @@ import type { ImageDataType } from '@loaders.gl/images';
6
7
  * @param image
7
8
  * @param options
8
9
  */
9
- export declare function encodeKTX2BasisTexture(image: ImageDataType, options?: any): Promise<ArrayBuffer>;
10
+ export declare function encodeKTX2BasisTexture(image: ImageDataType, options?: KTX2BasisWriterOptions): Promise<ArrayBuffer>;
10
11
  //# sourceMappingURL=encode-ktx2-basis-texture.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"encode-ktx2-basis-texture.d.ts","sourceRoot":"","sources":["../../../src/lib/encoders/encode-ktx2-basis-texture.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAGtD;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,aAAa,EACpB,OAAO,GAAE,GAAQ,GAChB,OAAO,CAAC,WAAW,CAAC,CAmCtB"}
1
+ {"version":3,"file":"encode-ktx2-basis-texture.d.ts","sourceRoot":"","sources":["../../../src/lib/encoders/encode-ktx2-basis-texture.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAGtD,OAAO,EAAC,KAAK,sBAAsB,EAAC,mCAAgC;AAEpE;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,aAAa,EACpB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,WAAW,CAAC,CAmCtB"}
@@ -1,6 +1,7 @@
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 } from "../parsers/basis-module-loader.js";
5
6
  /**
6
7
  * Encodes image to Basis Universal Supercompressed GPU Texture.
@@ -12,7 +13,7 @@ import { loadBasisEncoderModule } from "../parsers/basis-module-loader.js";
12
13
  export async function encodeKTX2BasisTexture(image, options = {}) {
13
14
  // TODO remove default values after writer options will be normalized like it done in load module.
14
15
  const { useSRGB = false, qualityLevel = 10, encodeUASTC = false, mipmaps = false } = options?.['ktx2-basis-writer'] || {};
15
- const { BasisEncoder } = await loadBasisEncoderModule(options);
16
+ const { BasisEncoder } = await loadBasisEncoderModule(extractLoadLibraryOptions(options));
16
17
  const basisEncoder = new BasisEncoder();
17
18
  try {
18
19
  const basisFileData = new Uint8Array(image.width * image.height * 4);
@@ -38,3 +39,4 @@ export async function encodeKTX2BasisTexture(image, options = {}) {
38
39
  basisEncoder.delete();
39
40
  }
40
41
  }
42
+ //# sourceMappingURL=encode-ktx2-basis-texture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encode-ktx2-basis-texture.js","sourceRoot":"","sources":["../../../src/lib/encoders/encode-ktx2-basis-texture.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,yBAAyB,EAAC,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAC,sBAAsB,EAAC,0CAAuC;AAGtE;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,KAAoB,EACpB,UAAkC,EAAE;IAEpC,kGAAkG;IAClG,MAAM,EACJ,OAAO,GAAG,KAAK,EACf,YAAY,GAAG,EAAE,EACjB,WAAW,GAAG,KAAK,EACnB,OAAO,GAAG,KAAK,EAChB,GAAG,OAAO,EAAE,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;IACzC,MAAM,EAAC,YAAY,EAAC,GAAG,MAAM,sBAAsB,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC;IACxF,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;IAExC,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrE,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACrC,YAAY,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC;QAChD,YAAY,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAE3C,YAAY,CAAC,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAClF,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACpC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACjC,YAAY,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QAC3C,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACnC,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAEhC,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAE1D,MAAM,kBAAkB,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,MAAM,CAAC;QAC5E,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,sCAAsC;QACtC,OAAO,CAAC,KAAK,CAAC,6DAA6D,EAAE,KAAK,CAAC,CAAC;QACpF,MAAM,KAAK,CAAC;IACd,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,MAAM,EAAE,CAAC;IACxB,CAAC;AACH,CAAC"}
@@ -24,3 +24,4 @@ export async function encodeImageURLToCompressedTextureURL(inputUrl, outputUrl,
24
24
  });
25
25
  return outputUrl;
26
26
  }
27
+ //# sourceMappingURL=encode-texture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encode-texture.js","sourceRoot":"","sources":["../../../src/lib/encoders/encode-texture.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AAG3D;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oCAAoC,CACxD,QAAgB,EAChB,SAAiB,EACjB,OAAwC;IAExC,kBAAkB;IAClB,MAAM,IAAI,GAAG;QACX,+EAA+E;QAC/E,oBAAoB;QACpB,QAAQ,EAAE,MAAM;QAChB,eAAe,EAAE,MAAM;QACvB,WAAW,EAAE,QAAQ;QACrB,SAAS,EAAE,QAAQ;QACnB,UAAU,EAAE,SAAS;KACtB,CAAC;IACF,MAAM,YAAY,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAC7C,MAAM,YAAY,CAAC,KAAK,CAAC;QACvB,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,OAAO;KACf,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;AACnB,CAAC"}