@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 @@
1
+ {"version":3,"file":"parse-dds.js","sourceRoot":"","sources":["../../../src/lib/parsers/parse-dds.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { Texture } from '@loaders.gl/schema';
2
+ /** Application-facing metadata extracted from Radiance HDR header fields. */
3
+ export type RadianceHDRMetadata = {
4
+ /** Per-channel color correction factors from the `COLORCORR` header field. */
5
+ colorCorrection?: [number, number, number];
6
+ /** Scene exposure multiplier from the `EXPOSURE` header field. */
7
+ exposure?: number;
8
+ /** Display gamma hint from the `GAMMA` header field. */
9
+ gamma?: number;
10
+ /** Pixel aspect ratio from the `PIXASPECT` header field. */
11
+ pixelAspectRatio?: number;
12
+ /** Chromaticity primaries and white point from the `PRIMARIES` header field. */
13
+ primaries?: [number, number, number, number, number, number, number, number];
14
+ /** Producer software identifier from the `SOFTWARE` header field. */
15
+ software?: string;
16
+ /** View specification string from the `VIEW` header field. */
17
+ view?: string;
18
+ };
19
+ export declare function isHDR(arrayBuffer: ArrayBuffer): boolean;
20
+ export declare function parseHDR(arrayBuffer: ArrayBuffer): Texture<RadianceHDRMetadata>;
21
+ //# sourceMappingURL=parse-hdr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-hdr.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-hdr.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,OAAO,EAAe,MAAM,oBAAoB,CAAC;AAM9D,6EAA6E;AAC7E,MAAM,MAAM,mBAAmB,GAAG;IAChC,8EAA8E;IAC9E,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gFAAgF;IAChF,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7E,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAiBF,wBAAgB,KAAK,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAQvD;AAED,wBAAgB,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA2B/E"}
@@ -0,0 +1,305 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ import { GL_RGBA32F } from "../gl-extensions.js";
5
+ const HDR_MAGIC_HEADERS = ['#?RADIANCE', '#?RGBE'];
6
+ const HDR_FORMAT = '32-bit_rle_rgbe';
7
+ export function isHDR(arrayBuffer) {
8
+ const state = {
9
+ data: new Uint8Array(arrayBuffer),
10
+ offset: 0
11
+ };
12
+ const firstLine = readLine(state);
13
+ return firstLine ? HDR_MAGIC_HEADERS.includes(firstLine) : false;
14
+ }
15
+ export function parseHDR(arrayBuffer) {
16
+ const state = {
17
+ data: new Uint8Array(arrayBuffer),
18
+ offset: 0
19
+ };
20
+ const header = readHeader(state);
21
+ const { width, height } = header;
22
+ const rgbeData = readPixels(state, header);
23
+ const data = convertRGBEToFloat(rgbeData);
24
+ const level = {
25
+ shape: 'texture-level',
26
+ compressed: false,
27
+ width,
28
+ height,
29
+ data,
30
+ levelSize: data.byteLength,
31
+ format: GL_RGBA32F,
32
+ textureFormat: 'rgba32float'
33
+ };
34
+ return {
35
+ shape: 'texture',
36
+ type: '2d',
37
+ format: 'rgba32float',
38
+ ...(header.metadata ? { metadata: header.metadata } : {}),
39
+ data: [level]
40
+ };
41
+ }
42
+ function readHeader(state) {
43
+ const magicHeader = readLine(state);
44
+ if (!magicHeader || !HDR_MAGIC_HEADERS.includes(magicHeader)) {
45
+ throw new Error('RadianceHDRLoader: bad initial token');
46
+ }
47
+ let hasFormat = false;
48
+ const metadata = {};
49
+ while (state.offset < state.data.length) {
50
+ const line = readLine(state);
51
+ if (line === null) {
52
+ break;
53
+ }
54
+ if (!line || line.startsWith('#')) {
55
+ continue;
56
+ }
57
+ if (line.startsWith('FORMAT=')) {
58
+ hasFormat = line.slice('FORMAT='.length) === HDR_FORMAT;
59
+ if (!hasFormat) {
60
+ throw new Error('RadianceHDRLoader: unsupported format specifier');
61
+ }
62
+ continue;
63
+ }
64
+ parseMetadataLine(metadata, line);
65
+ const dimensions = parseDimensions(line);
66
+ if (dimensions) {
67
+ if (!hasFormat) {
68
+ throw new Error('RadianceHDRLoader: missing format specifier');
69
+ }
70
+ return {
71
+ ...dimensions,
72
+ ...(hasMetadata(metadata) ? { metadata } : {})
73
+ };
74
+ }
75
+ }
76
+ if (!hasFormat) {
77
+ throw new Error('RadianceHDRLoader: missing format specifier');
78
+ }
79
+ throw new Error('RadianceHDRLoader: missing image size specifier');
80
+ }
81
+ function parseDimensions(line) {
82
+ const match = line.match(/^([+-])([YX])\s+(\d+)\s+([+-])([YX])\s+(\d+)$/);
83
+ if (!match) {
84
+ return null;
85
+ }
86
+ const majorSign = match[1] === '+' ? 1 : -1;
87
+ const majorAxis = match[2];
88
+ const majorLength = Number(match[3]);
89
+ const minorSign = match[4] === '+' ? 1 : -1;
90
+ const minorAxis = match[5];
91
+ const minorLength = Number(match[6]);
92
+ if (majorAxis === minorAxis) {
93
+ throw new Error('RadianceHDRLoader: invalid image dimensions');
94
+ }
95
+ const width = majorAxis === 'X' ? majorLength : minorLength;
96
+ const height = majorAxis === 'Y' ? majorLength : minorLength;
97
+ if (!Number.isFinite(width) || !Number.isFinite(height) || width <= 0 || height <= 0) {
98
+ throw new Error('RadianceHDRLoader: invalid image dimensions');
99
+ }
100
+ return { width, height, majorAxis, majorSign, minorAxis, minorSign };
101
+ }
102
+ function readPixels(state, header) {
103
+ const { width, height } = header;
104
+ const pixelCount = width * height;
105
+ const flatByteLength = pixelCount * 4;
106
+ const scanlineLength = header.minorAxis === 'X' ? width : height;
107
+ const scanlineCount = header.majorAxis === 'Y' ? height : width;
108
+ if (scanlineLength < 8 || scanlineLength > 0x7fff) {
109
+ return reorderPixels(readFlatPixels(state, flatByteLength), header);
110
+ }
111
+ if (state.offset + 4 > state.data.length) {
112
+ throw new Error('RadianceHDRLoader: unexpected end of file');
113
+ }
114
+ const data = state.data;
115
+ const isRunLengthEncoded = data[state.offset] === 2 && data[state.offset + 1] === 2 && !(data[state.offset + 2] & 0x80);
116
+ if (!isRunLengthEncoded) {
117
+ return reorderPixels(readFlatPixels(state, flatByteLength), header);
118
+ }
119
+ const scanlineWidth = (data[state.offset + 2] << 8) | data[state.offset + 3];
120
+ if (scanlineWidth !== scanlineLength) {
121
+ return reorderPixels(readFlatPixels(state, flatByteLength), header);
122
+ }
123
+ const pixels = new Uint8Array(flatByteLength);
124
+ const scanlineBuffer = new Uint8Array(scanlineLength * 4);
125
+ for (let scanlineIndex = 0; scanlineIndex < scanlineCount; scanlineIndex++) {
126
+ if (state.offset + 4 > data.length) {
127
+ throw new Error('RadianceHDRLoader: unexpected end of file');
128
+ }
129
+ const red = data[state.offset++];
130
+ const green = data[state.offset++];
131
+ const blue = data[state.offset++];
132
+ const exponent = data[state.offset++];
133
+ if (red !== 2 || green !== 2 || ((blue << 8) | exponent) !== scanlineLength) {
134
+ throw new Error('RadianceHDRLoader: bad rgbe scanline format');
135
+ }
136
+ for (let channelIndex = 0; channelIndex < 4; channelIndex++) {
137
+ const channelOffset = channelIndex * scanlineLength;
138
+ const channelEnd = channelOffset + scanlineLength;
139
+ let pixelOffset = channelOffset;
140
+ while (pixelOffset < channelEnd) {
141
+ if (state.offset >= data.length) {
142
+ throw new Error('RadianceHDRLoader: unexpected end of file');
143
+ }
144
+ let count = data[state.offset++];
145
+ if (count > 128) {
146
+ count -= 128;
147
+ if (count === 0 || pixelOffset + count > channelEnd || state.offset >= data.length) {
148
+ throw new Error('RadianceHDRLoader: bad scanline data');
149
+ }
150
+ const value = data[state.offset++];
151
+ scanlineBuffer.fill(value, pixelOffset, pixelOffset + count);
152
+ pixelOffset += count;
153
+ continue;
154
+ }
155
+ if (count === 0 || pixelOffset + count > channelEnd || state.offset + count > data.length) {
156
+ throw new Error('RadianceHDRLoader: bad scanline data');
157
+ }
158
+ scanlineBuffer.set(data.subarray(state.offset, state.offset + count), pixelOffset);
159
+ pixelOffset += count;
160
+ state.offset += count;
161
+ }
162
+ }
163
+ for (let pixelIndex = 0; pixelIndex < scanlineLength; pixelIndex++) {
164
+ const outputOffset = getOutputOffset(header, scanlineIndex, pixelIndex);
165
+ pixels[outputOffset] = scanlineBuffer[pixelIndex];
166
+ pixels[outputOffset + 1] = scanlineBuffer[pixelIndex + scanlineLength];
167
+ pixels[outputOffset + 2] = scanlineBuffer[pixelIndex + scanlineLength * 2];
168
+ pixels[outputOffset + 3] = scanlineBuffer[pixelIndex + scanlineLength * 3];
169
+ }
170
+ }
171
+ return pixels;
172
+ }
173
+ function reorderPixels(data, header) {
174
+ const pixels = new Uint8Array(data.length);
175
+ const scanlineLength = header.minorAxis === 'X' ? header.width : header.height;
176
+ const scanlineCount = header.majorAxis === 'Y' ? header.height : header.width;
177
+ for (let scanlineIndex = 0; scanlineIndex < scanlineCount; scanlineIndex++) {
178
+ for (let pixelIndex = 0; pixelIndex < scanlineLength; pixelIndex++) {
179
+ const sourceOffset = (scanlineIndex * scanlineLength + pixelIndex) * 4;
180
+ const outputOffset = getOutputOffset(header, scanlineIndex, pixelIndex);
181
+ pixels[outputOffset] = data[sourceOffset];
182
+ pixels[outputOffset + 1] = data[sourceOffset + 1];
183
+ pixels[outputOffset + 2] = data[sourceOffset + 2];
184
+ pixels[outputOffset + 3] = data[sourceOffset + 3];
185
+ }
186
+ }
187
+ return pixels;
188
+ }
189
+ function getOutputOffset(header, scanlineIndex, pixelIndex) {
190
+ const majorCoordinate = getCoordinate(header.majorAxis === 'X' ? header.width : header.height, header.majorSign, scanlineIndex);
191
+ const minorCoordinate = getCoordinate(header.minorAxis === 'X' ? header.width : header.height, header.minorSign, pixelIndex);
192
+ const x = header.majorAxis === 'X' ? majorCoordinate : minorCoordinate;
193
+ const y = header.majorAxis === 'Y' ? majorCoordinate : minorCoordinate;
194
+ return ((header.height - 1 - y) * header.width + x) * 4;
195
+ }
196
+ function getCoordinate(length, sign, index) {
197
+ return sign === 1 ? index : length - 1 - index;
198
+ }
199
+ function readFlatPixels(state, byteLength) {
200
+ if (state.offset + byteLength > state.data.length) {
201
+ throw new Error('RadianceHDRLoader: unexpected end of file');
202
+ }
203
+ const pixels = state.data.slice(state.offset, state.offset + byteLength);
204
+ state.offset += byteLength;
205
+ return pixels;
206
+ }
207
+ function convertRGBEToFloat(data) {
208
+ const floatData = new Float32Array(data.length);
209
+ for (let sourceOffset = 0; sourceOffset < data.length; sourceOffset += 4) {
210
+ const exponent = data[sourceOffset + 3];
211
+ const destinationOffset = sourceOffset;
212
+ if (exponent > 0) {
213
+ const scale = Math.pow(2, exponent - 128) / 255;
214
+ floatData[destinationOffset] = data[sourceOffset] * scale;
215
+ floatData[destinationOffset + 1] = data[sourceOffset + 1] * scale;
216
+ floatData[destinationOffset + 2] = data[sourceOffset + 2] * scale;
217
+ }
218
+ floatData[destinationOffset + 3] = 1;
219
+ }
220
+ return floatData;
221
+ }
222
+ function readLine(state) {
223
+ if (state.offset >= state.data.length) {
224
+ return null;
225
+ }
226
+ const lineStart = state.offset;
227
+ while (state.offset < state.data.length) {
228
+ const byte = state.data[state.offset++];
229
+ if (byte === 0x0a) {
230
+ const line = decodeASCII(state.data.subarray(lineStart, state.offset - 1));
231
+ return line.endsWith('\r') ? line.slice(0, -1) : line;
232
+ }
233
+ }
234
+ const line = decodeASCII(state.data.subarray(lineStart, state.offset));
235
+ return line.endsWith('\r') ? line.slice(0, -1) : line;
236
+ }
237
+ function decodeASCII(data) {
238
+ let line = '';
239
+ for (const byte of data) {
240
+ line += String.fromCharCode(byte);
241
+ }
242
+ return line;
243
+ }
244
+ function parseMetadataLine(metadata, line) {
245
+ if (line.startsWith('COLORCORR=')) {
246
+ const values = parseNumberList(line.slice('COLORCORR='.length), 3);
247
+ if (values) {
248
+ metadata.colorCorrection = values;
249
+ }
250
+ return;
251
+ }
252
+ if (line.startsWith('EXPOSURE=')) {
253
+ const value = parseNumber(line.slice('EXPOSURE='.length));
254
+ if (value !== null) {
255
+ metadata.exposure = value;
256
+ }
257
+ return;
258
+ }
259
+ if (line.startsWith('GAMMA=')) {
260
+ const value = parseNumber(line.slice('GAMMA='.length));
261
+ if (value !== null) {
262
+ metadata.gamma = value;
263
+ }
264
+ return;
265
+ }
266
+ if (line.startsWith('PIXASPECT=')) {
267
+ const value = parseNumber(line.slice('PIXASPECT='.length));
268
+ if (value !== null) {
269
+ metadata.pixelAspectRatio = value;
270
+ }
271
+ return;
272
+ }
273
+ if (line.startsWith('PRIMARIES=')) {
274
+ const values = parseNumberList(line.slice('PRIMARIES='.length), 8);
275
+ if (values) {
276
+ metadata.primaries = values;
277
+ }
278
+ return;
279
+ }
280
+ if (line.startsWith('SOFTWARE=')) {
281
+ metadata.software = line.slice('SOFTWARE='.length).trim();
282
+ return;
283
+ }
284
+ if (line.startsWith('VIEW=')) {
285
+ metadata.view = line.slice('VIEW='.length).trim();
286
+ }
287
+ }
288
+ function parseNumber(text) {
289
+ const value = Number(text.trim());
290
+ return Number.isFinite(value) ? value : null;
291
+ }
292
+ function parseNumberList(text, count) {
293
+ const values = text
294
+ .trim()
295
+ .split(/\s+/)
296
+ .map((value) => Number(value));
297
+ if (values.length !== count || values.some((value) => !Number.isFinite(value))) {
298
+ return null;
299
+ }
300
+ return values;
301
+ }
302
+ function hasMetadata(metadata) {
303
+ return Object.keys(metadata).length > 0;
304
+ }
305
+ //# sourceMappingURL=parse-hdr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-hdr.js","sourceRoot":"","sources":["../../../src/lib/parsers/parse-hdr.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-ktx.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-ktx.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAWrD,wBAAgB,KAAK,CAAC,IAAI,EAAE,WAAW,WAmBtC;AAED,wBAAgB,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,YAAY,EAAE,CAejE"}
1
+ {"version":3,"file":"parse-ktx.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-ktx.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAYrD,wBAAgB,KAAK,CAAC,IAAI,EAAE,WAAW,WAmBtC;AAED,wBAAgB,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,YAAY,EAAE,CAwBjE"}
@@ -1,9 +1,10 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
+ import { log } from '@loaders.gl/loader-utils';
4
5
  import { read } from 'ktx-parse';
5
6
  import { extractMipmapImages } from "../utils/extract-mipmap-images.js";
6
- import { mapVkFormatToWebGL } from "../utils/ktx-format-helper.js";
7
+ import { mapVkFormatToTextureFormat } from "../utils/ktx-format-helper.js";
7
8
  const KTX2_ID = [
8
9
  // '´', 'K', 'T', 'X', '2', '0', 'ª', '\r', '\n', '\x1A', '\n'
9
10
  0xab, 0x4b, 0x54, 0x58, 0x20, 0x32, 0x30, 0xbb, 0x0d, 0x0a, 0x1a, 0x0a
@@ -33,12 +34,19 @@ export function parseKTX(arrayBuffer) {
33
34
  const mipMapLevels = Math.max(1, ktx.levels.length);
34
35
  const width = ktx.pixelWidth;
35
36
  const height = ktx.pixelHeight;
36
- const internalFormat = mapVkFormatToWebGL(ktx.vkFormat);
37
+ const textureFormat = mapVkFormatToTextureFormat(ktx.vkFormat);
38
+ if (textureFormat === undefined) {
39
+ // TODO: Basis-backed and otherwise unknown-format KTX2 files should preserve the
40
+ // legacy CompressedTextureLoader behavior for now. Do not fail here or add implicit
41
+ // transcoding in this parser path; just return levels without `format` metadata.
42
+ log.warn(`KTX2 container vkFormat ${ktx.vkFormat} does not map to a known texture format; returning texture levels without format metadata.`)();
43
+ }
37
44
  return extractMipmapImages(ktx.levels, {
38
45
  mipMapLevels,
39
46
  width,
40
47
  height,
41
48
  sizeFunction: (level) => level.uncompressedByteLength,
42
- internalFormat
49
+ textureFormat
43
50
  });
44
51
  }
52
+ //# sourceMappingURL=parse-ktx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-ktx.js","sourceRoot":"","sources":["../../../src/lib/parsers/parse-ktx.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,GAAG,EAAC,MAAM,0BAA0B,CAAC;AAC7C,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAC,mBAAmB,EAAC,0CAAuC;AACnE,OAAO,EAAC,0BAA0B,EAAC,sCAAmC;AAEtE,MAAM,OAAO,GAAG;IACd,8DAA8D;IAC9D,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CACvE,CAAC;AAEF,sCAAsC;AACtC,MAAM,UAAU,KAAK,CAAC,IAAiB;IACrC,4EAA4E;IAC5E,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,MAAM,GACV,EAAE,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM;QAC9B,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM;QAC9B,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM;QAC9B,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM;QAC9B,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM;QAC9B,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM;QAC9B,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM;QAC9B,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM;QAC9B,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM;QAC9B,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO;QAC/B,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO;QAC/B,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,EAAE,CAAC,IAAI,SAAS;QACnC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO;IAEjC,OAAO,CAAC,MAAM,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,WAAwB;IAC/C,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC;IAC7B,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,CAAC;IAC/B,MAAM,aAAa,GAAG,0BAA0B,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE/D,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,iFAAiF;QACjF,oFAAoF;QACpF,iFAAiF;QACjF,GAAG,CAAC,IAAI,CACN,2BAA2B,GAAG,CAAC,QAAQ,4FAA4F,CACpI,EAAE,CAAC;IACN,CAAC;IAED,OAAO,mBAAmB,CAAC,GAAG,CAAC,MAAM,EAAE;QACrC,YAAY;QACZ,KAAK;QACL,MAAM;QACN,YAAY,EAAE,CAAC,KAAU,EAAU,EAAE,CAAC,KAAK,CAAC,sBAAsB;QAClE,aAAa;KACd,CAAC,CAAC;AACL,CAAC"}
@@ -78,3 +78,4 @@ function parseHeader(view) {
78
78
  .replace(/,*\),*/g, ']'));
79
79
  return { header, headerEndOffset: offset };
80
80
  }
81
+ //# sourceMappingURL=parse-npy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-npy.js","sourceRoot":"","sources":["../../../src/lib/parsers/parse-npy.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAiBpC,MAAM,CAAC,GAAG,IAAI,WAAW,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AACxC,MAAM,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;AAC/D,MAAM,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;AAExC,MAAM,gBAAgB,GAAG,cAAc,CAAC;AAexC;;;;;;;;GAQG;AACH,MAAM,MAAM,GAA0C;IACpD,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,YAAY;CACjB,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,WAAwB,EAAE,OAAY;IAC7D,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,WAAW,CAAC,CAAC;IACvC,MAAM,EAAC,MAAM,EAAE,eAAe,EAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAEpD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;IAC/B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAChD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACrF,MAAM,eAAe,GAAG,cAAc,GAAG,SAAS,CAAC,iBAAiB,CAAC;IAErE,IAAI,WAAW,CAAC,UAAU,GAAG,eAAe,GAAG,eAAe,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,eAAe,EAAE,eAAe,GAAG,eAAe,CAAC,CAAC,CAAC;IAElG,4BAA4B;IAC5B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC9F,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO;QACL,IAAI;QACJ,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,WAAW,CAAC,IAAc;IACjC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtC,yCAAyC;IAEzC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,YAAoB,CAAC;IACzB,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;QACtB,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5C,MAAM,IAAI,CAAC,CAAC;IACd,CAAC;SAAM,CAAC;QACN,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5C,MAAM,IAAI,CAAC,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IACxD,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IACtE,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC/C,MAAM,IAAI,YAAY,CAAC;IAEvB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CACvB,UAAU;SACP,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;SAClB,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;SACzB,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;SACjB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAC3B,CAAC;IAEF,OAAO,EAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAC,CAAC;AAC3C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-pvr.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-pvr.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAwHrD;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAKhD;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,EAAE,CA0B1D"}
1
+ {"version":3,"file":"parse-pvr.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-pvr.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAgB,YAAY,EAAC,MAAM,oBAAoB,CAAC;AA6EpE;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAKhD;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,EAAE,CA2B1D"}
@@ -1,7 +1,6 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- import { GL_EXTENSIONS_CONSTANTS } from "../gl-extensions.js";
5
4
  import { extractMipmapImages } from "../utils/extract-mipmap-images.js";
6
5
  const PVR_CONSTANTS = {
7
6
  MAGIC_NUMBER: 0x03525650,
@@ -16,76 +15,34 @@ const PVR_CONSTANTS = {
16
15
  MIPMAPCOUNT_INDEX: 11,
17
16
  METADATA_SIZE_INDEX: 12
18
17
  };
19
- const PVR_PIXEL_FORMATS = {
20
- 0: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_2BPPV1_IMG],
21
- 1: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG],
22
- 2: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_PVRTC_4BPPV1_IMG],
23
- 3: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG],
24
- 6: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_ETC1_WEBGL],
25
- 7: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB_S3TC_DXT1_EXT],
26
- 9: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT3_EXT],
27
- 11: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_S3TC_DXT5_EXT],
28
- 22: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_ETC2],
29
- 23: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA8_ETC2_EAC],
30
- 24: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2],
31
- 25: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_R11_EAC],
32
- 26: [GL_EXTENSIONS_CONSTANTS.COMPRESSED_RG11_EAC],
33
- 27: [
34
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_4X4_KHR,
35
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR
36
- ],
37
- 28: [
38
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5X4_KHR,
39
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR
40
- ],
41
- 29: [
42
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_5X5_KHR,
43
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR
44
- ],
45
- 30: [
46
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6X5_KHR,
47
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR
48
- ],
49
- 31: [
50
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_6X6_KHR,
51
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR
52
- ],
53
- 32: [
54
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8X5_KHR,
55
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR
56
- ],
57
- 33: [
58
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8X6_KHR,
59
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR
60
- ],
61
- 34: [
62
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_8X8_KHR,
63
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR
64
- ],
65
- 35: [
66
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X5_KHR,
67
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR
68
- ],
69
- 36: [
70
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X6_KHR,
71
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR
72
- ],
73
- 37: [
74
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X8_KHR,
75
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR
76
- ],
77
- 38: [
78
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_10X10_KHR,
79
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR
80
- ],
81
- 39: [
82
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12X10_KHR,
83
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR
84
- ],
85
- 40: [
86
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_RGBA_ASTC_12X12_KHR,
87
- GL_EXTENSIONS_CONSTANTS.COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR
88
- ]
18
+ const PVR_TEXTURE_FORMATS = {
19
+ 0: ['pvrtc-rgb2unorm-webgl'],
20
+ 1: ['pvrtc-rgba2unorm-webgl'],
21
+ 2: ['pvrtc-rgb4unorm-webgl'],
22
+ 3: ['pvrtc-rgba4unorm-webgl'],
23
+ 6: ['etc1-rgb-unorm-webgl'],
24
+ 7: ['bc1-rgb-unorm-webgl'],
25
+ 9: ['bc2-rgba-unorm'],
26
+ 11: ['bc3-rgba-unorm'],
27
+ 22: ['etc2-rgb8unorm'],
28
+ 23: ['etc2-rgba8unorm'],
29
+ 24: ['etc2-rgb8a1unorm'],
30
+ 25: ['eac-r11unorm'],
31
+ 26: ['eac-rg11unorm'],
32
+ 27: ['astc-4x4-unorm', 'astc-4x4-unorm-srgb'],
33
+ 28: ['astc-5x4-unorm', 'astc-5x4-unorm-srgb'],
34
+ 29: ['astc-5x5-unorm', 'astc-5x5-unorm-srgb'],
35
+ 30: ['astc-6x5-unorm', 'astc-6x5-unorm-srgb'],
36
+ 31: ['astc-6x6-unorm', 'astc-6x6-unorm-srgb'],
37
+ 32: ['astc-8x5-unorm', 'astc-8x5-unorm-srgb'],
38
+ 33: ['astc-8x6-unorm', 'astc-8x6-unorm-srgb'],
39
+ 34: ['astc-8x8-unorm', 'astc-8x8-unorm-srgb'],
40
+ 35: ['astc-10x5-unorm', 'astc-10x5-unorm-srgb'],
41
+ 36: ['astc-10x6-unorm', 'astc-10x6-unorm-srgb'],
42
+ 37: ['astc-10x8-unorm', 'astc-10x8-unorm-srgb'],
43
+ 38: ['astc-10x10-unorm', 'astc-10x10-unorm-srgb'],
44
+ 39: ['astc-12x10-unorm', 'astc-12x10-unorm-srgb'],
45
+ 40: ['astc-12x12-unorm', 'astc-12x12-unorm-srgb']
89
46
  };
90
47
  const PVR_SIZE_FUNCTIONS = {
91
48
  0: pvrtc2bppSize,
@@ -136,8 +93,8 @@ export function parsePVR(data) {
136
93
  const header = new Uint32Array(data, 0, PVR_CONSTANTS.HEADER_LENGTH);
137
94
  const pvrFormat = header[PVR_CONSTANTS.PIXEL_FORMAT_INDEX];
138
95
  const colourSpace = header[PVR_CONSTANTS.COLOUR_SPACE_INDEX];
139
- const pixelFormats = PVR_PIXEL_FORMATS[pvrFormat] || [];
140
- const internalFormat = pixelFormats.length > 1 && colourSpace ? pixelFormats[1] : pixelFormats[0];
96
+ const textureFormats = PVR_TEXTURE_FORMATS[pvrFormat] || [];
97
+ const textureFormat = textureFormats.length > 1 && colourSpace ? textureFormats[1] : textureFormats[0];
141
98
  const sizeFunction = PVR_SIZE_FUNCTIONS[pvrFormat];
142
99
  const mipMapLevels = header[PVR_CONSTANTS.MIPMAPCOUNT_INDEX];
143
100
  const width = header[PVR_CONSTANTS.WIDTH_INDEX];
@@ -149,7 +106,7 @@ export function parsePVR(data) {
149
106
  width,
150
107
  height,
151
108
  sizeFunction,
152
- internalFormat
109
+ textureFormat
153
110
  });
154
111
  }
155
112
  // https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_pvrtc/
@@ -243,3 +200,4 @@ function atc12x10Size(width, height) {
243
200
  function atc12x12Size(width, height) {
244
201
  return Math.floor((width + 11) / 12) * Math.floor((height + 11) / 12) * 16;
245
202
  }
203
+ //# sourceMappingURL=parse-pvr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-pvr.js","sourceRoot":"","sources":["../../../src/lib/parsers/parse-pvr.ts"],"names":[],"mappings":"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"}
@@ -37,3 +37,4 @@ async function mapArray(urlArray, func, options = {}) {
37
37
  const promises = urlArray.map((url) => mapSubtree(url, func, options));
38
38
  return await Promise.all(promises);
39
39
  }
40
+ //# sourceMappingURL=async-deep-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async-deep-map.js","sourceRoot":"","sources":["../../../src/lib/texture-api/async-deep-map.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAoBpC,MAAM,QAAQ,GAAG,CAAC,KAAU,EAAW,EAAE,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;AAE7E,8DAA8D;AAC9D,yFAAyF;AACzF,qBAAqB;AACrB,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAa,EAAE,IAAU,EAAE,UAAmB,EAAE;IACjF,OAAO,MAAM,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAe,EAAE,IAAU,EAAE,OAAgB;IAC5E,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO,MAAM,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACrB,OAAO,MAAM,SAAS,CAAC,MAAgB,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,4CAA4C;IAC5C,MAAM,GAAG,GAAG,MAAgB,CAAC;IAC7B,OAAO,MAAM,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,UAAU;AAEV,KAAK,UAAU,SAAS,CACtB,MAA2B,EAC3B,IAAU,EACV,OAAgB;IAEhB,MAAM,QAAQ,GAAmB,EAAE,CAAC;IACpC,MAAM,MAAM,GAAwB,EAAE,CAAC;IAEvC,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACxB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YAC5D,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE5B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,QAAkB,EAAE,IAAU,EAAE,OAAO,GAAG,EAAE;IAClE,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACvE,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC"}
@@ -10,3 +10,4 @@ export async function shallowLoad(url, load, options) {
10
10
  const arrayBuffer = await response.arrayBuffer();
11
11
  return await load(arrayBuffer, options);
12
12
  }
13
+ //# sourceMappingURL=deep-load.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deep-load.js","sourceRoot":"","sources":["../../../src/lib/texture-api/deep-load.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,YAAY,EAAC,4BAAyB;AAK9C,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAgB,EAAE,IAAU,EAAE,OAAoB;IAC/E,OAAO,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAW,EAAE,IAAU,EAAE,OAAoB;IAC7E,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;IACjD,OAAO,MAAM,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate-url.d.ts","sourceRoot":"","sources":["../../../src/lib/texture-api/generate-url.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,MAAM,EAAE,UAAU,EAAC,+BAA4B;AAG5D,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,OAAO,EAAE,UAAU,EACnB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC9B,MAAM,CAWR"}
1
+ {"version":3,"file":"generate-url.d.ts","sourceRoot":"","sources":["../../../src/lib/texture-api/generate-url.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,MAAM,EAAE,UAAU,EAAC,+BAA4B;AAG5D,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,OAAO,EAAE,UAAU,EACnB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC9B,MAAM,CAER"}
@@ -1,15 +1,8 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- import { resolvePath } from '@loaders.gl/loader-utils';
5
- // Generate a url by calling getUrl with mix of options, applying options.baseUrl
4
+ // Generate a member url by calling getUrl with merged options.
6
5
  export function generateUrl(getUrl, options, urlOptions) {
7
- // Get url
8
- let url = typeof getUrl === 'function' ? getUrl({ ...options, ...urlOptions }) : getUrl;
9
- // Apply options.baseUrl
10
- const baseUrl = options.baseUrl;
11
- if (baseUrl) {
12
- url = baseUrl[baseUrl.length - 1] === '/' ? `${baseUrl}${url}` : `${baseUrl}/${url}`;
13
- }
14
- return resolvePath(url);
6
+ return typeof getUrl === 'function' ? getUrl({ ...options, ...urlOptions }) : getUrl;
15
7
  }
8
+ //# sourceMappingURL=generate-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-url.js","sourceRoot":"","sources":["../../../src/lib/texture-api/generate-url.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAIpC,+DAA+D;AAC/D,MAAM,UAAU,WAAW,CACzB,MAAuB,EACvB,OAAmB,EACnB,UAA+B;IAE/B,OAAO,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,EAAC,GAAG,OAAO,EAAE,GAAG,UAAU,EAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACrF,CAAC"}