@loaders.gl/textures 4.0.0-alpha.5 → 4.0.0-alpha.7

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 (316) hide show
  1. package/dist/basis-loader.d.ts +4 -43
  2. package/dist/basis-loader.d.ts.map +1 -1
  3. package/dist/basis-loader.js +34 -24
  4. package/dist/basis-worker-node.js +64152 -0
  5. package/dist/basis-worker.js +51 -18
  6. package/dist/bundle.js +2 -2
  7. package/dist/compressed-texture-loader.d.ts +1 -1
  8. package/dist/compressed-texture-loader.d.ts.map +1 -1
  9. package/dist/compressed-texture-loader.js +59 -36
  10. package/dist/compressed-texture-worker.js +51 -18
  11. package/dist/compressed-texture-writer.d.ts +13 -21
  12. package/dist/compressed-texture-writer.d.ts.map +1 -1
  13. package/dist/compressed-texture-writer.js +33 -21
  14. package/dist/crunch-loader.js +23 -16
  15. package/dist/crunch-worker.js +49 -17
  16. package/dist/dist.min.js +104 -35
  17. package/dist/es5/basis-loader.js +37 -0
  18. package/dist/es5/basis-loader.js.map +1 -0
  19. package/dist/es5/bundle.js +6 -0
  20. package/dist/es5/bundle.js.map +1 -0
  21. package/dist/es5/compressed-texture-loader.js +76 -0
  22. package/dist/es5/compressed-texture-loader.js.map +1 -0
  23. package/dist/es5/compressed-texture-writer.js +28 -0
  24. package/dist/es5/compressed-texture-writer.js.map +1 -0
  25. package/dist/es5/crunch-loader.js +26 -0
  26. package/dist/es5/crunch-loader.js.map +1 -0
  27. package/dist/es5/index.js +131 -0
  28. package/dist/es5/index.js.map +1 -0
  29. package/dist/es5/ktx2-basis-writer.js +26 -0
  30. package/dist/es5/ktx2-basis-writer.js.map +1 -0
  31. package/dist/es5/lib/encoders/encode-ktx.js +12 -0
  32. package/dist/es5/lib/encoders/encode-ktx.js.map +1 -0
  33. package/dist/es5/lib/encoders/encode-ktx2-basis-texture.js +74 -0
  34. package/dist/es5/lib/encoders/encode-ktx2-basis-texture.js.map +1 -0
  35. package/dist/es5/lib/encoders/encode-texture.js +38 -0
  36. package/dist/es5/lib/encoders/encode-texture.js.map +1 -0
  37. package/dist/es5/lib/gl-extensions.js +68 -0
  38. package/dist/es5/lib/gl-extensions.js.map +1 -0
  39. package/dist/es5/lib/parsers/basis-module-loader.js +194 -0
  40. package/dist/es5/lib/parsers/basis-module-loader.js.map +1 -0
  41. package/dist/es5/lib/parsers/crunch-module-loader.js +67 -0
  42. package/dist/es5/lib/parsers/crunch-module-loader.js.map +1 -0
  43. package/dist/es5/lib/parsers/parse-basis.js +270 -0
  44. package/dist/es5/lib/parsers/parse-basis.js.map +1 -0
  45. package/dist/es5/lib/parsers/parse-compressed-texture.js +22 -0
  46. package/dist/es5/lib/parsers/parse-compressed-texture.js.map +1 -0
  47. package/dist/es5/lib/parsers/parse-crunch.js +100 -0
  48. package/dist/es5/lib/parsers/parse-crunch.js.map +1 -0
  49. package/dist/es5/lib/parsers/parse-dds.js +84 -0
  50. package/dist/es5/lib/parsers/parse-dds.js.map +1 -0
  51. package/dist/es5/lib/parsers/parse-ktx.js +34 -0
  52. package/dist/es5/lib/parsers/parse-ktx.js.map +1 -0
  53. package/dist/es5/lib/parsers/parse-npy.js +70 -0
  54. package/dist/es5/lib/parsers/parse-npy.js.map +1 -0
  55. package/dist/es5/lib/parsers/parse-pvr.js +161 -0
  56. package/dist/es5/lib/parsers/parse-pvr.js.map +1 -0
  57. package/dist/es5/lib/texture-api/async-deep-map.js +156 -0
  58. package/dist/es5/lib/texture-api/async-deep-map.js.map +1 -0
  59. package/dist/es5/lib/texture-api/deep-load.js +63 -0
  60. package/dist/es5/lib/texture-api/deep-load.js.map +1 -0
  61. package/dist/es5/lib/texture-api/generate-url.js +20 -0
  62. package/dist/es5/lib/texture-api/generate-url.js.map +1 -0
  63. package/dist/es5/lib/texture-api/load-image-array.js +75 -0
  64. package/dist/es5/lib/texture-api/load-image-array.js.map +1 -0
  65. package/dist/es5/lib/texture-api/load-image-cube.js +136 -0
  66. package/dist/es5/lib/texture-api/load-image-cube.js.map +1 -0
  67. package/dist/es5/lib/texture-api/load-image.js +129 -0
  68. package/dist/es5/lib/texture-api/load-image.js.map +1 -0
  69. package/dist/es5/lib/texture-api/texture-api-types.js +2 -0
  70. package/dist/es5/lib/texture-api/texture-api-types.js.map +1 -0
  71. package/dist/es5/lib/utils/extract-mipmap-images.js +41 -0
  72. package/dist/es5/lib/utils/extract-mipmap-images.js.map +1 -0
  73. package/dist/es5/lib/utils/ktx-format-helper.js +79 -0
  74. package/dist/es5/lib/utils/ktx-format-helper.js.map +1 -0
  75. package/dist/es5/lib/utils/texture-formats.js +54 -0
  76. package/dist/es5/lib/utils/texture-formats.js.map +1 -0
  77. package/dist/es5/lib/utils/version.js +9 -0
  78. package/dist/es5/lib/utils/version.js.map +1 -0
  79. package/dist/es5/libs/basis_encoder.js +21 -0
  80. package/dist/es5/libs/basis_encoder.wasm +0 -0
  81. package/dist/es5/libs/basis_transcoder.js +22 -0
  82. package/dist/{libs → es5}/libs/basis_transcoder.wasm +0 -0
  83. package/dist/es5/npy-loader.js +51 -0
  84. package/dist/es5/npy-loader.js.map +1 -0
  85. package/dist/es5/types.js +2 -0
  86. package/dist/es5/types.js.map +1 -0
  87. package/dist/es5/workers/basis-worker-node.js +7 -0
  88. package/dist/es5/workers/basis-worker-node.js.map +1 -0
  89. package/dist/es5/workers/basis-worker.js +6 -0
  90. package/dist/es5/workers/basis-worker.js.map +1 -0
  91. package/dist/es5/workers/compressed-texture-worker.js +6 -0
  92. package/dist/es5/workers/compressed-texture-worker.js.map +1 -0
  93. package/dist/es5/workers/crunch-worker.js +19 -0
  94. package/dist/es5/workers/crunch-worker.js.map +1 -0
  95. package/dist/es5/workers/ktx2-basis-writer-worker-node.js +54 -0
  96. package/dist/es5/workers/ktx2-basis-writer-worker-node.js.map +1 -0
  97. package/dist/es5/workers/ktx2-basis-writer-worker.js +53 -0
  98. package/dist/es5/workers/ktx2-basis-writer-worker.js.map +1 -0
  99. package/dist/es5/workers/npy-worker.js +6 -0
  100. package/dist/es5/workers/npy-worker.js.map +1 -0
  101. package/dist/esm/basis-loader.js +26 -0
  102. package/dist/esm/basis-loader.js.map +1 -0
  103. package/dist/esm/bundle.js +4 -0
  104. package/dist/esm/bundle.js.map +1 -0
  105. package/dist/esm/compressed-texture-loader.js +41 -0
  106. package/dist/esm/compressed-texture-loader.js.map +1 -0
  107. package/dist/esm/compressed-texture-writer.js +21 -0
  108. package/dist/esm/compressed-texture-writer.js.map +1 -0
  109. package/dist/esm/crunch-loader.js +18 -0
  110. package/dist/esm/crunch-loader.js.map +1 -0
  111. package/dist/esm/index.js +29 -0
  112. package/dist/esm/index.js.map +1 -0
  113. package/dist/{ktx2-basis-universal-texture-writer.js → esm/ktx2-basis-writer.js} +4 -4
  114. package/dist/esm/ktx2-basis-writer.js.map +1 -0
  115. package/dist/esm/lib/encoders/encode-ktx.js +6 -0
  116. package/dist/esm/lib/encoders/encode-ktx.js.map +1 -0
  117. package/dist/esm/lib/encoders/encode-ktx2-basis-texture.js +35 -0
  118. package/dist/esm/lib/encoders/encode-ktx2-basis-texture.js.map +1 -0
  119. package/dist/esm/lib/encoders/encode-texture.js +12 -0
  120. package/dist/esm/lib/encoders/encode-texture.js.map +1 -0
  121. package/dist/esm/lib/gl-extensions.js +61 -0
  122. package/dist/esm/lib/gl-extensions.js.map +1 -0
  123. package/dist/esm/lib/parsers/basis-module-loader.js +77 -0
  124. package/dist/esm/lib/parsers/basis-module-loader.js.map +1 -0
  125. package/dist/esm/lib/parsers/crunch-module-loader.js +19 -0
  126. package/dist/esm/lib/parsers/crunch-module-loader.js.map +1 -0
  127. package/dist/esm/lib/parsers/parse-basis.js +231 -0
  128. package/dist/esm/lib/parsers/parse-basis.js.map +1 -0
  129. package/dist/esm/lib/parsers/parse-compressed-texture.js +16 -0
  130. package/dist/esm/lib/parsers/parse-compressed-texture.js.map +1 -0
  131. package/dist/esm/lib/parsers/parse-crunch.js +75 -0
  132. package/dist/esm/lib/parsers/parse-crunch.js.map +1 -0
  133. package/dist/esm/lib/parsers/parse-dds.js +75 -0
  134. package/dist/esm/lib/parsers/parse-dds.js.map +1 -0
  135. package/dist/esm/lib/parsers/parse-ktx.js +25 -0
  136. package/dist/esm/lib/parsers/parse-ktx.js.map +1 -0
  137. package/dist/esm/lib/parsers/parse-npy.js +63 -0
  138. package/dist/esm/lib/parsers/parse-npy.js.map +1 -0
  139. package/dist/esm/lib/parsers/parse-pvr.js +154 -0
  140. package/dist/esm/lib/parsers/parse-pvr.js.map +1 -0
  141. package/dist/esm/lib/texture-api/async-deep-map.js +34 -0
  142. package/dist/esm/lib/texture-api/async-deep-map.js.map +1 -0
  143. package/dist/esm/lib/texture-api/deep-load.js +10 -0
  144. package/dist/esm/lib/texture-api/deep-load.js.map +1 -0
  145. package/dist/esm/lib/texture-api/generate-url.js +13 -0
  146. package/dist/esm/lib/texture-api/generate-url.js.map +1 -0
  147. package/dist/esm/lib/texture-api/load-image-array.js +20 -0
  148. package/dist/esm/lib/texture-api/load-image-array.js.map +1 -0
  149. package/dist/esm/lib/texture-api/load-image-cube.js +63 -0
  150. package/dist/esm/lib/texture-api/load-image-cube.js.map +1 -0
  151. package/dist/esm/lib/texture-api/load-image.js +46 -0
  152. package/dist/esm/lib/texture-api/load-image.js.map +1 -0
  153. package/dist/esm/lib/texture-api/texture-api-types.js +2 -0
  154. package/dist/esm/lib/texture-api/texture-api-types.js.map +1 -0
  155. package/dist/esm/lib/utils/extract-mipmap-images.js +35 -0
  156. package/dist/esm/lib/utils/extract-mipmap-images.js.map +1 -0
  157. package/dist/esm/lib/utils/ktx-format-helper.js +73 -0
  158. package/dist/esm/lib/utils/ktx-format-helper.js.map +1 -0
  159. package/dist/esm/lib/utils/texture-formats.js +36 -0
  160. package/dist/esm/lib/utils/texture-formats.js.map +1 -0
  161. package/dist/esm/lib/utils/version.js +2 -0
  162. package/dist/esm/lib/utils/version.js.map +1 -0
  163. package/dist/esm/libs/README.md +9 -0
  164. package/dist/esm/libs/basis_encoder.js +21 -0
  165. package/dist/esm/libs/basis_encoder.wasm +0 -0
  166. package/dist/esm/libs/basis_transcoder.js +22 -0
  167. package/dist/esm/libs/basis_transcoder.wasm +0 -0
  168. package/dist/esm/libs/crunch.js +136 -0
  169. package/dist/esm/npy-loader.js +22 -0
  170. package/dist/esm/npy-loader.js.map +1 -0
  171. package/dist/esm/types.js +2 -0
  172. package/dist/esm/types.js.map +1 -0
  173. package/dist/esm/workers/basis-worker-node.js +5 -0
  174. package/dist/esm/workers/basis-worker-node.js.map +1 -0
  175. package/dist/esm/workers/basis-worker.js +4 -0
  176. package/dist/esm/workers/basis-worker.js.map +1 -0
  177. package/dist/esm/workers/compressed-texture-worker.js +4 -0
  178. package/dist/esm/workers/compressed-texture-worker.js.map +1 -0
  179. package/dist/esm/workers/crunch-worker.js +9 -0
  180. package/dist/esm/workers/crunch-worker.js.map +1 -0
  181. package/dist/esm/workers/ktx2-basis-writer-worker-node.js +32 -0
  182. package/dist/esm/workers/ktx2-basis-writer-worker-node.js.map +1 -0
  183. package/dist/esm/workers/ktx2-basis-writer-worker.js +31 -0
  184. package/dist/esm/workers/ktx2-basis-writer-worker.js.map +1 -0
  185. package/dist/esm/workers/npy-worker.js +4 -0
  186. package/dist/esm/workers/npy-worker.js.map +1 -0
  187. package/dist/index.d.ts +15 -1
  188. package/dist/index.d.ts.map +1 -1
  189. package/dist/index.js +52 -14
  190. package/dist/ktx2-basis-writer-worker-node.js +63611 -0
  191. package/dist/ktx2-basis-writer-worker.js +343 -0
  192. package/dist/ktx2-basis-writer.d.ts +16 -0
  193. package/dist/ktx2-basis-writer.d.ts.map +1 -0
  194. package/dist/ktx2-basis-writer.js +26 -0
  195. package/dist/lib/encoders/encode-ktx.js +9 -5
  196. package/dist/lib/encoders/encode-ktx2-basis-texture.js +40 -34
  197. package/dist/lib/encoders/encode-texture.d.ts +2 -3
  198. package/dist/lib/encoders/encode-texture.d.ts.map +1 -1
  199. package/dist/lib/encoders/encode-texture.js +26 -11
  200. package/dist/lib/gl-extensions.js +71 -60
  201. package/dist/lib/parsers/basis-module-loader.js +100 -76
  202. package/dist/lib/parsers/crunch-module-loader.js +30 -18
  203. package/dist/lib/parsers/parse-basis.d.ts +1 -1
  204. package/dist/lib/parsers/parse-basis.d.ts.map +1 -1
  205. package/dist/lib/parsers/parse-basis.js +225 -240
  206. package/dist/lib/parsers/parse-compressed-texture.js +25 -18
  207. package/dist/lib/parsers/parse-crunch.js +96 -82
  208. package/dist/lib/parsers/parse-dds.js +93 -63
  209. package/dist/lib/parsers/parse-ktx.js +44 -23
  210. package/dist/lib/parsers/parse-npy.d.ts +10 -5
  211. package/dist/lib/parsers/parse-npy.d.ts.map +1 -1
  212. package/dist/lib/parsers/parse-npy.js +76 -71
  213. package/dist/lib/parsers/parse-pvr.js +212 -133
  214. package/dist/lib/texture-api/async-deep-map.d.ts +2 -2
  215. package/dist/lib/texture-api/async-deep-map.d.ts.map +1 -1
  216. package/dist/lib/texture-api/async-deep-map.js +35 -33
  217. package/dist/lib/texture-api/deep-load.d.ts +2 -2
  218. package/dist/lib/texture-api/deep-load.d.ts.map +1 -1
  219. package/dist/lib/texture-api/deep-load.js +14 -8
  220. package/dist/lib/texture-api/generate-url.js +16 -13
  221. package/dist/lib/texture-api/load-image-array.js +19 -18
  222. package/dist/lib/texture-api/load-image-cube.d.ts +1 -1
  223. package/dist/lib/texture-api/load-image-cube.d.ts.map +1 -1
  224. package/dist/lib/texture-api/load-image-cube.js +39 -55
  225. package/dist/lib/texture-api/load-image.js +38 -43
  226. package/dist/lib/texture-api/texture-api-types.d.ts +2 -2
  227. package/dist/lib/texture-api/texture-api-types.d.ts.map +1 -1
  228. package/dist/lib/texture-api/texture-api-types.js +3 -2
  229. package/dist/lib/utils/extract-mipmap-images.d.ts +1 -1
  230. package/dist/lib/utils/extract-mipmap-images.d.ts.map +1 -1
  231. package/dist/lib/utils/extract-mipmap-images.js +45 -36
  232. package/dist/lib/utils/ktx-format-helper.js +122 -70
  233. package/dist/lib/utils/texture-formats.js +42 -30
  234. package/dist/lib/utils/version.js +8 -2
  235. package/dist/libs/basis_encoder.js +20 -21
  236. package/dist/libs/basis_encoder.wasm +0 -0
  237. package/dist/libs/basis_transcoder.js +14 -13
  238. package/dist/libs/basis_transcoder.wasm +0 -0
  239. package/dist/npy-loader.d.ts +6 -37
  240. package/dist/npy-loader.d.ts.map +1 -1
  241. package/dist/npy-loader.js +28 -20
  242. package/dist/npy-worker.js +60 -31
  243. package/dist/types.js +1 -2
  244. package/dist/workers/basis-worker-node.d.ts +2 -0
  245. package/dist/workers/basis-worker-node.d.ts.map +1 -0
  246. package/dist/workers/basis-worker-node.js +7 -0
  247. package/dist/workers/basis-worker.js +5 -4
  248. package/dist/workers/compressed-texture-worker.js +5 -4
  249. package/dist/workers/crunch-worker.js +13 -7
  250. package/dist/workers/ktx2-basis-writer-worker-node.d.ts +2 -0
  251. package/dist/workers/ktx2-basis-writer-worker-node.d.ts.map +1 -0
  252. package/dist/workers/ktx2-basis-writer-worker-node.js +28 -0
  253. package/dist/workers/ktx2-basis-writer-worker.d.ts +2 -0
  254. package/dist/workers/ktx2-basis-writer-worker.d.ts.map +1 -0
  255. package/dist/workers/ktx2-basis-writer-worker.js +26 -0
  256. package/dist/workers/npy-worker.js +5 -4
  257. package/package.json +21 -15
  258. package/src/basis-loader.ts +5 -7
  259. package/src/compressed-texture-writer.ts +21 -3
  260. package/src/index.ts +18 -1
  261. package/src/{ktx2-basis-universal-texture-writer.ts → ktx2-basis-writer.ts} +14 -3
  262. package/src/lib/encoders/encode-texture.ts +2 -1
  263. package/src/lib/parsers/parse-basis.ts +1 -1
  264. package/src/lib/parsers/parse-npy.ts +52 -31
  265. package/src/libs/basis_encoder.js +20 -21
  266. package/src/libs/basis_encoder.wasm +0 -0
  267. package/src/libs/basis_transcoder.js +14 -13
  268. package/src/libs/basis_transcoder.wasm +0 -0
  269. package/src/npy-loader.ts +7 -7
  270. package/src/workers/basis-worker-node.ts +6 -0
  271. package/src/workers/ktx2-basis-writer-worker-node.ts +27 -0
  272. package/src/workers/ktx2-basis-writer-worker.ts +25 -0
  273. package/dist/basis-loader.js.map +0 -1
  274. package/dist/bundle.js.map +0 -1
  275. package/dist/compressed-texture-loader.js.map +0 -1
  276. package/dist/compressed-texture-writer.js.map +0 -1
  277. package/dist/crunch-loader.js.map +0 -1
  278. package/dist/index.js.map +0 -1
  279. package/dist/ktx2-basis-universal-texture-writer.d.ts +0 -22
  280. package/dist/ktx2-basis-universal-texture-writer.d.ts.map +0 -1
  281. package/dist/ktx2-basis-universal-texture-writer.js.map +0 -1
  282. package/dist/lib/encoders/encode-ktx.js.map +0 -1
  283. package/dist/lib/encoders/encode-ktx2-basis-texture.js.map +0 -1
  284. package/dist/lib/encoders/encode-texture.js.map +0 -1
  285. package/dist/lib/gl-extensions.js.map +0 -1
  286. package/dist/lib/parsers/basis-module-loader.js.map +0 -1
  287. package/dist/lib/parsers/crunch-module-loader.js.map +0 -1
  288. package/dist/lib/parsers/parse-basis.js.map +0 -1
  289. package/dist/lib/parsers/parse-compressed-texture.js.map +0 -1
  290. package/dist/lib/parsers/parse-crunch.js.map +0 -1
  291. package/dist/lib/parsers/parse-dds.js.map +0 -1
  292. package/dist/lib/parsers/parse-ktx.js.map +0 -1
  293. package/dist/lib/parsers/parse-npy.js.map +0 -1
  294. package/dist/lib/parsers/parse-pvr.js.map +0 -1
  295. package/dist/lib/texture-api/async-deep-map.js.map +0 -1
  296. package/dist/lib/texture-api/deep-load.js.map +0 -1
  297. package/dist/lib/texture-api/generate-url.js.map +0 -1
  298. package/dist/lib/texture-api/load-image-array.js.map +0 -1
  299. package/dist/lib/texture-api/load-image-cube.js.map +0 -1
  300. package/dist/lib/texture-api/load-image.js.map +0 -1
  301. package/dist/lib/texture-api/texture-api-types.js.map +0 -1
  302. package/dist/lib/utils/extract-mipmap-images.js.map +0 -1
  303. package/dist/lib/utils/ktx-format-helper.js.map +0 -1
  304. package/dist/lib/utils/texture-formats.js.map +0 -1
  305. package/dist/lib/utils/version.js.map +0 -1
  306. package/dist/libs/libs/basis_encoder.js +0 -22
  307. package/dist/libs/libs/basis_encoder.wasm +0 -0
  308. package/dist/libs/libs/basis_transcoder.js +0 -21
  309. package/dist/npy-loader.js.map +0 -1
  310. package/dist/types.js.map +0 -1
  311. package/dist/workers/basis-worker.js.map +0 -1
  312. package/dist/workers/compressed-texture-worker.js.map +0 -1
  313. package/dist/workers/crunch-worker.js.map +0 -1
  314. package/dist/workers/npy-worker.js.map +0 -1
  315. /package/dist/{libs → es5}/libs/README.md +0 -0
  316. /package/dist/{libs → es5}/libs/crunch.js +0 -0
@@ -28,7 +28,7 @@
28
28
  });
29
29
 
30
30
  // ../worker-utils/src/lib/env-utils/version.ts
31
- var VERSION = true ? "4.0.0-alpha.5" : DEFAULT_VERSION;
31
+ var VERSION = true ? "4.0.0-alpha.7" : DEFAULT_VERSION;
32
32
  if (false) {
33
33
  console.error("loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.");
34
34
  }
@@ -93,16 +93,33 @@
93
93
  }
94
94
 
95
95
  // ../worker-utils/src/lib/worker-farm/worker-body.ts
96
+ function getParentPort() {
97
+ let parentPort;
98
+ try {
99
+ eval("globalThis.parentPort = require('worker_threads').parentPort");
100
+ parentPort = globalThis.parentPort;
101
+ } catch {
102
+ }
103
+ return parentPort;
104
+ }
96
105
  var onMessageWrapperMap = new Map();
97
106
  var WorkerBody = class {
107
+ static inWorkerThread() {
108
+ return typeof self !== "undefined" || Boolean(getParentPort());
109
+ }
98
110
  static set onmessage(onMessage) {
99
- self.onmessage = (message) => {
100
- if (!isKnownMessage(message)) {
101
- return;
102
- }
103
- const { type, payload } = message.data;
111
+ function handleMessage(message) {
112
+ const parentPort3 = getParentPort();
113
+ const { type, payload } = parentPort3 ? message : message.data;
104
114
  onMessage(type, payload);
105
- };
115
+ }
116
+ const parentPort2 = getParentPort();
117
+ if (parentPort2) {
118
+ parentPort2.on("message", handleMessage);
119
+ parentPort2.on("exit", () => console.debug("Node worker closing"));
120
+ } else {
121
+ globalThis.onmessage = handleMessage;
122
+ }
106
123
  }
107
124
  static addEventListener(onMessage) {
108
125
  let onMessageWrapper = onMessageWrapperMap.get(onMessage);
@@ -111,22 +128,36 @@
111
128
  if (!isKnownMessage(message)) {
112
129
  return;
113
130
  }
114
- const { type, payload } = message.data;
131
+ const parentPort3 = getParentPort();
132
+ const { type, payload } = parentPort3 ? message : message.data;
115
133
  onMessage(type, payload);
116
134
  };
117
135
  }
118
- self.addEventListener("message", onMessageWrapper);
136
+ const parentPort2 = getParentPort();
137
+ if (parentPort2) {
138
+ console.error("not implemented");
139
+ } else {
140
+ globalThis.addEventListener("message", onMessageWrapper);
141
+ }
119
142
  }
120
143
  static removeEventListener(onMessage) {
121
144
  const onMessageWrapper = onMessageWrapperMap.get(onMessage);
122
145
  onMessageWrapperMap.delete(onMessage);
123
- self.removeEventListener("message", onMessageWrapper);
146
+ const parentPort2 = getParentPort();
147
+ if (parentPort2) {
148
+ console.error("not implemented");
149
+ } else {
150
+ globalThis.removeEventListener("message", onMessageWrapper);
151
+ }
124
152
  }
125
153
  static postMessage(type, payload) {
126
- if (self) {
127
- const data = { source: "loaders.gl", type, payload };
128
- const transferList = getTransferList(payload);
129
- self.postMessage(data, transferList);
154
+ const data = { source: "loaders.gl", type, payload };
155
+ const transferList = getTransferList(payload);
156
+ const parentPort2 = getParentPort();
157
+ if (parentPort2) {
158
+ parentPort2.postMessage(data, transferList);
159
+ } else {
160
+ globalThis.postMessage(data, transferList);
130
161
  }
131
162
  }
132
163
  };
@@ -208,19 +239,20 @@
208
239
  // ../loader-utils/src/lib/worker-loader-utils/create-loader-worker.ts
209
240
  var requestId = 0;
210
241
  function createLoaderWorker(loader) {
211
- if (typeof self === "undefined") {
242
+ if (!WorkerBody.inWorkerThread()) {
212
243
  return;
213
244
  }
214
245
  WorkerBody.onmessage = async (type, payload) => {
215
246
  switch (type) {
216
247
  case "process":
217
248
  try {
218
- const { input, options = {} } = payload;
249
+ const { input, options = {}, context = {} } = payload;
219
250
  const result = await parseData({
220
251
  loader,
221
252
  arrayBuffer: input,
222
253
  options,
223
254
  context: {
255
+ ...context,
224
256
  parse: parseOnMainThread
225
257
  }
226
258
  });
@@ -280,10 +312,10 @@
280
312
  }
281
313
 
282
314
  // src/lib/utils/version.ts
283
- var VERSION3 = true ? "4.0.0-alpha.5" : "beta";
315
+ var VERSION3 = true ? "4.0.0-alpha.7" : "beta";
284
316
 
285
317
  // src/lib/parsers/basis-module-loader.ts
286
- var VERSION4 = true ? "4.0.0-alpha.5" : "beta";
318
+ var VERSION4 = true ? "4.0.0-alpha.7" : "beta";
287
319
  var BASIS_CDN_ENCODER_WASM = `https://unpkg.com/@loaders.gl/textures@${VERSION4}/dist/libs/basis_encoder.wasm`;
288
320
  var BASIS_CDN_ENCODER_JS = `https://unpkg.com/@loaders.gl/textures@${VERSION4}/dist/libs/basis_encoder.js`;
289
321
  var loadBasisTranscoderPromise;
@@ -640,6 +672,7 @@
640
672
  height,
641
673
  data: decodedData,
642
674
  compressed,
675
+ levelSize: decodedSize,
643
676
  hasAlpha: alphaFlag,
644
677
  format
645
678
  };
package/dist/bundle.js CHANGED
@@ -1,5 +1,5 @@
1
+ "use strict";
2
+ // @ts-nocheck
1
3
  const moduleExports = require('./index');
2
-
3
4
  globalThis.loaders = globalThis.loaders || {};
4
5
  module.exports = Object.assign(globalThis.loaders, moduleExports);
5
- //# sourceMappingURL=bundle.js.map
@@ -1,5 +1,5 @@
1
1
  import type { Loader, LoaderWithParser } from '@loaders.gl/loader-utils';
2
- export declare type TextureLoaderOptions = {
2
+ export type TextureLoaderOptions = {
3
3
  'compressed-texture'?: {
4
4
  libraryPath?: string;
5
5
  useBasis?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"compressed-texture-loader.d.ts","sourceRoot":"","sources":["../src/compressed-texture-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAE,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAKvE,oBAAY,oBAAoB,GAAG;IACjC,oBAAoB,CAAC,EAAE;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;CACH,CAAC;AASF;;GAEG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;CAqBzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;CAiBnC,CAAC;AAGF,eAAO,MAAM,uCAAuC,EAAE,MAAsC,CAAC;AAC7F,eAAO,MAAM,iCAAiC,EAAE,gBAA0C,CAAC"}
1
+ {"version":3,"file":"compressed-texture-loader.d.ts","sourceRoot":"","sources":["../src/compressed-texture-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAE,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAKvE,MAAM,MAAM,oBAAoB,GAAG;IACjC,oBAAoB,CAAC,EAAE;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;CACH,CAAC;AASF;;GAEG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;CAqBzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;CAiBnC,CAAC;AAGF,eAAO,MAAM,uCAAuC,EAAE,MAAsC,CAAC;AAC7F,eAAO,MAAM,iCAAiC,EAAE,gBAA0C,CAAC"}
@@ -1,41 +1,64 @@
1
- import { VERSION } from './lib/utils/version';
2
- import { parseCompressedTexture } from './lib/parsers/parse-compressed-texture';
3
- import parseBasis from './lib/parsers/parse-basis';
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports._TypecheckCompressedTextureLoader = exports._TypecheckCompressedTextureWorkerLoader = exports.CompressedTextureLoader = exports.CompressedTextureWorkerLoader = void 0;
7
+ const version_1 = require("./lib/utils/version");
8
+ const parse_compressed_texture_1 = require("./lib/parsers/parse-compressed-texture");
9
+ const parse_basis_1 = __importDefault(require("./lib/parsers/parse-basis"));
4
10
  const DEFAULT_TEXTURE_LOADER_OPTIONS = {
5
- 'compressed-texture': {
6
- libraryPath: 'libs/',
7
- useBasis: false
8
- }
11
+ 'compressed-texture': {
12
+ libraryPath: 'libs/',
13
+ useBasis: false
14
+ }
9
15
  };
10
- export const CompressedTextureWorkerLoader = {
11
- name: 'Texture Containers',
12
- id: 'compressed-texture',
13
- module: 'textures',
14
- version: VERSION,
15
- worker: true,
16
- extensions: ['ktx', 'ktx2', 'dds', 'pvr'],
17
- mimeTypes: ['image/ktx2', 'image/ktx', 'image/vnd-ms.dds', 'image/x-dds', 'application/octet-stream'],
18
- binary: true,
19
- options: DEFAULT_TEXTURE_LOADER_OPTIONS
16
+ /**
17
+ * Worker Loader for KTX, DDS, and PVR texture container formats
18
+ */
19
+ exports.CompressedTextureWorkerLoader = {
20
+ name: 'Texture Containers',
21
+ id: 'compressed-texture',
22
+ module: 'textures',
23
+ version: version_1.VERSION,
24
+ worker: true,
25
+ extensions: [
26
+ 'ktx',
27
+ 'ktx2',
28
+ 'dds',
29
+ 'pvr' // WEBGL_compressed_texture_pvrtc
30
+ ],
31
+ mimeTypes: [
32
+ 'image/ktx2',
33
+ 'image/ktx',
34
+ 'image/vnd-ms.dds',
35
+ 'image/x-dds',
36
+ 'application/octet-stream'
37
+ ],
38
+ binary: true,
39
+ options: DEFAULT_TEXTURE_LOADER_OPTIONS
20
40
  };
21
- export const CompressedTextureLoader = { ...CompressedTextureWorkerLoader,
22
- parse: async (arrayBuffer, options) => {
23
- if (options['compressed-texture'].useBasis) {
24
- options.basis = {
25
- format: {
26
- alpha: 'BC3',
27
- noAlpha: 'BC1'
28
- },
29
- ...options.basis,
30
- containerFormat: 'ktx2',
31
- module: 'encoder'
32
- };
33
- return (await parseBasis(arrayBuffer, options))[0];
41
+ /**
42
+ * Loader for KTX, DDS, and PVR texture container formats
43
+ */
44
+ exports.CompressedTextureLoader = {
45
+ ...exports.CompressedTextureWorkerLoader,
46
+ parse: async (arrayBuffer, options) => {
47
+ if (options['compressed-texture'].useBasis) {
48
+ options.basis = {
49
+ format: {
50
+ alpha: 'BC3',
51
+ noAlpha: 'BC1'
52
+ },
53
+ ...options.basis,
54
+ containerFormat: 'ktx2',
55
+ module: 'encoder'
56
+ };
57
+ return (await (0, parse_basis_1.default)(arrayBuffer, options))[0];
58
+ }
59
+ return (0, parse_compressed_texture_1.parseCompressedTexture)(arrayBuffer);
34
60
  }
35
-
36
- return parseCompressedTexture(arrayBuffer);
37
- }
38
61
  };
39
- export const _TypecheckCompressedTextureWorkerLoader = CompressedTextureWorkerLoader;
40
- export const _TypecheckCompressedTextureLoader = CompressedTextureLoader;
41
- //# sourceMappingURL=compressed-texture-loader.js.map
62
+ // TYPE TESTS - TODO find a better way than exporting junk
63
+ exports._TypecheckCompressedTextureWorkerLoader = exports.CompressedTextureWorkerLoader;
64
+ exports._TypecheckCompressedTextureLoader = exports.CompressedTextureLoader;
@@ -35,7 +35,7 @@
35
35
  }
36
36
 
37
37
  // ../worker-utils/src/lib/env-utils/version.ts
38
- var VERSION = true ? "4.0.0-alpha.5" : DEFAULT_VERSION;
38
+ var VERSION = true ? "4.0.0-alpha.7" : DEFAULT_VERSION;
39
39
  if (false) {
40
40
  console.error("loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.");
41
41
  }
@@ -100,16 +100,33 @@
100
100
  }
101
101
 
102
102
  // ../worker-utils/src/lib/worker-farm/worker-body.ts
103
+ function getParentPort() {
104
+ let parentPort;
105
+ try {
106
+ eval("globalThis.parentPort = require('worker_threads').parentPort");
107
+ parentPort = globalThis.parentPort;
108
+ } catch {
109
+ }
110
+ return parentPort;
111
+ }
103
112
  var onMessageWrapperMap = new Map();
104
113
  var WorkerBody = class {
114
+ static inWorkerThread() {
115
+ return typeof self !== "undefined" || Boolean(getParentPort());
116
+ }
105
117
  static set onmessage(onMessage) {
106
- self.onmessage = (message) => {
107
- if (!isKnownMessage(message)) {
108
- return;
109
- }
110
- const { type, payload } = message.data;
118
+ function handleMessage(message) {
119
+ const parentPort3 = getParentPort();
120
+ const { type, payload } = parentPort3 ? message : message.data;
111
121
  onMessage(type, payload);
112
- };
122
+ }
123
+ const parentPort2 = getParentPort();
124
+ if (parentPort2) {
125
+ parentPort2.on("message", handleMessage);
126
+ parentPort2.on("exit", () => console.debug("Node worker closing"));
127
+ } else {
128
+ globalThis.onmessage = handleMessage;
129
+ }
113
130
  }
114
131
  static addEventListener(onMessage) {
115
132
  let onMessageWrapper = onMessageWrapperMap.get(onMessage);
@@ -118,22 +135,36 @@
118
135
  if (!isKnownMessage(message)) {
119
136
  return;
120
137
  }
121
- const { type, payload } = message.data;
138
+ const parentPort3 = getParentPort();
139
+ const { type, payload } = parentPort3 ? message : message.data;
122
140
  onMessage(type, payload);
123
141
  };
124
142
  }
125
- self.addEventListener("message", onMessageWrapper);
143
+ const parentPort2 = getParentPort();
144
+ if (parentPort2) {
145
+ console.error("not implemented");
146
+ } else {
147
+ globalThis.addEventListener("message", onMessageWrapper);
148
+ }
126
149
  }
127
150
  static removeEventListener(onMessage) {
128
151
  const onMessageWrapper = onMessageWrapperMap.get(onMessage);
129
152
  onMessageWrapperMap.delete(onMessage);
130
- self.removeEventListener("message", onMessageWrapper);
153
+ const parentPort2 = getParentPort();
154
+ if (parentPort2) {
155
+ console.error("not implemented");
156
+ } else {
157
+ globalThis.removeEventListener("message", onMessageWrapper);
158
+ }
131
159
  }
132
160
  static postMessage(type, payload) {
133
- if (self) {
134
- const data = { source: "loaders.gl", type, payload };
135
- const transferList = getTransferList(payload);
136
- self.postMessage(data, transferList);
161
+ const data = { source: "loaders.gl", type, payload };
162
+ const transferList = getTransferList(payload);
163
+ const parentPort2 = getParentPort();
164
+ if (parentPort2) {
165
+ parentPort2.postMessage(data, transferList);
166
+ } else {
167
+ globalThis.postMessage(data, transferList);
137
168
  }
138
169
  }
139
170
  };
@@ -215,19 +246,20 @@
215
246
  // ../loader-utils/src/lib/worker-loader-utils/create-loader-worker.ts
216
247
  var requestId = 0;
217
248
  function createLoaderWorker(loader) {
218
- if (typeof self === "undefined") {
249
+ if (!WorkerBody.inWorkerThread()) {
219
250
  return;
220
251
  }
221
252
  WorkerBody.onmessage = async (type, payload) => {
222
253
  switch (type) {
223
254
  case "process":
224
255
  try {
225
- const { input, options = {} } = payload;
256
+ const { input, options = {}, context = {} } = payload;
226
257
  const result = await parseData({
227
258
  loader,
228
259
  arrayBuffer: input,
229
260
  options,
230
261
  context: {
262
+ ...context,
231
263
  parse: parseOnMainThread
232
264
  }
233
265
  });
@@ -287,7 +319,7 @@
287
319
  }
288
320
 
289
321
  // src/lib/utils/version.ts
290
- var VERSION3 = true ? "4.0.0-alpha.5" : "beta";
322
+ var VERSION3 = true ? "4.0.0-alpha.7" : "beta";
291
323
 
292
324
  // ../../node_modules/ktx-parse/dist/ktx-parse.modern.js
293
325
  var t = new Uint8Array([0]);
@@ -875,7 +907,7 @@
875
907
  }
876
908
 
877
909
  // src/lib/parsers/basis-module-loader.ts
878
- var VERSION4 = true ? "4.0.0-alpha.5" : "beta";
910
+ var VERSION4 = true ? "4.0.0-alpha.7" : "beta";
879
911
  var BASIS_CDN_ENCODER_WASM = `https://unpkg.com/@loaders.gl/textures@${VERSION4}/dist/libs/basis_encoder.wasm`;
880
912
  var BASIS_CDN_ENCODER_JS = `https://unpkg.com/@loaders.gl/textures@${VERSION4}/dist/libs/basis_encoder.js`;
881
913
  var loadBasisTranscoderPromise;
@@ -1121,6 +1153,7 @@
1121
1153
  height,
1122
1154
  data: decodedData,
1123
1155
  compressed,
1156
+ levelSize: decodedSize,
1124
1157
  hasAlpha: alphaFlag,
1125
1158
  format
1126
1159
  };
@@ -1,25 +1,17 @@
1
- import type { Writer } from '@loaders.gl/loader-utils';
2
- import { encodeImageURLToCompressedTextureURL } from './lib/encoders/encode-texture';
1
+ import type { Writer, WriterOptions } from '@loaders.gl/loader-utils';
2
+ export type CompressedTextureWriterOptions = WriterOptions & {
3
+ cwd?: string;
4
+ texture?: {
5
+ format: string;
6
+ compression: string;
7
+ quality: string;
8
+ mipmap: boolean;
9
+ flipY: boolean;
10
+ toolFlags: string;
11
+ };
12
+ };
3
13
  /**
4
14
  * DDS Texture Container Exporter
5
15
  */
6
- export declare const CompressedTextureWriter: {
7
- name: string;
8
- id: string;
9
- module: string;
10
- version: any;
11
- extensions: string[];
12
- options: {
13
- texture: {
14
- format: string;
15
- compression: string;
16
- quality: string;
17
- mipmap: boolean;
18
- flipY: boolean;
19
- toolFlags: string;
20
- };
21
- };
22
- encodeURLtoURL: typeof encodeImageURLToCompressedTextureURL;
23
- };
24
- export declare const _TypecheckCompressedTextureWriter: Writer;
16
+ export declare const CompressedTextureWriter: Writer<unknown, unknown, CompressedTextureWriterOptions>;
25
17
  //# sourceMappingURL=compressed-texture-writer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compressed-texture-writer.d.ts","sourceRoot":"","sources":["../src/compressed-texture-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAC,oCAAoC,EAAC,MAAM,+BAA+B,CAAC;AAEnF;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;CAoBnC,CAAC;AAGF,eAAO,MAAM,iCAAiC,EAAE,MAAgC,CAAC"}
1
+ {"version":3,"file":"compressed-texture-writer.d.ts","sourceRoot":"","sources":["../src/compressed-texture-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAIpE,MAAM,MAAM,8BAA8B,GAAG,aAAa,GAAG;IAC3D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,OAAO,CAAC;QAChB,KAAK,EAAE,OAAO,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,8BAA8B,CAoB5F,CAAC"}
@@ -1,22 +1,34 @@
1
- import { VERSION } from './lib/utils/version';
2
- import { encodeImageURLToCompressedTextureURL } from './lib/encoders/encode-texture';
3
- export const CompressedTextureWriter = {
4
- name: 'DDS Texture Container',
5
- id: 'dds',
6
- module: 'textures',
7
- version: VERSION,
8
- extensions: ['dds'],
9
- options: {
10
- texture: {
11
- format: 'auto',
12
- compression: 'auto',
13
- quality: 'auto',
14
- mipmap: false,
15
- flipY: false,
16
- toolFlags: ''
17
- }
18
- },
19
- encodeURLtoURL: encodeImageURLToCompressedTextureURL
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CompressedTextureWriter = void 0;
4
+ const version_1 = require("./lib/utils/version");
5
+ const encode_texture_1 = require("./lib/encoders/encode-texture");
6
+ /**
7
+ * DDS Texture Container Exporter
8
+ */
9
+ exports.CompressedTextureWriter = {
10
+ name: 'DDS Texture Container',
11
+ id: 'dds',
12
+ module: 'textures',
13
+ version: version_1.VERSION,
14
+ extensions: ['dds'],
15
+ options: {
16
+ texture: {
17
+ format: 'auto',
18
+ compression: 'auto',
19
+ quality: 'auto',
20
+ mipmap: false,
21
+ flipY: false,
22
+ toolFlags: ''
23
+ }
24
+ },
25
+ encodeURLtoURL: encode_texture_1.encodeImageURLToCompressedTextureURL
20
26
  };
21
- export const _TypecheckCompressedTextureWriter = CompressedTextureWriter;
22
- //# sourceMappingURL=compressed-texture-writer.js.map
27
+ // TYPE TESTS - TODO find a better way than exporting junk
28
+ // export const _TypecheckCompressedTextureWriter: typeof CompressedTextureWriter & {
29
+ // encodeURLtoURL: (
30
+ // inputUrl: string,
31
+ // outputUrl: string,
32
+ // options?: CompressedTextureWriterOptions
33
+ // ) => Promise<string>;
34
+ // } = CompressedTextureWriter;
@@ -1,18 +1,25 @@
1
- import { VERSION } from './lib/utils/version';
2
- export const CrunchLoader = {
3
- id: 'crunch',
4
- name: 'Crunch',
5
- module: 'textures',
6
- version: VERSION,
7
- worker: true,
8
- extensions: ['crn'],
9
- mimeTypes: ['image/crn', 'image/x-crn', 'application/octet-stream'],
10
- binary: true,
11
- options: {
12
- crunch: {
13
- libraryPath: 'libs/'
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._TypecheckCrunchLoader = exports.CrunchLoader = void 0;
4
+ const version_1 = require("./lib/utils/version");
5
+ /**
6
+ * Worker loader for the Crunch compressed texture container format
7
+ */
8
+ exports.CrunchLoader = {
9
+ id: 'crunch',
10
+ name: 'Crunch',
11
+ module: 'textures',
12
+ version: version_1.VERSION,
13
+ worker: true,
14
+ extensions: ['crn'],
15
+ mimeTypes: ['image/crn', 'image/x-crn', 'application/octet-stream'],
16
+ binary: true,
17
+ options: {
18
+ crunch: {
19
+ libraryPath: 'libs/'
20
+ }
14
21
  }
15
- }
16
22
  };
17
- export const _TypecheckCrunchLoader = CrunchLoader;
18
- //# sourceMappingURL=crunch-loader.js.map
23
+ // We avoid bundling crunch - rare format, only offer worker loader
24
+ // TYPE TESTS - TODO find a better way than exporting junk
25
+ exports._TypecheckCrunchLoader = exports.CrunchLoader;