@babylonjs/viewer 7.41.1-alpha → 7.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (619) hide show
  1. package/configuration/configuration.d.ts +107 -0
  2. package/configuration/configuration.js +16 -0
  3. package/configuration/configuration.js.map +1 -0
  4. package/configuration/configurationCompatibility.d.ts +8 -0
  5. package/configuration/configurationCompatibility.js +66 -0
  6. package/configuration/configurationCompatibility.js.map +1 -0
  7. package/configuration/configurationContainer.d.ts +10 -0
  8. package/configuration/configurationContainer.js +10 -0
  9. package/configuration/configurationContainer.js.map +1 -0
  10. package/configuration/globals.d.ts +6 -0
  11. package/configuration/globals.js +18 -0
  12. package/configuration/globals.js.map +1 -0
  13. package/configuration/index.d.ts +2 -0
  14. package/configuration/index.js +4 -0
  15. package/configuration/index.js.map +1 -0
  16. package/configuration/interfaces/cameraConfiguration.d.ts +31 -0
  17. package/configuration/interfaces/cameraConfiguration.js +2 -0
  18. package/configuration/interfaces/cameraConfiguration.js.map +1 -0
  19. package/configuration/interfaces/colorGradingConfiguration.d.ts +81 -0
  20. package/configuration/interfaces/colorGradingConfiguration.js +2 -0
  21. package/configuration/interfaces/colorGradingConfiguration.js.map +1 -0
  22. package/configuration/interfaces/defaultRenderingPipelineConfiguration.d.ts +20 -0
  23. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js +2 -0
  24. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js.map +1 -0
  25. package/configuration/interfaces/environmentMapConfiguration.d.ts +22 -0
  26. package/configuration/interfaces/environmentMapConfiguration.js +2 -0
  27. package/configuration/interfaces/environmentMapConfiguration.js.map +1 -0
  28. package/configuration/interfaces/groundConfiguration.d.ts +24 -0
  29. package/configuration/interfaces/groundConfiguration.js +2 -0
  30. package/configuration/interfaces/groundConfiguration.js.map +1 -0
  31. package/configuration/interfaces/imageProcessingConfiguration.d.ts +45 -0
  32. package/configuration/interfaces/imageProcessingConfiguration.js +2 -0
  33. package/configuration/interfaces/imageProcessingConfiguration.js.map +1 -0
  34. package/configuration/interfaces/index.d.ts +15 -0
  35. package/configuration/interfaces/index.js +16 -0
  36. package/configuration/interfaces/index.js.map +1 -0
  37. package/configuration/interfaces/lightConfiguration.d.ts +60 -0
  38. package/configuration/interfaces/lightConfiguration.js +2 -0
  39. package/configuration/interfaces/lightConfiguration.js.map +1 -0
  40. package/configuration/interfaces/modelAnimationConfiguration.d.ts +26 -0
  41. package/configuration/interfaces/modelAnimationConfiguration.js +2 -0
  42. package/configuration/interfaces/modelAnimationConfiguration.js.map +1 -0
  43. package/configuration/interfaces/modelConfiguration.d.ts +65 -0
  44. package/configuration/interfaces/modelConfiguration.js +2 -0
  45. package/configuration/interfaces/modelConfiguration.js.map +1 -0
  46. package/configuration/interfaces/observersConfiguration.d.ts +5 -0
  47. package/configuration/interfaces/observersConfiguration.js +2 -0
  48. package/configuration/interfaces/observersConfiguration.js.map +1 -0
  49. package/configuration/interfaces/sceneConfiguration.d.ts +48 -0
  50. package/configuration/interfaces/sceneConfiguration.js +2 -0
  51. package/configuration/interfaces/sceneConfiguration.js.map +1 -0
  52. package/configuration/interfaces/sceneOptimizerConfiguration.d.ts +23 -0
  53. package/configuration/interfaces/sceneOptimizerConfiguration.js +2 -0
  54. package/configuration/interfaces/sceneOptimizerConfiguration.js.map +1 -0
  55. package/configuration/interfaces/skyboxConfiguration.d.ts +21 -0
  56. package/configuration/interfaces/skyboxConfiguration.js +2 -0
  57. package/configuration/interfaces/skyboxConfiguration.js.map +1 -0
  58. package/configuration/interfaces/templateConfiguration.d.ts +67 -0
  59. package/configuration/interfaces/templateConfiguration.js +2 -0
  60. package/configuration/interfaces/templateConfiguration.js.map +1 -0
  61. package/configuration/interfaces/vrConfiguration.d.ts +16 -0
  62. package/configuration/interfaces/vrConfiguration.js +2 -0
  63. package/configuration/interfaces/vrConfiguration.js.map +1 -0
  64. package/configuration/loader.d.ts +4 -0
  65. package/configuration/loader.js +17 -0
  66. package/configuration/loader.js.map +1 -0
  67. package/configuration/mappers.d.ts +43 -0
  68. package/configuration/mappers.js +193 -0
  69. package/configuration/mappers.js.map +1 -0
  70. package/configuration/renderOnlyLoader.d.ts +33 -0
  71. package/configuration/renderOnlyLoader.js +162 -0
  72. package/configuration/renderOnlyLoader.js.map +1 -0
  73. package/configuration/types/default.d.ts +6 -0
  74. package/configuration/types/default.js +121 -0
  75. package/configuration/types/default.js.map +1 -0
  76. package/configuration/types/environmentMap.d.ts +5 -0
  77. package/configuration/types/environmentMap.js +14 -0
  78. package/configuration/types/environmentMap.js.map +1 -0
  79. package/configuration/types/extended.d.ts +6 -0
  80. package/configuration/types/extended.js +317 -0
  81. package/configuration/types/extended.js.map +1 -0
  82. package/configuration/types/index.d.ts +14 -0
  83. package/configuration/types/index.js +51 -0
  84. package/configuration/types/index.js.map +1 -0
  85. package/configuration/types/minimal.d.ts +6 -0
  86. package/configuration/types/minimal.js +43 -0
  87. package/configuration/types/minimal.js.map +1 -0
  88. package/configuration/types/renderOnlyDefault.d.ts +30 -0
  89. package/configuration/types/renderOnlyDefault.js +31 -0
  90. package/configuration/types/renderOnlyDefault.js.map +1 -0
  91. package/configuration/types/shadowLight.d.ts +9 -0
  92. package/configuration/types/shadowLight.js +64 -0
  93. package/configuration/types/shadowLight.js.map +1 -0
  94. package/helper/index.d.ts +29 -0
  95. package/helper/index.js +66 -0
  96. package/helper/index.js.map +1 -0
  97. package/index.d.ts +30 -0
  98. package/index.js +46 -0
  99. package/index.js.map +1 -0
  100. package/initializer.d.ts +11 -0
  101. package/initializer.js +35 -0
  102. package/initializer.js.map +1 -0
  103. package/interfaces.d.ts +5 -0
  104. package/interfaces.js +7 -0
  105. package/interfaces.js.map +1 -0
  106. package/labs/environmentSerializer.d.ts +126 -0
  107. package/labs/environmentSerializer.js +191 -0
  108. package/labs/environmentSerializer.js.map +1 -0
  109. package/labs/texture.d.ts +183 -0
  110. package/labs/texture.js +351 -0
  111. package/labs/texture.js.map +1 -0
  112. package/labs/viewerLabs.d.ts +51 -0
  113. package/labs/viewerLabs.js +134 -0
  114. package/labs/viewerLabs.js.map +1 -0
  115. package/loader/modelLoader.d.ts +56 -0
  116. package/loader/modelLoader.js +202 -0
  117. package/loader/modelLoader.js.map +1 -0
  118. package/loader/plugins/applyMaterialConfig.d.ts +12 -0
  119. package/loader/plugins/applyMaterialConfig.js +16 -0
  120. package/loader/plugins/applyMaterialConfig.js.map +1 -0
  121. package/loader/plugins/extendedMaterialLoaderPlugin.d.ts +9 -0
  122. package/loader/plugins/extendedMaterialLoaderPlugin.js +16 -0
  123. package/loader/plugins/extendedMaterialLoaderPlugin.js.map +1 -0
  124. package/loader/plugins/index.d.ts +19 -0
  125. package/loader/plugins/index.js +44 -0
  126. package/loader/plugins/index.js.map +1 -0
  127. package/loader/plugins/loaderPlugin.d.ts +24 -0
  128. package/loader/plugins/loaderPlugin.js +2 -0
  129. package/loader/plugins/loaderPlugin.js.map +1 -0
  130. package/loader/plugins/msftLodLoaderPlugin.d.ts +12 -0
  131. package/loader/plugins/msftLodLoaderPlugin.js +21 -0
  132. package/loader/plugins/msftLodLoaderPlugin.js.map +1 -0
  133. package/loader/plugins/telemetryLoaderPlugin.d.ts +12 -0
  134. package/loader/plugins/telemetryLoaderPlugin.js +36 -0
  135. package/loader/plugins/telemetryLoaderPlugin.js.map +1 -0
  136. package/managers/observablesManager.d.ts +66 -0
  137. package/managers/observablesManager.js +35 -0
  138. package/managers/observablesManager.js.map +1 -0
  139. package/managers/sceneManager.d.ts +245 -0
  140. package/managers/sceneManager.js +1375 -0
  141. package/managers/sceneManager.js.map +1 -0
  142. package/managers/telemetryManager.d.ts +78 -0
  143. package/managers/telemetryManager.js +117 -0
  144. package/managers/telemetryManager.js.map +1 -0
  145. package/model/modelAnimation.d.ts +215 -0
  146. package/model/modelAnimation.js +237 -0
  147. package/model/modelAnimation.js.map +1 -0
  148. package/model/viewerModel.d.ts +233 -0
  149. package/model/viewerModel.js +673 -0
  150. package/model/viewerModel.js.map +1 -0
  151. package/optimizer/custom/extended.d.ts +13 -0
  152. package/optimizer/custom/extended.js +101 -0
  153. package/optimizer/custom/extended.js.map +1 -0
  154. package/optimizer/custom/index.d.ts +9 -0
  155. package/optimizer/custom/index.js +26 -0
  156. package/optimizer/custom/index.js.map +1 -0
  157. package/package.json +28 -19
  158. package/readme.md +28 -28
  159. package/renderOnlyIndex.d.ts +11 -0
  160. package/renderOnlyIndex.js +18 -0
  161. package/renderOnlyIndex.js.map +1 -0
  162. package/templating/eventManager.d.ts +35 -0
  163. package/templating/eventManager.js +66 -0
  164. package/templating/eventManager.js.map +1 -0
  165. package/templating/plugins/hdButtonPlugin.d.ts +9 -0
  166. package/templating/plugins/hdButtonPlugin.js +22 -0
  167. package/templating/plugins/hdButtonPlugin.js.map +1 -0
  168. package/templating/plugins/printButton.d.ts +9 -0
  169. package/templating/plugins/printButton.js +41 -0
  170. package/templating/plugins/printButton.js.map +1 -0
  171. package/templating/templateManager.d.ts +197 -0
  172. package/templating/templateManager.js +561 -0
  173. package/templating/templateManager.js.map +1 -0
  174. package/templating/viewerTemplatePlugin.d.ts +21 -0
  175. package/templating/viewerTemplatePlugin.js +69 -0
  176. package/templating/viewerTemplatePlugin.js.map +1 -0
  177. package/viewer/defaultViewer.d.ts +130 -0
  178. package/viewer/defaultViewer.js +672 -0
  179. package/viewer/defaultViewer.js.map +1 -0
  180. package/viewer/renderOnlyViewer.d.ts +9 -0
  181. package/viewer/renderOnlyViewer.js +46 -0
  182. package/viewer/renderOnlyViewer.js.map +1 -0
  183. package/viewer/viewer.d.ts +258 -0
  184. package/viewer/viewer.js +783 -0
  185. package/viewer/viewer.js.map +1 -0
  186. package/viewer/viewerManager.d.ts +58 -0
  187. package/viewer/viewerManager.js +91 -0
  188. package/viewer/viewerManager.js.map +1 -0
  189. package/viewer/viewerWithTemplate.d.ts +9 -0
  190. package/viewer/viewerWithTemplate.js +20 -0
  191. package/viewer/viewerWithTemplate.js.map +1 -0
  192. package/assets/photoStudio.env +0 -0
  193. package/dist/babylon-viewer.esm.js +0 -2
  194. package/dist/babylon-viewer.esm.js.map +0 -1
  195. package/dist/babylon-viewer.esm.min.js +0 -2
  196. package/dist/babylon-viewer.esm.min.js.map +0 -1
  197. package/dist/chunks/EXT_lights_ies-BS2USlck.esm.min.js +0 -2
  198. package/dist/chunks/EXT_lights_ies-BS2USlck.esm.min.js.map +0 -1
  199. package/dist/chunks/EXT_lights_ies-C-joQ5O4.esm.js +0 -84
  200. package/dist/chunks/EXT_lights_ies-C-joQ5O4.esm.js.map +0 -1
  201. package/dist/chunks/EXT_lights_image_based-C3wbbb5Z.esm.js +0 -171
  202. package/dist/chunks/EXT_lights_image_based-C3wbbb5Z.esm.js.map +0 -1
  203. package/dist/chunks/EXT_lights_image_based-DDdRDnM2.esm.min.js +0 -2
  204. package/dist/chunks/EXT_lights_image_based-DDdRDnM2.esm.min.js.map +0 -1
  205. package/dist/chunks/EXT_mesh_gpu_instancing-AXAnRQN7.esm.js +0 -86
  206. package/dist/chunks/EXT_mesh_gpu_instancing-AXAnRQN7.esm.js.map +0 -1
  207. package/dist/chunks/EXT_mesh_gpu_instancing-BcjPo6uC.esm.min.js +0 -2
  208. package/dist/chunks/EXT_mesh_gpu_instancing-BcjPo6uC.esm.min.js.map +0 -1
  209. package/dist/chunks/EXT_meshopt_compression-DlUkQB2P.esm.js +0 -134
  210. package/dist/chunks/EXT_meshopt_compression-DlUkQB2P.esm.js.map +0 -1
  211. package/dist/chunks/EXT_meshopt_compression-yJ4OpORd.esm.min.js +0 -2
  212. package/dist/chunks/EXT_meshopt_compression-yJ4OpORd.esm.min.js.map +0 -1
  213. package/dist/chunks/EXT_texture_avif-BQWbvJfK.esm.min.js +0 -2
  214. package/dist/chunks/EXT_texture_avif-BQWbvJfK.esm.min.js.map +0 -1
  215. package/dist/chunks/EXT_texture_avif-C0pGpnGv.esm.js +0 -44
  216. package/dist/chunks/EXT_texture_avif-C0pGpnGv.esm.js.map +0 -1
  217. package/dist/chunks/EXT_texture_webp-Dd7Uqtmh.esm.min.js +0 -2
  218. package/dist/chunks/EXT_texture_webp-Dd7Uqtmh.esm.min.js.map +0 -1
  219. package/dist/chunks/EXT_texture_webp-DehlrnW-.esm.js +0 -43
  220. package/dist/chunks/EXT_texture_webp-DehlrnW-.esm.js.map +0 -1
  221. package/dist/chunks/ExtrasAsMetadata-C5NMuDj4.esm.js +0 -64
  222. package/dist/chunks/ExtrasAsMetadata-C5NMuDj4.esm.js.map +0 -1
  223. package/dist/chunks/ExtrasAsMetadata-Cp3LHdoG.esm.min.js +0 -2
  224. package/dist/chunks/ExtrasAsMetadata-Cp3LHdoG.esm.min.js.map +0 -1
  225. package/dist/chunks/KHR_animation_pointer-DEBOwDXh.esm.min.js +0 -2
  226. package/dist/chunks/KHR_animation_pointer-DEBOwDXh.esm.min.js.map +0 -1
  227. package/dist/chunks/KHR_animation_pointer-Dx1OeG2b.esm.js +0 -352
  228. package/dist/chunks/KHR_animation_pointer-Dx1OeG2b.esm.js.map +0 -1
  229. package/dist/chunks/KHR_draco_mesh_compression-Ch0QOlBL.esm.min.js +0 -2
  230. package/dist/chunks/KHR_draco_mesh_compression-Ch0QOlBL.esm.min.js.map +0 -1
  231. package/dist/chunks/KHR_draco_mesh_compression-D59SFLyo.esm.js +0 -610
  232. package/dist/chunks/KHR_draco_mesh_compression-D59SFLyo.esm.js.map +0 -1
  233. package/dist/chunks/KHR_interactivity-Blj_9jts.esm.min.js +0 -2
  234. package/dist/chunks/KHR_interactivity-Blj_9jts.esm.min.js.map +0 -1
  235. package/dist/chunks/KHR_interactivity-CR0LYUa7.esm.js +0 -4033
  236. package/dist/chunks/KHR_interactivity-CR0LYUa7.esm.js.map +0 -1
  237. package/dist/chunks/KHR_lights_punctual--w0a62AP.esm.js +0 -581
  238. package/dist/chunks/KHR_lights_punctual--w0a62AP.esm.js.map +0 -1
  239. package/dist/chunks/KHR_lights_punctual-BojffBbG.esm.min.js +0 -2
  240. package/dist/chunks/KHR_lights_punctual-BojffBbG.esm.min.js.map +0 -1
  241. package/dist/chunks/KHR_materials_anisotropy-BPtHWkOQ.esm.js +0 -65
  242. package/dist/chunks/KHR_materials_anisotropy-BPtHWkOQ.esm.js.map +0 -1
  243. package/dist/chunks/KHR_materials_anisotropy-DU5_bnCL.esm.min.js +0 -2
  244. package/dist/chunks/KHR_materials_anisotropy-DU5_bnCL.esm.min.js.map +0 -1
  245. package/dist/chunks/KHR_materials_clearcoat-BBuRlPhc.esm.min.js +0 -2
  246. package/dist/chunks/KHR_materials_clearcoat-BBuRlPhc.esm.min.js.map +0 -1
  247. package/dist/chunks/KHR_materials_clearcoat-Eg0xbuWN.esm.js +0 -96
  248. package/dist/chunks/KHR_materials_clearcoat-Eg0xbuWN.esm.js.map +0 -1
  249. package/dist/chunks/KHR_materials_diffuse_transmission-Bkzk60Y5.esm.min.js +0 -2
  250. package/dist/chunks/KHR_materials_diffuse_transmission-Bkzk60Y5.esm.min.js.map +0 -1
  251. package/dist/chunks/KHR_materials_diffuse_transmission-C3DaLgRY.esm.js +0 -97
  252. package/dist/chunks/KHR_materials_diffuse_transmission-C3DaLgRY.esm.js.map +0 -1
  253. package/dist/chunks/KHR_materials_dispersion-DL_XFhxj.esm.js +0 -62
  254. package/dist/chunks/KHR_materials_dispersion-DL_XFhxj.esm.js.map +0 -1
  255. package/dist/chunks/KHR_materials_dispersion-DbMQPBgM.esm.min.js +0 -2
  256. package/dist/chunks/KHR_materials_dispersion-DbMQPBgM.esm.min.js.map +0 -1
  257. package/dist/chunks/KHR_materials_emissive_strength-BuHyjtBD.esm.js +0 -55
  258. package/dist/chunks/KHR_materials_emissive_strength-BuHyjtBD.esm.js.map +0 -1
  259. package/dist/chunks/KHR_materials_emissive_strength-Djlr_ul3.esm.min.js +0 -2
  260. package/dist/chunks/KHR_materials_emissive_strength-Djlr_ul3.esm.min.js.map +0 -1
  261. package/dist/chunks/KHR_materials_ior-BIe6qBOo.esm.js +0 -64
  262. package/dist/chunks/KHR_materials_ior-BIe6qBOo.esm.js.map +0 -1
  263. package/dist/chunks/KHR_materials_ior-DOfaAmNY.esm.min.js +0 -2
  264. package/dist/chunks/KHR_materials_ior-DOfaAmNY.esm.min.js.map +0 -1
  265. package/dist/chunks/KHR_materials_iridescence-BgElZgUu.esm.js +0 -72
  266. package/dist/chunks/KHR_materials_iridescence-BgElZgUu.esm.js.map +0 -1
  267. package/dist/chunks/KHR_materials_iridescence-lUeo07SZ.esm.min.js +0 -2
  268. package/dist/chunks/KHR_materials_iridescence-lUeo07SZ.esm.min.js.map +0 -1
  269. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-9ShQyhJ6.esm.min.js +0 -2
  270. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-9ShQyhJ6.esm.min.js.map +0 -1
  271. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DE5LjLg6.esm.js +0 -81
  272. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DE5LjLg6.esm.js.map +0 -1
  273. package/dist/chunks/KHR_materials_sheen-BfZe6ZFu.esm.js +0 -85
  274. package/dist/chunks/KHR_materials_sheen-BfZe6ZFu.esm.js.map +0 -1
  275. package/dist/chunks/KHR_materials_sheen-OWjuK2V4.esm.min.js +0 -2
  276. package/dist/chunks/KHR_materials_sheen-OWjuK2V4.esm.min.js.map +0 -1
  277. package/dist/chunks/KHR_materials_specular-dowPxbW3.esm.js +0 -75
  278. package/dist/chunks/KHR_materials_specular-dowPxbW3.esm.js.map +0 -1
  279. package/dist/chunks/KHR_materials_specular-nWeBZu0R.esm.min.js +0 -2
  280. package/dist/chunks/KHR_materials_specular-nWeBZu0R.esm.min.js.map +0 -1
  281. package/dist/chunks/KHR_materials_transmission-BPNQkK0O.esm.min.js +0 -2
  282. package/dist/chunks/KHR_materials_transmission-BPNQkK0O.esm.min.js.map +0 -1
  283. package/dist/chunks/KHR_materials_transmission-CHr_yLLX.esm.js +0 -307
  284. package/dist/chunks/KHR_materials_transmission-CHr_yLLX.esm.js.map +0 -1
  285. package/dist/chunks/KHR_materials_unlit-BYXpcsdj.esm.min.js +0 -2
  286. package/dist/chunks/KHR_materials_unlit-BYXpcsdj.esm.min.js.map +0 -1
  287. package/dist/chunks/KHR_materials_unlit-Cr7YsDHT.esm.js +0 -74
  288. package/dist/chunks/KHR_materials_unlit-Cr7YsDHT.esm.js.map +0 -1
  289. package/dist/chunks/KHR_materials_variants-BCVX3sJa.esm.js +0 -262
  290. package/dist/chunks/KHR_materials_variants-BCVX3sJa.esm.js.map +0 -1
  291. package/dist/chunks/KHR_materials_variants-BXzl6KpJ.esm.min.js +0 -2
  292. package/dist/chunks/KHR_materials_variants-BXzl6KpJ.esm.min.js.map +0 -1
  293. package/dist/chunks/KHR_materials_volume-BD9KEaJz.esm.min.js +0 -2
  294. package/dist/chunks/KHR_materials_volume-BD9KEaJz.esm.min.js.map +0 -1
  295. package/dist/chunks/KHR_materials_volume-DrqGUGW6.esm.js +0 -87
  296. package/dist/chunks/KHR_materials_volume-DrqGUGW6.esm.js.map +0 -1
  297. package/dist/chunks/KHR_mesh_quantization-Dg22auJA.esm.min.js +0 -2
  298. package/dist/chunks/KHR_mesh_quantization-Dg22auJA.esm.min.js.map +0 -1
  299. package/dist/chunks/KHR_mesh_quantization-hvxpvTbe.esm.js +0 -26
  300. package/dist/chunks/KHR_mesh_quantization-hvxpvTbe.esm.js.map +0 -1
  301. package/dist/chunks/KHR_node_hoverability-BDiqFmBB.esm.js +0 -39
  302. package/dist/chunks/KHR_node_hoverability-BDiqFmBB.esm.js.map +0 -1
  303. package/dist/chunks/KHR_node_hoverability-CumkOtZM.esm.min.js +0 -2
  304. package/dist/chunks/KHR_node_hoverability-CumkOtZM.esm.min.js.map +0 -1
  305. package/dist/chunks/KHR_node_visibility-BKEa-Yfj.esm.min.js +0 -2
  306. package/dist/chunks/KHR_node_visibility-BKEa-Yfj.esm.min.js.map +0 -1
  307. package/dist/chunks/KHR_node_visibility-K0fsD4Vv.esm.js +0 -46
  308. package/dist/chunks/KHR_node_visibility-K0fsD4Vv.esm.js.map +0 -1
  309. package/dist/chunks/KHR_texture_basisu-8YVY1pKo.esm.js +0 -43
  310. package/dist/chunks/KHR_texture_basisu-8YVY1pKo.esm.js.map +0 -1
  311. package/dist/chunks/KHR_texture_basisu-BM__NeSW.esm.min.js +0 -2
  312. package/dist/chunks/KHR_texture_basisu-BM__NeSW.esm.min.js.map +0 -1
  313. package/dist/chunks/KHR_texture_transform--qxpdvRw.esm.js +0 -63
  314. package/dist/chunks/KHR_texture_transform--qxpdvRw.esm.js.map +0 -1
  315. package/dist/chunks/KHR_texture_transform-C0MO-oJp.esm.min.js +0 -2
  316. package/dist/chunks/KHR_texture_transform-C0MO-oJp.esm.min.js.map +0 -1
  317. package/dist/chunks/KHR_xmp_json_ld-D9FpHvJo.esm.js +0 -51
  318. package/dist/chunks/KHR_xmp_json_ld-D9FpHvJo.esm.js.map +0 -1
  319. package/dist/chunks/KHR_xmp_json_ld-DeXPWWQE.esm.min.js +0 -2
  320. package/dist/chunks/KHR_xmp_json_ld-DeXPWWQE.esm.min.js.map +0 -1
  321. package/dist/chunks/MSFT_audio_emitter-BbICSwFH.esm.min.js +0 -2
  322. package/dist/chunks/MSFT_audio_emitter-BbICSwFH.esm.min.js.map +0 -1
  323. package/dist/chunks/MSFT_audio_emitter-Dd5lbfUc.esm.js +0 -2201
  324. package/dist/chunks/MSFT_audio_emitter-Dd5lbfUc.esm.js.map +0 -1
  325. package/dist/chunks/MSFT_lod-B0zrRF3s.esm.js +0 -337
  326. package/dist/chunks/MSFT_lod-B0zrRF3s.esm.js.map +0 -1
  327. package/dist/chunks/MSFT_lod-Bd4znUfD.esm.min.js +0 -2
  328. package/dist/chunks/MSFT_lod-Bd4znUfD.esm.min.js.map +0 -1
  329. package/dist/chunks/MSFT_minecraftMesh-CdIpMgsb.esm.min.js +0 -2
  330. package/dist/chunks/MSFT_minecraftMesh-CdIpMgsb.esm.min.js.map +0 -1
  331. package/dist/chunks/MSFT_minecraftMesh-WFc8m_Ka.esm.js +0 -46
  332. package/dist/chunks/MSFT_minecraftMesh-WFc8m_Ka.esm.js.map +0 -1
  333. package/dist/chunks/MSFT_sRGBFactors-CTbtGna8.esm.js +0 -47
  334. package/dist/chunks/MSFT_sRGBFactors-CTbtGna8.esm.js.map +0 -1
  335. package/dist/chunks/MSFT_sRGBFactors-yTSoBQJx.esm.min.js +0 -2
  336. package/dist/chunks/MSFT_sRGBFactors-yTSoBQJx.esm.min.js.map +0 -1
  337. package/dist/chunks/animationGroup-8TJDgymS.esm.js +0 -2482
  338. package/dist/chunks/animationGroup-8TJDgymS.esm.js.map +0 -1
  339. package/dist/chunks/animationGroup-toXtd3a1.esm.min.js +0 -2
  340. package/dist/chunks/animationGroup-toXtd3a1.esm.min.js.map +0 -1
  341. package/dist/chunks/assetContainer-7pMDUaac.esm.min.js +0 -2
  342. package/dist/chunks/assetContainer-7pMDUaac.esm.min.js.map +0 -1
  343. package/dist/chunks/assetContainer-DYzO0AbX.esm.js +0 -1720
  344. package/dist/chunks/assetContainer-DYzO0AbX.esm.js.map +0 -1
  345. package/dist/chunks/audioEngine-Kz4HSEXd.esm.min.js +0 -2
  346. package/dist/chunks/audioEngine-Kz4HSEXd.esm.min.js.map +0 -1
  347. package/dist/chunks/audioEngine-peiGqjr6.esm.js +0 -305
  348. package/dist/chunks/audioEngine-peiGqjr6.esm.js.map +0 -1
  349. package/dist/chunks/bakedVertexAnimation-BZvcL01J.esm.min.js +0 -2
  350. package/dist/chunks/bakedVertexAnimation-BZvcL01J.esm.min.js.map +0 -1
  351. package/dist/chunks/bakedVertexAnimation-CPflSjER.esm.js +0 -114
  352. package/dist/chunks/bakedVertexAnimation-CPflSjER.esm.js.map +0 -1
  353. package/dist/chunks/basisTextureLoader-CR0XhSAg.esm.js +0 -600
  354. package/dist/chunks/basisTextureLoader-CR0XhSAg.esm.js.map +0 -1
  355. package/dist/chunks/basisTextureLoader-DVJdcB62.esm.min.js +0 -2
  356. package/dist/chunks/basisTextureLoader-DVJdcB62.esm.min.js.map +0 -1
  357. package/dist/chunks/dds-6EdM5O6M.esm.js +0 -540
  358. package/dist/chunks/dds-6EdM5O6M.esm.js.map +0 -1
  359. package/dist/chunks/dds-DVX_K9B3.esm.min.js +0 -2
  360. package/dist/chunks/dds-DVX_K9B3.esm.min.js.map +0 -1
  361. package/dist/chunks/ddsTextureLoader-BAK7Ib2Z.esm.min.js +0 -2
  362. package/dist/chunks/ddsTextureLoader-BAK7Ib2Z.esm.min.js.map +0 -1
  363. package/dist/chunks/ddsTextureLoader-_nktVxwZ.esm.js +0 -88
  364. package/dist/chunks/ddsTextureLoader-_nktVxwZ.esm.js.map +0 -1
  365. package/dist/chunks/decalFragment-C_Cews3-.esm.js +0 -18
  366. package/dist/chunks/decalFragment-C_Cews3-.esm.js.map +0 -1
  367. package/dist/chunks/decalFragment-Dmj88EX9.esm.min.js +0 -2
  368. package/dist/chunks/decalFragment-Dmj88EX9.esm.min.js.map +0 -1
  369. package/dist/chunks/default.fragment-Bv_nR7po.esm.min.js +0 -2
  370. package/dist/chunks/default.fragment-Bv_nR7po.esm.min.js.map +0 -1
  371. package/dist/chunks/default.fragment-CkZQyJVM.esm.min.js +0 -2
  372. package/dist/chunks/default.fragment-CkZQyJVM.esm.min.js.map +0 -1
  373. package/dist/chunks/default.fragment-CyFHDykY.esm.js +0 -446
  374. package/dist/chunks/default.fragment-CyFHDykY.esm.js.map +0 -1
  375. package/dist/chunks/default.fragment-ej-2z5tS.esm.js +0 -515
  376. package/dist/chunks/default.fragment-ej-2z5tS.esm.js.map +0 -1
  377. package/dist/chunks/default.vertex-16mVOFgT.esm.js +0 -211
  378. package/dist/chunks/default.vertex-16mVOFgT.esm.js.map +0 -1
  379. package/dist/chunks/default.vertex-D--q2At3.esm.min.js +0 -2
  380. package/dist/chunks/default.vertex-D--q2At3.esm.min.js.map +0 -1
  381. package/dist/chunks/default.vertex-DDlgZTrR.esm.js +0 -190
  382. package/dist/chunks/default.vertex-DDlgZTrR.esm.js.map +0 -1
  383. package/dist/chunks/default.vertex-_jqs3KiZ.esm.min.js +0 -2
  384. package/dist/chunks/default.vertex-_jqs3KiZ.esm.min.js.map +0 -1
  385. package/dist/chunks/defaultUboDeclaration-8YG0iNg8.esm.js +0 -15
  386. package/dist/chunks/defaultUboDeclaration-8YG0iNg8.esm.js.map +0 -1
  387. package/dist/chunks/defaultUboDeclaration-BoBSRTbi.esm.js +0 -13
  388. package/dist/chunks/defaultUboDeclaration-BoBSRTbi.esm.js.map +0 -1
  389. package/dist/chunks/defaultUboDeclaration-Dt_5vo1d.esm.min.js +0 -2
  390. package/dist/chunks/defaultUboDeclaration-Dt_5vo1d.esm.min.js.map +0 -1
  391. package/dist/chunks/defaultUboDeclaration-R6gGjkAM.esm.min.js +0 -2
  392. package/dist/chunks/defaultUboDeclaration-R6gGjkAM.esm.min.js.map +0 -1
  393. package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js +0 -11
  394. package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js.map +0 -1
  395. package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js +0 -2
  396. package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js.map +0 -1
  397. package/dist/chunks/dumpTools-Bhux0wvM.esm.js +0 -200
  398. package/dist/chunks/dumpTools-Bhux0wvM.esm.js.map +0 -1
  399. package/dist/chunks/dumpTools-CHCb2UkY.esm.min.js +0 -2
  400. package/dist/chunks/dumpTools-CHCb2UkY.esm.min.js.map +0 -1
  401. package/dist/chunks/engine-DF_zE4qj.esm.js +0 -2213
  402. package/dist/chunks/engine-DF_zE4qj.esm.js.map +0 -1
  403. package/dist/chunks/engine-DVmdDcyP.esm.min.js +0 -2
  404. package/dist/chunks/engine-DVmdDcyP.esm.min.js.map +0 -1
  405. package/dist/chunks/engine.common-CvOmoKru.esm.js +0 -1162
  406. package/dist/chunks/engine.common-CvOmoKru.esm.js.map +0 -1
  407. package/dist/chunks/engine.common-DpTzktQJ.esm.min.js +0 -2
  408. package/dist/chunks/engine.common-DpTzktQJ.esm.min.js.map +0 -1
  409. package/dist/chunks/envTextureLoader-4YxGm-Px.esm.js +0 -64
  410. package/dist/chunks/envTextureLoader-4YxGm-Px.esm.js.map +0 -1
  411. package/dist/chunks/envTextureLoader-DMQui088.esm.min.js +0 -2
  412. package/dist/chunks/envTextureLoader-DMQui088.esm.min.js.map +0 -1
  413. package/dist/chunks/environmentTextureTools-BPGrTBPI.esm.min.js +0 -2
  414. package/dist/chunks/environmentTextureTools-BPGrTBPI.esm.min.js.map +0 -1
  415. package/dist/chunks/environmentTextureTools-DvkpsqkN.esm.js +0 -382
  416. package/dist/chunks/environmentTextureTools-DvkpsqkN.esm.js.map +0 -1
  417. package/dist/chunks/exrTextureLoader-BRkB54sO.esm.js +0 -1683
  418. package/dist/chunks/exrTextureLoader-BRkB54sO.esm.js.map +0 -1
  419. package/dist/chunks/exrTextureLoader-BtN7_zst.esm.min.js +0 -2
  420. package/dist/chunks/exrTextureLoader-BtN7_zst.esm.min.js.map +0 -1
  421. package/dist/chunks/fogFragment-BrGGFaiu.esm.js +0 -101
  422. package/dist/chunks/fogFragment-BrGGFaiu.esm.js.map +0 -1
  423. package/dist/chunks/fogFragment-ByOwwQur.esm.min.js +0 -2
  424. package/dist/chunks/fogFragment-ByOwwQur.esm.min.js.map +0 -1
  425. package/dist/chunks/fogFragment-Chod24nu.esm.min.js +0 -2
  426. package/dist/chunks/fogFragment-Chod24nu.esm.min.js.map +0 -1
  427. package/dist/chunks/fogFragment-gZfybCpt.esm.js +0 -102
  428. package/dist/chunks/fogFragment-gZfybCpt.esm.js.map +0 -1
  429. package/dist/chunks/fresnelFunction-BdEia8ob.esm.min.js +0 -2
  430. package/dist/chunks/fresnelFunction-BdEia8ob.esm.min.js.map +0 -1
  431. package/dist/chunks/fresnelFunction-DBlxfmri.esm.js +0 -12
  432. package/dist/chunks/fresnelFunction-DBlxfmri.esm.js.map +0 -1
  433. package/dist/chunks/glTFLoader-D4C1IGb3.esm.min.js +0 -2
  434. package/dist/chunks/glTFLoader-D4C1IGb3.esm.min.js.map +0 -1
  435. package/dist/chunks/glTFLoader-fUFiWvYb.esm.js +0 -7693
  436. package/dist/chunks/glTFLoader-fUFiWvYb.esm.js.map +0 -1
  437. package/dist/chunks/glTFLoaderAnimation-BB_Vw079.esm.min.js +0 -2
  438. package/dist/chunks/glTFLoaderAnimation-BB_Vw079.esm.min.js.map +0 -1
  439. package/dist/chunks/glTFLoaderAnimation-CttmY50U.esm.js +0 -77
  440. package/dist/chunks/glTFLoaderAnimation-CttmY50U.esm.js.map +0 -1
  441. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js +0 -2
  442. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js.map +0 -1
  443. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js +0 -67
  444. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js.map +0 -1
  445. package/dist/chunks/harmonicsFunctions-B0Rp1hEo.esm.min.js +0 -2
  446. package/dist/chunks/harmonicsFunctions-B0Rp1hEo.esm.min.js.map +0 -1
  447. package/dist/chunks/harmonicsFunctions-Cca_z552.esm.js +0 -34
  448. package/dist/chunks/harmonicsFunctions-Cca_z552.esm.js.map +0 -1
  449. package/dist/chunks/harmonicsFunctions-D4ID83NC.esm.min.js +0 -2
  450. package/dist/chunks/harmonicsFunctions-D4ID83NC.esm.min.js.map +0 -1
  451. package/dist/chunks/harmonicsFunctions-HJ5dbl0w.esm.js +0 -35
  452. package/dist/chunks/harmonicsFunctions-HJ5dbl0w.esm.js.map +0 -1
  453. package/dist/chunks/hdrTextureLoader-C3kqy6YV.esm.js +0 -253
  454. package/dist/chunks/hdrTextureLoader-C3kqy6YV.esm.js.map +0 -1
  455. package/dist/chunks/hdrTextureLoader-Dhlluz4z.esm.min.js +0 -2
  456. package/dist/chunks/hdrTextureLoader-Dhlluz4z.esm.min.js.map +0 -1
  457. package/dist/chunks/helperFunctions-BJotVqUd.esm.min.js +0 -2
  458. package/dist/chunks/helperFunctions-BJotVqUd.esm.min.js.map +0 -1
  459. package/dist/chunks/helperFunctions-C66wRWtu.esm.js +0 -110
  460. package/dist/chunks/helperFunctions-C66wRWtu.esm.js.map +0 -1
  461. package/dist/chunks/helperFunctions-DwEZ9rqh.esm.min.js +0 -2
  462. package/dist/chunks/helperFunctions-DwEZ9rqh.esm.min.js.map +0 -1
  463. package/dist/chunks/helperFunctions-gnki_9Kj.esm.js +0 -83
  464. package/dist/chunks/helperFunctions-gnki_9Kj.esm.js.map +0 -1
  465. package/dist/chunks/iesTextureLoader-QDs2Cwy5.esm.js +0 -189
  466. package/dist/chunks/iesTextureLoader-QDs2Cwy5.esm.js.map +0 -1
  467. package/dist/chunks/iesTextureLoader-pwA6Q4HK.esm.min.js +0 -2
  468. package/dist/chunks/iesTextureLoader-pwA6Q4HK.esm.min.js.map +0 -1
  469. package/dist/chunks/index-C6hXZyZb.esm.js +0 -74889
  470. package/dist/chunks/index-C6hXZyZb.esm.js.map +0 -1
  471. package/dist/chunks/index-rZVkfTE6.esm.min.js +0 -57
  472. package/dist/chunks/index-rZVkfTE6.esm.min.js.map +0 -1
  473. package/dist/chunks/ktxTextureLoader-jVu-Sj-0.esm.js +0 -814
  474. package/dist/chunks/ktxTextureLoader-jVu-Sj-0.esm.js.map +0 -1
  475. package/dist/chunks/ktxTextureLoader-zG9azrZF.esm.min.js +0 -2
  476. package/dist/chunks/ktxTextureLoader-zG9azrZF.esm.min.js.map +0 -1
  477. package/dist/chunks/logDepthDeclaration-0cA1pTvQ.esm.min.js +0 -2
  478. package/dist/chunks/logDepthDeclaration-0cA1pTvQ.esm.min.js.map +0 -1
  479. package/dist/chunks/logDepthDeclaration-CYxYhXIS.esm.js +0 -11
  480. package/dist/chunks/logDepthDeclaration-CYxYhXIS.esm.js.map +0 -1
  481. package/dist/chunks/logDepthDeclaration-D4KGxdX-.esm.min.js +0 -2
  482. package/dist/chunks/logDepthDeclaration-D4KGxdX-.esm.min.js.map +0 -1
  483. package/dist/chunks/logDepthDeclaration-DJlt2-H5.esm.js +0 -35
  484. package/dist/chunks/logDepthDeclaration-DJlt2-H5.esm.js.map +0 -1
  485. package/dist/chunks/logDepthVertex-BS2JEtXA.esm.min.js +0 -2
  486. package/dist/chunks/logDepthVertex-BS2JEtXA.esm.min.js.map +0 -1
  487. package/dist/chunks/logDepthVertex-DKPfA10X.esm.js +0 -81
  488. package/dist/chunks/logDepthVertex-DKPfA10X.esm.js.map +0 -1
  489. package/dist/chunks/logDepthVertex-ojTShW5I.esm.js +0 -77
  490. package/dist/chunks/logDepthVertex-ojTShW5I.esm.js.map +0 -1
  491. package/dist/chunks/logDepthVertex-v-0pHNc-.esm.min.js +0 -2
  492. package/dist/chunks/logDepthVertex-v-0pHNc-.esm.min.js.map +0 -1
  493. package/dist/chunks/mainUVVaryingDeclaration-BAzmbS0W.esm.min.js +0 -2
  494. package/dist/chunks/mainUVVaryingDeclaration-BAzmbS0W.esm.min.js.map +0 -1
  495. package/dist/chunks/mainUVVaryingDeclaration-Cnux1jkK.esm.js +0 -11
  496. package/dist/chunks/mainUVVaryingDeclaration-Cnux1jkK.esm.js.map +0 -1
  497. package/dist/chunks/mainUVVaryingDeclaration-CwS0hUUZ.esm.min.js +0 -2
  498. package/dist/chunks/mainUVVaryingDeclaration-CwS0hUUZ.esm.min.js.map +0 -1
  499. package/dist/chunks/mainUVVaryingDeclaration-DCawby1A.esm.js +0 -11
  500. package/dist/chunks/mainUVVaryingDeclaration-DCawby1A.esm.js.map +0 -1
  501. package/dist/chunks/mesh.vertexData.functions-B_pMCAzZ.esm.js +0 -119
  502. package/dist/chunks/mesh.vertexData.functions-B_pMCAzZ.esm.js.map +0 -1
  503. package/dist/chunks/mesh.vertexData.functions-Bo7e6Of9.esm.min.js +0 -2
  504. package/dist/chunks/mesh.vertexData.functions-Bo7e6Of9.esm.min.js.map +0 -1
  505. package/dist/chunks/meshUboDeclaration-QvH0RgeZ.esm.js +0 -26
  506. package/dist/chunks/meshUboDeclaration-QvH0RgeZ.esm.js.map +0 -1
  507. package/dist/chunks/meshUboDeclaration-g2s_cYI1.esm.min.js +0 -2
  508. package/dist/chunks/meshUboDeclaration-g2s_cYI1.esm.min.js.map +0 -1
  509. package/dist/chunks/objFileLoader-BOutXdVR.esm.min.js +0 -2
  510. package/dist/chunks/objFileLoader-BOutXdVR.esm.min.js.map +0 -1
  511. package/dist/chunks/objFileLoader-BPwrX8RK.esm.js +0 -1338
  512. package/dist/chunks/objFileLoader-BPwrX8RK.esm.js.map +0 -1
  513. package/dist/chunks/oitFragment-CmcWUhsZ.esm.js +0 -1240
  514. package/dist/chunks/oitFragment-CmcWUhsZ.esm.js.map +0 -1
  515. package/dist/chunks/oitFragment-D8XBQ6Wa.esm.js +0 -1078
  516. package/dist/chunks/oitFragment-D8XBQ6Wa.esm.js.map +0 -1
  517. package/dist/chunks/oitFragment-DgAlmoHs.esm.min.js +0 -2
  518. package/dist/chunks/oitFragment-DgAlmoHs.esm.min.js.map +0 -1
  519. package/dist/chunks/oitFragment-DpJ5xGhy.esm.min.js +0 -2
  520. package/dist/chunks/oitFragment-DpJ5xGhy.esm.min.js.map +0 -1
  521. package/dist/chunks/pass.fragment--XRaXRhU.esm.js +0 -15
  522. package/dist/chunks/pass.fragment--XRaXRhU.esm.js.map +0 -1
  523. package/dist/chunks/pass.fragment-5Q3qXxDe.esm.min.js +0 -2
  524. package/dist/chunks/pass.fragment-5Q3qXxDe.esm.min.js.map +0 -1
  525. package/dist/chunks/pass.fragment-BBLiyU_i.esm.min.js +0 -2
  526. package/dist/chunks/pass.fragment-BBLiyU_i.esm.min.js.map +0 -1
  527. package/dist/chunks/pass.fragment-DI4ZYZJe.esm.js +0 -15
  528. package/dist/chunks/pass.fragment-DI4ZYZJe.esm.js.map +0 -1
  529. package/dist/chunks/pbr.fragment-C7xQS4ZJ.esm.js +0 -3269
  530. package/dist/chunks/pbr.fragment-C7xQS4ZJ.esm.js.map +0 -1
  531. package/dist/chunks/pbr.fragment-Ddxaik8T.esm.min.js +0 -2
  532. package/dist/chunks/pbr.fragment-Ddxaik8T.esm.min.js.map +0 -1
  533. package/dist/chunks/pbr.fragment-fky04gH_.esm.js +0 -3222
  534. package/dist/chunks/pbr.fragment-fky04gH_.esm.js.map +0 -1
  535. package/dist/chunks/pbr.fragment-ya1zai4w.esm.min.js +0 -2
  536. package/dist/chunks/pbr.fragment-ya1zai4w.esm.min.js.map +0 -1
  537. package/dist/chunks/pbr.vertex-BPEYHoRM.esm.js +0 -223
  538. package/dist/chunks/pbr.vertex-BPEYHoRM.esm.js.map +0 -1
  539. package/dist/chunks/pbr.vertex-BXcMYADF.esm.js +0 -348
  540. package/dist/chunks/pbr.vertex-BXcMYADF.esm.js.map +0 -1
  541. package/dist/chunks/pbr.vertex-BjA08auU.esm.min.js +0 -2
  542. package/dist/chunks/pbr.vertex-BjA08auU.esm.min.js.map +0 -1
  543. package/dist/chunks/pbr.vertex-Cx2V3lNf.esm.min.js +0 -2
  544. package/dist/chunks/pbr.vertex-Cx2V3lNf.esm.min.js.map +0 -1
  545. package/dist/chunks/postprocess.vertex-BHpQrNSx.esm.min.js +0 -2
  546. package/dist/chunks/postprocess.vertex-BHpQrNSx.esm.min.js.map +0 -1
  547. package/dist/chunks/postprocess.vertex-DnDbk0tq.esm.js +0 -20
  548. package/dist/chunks/postprocess.vertex-DnDbk0tq.esm.js.map +0 -1
  549. package/dist/chunks/rawTexture-CWiRIto8.esm.js +0 -191
  550. package/dist/chunks/rawTexture-CWiRIto8.esm.js.map +0 -1
  551. package/dist/chunks/rawTexture-DX8V9PEj.esm.min.js +0 -2
  552. package/dist/chunks/rawTexture-DX8V9PEj.esm.min.js.map +0 -1
  553. package/dist/chunks/ray-ix7SqYNQ.esm.min.js +0 -2
  554. package/dist/chunks/ray-ix7SqYNQ.esm.min.js.map +0 -1
  555. package/dist/chunks/ray-nTZBkOil.esm.js +0 -946
  556. package/dist/chunks/ray-nTZBkOil.esm.js.map +0 -1
  557. package/dist/chunks/rgbdDecode.fragment-Be3ofvlt.esm.min.js +0 -2
  558. package/dist/chunks/rgbdDecode.fragment-Be3ofvlt.esm.min.js.map +0 -1
  559. package/dist/chunks/rgbdDecode.fragment-C05QJpT2.esm.js +0 -13
  560. package/dist/chunks/rgbdDecode.fragment-C05QJpT2.esm.js.map +0 -1
  561. package/dist/chunks/rgbdDecode.fragment-D3SYBclQ.esm.min.js +0 -2
  562. package/dist/chunks/rgbdDecode.fragment-D3SYBclQ.esm.min.js.map +0 -1
  563. package/dist/chunks/rgbdDecode.fragment-DBG6KfKF.esm.js +0 -13
  564. package/dist/chunks/rgbdDecode.fragment-DBG6KfKF.esm.js.map +0 -1
  565. package/dist/chunks/rgbdEncode.fragment-BlhtohrO.esm.js +0 -13
  566. package/dist/chunks/rgbdEncode.fragment-BlhtohrO.esm.js.map +0 -1
  567. package/dist/chunks/rgbdEncode.fragment-BmJKYw6A.esm.min.js +0 -2
  568. package/dist/chunks/rgbdEncode.fragment-BmJKYw6A.esm.min.js.map +0 -1
  569. package/dist/chunks/rgbdEncode.fragment-dr2kGjSO.esm.js +0 -13
  570. package/dist/chunks/rgbdEncode.fragment-dr2kGjSO.esm.js.map +0 -1
  571. package/dist/chunks/rgbdEncode.fragment-hXPzg1p5.esm.min.js +0 -2
  572. package/dist/chunks/rgbdEncode.fragment-hXPzg1p5.esm.min.js.map +0 -1
  573. package/dist/chunks/splatFileLoader-Bs42LtsP.esm.min.js +0 -2
  574. package/dist/chunks/splatFileLoader-Bs42LtsP.esm.min.js.map +0 -1
  575. package/dist/chunks/splatFileLoader-Dp33YOem.esm.js +0 -3379
  576. package/dist/chunks/splatFileLoader-Dp33YOem.esm.js.map +0 -1
  577. package/dist/chunks/spotLight-C0NmKeem.esm.js +0 -701
  578. package/dist/chunks/spotLight-C0NmKeem.esm.js.map +0 -1
  579. package/dist/chunks/spotLight-CcuCNdES.esm.min.js +0 -2
  580. package/dist/chunks/spotLight-CcuCNdES.esm.min.js.map +0 -1
  581. package/dist/chunks/standardMaterial-C1E5n_4w.esm.min.js +0 -2
  582. package/dist/chunks/standardMaterial-C1E5n_4w.esm.min.js.map +0 -1
  583. package/dist/chunks/standardMaterial-v_D8QA4q.esm.js +0 -1807
  584. package/dist/chunks/standardMaterial-v_D8QA4q.esm.js.map +0 -1
  585. package/dist/chunks/stlFileLoader-DC2IRQDj.esm.min.js +0 -2
  586. package/dist/chunks/stlFileLoader-DC2IRQDj.esm.min.js.map +0 -1
  587. package/dist/chunks/stlFileLoader-LRHEIFfU.esm.js +0 -238
  588. package/dist/chunks/stlFileLoader-LRHEIFfU.esm.js.map +0 -1
  589. package/dist/chunks/tgaTextureLoader-2ekJC0En.esm.js +0 -349
  590. package/dist/chunks/tgaTextureLoader-2ekJC0En.esm.js.map +0 -1
  591. package/dist/chunks/tgaTextureLoader-Clj6zUK-.esm.min.js +0 -2
  592. package/dist/chunks/tgaTextureLoader-Clj6zUK-.esm.min.js.map +0 -1
  593. package/dist/chunks/thinEngine-DksimP2U.esm.js +0 -3848
  594. package/dist/chunks/thinEngine-DksimP2U.esm.js.map +0 -1
  595. package/dist/chunks/thinEngine-tsALaFYH.esm.min.js +0 -2
  596. package/dist/chunks/thinEngine-tsALaFYH.esm.min.js.map +0 -1
  597. package/dist/chunks/thinInstanceMesh-B8AW0Oa2.esm.js +0 -314
  598. package/dist/chunks/thinInstanceMesh-B8AW0Oa2.esm.js.map +0 -1
  599. package/dist/chunks/thinInstanceMesh-kCGEJ0-e.esm.min.js +0 -2
  600. package/dist/chunks/thinInstanceMesh-kCGEJ0-e.esm.min.js.map +0 -1
  601. package/dist/chunks/vertexColorMixing-Bjijk3lU.esm.min.js +0 -2
  602. package/dist/chunks/vertexColorMixing-Bjijk3lU.esm.min.js.map +0 -1
  603. package/dist/chunks/vertexColorMixing-D9917nJN.esm.js +0 -428
  604. package/dist/chunks/vertexColorMixing-D9917nJN.esm.js.map +0 -1
  605. package/dist/chunks/vertexColorMixing-DgthWrKf.esm.min.js +0 -2
  606. package/dist/chunks/vertexColorMixing-DgthWrKf.esm.min.js.map +0 -1
  607. package/dist/chunks/vertexColorMixing-U1SA6UK3.esm.js +0 -538
  608. package/dist/chunks/vertexColorMixing-U1SA6UK3.esm.js.map +0 -1
  609. package/dist/chunks/webgpuEngine-BOGR1D8F.esm.min.js +0 -2
  610. package/dist/chunks/webgpuEngine-BOGR1D8F.esm.min.js.map +0 -1
  611. package/dist/chunks/webgpuEngine-BrzOpZ-2.esm.js +0 -11533
  612. package/dist/chunks/webgpuEngine-BrzOpZ-2.esm.js.map +0 -1
  613. package/dist/chunks/workerPool-BUOov2K1.esm.js +0 -122
  614. package/dist/chunks/workerPool-BUOov2K1.esm.js.map +0 -1
  615. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js +0 -2
  616. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js.map +0 -1
  617. package/lib/index.d.ts +0 -591
  618. package/lib/index.js +0 -2165
  619. package/lib/index.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"ktxTextureLoader-jVu-Sj-0.esm.js","sources":["../../../../../dev/core/dist/Misc/khronosTextureContainer.js","../../../../../dev/core/dist/Materials/Textures/ktx2decoderTypes.js","../../../../../dev/core/dist/Misc/khronosTextureContainer2Worker.js","../../../../../dev/core/dist/Misc/khronosTextureContainer2.js","../../../../../dev/core/dist/Materials/Textures/Loaders/ktxTextureLoader.js"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport { Logger } from \"../Misc/logger\";\n/**\n * for description see https://www.khronos.org/opengles/sdk/tools/KTX/\n * for file layout see https://www.khronos.org/opengles/sdk/tools/KTX/file_format_spec/\n */\nexport class KhronosTextureContainer {\n /**\n * Creates a new KhronosTextureContainer\n * @param data contents of the KTX container file\n * @param facesExpected should be either 1 or 6, based whether a cube texture or or\n */\n constructor(\n /** contents of the KTX container file */\n data, facesExpected) {\n this.data = data;\n /**\n * If the container has been made invalid (eg. constructor failed to correctly load array buffer)\n */\n this.isInvalid = false;\n if (!KhronosTextureContainer.IsValid(data)) {\n this.isInvalid = true;\n Logger.Error(\"texture missing KTX identifier\");\n return;\n }\n // load the reset of the header in native 32 bit uint\n const dataSize = Uint32Array.BYTES_PER_ELEMENT;\n const headerDataView = new DataView(this.data.buffer, this.data.byteOffset + 12, 13 * dataSize);\n const endianness = headerDataView.getUint32(0, true);\n const littleEndian = endianness === 0x04030201;\n this.glType = headerDataView.getUint32(1 * dataSize, littleEndian); // must be 0 for compressed textures\n this.glTypeSize = headerDataView.getUint32(2 * dataSize, littleEndian); // must be 1 for compressed textures\n this.glFormat = headerDataView.getUint32(3 * dataSize, littleEndian); // must be 0 for compressed textures\n this.glInternalFormat = headerDataView.getUint32(4 * dataSize, littleEndian); // the value of arg passed to gl.compressedTexImage2D(,,x,,,,)\n this.glBaseInternalFormat = headerDataView.getUint32(5 * dataSize, littleEndian); // specify GL_RGB, GL_RGBA, GL_ALPHA, etc (un-compressed only)\n this.pixelWidth = headerDataView.getUint32(6 * dataSize, littleEndian); // level 0 value of arg passed to gl.compressedTexImage2D(,,,x,,,)\n this.pixelHeight = headerDataView.getUint32(7 * dataSize, littleEndian); // level 0 value of arg passed to gl.compressedTexImage2D(,,,,x,,)\n this.pixelDepth = headerDataView.getUint32(8 * dataSize, littleEndian); // level 0 value of arg passed to gl.compressedTexImage3D(,,,,,x,,)\n this.numberOfArrayElements = headerDataView.getUint32(9 * dataSize, littleEndian); // used for texture arrays\n this.numberOfFaces = headerDataView.getUint32(10 * dataSize, littleEndian); // used for cubemap textures, should either be 1 or 6\n this.numberOfMipmapLevels = headerDataView.getUint32(11 * dataSize, littleEndian); // number of levels; disregard possibility of 0 for compressed textures\n this.bytesOfKeyValueData = headerDataView.getUint32(12 * dataSize, littleEndian); // the amount of space after the header for meta-data\n // Make sure we have a compressed type. Not only reduces work, but probably better to let dev know they are not compressing.\n if (this.glType !== 0) {\n Logger.Error(\"only compressed formats currently supported\");\n this.isInvalid = true;\n return;\n }\n else {\n // value of zero is an indication to generate mipmaps @ runtime. Not usually allowed for compressed, so disregard.\n this.numberOfMipmapLevels = Math.max(1, this.numberOfMipmapLevels);\n }\n if (this.pixelHeight === 0 || this.pixelDepth !== 0) {\n Logger.Error(\"only 2D textures currently supported\");\n this.isInvalid = true;\n return;\n }\n if (this.numberOfArrayElements !== 0) {\n Logger.Error(\"texture arrays not currently supported\");\n this.isInvalid = true;\n return;\n }\n if (this.numberOfFaces !== facesExpected) {\n Logger.Error(\"number of faces expected\" + facesExpected + \", but found \" + this.numberOfFaces);\n this.isInvalid = true;\n return;\n }\n // we now have a completely validated file, so could use existence of loadType as success\n // would need to make this more elaborate & adjust checks above to support more than one load type\n this.loadType = KhronosTextureContainer.COMPRESSED_2D;\n }\n /**\n * Uploads KTX content to a Babylon Texture.\n * It is assumed that the texture has already been created & is currently bound\n * @internal\n */\n uploadLevels(texture, loadMipmaps) {\n switch (this.loadType) {\n case KhronosTextureContainer.COMPRESSED_2D:\n this._upload2DCompressedLevels(texture, loadMipmaps);\n break;\n case KhronosTextureContainer.TEX_2D:\n case KhronosTextureContainer.COMPRESSED_3D:\n case KhronosTextureContainer.TEX_3D:\n }\n }\n _upload2DCompressedLevels(texture, loadMipmaps) {\n // initialize width & height for level 1\n let dataOffset = KhronosTextureContainer.HEADER_LEN + this.bytesOfKeyValueData;\n let width = this.pixelWidth;\n let height = this.pixelHeight;\n const mipmapCount = loadMipmaps ? this.numberOfMipmapLevels : 1;\n for (let level = 0; level < mipmapCount; level++) {\n const imageSize = new Int32Array(this.data.buffer, this.data.byteOffset + dataOffset, 1)[0]; // size per face, since not supporting array cubemaps\n dataOffset += 4; //image data starts from next multiple of 4 offset. Each face refers to same imagesize field above.\n for (let face = 0; face < this.numberOfFaces; face++) {\n const byteArray = new Uint8Array(this.data.buffer, this.data.byteOffset + dataOffset, imageSize);\n const engine = texture.getEngine();\n engine._uploadCompressedDataToTextureDirectly(texture, texture.format, width, height, byteArray, face, level);\n dataOffset += imageSize; // add size of the image for the next face/mipmap\n dataOffset += 3 - ((imageSize + 3) % 4); // add padding for odd sized image\n }\n width = Math.max(1.0, width * 0.5);\n height = Math.max(1.0, height * 0.5);\n }\n }\n /**\n * Checks if the given data starts with a KTX file identifier.\n * @param data the data to check\n * @returns true if the data is a KTX file or false otherwise\n */\n static IsValid(data) {\n if (data.byteLength >= 12) {\n // '«', 'K', 'T', 'X', ' ', '1', '1', '»', '\\r', '\\n', '\\x1A', '\\n'\n const identifier = new Uint8Array(data.buffer, data.byteOffset, 12);\n if (identifier[0] === 0xab &&\n identifier[1] === 0x4b &&\n identifier[2] === 0x54 &&\n identifier[3] === 0x58 &&\n identifier[4] === 0x20 &&\n identifier[5] === 0x31 &&\n identifier[6] === 0x31 &&\n identifier[7] === 0xbb &&\n identifier[8] === 0x0d &&\n identifier[9] === 0x0a &&\n identifier[10] === 0x1a &&\n identifier[11] === 0x0a) {\n return true;\n }\n }\n return false;\n }\n}\nKhronosTextureContainer.HEADER_LEN = 12 + 13 * 4; // identifier + header elements (not including key value meta-data pairs)\n// load types\nKhronosTextureContainer.COMPRESSED_2D = 0; // uses a gl.compressedTexImage2D()\nKhronosTextureContainer.COMPRESSED_3D = 1; // uses a gl.compressedTexImage3D()\nKhronosTextureContainer.TEX_2D = 2; // uses a gl.texImage2D()\nKhronosTextureContainer.TEX_3D = 3; // uses a gl.texImage3D()\n//# sourceMappingURL=khronosTextureContainer.js.map","export var SourceTextureFormat;\n(function (SourceTextureFormat) {\n SourceTextureFormat[SourceTextureFormat[\"ETC1S\"] = 0] = \"ETC1S\";\n SourceTextureFormat[SourceTextureFormat[\"UASTC4x4\"] = 1] = \"UASTC4x4\";\n})(SourceTextureFormat || (SourceTextureFormat = {}));\nexport var TranscodeTarget;\n(function (TranscodeTarget) {\n TranscodeTarget[TranscodeTarget[\"ASTC_4X4_RGBA\"] = 0] = \"ASTC_4X4_RGBA\";\n TranscodeTarget[TranscodeTarget[\"BC7_RGBA\"] = 1] = \"BC7_RGBA\";\n TranscodeTarget[TranscodeTarget[\"BC3_RGBA\"] = 2] = \"BC3_RGBA\";\n TranscodeTarget[TranscodeTarget[\"BC1_RGB\"] = 3] = \"BC1_RGB\";\n TranscodeTarget[TranscodeTarget[\"PVRTC1_4_RGBA\"] = 4] = \"PVRTC1_4_RGBA\";\n TranscodeTarget[TranscodeTarget[\"PVRTC1_4_RGB\"] = 5] = \"PVRTC1_4_RGB\";\n TranscodeTarget[TranscodeTarget[\"ETC2_RGBA\"] = 6] = \"ETC2_RGBA\";\n TranscodeTarget[TranscodeTarget[\"ETC1_RGB\"] = 7] = \"ETC1_RGB\";\n TranscodeTarget[TranscodeTarget[\"RGBA32\"] = 8] = \"RGBA32\";\n TranscodeTarget[TranscodeTarget[\"R8\"] = 9] = \"R8\";\n TranscodeTarget[TranscodeTarget[\"RG8\"] = 10] = \"RG8\";\n})(TranscodeTarget || (TranscodeTarget = {}));\nexport var EngineFormat;\n(function (EngineFormat) {\n EngineFormat[EngineFormat[\"COMPRESSED_RGBA_BPTC_UNORM_EXT\"] = 36492] = \"COMPRESSED_RGBA_BPTC_UNORM_EXT\";\n EngineFormat[EngineFormat[\"COMPRESSED_RGBA_ASTC_4X4_KHR\"] = 37808] = \"COMPRESSED_RGBA_ASTC_4X4_KHR\";\n EngineFormat[EngineFormat[\"COMPRESSED_RGB_S3TC_DXT1_EXT\"] = 33776] = \"COMPRESSED_RGB_S3TC_DXT1_EXT\";\n EngineFormat[EngineFormat[\"COMPRESSED_RGBA_S3TC_DXT5_EXT\"] = 33779] = \"COMPRESSED_RGBA_S3TC_DXT5_EXT\";\n EngineFormat[EngineFormat[\"COMPRESSED_RGBA_PVRTC_4BPPV1_IMG\"] = 35842] = \"COMPRESSED_RGBA_PVRTC_4BPPV1_IMG\";\n EngineFormat[EngineFormat[\"COMPRESSED_RGB_PVRTC_4BPPV1_IMG\"] = 35840] = \"COMPRESSED_RGB_PVRTC_4BPPV1_IMG\";\n EngineFormat[EngineFormat[\"COMPRESSED_RGBA8_ETC2_EAC\"] = 37496] = \"COMPRESSED_RGBA8_ETC2_EAC\";\n EngineFormat[EngineFormat[\"COMPRESSED_RGB8_ETC2\"] = 37492] = \"COMPRESSED_RGB8_ETC2\";\n EngineFormat[EngineFormat[\"COMPRESSED_RGB_ETC1_WEBGL\"] = 36196] = \"COMPRESSED_RGB_ETC1_WEBGL\";\n EngineFormat[EngineFormat[\"RGBA8Format\"] = 32856] = \"RGBA8Format\";\n EngineFormat[EngineFormat[\"R8Format\"] = 33321] = \"R8Format\";\n EngineFormat[EngineFormat[\"RG8Format\"] = 33323] = \"RG8Format\";\n})(EngineFormat || (EngineFormat = {}));\n//# sourceMappingURL=ktx2decoderTypes.js.map","export function applyConfig(urls, binariesAndModulesContainer) {\n const KTX2DecoderModule = binariesAndModulesContainer?.jsDecoderModule || KTX2DECODER;\n if (urls) {\n if (urls.wasmUASTCToASTC) {\n KTX2DecoderModule.LiteTranscoder_UASTC_ASTC.WasmModuleURL = urls.wasmUASTCToASTC;\n }\n if (urls.wasmUASTCToBC7) {\n KTX2DecoderModule.LiteTranscoder_UASTC_BC7.WasmModuleURL = urls.wasmUASTCToBC7;\n }\n if (urls.wasmUASTCToRGBA_UNORM) {\n KTX2DecoderModule.LiteTranscoder_UASTC_RGBA_UNORM.WasmModuleURL = urls.wasmUASTCToRGBA_UNORM;\n }\n if (urls.wasmUASTCToRGBA_SRGB) {\n KTX2DecoderModule.LiteTranscoder_UASTC_RGBA_SRGB.WasmModuleURL = urls.wasmUASTCToRGBA_SRGB;\n }\n if (urls.wasmUASTCToR8_UNORM) {\n KTX2DecoderModule.LiteTranscoder_UASTC_R8_UNORM.WasmModuleURL = urls.wasmUASTCToR8_UNORM;\n }\n if (urls.wasmUASTCToRG8_UNORM) {\n KTX2DecoderModule.LiteTranscoder_UASTC_RG8_UNORM.WasmModuleURL = urls.wasmUASTCToRG8_UNORM;\n }\n if (urls.jsMSCTranscoder) {\n KTX2DecoderModule.MSCTranscoder.JSModuleURL = urls.jsMSCTranscoder;\n }\n if (urls.wasmMSCTranscoder) {\n KTX2DecoderModule.MSCTranscoder.WasmModuleURL = urls.wasmMSCTranscoder;\n }\n if (urls.wasmZSTDDecoder) {\n KTX2DecoderModule.ZSTDDecoder.WasmModuleURL = urls.wasmZSTDDecoder;\n }\n }\n if (binariesAndModulesContainer) {\n if (binariesAndModulesContainer.wasmUASTCToASTC) {\n KTX2DecoderModule.LiteTranscoder_UASTC_ASTC.WasmBinary = binariesAndModulesContainer.wasmUASTCToASTC;\n }\n if (binariesAndModulesContainer.wasmUASTCToBC7) {\n KTX2DecoderModule.LiteTranscoder_UASTC_BC7.WasmBinary = binariesAndModulesContainer.wasmUASTCToBC7;\n }\n if (binariesAndModulesContainer.wasmUASTCToRGBA_UNORM) {\n KTX2DecoderModule.LiteTranscoder_UASTC_RGBA_UNORM.WasmBinary = binariesAndModulesContainer.wasmUASTCToRGBA_UNORM;\n }\n if (binariesAndModulesContainer.wasmUASTCToRGBA_SRGB) {\n KTX2DecoderModule.LiteTranscoder_UASTC_RGBA_SRGB.WasmBinary = binariesAndModulesContainer.wasmUASTCToRGBA_SRGB;\n }\n if (binariesAndModulesContainer.wasmUASTCToR8_UNORM) {\n KTX2DecoderModule.LiteTranscoder_UASTC_R8_UNORM.WasmBinary = binariesAndModulesContainer.wasmUASTCToR8_UNORM;\n }\n if (binariesAndModulesContainer.wasmUASTCToRG8_UNORM) {\n KTX2DecoderModule.LiteTranscoder_UASTC_RG8_UNORM.WasmBinary = binariesAndModulesContainer.wasmUASTCToRG8_UNORM;\n }\n if (binariesAndModulesContainer.jsMSCTranscoder) {\n KTX2DecoderModule.MSCTranscoder.JSModule = binariesAndModulesContainer.jsMSCTranscoder;\n }\n if (binariesAndModulesContainer.wasmMSCTranscoder) {\n KTX2DecoderModule.MSCTranscoder.WasmBinary = binariesAndModulesContainer.wasmMSCTranscoder;\n }\n if (binariesAndModulesContainer.wasmZSTDDecoder) {\n KTX2DecoderModule.ZSTDDecoder.WasmBinary = binariesAndModulesContainer.wasmZSTDDecoder;\n }\n }\n}\nexport function workerFunction(KTX2DecoderModule) {\n if (typeof KTX2DecoderModule === \"undefined\" && typeof KTX2DECODER !== \"undefined\") {\n KTX2DecoderModule = KTX2DECODER;\n }\n let ktx2Decoder;\n onmessage = (event) => {\n if (!event.data) {\n return;\n }\n switch (event.data.action) {\n case \"init\": {\n const urls = event.data.urls;\n if (urls) {\n if (urls.jsDecoderModule && typeof KTX2DecoderModule === \"undefined\") {\n importScripts(urls.jsDecoderModule);\n // assuming global namespace populated by the script (UMD pattern)\n KTX2DecoderModule = KTX2DECODER;\n }\n applyConfig(urls);\n }\n if (event.data.wasmBinaries) {\n applyConfig(undefined, { ...event.data.wasmBinaries, jsDecoderModule: KTX2DecoderModule });\n }\n ktx2Decoder = new KTX2DecoderModule.KTX2Decoder();\n postMessage({ action: \"init\" });\n break;\n }\n case \"setDefaultDecoderOptions\": {\n KTX2DecoderModule.KTX2Decoder.DefaultDecoderOptions = event.data.options;\n break;\n }\n case \"decode\":\n ktx2Decoder\n .decode(event.data.data, event.data.caps, event.data.options)\n .then((data) => {\n const buffers = [];\n for (let mip = 0; mip < data.mipmaps.length; ++mip) {\n const mipmap = data.mipmaps[mip];\n if (mipmap && mipmap.data) {\n buffers.push(mipmap.data.buffer);\n }\n }\n postMessage({ action: \"decoded\", success: true, decodedData: data }, buffers);\n })\n .catch((reason) => {\n postMessage({ action: \"decoded\", success: false, msg: reason });\n });\n break;\n }\n };\n}\nexport function initializeWebWorker(worker, wasmBinaries, urls) {\n return new Promise((resolve, reject) => {\n const onError = (error) => {\n worker.removeEventListener(\"error\", onError);\n worker.removeEventListener(\"message\", onMessage);\n reject(error);\n };\n const onMessage = (message) => {\n if (message.data.action === \"init\") {\n worker.removeEventListener(\"error\", onError);\n worker.removeEventListener(\"message\", onMessage);\n resolve(worker);\n }\n };\n worker.addEventListener(\"error\", onError);\n worker.addEventListener(\"message\", onMessage);\n worker.postMessage({\n action: \"init\",\n urls,\n wasmBinaries,\n });\n });\n}\n//# sourceMappingURL=khronosTextureContainer2Worker.js.map","import { Constants } from \"../Engines/constants\";\nimport { AutoReleaseWorkerPool } from \"./workerPool\";\nimport { Tools } from \"./tools\";\nimport { TranscodeTarget } from \"core/Materials/Textures/ktx2decoderTypes\";\nimport { applyConfig, initializeWebWorker, workerFunction } from \"./khronosTextureContainer2Worker\";\n/**\n * Class that defines the default KTX2 decoder options.\n *\n * This class is useful for providing options to the KTX2 decoder to control how the source data is transcoded.\n */\nexport class DefaultKTX2DecoderOptions {\n constructor() {\n this._isDirty = true;\n this._useRGBAIfOnlyBC1BC3AvailableWhenUASTC = true;\n this._ktx2DecoderOptions = {};\n }\n /**\n * Gets the dirty flag\n */\n get isDirty() {\n return this._isDirty;\n }\n /**\n * force a (uncompressed) RGBA transcoded format if transcoding a UASTC source format and ASTC + BC7 are not available as a compressed transcoded format\n */\n get useRGBAIfASTCBC7NotAvailableWhenUASTC() {\n return this._useRGBAIfASTCBC7NotAvailableWhenUASTC;\n }\n set useRGBAIfASTCBC7NotAvailableWhenUASTC(value) {\n if (this._useRGBAIfASTCBC7NotAvailableWhenUASTC === value) {\n return;\n }\n this._useRGBAIfASTCBC7NotAvailableWhenUASTC = value;\n this._isDirty = true;\n }\n /**\n * force a (uncompressed) RGBA transcoded format if transcoding a UASTC source format and only BC1 or BC3 are available as a compressed transcoded format.\n * This property is true by default to favor speed over memory, because currently transcoding from UASTC to BC1/3 is slow because the transcoder transcodes\n * to uncompressed and then recompresses the texture\n */\n get useRGBAIfOnlyBC1BC3AvailableWhenUASTC() {\n return this._useRGBAIfOnlyBC1BC3AvailableWhenUASTC;\n }\n set useRGBAIfOnlyBC1BC3AvailableWhenUASTC(value) {\n if (this._useRGBAIfOnlyBC1BC3AvailableWhenUASTC === value) {\n return;\n }\n this._useRGBAIfOnlyBC1BC3AvailableWhenUASTC = value;\n this._isDirty = true;\n }\n /**\n * force to always use (uncompressed) RGBA for transcoded format\n */\n get forceRGBA() {\n return this._forceRGBA;\n }\n set forceRGBA(value) {\n if (this._forceRGBA === value) {\n return;\n }\n this._forceRGBA = value;\n this._isDirty = true;\n }\n /**\n * force to always use (uncompressed) R8 for transcoded format\n */\n get forceR8() {\n return this._forceR8;\n }\n set forceR8(value) {\n if (this._forceR8 === value) {\n return;\n }\n this._forceR8 = value;\n this._isDirty = true;\n }\n /**\n * force to always use (uncompressed) RG8 for transcoded format\n */\n get forceRG8() {\n return this._forceRG8;\n }\n set forceRG8(value) {\n if (this._forceRG8 === value) {\n return;\n }\n this._forceRG8 = value;\n this._isDirty = true;\n }\n /**\n * list of transcoders to bypass when looking for a suitable transcoder. The available transcoders are:\n * UniversalTranscoder_UASTC_ASTC\n * UniversalTranscoder_UASTC_BC7\n * UniversalTranscoder_UASTC_RGBA_UNORM\n * UniversalTranscoder_UASTC_RGBA_SRGB\n * UniversalTranscoder_UASTC_R8_UNORM\n * UniversalTranscoder_UASTC_RG8_UNORM\n * MSCTranscoder\n */\n get bypassTranscoders() {\n return this._bypassTranscoders;\n }\n set bypassTranscoders(value) {\n if (this._bypassTranscoders === value) {\n return;\n }\n this._bypassTranscoders = value;\n this._isDirty = true;\n }\n /** @internal */\n _getKTX2DecoderOptions() {\n if (!this._isDirty) {\n return this._ktx2DecoderOptions;\n }\n this._isDirty = false;\n const options = {\n useRGBAIfASTCBC7NotAvailableWhenUASTC: this._useRGBAIfASTCBC7NotAvailableWhenUASTC,\n forceRGBA: this._forceRGBA,\n forceR8: this._forceR8,\n forceRG8: this._forceRG8,\n bypassTranscoders: this._bypassTranscoders,\n };\n if (this.useRGBAIfOnlyBC1BC3AvailableWhenUASTC) {\n options.transcodeFormatDecisionTree = {\n UASTC: {\n transcodeFormat: [TranscodeTarget.BC1_RGB, TranscodeTarget.BC3_RGBA],\n yes: {\n transcodeFormat: TranscodeTarget.RGBA32,\n engineFormat: 32856 /* EngineFormat.RGBA8Format */,\n roundToMultiple4: false,\n },\n },\n };\n }\n this._ktx2DecoderOptions = options;\n return options;\n }\n}\n/**\n * Class for loading KTX2 files\n */\nexport class KhronosTextureContainer2 {\n static GetDefaultNumWorkers() {\n if (typeof navigator !== \"object\" || !navigator.hardwareConcurrency) {\n return 1;\n }\n // Use 50% of the available logical processors but capped at 4.\n return Math.min(Math.floor(navigator.hardwareConcurrency * 0.5), 4);\n }\n static _Initialize(numWorkers) {\n if (KhronosTextureContainer2._WorkerPoolPromise || KhronosTextureContainer2._DecoderModulePromise) {\n return;\n }\n const urls = {\n jsDecoderModule: Tools.GetBabylonScriptURL(this.URLConfig.jsDecoderModule, true),\n wasmUASTCToASTC: Tools.GetBabylonScriptURL(this.URLConfig.wasmUASTCToASTC, true),\n wasmUASTCToBC7: Tools.GetBabylonScriptURL(this.URLConfig.wasmUASTCToBC7, true),\n wasmUASTCToRGBA_UNORM: Tools.GetBabylonScriptURL(this.URLConfig.wasmUASTCToRGBA_UNORM, true),\n wasmUASTCToRGBA_SRGB: Tools.GetBabylonScriptURL(this.URLConfig.wasmUASTCToRGBA_SRGB, true),\n wasmUASTCToR8_UNORM: Tools.GetBabylonScriptURL(this.URLConfig.wasmUASTCToR8_UNORM, true),\n wasmUASTCToRG8_UNORM: Tools.GetBabylonScriptURL(this.URLConfig.wasmUASTCToRG8_UNORM, true),\n jsMSCTranscoder: Tools.GetBabylonScriptURL(this.URLConfig.jsMSCTranscoder, true),\n wasmMSCTranscoder: Tools.GetBabylonScriptURL(this.URLConfig.wasmMSCTranscoder, true),\n wasmZSTDDecoder: Tools.GetBabylonScriptURL(this.URLConfig.wasmZSTDDecoder, true),\n };\n if (numWorkers && typeof Worker === \"function\" && typeof URL !== \"undefined\") {\n KhronosTextureContainer2._WorkerPoolPromise = new Promise((resolve) => {\n const workerContent = `${applyConfig}(${workerFunction})()`;\n const workerBlobUrl = URL.createObjectURL(new Blob([workerContent], { type: \"application/javascript\" }));\n resolve(new AutoReleaseWorkerPool(numWorkers, () => initializeWebWorker(new Worker(workerBlobUrl), undefined, urls)));\n });\n }\n else {\n if (typeof KhronosTextureContainer2._KTX2DecoderModule === \"undefined\") {\n KhronosTextureContainer2._DecoderModulePromise = Tools.LoadBabylonScriptAsync(urls.jsDecoderModule).then(() => {\n KhronosTextureContainer2._KTX2DecoderModule = KTX2DECODER;\n KhronosTextureContainer2._KTX2DecoderModule.MSCTranscoder.UseFromWorkerThread = false;\n KhronosTextureContainer2._KTX2DecoderModule.WASMMemoryManager.LoadBinariesFromCurrentThread = true;\n applyConfig(urls, KhronosTextureContainer2._KTX2DecoderModule);\n return new KhronosTextureContainer2._KTX2DecoderModule.KTX2Decoder();\n });\n }\n else {\n KhronosTextureContainer2._KTX2DecoderModule.MSCTranscoder.UseFromWorkerThread = false;\n KhronosTextureContainer2._KTX2DecoderModule.WASMMemoryManager.LoadBinariesFromCurrentThread = true;\n KhronosTextureContainer2._DecoderModulePromise = Promise.resolve(new KhronosTextureContainer2._KTX2DecoderModule.KTX2Decoder());\n }\n }\n }\n /**\n * Constructor\n * @param engine The engine to use\n * @param numWorkersOrOptions The number of workers for async operations. Specify `0` to disable web workers and run synchronously in the current context.\n */\n constructor(engine, numWorkersOrOptions = KhronosTextureContainer2.DefaultNumWorkers) {\n this._engine = engine;\n const workerPoolOption = (typeof numWorkersOrOptions === \"object\" && numWorkersOrOptions.workerPool) || KhronosTextureContainer2.WorkerPool;\n if (workerPoolOption) {\n KhronosTextureContainer2._WorkerPoolPromise = Promise.resolve(workerPoolOption);\n }\n else {\n // set the KTX2 decoder module\n if (typeof numWorkersOrOptions === \"object\") {\n KhronosTextureContainer2._KTX2DecoderModule = numWorkersOrOptions?.binariesAndModulesContainer?.jsDecoderModule;\n }\n else if (typeof KTX2DECODER !== \"undefined\") {\n KhronosTextureContainer2._KTX2DecoderModule = KTX2DECODER;\n }\n const numberOfWorkers = typeof numWorkersOrOptions === \"number\" ? numWorkersOrOptions : (numWorkersOrOptions.numWorkers ?? KhronosTextureContainer2.DefaultNumWorkers);\n KhronosTextureContainer2._Initialize(numberOfWorkers);\n }\n }\n /**\n * @internal\n */\n _uploadAsync(data, internalTexture, options) {\n const caps = this._engine.getCaps();\n const compressedTexturesCaps = {\n astc: !!caps.astc,\n bptc: !!caps.bptc,\n s3tc: !!caps.s3tc,\n pvrtc: !!caps.pvrtc,\n etc2: !!caps.etc2,\n etc1: !!caps.etc1,\n };\n if (KhronosTextureContainer2._WorkerPoolPromise) {\n return KhronosTextureContainer2._WorkerPoolPromise.then((workerPool) => {\n return new Promise((resolve, reject) => {\n workerPool.push((worker, onComplete) => {\n const onError = (error) => {\n worker.removeEventListener(\"error\", onError);\n worker.removeEventListener(\"message\", onMessage);\n reject(error);\n onComplete();\n };\n const onMessage = (message) => {\n if (message.data.action === \"decoded\") {\n worker.removeEventListener(\"error\", onError);\n worker.removeEventListener(\"message\", onMessage);\n if (!message.data.success) {\n reject({ message: message.data.msg });\n }\n else {\n try {\n this._createTexture(message.data.decodedData, internalTexture, options);\n resolve();\n }\n catch (err) {\n reject({ message: err });\n }\n }\n onComplete();\n }\n };\n worker.addEventListener(\"error\", onError);\n worker.addEventListener(\"message\", onMessage);\n worker.postMessage({ action: \"setDefaultDecoderOptions\", options: KhronosTextureContainer2.DefaultDecoderOptions._getKTX2DecoderOptions() });\n const dataCopy = new Uint8Array(data.byteLength);\n dataCopy.set(new Uint8Array(data.buffer, data.byteOffset, data.byteLength));\n worker.postMessage({ action: \"decode\", data: dataCopy, caps: compressedTexturesCaps, options }, [dataCopy.buffer]);\n });\n });\n });\n }\n else if (KhronosTextureContainer2._DecoderModulePromise) {\n return KhronosTextureContainer2._DecoderModulePromise.then((decoder) => {\n if (KhronosTextureContainer2.DefaultDecoderOptions.isDirty) {\n KhronosTextureContainer2._KTX2DecoderModule.KTX2Decoder.DefaultDecoderOptions = KhronosTextureContainer2.DefaultDecoderOptions._getKTX2DecoderOptions();\n }\n return new Promise((resolve, reject) => {\n decoder\n .decode(data, caps)\n .then((data) => {\n this._createTexture(data, internalTexture);\n resolve();\n })\n .catch((reason) => {\n reject({ message: reason });\n });\n });\n });\n }\n throw new Error(\"KTX2 decoder module is not available\");\n }\n _createTexture(data, internalTexture, options) {\n const oglTexture2D = 3553; // gl.TEXTURE_2D\n this._engine._bindTextureDirectly(oglTexture2D, internalTexture);\n if (options) {\n // return back some information about the decoded data\n options.transcodedFormat = data.transcodedFormat;\n options.isInGammaSpace = data.isInGammaSpace;\n options.hasAlpha = data.hasAlpha;\n options.transcoderName = data.transcoderName;\n }\n let isUncompressedFormat = true;\n switch (data.transcodedFormat) {\n case 0x8058 /* RGBA8 */:\n internalTexture.type = Constants.TEXTURETYPE_UNSIGNED_BYTE;\n internalTexture.format = Constants.TEXTUREFORMAT_RGBA;\n break;\n case 0x8229 /* R8 */:\n internalTexture.type = Constants.TEXTURETYPE_UNSIGNED_BYTE;\n internalTexture.format = Constants.TEXTUREFORMAT_R;\n break;\n case 0x822b /* RG8 */:\n internalTexture.type = Constants.TEXTURETYPE_UNSIGNED_BYTE;\n internalTexture.format = Constants.TEXTUREFORMAT_RG;\n break;\n default:\n internalTexture.format = data.transcodedFormat;\n isUncompressedFormat = false;\n break;\n }\n internalTexture._gammaSpace = data.isInGammaSpace;\n internalTexture.generateMipMaps = data.mipmaps.length > 1;\n if (data.errors) {\n throw new Error(\"KTX2 container - could not transcode the data. \" + data.errors);\n }\n for (let t = 0; t < data.mipmaps.length; ++t) {\n const mipmap = data.mipmaps[t];\n if (!mipmap || !mipmap.data) {\n throw new Error(\"KTX2 container - could not transcode one of the image\");\n }\n if (isUncompressedFormat) {\n // uncompressed RGBA / R8 / RG8\n internalTexture.width = mipmap.width; // need to set width/height so that the call to _uploadDataToTextureDirectly uses the right dimensions\n internalTexture.height = mipmap.height;\n this._engine._uploadDataToTextureDirectly(internalTexture, mipmap.data, 0, t, undefined, true);\n }\n else {\n this._engine._uploadCompressedDataToTextureDirectly(internalTexture, data.transcodedFormat, mipmap.width, mipmap.height, mipmap.data, 0, t);\n }\n }\n internalTexture._extension = \".ktx2\";\n internalTexture.width = data.mipmaps[0].width;\n internalTexture.height = data.mipmaps[0].height;\n internalTexture.isReady = true;\n this._engine._bindTextureDirectly(oglTexture2D, null);\n }\n /**\n * Checks if the given data starts with a KTX2 file identifier.\n * @param data the data to check\n * @returns true if the data is a KTX2 file or false otherwise\n */\n static IsValid(data) {\n if (data.byteLength >= 12) {\n // '«', 'K', 'T', 'X', ' ', '2', '0', '»', '\\r', '\\n', '\\x1A', '\\n'\n const identifier = new Uint8Array(data.buffer, data.byteOffset, 12);\n if (identifier[0] === 0xab &&\n identifier[1] === 0x4b &&\n identifier[2] === 0x54 &&\n identifier[3] === 0x58 &&\n identifier[4] === 0x20 &&\n identifier[5] === 0x32 &&\n identifier[6] === 0x30 &&\n identifier[7] === 0xbb &&\n identifier[8] === 0x0d &&\n identifier[9] === 0x0a &&\n identifier[10] === 0x1a &&\n identifier[11] === 0x0a) {\n return true;\n }\n }\n return false;\n }\n}\n/**\n * URLs to use when loading the KTX2 decoder module as well as its dependencies\n * If a url is null, the default url is used (pointing to https://preview.babylonjs.com)\n * Note that jsDecoderModule can't be null and that the other dependencies will only be loaded if necessary\n * Urls you can change:\n * URLConfig.jsDecoderModule\n * URLConfig.wasmUASTCToASTC\n * URLConfig.wasmUASTCToBC7\n * URLConfig.wasmUASTCToRGBA_UNORM\n * URLConfig.wasmUASTCToRGBA_SRGB\n * URLConfig.wasmUASTCToR8_UNORM\n * URLConfig.wasmUASTCToRG8_UNORM\n * URLConfig.jsMSCTranscoder\n * URLConfig.wasmMSCTranscoder\n * URLConfig.wasmZSTDDecoder\n * You can see their default values in this PG: https://playground.babylonjs.com/#EIJH8L#29\n */\nKhronosTextureContainer2.URLConfig = {\n jsDecoderModule: \"https://cdn.babylonjs.com/babylon.ktx2Decoder.js\",\n wasmUASTCToASTC: null,\n wasmUASTCToBC7: null,\n wasmUASTCToRGBA_UNORM: null,\n wasmUASTCToRGBA_SRGB: null,\n wasmUASTCToR8_UNORM: null,\n wasmUASTCToRG8_UNORM: null,\n jsMSCTranscoder: null,\n wasmMSCTranscoder: null,\n wasmZSTDDecoder: null,\n};\n/**\n * Default number of workers used to handle data decoding\n */\nKhronosTextureContainer2.DefaultNumWorkers = KhronosTextureContainer2.GetDefaultNumWorkers();\n/**\n * Default configuration for the KTX2 decoder.\n * The options defined in this way have priority over those passed when creating a KTX2 texture with new Texture(...).\n */\nKhronosTextureContainer2.DefaultDecoderOptions = new DefaultKTX2DecoderOptions();\n//# sourceMappingURL=khronosTextureContainer2.js.map","import { KhronosTextureContainer } from \"../../../Misc/khronosTextureContainer\";\nimport { KhronosTextureContainer2 } from \"../../../Misc/khronosTextureContainer2\";\nimport { Logger } from \"../../../Misc/logger\";\nimport { Constants } from \"../../../Engines/constants\";\nfunction mapSRGBToLinear(format) {\n switch (format) {\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB_S3TC_DXT1_EXT:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGB_S3TC_DXT1;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT3;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT5;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ETC2:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGB8_ETC2;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA8_ETC2_EAC;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_4x4;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_BPTC_UNORM:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_BPTC_UNORM;\n }\n return null;\n}\n/**\n * Implementation of the KTX Texture Loader.\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class _KTXTextureLoader {\n constructor() {\n /**\n * Defines whether the loader supports cascade loading the different faces.\n */\n this.supportCascades = false;\n }\n /**\n * Uploads the cube texture data to the WebGL texture. It has already been bound.\n * @param data contains the texture data\n * @param texture defines the BabylonJS internal texture\n * @param createPolynomials will be true if polynomials have been requested\n * @param onLoad defines the callback to trigger once the texture is ready\n */\n loadCubeData(data, texture, createPolynomials, onLoad) {\n if (Array.isArray(data)) {\n return;\n }\n // Need to invert vScale as invertY via UNPACK_FLIP_Y_WEBGL is not supported by compressed texture\n texture._invertVScale = !texture.invertY;\n const engine = texture.getEngine();\n const ktx = new KhronosTextureContainer(data, 6);\n const loadMipmap = ktx.numberOfMipmapLevels > 1 && texture.generateMipMaps;\n engine._unpackFlipY(true);\n ktx.uploadLevels(texture, texture.generateMipMaps);\n texture.width = ktx.pixelWidth;\n texture.height = ktx.pixelHeight;\n engine._setCubeMapTextureParams(texture, loadMipmap, ktx.numberOfMipmapLevels - 1);\n texture.isReady = true;\n texture.onLoadedObservable.notifyObservers(texture);\n texture.onLoadedObservable.clear();\n if (onLoad) {\n onLoad();\n }\n }\n /**\n * Uploads the 2D texture data to the WebGL texture. It has already been bound once in the callback.\n * @param data contains the texture data\n * @param texture defines the BabylonJS internal texture\n * @param callback defines the method to call once ready to upload\n * @param options\n */\n loadData(data, texture, callback, options) {\n if (KhronosTextureContainer.IsValid(data)) {\n // Need to invert vScale as invertY via UNPACK_FLIP_Y_WEBGL is not supported by compressed texture\n texture._invertVScale = !texture.invertY;\n const ktx = new KhronosTextureContainer(data, 1);\n const mappedFormat = mapSRGBToLinear(ktx.glInternalFormat);\n if (mappedFormat) {\n texture.format = mappedFormat;\n texture._useSRGBBuffer = texture.getEngine()._getUseSRGBBuffer(true, texture.generateMipMaps);\n texture._gammaSpace = true;\n }\n else {\n texture.format = ktx.glInternalFormat;\n }\n callback(ktx.pixelWidth, ktx.pixelHeight, texture.generateMipMaps, true, () => {\n ktx.uploadLevels(texture, texture.generateMipMaps);\n }, ktx.isInvalid);\n }\n else if (KhronosTextureContainer2.IsValid(data)) {\n const ktx2 = new KhronosTextureContainer2(texture.getEngine());\n ktx2._uploadAsync(data, texture, options).then(() => {\n callback(texture.width, texture.height, texture.generateMipMaps, true, () => { }, false);\n }, (error) => {\n Logger.Warn(`Failed to load KTX2 texture data: ${error.message}`);\n callback(0, 0, false, false, () => { }, true);\n });\n }\n else {\n Logger.Error(\"texture missing KTX identifier\");\n callback(0, 0, false, false, () => { }, true);\n }\n }\n}\n//# sourceMappingURL=ktxTextureLoader.js.map"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{L as e,T as t,C as r}from"./index-rZVkfTE6.esm.min.js";import{A as s}from"./workerPool-BWHiDmEZ.esm.min.js";class a{constructor(t,r){if(this.data=t,this.isInvalid=!1,!a.IsValid(t))return this.isInvalid=!0,void e.Error("texture missing KTX identifier");const s=Uint32Array.BYTES_PER_ELEMENT,o=new DataView(this.data.buffer,this.data.byteOffset+12,13*s),i=67305985===o.getUint32(0,!0);return this.glType=o.getUint32(1*s,i),this.glTypeSize=o.getUint32(2*s,i),this.glFormat=o.getUint32(3*s,i),this.glInternalFormat=o.getUint32(4*s,i),this.glBaseInternalFormat=o.getUint32(5*s,i),this.pixelWidth=o.getUint32(6*s,i),this.pixelHeight=o.getUint32(7*s,i),this.pixelDepth=o.getUint32(8*s,i),this.numberOfArrayElements=o.getUint32(9*s,i),this.numberOfFaces=o.getUint32(10*s,i),this.numberOfMipmapLevels=o.getUint32(11*s,i),this.bytesOfKeyValueData=o.getUint32(12*s,i),0!==this.glType?(e.Error("only compressed formats currently supported"),void(this.isInvalid=!0)):(this.numberOfMipmapLevels=Math.max(1,this.numberOfMipmapLevels),0===this.pixelHeight||0!==this.pixelDepth?(e.Error("only 2D textures currently supported"),void(this.isInvalid=!0)):0!==this.numberOfArrayElements?(e.Error("texture arrays not currently supported"),void(this.isInvalid=!0)):this.numberOfFaces!==r?(e.Error("number of faces expected"+r+", but found "+this.numberOfFaces),void(this.isInvalid=!0)):void(this.loadType=a.COMPRESSED_2D))}uploadLevels(e,t){if(this.loadType===a.COMPRESSED_2D)this._upload2DCompressedLevels(e,t)}_upload2DCompressedLevels(e,t){let r=a.HEADER_LEN+this.bytesOfKeyValueData,s=this.pixelWidth,o=this.pixelHeight;const i=t?this.numberOfMipmapLevels:1;for(let t=0;t<i;t++){const a=new Int32Array(this.data.buffer,this.data.byteOffset+r,1)[0];r+=4;for(let i=0;i<this.numberOfFaces;i++){const n=new Uint8Array(this.data.buffer,this.data.byteOffset+r,a);e.getEngine()._uploadCompressedDataToTextureDirectly(e,e.format,s,o,n,i,t),r+=a,r+=3-(a+3)%4}s=Math.max(1,.5*s),o=Math.max(1,.5*o)}}static IsValid(e){if(e.byteLength>=12){const t=new Uint8Array(e.buffer,e.byteOffset,12);if(171===t[0]&&75===t[1]&&84===t[2]&&88===t[3]&&32===t[4]&&49===t[5]&&49===t[6]&&187===t[7]&&13===t[8]&&10===t[9]&&26===t[10]&&10===t[11])return!0}return!1}}var o,i,n;function T(e,t){const r=t?.jsDecoderModule||KTX2DECODER;e&&(e.wasmUASTCToASTC&&(r.LiteTranscoder_UASTC_ASTC.WasmModuleURL=e.wasmUASTCToASTC),e.wasmUASTCToBC7&&(r.LiteTranscoder_UASTC_BC7.WasmModuleURL=e.wasmUASTCToBC7),e.wasmUASTCToRGBA_UNORM&&(r.LiteTranscoder_UASTC_RGBA_UNORM.WasmModuleURL=e.wasmUASTCToRGBA_UNORM),e.wasmUASTCToRGBA_SRGB&&(r.LiteTranscoder_UASTC_RGBA_SRGB.WasmModuleURL=e.wasmUASTCToRGBA_SRGB),e.wasmUASTCToR8_UNORM&&(r.LiteTranscoder_UASTC_R8_UNORM.WasmModuleURL=e.wasmUASTCToR8_UNORM),e.wasmUASTCToRG8_UNORM&&(r.LiteTranscoder_UASTC_RG8_UNORM.WasmModuleURL=e.wasmUASTCToRG8_UNORM),e.jsMSCTranscoder&&(r.MSCTranscoder.JSModuleURL=e.jsMSCTranscoder),e.wasmMSCTranscoder&&(r.MSCTranscoder.WasmModuleURL=e.wasmMSCTranscoder),e.wasmZSTDDecoder&&(r.ZSTDDecoder.WasmModuleURL=e.wasmZSTDDecoder)),t&&(t.wasmUASTCToASTC&&(r.LiteTranscoder_UASTC_ASTC.WasmBinary=t.wasmUASTCToASTC),t.wasmUASTCToBC7&&(r.LiteTranscoder_UASTC_BC7.WasmBinary=t.wasmUASTCToBC7),t.wasmUASTCToRGBA_UNORM&&(r.LiteTranscoder_UASTC_RGBA_UNORM.WasmBinary=t.wasmUASTCToRGBA_UNORM),t.wasmUASTCToRGBA_SRGB&&(r.LiteTranscoder_UASTC_RGBA_SRGB.WasmBinary=t.wasmUASTCToRGBA_SRGB),t.wasmUASTCToR8_UNORM&&(r.LiteTranscoder_UASTC_R8_UNORM.WasmBinary=t.wasmUASTCToR8_UNORM),t.wasmUASTCToRG8_UNORM&&(r.LiteTranscoder_UASTC_RG8_UNORM.WasmBinary=t.wasmUASTCToRG8_UNORM),t.jsMSCTranscoder&&(r.MSCTranscoder.JSModule=t.jsMSCTranscoder),t.wasmMSCTranscoder&&(r.MSCTranscoder.WasmBinary=t.wasmMSCTranscoder),t.wasmZSTDDecoder&&(r.ZSTDDecoder.WasmBinary=t.wasmZSTDDecoder))}function _(e){let t;void 0===e&&"undefined"!=typeof KTX2DECODER&&(e=KTX2DECODER),onmessage=r=>{if(r.data)switch(r.data.action){case"init":{const s=r.data.urls;s&&(s.jsDecoderModule&&void 0===e&&(importScripts(s.jsDecoderModule),e=KTX2DECODER),T(s)),r.data.wasmBinaries&&T(void 0,{...r.data.wasmBinaries,jsDecoderModule:e}),t=new e.KTX2Decoder,postMessage({action:"init"});break}case"setDefaultDecoderOptions":e.KTX2Decoder.DefaultDecoderOptions=r.data.options;break;case"decode":t.decode(r.data.data,r.data.caps,r.data.options).then((e=>{const t=[];for(let r=0;r<e.mipmaps.length;++r){const s=e.mipmaps[r];s&&s.data&&t.push(s.data.buffer)}postMessage({action:"decoded",success:!0,decodedData:e},t)})).catch((e=>{postMessage({action:"decoded",success:!1,msg:e})}))}}}a.HEADER_LEN=64,a.COMPRESSED_2D=0,a.COMPRESSED_3D=1,a.TEX_2D=2,a.TEX_3D=3,function(e){e[e.ETC1S=0]="ETC1S",e[e.UASTC4x4=1]="UASTC4x4"}(o||(o={})),function(e){e[e.ASTC_4X4_RGBA=0]="ASTC_4X4_RGBA",e[e.BC7_RGBA=1]="BC7_RGBA",e[e.BC3_RGBA=2]="BC3_RGBA",e[e.BC1_RGB=3]="BC1_RGB",e[e.PVRTC1_4_RGBA=4]="PVRTC1_4_RGBA",e[e.PVRTC1_4_RGB=5]="PVRTC1_4_RGB",e[e.ETC2_RGBA=6]="ETC2_RGBA",e[e.ETC1_RGB=7]="ETC1_RGB",e[e.RGBA32=8]="RGBA32",e[e.R8=9]="R8",e[e.RG8=10]="RG8"}(i||(i={})),function(e){e[e.COMPRESSED_RGBA_BPTC_UNORM_EXT=36492]="COMPRESSED_RGBA_BPTC_UNORM_EXT",e[e.COMPRESSED_RGBA_ASTC_4X4_KHR=37808]="COMPRESSED_RGBA_ASTC_4X4_KHR",e[e.COMPRESSED_RGB_S3TC_DXT1_EXT=33776]="COMPRESSED_RGB_S3TC_DXT1_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT5_EXT=33779]="COMPRESSED_RGBA_S3TC_DXT5_EXT",e[e.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG=35842]="COMPRESSED_RGBA_PVRTC_4BPPV1_IMG",e[e.COMPRESSED_RGB_PVRTC_4BPPV1_IMG=35840]="COMPRESSED_RGB_PVRTC_4BPPV1_IMG",e[e.COMPRESSED_RGBA8_ETC2_EAC=37496]="COMPRESSED_RGBA8_ETC2_EAC",e[e.COMPRESSED_RGB8_ETC2=37492]="COMPRESSED_RGB8_ETC2",e[e.COMPRESSED_RGB_ETC1_WEBGL=36196]="COMPRESSED_RGB_ETC1_WEBGL",e[e.RGBA8Format=32856]="RGBA8Format",e[e.R8Format=33321]="R8Format",e[e.RG8Format=33323]="RG8Format"}(n||(n={}));class R{static GetDefaultNumWorkers(){return"object"==typeof navigator&&navigator.hardwareConcurrency?Math.min(Math.floor(.5*navigator.hardwareConcurrency),4):1}static _Initialize(e){if(R._WorkerPoolPromise||R._DecoderModulePromise)return;const r={jsDecoderModule:t.GetBabylonScriptURL(this.URLConfig.jsDecoderModule,!0),wasmUASTCToASTC:t.GetBabylonScriptURL(this.URLConfig.wasmUASTCToASTC,!0),wasmUASTCToBC7:t.GetBabylonScriptURL(this.URLConfig.wasmUASTCToBC7,!0),wasmUASTCToRGBA_UNORM:t.GetBabylonScriptURL(this.URLConfig.wasmUASTCToRGBA_UNORM,!0),wasmUASTCToRGBA_SRGB:t.GetBabylonScriptURL(this.URLConfig.wasmUASTCToRGBA_SRGB,!0),wasmUASTCToR8_UNORM:t.GetBabylonScriptURL(this.URLConfig.wasmUASTCToR8_UNORM,!0),wasmUASTCToRG8_UNORM:t.GetBabylonScriptURL(this.URLConfig.wasmUASTCToRG8_UNORM,!0),jsMSCTranscoder:t.GetBabylonScriptURL(this.URLConfig.jsMSCTranscoder,!0),wasmMSCTranscoder:t.GetBabylonScriptURL(this.URLConfig.wasmMSCTranscoder,!0),wasmZSTDDecoder:t.GetBabylonScriptURL(this.URLConfig.wasmZSTDDecoder,!0)};e&&"function"==typeof Worker&&"undefined"!=typeof URL?R._WorkerPoolPromise=new Promise((t=>{const a=`${T}(${_})()`,o=URL.createObjectURL(new Blob([a],{type:"application/javascript"}));t(new s(e,(()=>function(e,t,r){return new Promise(((s,a)=>{const o=t=>{e.removeEventListener("error",o),e.removeEventListener("message",i),a(t)},i=t=>{"init"===t.data.action&&(e.removeEventListener("error",o),e.removeEventListener("message",i),s(e))};e.addEventListener("error",o),e.addEventListener("message",i),e.postMessage({action:"init",urls:r,wasmBinaries:t})}))}(new Worker(o),void 0,r))))})):void 0===R._KTX2DecoderModule?R._DecoderModulePromise=t.LoadBabylonScriptAsync(r.jsDecoderModule).then((()=>(R._KTX2DecoderModule=KTX2DECODER,R._KTX2DecoderModule.MSCTranscoder.UseFromWorkerThread=!1,R._KTX2DecoderModule.WASMMemoryManager.LoadBinariesFromCurrentThread=!0,T(r,R._KTX2DecoderModule),new R._KTX2DecoderModule.KTX2Decoder))):(R._KTX2DecoderModule.MSCTranscoder.UseFromWorkerThread=!1,R._KTX2DecoderModule.WASMMemoryManager.LoadBinariesFromCurrentThread=!0,R._DecoderModulePromise=Promise.resolve(new R._KTX2DecoderModule.KTX2Decoder))}constructor(e,t=R.DefaultNumWorkers){this._engine=e;const r="object"==typeof t&&t.workerPool||R.WorkerPool;if(r)R._WorkerPoolPromise=Promise.resolve(r);else{"object"==typeof t?R._KTX2DecoderModule=t?.binariesAndModulesContainer?.jsDecoderModule:"undefined"!=typeof KTX2DECODER&&(R._KTX2DecoderModule=KTX2DECODER);const e="number"==typeof t?t:t.numWorkers??R.DefaultNumWorkers;R._Initialize(e)}}_uploadAsync(e,t,r){const s=this._engine.getCaps(),a={astc:!!s.astc,bptc:!!s.bptc,s3tc:!!s.s3tc,pvrtc:!!s.pvrtc,etc2:!!s.etc2,etc1:!!s.etc1};if(R._WorkerPoolPromise)return R._WorkerPoolPromise.then((s=>new Promise(((o,i)=>{s.push(((s,n)=>{const T=e=>{s.removeEventListener("error",T),s.removeEventListener("message",_),i(e),n()},_=e=>{if("decoded"===e.data.action){if(s.removeEventListener("error",T),s.removeEventListener("message",_),e.data.success)try{this._createTexture(e.data.decodedData,t,r),o()}catch(e){i({message:e})}else i({message:e.data.msg});n()}};s.addEventListener("error",T),s.addEventListener("message",_),s.postMessage({action:"setDefaultDecoderOptions",options:R.DefaultDecoderOptions._getKTX2DecoderOptions()});const d=new Uint8Array(e.byteLength);d.set(new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),s.postMessage({action:"decode",data:d,caps:a,options:r},[d.buffer])}))}))));if(R._DecoderModulePromise)return R._DecoderModulePromise.then((r=>(R.DefaultDecoderOptions.isDirty&&(R._KTX2DecoderModule.KTX2Decoder.DefaultDecoderOptions=R.DefaultDecoderOptions._getKTX2DecoderOptions()),new Promise(((a,o)=>{r.decode(e,s).then((e=>{this._createTexture(e,t),a()})).catch((e=>{o({message:e})}))})))));throw new Error("KTX2 decoder module is not available")}_createTexture(e,t,s){this._engine._bindTextureDirectly(3553,t),s&&(s.transcodedFormat=e.transcodedFormat,s.isInGammaSpace=e.isInGammaSpace,s.hasAlpha=e.hasAlpha,s.transcoderName=e.transcoderName);let a=!0;switch(e.transcodedFormat){case 32856:t.type=r.TEXTURETYPE_UNSIGNED_BYTE,t.format=r.TEXTUREFORMAT_RGBA;break;case 33321:t.type=r.TEXTURETYPE_UNSIGNED_BYTE,t.format=r.TEXTUREFORMAT_R;break;case 33323:t.type=r.TEXTURETYPE_UNSIGNED_BYTE,t.format=r.TEXTUREFORMAT_RG;break;default:t.format=e.transcodedFormat,a=!1}if(t._gammaSpace=e.isInGammaSpace,t.generateMipMaps=e.mipmaps.length>1,e.errors)throw new Error("KTX2 container - could not transcode the data. "+e.errors);for(let r=0;r<e.mipmaps.length;++r){const s=e.mipmaps[r];if(!s||!s.data)throw new Error("KTX2 container - could not transcode one of the image");a?(t.width=s.width,t.height=s.height,this._engine._uploadDataToTextureDirectly(t,s.data,0,r,void 0,!0)):this._engine._uploadCompressedDataToTextureDirectly(t,e.transcodedFormat,s.width,s.height,s.data,0,r)}t._extension=".ktx2",t.width=e.mipmaps[0].width,t.height=e.mipmaps[0].height,t.isReady=!0,this._engine._bindTextureDirectly(3553,null)}static IsValid(e){if(e.byteLength>=12){const t=new Uint8Array(e.buffer,e.byteOffset,12);if(171===t[0]&&75===t[1]&&84===t[2]&&88===t[3]&&32===t[4]&&50===t[5]&&48===t[6]&&187===t[7]&&13===t[8]&&10===t[9]&&26===t[10]&&10===t[11])return!0}return!1}}R.URLConfig={jsDecoderModule:"https://cdn.babylonjs.com/babylon.ktx2Decoder.js",wasmUASTCToASTC:null,wasmUASTCToBC7:null,wasmUASTCToRGBA_UNORM:null,wasmUASTCToRGBA_SRGB:null,wasmUASTCToR8_UNORM:null,wasmUASTCToRG8_UNORM:null,jsMSCTranscoder:null,wasmMSCTranscoder:null,wasmZSTDDecoder:null},R.DefaultNumWorkers=R.GetDefaultNumWorkers(),R.DefaultDecoderOptions=new class{constructor(){this._isDirty=!0,this._useRGBAIfOnlyBC1BC3AvailableWhenUASTC=!0,this._ktx2DecoderOptions={}}get isDirty(){return this._isDirty}get useRGBAIfASTCBC7NotAvailableWhenUASTC(){return this._useRGBAIfASTCBC7NotAvailableWhenUASTC}set useRGBAIfASTCBC7NotAvailableWhenUASTC(e){this._useRGBAIfASTCBC7NotAvailableWhenUASTC!==e&&(this._useRGBAIfASTCBC7NotAvailableWhenUASTC=e,this._isDirty=!0)}get useRGBAIfOnlyBC1BC3AvailableWhenUASTC(){return this._useRGBAIfOnlyBC1BC3AvailableWhenUASTC}set useRGBAIfOnlyBC1BC3AvailableWhenUASTC(e){this._useRGBAIfOnlyBC1BC3AvailableWhenUASTC!==e&&(this._useRGBAIfOnlyBC1BC3AvailableWhenUASTC=e,this._isDirty=!0)}get forceRGBA(){return this._forceRGBA}set forceRGBA(e){this._forceRGBA!==e&&(this._forceRGBA=e,this._isDirty=!0)}get forceR8(){return this._forceR8}set forceR8(e){this._forceR8!==e&&(this._forceR8=e,this._isDirty=!0)}get forceRG8(){return this._forceRG8}set forceRG8(e){this._forceRG8!==e&&(this._forceRG8=e,this._isDirty=!0)}get bypassTranscoders(){return this._bypassTranscoders}set bypassTranscoders(e){this._bypassTranscoders!==e&&(this._bypassTranscoders=e,this._isDirty=!0)}_getKTX2DecoderOptions(){if(!this._isDirty)return this._ktx2DecoderOptions;this._isDirty=!1;const e={useRGBAIfASTCBC7NotAvailableWhenUASTC:this._useRGBAIfASTCBC7NotAvailableWhenUASTC,forceRGBA:this._forceRGBA,forceR8:this._forceR8,forceRG8:this._forceRG8,bypassTranscoders:this._bypassTranscoders};return this.useRGBAIfOnlyBC1BC3AvailableWhenUASTC&&(e.transcodeFormatDecisionTree={UASTC:{transcodeFormat:[i.BC1_RGB,i.BC3_RGBA],yes:{transcodeFormat:i.RGBA32,engineFormat:32856,roundToMultiple4:!1}}}),this._ktx2DecoderOptions=e,e}};class d{constructor(){this.supportCascades=!1}loadCubeData(e,t,r,s){if(Array.isArray(e))return;t._invertVScale=!t.invertY;const o=t.getEngine(),i=new a(e,6),n=i.numberOfMipmapLevels>1&&t.generateMipMaps;o._unpackFlipY(!0),i.uploadLevels(t,t.generateMipMaps),t.width=i.pixelWidth,t.height=i.pixelHeight,o._setCubeMapTextureParams(t,n,i.numberOfMipmapLevels-1),t.isReady=!0,t.onLoadedObservable.notifyObservers(t),t.onLoadedObservable.clear(),s&&s()}loadData(t,s,o,i){if(a.IsValid(t)){s._invertVScale=!s.invertY;const e=new a(t,1),i=function(e){switch(e){case r.TEXTUREFORMAT_COMPRESSED_SRGB_S3TC_DXT1_EXT:return r.TEXTUREFORMAT_COMPRESSED_RGB_S3TC_DXT1;case r.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:return r.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT3;case r.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:return r.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT5;case r.TEXTUREFORMAT_COMPRESSED_SRGB8_ETC2:return r.TEXTUREFORMAT_COMPRESSED_RGB8_ETC2;case r.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:return r.TEXTUREFORMAT_COMPRESSED_RGBA8_ETC2_EAC;case r.TEXTUREFORMAT_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:return r.TEXTUREFORMAT_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2;case r.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:return r.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_4x4;case r.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_BPTC_UNORM:return r.TEXTUREFORMAT_COMPRESSED_RGBA_BPTC_UNORM}return null}(e.glInternalFormat);i?(s.format=i,s._useSRGBBuffer=s.getEngine()._getUseSRGBBuffer(!0,s.generateMipMaps),s._gammaSpace=!0):s.format=e.glInternalFormat,o(e.pixelWidth,e.pixelHeight,s.generateMipMaps,!0,(()=>{e.uploadLevels(s,s.generateMipMaps)}),e.isInvalid)}else if(R.IsValid(t)){new R(s.getEngine())._uploadAsync(t,s,i).then((()=>{o(s.width,s.height,s.generateMipMaps,!0,(()=>{}),!1)}),(t=>{e.Warn(`Failed to load KTX2 texture data: ${t.message}`),o(0,0,!1,!1,(()=>{}),!0)}))}else e.Error("texture missing KTX identifier"),o(0,0,!1,!1,(()=>{}),!0)}}export{d as _KTXTextureLoader};
2
- //# sourceMappingURL=ktxTextureLoader-zG9azrZF.esm.min.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ktxTextureLoader-zG9azrZF.esm.min.js","sources":["../../../../../dev/core/dist/Misc/khronosTextureContainer.js","../../../../../dev/core/dist/Materials/Textures/ktx2decoderTypes.js","../../../../../dev/core/dist/Misc/khronosTextureContainer2Worker.js","../../../../../dev/core/dist/Misc/khronosTextureContainer2.js","../../../../../dev/core/dist/Materials/Textures/Loaders/ktxTextureLoader.js"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport { Logger } from \"../Misc/logger\";\n/**\n * for description see https://www.khronos.org/opengles/sdk/tools/KTX/\n * for file layout see https://www.khronos.org/opengles/sdk/tools/KTX/file_format_spec/\n */\nexport class KhronosTextureContainer {\n /**\n * Creates a new KhronosTextureContainer\n * @param data contents of the KTX container file\n * @param facesExpected should be either 1 or 6, based whether a cube texture or or\n */\n constructor(\n /** contents of the KTX container file */\n data, facesExpected) {\n this.data = data;\n /**\n * If the container has been made invalid (eg. constructor failed to correctly load array buffer)\n */\n this.isInvalid = false;\n if (!KhronosTextureContainer.IsValid(data)) {\n this.isInvalid = true;\n Logger.Error(\"texture missing KTX identifier\");\n return;\n }\n // load the reset of the header in native 32 bit uint\n const dataSize = Uint32Array.BYTES_PER_ELEMENT;\n const headerDataView = new DataView(this.data.buffer, this.data.byteOffset + 12, 13 * dataSize);\n const endianness = headerDataView.getUint32(0, true);\n const littleEndian = endianness === 0x04030201;\n this.glType = headerDataView.getUint32(1 * dataSize, littleEndian); // must be 0 for compressed textures\n this.glTypeSize = headerDataView.getUint32(2 * dataSize, littleEndian); // must be 1 for compressed textures\n this.glFormat = headerDataView.getUint32(3 * dataSize, littleEndian); // must be 0 for compressed textures\n this.glInternalFormat = headerDataView.getUint32(4 * dataSize, littleEndian); // the value of arg passed to gl.compressedTexImage2D(,,x,,,,)\n this.glBaseInternalFormat = headerDataView.getUint32(5 * dataSize, littleEndian); // specify GL_RGB, GL_RGBA, GL_ALPHA, etc (un-compressed only)\n this.pixelWidth = headerDataView.getUint32(6 * dataSize, littleEndian); // level 0 value of arg passed to gl.compressedTexImage2D(,,,x,,,)\n this.pixelHeight = headerDataView.getUint32(7 * dataSize, littleEndian); // level 0 value of arg passed to gl.compressedTexImage2D(,,,,x,,)\n this.pixelDepth = headerDataView.getUint32(8 * dataSize, littleEndian); // level 0 value of arg passed to gl.compressedTexImage3D(,,,,,x,,)\n this.numberOfArrayElements = headerDataView.getUint32(9 * dataSize, littleEndian); // used for texture arrays\n this.numberOfFaces = headerDataView.getUint32(10 * dataSize, littleEndian); // used for cubemap textures, should either be 1 or 6\n this.numberOfMipmapLevels = headerDataView.getUint32(11 * dataSize, littleEndian); // number of levels; disregard possibility of 0 for compressed textures\n this.bytesOfKeyValueData = headerDataView.getUint32(12 * dataSize, littleEndian); // the amount of space after the header for meta-data\n // Make sure we have a compressed type. Not only reduces work, but probably better to let dev know they are not compressing.\n if (this.glType !== 0) {\n Logger.Error(\"only compressed formats currently supported\");\n this.isInvalid = true;\n return;\n }\n else {\n // value of zero is an indication to generate mipmaps @ runtime. Not usually allowed for compressed, so disregard.\n this.numberOfMipmapLevels = Math.max(1, this.numberOfMipmapLevels);\n }\n if (this.pixelHeight === 0 || this.pixelDepth !== 0) {\n Logger.Error(\"only 2D textures currently supported\");\n this.isInvalid = true;\n return;\n }\n if (this.numberOfArrayElements !== 0) {\n Logger.Error(\"texture arrays not currently supported\");\n this.isInvalid = true;\n return;\n }\n if (this.numberOfFaces !== facesExpected) {\n Logger.Error(\"number of faces expected\" + facesExpected + \", but found \" + this.numberOfFaces);\n this.isInvalid = true;\n return;\n }\n // we now have a completely validated file, so could use existence of loadType as success\n // would need to make this more elaborate & adjust checks above to support more than one load type\n this.loadType = KhronosTextureContainer.COMPRESSED_2D;\n }\n /**\n * Uploads KTX content to a Babylon Texture.\n * It is assumed that the texture has already been created & is currently bound\n * @internal\n */\n uploadLevels(texture, loadMipmaps) {\n switch (this.loadType) {\n case KhronosTextureContainer.COMPRESSED_2D:\n this._upload2DCompressedLevels(texture, loadMipmaps);\n break;\n case KhronosTextureContainer.TEX_2D:\n case KhronosTextureContainer.COMPRESSED_3D:\n case KhronosTextureContainer.TEX_3D:\n }\n }\n _upload2DCompressedLevels(texture, loadMipmaps) {\n // initialize width & height for level 1\n let dataOffset = KhronosTextureContainer.HEADER_LEN + this.bytesOfKeyValueData;\n let width = this.pixelWidth;\n let height = this.pixelHeight;\n const mipmapCount = loadMipmaps ? this.numberOfMipmapLevels : 1;\n for (let level = 0; level < mipmapCount; level++) {\n const imageSize = new Int32Array(this.data.buffer, this.data.byteOffset + dataOffset, 1)[0]; // size per face, since not supporting array cubemaps\n dataOffset += 4; //image data starts from next multiple of 4 offset. Each face refers to same imagesize field above.\n for (let face = 0; face < this.numberOfFaces; face++) {\n const byteArray = new Uint8Array(this.data.buffer, this.data.byteOffset + dataOffset, imageSize);\n const engine = texture.getEngine();\n engine._uploadCompressedDataToTextureDirectly(texture, texture.format, width, height, byteArray, face, level);\n dataOffset += imageSize; // add size of the image for the next face/mipmap\n dataOffset += 3 - ((imageSize + 3) % 4); // add padding for odd sized image\n }\n width = Math.max(1.0, width * 0.5);\n height = Math.max(1.0, height * 0.5);\n }\n }\n /**\n * Checks if the given data starts with a KTX file identifier.\n * @param data the data to check\n * @returns true if the data is a KTX file or false otherwise\n */\n static IsValid(data) {\n if (data.byteLength >= 12) {\n // '«', 'K', 'T', 'X', ' ', '1', '1', '»', '\\r', '\\n', '\\x1A', '\\n'\n const identifier = new Uint8Array(data.buffer, data.byteOffset, 12);\n if (identifier[0] === 0xab &&\n identifier[1] === 0x4b &&\n identifier[2] === 0x54 &&\n identifier[3] === 0x58 &&\n identifier[4] === 0x20 &&\n identifier[5] === 0x31 &&\n identifier[6] === 0x31 &&\n identifier[7] === 0xbb &&\n identifier[8] === 0x0d &&\n identifier[9] === 0x0a &&\n identifier[10] === 0x1a &&\n identifier[11] === 0x0a) {\n return true;\n }\n }\n return false;\n }\n}\nKhronosTextureContainer.HEADER_LEN = 12 + 13 * 4; // identifier + header elements (not including key value meta-data pairs)\n// load types\nKhronosTextureContainer.COMPRESSED_2D = 0; // uses a gl.compressedTexImage2D()\nKhronosTextureContainer.COMPRESSED_3D = 1; // uses a gl.compressedTexImage3D()\nKhronosTextureContainer.TEX_2D = 2; // uses a gl.texImage2D()\nKhronosTextureContainer.TEX_3D = 3; // uses a gl.texImage3D()\n//# sourceMappingURL=khronosTextureContainer.js.map","export var SourceTextureFormat;\n(function (SourceTextureFormat) {\n SourceTextureFormat[SourceTextureFormat[\"ETC1S\"] = 0] = \"ETC1S\";\n SourceTextureFormat[SourceTextureFormat[\"UASTC4x4\"] = 1] = \"UASTC4x4\";\n})(SourceTextureFormat || (SourceTextureFormat = {}));\nexport var TranscodeTarget;\n(function (TranscodeTarget) {\n TranscodeTarget[TranscodeTarget[\"ASTC_4X4_RGBA\"] = 0] = \"ASTC_4X4_RGBA\";\n TranscodeTarget[TranscodeTarget[\"BC7_RGBA\"] = 1] = \"BC7_RGBA\";\n TranscodeTarget[TranscodeTarget[\"BC3_RGBA\"] = 2] = \"BC3_RGBA\";\n TranscodeTarget[TranscodeTarget[\"BC1_RGB\"] = 3] = \"BC1_RGB\";\n TranscodeTarget[TranscodeTarget[\"PVRTC1_4_RGBA\"] = 4] = \"PVRTC1_4_RGBA\";\n TranscodeTarget[TranscodeTarget[\"PVRTC1_4_RGB\"] = 5] = \"PVRTC1_4_RGB\";\n TranscodeTarget[TranscodeTarget[\"ETC2_RGBA\"] = 6] = \"ETC2_RGBA\";\n TranscodeTarget[TranscodeTarget[\"ETC1_RGB\"] = 7] = \"ETC1_RGB\";\n TranscodeTarget[TranscodeTarget[\"RGBA32\"] = 8] = \"RGBA32\";\n TranscodeTarget[TranscodeTarget[\"R8\"] = 9] = \"R8\";\n TranscodeTarget[TranscodeTarget[\"RG8\"] = 10] = \"RG8\";\n})(TranscodeTarget || (TranscodeTarget = {}));\nexport var EngineFormat;\n(function (EngineFormat) {\n EngineFormat[EngineFormat[\"COMPRESSED_RGBA_BPTC_UNORM_EXT\"] = 36492] = \"COMPRESSED_RGBA_BPTC_UNORM_EXT\";\n EngineFormat[EngineFormat[\"COMPRESSED_RGBA_ASTC_4X4_KHR\"] = 37808] = \"COMPRESSED_RGBA_ASTC_4X4_KHR\";\n EngineFormat[EngineFormat[\"COMPRESSED_RGB_S3TC_DXT1_EXT\"] = 33776] = \"COMPRESSED_RGB_S3TC_DXT1_EXT\";\n EngineFormat[EngineFormat[\"COMPRESSED_RGBA_S3TC_DXT5_EXT\"] = 33779] = \"COMPRESSED_RGBA_S3TC_DXT5_EXT\";\n EngineFormat[EngineFormat[\"COMPRESSED_RGBA_PVRTC_4BPPV1_IMG\"] = 35842] = \"COMPRESSED_RGBA_PVRTC_4BPPV1_IMG\";\n EngineFormat[EngineFormat[\"COMPRESSED_RGB_PVRTC_4BPPV1_IMG\"] = 35840] = \"COMPRESSED_RGB_PVRTC_4BPPV1_IMG\";\n EngineFormat[EngineFormat[\"COMPRESSED_RGBA8_ETC2_EAC\"] = 37496] = \"COMPRESSED_RGBA8_ETC2_EAC\";\n EngineFormat[EngineFormat[\"COMPRESSED_RGB8_ETC2\"] = 37492] = \"COMPRESSED_RGB8_ETC2\";\n EngineFormat[EngineFormat[\"COMPRESSED_RGB_ETC1_WEBGL\"] = 36196] = \"COMPRESSED_RGB_ETC1_WEBGL\";\n EngineFormat[EngineFormat[\"RGBA8Format\"] = 32856] = \"RGBA8Format\";\n EngineFormat[EngineFormat[\"R8Format\"] = 33321] = \"R8Format\";\n EngineFormat[EngineFormat[\"RG8Format\"] = 33323] = \"RG8Format\";\n})(EngineFormat || (EngineFormat = {}));\n//# sourceMappingURL=ktx2decoderTypes.js.map","export function applyConfig(urls, binariesAndModulesContainer) {\n const KTX2DecoderModule = binariesAndModulesContainer?.jsDecoderModule || KTX2DECODER;\n if (urls) {\n if (urls.wasmUASTCToASTC) {\n KTX2DecoderModule.LiteTranscoder_UASTC_ASTC.WasmModuleURL = urls.wasmUASTCToASTC;\n }\n if (urls.wasmUASTCToBC7) {\n KTX2DecoderModule.LiteTranscoder_UASTC_BC7.WasmModuleURL = urls.wasmUASTCToBC7;\n }\n if (urls.wasmUASTCToRGBA_UNORM) {\n KTX2DecoderModule.LiteTranscoder_UASTC_RGBA_UNORM.WasmModuleURL = urls.wasmUASTCToRGBA_UNORM;\n }\n if (urls.wasmUASTCToRGBA_SRGB) {\n KTX2DecoderModule.LiteTranscoder_UASTC_RGBA_SRGB.WasmModuleURL = urls.wasmUASTCToRGBA_SRGB;\n }\n if (urls.wasmUASTCToR8_UNORM) {\n KTX2DecoderModule.LiteTranscoder_UASTC_R8_UNORM.WasmModuleURL = urls.wasmUASTCToR8_UNORM;\n }\n if (urls.wasmUASTCToRG8_UNORM) {\n KTX2DecoderModule.LiteTranscoder_UASTC_RG8_UNORM.WasmModuleURL = urls.wasmUASTCToRG8_UNORM;\n }\n if (urls.jsMSCTranscoder) {\n KTX2DecoderModule.MSCTranscoder.JSModuleURL = urls.jsMSCTranscoder;\n }\n if (urls.wasmMSCTranscoder) {\n KTX2DecoderModule.MSCTranscoder.WasmModuleURL = urls.wasmMSCTranscoder;\n }\n if (urls.wasmZSTDDecoder) {\n KTX2DecoderModule.ZSTDDecoder.WasmModuleURL = urls.wasmZSTDDecoder;\n }\n }\n if (binariesAndModulesContainer) {\n if (binariesAndModulesContainer.wasmUASTCToASTC) {\n KTX2DecoderModule.LiteTranscoder_UASTC_ASTC.WasmBinary = binariesAndModulesContainer.wasmUASTCToASTC;\n }\n if (binariesAndModulesContainer.wasmUASTCToBC7) {\n KTX2DecoderModule.LiteTranscoder_UASTC_BC7.WasmBinary = binariesAndModulesContainer.wasmUASTCToBC7;\n }\n if (binariesAndModulesContainer.wasmUASTCToRGBA_UNORM) {\n KTX2DecoderModule.LiteTranscoder_UASTC_RGBA_UNORM.WasmBinary = binariesAndModulesContainer.wasmUASTCToRGBA_UNORM;\n }\n if (binariesAndModulesContainer.wasmUASTCToRGBA_SRGB) {\n KTX2DecoderModule.LiteTranscoder_UASTC_RGBA_SRGB.WasmBinary = binariesAndModulesContainer.wasmUASTCToRGBA_SRGB;\n }\n if (binariesAndModulesContainer.wasmUASTCToR8_UNORM) {\n KTX2DecoderModule.LiteTranscoder_UASTC_R8_UNORM.WasmBinary = binariesAndModulesContainer.wasmUASTCToR8_UNORM;\n }\n if (binariesAndModulesContainer.wasmUASTCToRG8_UNORM) {\n KTX2DecoderModule.LiteTranscoder_UASTC_RG8_UNORM.WasmBinary = binariesAndModulesContainer.wasmUASTCToRG8_UNORM;\n }\n if (binariesAndModulesContainer.jsMSCTranscoder) {\n KTX2DecoderModule.MSCTranscoder.JSModule = binariesAndModulesContainer.jsMSCTranscoder;\n }\n if (binariesAndModulesContainer.wasmMSCTranscoder) {\n KTX2DecoderModule.MSCTranscoder.WasmBinary = binariesAndModulesContainer.wasmMSCTranscoder;\n }\n if (binariesAndModulesContainer.wasmZSTDDecoder) {\n KTX2DecoderModule.ZSTDDecoder.WasmBinary = binariesAndModulesContainer.wasmZSTDDecoder;\n }\n }\n}\nexport function workerFunction(KTX2DecoderModule) {\n if (typeof KTX2DecoderModule === \"undefined\" && typeof KTX2DECODER !== \"undefined\") {\n KTX2DecoderModule = KTX2DECODER;\n }\n let ktx2Decoder;\n onmessage = (event) => {\n if (!event.data) {\n return;\n }\n switch (event.data.action) {\n case \"init\": {\n const urls = event.data.urls;\n if (urls) {\n if (urls.jsDecoderModule && typeof KTX2DecoderModule === \"undefined\") {\n importScripts(urls.jsDecoderModule);\n // assuming global namespace populated by the script (UMD pattern)\n KTX2DecoderModule = KTX2DECODER;\n }\n applyConfig(urls);\n }\n if (event.data.wasmBinaries) {\n applyConfig(undefined, { ...event.data.wasmBinaries, jsDecoderModule: KTX2DecoderModule });\n }\n ktx2Decoder = new KTX2DecoderModule.KTX2Decoder();\n postMessage({ action: \"init\" });\n break;\n }\n case \"setDefaultDecoderOptions\": {\n KTX2DecoderModule.KTX2Decoder.DefaultDecoderOptions = event.data.options;\n break;\n }\n case \"decode\":\n ktx2Decoder\n .decode(event.data.data, event.data.caps, event.data.options)\n .then((data) => {\n const buffers = [];\n for (let mip = 0; mip < data.mipmaps.length; ++mip) {\n const mipmap = data.mipmaps[mip];\n if (mipmap && mipmap.data) {\n buffers.push(mipmap.data.buffer);\n }\n }\n postMessage({ action: \"decoded\", success: true, decodedData: data }, buffers);\n })\n .catch((reason) => {\n postMessage({ action: \"decoded\", success: false, msg: reason });\n });\n break;\n }\n };\n}\nexport function initializeWebWorker(worker, wasmBinaries, urls) {\n return new Promise((resolve, reject) => {\n const onError = (error) => {\n worker.removeEventListener(\"error\", onError);\n worker.removeEventListener(\"message\", onMessage);\n reject(error);\n };\n const onMessage = (message) => {\n if (message.data.action === \"init\") {\n worker.removeEventListener(\"error\", onError);\n worker.removeEventListener(\"message\", onMessage);\n resolve(worker);\n }\n };\n worker.addEventListener(\"error\", onError);\n worker.addEventListener(\"message\", onMessage);\n worker.postMessage({\n action: \"init\",\n urls,\n wasmBinaries,\n });\n });\n}\n//# sourceMappingURL=khronosTextureContainer2Worker.js.map","import { Constants } from \"../Engines/constants\";\nimport { AutoReleaseWorkerPool } from \"./workerPool\";\nimport { Tools } from \"./tools\";\nimport { TranscodeTarget } from \"core/Materials/Textures/ktx2decoderTypes\";\nimport { applyConfig, initializeWebWorker, workerFunction } from \"./khronosTextureContainer2Worker\";\n/**\n * Class that defines the default KTX2 decoder options.\n *\n * This class is useful for providing options to the KTX2 decoder to control how the source data is transcoded.\n */\nexport class DefaultKTX2DecoderOptions {\n constructor() {\n this._isDirty = true;\n this._useRGBAIfOnlyBC1BC3AvailableWhenUASTC = true;\n this._ktx2DecoderOptions = {};\n }\n /**\n * Gets the dirty flag\n */\n get isDirty() {\n return this._isDirty;\n }\n /**\n * force a (uncompressed) RGBA transcoded format if transcoding a UASTC source format and ASTC + BC7 are not available as a compressed transcoded format\n */\n get useRGBAIfASTCBC7NotAvailableWhenUASTC() {\n return this._useRGBAIfASTCBC7NotAvailableWhenUASTC;\n }\n set useRGBAIfASTCBC7NotAvailableWhenUASTC(value) {\n if (this._useRGBAIfASTCBC7NotAvailableWhenUASTC === value) {\n return;\n }\n this._useRGBAIfASTCBC7NotAvailableWhenUASTC = value;\n this._isDirty = true;\n }\n /**\n * force a (uncompressed) RGBA transcoded format if transcoding a UASTC source format and only BC1 or BC3 are available as a compressed transcoded format.\n * This property is true by default to favor speed over memory, because currently transcoding from UASTC to BC1/3 is slow because the transcoder transcodes\n * to uncompressed and then recompresses the texture\n */\n get useRGBAIfOnlyBC1BC3AvailableWhenUASTC() {\n return this._useRGBAIfOnlyBC1BC3AvailableWhenUASTC;\n }\n set useRGBAIfOnlyBC1BC3AvailableWhenUASTC(value) {\n if (this._useRGBAIfOnlyBC1BC3AvailableWhenUASTC === value) {\n return;\n }\n this._useRGBAIfOnlyBC1BC3AvailableWhenUASTC = value;\n this._isDirty = true;\n }\n /**\n * force to always use (uncompressed) RGBA for transcoded format\n */\n get forceRGBA() {\n return this._forceRGBA;\n }\n set forceRGBA(value) {\n if (this._forceRGBA === value) {\n return;\n }\n this._forceRGBA = value;\n this._isDirty = true;\n }\n /**\n * force to always use (uncompressed) R8 for transcoded format\n */\n get forceR8() {\n return this._forceR8;\n }\n set forceR8(value) {\n if (this._forceR8 === value) {\n return;\n }\n this._forceR8 = value;\n this._isDirty = true;\n }\n /**\n * force to always use (uncompressed) RG8 for transcoded format\n */\n get forceRG8() {\n return this._forceRG8;\n }\n set forceRG8(value) {\n if (this._forceRG8 === value) {\n return;\n }\n this._forceRG8 = value;\n this._isDirty = true;\n }\n /**\n * list of transcoders to bypass when looking for a suitable transcoder. The available transcoders are:\n * UniversalTranscoder_UASTC_ASTC\n * UniversalTranscoder_UASTC_BC7\n * UniversalTranscoder_UASTC_RGBA_UNORM\n * UniversalTranscoder_UASTC_RGBA_SRGB\n * UniversalTranscoder_UASTC_R8_UNORM\n * UniversalTranscoder_UASTC_RG8_UNORM\n * MSCTranscoder\n */\n get bypassTranscoders() {\n return this._bypassTranscoders;\n }\n set bypassTranscoders(value) {\n if (this._bypassTranscoders === value) {\n return;\n }\n this._bypassTranscoders = value;\n this._isDirty = true;\n }\n /** @internal */\n _getKTX2DecoderOptions() {\n if (!this._isDirty) {\n return this._ktx2DecoderOptions;\n }\n this._isDirty = false;\n const options = {\n useRGBAIfASTCBC7NotAvailableWhenUASTC: this._useRGBAIfASTCBC7NotAvailableWhenUASTC,\n forceRGBA: this._forceRGBA,\n forceR8: this._forceR8,\n forceRG8: this._forceRG8,\n bypassTranscoders: this._bypassTranscoders,\n };\n if (this.useRGBAIfOnlyBC1BC3AvailableWhenUASTC) {\n options.transcodeFormatDecisionTree = {\n UASTC: {\n transcodeFormat: [TranscodeTarget.BC1_RGB, TranscodeTarget.BC3_RGBA],\n yes: {\n transcodeFormat: TranscodeTarget.RGBA32,\n engineFormat: 32856 /* EngineFormat.RGBA8Format */,\n roundToMultiple4: false,\n },\n },\n };\n }\n this._ktx2DecoderOptions = options;\n return options;\n }\n}\n/**\n * Class for loading KTX2 files\n */\nexport class KhronosTextureContainer2 {\n static GetDefaultNumWorkers() {\n if (typeof navigator !== \"object\" || !navigator.hardwareConcurrency) {\n return 1;\n }\n // Use 50% of the available logical processors but capped at 4.\n return Math.min(Math.floor(navigator.hardwareConcurrency * 0.5), 4);\n }\n static _Initialize(numWorkers) {\n if (KhronosTextureContainer2._WorkerPoolPromise || KhronosTextureContainer2._DecoderModulePromise) {\n return;\n }\n const urls = {\n jsDecoderModule: Tools.GetBabylonScriptURL(this.URLConfig.jsDecoderModule, true),\n wasmUASTCToASTC: Tools.GetBabylonScriptURL(this.URLConfig.wasmUASTCToASTC, true),\n wasmUASTCToBC7: Tools.GetBabylonScriptURL(this.URLConfig.wasmUASTCToBC7, true),\n wasmUASTCToRGBA_UNORM: Tools.GetBabylonScriptURL(this.URLConfig.wasmUASTCToRGBA_UNORM, true),\n wasmUASTCToRGBA_SRGB: Tools.GetBabylonScriptURL(this.URLConfig.wasmUASTCToRGBA_SRGB, true),\n wasmUASTCToR8_UNORM: Tools.GetBabylonScriptURL(this.URLConfig.wasmUASTCToR8_UNORM, true),\n wasmUASTCToRG8_UNORM: Tools.GetBabylonScriptURL(this.URLConfig.wasmUASTCToRG8_UNORM, true),\n jsMSCTranscoder: Tools.GetBabylonScriptURL(this.URLConfig.jsMSCTranscoder, true),\n wasmMSCTranscoder: Tools.GetBabylonScriptURL(this.URLConfig.wasmMSCTranscoder, true),\n wasmZSTDDecoder: Tools.GetBabylonScriptURL(this.URLConfig.wasmZSTDDecoder, true),\n };\n if (numWorkers && typeof Worker === \"function\" && typeof URL !== \"undefined\") {\n KhronosTextureContainer2._WorkerPoolPromise = new Promise((resolve) => {\n const workerContent = `${applyConfig}(${workerFunction})()`;\n const workerBlobUrl = URL.createObjectURL(new Blob([workerContent], { type: \"application/javascript\" }));\n resolve(new AutoReleaseWorkerPool(numWorkers, () => initializeWebWorker(new Worker(workerBlobUrl), undefined, urls)));\n });\n }\n else {\n if (typeof KhronosTextureContainer2._KTX2DecoderModule === \"undefined\") {\n KhronosTextureContainer2._DecoderModulePromise = Tools.LoadBabylonScriptAsync(urls.jsDecoderModule).then(() => {\n KhronosTextureContainer2._KTX2DecoderModule = KTX2DECODER;\n KhronosTextureContainer2._KTX2DecoderModule.MSCTranscoder.UseFromWorkerThread = false;\n KhronosTextureContainer2._KTX2DecoderModule.WASMMemoryManager.LoadBinariesFromCurrentThread = true;\n applyConfig(urls, KhronosTextureContainer2._KTX2DecoderModule);\n return new KhronosTextureContainer2._KTX2DecoderModule.KTX2Decoder();\n });\n }\n else {\n KhronosTextureContainer2._KTX2DecoderModule.MSCTranscoder.UseFromWorkerThread = false;\n KhronosTextureContainer2._KTX2DecoderModule.WASMMemoryManager.LoadBinariesFromCurrentThread = true;\n KhronosTextureContainer2._DecoderModulePromise = Promise.resolve(new KhronosTextureContainer2._KTX2DecoderModule.KTX2Decoder());\n }\n }\n }\n /**\n * Constructor\n * @param engine The engine to use\n * @param numWorkersOrOptions The number of workers for async operations. Specify `0` to disable web workers and run synchronously in the current context.\n */\n constructor(engine, numWorkersOrOptions = KhronosTextureContainer2.DefaultNumWorkers) {\n this._engine = engine;\n const workerPoolOption = (typeof numWorkersOrOptions === \"object\" && numWorkersOrOptions.workerPool) || KhronosTextureContainer2.WorkerPool;\n if (workerPoolOption) {\n KhronosTextureContainer2._WorkerPoolPromise = Promise.resolve(workerPoolOption);\n }\n else {\n // set the KTX2 decoder module\n if (typeof numWorkersOrOptions === \"object\") {\n KhronosTextureContainer2._KTX2DecoderModule = numWorkersOrOptions?.binariesAndModulesContainer?.jsDecoderModule;\n }\n else if (typeof KTX2DECODER !== \"undefined\") {\n KhronosTextureContainer2._KTX2DecoderModule = KTX2DECODER;\n }\n const numberOfWorkers = typeof numWorkersOrOptions === \"number\" ? numWorkersOrOptions : (numWorkersOrOptions.numWorkers ?? KhronosTextureContainer2.DefaultNumWorkers);\n KhronosTextureContainer2._Initialize(numberOfWorkers);\n }\n }\n /**\n * @internal\n */\n _uploadAsync(data, internalTexture, options) {\n const caps = this._engine.getCaps();\n const compressedTexturesCaps = {\n astc: !!caps.astc,\n bptc: !!caps.bptc,\n s3tc: !!caps.s3tc,\n pvrtc: !!caps.pvrtc,\n etc2: !!caps.etc2,\n etc1: !!caps.etc1,\n };\n if (KhronosTextureContainer2._WorkerPoolPromise) {\n return KhronosTextureContainer2._WorkerPoolPromise.then((workerPool) => {\n return new Promise((resolve, reject) => {\n workerPool.push((worker, onComplete) => {\n const onError = (error) => {\n worker.removeEventListener(\"error\", onError);\n worker.removeEventListener(\"message\", onMessage);\n reject(error);\n onComplete();\n };\n const onMessage = (message) => {\n if (message.data.action === \"decoded\") {\n worker.removeEventListener(\"error\", onError);\n worker.removeEventListener(\"message\", onMessage);\n if (!message.data.success) {\n reject({ message: message.data.msg });\n }\n else {\n try {\n this._createTexture(message.data.decodedData, internalTexture, options);\n resolve();\n }\n catch (err) {\n reject({ message: err });\n }\n }\n onComplete();\n }\n };\n worker.addEventListener(\"error\", onError);\n worker.addEventListener(\"message\", onMessage);\n worker.postMessage({ action: \"setDefaultDecoderOptions\", options: KhronosTextureContainer2.DefaultDecoderOptions._getKTX2DecoderOptions() });\n const dataCopy = new Uint8Array(data.byteLength);\n dataCopy.set(new Uint8Array(data.buffer, data.byteOffset, data.byteLength));\n worker.postMessage({ action: \"decode\", data: dataCopy, caps: compressedTexturesCaps, options }, [dataCopy.buffer]);\n });\n });\n });\n }\n else if (KhronosTextureContainer2._DecoderModulePromise) {\n return KhronosTextureContainer2._DecoderModulePromise.then((decoder) => {\n if (KhronosTextureContainer2.DefaultDecoderOptions.isDirty) {\n KhronosTextureContainer2._KTX2DecoderModule.KTX2Decoder.DefaultDecoderOptions = KhronosTextureContainer2.DefaultDecoderOptions._getKTX2DecoderOptions();\n }\n return new Promise((resolve, reject) => {\n decoder\n .decode(data, caps)\n .then((data) => {\n this._createTexture(data, internalTexture);\n resolve();\n })\n .catch((reason) => {\n reject({ message: reason });\n });\n });\n });\n }\n throw new Error(\"KTX2 decoder module is not available\");\n }\n _createTexture(data, internalTexture, options) {\n const oglTexture2D = 3553; // gl.TEXTURE_2D\n this._engine._bindTextureDirectly(oglTexture2D, internalTexture);\n if (options) {\n // return back some information about the decoded data\n options.transcodedFormat = data.transcodedFormat;\n options.isInGammaSpace = data.isInGammaSpace;\n options.hasAlpha = data.hasAlpha;\n options.transcoderName = data.transcoderName;\n }\n let isUncompressedFormat = true;\n switch (data.transcodedFormat) {\n case 0x8058 /* RGBA8 */:\n internalTexture.type = Constants.TEXTURETYPE_UNSIGNED_BYTE;\n internalTexture.format = Constants.TEXTUREFORMAT_RGBA;\n break;\n case 0x8229 /* R8 */:\n internalTexture.type = Constants.TEXTURETYPE_UNSIGNED_BYTE;\n internalTexture.format = Constants.TEXTUREFORMAT_R;\n break;\n case 0x822b /* RG8 */:\n internalTexture.type = Constants.TEXTURETYPE_UNSIGNED_BYTE;\n internalTexture.format = Constants.TEXTUREFORMAT_RG;\n break;\n default:\n internalTexture.format = data.transcodedFormat;\n isUncompressedFormat = false;\n break;\n }\n internalTexture._gammaSpace = data.isInGammaSpace;\n internalTexture.generateMipMaps = data.mipmaps.length > 1;\n if (data.errors) {\n throw new Error(\"KTX2 container - could not transcode the data. \" + data.errors);\n }\n for (let t = 0; t < data.mipmaps.length; ++t) {\n const mipmap = data.mipmaps[t];\n if (!mipmap || !mipmap.data) {\n throw new Error(\"KTX2 container - could not transcode one of the image\");\n }\n if (isUncompressedFormat) {\n // uncompressed RGBA / R8 / RG8\n internalTexture.width = mipmap.width; // need to set width/height so that the call to _uploadDataToTextureDirectly uses the right dimensions\n internalTexture.height = mipmap.height;\n this._engine._uploadDataToTextureDirectly(internalTexture, mipmap.data, 0, t, undefined, true);\n }\n else {\n this._engine._uploadCompressedDataToTextureDirectly(internalTexture, data.transcodedFormat, mipmap.width, mipmap.height, mipmap.data, 0, t);\n }\n }\n internalTexture._extension = \".ktx2\";\n internalTexture.width = data.mipmaps[0].width;\n internalTexture.height = data.mipmaps[0].height;\n internalTexture.isReady = true;\n this._engine._bindTextureDirectly(oglTexture2D, null);\n }\n /**\n * Checks if the given data starts with a KTX2 file identifier.\n * @param data the data to check\n * @returns true if the data is a KTX2 file or false otherwise\n */\n static IsValid(data) {\n if (data.byteLength >= 12) {\n // '«', 'K', 'T', 'X', ' ', '2', '0', '»', '\\r', '\\n', '\\x1A', '\\n'\n const identifier = new Uint8Array(data.buffer, data.byteOffset, 12);\n if (identifier[0] === 0xab &&\n identifier[1] === 0x4b &&\n identifier[2] === 0x54 &&\n identifier[3] === 0x58 &&\n identifier[4] === 0x20 &&\n identifier[5] === 0x32 &&\n identifier[6] === 0x30 &&\n identifier[7] === 0xbb &&\n identifier[8] === 0x0d &&\n identifier[9] === 0x0a &&\n identifier[10] === 0x1a &&\n identifier[11] === 0x0a) {\n return true;\n }\n }\n return false;\n }\n}\n/**\n * URLs to use when loading the KTX2 decoder module as well as its dependencies\n * If a url is null, the default url is used (pointing to https://preview.babylonjs.com)\n * Note that jsDecoderModule can't be null and that the other dependencies will only be loaded if necessary\n * Urls you can change:\n * URLConfig.jsDecoderModule\n * URLConfig.wasmUASTCToASTC\n * URLConfig.wasmUASTCToBC7\n * URLConfig.wasmUASTCToRGBA_UNORM\n * URLConfig.wasmUASTCToRGBA_SRGB\n * URLConfig.wasmUASTCToR8_UNORM\n * URLConfig.wasmUASTCToRG8_UNORM\n * URLConfig.jsMSCTranscoder\n * URLConfig.wasmMSCTranscoder\n * URLConfig.wasmZSTDDecoder\n * You can see their default values in this PG: https://playground.babylonjs.com/#EIJH8L#29\n */\nKhronosTextureContainer2.URLConfig = {\n jsDecoderModule: \"https://cdn.babylonjs.com/babylon.ktx2Decoder.js\",\n wasmUASTCToASTC: null,\n wasmUASTCToBC7: null,\n wasmUASTCToRGBA_UNORM: null,\n wasmUASTCToRGBA_SRGB: null,\n wasmUASTCToR8_UNORM: null,\n wasmUASTCToRG8_UNORM: null,\n jsMSCTranscoder: null,\n wasmMSCTranscoder: null,\n wasmZSTDDecoder: null,\n};\n/**\n * Default number of workers used to handle data decoding\n */\nKhronosTextureContainer2.DefaultNumWorkers = KhronosTextureContainer2.GetDefaultNumWorkers();\n/**\n * Default configuration for the KTX2 decoder.\n * The options defined in this way have priority over those passed when creating a KTX2 texture with new Texture(...).\n */\nKhronosTextureContainer2.DefaultDecoderOptions = new DefaultKTX2DecoderOptions();\n//# sourceMappingURL=khronosTextureContainer2.js.map","import { KhronosTextureContainer } from \"../../../Misc/khronosTextureContainer\";\nimport { KhronosTextureContainer2 } from \"../../../Misc/khronosTextureContainer2\";\nimport { Logger } from \"../../../Misc/logger\";\nimport { Constants } from \"../../../Engines/constants\";\nfunction mapSRGBToLinear(format) {\n switch (format) {\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB_S3TC_DXT1_EXT:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGB_S3TC_DXT1;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT3;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT5;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ETC2:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGB8_ETC2;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA8_ETC2_EAC;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_4x4;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_BPTC_UNORM:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_BPTC_UNORM;\n }\n return null;\n}\n/**\n * Implementation of the KTX Texture Loader.\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class _KTXTextureLoader {\n constructor() {\n /**\n * Defines whether the loader supports cascade loading the different faces.\n */\n this.supportCascades = false;\n }\n /**\n * Uploads the cube texture data to the WebGL texture. It has already been bound.\n * @param data contains the texture data\n * @param texture defines the BabylonJS internal texture\n * @param createPolynomials will be true if polynomials have been requested\n * @param onLoad defines the callback to trigger once the texture is ready\n */\n loadCubeData(data, texture, createPolynomials, onLoad) {\n if (Array.isArray(data)) {\n return;\n }\n // Need to invert vScale as invertY via UNPACK_FLIP_Y_WEBGL is not supported by compressed texture\n texture._invertVScale = !texture.invertY;\n const engine = texture.getEngine();\n const ktx = new KhronosTextureContainer(data, 6);\n const loadMipmap = ktx.numberOfMipmapLevels > 1 && texture.generateMipMaps;\n engine._unpackFlipY(true);\n ktx.uploadLevels(texture, texture.generateMipMaps);\n texture.width = ktx.pixelWidth;\n texture.height = ktx.pixelHeight;\n engine._setCubeMapTextureParams(texture, loadMipmap, ktx.numberOfMipmapLevels - 1);\n texture.isReady = true;\n texture.onLoadedObservable.notifyObservers(texture);\n texture.onLoadedObservable.clear();\n if (onLoad) {\n onLoad();\n }\n }\n /**\n * Uploads the 2D texture data to the WebGL texture. It has already been bound once in the callback.\n * @param data contains the texture data\n * @param texture defines the BabylonJS internal texture\n * @param callback defines the method to call once ready to upload\n * @param options\n */\n loadData(data, texture, callback, options) {\n if (KhronosTextureContainer.IsValid(data)) {\n // Need to invert vScale as invertY via UNPACK_FLIP_Y_WEBGL is not supported by compressed texture\n texture._invertVScale = !texture.invertY;\n const ktx = new KhronosTextureContainer(data, 1);\n const mappedFormat = mapSRGBToLinear(ktx.glInternalFormat);\n if (mappedFormat) {\n texture.format = mappedFormat;\n texture._useSRGBBuffer = texture.getEngine()._getUseSRGBBuffer(true, texture.generateMipMaps);\n texture._gammaSpace = true;\n }\n else {\n texture.format = ktx.glInternalFormat;\n }\n callback(ktx.pixelWidth, ktx.pixelHeight, texture.generateMipMaps, true, () => {\n ktx.uploadLevels(texture, texture.generateMipMaps);\n }, ktx.isInvalid);\n }\n else if (KhronosTextureContainer2.IsValid(data)) {\n const ktx2 = new KhronosTextureContainer2(texture.getEngine());\n ktx2._uploadAsync(data, texture, options).then(() => {\n callback(texture.width, texture.height, texture.generateMipMaps, true, () => { }, false);\n }, (error) => {\n Logger.Warn(`Failed to load KTX2 texture data: ${error.message}`);\n callback(0, 0, false, false, () => { }, true);\n });\n }\n else {\n Logger.Error(\"texture missing KTX identifier\");\n callback(0, 0, false, false, () => { }, true);\n }\n }\n}\n//# sourceMappingURL=ktxTextureLoader.js.map"],"names":["KhronosTextureContainer","constructor","data","facesExpected","this","isInvalid","IsValid","Logger","Error","dataSize","Uint32Array","BYTES_PER_ELEMENT","headerDataView","DataView","buffer","byteOffset","littleEndian","getUint32","glType","glTypeSize","glFormat","glInternalFormat","glBaseInternalFormat","pixelWidth","pixelHeight","pixelDepth","numberOfArrayElements","numberOfFaces","numberOfMipmapLevels","bytesOfKeyValueData","Math","max","loadType","COMPRESSED_2D","uploadLevels","texture","loadMipmaps","_upload2DCompressedLevels","dataOffset","HEADER_LEN","width","height","mipmapCount","level","imageSize","Int32Array","face","byteArray","Uint8Array","getEngine","_uploadCompressedDataToTextureDirectly","format","byteLength","identifier","SourceTextureFormat","TranscodeTarget","EngineFormat","applyConfig","urls","binariesAndModulesContainer","KTX2DecoderModule","jsDecoderModule","KTX2DECODER","wasmUASTCToASTC","LiteTranscoder_UASTC_ASTC","WasmModuleURL","wasmUASTCToBC7","LiteTranscoder_UASTC_BC7","wasmUASTCToRGBA_UNORM","LiteTranscoder_UASTC_RGBA_UNORM","wasmUASTCToRGBA_SRGB","LiteTranscoder_UASTC_RGBA_SRGB","wasmUASTCToR8_UNORM","LiteTranscoder_UASTC_R8_UNORM","wasmUASTCToRG8_UNORM","LiteTranscoder_UASTC_RG8_UNORM","jsMSCTranscoder","MSCTranscoder","JSModuleURL","wasmMSCTranscoder","wasmZSTDDecoder","ZSTDDecoder","WasmBinary","JSModule","workerFunction","ktx2Decoder","onmessage","event","action","importScripts","wasmBinaries","undefined","KTX2Decoder","postMessage","DefaultDecoderOptions","options","decode","caps","then","buffers","mip","mipmaps","length","mipmap","push","success","decodedData","catch","reason","msg","COMPRESSED_3D","TEX_2D","TEX_3D","KhronosTextureContainer2","GetDefaultNumWorkers","navigator","hardwareConcurrency","min","floor","_Initialize","numWorkers","_WorkerPoolPromise","_DecoderModulePromise","Tools","GetBabylonScriptURL","URLConfig","Worker","URL","Promise","resolve","workerContent","workerBlobUrl","createObjectURL","Blob","type","AutoReleaseWorkerPool","worker","reject","onError","error","removeEventListener","onMessage","message","addEventListener","initializeWebWorker","_KTX2DecoderModule","LoadBabylonScriptAsync","UseFromWorkerThread","WASMMemoryManager","LoadBinariesFromCurrentThread","engine","numWorkersOrOptions","DefaultNumWorkers","_engine","workerPoolOption","workerPool","WorkerPool","numberOfWorkers","_uploadAsync","internalTexture","getCaps","compressedTexturesCaps","astc","bptc","s3tc","pvrtc","etc2","etc1","onComplete","_createTexture","err","_getKTX2DecoderOptions","dataCopy","set","decoder","isDirty","_bindTextureDirectly","transcodedFormat","isInGammaSpace","hasAlpha","transcoderName","isUncompressedFormat","Constants","TEXTURETYPE_UNSIGNED_BYTE","TEXTUREFORMAT_RGBA","TEXTUREFORMAT_R","TEXTUREFORMAT_RG","_gammaSpace","generateMipMaps","errors","t","_uploadDataToTextureDirectly","_extension","isReady","_isDirty","_useRGBAIfOnlyBC1BC3AvailableWhenUASTC","_ktx2DecoderOptions","useRGBAIfASTCBC7NotAvailableWhenUASTC","_useRGBAIfASTCBC7NotAvailableWhenUASTC","value","useRGBAIfOnlyBC1BC3AvailableWhenUASTC","forceRGBA","_forceRGBA","forceR8","_forceR8","forceRG8","_forceRG8","bypassTranscoders","_bypassTranscoders","transcodeFormatDecisionTree","UASTC","transcodeFormat","BC1_RGB","BC3_RGBA","yes","RGBA32","engineFormat","roundToMultiple4","_KTXTextureLoader","supportCascades","loadCubeData","createPolynomials","onLoad","Array","isArray","_invertVScale","invertY","ktx","loadMipmap","_unpackFlipY","_setCubeMapTextureParams","onLoadedObservable","notifyObservers","clear","loadData","callback","mappedFormat","TEXTUREFORMAT_COMPRESSED_SRGB_S3TC_DXT1_EXT","TEXTUREFORMAT_COMPRESSED_RGB_S3TC_DXT1","TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT","TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT3","TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT","TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT5","TEXTUREFORMAT_COMPRESSED_SRGB8_ETC2","TEXTUREFORMAT_COMPRESSED_RGB8_ETC2","TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC","TEXTUREFORMAT_COMPRESSED_RGBA8_ETC2_EAC","TEXTUREFORMAT_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2","TEXTUREFORMAT_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2","TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR","TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_4x4","TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_BPTC_UNORM","TEXTUREFORMAT_COMPRESSED_RGBA_BPTC_UNORM","mapSRGBToLinear","_useSRGBBuffer","_getUseSRGBBuffer","Warn"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{i as n}from"./index-rZVkfTE6.esm.min.js";n.IncludesShadersStore.sceneUboDeclaration="layout(std140,column_major) uniform;uniform Scene {mat4 viewProjection;\n#ifdef MULTIVIEW\nmat4 viewProjectionR;\n#endif \nmat4 view;mat4 projection;vec4 vEyePosition;};\n";n.IncludesShadersStore.meshUboDeclaration="#ifdef WEBGL2\nuniform mat4 world;uniform float visibility;\n#else\nlayout(std140,column_major) uniform;uniform Mesh\n{mat4 world;float visibility;};\n#endif\n#define WORLD_UBO\n";n.IncludesShadersStore.logDepthDeclaration="#ifdef LOGARITHMICDEPTH\nuniform float logarithmicDepthConstant;varying float vFragmentDepth;\n#endif\n";
2
- //# sourceMappingURL=logDepthDeclaration-0cA1pTvQ.esm.min.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logDepthDeclaration-0cA1pTvQ.esm.min.js","sources":["../../../../../dev/core/dist/Shaders/ShadersInclude/sceneUboDeclaration.js","../../../../../dev/core/dist/Shaders/ShadersInclude/meshUboDeclaration.js","../../../../../dev/core/dist/Shaders/ShadersInclude/logDepthDeclaration.js"],"sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"sceneUboDeclaration\";\nconst shader = `layout(std140,column_major) uniform;uniform Scene {mat4 viewProjection;\n#ifdef MULTIVIEW\nmat4 viewProjectionR;\n#endif \nmat4 view;mat4 projection;vec4 vEyePosition;};\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const sceneUboDeclaration = { name, shader };\n//# sourceMappingURL=sceneUboDeclaration.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"meshUboDeclaration\";\nconst shader = `#ifdef WEBGL2\nuniform mat4 world;uniform float visibility;\n#else\nlayout(std140,column_major) uniform;uniform Mesh\n{mat4 world;float visibility;};\n#endif\n#define WORLD_UBO\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const meshUboDeclaration = { name, shader };\n//# sourceMappingURL=meshUboDeclaration.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"logDepthDeclaration\";\nconst shader = `#ifdef LOGARITHMICDEPTH\nuniform float logarithmicDepthConstant;varying float vFragmentDepth;\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const logDepthDeclaration = { name, shader };\n//# sourceMappingURL=logDepthDeclaration.js.map"],"names":["ShaderStore","IncludesShadersStore"],"mappings":"gDAUAA,EAAYC,qBAAyB,oBAPtB,8KCSfD,EAAYC,qBAAyB,mBATtB,qLCKfD,EAAYC,qBAAyB,oBALtB"}
@@ -1,11 +0,0 @@
1
- import { i as ShaderStore } from './index-C6hXZyZb.esm.js';
2
-
3
- // Do not edit.
4
- const name = "logDepthDeclaration";
5
- const shader = `#ifdef LOGARITHMICDEPTH
6
- uniform logarithmicDepthConstant: f32;varying vFragmentDepth: f32;
7
- #endif
8
- `;
9
- // Sideeffect
10
- ShaderStore.IncludesShadersStoreWGSL[name] = shader;
11
- //# sourceMappingURL=logDepthDeclaration-CYxYhXIS.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logDepthDeclaration-CYxYhXIS.esm.js","sources":["../../../../../dev/core/dist/ShadersWGSL/ShadersInclude/logDepthDeclaration.js"],"sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"logDepthDeclaration\";\nconst shader = `#ifdef LOGARITHMICDEPTH\nuniform logarithmicDepthConstant: f32;varying vFragmentDepth: f32;\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const logDepthDeclarationWGSL = { name, shader };\n//# sourceMappingURL=logDepthDeclaration.js.map"],"names":[],"mappings":";;AAAA;AAEA,MAAM,IAAI,GAAG,qBAAqB;AAClC,MAAM,MAAM,GAAG,CAAC;AAChB;AACA;AACA,CAAC;AACD;AACA,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,MAAM"}
@@ -1,2 +0,0 @@
1
- import{i as n}from"./index-rZVkfTE6.esm.min.js";n.IncludesShadersStoreWGSL.logDepthDeclaration="#ifdef LOGARITHMICDEPTH\nuniform logarithmicDepthConstant: f32;varying vFragmentDepth: f32;\n#endif\n";
2
- //# sourceMappingURL=logDepthDeclaration-D4KGxdX-.esm.min.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logDepthDeclaration-D4KGxdX-.esm.min.js","sources":["../../../../../dev/core/dist/ShadersWGSL/ShadersInclude/logDepthDeclaration.js"],"sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"logDepthDeclaration\";\nconst shader = `#ifdef LOGARITHMICDEPTH\nuniform logarithmicDepthConstant: f32;varying vFragmentDepth: f32;\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const logDepthDeclarationWGSL = { name, shader };\n//# sourceMappingURL=logDepthDeclaration.js.map"],"names":["ShaderStore","IncludesShadersStoreWGSL"],"mappings":"gDAQAA,EAAYC,yBAA6B,oBAL1B"}
@@ -1,35 +0,0 @@
1
- import { i as ShaderStore } from './index-C6hXZyZb.esm.js';
2
-
3
- // Do not edit.
4
- const name$2 = "sceneUboDeclaration";
5
- const shader$2 = `layout(std140,column_major) uniform;uniform Scene {mat4 viewProjection;
6
- #ifdef MULTIVIEW
7
- mat4 viewProjectionR;
8
- #endif
9
- mat4 view;mat4 projection;vec4 vEyePosition;};
10
- `;
11
- // Sideeffect
12
- ShaderStore.IncludesShadersStore[name$2] = shader$2;
13
-
14
- // Do not edit.
15
- const name$1 = "meshUboDeclaration";
16
- const shader$1 = `#ifdef WEBGL2
17
- uniform mat4 world;uniform float visibility;
18
- #else
19
- layout(std140,column_major) uniform;uniform Mesh
20
- {mat4 world;float visibility;};
21
- #endif
22
- #define WORLD_UBO
23
- `;
24
- // Sideeffect
25
- ShaderStore.IncludesShadersStore[name$1] = shader$1;
26
-
27
- // Do not edit.
28
- const name = "logDepthDeclaration";
29
- const shader = `#ifdef LOGARITHMICDEPTH
30
- uniform float logarithmicDepthConstant;varying float vFragmentDepth;
31
- #endif
32
- `;
33
- // Sideeffect
34
- ShaderStore.IncludesShadersStore[name] = shader;
35
- //# sourceMappingURL=logDepthDeclaration-DJlt2-H5.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logDepthDeclaration-DJlt2-H5.esm.js","sources":["../../../../../dev/core/dist/Shaders/ShadersInclude/sceneUboDeclaration.js","../../../../../dev/core/dist/Shaders/ShadersInclude/meshUboDeclaration.js","../../../../../dev/core/dist/Shaders/ShadersInclude/logDepthDeclaration.js"],"sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"sceneUboDeclaration\";\nconst shader = `layout(std140,column_major) uniform;uniform Scene {mat4 viewProjection;\n#ifdef MULTIVIEW\nmat4 viewProjectionR;\n#endif \nmat4 view;mat4 projection;vec4 vEyePosition;};\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const sceneUboDeclaration = { name, shader };\n//# sourceMappingURL=sceneUboDeclaration.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"meshUboDeclaration\";\nconst shader = `#ifdef WEBGL2\nuniform mat4 world;uniform float visibility;\n#else\nlayout(std140,column_major) uniform;uniform Mesh\n{mat4 world;float visibility;};\n#endif\n#define WORLD_UBO\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const meshUboDeclaration = { name, shader };\n//# sourceMappingURL=meshUboDeclaration.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"logDepthDeclaration\";\nconst shader = `#ifdef LOGARITHMICDEPTH\nuniform float logarithmicDepthConstant;varying float vFragmentDepth;\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const logDepthDeclaration = { name, shader };\n//# sourceMappingURL=logDepthDeclaration.js.map"],"names":["name","shader"],"mappings":";;AAAA;AAEA,MAAMA,MAAI,GAAG,qBAAqB;AAClC,MAAMC,QAAM,GAAG,CAAC;AAChB;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,WAAW,CAAC,oBAAoB,CAACD,MAAI,CAAC,GAAGC,QAAM;;ACV/C;AAEA,MAAMD,MAAI,GAAG,oBAAoB;AACjC,MAAMC,QAAM,GAAG,CAAC;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,WAAW,CAAC,oBAAoB,CAACD,MAAI,CAAC,GAAGC,QAAM;;ACZ/C;AAEA,MAAM,IAAI,GAAG,qBAAqB;AAClC,MAAM,MAAM,GAAG,CAAC;AAChB;AACA;AACA,CAAC;AACD;AACA,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM"}
@@ -1,2 +0,0 @@
1
- import{i as n}from"./index-rZVkfTE6.esm.min.js";n.IncludesShadersStore.clipPlaneVertexDeclaration="#ifdef CLIPPLANE\nuniform vec4 vClipPlane;varying float fClipDistance;\n#endif\n#ifdef CLIPPLANE2\nuniform vec4 vClipPlane2;varying float fClipDistance2;\n#endif\n#ifdef CLIPPLANE3\nuniform vec4 vClipPlane3;varying float fClipDistance3;\n#endif\n#ifdef CLIPPLANE4\nuniform vec4 vClipPlane4;varying float fClipDistance4;\n#endif\n#ifdef CLIPPLANE5\nuniform vec4 vClipPlane5;varying float fClipDistance5;\n#endif\n#ifdef CLIPPLANE6\nuniform vec4 vClipPlane6;varying float fClipDistance6;\n#endif\n";n.IncludesShadersStore.fogVertexDeclaration="#ifdef FOG\nvarying vec3 vFogDistance;\n#endif\n";n.IncludesShadersStore.clipPlaneVertex="#ifdef CLIPPLANE\nfClipDistance=dot(worldPos,vClipPlane);\n#endif\n#ifdef CLIPPLANE2\nfClipDistance2=dot(worldPos,vClipPlane2);\n#endif\n#ifdef CLIPPLANE3\nfClipDistance3=dot(worldPos,vClipPlane3);\n#endif\n#ifdef CLIPPLANE4\nfClipDistance4=dot(worldPos,vClipPlane4);\n#endif\n#ifdef CLIPPLANE5\nfClipDistance5=dot(worldPos,vClipPlane5);\n#endif\n#ifdef CLIPPLANE6\nfClipDistance6=dot(worldPos,vClipPlane6);\n#endif\n";n.IncludesShadersStore.fogVertex="#ifdef FOG\nvFogDistance=(view*worldPos).xyz;\n#endif\n";n.IncludesShadersStore.logDepthVertex="#ifdef LOGARITHMICDEPTH\nvFragmentDepth=1.0+gl_Position.w;gl_Position.z=log2(max(0.000001,vFragmentDepth))*logarithmicDepthConstant;\n#endif\n";
2
- //# sourceMappingURL=logDepthVertex-BS2JEtXA.esm.min.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logDepthVertex-BS2JEtXA.esm.min.js","sources":["../../../../../dev/core/dist/Shaders/ShadersInclude/clipPlaneVertexDeclaration.js","../../../../../dev/core/dist/Shaders/ShadersInclude/fogVertexDeclaration.js","../../../../../dev/core/dist/Shaders/ShadersInclude/clipPlaneVertex.js","../../../../../dev/core/dist/Shaders/ShadersInclude/fogVertex.js","../../../../../dev/core/dist/Shaders/ShadersInclude/logDepthVertex.js"],"sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"clipPlaneVertexDeclaration\";\nconst shader = `#ifdef CLIPPLANE\nuniform vec4 vClipPlane;varying float fClipDistance;\n#endif\n#ifdef CLIPPLANE2\nuniform vec4 vClipPlane2;varying float fClipDistance2;\n#endif\n#ifdef CLIPPLANE3\nuniform vec4 vClipPlane3;varying float fClipDistance3;\n#endif\n#ifdef CLIPPLANE4\nuniform vec4 vClipPlane4;varying float fClipDistance4;\n#endif\n#ifdef CLIPPLANE5\nuniform vec4 vClipPlane5;varying float fClipDistance5;\n#endif\n#ifdef CLIPPLANE6\nuniform vec4 vClipPlane6;varying float fClipDistance6;\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const clipPlaneVertexDeclaration = { name, shader };\n//# sourceMappingURL=clipPlaneVertexDeclaration.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"fogVertexDeclaration\";\nconst shader = `#ifdef FOG\nvarying vec3 vFogDistance;\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const fogVertexDeclaration = { name, shader };\n//# sourceMappingURL=fogVertexDeclaration.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"clipPlaneVertex\";\nconst shader = `#ifdef CLIPPLANE\nfClipDistance=dot(worldPos,vClipPlane);\n#endif\n#ifdef CLIPPLANE2\nfClipDistance2=dot(worldPos,vClipPlane2);\n#endif\n#ifdef CLIPPLANE3\nfClipDistance3=dot(worldPos,vClipPlane3);\n#endif\n#ifdef CLIPPLANE4\nfClipDistance4=dot(worldPos,vClipPlane4);\n#endif\n#ifdef CLIPPLANE5\nfClipDistance5=dot(worldPos,vClipPlane5);\n#endif\n#ifdef CLIPPLANE6\nfClipDistance6=dot(worldPos,vClipPlane6);\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const clipPlaneVertex = { name, shader };\n//# sourceMappingURL=clipPlaneVertex.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"fogVertex\";\nconst shader = `#ifdef FOG\nvFogDistance=(view*worldPos).xyz;\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const fogVertex = { name, shader };\n//# sourceMappingURL=fogVertex.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"logDepthVertex\";\nconst shader = `#ifdef LOGARITHMICDEPTH\nvFragmentDepth=1.0+gl_Position.w;gl_Position.z=log2(max(0.000001,vFragmentDepth))*logarithmicDepthConstant;\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const logDepthVertex = { name, shader };\n//# sourceMappingURL=logDepthVertex.js.map"],"names":["ShaderStore","IncludesShadersStore"],"mappings":"gDAuBAA,EAAYC,qBAAyB,2BApBtB,kfCKfD,EAAYC,qBAAyB,qBALtB,mDCoBfD,EAAYC,qBAAyB,gBApBtB,oaCKfD,EAAYC,qBAAyB,UALtB,0DCKfD,EAAYC,qBAAyB,eALtB"}
@@ -1,81 +0,0 @@
1
- import { i as ShaderStore } from './index-C6hXZyZb.esm.js';
2
-
3
- // Do not edit.
4
- const name$4 = "clipPlaneVertexDeclaration";
5
- const shader$4 = `#ifdef CLIPPLANE
6
- uniform vClipPlane: vec4<f32>;varying fClipDistance: f32;
7
- #endif
8
- #ifdef CLIPPLANE2
9
- uniform vClipPlane2: vec4<f32>;varying fClipDistance2: f32;
10
- #endif
11
- #ifdef CLIPPLANE3
12
- uniform vClipPlane3: vec4<f32>;varying fClipDistance3: f32;
13
- #endif
14
- #ifdef CLIPPLANE4
15
- uniform vClipPlane4: vec4<f32>;varying fClipDistance4: f32;
16
- #endif
17
- #ifdef CLIPPLANE5
18
- uniform vClipPlane5: vec4<f32>;varying fClipDistance5: f32;
19
- #endif
20
- #ifdef CLIPPLANE6
21
- uniform vClipPlane6: vec4<f32>;varying fClipDistance6: f32;
22
- #endif
23
- `;
24
- // Sideeffect
25
- ShaderStore.IncludesShadersStoreWGSL[name$4] = shader$4;
26
-
27
- // Do not edit.
28
- const name$3 = "fogVertexDeclaration";
29
- const shader$3 = `#ifdef FOG
30
- varying vFogDistance: vec3f;
31
- #endif
32
- `;
33
- // Sideeffect
34
- ShaderStore.IncludesShadersStoreWGSL[name$3] = shader$3;
35
-
36
- // Do not edit.
37
- const name$2 = "clipPlaneVertex";
38
- const shader$2 = `#ifdef CLIPPLANE
39
- vertexOutputs.fClipDistance=dot(worldPos,uniforms.vClipPlane);
40
- #endif
41
- #ifdef CLIPPLANE2
42
- vertexOutputs.fClipDistance2=dot(worldPos,uniforms.vClipPlane2);
43
- #endif
44
- #ifdef CLIPPLANE3
45
- vertexOutputs.fClipDistance3=dot(worldPos,uniforms.vClipPlane3);
46
- #endif
47
- #ifdef CLIPPLANE4
48
- vertexOutputs.fClipDistance4=dot(worldPos,uniforms.vClipPlane4);
49
- #endif
50
- #ifdef CLIPPLANE5
51
- vertexOutputs.fClipDistance5=dot(worldPos,uniforms.vClipPlane5);
52
- #endif
53
- #ifdef CLIPPLANE6
54
- vertexOutputs.fClipDistance6=dot(worldPos,uniforms.vClipPlane6);
55
- #endif
56
- `;
57
- // Sideeffect
58
- ShaderStore.IncludesShadersStoreWGSL[name$2] = shader$2;
59
-
60
- // Do not edit.
61
- const name$1 = "fogVertex";
62
- const shader$1 = `#ifdef FOG
63
- #ifdef SCENE_UBO
64
- vertexOutputs.vFogDistance=(scene.view*worldPos).xyz;
65
- #else
66
- vertexOutputs.vFogDistance=(uniforms.view*worldPos).xyz;
67
- #endif
68
- #endif
69
- `;
70
- // Sideeffect
71
- ShaderStore.IncludesShadersStoreWGSL[name$1] = shader$1;
72
-
73
- // Do not edit.
74
- const name = "logDepthVertex";
75
- const shader = `#ifdef LOGARITHMICDEPTH
76
- vertexOutputs.vFragmentDepth=1.0+vertexOutputs.position.w;vertexOutputs.position.z=log2(max(0.000001,vertexOutputs.vFragmentDepth))*uniforms.logarithmicDepthConstant;
77
- #endif
78
- `;
79
- // Sideeffect
80
- ShaderStore.IncludesShadersStoreWGSL[name] = shader;
81
- //# sourceMappingURL=logDepthVertex-DKPfA10X.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logDepthVertex-DKPfA10X.esm.js","sources":["../../../../../dev/core/dist/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js","../../../../../dev/core/dist/ShadersWGSL/ShadersInclude/fogVertexDeclaration.js","../../../../../dev/core/dist/ShadersWGSL/ShadersInclude/clipPlaneVertex.js","../../../../../dev/core/dist/ShadersWGSL/ShadersInclude/fogVertex.js","../../../../../dev/core/dist/ShadersWGSL/ShadersInclude/logDepthVertex.js"],"sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"clipPlaneVertexDeclaration\";\nconst shader = `#ifdef CLIPPLANE\nuniform vClipPlane: vec4<f32>;varying fClipDistance: f32;\n#endif\n#ifdef CLIPPLANE2\nuniform vClipPlane2: vec4<f32>;varying fClipDistance2: f32;\n#endif\n#ifdef CLIPPLANE3\nuniform vClipPlane3: vec4<f32>;varying fClipDistance3: f32;\n#endif\n#ifdef CLIPPLANE4\nuniform vClipPlane4: vec4<f32>;varying fClipDistance4: f32;\n#endif\n#ifdef CLIPPLANE5\nuniform vClipPlane5: vec4<f32>;varying fClipDistance5: f32;\n#endif\n#ifdef CLIPPLANE6\nuniform vClipPlane6: vec4<f32>;varying fClipDistance6: f32;\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const clipPlaneVertexDeclarationWGSL = { name, shader };\n//# sourceMappingURL=clipPlaneVertexDeclaration.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"fogVertexDeclaration\";\nconst shader = `#ifdef FOG\nvarying vFogDistance: vec3f;\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const fogVertexDeclarationWGSL = { name, shader };\n//# sourceMappingURL=fogVertexDeclaration.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"clipPlaneVertex\";\nconst shader = `#ifdef CLIPPLANE\nvertexOutputs.fClipDistance=dot(worldPos,uniforms.vClipPlane);\n#endif\n#ifdef CLIPPLANE2\nvertexOutputs.fClipDistance2=dot(worldPos,uniforms.vClipPlane2);\n#endif\n#ifdef CLIPPLANE3\nvertexOutputs.fClipDistance3=dot(worldPos,uniforms.vClipPlane3);\n#endif\n#ifdef CLIPPLANE4\nvertexOutputs.fClipDistance4=dot(worldPos,uniforms.vClipPlane4);\n#endif\n#ifdef CLIPPLANE5\nvertexOutputs.fClipDistance5=dot(worldPos,uniforms.vClipPlane5);\n#endif\n#ifdef CLIPPLANE6\nvertexOutputs.fClipDistance6=dot(worldPos,uniforms.vClipPlane6);\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const clipPlaneVertexWGSL = { name, shader };\n//# sourceMappingURL=clipPlaneVertex.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"fogVertex\";\nconst shader = `#ifdef FOG\n#ifdef SCENE_UBO\nvertexOutputs.vFogDistance=(scene.view*worldPos).xyz;\n#else\nvertexOutputs.vFogDistance=(uniforms.view*worldPos).xyz;\n#endif\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const fogVertexWGSL = { name, shader };\n//# sourceMappingURL=fogVertex.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"logDepthVertex\";\nconst shader = `#ifdef LOGARITHMICDEPTH\nvertexOutputs.vFragmentDepth=1.0+vertexOutputs.position.w;vertexOutputs.position.z=log2(max(0.000001,vertexOutputs.vFragmentDepth))*uniforms.logarithmicDepthConstant;\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const logDepthVertexWGSL = { name, shader };\n//# sourceMappingURL=logDepthVertex.js.map"],"names":["name","shader"],"mappings":";;AAAA;AAEA,MAAMA,MAAI,GAAG,4BAA4B;AACzC,MAAMC,QAAM,GAAG,CAAC;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,WAAW,CAAC,wBAAwB,CAACD,MAAI,CAAC,GAAGC,QAAM;;ACvBnD;AAEA,MAAMD,MAAI,GAAG,sBAAsB;AACnC,MAAMC,QAAM,GAAG,CAAC;AAChB;AACA;AACA,CAAC;AACD;AACA,WAAW,CAAC,wBAAwB,CAACD,MAAI,CAAC,GAAGC,QAAM;;ACRnD;AAEA,MAAMD,MAAI,GAAG,iBAAiB;AAC9B,MAAMC,QAAM,GAAG,CAAC;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,WAAW,CAAC,wBAAwB,CAACD,MAAI,CAAC,GAAGC,QAAM;;ACvBnD;AAEA,MAAMD,MAAI,GAAG,WAAW;AACxB,MAAMC,QAAM,GAAG,CAAC;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,WAAW,CAAC,wBAAwB,CAACD,MAAI,CAAC,GAAGC,QAAM;;ACZnD;AAEA,MAAM,IAAI,GAAG,gBAAgB;AAC7B,MAAM,MAAM,GAAG,CAAC;AAChB;AACA;AACA,CAAC;AACD;AACA,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,MAAM"}