@loaders.gl/textures 4.0.0-alpha.4 → 4.0.0-alpha.6

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 (384) hide show
  1. package/dist/basis-loader.d.ts +11 -0
  2. package/dist/basis-loader.d.ts.map +1 -0
  3. package/dist/basis-loader.js +36 -24
  4. package/dist/basis-nodejs-worker.js +66490 -0
  5. package/dist/basis-worker.js +165 -76
  6. package/dist/bundle.d.ts +2 -0
  7. package/dist/bundle.d.ts.map +1 -0
  8. package/dist/bundle.js +2 -2
  9. package/dist/compressed-texture-loader.d.ts +49 -0
  10. package/dist/compressed-texture-loader.d.ts.map +1 -0
  11. package/dist/compressed-texture-loader.js +59 -36
  12. package/dist/compressed-texture-worker.js +269 -138
  13. package/dist/compressed-texture-writer.d.ts +17 -0
  14. package/dist/compressed-texture-writer.d.ts.map +1 -0
  15. package/dist/compressed-texture-writer.js +33 -21
  16. package/dist/crunch-loader.d.ts +21 -0
  17. package/dist/crunch-loader.d.ts.map +1 -0
  18. package/dist/crunch-loader.js +23 -16
  19. package/dist/crunch-worker.js +106 -41
  20. package/dist/dist.min.js +2195 -0
  21. package/dist/es5/basis-loader.js +38 -0
  22. package/dist/es5/basis-loader.js.map +1 -0
  23. package/dist/es5/bundle.js +6 -0
  24. package/dist/es5/bundle.js.map +1 -0
  25. package/dist/es5/compressed-texture-loader.js +76 -0
  26. package/dist/es5/compressed-texture-loader.js.map +1 -0
  27. package/dist/es5/compressed-texture-writer.js +28 -0
  28. package/dist/es5/compressed-texture-writer.js.map +1 -0
  29. package/dist/es5/crunch-loader.js +26 -0
  30. package/dist/es5/crunch-loader.js.map +1 -0
  31. package/dist/es5/index.js +132 -0
  32. package/dist/es5/index.js.map +1 -0
  33. package/dist/es5/ktx2-basis-writer-nodejs.js +14 -0
  34. package/dist/es5/ktx2-basis-writer-nodejs.js.map +1 -0
  35. package/dist/es5/ktx2-basis-writer.js +26 -0
  36. package/dist/es5/ktx2-basis-writer.js.map +1 -0
  37. package/dist/es5/lib/encoders/encode-ktx.js +12 -0
  38. package/dist/es5/lib/encoders/encode-ktx.js.map +1 -0
  39. package/dist/es5/lib/encoders/encode-ktx2-basis-texture.js +74 -0
  40. package/dist/es5/lib/encoders/encode-ktx2-basis-texture.js.map +1 -0
  41. package/dist/es5/lib/encoders/encode-texture.js +38 -0
  42. package/dist/es5/lib/encoders/encode-texture.js.map +1 -0
  43. package/dist/es5/lib/gl-extensions.js +68 -0
  44. package/dist/es5/lib/gl-extensions.js.map +1 -0
  45. package/dist/es5/lib/parsers/basis-module-loader.js +194 -0
  46. package/dist/es5/lib/parsers/basis-module-loader.js.map +1 -0
  47. package/dist/es5/lib/parsers/crunch-module-loader.js +67 -0
  48. package/dist/es5/lib/parsers/crunch-module-loader.js.map +1 -0
  49. package/dist/es5/lib/parsers/parse-basis.js +270 -0
  50. package/dist/es5/lib/parsers/parse-basis.js.map +1 -0
  51. package/dist/es5/lib/parsers/parse-compressed-texture.js +22 -0
  52. package/dist/es5/lib/parsers/parse-compressed-texture.js.map +1 -0
  53. package/dist/es5/lib/parsers/parse-crunch.js +100 -0
  54. package/dist/es5/lib/parsers/parse-crunch.js.map +1 -0
  55. package/dist/es5/lib/parsers/parse-dds.js +84 -0
  56. package/dist/es5/lib/parsers/parse-dds.js.map +1 -0
  57. package/dist/es5/lib/parsers/parse-ktx.js +34 -0
  58. package/dist/es5/lib/parsers/parse-ktx.js.map +1 -0
  59. package/dist/es5/lib/parsers/parse-npy.js +70 -0
  60. package/dist/es5/lib/parsers/parse-npy.js.map +1 -0
  61. package/dist/es5/lib/parsers/parse-pvr.js +161 -0
  62. package/dist/es5/lib/parsers/parse-pvr.js.map +1 -0
  63. package/dist/es5/lib/texture-api/async-deep-map.js +156 -0
  64. package/dist/es5/lib/texture-api/async-deep-map.js.map +1 -0
  65. package/dist/es5/lib/texture-api/deep-load.js +63 -0
  66. package/dist/es5/lib/texture-api/deep-load.js.map +1 -0
  67. package/dist/es5/lib/texture-api/generate-url.js +20 -0
  68. package/dist/es5/lib/texture-api/generate-url.js.map +1 -0
  69. package/dist/es5/lib/texture-api/load-image-array.js +75 -0
  70. package/dist/es5/lib/texture-api/load-image-array.js.map +1 -0
  71. package/dist/es5/lib/texture-api/load-image-cube.js +136 -0
  72. package/dist/es5/lib/texture-api/load-image-cube.js.map +1 -0
  73. package/dist/es5/lib/texture-api/load-image.js +129 -0
  74. package/dist/es5/lib/texture-api/load-image.js.map +1 -0
  75. package/dist/es5/lib/texture-api/texture-api-types.js +2 -0
  76. package/dist/es5/lib/texture-api/texture-api-types.js.map +1 -0
  77. package/dist/es5/lib/utils/extract-mipmap-images.js +41 -0
  78. package/dist/es5/lib/utils/extract-mipmap-images.js.map +1 -0
  79. package/dist/es5/lib/utils/ktx-format-helper.js +79 -0
  80. package/dist/es5/lib/utils/ktx-format-helper.js.map +1 -0
  81. package/dist/es5/lib/utils/texture-formats.js +54 -0
  82. package/dist/es5/lib/utils/texture-formats.js.map +1 -0
  83. package/dist/es5/lib/utils/version.js +9 -0
  84. package/dist/es5/lib/utils/version.js.map +1 -0
  85. package/dist/es5/libs/README.md +9 -0
  86. package/dist/es5/libs/basis_encoder.js +21 -0
  87. package/dist/es5/libs/basis_encoder.wasm +0 -0
  88. package/dist/es5/libs/basis_transcoder.js +22 -0
  89. package/dist/es5/libs/basis_transcoder.wasm +0 -0
  90. package/dist/es5/libs/crunch.js +136 -0
  91. package/dist/es5/npy-loader.js +51 -0
  92. package/dist/es5/npy-loader.js.map +1 -0
  93. package/dist/es5/types.js +2 -0
  94. package/dist/es5/types.js.map +1 -0
  95. package/dist/es5/workers/basis-nodejs-worker.js +7 -0
  96. package/dist/es5/workers/basis-nodejs-worker.js.map +1 -0
  97. package/dist/es5/workers/basis-worker.js +6 -0
  98. package/dist/es5/workers/basis-worker.js.map +1 -0
  99. package/dist/es5/workers/compressed-texture-worker.js +6 -0
  100. package/dist/es5/workers/compressed-texture-worker.js.map +1 -0
  101. package/dist/es5/workers/crunch-worker.js +19 -0
  102. package/dist/es5/workers/crunch-worker.js.map +1 -0
  103. package/dist/es5/workers/ktx2-basis-writer-nodejs-worker.js +53 -0
  104. package/dist/es5/workers/ktx2-basis-writer-nodejs-worker.js.map +1 -0
  105. package/dist/es5/workers/ktx2-basis-writer-worker.js +53 -0
  106. package/dist/es5/workers/ktx2-basis-writer-worker.js.map +1 -0
  107. package/dist/es5/workers/npy-worker.js +6 -0
  108. package/dist/es5/workers/npy-worker.js.map +1 -0
  109. package/dist/esm/basis-loader.js +27 -0
  110. package/dist/esm/basis-loader.js.map +1 -0
  111. package/dist/esm/bundle.js +4 -0
  112. package/dist/esm/bundle.js.map +1 -0
  113. package/dist/esm/compressed-texture-loader.js +41 -0
  114. package/dist/esm/compressed-texture-loader.js.map +1 -0
  115. package/dist/esm/compressed-texture-writer.js +21 -0
  116. package/dist/esm/compressed-texture-writer.js.map +1 -0
  117. package/dist/esm/crunch-loader.js +18 -0
  118. package/dist/esm/crunch-loader.js.map +1 -0
  119. package/dist/esm/index.js +30 -0
  120. package/dist/esm/index.js.map +1 -0
  121. package/dist/esm/ktx2-basis-writer-nodejs.js +3 -0
  122. package/dist/esm/ktx2-basis-writer-nodejs.js.map +1 -0
  123. package/dist/{ktx2-basis-universal-texture-writer.js → esm/ktx2-basis-writer.js} +4 -4
  124. package/dist/esm/ktx2-basis-writer.js.map +1 -0
  125. package/dist/esm/lib/encoders/encode-ktx.js +6 -0
  126. package/dist/esm/lib/encoders/encode-ktx.js.map +1 -0
  127. package/dist/esm/lib/encoders/encode-ktx2-basis-texture.js +35 -0
  128. package/dist/esm/lib/encoders/encode-ktx2-basis-texture.js.map +1 -0
  129. package/dist/esm/lib/encoders/encode-texture.js +12 -0
  130. package/dist/esm/lib/encoders/encode-texture.js.map +1 -0
  131. package/dist/{lib/gl-constants.js → esm/lib/gl-extensions.js} +2 -2
  132. package/dist/esm/lib/gl-extensions.js.map +1 -0
  133. package/dist/esm/lib/parsers/basis-module-loader.js +77 -0
  134. package/dist/esm/lib/parsers/basis-module-loader.js.map +1 -0
  135. package/dist/esm/lib/parsers/crunch-module-loader.js +19 -0
  136. package/dist/esm/lib/parsers/crunch-module-loader.js.map +1 -0
  137. package/dist/esm/lib/parsers/parse-basis.js +231 -0
  138. package/dist/esm/lib/parsers/parse-basis.js.map +1 -0
  139. package/dist/esm/lib/parsers/parse-compressed-texture.js +16 -0
  140. package/dist/esm/lib/parsers/parse-compressed-texture.js.map +1 -0
  141. package/dist/esm/lib/parsers/parse-crunch.js +75 -0
  142. package/dist/esm/lib/parsers/parse-crunch.js.map +1 -0
  143. package/dist/esm/lib/parsers/parse-dds.js +75 -0
  144. package/dist/esm/lib/parsers/parse-dds.js.map +1 -0
  145. package/dist/esm/lib/parsers/parse-ktx.js +25 -0
  146. package/dist/esm/lib/parsers/parse-ktx.js.map +1 -0
  147. package/dist/esm/lib/parsers/parse-npy.js +63 -0
  148. package/dist/esm/lib/parsers/parse-npy.js.map +1 -0
  149. package/dist/esm/lib/parsers/parse-pvr.js +154 -0
  150. package/dist/esm/lib/parsers/parse-pvr.js.map +1 -0
  151. package/dist/esm/lib/texture-api/async-deep-map.js +34 -0
  152. package/dist/esm/lib/texture-api/async-deep-map.js.map +1 -0
  153. package/dist/esm/lib/texture-api/deep-load.js +10 -0
  154. package/dist/esm/lib/texture-api/deep-load.js.map +1 -0
  155. package/dist/esm/lib/texture-api/generate-url.js +13 -0
  156. package/dist/esm/lib/texture-api/generate-url.js.map +1 -0
  157. package/dist/esm/lib/texture-api/load-image-array.js +20 -0
  158. package/dist/esm/lib/texture-api/load-image-array.js.map +1 -0
  159. package/dist/esm/lib/texture-api/load-image-cube.js +63 -0
  160. package/dist/esm/lib/texture-api/load-image-cube.js.map +1 -0
  161. package/dist/esm/lib/texture-api/load-image.js +46 -0
  162. package/dist/esm/lib/texture-api/load-image.js.map +1 -0
  163. package/dist/esm/lib/texture-api/texture-api-types.js +2 -0
  164. package/dist/esm/lib/texture-api/texture-api-types.js.map +1 -0
  165. package/dist/esm/lib/utils/extract-mipmap-images.js +35 -0
  166. package/dist/esm/lib/utils/extract-mipmap-images.js.map +1 -0
  167. package/dist/esm/lib/utils/ktx-format-helper.js +73 -0
  168. package/dist/esm/lib/utils/ktx-format-helper.js.map +1 -0
  169. package/dist/esm/lib/utils/texture-formats.js +36 -0
  170. package/dist/esm/lib/utils/texture-formats.js.map +1 -0
  171. package/dist/esm/lib/utils/version.js +2 -0
  172. package/dist/esm/lib/utils/version.js.map +1 -0
  173. package/dist/esm/libs/README.md +9 -0
  174. package/dist/esm/libs/basis_encoder.js +21 -0
  175. package/dist/esm/libs/basis_encoder.wasm +0 -0
  176. package/dist/esm/libs/basis_transcoder.js +22 -0
  177. package/dist/esm/libs/basis_transcoder.wasm +0 -0
  178. package/dist/esm/libs/crunch.js +136 -0
  179. package/dist/esm/npy-loader.js +22 -0
  180. package/dist/esm/npy-loader.js.map +1 -0
  181. package/dist/esm/types.js +2 -0
  182. package/dist/esm/types.js.map +1 -0
  183. package/dist/esm/workers/basis-nodejs-worker.js +5 -0
  184. package/dist/esm/workers/basis-nodejs-worker.js.map +1 -0
  185. package/dist/esm/workers/basis-worker.js +4 -0
  186. package/dist/esm/workers/basis-worker.js.map +1 -0
  187. package/dist/esm/workers/compressed-texture-worker.js +4 -0
  188. package/dist/esm/workers/compressed-texture-worker.js.map +1 -0
  189. package/dist/esm/workers/crunch-worker.js +9 -0
  190. package/dist/esm/workers/crunch-worker.js.map +1 -0
  191. package/dist/esm/workers/ktx2-basis-writer-nodejs-worker.js +31 -0
  192. package/dist/esm/workers/ktx2-basis-writer-nodejs-worker.js.map +1 -0
  193. package/dist/esm/workers/ktx2-basis-writer-worker.js +31 -0
  194. package/dist/esm/workers/ktx2-basis-writer-worker.js.map +1 -0
  195. package/dist/esm/workers/npy-worker.js +4 -0
  196. package/dist/esm/workers/npy-worker.js.map +1 -0
  197. package/dist/index.d.ts +30 -0
  198. package/dist/index.d.ts.map +1 -0
  199. package/dist/index.js +53 -14
  200. package/dist/ktx2-basis-writer-nodejs-worker.js +65949 -0
  201. package/dist/ktx2-basis-writer-nodejs.d.ts +3 -0
  202. package/dist/ktx2-basis-writer-nodejs.d.ts.map +1 -0
  203. package/dist/ktx2-basis-writer-nodejs.js +7 -0
  204. package/dist/ktx2-basis-writer-worker.js +343 -0
  205. package/dist/ktx2-basis-writer.d.ts +16 -0
  206. package/dist/ktx2-basis-writer.d.ts.map +1 -0
  207. package/dist/ktx2-basis-writer.js +26 -0
  208. package/dist/lib/encoders/encode-ktx.d.ts +2 -0
  209. package/dist/lib/encoders/encode-ktx.d.ts.map +1 -0
  210. package/dist/lib/encoders/encode-ktx.js +9 -5
  211. package/dist/lib/encoders/encode-ktx2-basis-texture.d.ts +10 -0
  212. package/dist/lib/encoders/encode-ktx2-basis-texture.d.ts.map +1 -0
  213. package/dist/lib/encoders/encode-ktx2-basis-texture.js +40 -34
  214. package/dist/lib/encoders/encode-texture.d.ts +3 -0
  215. package/dist/lib/encoders/encode-texture.d.ts.map +1 -0
  216. package/dist/lib/encoders/encode-texture.js +26 -14
  217. package/dist/lib/gl-extensions.d.ts +61 -0
  218. package/dist/lib/gl-extensions.d.ts.map +1 -0
  219. package/dist/lib/gl-extensions.js +72 -0
  220. package/dist/lib/parsers/basis-module-loader.d.ts +13 -0
  221. package/dist/lib/parsers/basis-module-loader.d.ts.map +1 -0
  222. package/dist/lib/parsers/basis-module-loader.js +100 -76
  223. package/dist/lib/parsers/crunch-module-loader.d.ts +7 -0
  224. package/dist/lib/parsers/crunch-module-loader.d.ts.map +1 -0
  225. package/dist/lib/parsers/crunch-module-loader.js +30 -18
  226. package/dist/lib/parsers/parse-basis.d.ts +18 -0
  227. package/dist/lib/parsers/parse-basis.d.ts.map +1 -0
  228. package/dist/lib/parsers/parse-basis.js +225 -240
  229. package/dist/lib/parsers/parse-compressed-texture.d.ts +8 -0
  230. package/dist/lib/parsers/parse-compressed-texture.d.ts.map +1 -0
  231. package/dist/lib/parsers/parse-compressed-texture.js +25 -18
  232. package/dist/lib/parsers/parse-crunch.d.ts +9 -0
  233. package/dist/lib/parsers/parse-crunch.d.ts.map +1 -0
  234. package/dist/lib/parsers/parse-crunch.js +97 -82
  235. package/dist/lib/parsers/parse-dds.d.ts +28 -0
  236. package/dist/lib/parsers/parse-dds.d.ts.map +1 -0
  237. package/dist/lib/parsers/parse-dds.js +93 -63
  238. package/dist/lib/parsers/parse-ktx.d.ts +4 -0
  239. package/dist/lib/parsers/parse-ktx.d.ts.map +1 -0
  240. package/dist/lib/parsers/parse-ktx.js +44 -23
  241. package/dist/lib/parsers/parse-npy.d.ts +15 -0
  242. package/dist/lib/parsers/parse-npy.d.ts.map +1 -0
  243. package/dist/lib/parsers/parse-npy.js +76 -71
  244. package/dist/lib/parsers/parse-pvr.d.ts +15 -0
  245. package/dist/lib/parsers/parse-pvr.d.ts.map +1 -0
  246. package/dist/lib/parsers/parse-pvr.js +212 -133
  247. package/dist/lib/texture-api/async-deep-map.d.ts +5 -0
  248. package/dist/lib/texture-api/async-deep-map.d.ts.map +1 -0
  249. package/dist/lib/texture-api/async-deep-map.js +35 -33
  250. package/dist/lib/texture-api/deep-load.d.ts +5 -0
  251. package/dist/lib/texture-api/deep-load.d.ts.map +1 -0
  252. package/dist/lib/texture-api/deep-load.js +14 -8
  253. package/dist/lib/texture-api/generate-url.d.ts +3 -0
  254. package/dist/lib/texture-api/generate-url.d.ts.map +1 -0
  255. package/dist/lib/texture-api/generate-url.js +16 -13
  256. package/dist/lib/texture-api/load-image-array.d.ts +4 -0
  257. package/dist/lib/texture-api/load-image-array.d.ts.map +1 -0
  258. package/dist/lib/texture-api/load-image-array.js +19 -18
  259. package/dist/lib/texture-api/load-image-cube.d.ts +12 -0
  260. package/dist/lib/texture-api/load-image-cube.d.ts.map +1 -0
  261. package/dist/lib/texture-api/load-image-cube.js +39 -55
  262. package/dist/lib/texture-api/load-image.d.ts +8 -0
  263. package/dist/lib/texture-api/load-image.d.ts.map +1 -0
  264. package/dist/lib/texture-api/load-image.js +38 -43
  265. package/dist/lib/texture-api/texture-api-types.d.ts +10 -0
  266. package/dist/lib/texture-api/texture-api-types.d.ts.map +1 -0
  267. package/dist/lib/texture-api/texture-api-types.js +3 -2
  268. package/dist/lib/utils/extract-mipmap-images.d.ts +20 -0
  269. package/dist/lib/utils/extract-mipmap-images.d.ts.map +1 -0
  270. package/dist/lib/utils/extract-mipmap-images.js +45 -36
  271. package/dist/lib/utils/ktx-format-helper.d.ts +9 -0
  272. package/dist/lib/utils/ktx-format-helper.d.ts.map +1 -0
  273. package/dist/lib/utils/ktx-format-helper.js +122 -70
  274. package/dist/lib/utils/texture-formats.d.ts +8 -0
  275. package/dist/lib/utils/texture-formats.d.ts.map +1 -0
  276. package/dist/lib/utils/texture-formats.js +42 -30
  277. package/dist/lib/utils/version.d.ts +2 -0
  278. package/dist/lib/utils/version.d.ts.map +1 -0
  279. package/dist/lib/utils/version.js +8 -2
  280. package/dist/libs/README.md +2 -2
  281. package/dist/libs/basis_encoder.js +19 -20
  282. package/dist/libs/basis_encoder.wasm +0 -0
  283. package/dist/libs/basis_transcoder.js +13 -12
  284. package/dist/libs/basis_transcoder.wasm +0 -0
  285. package/dist/libs/crunch.js +1 -0
  286. package/dist/npy-loader.d.ts +14 -0
  287. package/dist/npy-loader.d.ts.map +1 -0
  288. package/dist/npy-loader.js +28 -20
  289. package/dist/npy-worker.js +60 -31
  290. package/dist/types.d.ts +1 -0
  291. package/dist/types.d.ts.map +1 -0
  292. package/dist/types.js +1 -2
  293. package/dist/workers/basis-nodejs-worker.d.ts +2 -0
  294. package/dist/workers/basis-nodejs-worker.d.ts.map +1 -0
  295. package/dist/workers/basis-nodejs-worker.js +6 -0
  296. package/dist/workers/basis-worker.d.ts +2 -0
  297. package/dist/workers/basis-worker.d.ts.map +1 -0
  298. package/dist/workers/basis-worker.js +5 -4
  299. package/dist/workers/compressed-texture-worker.d.ts +2 -0
  300. package/dist/workers/compressed-texture-worker.d.ts.map +1 -0
  301. package/dist/workers/compressed-texture-worker.js +5 -4
  302. package/dist/workers/crunch-worker.d.ts +21 -0
  303. package/dist/workers/crunch-worker.d.ts.map +1 -0
  304. package/dist/workers/crunch-worker.js +13 -7
  305. package/dist/workers/ktx2-basis-writer-nodejs-worker.d.ts +2 -0
  306. package/dist/workers/ktx2-basis-writer-nodejs-worker.d.ts.map +1 -0
  307. package/dist/workers/ktx2-basis-writer-nodejs-worker.js +26 -0
  308. package/dist/workers/ktx2-basis-writer-worker.d.ts +2 -0
  309. package/dist/workers/ktx2-basis-writer-worker.d.ts.map +1 -0
  310. package/dist/workers/ktx2-basis-writer-worker.js +26 -0
  311. package/dist/workers/npy-worker.d.ts +2 -0
  312. package/dist/workers/npy-worker.d.ts.map +1 -0
  313. package/dist/workers/npy-worker.js +5 -4
  314. package/package.json +21 -14
  315. package/src/basis-loader.ts +8 -8
  316. package/src/compressed-texture-loader.ts +1 -1
  317. package/src/compressed-texture-writer.ts +21 -3
  318. package/src/index.ts +21 -3
  319. package/src/ktx2-basis-writer-nodejs.ts +4 -0
  320. package/src/{ktx2-basis-universal-texture-writer.ts → ktx2-basis-writer.ts} +14 -3
  321. package/src/lib/encoders/encode-ktx2-basis-texture.ts +2 -2
  322. package/src/lib/encoders/encode-texture.ts +7 -6
  323. package/src/lib/{gl-constants.ts → gl-extensions.ts} +1 -1
  324. package/src/lib/parsers/crunch-module-loader.ts +1 -1
  325. package/src/lib/parsers/{parse-basis.js → parse-basis.ts} +101 -45
  326. package/src/lib/parsers/parse-compressed-texture.ts +1 -1
  327. package/src/lib/parsers/parse-crunch.ts +16 -15
  328. package/src/lib/parsers/parse-dds.ts +8 -8
  329. package/src/lib/parsers/parse-ktx.ts +2 -1
  330. package/src/lib/parsers/parse-npy.ts +53 -30
  331. package/src/lib/parsers/parse-pvr.ts +72 -29
  332. package/src/lib/utils/extract-mipmap-images.ts +9 -1
  333. package/src/lib/utils/ktx-format-helper.ts +67 -67
  334. package/src/lib/utils/texture-formats.ts +1 -1
  335. package/src/libs/README.md +2 -2
  336. package/src/libs/basis_encoder.js +19 -20
  337. package/src/libs/basis_encoder.wasm +0 -0
  338. package/src/libs/basis_transcoder.js +13 -12
  339. package/src/libs/basis_transcoder.wasm +0 -0
  340. package/src/libs/crunch.js +1 -0
  341. package/src/npy-loader.ts +7 -7
  342. package/src/types.ts +0 -30
  343. package/src/workers/basis-nodejs-worker.ts +5 -0
  344. package/src/workers/ktx2-basis-writer-nodejs-worker.ts +25 -0
  345. package/src/workers/ktx2-basis-writer-worker.ts +25 -0
  346. package/dist/basis-loader.js.map +0 -1
  347. package/dist/bundle.js.map +0 -1
  348. package/dist/compressed-texture-loader.js.map +0 -1
  349. package/dist/compressed-texture-writer.js.map +0 -1
  350. package/dist/crunch-loader.js.map +0 -1
  351. package/dist/index.js.map +0 -1
  352. package/dist/ktx2-basis-universal-texture-writer.js.map +0 -1
  353. package/dist/lib/encoders/encode-ktx.js.map +0 -1
  354. package/dist/lib/encoders/encode-ktx2-basis-texture.js.map +0 -1
  355. package/dist/lib/encoders/encode-texture.js.map +0 -1
  356. package/dist/lib/gl-constants.js.map +0 -1
  357. package/dist/lib/parsers/basis-module-loader.js.map +0 -1
  358. package/dist/lib/parsers/crunch-module-loader.js.map +0 -1
  359. package/dist/lib/parsers/parse-basis.js.map +0 -1
  360. package/dist/lib/parsers/parse-compressed-texture.js.map +0 -1
  361. package/dist/lib/parsers/parse-crunch.js.map +0 -1
  362. package/dist/lib/parsers/parse-dds.js.map +0 -1
  363. package/dist/lib/parsers/parse-ktx.js.map +0 -1
  364. package/dist/lib/parsers/parse-npy.js.map +0 -1
  365. package/dist/lib/parsers/parse-pvr.js.map +0 -1
  366. package/dist/lib/texture-api/async-deep-map.js.map +0 -1
  367. package/dist/lib/texture-api/deep-load.js.map +0 -1
  368. package/dist/lib/texture-api/generate-url.js.map +0 -1
  369. package/dist/lib/texture-api/load-image-array.js.map +0 -1
  370. package/dist/lib/texture-api/load-image-cube.js.map +0 -1
  371. package/dist/lib/texture-api/load-image.js.map +0 -1
  372. package/dist/lib/texture-api/texture-api-types.js.map +0 -1
  373. package/dist/lib/utils/extract-mipmap-images.js.map +0 -1
  374. package/dist/lib/utils/ktx-format-helper.js.map +0 -1
  375. package/dist/lib/utils/texture-formats.js.map +0 -1
  376. package/dist/lib/utils/version.js.map +0 -1
  377. package/dist/npy-loader.js.map +0 -1
  378. package/dist/types.js.map +0 -1
  379. package/dist/workers/basis-worker.js.map +0 -1
  380. package/dist/workers/compressed-texture-worker.js.map +0 -1
  381. package/dist/workers/crunch-worker.js.map +0 -1
  382. package/dist/workers/npy-worker.js.map +0 -1
  383. package/src/lib/parsers/parse-ktx.js +0 -45
  384. package/src/lib/parsers/parse-npy.js +0 -96
@@ -1,14 +1,12 @@
1
1
  (() => {
2
2
  // src/lib/utils/version.ts
3
- var VERSION = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
3
+ var VERSION = true ? "4.0.0-alpha.6" : "beta";
4
4
 
5
5
  // src/lib/parsers/parse-npy.ts
6
- function systemIsLittleEndian() {
7
- const a = new Uint32Array([305419896]);
8
- const b = new Uint8Array(a.buffer, a.byteOffset, a.byteLength);
9
- return !(b[0] === 18);
10
- }
11
- var LITTLE_ENDIAN_OS = systemIsLittleEndian();
6
+ var a = new Uint32Array([305419896]);
7
+ var b = new Uint8Array(a.buffer, a.byteOffset, a.byteLength);
8
+ var isLittleEndian = !(b[0] === 18);
9
+ var LITTLE_ENDIAN_OS = isLittleEndian;
12
10
  var DTYPES = {
13
11
  u1: Uint8Array,
14
12
  i1: Int8Array,
@@ -20,22 +18,21 @@
20
18
  f8: Float64Array
21
19
  };
22
20
  function parseNPY(arrayBuffer, options) {
23
- if (!arrayBuffer) {
24
- return null;
25
- }
26
21
  const view = new DataView(arrayBuffer);
27
22
  const { header, headerEndOffset } = parseHeader(view);
28
23
  const numpyType = header.descr;
29
24
  const ArrayType = DTYPES[numpyType.slice(1, 3)];
30
25
  if (!ArrayType) {
31
- console.warn(`Decoding of npy dtype not implemented: ${numpyType}`);
32
- return null;
26
+ throw new Error(`Unimplemented type ${numpyType}`);
33
27
  }
34
- const nArrayElements = header.shape?.reduce((a, b) => a * b);
28
+ const nArrayElements = header.shape?.reduce((a2, b2) => a2 * b2);
35
29
  const arrayByteLength = nArrayElements * ArrayType.BYTES_PER_ELEMENT;
30
+ if (arrayBuffer.byteLength < headerEndOffset + arrayByteLength) {
31
+ throw new Error("Buffer overflow");
32
+ }
36
33
  const data = new ArrayType(arrayBuffer.slice(headerEndOffset, headerEndOffset + arrayByteLength));
37
34
  if (numpyType[0] === ">" && LITTLE_ENDIAN_OS || numpyType[0] === "<" && !LITTLE_ENDIAN_OS) {
38
- console.warn("Data is wrong endianness, byte swapping not yet implemented.");
35
+ throw new Error("Incorrect endianness");
39
36
  }
40
37
  return {
41
38
  data,
@@ -47,10 +44,10 @@
47
44
  let offset = 8;
48
45
  let headerLength;
49
46
  if (majorVersion >= 2) {
50
- headerLength = view.getUint32(8, true);
47
+ headerLength = view.getUint32(offset, true);
51
48
  offset += 4;
52
49
  } else {
53
- headerLength = view.getUint16(8, true);
50
+ headerLength = view.getUint16(offset, true);
54
51
  offset += 2;
55
52
  }
56
53
  const encoding = majorVersion <= 2 ? "latin1" : "utf-8";
@@ -119,16 +116,33 @@
119
116
  }
120
117
 
121
118
  // ../worker-utils/src/lib/worker-farm/worker-body.ts
119
+ function getParentPort() {
120
+ let parentPort;
121
+ try {
122
+ eval("globalThis.parentPort = require('worker_threads').parentPort");
123
+ parentPort = globalThis.parentPort;
124
+ } catch {
125
+ }
126
+ return parentPort;
127
+ }
122
128
  var onMessageWrapperMap = new Map();
123
129
  var WorkerBody = class {
130
+ static inWorkerThread() {
131
+ return typeof self !== "undefined" || Boolean(getParentPort());
132
+ }
124
133
  static set onmessage(onMessage) {
125
- self.onmessage = (message) => {
126
- if (!isKnownMessage(message)) {
127
- return;
128
- }
129
- const { type, payload } = message.data;
134
+ function handleMessage(message) {
135
+ const parentPort3 = getParentPort();
136
+ const { type, payload } = parentPort3 ? message : message.data;
130
137
  onMessage(type, payload);
131
- };
138
+ }
139
+ const parentPort2 = getParentPort();
140
+ if (parentPort2) {
141
+ parentPort2.on("message", handleMessage);
142
+ parentPort2.on("exit", () => console.debug("Node worker closing"));
143
+ } else {
144
+ globalThis.onmessage = handleMessage;
145
+ }
132
146
  }
133
147
  static addEventListener(onMessage) {
134
148
  let onMessageWrapper = onMessageWrapperMap.get(onMessage);
@@ -137,22 +151,36 @@
137
151
  if (!isKnownMessage(message)) {
138
152
  return;
139
153
  }
140
- const { type, payload } = message.data;
154
+ const parentPort3 = getParentPort();
155
+ const { type, payload } = parentPort3 ? message : message.data;
141
156
  onMessage(type, payload);
142
157
  };
143
158
  }
144
- self.addEventListener("message", onMessageWrapper);
159
+ const parentPort2 = getParentPort();
160
+ if (parentPort2) {
161
+ console.error("not implemented");
162
+ } else {
163
+ globalThis.addEventListener("message", onMessageWrapper);
164
+ }
145
165
  }
146
166
  static removeEventListener(onMessage) {
147
167
  const onMessageWrapper = onMessageWrapperMap.get(onMessage);
148
168
  onMessageWrapperMap.delete(onMessage);
149
- self.removeEventListener("message", onMessageWrapper);
169
+ const parentPort2 = getParentPort();
170
+ if (parentPort2) {
171
+ console.error("not implemented");
172
+ } else {
173
+ globalThis.removeEventListener("message", onMessageWrapper);
174
+ }
150
175
  }
151
176
  static postMessage(type, payload) {
152
- if (self) {
153
- const data = { source: "loaders.gl", type, payload };
154
- const transferList = getTransferList(payload);
155
- self.postMessage(data, transferList);
177
+ const data = { source: "loaders.gl", type, payload };
178
+ const transferList = getTransferList(payload);
179
+ const parentPort2 = getParentPort();
180
+ if (parentPort2) {
181
+ parentPort2.postMessage(data, transferList);
182
+ } else {
183
+ globalThis.postMessage(data, transferList);
156
184
  }
157
185
  }
158
186
  };
@@ -164,19 +192,20 @@
164
192
  // ../loader-utils/src/lib/worker-loader-utils/create-loader-worker.ts
165
193
  var requestId = 0;
166
194
  function createLoaderWorker(loader) {
167
- if (typeof self === "undefined") {
195
+ if (!WorkerBody.inWorkerThread()) {
168
196
  return;
169
197
  }
170
198
  WorkerBody.onmessage = async (type, payload) => {
171
199
  switch (type) {
172
200
  case "process":
173
201
  try {
174
- const { input, options = {} } = payload;
202
+ const { input, options = {}, context = {} } = payload;
175
203
  const result = await parseData({
176
204
  loader,
177
205
  arrayBuffer: input,
178
206
  options,
179
207
  context: {
208
+ ...context,
180
209
  parse: parseOnMainThread
181
210
  }
182
211
  });
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/dist/types.js CHANGED
@@ -1,2 +1 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
1
+ "use strict";
@@ -0,0 +1,2 @@
1
+ import '@loaders.gl/polyfills';
2
+ //# sourceMappingURL=basis-nodejs-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basis-nodejs-worker.d.ts","sourceRoot":"","sources":["../../src/workers/basis-nodejs-worker.ts"],"names":[],"mappings":"AACA,OAAO,uBAAuB,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const loader_utils_1 = require("@loaders.gl/loader-utils");
4
+ require("@loaders.gl/polyfills");
5
+ const basis_loader_1 = require("../basis-loader");
6
+ (0, loader_utils_1.createLoaderWorker)(basis_loader_1.BasisLoader);
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=basis-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basis-worker.d.ts","sourceRoot":"","sources":["../../src/workers/basis-worker.ts"],"names":[],"mappings":""}
@@ -1,4 +1,5 @@
1
- import { createLoaderWorker } from '@loaders.gl/loader-utils';
2
- import { BasisLoader } from '../basis-loader';
3
- createLoaderWorker(BasisLoader);
4
- //# sourceMappingURL=basis-worker.js.map
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const loader_utils_1 = require("@loaders.gl/loader-utils");
4
+ const basis_loader_1 = require("../basis-loader");
5
+ (0, loader_utils_1.createLoaderWorker)(basis_loader_1.BasisLoader);
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=compressed-texture-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compressed-texture-worker.d.ts","sourceRoot":"","sources":["../../src/workers/compressed-texture-worker.ts"],"names":[],"mappings":""}
@@ -1,4 +1,5 @@
1
- import { createLoaderWorker } from '@loaders.gl/loader-utils';
2
- import { CompressedTextureLoader } from '../compressed-texture-loader';
3
- createLoaderWorker(CompressedTextureLoader);
4
- //# sourceMappingURL=compressed-texture-worker.js.map
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const loader_utils_1 = require("@loaders.gl/loader-utils");
4
+ const compressed_texture_loader_1 = require("../compressed-texture-loader");
5
+ (0, loader_utils_1.createLoaderWorker)(compressed_texture_loader_1.CompressedTextureLoader);
@@ -0,0 +1,21 @@
1
+ import { parseCrunch } from '../lib/parsers/parse-crunch';
2
+ /**
3
+ * Loader for the Crunch compressed texture container format
4
+ */
5
+ export declare const CrunchLoaderWithParser: {
6
+ parse: typeof parseCrunch;
7
+ id: string;
8
+ name: string;
9
+ module: string;
10
+ version: any;
11
+ worker: boolean;
12
+ extensions: string[];
13
+ mimeTypes: string[];
14
+ binary: boolean;
15
+ options: {
16
+ crunch: {
17
+ libraryPath: string;
18
+ };
19
+ };
20
+ };
21
+ //# sourceMappingURL=crunch-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crunch-worker.d.ts","sourceRoot":"","sources":["../../src/workers/crunch-worker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,WAAW,EAAC,MAAM,6BAA6B,CAAC;AAExD;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;CAGlC,CAAC"}
@@ -1,8 +1,14 @@
1
- import { createLoaderWorker } from '@loaders.gl/loader-utils';
2
- import { CrunchLoader } from '../crunch-loader';
3
- import { parseCrunch } from '../lib/parsers/parse-crunch';
4
- export const CrunchLoaderWithParser = { ...CrunchLoader,
5
- parse: parseCrunch
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CrunchLoaderWithParser = void 0;
4
+ const loader_utils_1 = require("@loaders.gl/loader-utils");
5
+ const crunch_loader_1 = require("../crunch-loader");
6
+ const parse_crunch_1 = require("../lib/parsers/parse-crunch");
7
+ /**
8
+ * Loader for the Crunch compressed texture container format
9
+ */
10
+ exports.CrunchLoaderWithParser = {
11
+ ...crunch_loader_1.CrunchLoader,
12
+ parse: parse_crunch_1.parseCrunch
6
13
  };
7
- createLoaderWorker(CrunchLoaderWithParser);
8
- //# sourceMappingURL=crunch-worker.js.map
14
+ (0, loader_utils_1.createLoaderWorker)(exports.CrunchLoaderWithParser);
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ktx2-basis-writer-nodejs-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ktx2-basis-writer-nodejs-worker.d.ts","sourceRoot":"","sources":["../../src/workers/ktx2-basis-writer-nodejs-worker.ts"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const worker_utils_1 = require("@loaders.gl/worker-utils");
4
+ const ktx2_basis_writer_nodejs_1 = require("../ktx2-basis-writer-nodejs");
5
+ (() => {
6
+ // Check that we are actually in a worker thread
7
+ if (!worker_utils_1.WorkerBody.inWorkerThread()) {
8
+ return;
9
+ }
10
+ worker_utils_1.WorkerBody.onmessage = async (type, payload) => {
11
+ switch (type) {
12
+ case 'process':
13
+ try {
14
+ const { input, options } = payload;
15
+ const result = await ktx2_basis_writer_nodejs_1.KTX2BasisWriterNodeJS.encode?.(input, options);
16
+ worker_utils_1.WorkerBody.postMessage('done', { result });
17
+ }
18
+ catch (error) {
19
+ const message = error instanceof Error ? error.message : '';
20
+ worker_utils_1.WorkerBody.postMessage('error', { error: message });
21
+ }
22
+ break;
23
+ default:
24
+ }
25
+ };
26
+ })();
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ktx2-basis-writer-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ktx2-basis-writer-worker.d.ts","sourceRoot":"","sources":["../../src/workers/ktx2-basis-writer-worker.ts"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const worker_utils_1 = require("@loaders.gl/worker-utils");
4
+ const ktx2_basis_writer_1 = require("../ktx2-basis-writer");
5
+ (() => {
6
+ // Check that we are actually in a worker thread
7
+ if (!worker_utils_1.WorkerBody.inWorkerThread()) {
8
+ return;
9
+ }
10
+ worker_utils_1.WorkerBody.onmessage = async (type, payload) => {
11
+ switch (type) {
12
+ case 'process':
13
+ try {
14
+ const { input, options } = payload;
15
+ const result = await ktx2_basis_writer_1.KTX2BasisWriter.encode?.(input, options);
16
+ worker_utils_1.WorkerBody.postMessage('done', { result });
17
+ }
18
+ catch (error) {
19
+ const message = error instanceof Error ? error.message : '';
20
+ worker_utils_1.WorkerBody.postMessage('error', { error: message });
21
+ }
22
+ break;
23
+ default:
24
+ }
25
+ };
26
+ })();
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=npy-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npy-worker.d.ts","sourceRoot":"","sources":["../../src/workers/npy-worker.ts"],"names":[],"mappings":""}
@@ -1,4 +1,5 @@
1
- import { NPYLoader } from '../npy-loader';
2
- import { createLoaderWorker } from '@loaders.gl/loader-utils';
3
- createLoaderWorker(NPYLoader);
4
- //# sourceMappingURL=npy-worker.js.map
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const npy_loader_1 = require("../npy-loader");
4
+ const loader_utils_1 = require("@loaders.gl/loader-utils");
5
+ (0, loader_utils_1.createLoaderWorker)(npy_loader_1.NPYLoader);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/textures",
3
- "version": "4.0.0-alpha.4",
3
+ "version": "4.0.0-alpha.6",
4
4
  "description": "Framework-independent loaders for compressed and super compressed (basis) textures ",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -21,9 +21,9 @@
21
21
  "ETC",
22
22
  "basis"
23
23
  ],
24
- "types": "src/index.ts",
25
- "main": "dist/index.js",
26
- "module": "dist/index.js",
24
+ "types": "dist/index.d.ts",
25
+ "main": "dist/es5/index.js",
26
+ "module": "dist/esm/index.js",
27
27
  "sideEffects": false,
28
28
  "files": [
29
29
  "src",
@@ -34,19 +34,26 @@
34
34
  "scripts": {
35
35
  "pre-build": "npm run copy-libs && npm run build-worker && npm run build-bundle",
36
36
  "copy-libs": "cp -rf ./src/libs ./dist/libs",
37
- "build-bundle": "esbuild src/bundle.ts --bundle --outfile=dist/bundle.js",
38
- "build-worker": "npm run build-basis-worker && npm run build-npy-worker && npm run build-compressed-texture-worker && npm run build-crunch-worker",
39
- "build-basis-worker": "esbuild src/workers/basis-worker.ts --bundle --outfile=dist/basis-worker.js",
40
- "build-npy-worker": "esbuild src/workers/npy-worker.ts --bundle --outfile=dist/npy-worker.js",
41
- "build-compressed-texture-worker": "esbuild src/workers/compressed-texture-worker.ts --bundle --outfile=dist/compressed-texture-worker.js",
42
- "build-crunch-worker": "esbuild src/workers/crunch-worker.ts --bundle --outfile=dist/crunch-worker.js"
37
+ "build-bundle": "esbuild src/bundle.ts --bundle --outfile=dist/dist.min.js",
38
+ "build-worker": "npm run build-basis-worker && npm run build-basis-nodejs-worker && npm run build-npy-worker && npm run build-compressed-texture-worker && npm run build-crunch-worker && npm run build-ktx2-basis-writer-worker && npm run build-ktx2-basis-writer-nodejs-worker",
39
+ "build-basis-worker": "esbuild src/workers/basis-worker.ts --bundle --outfile=dist/basis-worker.js --define:__VERSION__=\\\"$npm_package_version\\\"",
40
+ "build-basis-nodejs-worker": "esbuild src/workers/basis-nodejs-worker.ts --platform=node --target=esnext,node12 --bundle --outfile=dist/basis-nodejs-worker.js --define:__VERSION__=\\\"$npm_package_version\\\"",
41
+ "build-npy-worker": "esbuild src/workers/npy-worker.ts --bundle --outfile=dist/npy-worker.js --define:__VERSION__=\\\"$npm_package_version\\\"",
42
+ "build-compressed-texture-worker": "esbuild src/workers/compressed-texture-worker.ts --bundle --outfile=dist/compressed-texture-worker.js --define:__VERSION__=\\\"$npm_package_version\\\"",
43
+ "build-crunch-worker": "esbuild src/workers/crunch-worker.ts --bundle --outfile=dist/crunch-worker.js --define:__VERSION__=\\\"$npm_package_version\\\"",
44
+ "build-ktx2-basis-writer-worker": "esbuild src/workers/ktx2-basis-writer-worker.ts --bundle --outfile=dist/ktx2-basis-writer-worker.js --define:__VERSION__=\\\"$npm_package_version\\\"",
45
+ "build-ktx2-basis-writer-nodejs-worker": "esbuild src/workers/ktx2-basis-writer-nodejs-worker.ts --platform=node --target=esnext,node12 --bundle --outfile=dist/ktx2-basis-writer-nodejs-worker.js --define:__VERSION__=\\\"$npm_package_version\\\""
43
46
  },
44
47
  "dependencies": {
45
- "@loaders.gl/images": "4.0.0-alpha.4",
46
- "@loaders.gl/loader-utils": "4.0.0-alpha.4",
47
- "@loaders.gl/worker-utils": "4.0.0-alpha.4",
48
+ "@loaders.gl/images": "4.0.0-alpha.6",
49
+ "@loaders.gl/loader-utils": "4.0.0-alpha.6",
50
+ "@loaders.gl/schema": "4.0.0-alpha.6",
51
+ "@loaders.gl/worker-utils": "4.0.0-alpha.6",
48
52
  "ktx-parse": "^0.0.4",
49
53
  "texture-compressor": "^1.0.2"
50
54
  },
51
- "gitHead": "53026061b3c8871f7e96d3a5826125cc6613bddc"
55
+ "devDependencies": {
56
+ "@loaders.gl/polyfills": "4.0.0-alpha.6"
57
+ },
58
+ "gitHead": "acc1985050dfaa0f1f0c066f8da5bce7454a046c"
52
59
  }
@@ -1,13 +1,17 @@
1
- import type {Loader, LoaderWithParser} from '@loaders.gl/loader-utils';
1
+ // loaders.gl, MIT license
2
+
3
+ import type {Loader, LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';
4
+ import type {TextureLevel} from '@loaders.gl/schema';
5
+ import {isBrowser} from '@loaders.gl/worker-utils';
2
6
  import {VERSION} from './lib/utils/version';
3
7
  import parseBasis from './lib/parsers/parse-basis';
4
8
 
5
9
  /**
6
10
  * Worker loader for Basis super compressed textures
7
11
  */
8
- export const BasisWorkerLoader = {
12
+ export const BasisWorkerLoader: Loader<TextureLevel[][], never, LoaderOptions> = {
9
13
  name: 'Basis',
10
- id: 'basis',
14
+ id: isBrowser ? 'basis' : 'basis-nodejs',
11
15
  module: 'textures',
12
16
  version: VERSION,
13
17
  worker: true,
@@ -28,11 +32,7 @@ export const BasisWorkerLoader = {
28
32
  /**
29
33
  * Loader for Basis super compressed textures
30
34
  */
31
- export const BasisLoader = {
35
+ export const BasisLoader: LoaderWithParser<TextureLevel[][], never, LoaderOptions> = {
32
36
  ...BasisWorkerLoader,
33
37
  parse: parseBasis
34
38
  };
35
-
36
- // TYPE TESTS - TODO find a better way than exporting junk
37
- export const _TypecheckBasisWorkerLoader: Loader = BasisWorkerLoader;
38
- export const _TypecheckBasisLoader: LoaderWithParser = BasisLoader;
@@ -59,7 +59,7 @@ export const CompressedTextureLoader = {
59
59
  containerFormat: 'ktx2',
60
60
  module: 'encoder'
61
61
  };
62
- return await parseBasis(arrayBuffer, options);
62
+ return (await parseBasis(arrayBuffer, options))[0];
63
63
  }
64
64
  return parseCompressedTexture(arrayBuffer);
65
65
  }
@@ -1,11 +1,23 @@
1
- import type {Writer} from '@loaders.gl/loader-utils';
1
+ import type {Writer, WriterOptions} from '@loaders.gl/loader-utils';
2
2
  import {VERSION} from './lib/utils/version';
3
3
  import {encodeImageURLToCompressedTextureURL} from './lib/encoders/encode-texture';
4
4
 
5
+ export type CompressedTextureWriterOptions = WriterOptions & {
6
+ cwd?: string;
7
+ texture?: {
8
+ format: string;
9
+ compression: string;
10
+ quality: string;
11
+ mipmap: boolean;
12
+ flipY: boolean;
13
+ toolFlags: string;
14
+ };
15
+ };
16
+
5
17
  /**
6
18
  * DDS Texture Container Exporter
7
19
  */
8
- export const CompressedTextureWriter = {
20
+ export const CompressedTextureWriter: Writer<unknown, unknown, CompressedTextureWriterOptions> = {
9
21
  name: 'DDS Texture Container',
10
22
  id: 'dds',
11
23
  module: 'textures',
@@ -28,4 +40,10 @@ export const CompressedTextureWriter = {
28
40
  };
29
41
 
30
42
  // TYPE TESTS - TODO find a better way than exporting junk
31
- export const _TypecheckCompressedTextureWriter: Writer = CompressedTextureWriter;
43
+ // export const _TypecheckCompressedTextureWriter: typeof CompressedTextureWriter & {
44
+ // encodeURLtoURL: (
45
+ // inputUrl: string,
46
+ // outputUrl: string,
47
+ // options?: CompressedTextureWriterOptions
48
+ // ) => Promise<string>;
49
+ // } = CompressedTextureWriter;
package/src/index.ts CHANGED
@@ -1,5 +1,8 @@
1
+ import {isBrowser} from '@loaders.gl/loader-utils';
2
+ import {VERSION} from './lib/utils/version';
3
+
1
4
  // Types
2
- export type {GPUTextureFormat} from './types';
5
+ export type {GPUTextureFormat} from '@loaders.gl/schema';
3
6
  export type {TextureLoaderOptions} from './compressed-texture-loader';
4
7
 
5
8
  // Loaders
@@ -10,7 +13,22 @@ export {NPYLoader, NPYWorkerLoader} from './npy-loader';
10
13
 
11
14
  // Writers
12
15
  export {CompressedTextureWriter} from './compressed-texture-writer';
13
- export {KTX2BasisUniversalTextureWriter} from './ktx2-basis-universal-texture-writer';
16
+ export {KTX2BasisWriter} from './ktx2-basis-writer';
17
+
18
+ export const KTX2BasisWriterWorker = {
19
+ name: 'Basis Universal Supercompressed GPU Texture',
20
+ id: isBrowser ? 'ktx2-basis-writer' : 'ktx2-basis-writer-nodejs',
21
+ module: 'textures',
22
+ version: VERSION,
23
+ extensions: ['ktx2'],
24
+ worker: true,
25
+ options: {
26
+ useSRGB: false,
27
+ qualityLevel: 10,
28
+ encodeUASTC: false,
29
+ mipmaps: false
30
+ }
31
+ };
14
32
 
15
33
  // Texture Loading API
16
34
  export {loadImageTexture} from './lib/texture-api/load-image';
@@ -18,7 +36,7 @@ export {loadImageTextureArray} from './lib/texture-api/load-image-array';
18
36
  export {loadImageTextureCube} from './lib/texture-api/load-image-cube';
19
37
 
20
38
  // Utilities
21
- export {GL as GL_CONSTANTS} from './lib/gl-constants';
39
+ export {GL_EXTENSIONS_CONSTANTS} from './lib/gl-extensions';
22
40
  export {selectSupportedBasisFormat} from './lib/parsers/parse-basis';
23
41
  export {getSupportedGPUTextureFormats} from './lib/utils/texture-formats';
24
42
 
@@ -0,0 +1,4 @@
1
+ // Polyfills increases the bundle size significantly. Use it for NodeJS worker only
2
+ import '@loaders.gl/polyfills';
3
+
4
+ export {KTX2BasisWriter as KTX2BasisWriterNodeJS} from './ktx2-basis-writer';
@@ -1,14 +1,25 @@
1
+ // loaders.gl, MIT license
2
+
1
3
  import type {Writer} from '@loaders.gl/loader-utils';
2
4
  import {VERSION} from './lib/utils/version';
5
+ import type {ImageDataType} from '@loaders.gl/images';
3
6
  import {encodeKTX2BasisTexture} from './lib/encoders/encode-ktx2-basis-texture';
4
7
 
8
+ /** @todo should be in basis sub-object */
9
+ export type KTX2BasisWriterOptions = {
10
+ useSRGB?: boolean;
11
+ qualityLevel?: number;
12
+ encodeUASTC?: boolean;
13
+ mipmaps?: boolean;
14
+ };
15
+
5
16
  /**
6
17
  * Basis Universal Supercompressed GPU Texture.
7
18
  * Spec - https://github.com/Esri/i3s-spec/blob/master/docs/1.8/textureSetDefinitionFormat.cmn.md
8
19
  */
9
- export const KTX2BasisUniversalTextureWriter = {
20
+ export const KTX2BasisWriter: Writer<ImageDataType, unknown, KTX2BasisWriterOptions> = {
10
21
  name: 'Basis Universal Supercompressed GPU Texture',
11
- id: 'ktx2-basis-supercompressed-texture',
22
+ id: 'ktx2-basis-writer',
12
23
  module: 'textures',
13
24
  version: VERSION,
14
25
 
@@ -24,4 +35,4 @@ export const KTX2BasisUniversalTextureWriter = {
24
35
  };
25
36
 
26
37
  // TYPE TESTS - TODO find a better way than exporting junk
27
- export const _TypecheckKTX2TextureWriter: Writer = KTX2BasisUniversalTextureWriter;
38
+ export const _TypecheckKTX2TextureWriter: Writer = KTX2BasisWriter;
@@ -11,7 +11,7 @@ import {loadBasisEncoderModule} from '../parsers/basis-module-loader';
11
11
  export async function encodeKTX2BasisTexture(
12
12
  image: ImageDataType,
13
13
  options: any = {}
14
- ): Promise<Uint8Array> {
14
+ ): Promise<ArrayBuffer> {
15
15
  // TODO remove default values after writer options will be normalized like it done in load module.
16
16
  const {useSRGB = false, qualityLevel = 10, encodeUASTC = false, mipmaps = false} = options;
17
17
  const {BasisEncoder} = await loadBasisEncoderModule(options);
@@ -32,7 +32,7 @@ export async function encodeKTX2BasisTexture(
32
32
 
33
33
  const numOutputBytes = basisEncoder.encode(basisFileData);
34
34
 
35
- const actualKTX2FileData = new Uint8Array(basisFileData.buffer, 0, numOutputBytes);
35
+ const actualKTX2FileData = basisFileData.subarray(0, numOutputBytes).buffer;
36
36
  return actualKTX2FileData;
37
37
  } catch (error) {
38
38
  // eslint-disable-next-line no-console