@loaders.gl/textures 4.4.0-alpha.17 → 4.4.0-alpha.19

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 (154) hide show
  1. package/README.md +153 -1
  2. package/dist/basis-loader.d.ts +0 -4
  3. package/dist/basis-loader.d.ts.map +1 -1
  4. package/dist/basis-loader.js +0 -1
  5. package/dist/basis-loader.js.map +1 -1
  6. package/dist/basis-worker-node.js +57 -30
  7. package/dist/basis-worker.js +55 -29
  8. package/dist/compressed-texture-loader.d.ts +0 -4
  9. package/dist/compressed-texture-loader.d.ts.map +1 -1
  10. package/dist/compressed-texture-loader.js +0 -1
  11. package/dist/compressed-texture-loader.js.map +1 -1
  12. package/dist/compressed-texture-worker.js +122 -79
  13. package/dist/crunch-loader.d.ts +1 -5
  14. package/dist/crunch-loader.d.ts.map +1 -1
  15. package/dist/crunch-loader.js +1 -3
  16. package/dist/crunch-loader.js.map +1 -1
  17. package/dist/crunch-worker.js +36 -14
  18. package/dist/dist.dev.js +1526 -435
  19. package/dist/dist.min.js +1 -1
  20. package/dist/index.cjs +1034 -160
  21. package/dist/index.cjs.map +4 -4
  22. package/dist/index.d.ts +11 -0
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +5 -0
  25. package/dist/index.js.map +1 -1
  26. package/dist/ktx2-basis-writer-worker-node.js +14 -3
  27. package/dist/ktx2-basis-writer-worker.js +13 -3
  28. package/dist/lib/composite-image/image-texture-cube.d.ts +47 -0
  29. package/dist/lib/composite-image/image-texture-cube.d.ts.map +1 -0
  30. package/dist/lib/composite-image/image-texture-cube.js +42 -0
  31. package/dist/lib/composite-image/image-texture-cube.js.map +1 -0
  32. package/dist/lib/composite-image/parse-composite-image.d.ts +43 -0
  33. package/dist/lib/composite-image/parse-composite-image.d.ts.map +1 -0
  34. package/dist/lib/composite-image/parse-composite-image.js +437 -0
  35. package/dist/lib/composite-image/parse-composite-image.js.map +1 -0
  36. package/dist/lib/encoders/encode-ktx2-basis-texture.d.ts.map +1 -1
  37. package/dist/lib/encoders/encode-ktx2-basis-texture.js +2 -1
  38. package/dist/lib/encoders/encode-ktx2-basis-texture.js.map +1 -1
  39. package/dist/lib/gl-extensions.d.ts +2 -0
  40. package/dist/lib/gl-extensions.d.ts.map +1 -1
  41. package/dist/lib/gl-extensions.js +2 -0
  42. package/dist/lib/gl-extensions.js.map +1 -1
  43. package/dist/lib/gl-types.d.ts +4 -0
  44. package/dist/lib/gl-types.d.ts.map +1 -0
  45. package/dist/lib/gl-types.js +5 -0
  46. package/dist/lib/gl-types.js.map +1 -0
  47. package/dist/lib/parsers/crunch-module-loader.d.ts +2 -2
  48. package/dist/lib/parsers/crunch-module-loader.d.ts.map +1 -1
  49. package/dist/lib/parsers/crunch-module-loader.js.map +1 -1
  50. package/dist/lib/parsers/parse-basis.d.ts +9 -2
  51. package/dist/lib/parsers/parse-basis.d.ts.map +1 -1
  52. package/dist/lib/parsers/parse-basis.js +51 -26
  53. package/dist/lib/parsers/parse-basis.js.map +1 -1
  54. package/dist/lib/parsers/parse-crunch.d.ts.map +1 -1
  55. package/dist/lib/parsers/parse-crunch.js +6 -6
  56. package/dist/lib/parsers/parse-crunch.js.map +1 -1
  57. package/dist/lib/parsers/parse-dds.d.ts.map +1 -1
  58. package/dist/lib/parsers/parse-dds.js +10 -11
  59. package/dist/lib/parsers/parse-dds.js.map +1 -1
  60. package/dist/lib/parsers/parse-hdr.d.ts +21 -0
  61. package/dist/lib/parsers/parse-hdr.d.ts.map +1 -0
  62. package/dist/lib/parsers/parse-hdr.js +305 -0
  63. package/dist/lib/parsers/parse-hdr.js.map +1 -0
  64. package/dist/lib/parsers/parse-ktx.d.ts.map +1 -1
  65. package/dist/lib/parsers/parse-ktx.js +5 -5
  66. package/dist/lib/parsers/parse-ktx.js.map +1 -1
  67. package/dist/lib/parsers/parse-pvr.d.ts.map +1 -1
  68. package/dist/lib/parsers/parse-pvr.js +31 -32
  69. package/dist/lib/parsers/parse-pvr.js.map +1 -1
  70. package/dist/lib/texture-api/generate-url.d.ts.map +1 -1
  71. package/dist/lib/texture-api/generate-url.js +2 -10
  72. package/dist/lib/texture-api/generate-url.js.map +1 -1
  73. package/dist/lib/texture-api/load-image-array.d.ts +6 -3
  74. package/dist/lib/texture-api/load-image-array.d.ts.map +1 -1
  75. package/dist/lib/texture-api/load-image-array.js +5 -3
  76. package/dist/lib/texture-api/load-image-array.js.map +1 -1
  77. package/dist/lib/texture-api/load-image-cube.d.ts +7 -11
  78. package/dist/lib/texture-api/load-image-cube.d.ts.map +1 -1
  79. package/dist/lib/texture-api/load-image-cube.js +8 -20
  80. package/dist/lib/texture-api/load-image-cube.js.map +1 -1
  81. package/dist/lib/texture-api/load-image.d.ts +6 -3
  82. package/dist/lib/texture-api/load-image.d.ts.map +1 -1
  83. package/dist/lib/texture-api/load-image.js +8 -4
  84. package/dist/lib/texture-api/load-image.js.map +1 -1
  85. package/dist/lib/texture-api/texture-api-types.d.ts +13 -0
  86. package/dist/lib/texture-api/texture-api-types.d.ts.map +1 -1
  87. package/dist/lib/utils/detect-supported-texture-formats.js +4 -4
  88. package/dist/lib/utils/extract-mipmap-images.d.ts +5 -1
  89. package/dist/lib/utils/extract-mipmap-images.d.ts.map +1 -1
  90. package/dist/lib/utils/extract-mipmap-images.js +4 -3
  91. package/dist/lib/utils/extract-mipmap-images.js.map +1 -1
  92. package/dist/lib/utils/ktx-format-helper.d.ts +8 -1
  93. package/dist/lib/utils/ktx-format-helper.d.ts.map +1 -1
  94. package/dist/lib/utils/ktx-format-helper.js +9 -0
  95. package/dist/lib/utils/ktx-format-helper.js.map +1 -1
  96. package/dist/lib/utils/texture-format-map.d.ts +8 -1
  97. package/dist/lib/utils/texture-format-map.d.ts.map +1 -1
  98. package/dist/lib/utils/texture-format-map.js +19 -3
  99. package/dist/lib/utils/texture-format-map.js.map +1 -1
  100. package/dist/lib/utils/version.js +1 -1
  101. package/dist/npy-worker.js +1 -1
  102. package/dist/radiance-hdr-loader.d.ts +25 -0
  103. package/dist/radiance-hdr-loader.d.ts.map +1 -0
  104. package/dist/radiance-hdr-loader.js +23 -0
  105. package/dist/radiance-hdr-loader.js.map +1 -0
  106. package/dist/texture-array-loader.d.ts +25 -0
  107. package/dist/texture-array-loader.d.ts.map +1 -0
  108. package/dist/texture-array-loader.js +24 -0
  109. package/dist/texture-array-loader.js.map +1 -0
  110. package/dist/texture-cube-array-loader.d.ts +25 -0
  111. package/dist/texture-cube-array-loader.d.ts.map +1 -0
  112. package/dist/texture-cube-array-loader.js +24 -0
  113. package/dist/texture-cube-array-loader.js.map +1 -0
  114. package/dist/texture-cube-loader.d.ts +25 -0
  115. package/dist/texture-cube-loader.d.ts.map +1 -0
  116. package/dist/texture-cube-loader.js +24 -0
  117. package/dist/texture-cube-loader.js.map +1 -0
  118. package/dist/texture-loader.d.ts +25 -0
  119. package/dist/texture-loader.d.ts.map +1 -0
  120. package/dist/texture-loader.js +24 -0
  121. package/dist/texture-loader.js.map +1 -0
  122. package/dist/workers/crunch-worker.d.ts +1 -3
  123. package/dist/workers/crunch-worker.d.ts.map +1 -1
  124. package/package.json +6 -6
  125. package/src/basis-loader.ts +0 -3
  126. package/src/compressed-texture-loader.ts +0 -3
  127. package/src/crunch-loader.ts +1 -5
  128. package/src/index.ts +19 -0
  129. package/src/lib/composite-image/image-texture-cube.ts +49 -0
  130. package/src/lib/composite-image/parse-composite-image.ts +699 -0
  131. package/src/lib/encoders/encode-ktx2-basis-texture.ts +2 -1
  132. package/src/lib/gl-extensions.ts +2 -0
  133. package/src/lib/gl-types.ts +136 -0
  134. package/src/lib/parsers/crunch-module-loader.ts +4 -4
  135. package/src/lib/parsers/parse-basis.ts +58 -28
  136. package/src/lib/parsers/parse-crunch.ts +8 -12
  137. package/src/lib/parsers/parse-dds.ts +11 -19
  138. package/src/lib/parsers/parse-hdr.ts +426 -0
  139. package/src/lib/parsers/parse-ktx.ts +6 -6
  140. package/src/lib/parsers/parse-pvr.ts +33 -75
  141. package/src/lib/texture-api/generate-url.ts +2 -12
  142. package/src/lib/texture-api/load-image-array.ts +15 -6
  143. package/src/lib/texture-api/load-image-cube.ts +20 -34
  144. package/src/lib/texture-api/load-image.ts +19 -8
  145. package/src/lib/texture-api/texture-api-types.ts +15 -0
  146. package/src/lib/utils/detect-supported-texture-formats.ts +4 -4
  147. package/src/lib/utils/extract-mipmap-images.ts +12 -4
  148. package/src/lib/utils/ktx-format-helper.ts +12 -1
  149. package/src/lib/utils/texture-format-map.ts +30 -3
  150. package/src/radiance-hdr-loader.ts +36 -0
  151. package/src/texture-array-loader.ts +46 -0
  152. package/src/texture-cube-array-loader.ts +49 -0
  153. package/src/texture-cube-loader.ts +46 -0
  154. package/src/texture-loader.ts +49 -0
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [loaders.gl](https://loaders.gl/docs) is a collection of framework-independent 3D and geospatial parsers and encoders.
4
4
 
5
- This module contains loaders for compressed textures and [basis universal textures](https://github.com/BinomialLLC/basis_universal).
5
+ This module contains loaders for compressed textures, Radiance HDR textures, and [basis universal textures](https://github.com/BinomialLLC/basis_universal).
6
6
 
7
7
  ## Texture Levels
8
8
 
@@ -12,11 +12,14 @@ This module contains loaders for compressed textures and [basis universal textur
12
12
 
13
13
  `CrunchLoader` returns `TextureLevel[]` for Crunch mip chains.
14
14
 
15
+ `RadianceHDRLoader` returns a `Texture` with `shape: 'texture'`, `type: '2d'`, and one decoded `rgba32float` level for Radiance `.hdr` images.
16
+
15
17
  Each returned `TextureLevel` now exposes:
16
18
 
17
19
  - `shape`: always `'texture-level'`. <img src="https://img.shields.io/badge/From-v4.4-blue.svg?style=flat-square" alt="From-v4.4" />
18
20
  - `format`: the corresponding WebGL internal format number. <img src="https://img.shields.io/badge/From-v4.4-blue.svg?style=flat-square" alt="From-v4.4" />
19
21
  - `textureFormat`: the corresponding luma.gl / WebGPU-style texture format string. <img src="https://img.shields.io/badge/From-v4.4-blue.svg?style=flat-square" alt="From-v4.4" />
22
+ - `data`: a typed array containing the mip level payload. Compressed textures expose byte data, while `RadianceHDRLoader` exposes `Float32Array`.
20
23
 
21
24
  ```ts
22
25
  import {load} from '@loaders.gl/core';
@@ -48,4 +51,153 @@ console.log(images[0][0].format);
48
51
  console.log(images[0][0].textureFormat);
49
52
  ```
50
53
 
54
+ ## Composite Image Texture Loaders
55
+
56
+ The `textures` module also exports JSON manifest loaders for image-based composite textures:
57
+
58
+ - `TextureLoader` for a single image or mip chain
59
+ - `TextureArrayLoader` for texture arrays
60
+ - `TextureCubeLoader` for cubemaps
61
+ - `TextureCubeArrayLoader` for cube arrays
62
+
63
+ Each manifest includes a `shape` discriminator and resolves relative member URLs against the manifest URL.
64
+ Member assets are parsed with `ImageLoader` by default, and additional loaders passed to top-level `load()` are also available for manifest members.
65
+ These loaders return schema `Texture` objects rather than raw image trees.
66
+
67
+ ```ts
68
+ import {load} from '@loaders.gl/core';
69
+ import {BasisLoader, CompressedTextureLoader, TextureCubeLoader} from '@loaders.gl/textures';
70
+
71
+ const imageCube = await load('environment.image-texture-cube.json', [
72
+ TextureCubeLoader,
73
+ CompressedTextureLoader,
74
+ BasisLoader
75
+ ]);
76
+ ```
77
+
78
+ ### Manifest Shapes
79
+
80
+ Single image:
81
+
82
+ ```json
83
+ {
84
+ "shape": "image-texture",
85
+ "image": "texture.png"
86
+ }
87
+ ```
88
+
89
+ Single image with mipmaps:
90
+
91
+ ```json
92
+ {
93
+ "shape": "image-texture",
94
+ "mipmaps": ["texture-0.png", "texture-1.png", "texture-2.png"]
95
+ }
96
+ ```
97
+
98
+ Texture array:
99
+
100
+ ```json
101
+ {
102
+ "shape": "image-texture-array",
103
+ "layers": ["layer-0.png", "layer-1.png"]
104
+ }
105
+ ```
106
+
107
+ Texture array with mipmaps:
108
+
109
+ ```json
110
+ {
111
+ "shape": "image-texture-array",
112
+ "layers": [
113
+ ["layer-0-0.png", "layer-0-1.png"],
114
+ ["layer-1-0.png", "layer-1-1.png"]
115
+ ]
116
+ }
117
+ ```
118
+
119
+ Cubemap:
120
+
121
+ ```json
122
+ {
123
+ "shape": "image-texture-cube",
124
+ "faces": {
125
+ "+X": "right.png",
126
+ "-X": "left.png",
127
+ "+Y": "top.png",
128
+ "-Y": "bottom.png",
129
+ "+Z": "front.png",
130
+ "-Z": "back.png"
131
+ }
132
+ }
133
+ ```
134
+
135
+ Cubemap with mipmaps:
136
+
137
+ ```json
138
+ {
139
+ "shape": "image-texture-cube",
140
+ "faces": {
141
+ "+X": ["right-0.png", "right-1.png"],
142
+ "-X": ["left-0.png", "left-1.png"],
143
+ "+Y": ["top-0.png", "top-1.png"],
144
+ "-Y": ["bottom-0.png", "bottom-1.png"],
145
+ "+Z": ["front-0.png", "front-1.png"],
146
+ "-Z": ["back-0.png", "back-1.png"]
147
+ }
148
+ }
149
+ ```
150
+
151
+ Cube array:
152
+
153
+ ```json
154
+ {
155
+ "shape": "image-texture-cube-array",
156
+ "layers": [
157
+ {
158
+ "faces": {
159
+ "+X": "sky-right.png",
160
+ "-X": "sky-left.png",
161
+ "+Y": "sky-top.png",
162
+ "-Y": "sky-bottom.png",
163
+ "+Z": "sky-front.png",
164
+ "-Z": "sky-back.png"
165
+ }
166
+ },
167
+ {
168
+ "faces": {
169
+ "+X": "irr-right.png",
170
+ "-X": "irr-left.png",
171
+ "+Y": "irr-top.png",
172
+ "-Y": "irr-bottom.png",
173
+ "+Z": "irr-front.png",
174
+ "-Z": "irr-back.png"
175
+ }
176
+ }
177
+ ]
178
+ }
179
+ ```
180
+
181
+ Template-driven mipmaps:
182
+
183
+ ```json
184
+ {
185
+ "shape": "image-texture",
186
+ "mipLevels": "auto",
187
+ "template": "texture-{lod}.png"
188
+ }
189
+ ```
190
+
191
+ Template placeholders are validated strictly. Supported placeholders are:
192
+
193
+ - `{lod}` for mip level
194
+ - `{index}` for array or cube-array layer index
195
+ - `{face}`, `{direction}`, `{axis}`, `{sign}` for cubemap faces
196
+
197
+ Use `\\{` and `\\}` to include literal braces in filenames.
198
+
199
+ Cube manifests use luma.gl-style face names: `'+X'`, `'-X'`, `'+Y'`, `'-Y'`, `'+Z'`, `'-Z'`. Directional aliases such as `right`, `left`, `top`, `bottom`, `front`, and `back` are still accepted for compatibility, but new manifests should use the luma.gl names.
200
+
201
+ If you parse an in-memory manifest instead of loading from a URL, provide `options.core.baseUrl` so relative member URLs can still be resolved.
202
+
51
203
  For documentation please visit the [website](https://loaders.gl).
@@ -21,8 +21,6 @@ export type BasisLoaderOptions = LoaderOptions & {
21
21
  format?: BasisTargetFormat;
22
22
  /** What module to use for transcoding? */
23
23
  module?: 'transcoder' | 'encoder';
24
- /** @deprecated specify path of basis library */
25
- libraryPath?: string;
26
24
  };
27
25
  };
28
26
  /**
@@ -43,7 +41,6 @@ export declare const BasisWorkerLoader: {
43
41
  readonly options: {
44
42
  readonly basis: {
45
43
  readonly format: "auto";
46
- readonly libraryPath: "libs/";
47
44
  readonly containerFormat: "auto";
48
45
  readonly module: "transcoder";
49
46
  };
@@ -68,7 +65,6 @@ export declare const BasisLoader: {
68
65
  readonly options: {
69
66
  readonly basis: {
70
67
  readonly format: "auto";
71
- readonly libraryPath: "libs/";
72
68
  readonly containerFormat: "auto";
73
69
  readonly module: "transcoder";
74
70
  };
@@ -1 +1 @@
1
- {"version":3,"file":"basis-loader.d.ts","sourceRoot":"","sources":["../src/basis-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAS,aAAa,EAAmB,MAAM,0BAA0B,CAAC;AACtF,OAAO,KAAK,EAAC,aAAa,EAAE,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAEpE,OAAO,EAAC,UAAU,EAAC,qCAAkC;AACrD,OAAO,KAAK,EAAC,WAAW,EAAC,qCAAkC;AAE3D,KAAK,iBAAiB,GAAG,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;AAC9D,KAAK,iBAAiB,GAClB,MAAM,GACN,iBAAiB,GACjB;IACE,KAAK,EAAE,iBAAiB,CAAC;IACzB,OAAO,EAAE,iBAAiB,CAAC;CAC5B,CAAC;AAEN,kCAAkC;AAClC,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG;IAC/C,kCAAkC;IAClC,KAAK,CAAC,EAAE;QACN,qIAAqI;QACrI,uBAAuB,CAAC,EAAE,aAAa,EAAE,CAAC;QAC1C,8EAA8E;QAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB,qCAAqC;QACrC,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;QAC5C,qHAAqH;QACrH,MAAM,CAAC,EAAE,iBAAiB,CAAC;QAC3B,0CAA0C;QAC1C,MAAM,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;QAClC,gDAAgD;QAChD,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB;uBACC,YAAY,EAAE,EAAE;wBAC1B,KAAK;;;;;;;;;;;;;;;;;;CAmB8C,CAAC;AAEzE;;GAEG;AACH,eAAO,MAAM,WAAW;;uBAzBO,YAAY,EAAE,EAAE;wBAC1B,KAAK;;;;;;;;;;;;;;;;;;CA2BmD,CAAC"}
1
+ {"version":3,"file":"basis-loader.d.ts","sourceRoot":"","sources":["../src/basis-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAS,aAAa,EAAmB,MAAM,0BAA0B,CAAC;AACtF,OAAO,KAAK,EAAC,aAAa,EAAE,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAEpE,OAAO,EAAC,UAAU,EAAC,qCAAkC;AACrD,OAAO,KAAK,EAAC,WAAW,EAAC,qCAAkC;AAE3D,KAAK,iBAAiB,GAAG,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;AAC9D,KAAK,iBAAiB,GAClB,MAAM,GACN,iBAAiB,GACjB;IACE,KAAK,EAAE,iBAAiB,CAAC;IACzB,OAAO,EAAE,iBAAiB,CAAC;CAC5B,CAAC;AAEN,kCAAkC;AAClC,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG;IAC/C,kCAAkC;IAClC,KAAK,CAAC,EAAE;QACN,qIAAqI;QACrI,uBAAuB,CAAC,EAAE,aAAa,EAAE,CAAC;QAC1C,8EAA8E;QAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB,qCAAqC;QACrC,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;QAC5C,qHAAqH;QACrH,MAAM,CAAC,EAAE,iBAAiB,CAAC;QAC3B,0CAA0C;QAC1C,MAAM,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;KACnC,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB;uBACC,YAAY,EAAE,EAAE;wBAC1B,KAAK;;;;;;;;;;;;;;;;;CAkB8C,CAAC;AAEzE;;GAEG;AACH,eAAO,MAAM,WAAW;;uBAxBO,YAAY,EAAE,EAAE;wBAC1B,KAAK;;;;;;;;;;;;;;;;;CA0BmD,CAAC"}
@@ -21,7 +21,6 @@ export const BasisWorkerLoader = {
21
21
  options: {
22
22
  basis: {
23
23
  format: 'auto',
24
- libraryPath: 'libs/',
25
24
  containerFormat: 'auto',
26
25
  module: 'transcoder'
27
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"basis-loader.js","sourceRoot":"","sources":["../src/basis-loader.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAIpC,OAAO,EAAC,OAAO,EAAC,+BAA4B;AAC5C,OAAO,EAAC,UAAU,EAAC,qCAAkC;AAgCrD;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,QAAQ,EAAE,IAAmC;IAC7C,SAAS,EAAE,IAAa;IAExB,IAAI,EAAE,OAAO;IACb,EAAE,EAAE,OAAO;IACX,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,IAAI;IACZ,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;IAC7B,SAAS,EAAE,CAAC,0BAA0B,EAAE,YAAY,CAAC;IACrD,KAAK,EAAE,CAAC,IAAI,CAAC;IACb,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE;QACP,KAAK,EAAE;YACL,MAAM,EAAE,MAAM;YACd,WAAW,EAAE,OAAO;YACpB,eAAe,EAAE,MAAM;YACvB,MAAM,EAAE,YAAY;SACrB;KACF;CACqE,CAAC;AAEzE;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,GAAG,iBAAiB;IACpB,KAAK,EAAE,UAAU;CAC0D,CAAC"}
1
+ {"version":3,"file":"basis-loader.js","sourceRoot":"","sources":["../src/basis-loader.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAIpC,OAAO,EAAC,OAAO,EAAC,+BAA4B;AAC5C,OAAO,EAAC,UAAU,EAAC,qCAAkC;AA8BrD;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,QAAQ,EAAE,IAAmC;IAC7C,SAAS,EAAE,IAAa;IAExB,IAAI,EAAE,OAAO;IACb,EAAE,EAAE,OAAO;IACX,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,IAAI;IACZ,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;IAC7B,SAAS,EAAE,CAAC,0BAA0B,EAAE,YAAY,CAAC;IACrD,KAAK,EAAE,CAAC,IAAI,CAAC;IACb,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE;QACP,KAAK,EAAE;YACL,MAAM,EAAE,MAAM;YACd,eAAe,EAAE,MAAM;YACvB,MAAM,EAAE,YAAY;SACrB;KACF;CACqE,CAAC;AAEzE;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,GAAG,iBAAiB;IACpB,KAAK,EAAE,UAAU;CAC0D,CAAC"}
@@ -50494,7 +50494,7 @@ function getVersion() {
50494
50494
  globalThis._loadersgl_.version = NPM_TAG;
50495
50495
  warningIssued = true;
50496
50496
  } else {
50497
- globalThis._loadersgl_.version = "4.4.0-alpha.17";
50497
+ globalThis._loadersgl_.version = "4.4.0-alpha.19";
50498
50498
  }
50499
50499
  }
50500
50500
  return globalThis._loadersgl_.version;
@@ -50656,6 +50656,17 @@ function isKnownMessage(message) {
50656
50656
 
50657
50657
  // ../worker-utils/src/lib/library-utils/library-utils.ts
50658
50658
  var loadLibraryPromises = {};
50659
+ function extractLoadLibraryOptions(options = {}) {
50660
+ var _a, _b;
50661
+ const useLocalLibraries = options.useLocalLibraries ?? ((_a = options.core) == null ? void 0 : _a.useLocalLibraries);
50662
+ const CDN = options.CDN ?? ((_b = options.core) == null ? void 0 : _b.CDN);
50663
+ const modules = options.modules;
50664
+ return {
50665
+ ...useLocalLibraries !== void 0 ? { useLocalLibraries } : {},
50666
+ ...CDN !== void 0 ? { CDN } : {},
50667
+ ...modules !== void 0 ? { modules } : {}
50668
+ };
50669
+ }
50659
50670
  async function loadLibrary(libraryUrl, moduleName = null, options = {}, libraryName = null) {
50660
50671
  if (moduleName) {
50661
50672
  libraryUrl = getLibraryUrl(libraryUrl, moduleName, options, libraryName);
@@ -54228,7 +54239,7 @@ if (nodeVersion2 < 18) {
54228
54239
  }
54229
54240
 
54230
54241
  // src/lib/utils/version.ts
54231
- var VERSION2 = true ? "4.4.0-alpha.17" : "latest";
54242
+ var VERSION2 = true ? "4.4.0-alpha.19" : "latest";
54232
54243
 
54233
54244
  // src/lib/parsers/basis-module-loader.ts
54234
54245
  var BASIS_EXTERNAL_LIBRARIES = {
@@ -54347,7 +54358,7 @@ var WEBGL_TEXTURE_FORMATS = {
54347
54358
  "bc7-rgba-unorm",
54348
54359
  "bc7-rgba-unorm-srgb"
54349
54360
  ],
54350
- WEBGL_compressed_texture_etc1: ["etc1-rbg-unorm-webgl"],
54361
+ WEBGL_compressed_texture_etc1: ["etc1-rgb-unorm-webgl"],
54351
54362
  WEBGL_compressed_texture_etc: [
54352
54363
  "etc2-rgb8unorm",
54353
54364
  "etc2-rgb8unorm-srgb",
@@ -54363,7 +54374,7 @@ var WEBGL_TEXTURE_FORMATS = {
54363
54374
  WEBGL_compressed_texture_pvrtc: [
54364
54375
  "pvrtc-rgb4unorm-webgl",
54365
54376
  "pvrtc-rgba4unorm-webgl",
54366
- "pvrtc-rbg2unorm-webgl",
54377
+ "pvrtc-rgb2unorm-webgl",
54367
54378
  "pvrtc-rgba2unorm-webgl"
54368
54379
  ],
54369
54380
  WEBGL_compressed_texture_atc: [
@@ -54463,12 +54474,13 @@ function isKTX(data) {
54463
54474
  }
54464
54475
 
54465
54476
  // src/lib/parsers/parse-basis.ts
54477
+ var basisTranscodingLock = Promise.resolve();
54466
54478
  var BASIS_FORMAT_TO_OUTPUT_OPTIONS = {
54467
54479
  etc1: {
54468
54480
  basisFormat: 0,
54469
54481
  compressed: true,
54470
54482
  format: GL_COMPRESSED_RGB_ETC1_WEBGL,
54471
- textureFormat: "etc1-rbg-unorm-webgl"
54483
+ textureFormat: "etc1-rgb-unorm-webgl"
54472
54484
  },
54473
54485
  etc2: {
54474
54486
  basisFormat: 1,
@@ -54570,31 +54582,47 @@ var BASIS_FORMAT_TO_OUTPUT_OPTIONS = {
54570
54582
  var BASIS_FORMATS = Object.freeze(
54571
54583
  Object.keys(BASIS_FORMAT_TO_OUTPUT_OPTIONS)
54572
54584
  );
54585
+ async function withBasisTranscodingLock(transcode) {
54586
+ const previousLock = basisTranscodingLock;
54587
+ let releaseLock;
54588
+ basisTranscodingLock = new Promise((resolve) => {
54589
+ releaseLock = resolve;
54590
+ });
54591
+ await previousLock;
54592
+ try {
54593
+ return await transcode();
54594
+ } finally {
54595
+ releaseLock();
54596
+ }
54597
+ }
54573
54598
  async function parseBasis(data, options = {}) {
54574
- var _a;
54575
- if (!((_a = options.basis) == null ? void 0 : _a.containerFormat) || options.basis.containerFormat === "auto") {
54576
- if (isKTX(data)) {
54577
- const fileConstructors = await loadBasisEncoderModule((options == null ? void 0 : options.core) || {});
54578
- return parseKTX2File(fileConstructors.KTX2File, data, options);
54579
- }
54580
- const { BasisFile } = await loadBasisTranscoderModule((options == null ? void 0 : options.core) || {});
54581
- return parseBasisFile(BasisFile, data, options);
54582
- }
54583
- switch (options.basis.module) {
54584
- case "encoder":
54585
- const fileConstructors = await loadBasisEncoderModule((options == null ? void 0 : options.core) || {});
54586
- switch (options.basis.containerFormat) {
54587
- case "ktx2":
54588
- return parseKTX2File(fileConstructors.KTX2File, data, options);
54589
- case "basis":
54590
- default:
54591
- return parseBasisFile(fileConstructors.BasisFile, data, options);
54599
+ const loadLibraryOptions = extractLoadLibraryOptions(options);
54600
+ return await withBasisTranscodingLock(async () => {
54601
+ var _a;
54602
+ if (!((_a = options.basis) == null ? void 0 : _a.containerFormat) || options.basis.containerFormat === "auto") {
54603
+ if (isKTX(data)) {
54604
+ const fileConstructors = await loadBasisEncoderModule(loadLibraryOptions);
54605
+ return parseKTX2File(fileConstructors.KTX2File, data, options);
54592
54606
  }
54593
- case "transcoder":
54594
- default:
54595
- const { BasisFile } = await loadBasisTranscoderModule(options.core || {});
54607
+ const { BasisFile } = await loadBasisTranscoderModule(loadLibraryOptions);
54596
54608
  return parseBasisFile(BasisFile, data, options);
54597
- }
54609
+ }
54610
+ switch (options.basis.module) {
54611
+ case "encoder":
54612
+ const fileConstructors = await loadBasisEncoderModule(loadLibraryOptions);
54613
+ switch (options.basis.containerFormat) {
54614
+ case "ktx2":
54615
+ return parseKTX2File(fileConstructors.KTX2File, data, options);
54616
+ case "basis":
54617
+ default:
54618
+ return parseBasisFile(fileConstructors.BasisFile, data, options);
54619
+ }
54620
+ case "transcoder":
54621
+ default:
54622
+ const { BasisFile } = await loadBasisTranscoderModule(loadLibraryOptions);
54623
+ return parseBasisFile(BasisFile, data, options);
54624
+ }
54625
+ });
54598
54626
  }
54599
54627
  function parseBasisFile(BasisFile, data, options) {
54600
54628
  const basisFile = new BasisFile(new Uint8Array(data));
@@ -54740,7 +54768,7 @@ function selectSupportedBasisFormat(supportedTextureFormats = detectSupportedTex
54740
54768
  } else if (hasSupportedTextureFormat(textureFormats2, [
54741
54769
  "pvrtc-rgb4unorm-webgl",
54742
54770
  "pvrtc-rgba4unorm-webgl",
54743
- "pvrtc-rbg2unorm-webgl",
54771
+ "pvrtc-rgb2unorm-webgl",
54744
54772
  "pvrtc-rgba2unorm-webgl"
54745
54773
  ])) {
54746
54774
  return {
@@ -54760,7 +54788,7 @@ function selectSupportedBasisFormat(supportedTextureFormats = detectSupportedTex
54760
54788
  "eac-rg11snorm"
54761
54789
  ])) {
54762
54790
  return "etc2";
54763
- } else if (textureFormats2.has("etc1-rbg-unorm-webgl")) {
54791
+ } else if (textureFormats2.has("etc1-rgb-unorm-webgl")) {
54764
54792
  return "etc1";
54765
54793
  } else if (hasSupportedTextureFormat(textureFormats2, [
54766
54794
  "atc-rgb-unorm-webgl",
@@ -54796,7 +54824,6 @@ var BasisWorkerLoader = {
54796
54824
  options: {
54797
54825
  basis: {
54798
54826
  format: "auto",
54799
- libraryPath: "libs/",
54800
54827
  containerFormat: "auto",
54801
54828
  module: "transcoder"
54802
54829
  }
@@ -22,7 +22,7 @@
22
22
  globalThis._loadersgl_.version = NPM_TAG;
23
23
  warningIssued = true;
24
24
  } else {
25
- globalThis._loadersgl_.version = "4.4.0-alpha.17";
25
+ globalThis._loadersgl_.version = "4.4.0-alpha.19";
26
26
  }
27
27
  }
28
28
  return globalThis._loadersgl_.version;
@@ -176,6 +176,16 @@
176
176
 
177
177
  // ../worker-utils/src/lib/library-utils/library-utils.ts
178
178
  var loadLibraryPromises = {};
179
+ function extractLoadLibraryOptions(options = {}) {
180
+ const useLocalLibraries = options.useLocalLibraries ?? options.core?.useLocalLibraries;
181
+ const CDN = options.CDN ?? options.core?.CDN;
182
+ const modules = options.modules;
183
+ return {
184
+ ...useLocalLibraries !== void 0 ? { useLocalLibraries } : {},
185
+ ...CDN !== void 0 ? { CDN } : {},
186
+ ...modules !== void 0 ? { modules } : {}
187
+ };
188
+ }
179
189
  async function loadLibrary(libraryUrl, moduleName = null, options = {}, libraryName = null) {
180
190
  if (moduleName) {
181
191
  libraryUrl = getLibraryUrl(libraryUrl, moduleName, options, libraryName);
@@ -372,7 +382,7 @@
372
382
  }
373
383
 
374
384
  // src/lib/utils/version.ts
375
- var VERSION2 = true ? "4.4.0-alpha.17" : "latest";
385
+ var VERSION2 = true ? "4.4.0-alpha.19" : "latest";
376
386
 
377
387
  // src/lib/parsers/basis-module-loader.ts
378
388
  var BASIS_EXTERNAL_LIBRARIES = {
@@ -491,7 +501,7 @@
491
501
  "bc7-rgba-unorm",
492
502
  "bc7-rgba-unorm-srgb"
493
503
  ],
494
- WEBGL_compressed_texture_etc1: ["etc1-rbg-unorm-webgl"],
504
+ WEBGL_compressed_texture_etc1: ["etc1-rgb-unorm-webgl"],
495
505
  WEBGL_compressed_texture_etc: [
496
506
  "etc2-rgb8unorm",
497
507
  "etc2-rgb8unorm-srgb",
@@ -507,7 +517,7 @@
507
517
  WEBGL_compressed_texture_pvrtc: [
508
518
  "pvrtc-rgb4unorm-webgl",
509
519
  "pvrtc-rgba4unorm-webgl",
510
- "pvrtc-rbg2unorm-webgl",
520
+ "pvrtc-rgb2unorm-webgl",
511
521
  "pvrtc-rgba2unorm-webgl"
512
522
  ],
513
523
  WEBGL_compressed_texture_atc: [
@@ -607,12 +617,13 @@
607
617
  }
608
618
 
609
619
  // src/lib/parsers/parse-basis.ts
620
+ var basisTranscodingLock = Promise.resolve();
610
621
  var BASIS_FORMAT_TO_OUTPUT_OPTIONS = {
611
622
  etc1: {
612
623
  basisFormat: 0,
613
624
  compressed: true,
614
625
  format: GL_COMPRESSED_RGB_ETC1_WEBGL,
615
- textureFormat: "etc1-rbg-unorm-webgl"
626
+ textureFormat: "etc1-rgb-unorm-webgl"
616
627
  },
617
628
  etc2: {
618
629
  basisFormat: 1,
@@ -714,30 +725,46 @@
714
725
  var BASIS_FORMATS = Object.freeze(
715
726
  Object.keys(BASIS_FORMAT_TO_OUTPUT_OPTIONS)
716
727
  );
728
+ async function withBasisTranscodingLock(transcode) {
729
+ const previousLock = basisTranscodingLock;
730
+ let releaseLock;
731
+ basisTranscodingLock = new Promise((resolve) => {
732
+ releaseLock = resolve;
733
+ });
734
+ await previousLock;
735
+ try {
736
+ return await transcode();
737
+ } finally {
738
+ releaseLock();
739
+ }
740
+ }
717
741
  async function parseBasis(data, options = {}) {
718
- if (!options.basis?.containerFormat || options.basis.containerFormat === "auto") {
719
- if (isKTX(data)) {
720
- const fileConstructors = await loadBasisEncoderModule(options?.core || {});
721
- return parseKTX2File(fileConstructors.KTX2File, data, options);
722
- }
723
- const { BasisFile } = await loadBasisTranscoderModule(options?.core || {});
724
- return parseBasisFile(BasisFile, data, options);
725
- }
726
- switch (options.basis.module) {
727
- case "encoder":
728
- const fileConstructors = await loadBasisEncoderModule(options?.core || {});
729
- switch (options.basis.containerFormat) {
730
- case "ktx2":
731
- return parseKTX2File(fileConstructors.KTX2File, data, options);
732
- case "basis":
733
- default:
734
- return parseBasisFile(fileConstructors.BasisFile, data, options);
742
+ const loadLibraryOptions = extractLoadLibraryOptions(options);
743
+ return await withBasisTranscodingLock(async () => {
744
+ if (!options.basis?.containerFormat || options.basis.containerFormat === "auto") {
745
+ if (isKTX(data)) {
746
+ const fileConstructors = await loadBasisEncoderModule(loadLibraryOptions);
747
+ return parseKTX2File(fileConstructors.KTX2File, data, options);
735
748
  }
736
- case "transcoder":
737
- default:
738
- const { BasisFile } = await loadBasisTranscoderModule(options.core || {});
749
+ const { BasisFile } = await loadBasisTranscoderModule(loadLibraryOptions);
739
750
  return parseBasisFile(BasisFile, data, options);
740
- }
751
+ }
752
+ switch (options.basis.module) {
753
+ case "encoder":
754
+ const fileConstructors = await loadBasisEncoderModule(loadLibraryOptions);
755
+ switch (options.basis.containerFormat) {
756
+ case "ktx2":
757
+ return parseKTX2File(fileConstructors.KTX2File, data, options);
758
+ case "basis":
759
+ default:
760
+ return parseBasisFile(fileConstructors.BasisFile, data, options);
761
+ }
762
+ case "transcoder":
763
+ default:
764
+ const { BasisFile } = await loadBasisTranscoderModule(loadLibraryOptions);
765
+ return parseBasisFile(BasisFile, data, options);
766
+ }
767
+ });
741
768
  }
742
769
  function parseBasisFile(BasisFile, data, options) {
743
770
  const basisFile = new BasisFile(new Uint8Array(data));
@@ -882,7 +909,7 @@
882
909
  } else if (hasSupportedTextureFormat(textureFormats2, [
883
910
  "pvrtc-rgb4unorm-webgl",
884
911
  "pvrtc-rgba4unorm-webgl",
885
- "pvrtc-rbg2unorm-webgl",
912
+ "pvrtc-rgb2unorm-webgl",
886
913
  "pvrtc-rgba2unorm-webgl"
887
914
  ])) {
888
915
  return {
@@ -902,7 +929,7 @@
902
929
  "eac-rg11snorm"
903
930
  ])) {
904
931
  return "etc2";
905
- } else if (textureFormats2.has("etc1-rbg-unorm-webgl")) {
932
+ } else if (textureFormats2.has("etc1-rgb-unorm-webgl")) {
906
933
  return "etc1";
907
934
  } else if (hasSupportedTextureFormat(textureFormats2, [
908
935
  "atc-rgb-unorm-webgl",
@@ -938,7 +965,6 @@
938
965
  options: {
939
966
  basis: {
940
967
  format: "auto",
941
- libraryPath: "libs/",
942
968
  containerFormat: "auto",
943
969
  module: "transcoder"
944
970
  }
@@ -2,8 +2,6 @@ import type { StrictLoaderOptions } from '@loaders.gl/loader-utils';
2
2
  /** Options for the CompressedTextureLoader */
3
3
  export type CompressedTextureLoaderOptions = StrictLoaderOptions & {
4
4
  'compressed-texture'?: {
5
- /** @deprecated Specify path to libraries */
6
- libraryPath?: string;
7
5
  /** Whether to use Basis decoding */
8
6
  useBasis?: boolean;
9
7
  /** Override the URL to the worker bundle (by default loads from unpkg.com) */
@@ -26,7 +24,6 @@ export declare const CompressedTextureWorkerLoader: {
26
24
  readonly binary: true;
27
25
  readonly options: {
28
26
  readonly 'compressed-texture': {
29
- readonly libraryPath: "libs/";
30
27
  readonly useBasis: false;
31
28
  };
32
29
  };
@@ -48,7 +45,6 @@ export declare const CompressedTextureLoader: {
48
45
  readonly binary: true;
49
46
  readonly options: {
50
47
  readonly 'compressed-texture': {
51
- readonly libraryPath: "libs/";
52
48
  readonly useBasis: false;
53
49
  };
54
50
  };
@@ -1 +1 @@
1
- {"version":3,"file":"compressed-texture-loader.d.ts","sourceRoot":"","sources":["../src/compressed-texture-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAA2B,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAK5F,8CAA8C;AAC9C,MAAM,MAAM,8BAA8B,GAAG,mBAAmB,GAAG;IACjE,oBAAoB,CAAC,EAAE;QACrB,4CAA4C;QAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,oCAAoC;QACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,8EAA8E;QAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,6BAA6B;uBACX,GAAG;wBACb,KAAK;;;;;;;;;;;;;;;CA2B6C,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,uBAAuB;kCAEP,WAAW,YAAY,8BAA8B;uBAnCnD,GAAG;wBACb,KAAK;;;;;;;;;;;;;;;CAmDuD,CAAC"}
1
+ {"version":3,"file":"compressed-texture-loader.d.ts","sourceRoot":"","sources":["../src/compressed-texture-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAA2B,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAK5F,8CAA8C;AAC9C,MAAM,MAAM,8BAA8B,GAAG,mBAAmB,GAAG;IACjE,oBAAoB,CAAC,EAAE;QACrB,oCAAoC;QACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,8EAA8E;QAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,6BAA6B;uBACX,GAAG;wBACb,KAAK;;;;;;;;;;;;;;CA0B6C,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,uBAAuB;kCAEP,WAAW,YAAY,8BAA8B;uBAlCnD,GAAG;wBACb,KAAK;;;;;;;;;;;;;;CAkDuD,CAAC"}
@@ -31,7 +31,6 @@ export const CompressedTextureWorkerLoader = {
31
31
  binary: true,
32
32
  options: {
33
33
  'compressed-texture': {
34
- libraryPath: 'libs/',
35
34
  useBasis: false
36
35
  }
37
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"compressed-texture-loader.js","sourceRoot":"","sources":["../src/compressed-texture-loader.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,OAAO,EAAC,+BAA4B;AAC5C,OAAO,EAAC,sBAAsB,EAAC,kDAA+C;AAC9E,OAAO,EAAC,UAAU,EAAC,qCAAkC;AAcrD;;GAEG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,QAAQ,EAAE,IAAsB;IAChC,SAAS,EAAE,IAAa;IAExB,IAAI,EAAE,oBAAoB;IAC1B,EAAE,EAAE,oBAAoB;IACxB,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,IAAI;IACZ,UAAU,EAAE;QACV,KAAK;QACL,MAAM;QACN,KAAK,EAAE,8DAA8D;QACrE,KAAK,CAAC,iCAAiC;KACxC;IACD,SAAS,EAAE;QACT,YAAY;QACZ,WAAW;QACX,kBAAkB;QAClB,aAAa;QACb,0BAA0B;KAC3B;IACD,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE;QACP,oBAAoB,EAAE;YACpB,WAAW,EAAE,OAAO;YACpB,QAAQ,EAAE,KAAK;SAChB;KACF;CACoE,CAAC;AAExE;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,GAAG,6BAA6B;IAChC,KAAK,EAAE,KAAK,EAAE,WAAwB,EAAE,OAAwC,EAAE,EAAE;QAClF,OAAO,GAAG,EAAC,GAAG,OAAO,EAAC,CAAC;QACvB,IAAI,OAAO,EAAE,CAAC,oBAAoB,CAAC,EAAE,QAAQ,EAAE,CAAC;YAC9C,OAAO,CAAC,KAAK,GAAG;gBACd,MAAM,EAAE;oBACN,KAAK,EAAE,KAAK;oBACZ,OAAO,EAAE,KAAK;iBACf;gBACD,GAAG,OAAO,CAAC,KAAK;gBAChB,eAAe,EAAE,MAAM;gBACvB,MAAM,EAAE,SAAS;aAClB,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACtD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;QACD,OAAO,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;CAC8E,CAAC"}
1
+ {"version":3,"file":"compressed-texture-loader.js","sourceRoot":"","sources":["../src/compressed-texture-loader.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,OAAO,EAAC,+BAA4B;AAC5C,OAAO,EAAC,sBAAsB,EAAC,kDAA+C;AAC9E,OAAO,EAAC,UAAU,EAAC,qCAAkC;AAYrD;;GAEG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,QAAQ,EAAE,IAAsB;IAChC,SAAS,EAAE,IAAa;IAExB,IAAI,EAAE,oBAAoB;IAC1B,EAAE,EAAE,oBAAoB;IACxB,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,IAAI;IACZ,UAAU,EAAE;QACV,KAAK;QACL,MAAM;QACN,KAAK,EAAE,8DAA8D;QACrE,KAAK,CAAC,iCAAiC;KACxC;IACD,SAAS,EAAE;QACT,YAAY;QACZ,WAAW;QACX,kBAAkB;QAClB,aAAa;QACb,0BAA0B;KAC3B;IACD,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE;QACP,oBAAoB,EAAE;YACpB,QAAQ,EAAE,KAAK;SAChB;KACF;CACoE,CAAC;AAExE;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,GAAG,6BAA6B;IAChC,KAAK,EAAE,KAAK,EAAE,WAAwB,EAAE,OAAwC,EAAE,EAAE;QAClF,OAAO,GAAG,EAAC,GAAG,OAAO,EAAC,CAAC;QACvB,IAAI,OAAO,EAAE,CAAC,oBAAoB,CAAC,EAAE,QAAQ,EAAE,CAAC;YAC9C,OAAO,CAAC,KAAK,GAAG;gBACd,MAAM,EAAE;oBACN,KAAK,EAAE,KAAK;oBACZ,OAAO,EAAE,KAAK;iBACf;gBACD,GAAG,OAAO,CAAC,KAAK;gBAChB,eAAe,EAAE,MAAM;gBACvB,MAAM,EAAE,SAAS;aAClB,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACtD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;QACD,OAAO,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;CAC8E,CAAC"}