@babylonjs/viewer 7.40.2 → 7.40.3-alpha

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 (615) hide show
  1. package/assets/photoStudio.env +0 -0
  2. package/dist/babylon-viewer.esm.js +2 -0
  3. package/dist/babylon-viewer.esm.js.map +1 -0
  4. package/dist/babylon-viewer.esm.min.js +2 -0
  5. package/dist/babylon-viewer.esm.min.js.map +1 -0
  6. package/dist/chunks/EXT_lights_ies-CD6xLsCy.esm.js +84 -0
  7. package/dist/chunks/EXT_lights_ies-CD6xLsCy.esm.js.map +1 -0
  8. package/dist/chunks/EXT_lights_ies-DS9bIHFP.esm.min.js +2 -0
  9. package/dist/chunks/EXT_lights_ies-DS9bIHFP.esm.min.js.map +1 -0
  10. package/dist/chunks/EXT_lights_image_based-BGdZs5mF.esm.js +171 -0
  11. package/dist/chunks/EXT_lights_image_based-BGdZs5mF.esm.js.map +1 -0
  12. package/dist/chunks/EXT_lights_image_based-DJq0NJF1.esm.min.js +2 -0
  13. package/dist/chunks/EXT_lights_image_based-DJq0NJF1.esm.min.js.map +1 -0
  14. package/dist/chunks/EXT_mesh_gpu_instancing-D70tpOB6.esm.js +86 -0
  15. package/dist/chunks/EXT_mesh_gpu_instancing-D70tpOB6.esm.js.map +1 -0
  16. package/dist/chunks/EXT_mesh_gpu_instancing-DcgiYr6J.esm.min.js +2 -0
  17. package/dist/chunks/EXT_mesh_gpu_instancing-DcgiYr6J.esm.min.js.map +1 -0
  18. package/dist/chunks/EXT_meshopt_compression-hkW0_ox-.esm.min.js +2 -0
  19. package/dist/chunks/EXT_meshopt_compression-hkW0_ox-.esm.min.js.map +1 -0
  20. package/dist/chunks/EXT_meshopt_compression-yaTtGxec.esm.js +134 -0
  21. package/dist/chunks/EXT_meshopt_compression-yaTtGxec.esm.js.map +1 -0
  22. package/dist/chunks/EXT_texture_avif-Chwut1VD.esm.min.js +2 -0
  23. package/dist/chunks/EXT_texture_avif-Chwut1VD.esm.min.js.map +1 -0
  24. package/dist/chunks/EXT_texture_avif-CyxmV9wZ.esm.js +44 -0
  25. package/dist/chunks/EXT_texture_avif-CyxmV9wZ.esm.js.map +1 -0
  26. package/dist/chunks/EXT_texture_webp-C8kKXzMe.esm.min.js +2 -0
  27. package/dist/chunks/EXT_texture_webp-C8kKXzMe.esm.min.js.map +1 -0
  28. package/dist/chunks/EXT_texture_webp-C9fxnRq1.esm.js +43 -0
  29. package/dist/chunks/EXT_texture_webp-C9fxnRq1.esm.js.map +1 -0
  30. package/dist/chunks/ExtrasAsMetadata-B6-h7vlD.esm.min.js +2 -0
  31. package/dist/chunks/ExtrasAsMetadata-B6-h7vlD.esm.min.js.map +1 -0
  32. package/dist/chunks/ExtrasAsMetadata-sw0sAaoo.esm.js +64 -0
  33. package/dist/chunks/ExtrasAsMetadata-sw0sAaoo.esm.js.map +1 -0
  34. package/dist/chunks/KHR_animation_pointer-CP7-gocW.esm.min.js +2 -0
  35. package/dist/chunks/KHR_animation_pointer-CP7-gocW.esm.min.js.map +1 -0
  36. package/dist/chunks/KHR_animation_pointer-lrzgXMw2.esm.js +352 -0
  37. package/dist/chunks/KHR_animation_pointer-lrzgXMw2.esm.js.map +1 -0
  38. package/dist/chunks/KHR_draco_mesh_compression-6ejAggyS.esm.js +610 -0
  39. package/dist/chunks/KHR_draco_mesh_compression-6ejAggyS.esm.js.map +1 -0
  40. package/dist/chunks/KHR_draco_mesh_compression-BaG0uIFE.esm.min.js +2 -0
  41. package/dist/chunks/KHR_draco_mesh_compression-BaG0uIFE.esm.min.js.map +1 -0
  42. package/dist/chunks/KHR_interactivity-BCSmv9s-.esm.js +4033 -0
  43. package/dist/chunks/KHR_interactivity-BCSmv9s-.esm.js.map +1 -0
  44. package/dist/chunks/KHR_interactivity-BwG2kMjm.esm.min.js +2 -0
  45. package/dist/chunks/KHR_interactivity-BwG2kMjm.esm.min.js.map +1 -0
  46. package/dist/chunks/KHR_lights_punctual-BmAkLiea.esm.js +581 -0
  47. package/dist/chunks/KHR_lights_punctual-BmAkLiea.esm.js.map +1 -0
  48. package/dist/chunks/KHR_lights_punctual-D1dtMznV.esm.min.js +2 -0
  49. package/dist/chunks/KHR_lights_punctual-D1dtMznV.esm.min.js.map +1 -0
  50. package/dist/chunks/KHR_materials_anisotropy-CRJDUZsx.esm.js +65 -0
  51. package/dist/chunks/KHR_materials_anisotropy-CRJDUZsx.esm.js.map +1 -0
  52. package/dist/chunks/KHR_materials_anisotropy-Dp1pJfRB.esm.min.js +2 -0
  53. package/dist/chunks/KHR_materials_anisotropy-Dp1pJfRB.esm.min.js.map +1 -0
  54. package/dist/chunks/KHR_materials_clearcoat-BD3XLdt2.esm.min.js +2 -0
  55. package/dist/chunks/KHR_materials_clearcoat-BD3XLdt2.esm.min.js.map +1 -0
  56. package/dist/chunks/KHR_materials_clearcoat-DJKj9xQP.esm.js +96 -0
  57. package/dist/chunks/KHR_materials_clearcoat-DJKj9xQP.esm.js.map +1 -0
  58. package/dist/chunks/KHR_materials_diffuse_transmission-BYYyEZrB.esm.js +97 -0
  59. package/dist/chunks/KHR_materials_diffuse_transmission-BYYyEZrB.esm.js.map +1 -0
  60. package/dist/chunks/KHR_materials_diffuse_transmission-DhA5fNkp.esm.min.js +2 -0
  61. package/dist/chunks/KHR_materials_diffuse_transmission-DhA5fNkp.esm.min.js.map +1 -0
  62. package/dist/chunks/KHR_materials_dispersion-CDCigqMd.esm.js +62 -0
  63. package/dist/chunks/KHR_materials_dispersion-CDCigqMd.esm.js.map +1 -0
  64. package/dist/chunks/KHR_materials_dispersion-CzJ-kzY0.esm.min.js +2 -0
  65. package/dist/chunks/KHR_materials_dispersion-CzJ-kzY0.esm.min.js.map +1 -0
  66. package/dist/chunks/KHR_materials_emissive_strength-C727hCIO.esm.js +55 -0
  67. package/dist/chunks/KHR_materials_emissive_strength-C727hCIO.esm.js.map +1 -0
  68. package/dist/chunks/KHR_materials_emissive_strength-DHmw-T7v.esm.min.js +2 -0
  69. package/dist/chunks/KHR_materials_emissive_strength-DHmw-T7v.esm.min.js.map +1 -0
  70. package/dist/chunks/KHR_materials_ior-CUkwwamZ.esm.min.js +2 -0
  71. package/dist/chunks/KHR_materials_ior-CUkwwamZ.esm.min.js.map +1 -0
  72. package/dist/chunks/KHR_materials_ior-arU1qfpr.esm.js +64 -0
  73. package/dist/chunks/KHR_materials_ior-arU1qfpr.esm.js.map +1 -0
  74. package/dist/chunks/KHR_materials_iridescence-BDFcEA9b.esm.js +72 -0
  75. package/dist/chunks/KHR_materials_iridescence-BDFcEA9b.esm.js.map +1 -0
  76. package/dist/chunks/KHR_materials_iridescence-Dv1MtidF.esm.min.js +2 -0
  77. package/dist/chunks/KHR_materials_iridescence-Dv1MtidF.esm.min.js.map +1 -0
  78. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-IoDqngfZ.esm.js +81 -0
  79. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-IoDqngfZ.esm.js.map +1 -0
  80. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-r32OVvwD.esm.min.js +2 -0
  81. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-r32OVvwD.esm.min.js.map +1 -0
  82. package/dist/chunks/KHR_materials_sheen-BBwukNo5.esm.js +85 -0
  83. package/dist/chunks/KHR_materials_sheen-BBwukNo5.esm.js.map +1 -0
  84. package/dist/chunks/KHR_materials_sheen-upfKannz.esm.min.js +2 -0
  85. package/dist/chunks/KHR_materials_sheen-upfKannz.esm.min.js.map +1 -0
  86. package/dist/chunks/KHR_materials_specular-CLFluGSg.esm.min.js +2 -0
  87. package/dist/chunks/KHR_materials_specular-CLFluGSg.esm.min.js.map +1 -0
  88. package/dist/chunks/KHR_materials_specular-CRQL_z4b.esm.js +75 -0
  89. package/dist/chunks/KHR_materials_specular-CRQL_z4b.esm.js.map +1 -0
  90. package/dist/chunks/KHR_materials_transmission-6oV0DB3N.esm.min.js +2 -0
  91. package/dist/chunks/KHR_materials_transmission-6oV0DB3N.esm.min.js.map +1 -0
  92. package/dist/chunks/KHR_materials_transmission-x9Lwa871.esm.js +307 -0
  93. package/dist/chunks/KHR_materials_transmission-x9Lwa871.esm.js.map +1 -0
  94. package/dist/chunks/KHR_materials_unlit-B_foF8Lt.esm.min.js +2 -0
  95. package/dist/chunks/KHR_materials_unlit-B_foF8Lt.esm.min.js.map +1 -0
  96. package/dist/chunks/KHR_materials_unlit-CDGuKJjb.esm.js +74 -0
  97. package/dist/chunks/KHR_materials_unlit-CDGuKJjb.esm.js.map +1 -0
  98. package/dist/chunks/KHR_materials_variants-DANx-_Mx.esm.js +262 -0
  99. package/dist/chunks/KHR_materials_variants-DANx-_Mx.esm.js.map +1 -0
  100. package/dist/chunks/KHR_materials_variants-DL4EGGiE.esm.min.js +2 -0
  101. package/dist/chunks/KHR_materials_variants-DL4EGGiE.esm.min.js.map +1 -0
  102. package/dist/chunks/KHR_materials_volume-Dlquu8Y2.esm.js +87 -0
  103. package/dist/chunks/KHR_materials_volume-Dlquu8Y2.esm.js.map +1 -0
  104. package/dist/chunks/KHR_materials_volume-LVeMDkB_.esm.min.js +2 -0
  105. package/dist/chunks/KHR_materials_volume-LVeMDkB_.esm.min.js.map +1 -0
  106. package/dist/chunks/KHR_mesh_quantization-C1w2vzgz.esm.js +26 -0
  107. package/dist/chunks/KHR_mesh_quantization-C1w2vzgz.esm.js.map +1 -0
  108. package/dist/chunks/KHR_mesh_quantization-DfOGHc4g.esm.min.js +2 -0
  109. package/dist/chunks/KHR_mesh_quantization-DfOGHc4g.esm.min.js.map +1 -0
  110. package/dist/chunks/KHR_node_hoverability-BxU_AIs6.esm.min.js +2 -0
  111. package/dist/chunks/KHR_node_hoverability-BxU_AIs6.esm.min.js.map +1 -0
  112. package/dist/chunks/KHR_node_hoverability-DODhQaXP.esm.js +39 -0
  113. package/dist/chunks/KHR_node_hoverability-DODhQaXP.esm.js.map +1 -0
  114. package/dist/chunks/KHR_node_visibility-3haIZvsb.esm.js +46 -0
  115. package/dist/chunks/KHR_node_visibility-3haIZvsb.esm.js.map +1 -0
  116. package/dist/chunks/KHR_node_visibility-DDRTTQ-U.esm.min.js +2 -0
  117. package/dist/chunks/KHR_node_visibility-DDRTTQ-U.esm.min.js.map +1 -0
  118. package/dist/chunks/KHR_texture_basisu-CEPiCdOn.esm.min.js +2 -0
  119. package/dist/chunks/KHR_texture_basisu-CEPiCdOn.esm.min.js.map +1 -0
  120. package/dist/chunks/KHR_texture_basisu-gXsppVcQ.esm.js +43 -0
  121. package/dist/chunks/KHR_texture_basisu-gXsppVcQ.esm.js.map +1 -0
  122. package/dist/chunks/KHR_texture_transform-Bjux7yCy.esm.js +63 -0
  123. package/dist/chunks/KHR_texture_transform-Bjux7yCy.esm.js.map +1 -0
  124. package/dist/chunks/KHR_texture_transform-_PXwFDP8.esm.min.js +2 -0
  125. package/dist/chunks/KHR_texture_transform-_PXwFDP8.esm.min.js.map +1 -0
  126. package/dist/chunks/KHR_xmp_json_ld-DpaeEUGt.esm.min.js +2 -0
  127. package/dist/chunks/KHR_xmp_json_ld-DpaeEUGt.esm.min.js.map +1 -0
  128. package/dist/chunks/KHR_xmp_json_ld-DyzNphyu.esm.js +51 -0
  129. package/dist/chunks/KHR_xmp_json_ld-DyzNphyu.esm.js.map +1 -0
  130. package/dist/chunks/MSFT_audio_emitter-BGoxaF5U.esm.min.js +2 -0
  131. package/dist/chunks/MSFT_audio_emitter-BGoxaF5U.esm.min.js.map +1 -0
  132. package/dist/chunks/MSFT_audio_emitter-DEE5n41V.esm.js +2207 -0
  133. package/dist/chunks/MSFT_audio_emitter-DEE5n41V.esm.js.map +1 -0
  134. package/dist/chunks/MSFT_lod-D-_-eQHW.esm.js +337 -0
  135. package/dist/chunks/MSFT_lod-D-_-eQHW.esm.js.map +1 -0
  136. package/dist/chunks/MSFT_lod-XoRI0gWX.esm.min.js +2 -0
  137. package/dist/chunks/MSFT_lod-XoRI0gWX.esm.min.js.map +1 -0
  138. package/dist/chunks/MSFT_minecraftMesh-DO_tijSD.esm.js +46 -0
  139. package/dist/chunks/MSFT_minecraftMesh-DO_tijSD.esm.js.map +1 -0
  140. package/dist/chunks/MSFT_minecraftMesh-_iQvjiZi.esm.min.js +2 -0
  141. package/dist/chunks/MSFT_minecraftMesh-_iQvjiZi.esm.min.js.map +1 -0
  142. package/dist/chunks/MSFT_sRGBFactors-BLHF-pts.esm.js +47 -0
  143. package/dist/chunks/MSFT_sRGBFactors-BLHF-pts.esm.js.map +1 -0
  144. package/dist/chunks/MSFT_sRGBFactors-BTokzGgG.esm.min.js +2 -0
  145. package/dist/chunks/MSFT_sRGBFactors-BTokzGgG.esm.min.js.map +1 -0
  146. package/dist/chunks/animationGroup-BPxpoNna.esm.js +2482 -0
  147. package/dist/chunks/animationGroup-BPxpoNna.esm.js.map +1 -0
  148. package/dist/chunks/animationGroup-TpjYesJi.esm.min.js +2 -0
  149. package/dist/chunks/animationGroup-TpjYesJi.esm.min.js.map +1 -0
  150. package/dist/chunks/assetContainer-C11e8jK9.esm.js +1720 -0
  151. package/dist/chunks/assetContainer-C11e8jK9.esm.js.map +1 -0
  152. package/dist/chunks/assetContainer-DN0guS4J.esm.min.js +2 -0
  153. package/dist/chunks/assetContainer-DN0guS4J.esm.min.js.map +1 -0
  154. package/dist/chunks/audioEngine-BPCDLqX1.esm.js +305 -0
  155. package/dist/chunks/audioEngine-BPCDLqX1.esm.js.map +1 -0
  156. package/dist/chunks/audioEngine-jDnUlloH.esm.min.js +2 -0
  157. package/dist/chunks/audioEngine-jDnUlloH.esm.min.js.map +1 -0
  158. package/dist/chunks/bakedVertexAnimation-Cz6yjm9Z.esm.js +114 -0
  159. package/dist/chunks/bakedVertexAnimation-Cz6yjm9Z.esm.js.map +1 -0
  160. package/dist/chunks/bakedVertexAnimation-QOLg75eL.esm.min.js +2 -0
  161. package/dist/chunks/bakedVertexAnimation-QOLg75eL.esm.min.js.map +1 -0
  162. package/dist/chunks/basisTextureLoader-BoGBC9bq.esm.js +600 -0
  163. package/dist/chunks/basisTextureLoader-BoGBC9bq.esm.js.map +1 -0
  164. package/dist/chunks/basisTextureLoader-D6orCmzb.esm.min.js +2 -0
  165. package/dist/chunks/basisTextureLoader-D6orCmzb.esm.min.js.map +1 -0
  166. package/dist/chunks/dds-DPGLfLtA.esm.js +540 -0
  167. package/dist/chunks/dds-DPGLfLtA.esm.js.map +1 -0
  168. package/dist/chunks/dds-ty-4gLsX.esm.min.js +2 -0
  169. package/dist/chunks/dds-ty-4gLsX.esm.min.js.map +1 -0
  170. package/dist/chunks/ddsTextureLoader-BCk_i6Vj.esm.min.js +2 -0
  171. package/dist/chunks/ddsTextureLoader-BCk_i6Vj.esm.min.js.map +1 -0
  172. package/dist/chunks/ddsTextureLoader-DVbQnnL_.esm.js +88 -0
  173. package/dist/chunks/ddsTextureLoader-DVbQnnL_.esm.js.map +1 -0
  174. package/dist/chunks/decalFragment-BiywWcVN.esm.js +18 -0
  175. package/dist/chunks/decalFragment-BiywWcVN.esm.js.map +1 -0
  176. package/dist/chunks/decalFragment-D06mgECc.esm.min.js +2 -0
  177. package/dist/chunks/decalFragment-D06mgECc.esm.min.js.map +1 -0
  178. package/dist/chunks/default.fragment-B_HQTa4-.esm.min.js +2 -0
  179. package/dist/chunks/default.fragment-B_HQTa4-.esm.min.js.map +1 -0
  180. package/dist/chunks/default.fragment-BiTyj-JR.esm.min.js +2 -0
  181. package/dist/chunks/default.fragment-BiTyj-JR.esm.min.js.map +1 -0
  182. package/dist/chunks/default.fragment-DPPypY0M.esm.js +515 -0
  183. package/dist/chunks/default.fragment-DPPypY0M.esm.js.map +1 -0
  184. package/dist/chunks/default.fragment-Yh18209a.esm.js +446 -0
  185. package/dist/chunks/default.fragment-Yh18209a.esm.js.map +1 -0
  186. package/dist/chunks/default.vertex-BGoXgJxH.esm.min.js +2 -0
  187. package/dist/chunks/default.vertex-BGoXgJxH.esm.min.js.map +1 -0
  188. package/dist/chunks/default.vertex-CHD4PKUY.esm.min.js +2 -0
  189. package/dist/chunks/default.vertex-CHD4PKUY.esm.min.js.map +1 -0
  190. package/dist/chunks/default.vertex-L7AngZxY.esm.js +211 -0
  191. package/dist/chunks/default.vertex-L7AngZxY.esm.js.map +1 -0
  192. package/dist/chunks/default.vertex-bWGrH88y.esm.js +190 -0
  193. package/dist/chunks/default.vertex-bWGrH88y.esm.js.map +1 -0
  194. package/dist/chunks/defaultUboDeclaration-C1wAUiUE.esm.js +15 -0
  195. package/dist/chunks/defaultUboDeclaration-C1wAUiUE.esm.js.map +1 -0
  196. package/dist/chunks/defaultUboDeclaration-Cui4ai4R.esm.min.js +2 -0
  197. package/dist/chunks/defaultUboDeclaration-Cui4ai4R.esm.min.js.map +1 -0
  198. package/dist/chunks/defaultUboDeclaration-DQrGGmYB.esm.min.js +2 -0
  199. package/dist/chunks/defaultUboDeclaration-DQrGGmYB.esm.min.js.map +1 -0
  200. package/dist/chunks/defaultUboDeclaration-DwKq3ipu.esm.js +13 -0
  201. package/dist/chunks/defaultUboDeclaration-DwKq3ipu.esm.js.map +1 -0
  202. package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js +11 -0
  203. package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js.map +1 -0
  204. package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js +2 -0
  205. package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js.map +1 -0
  206. package/dist/chunks/dumpTools-CK6KW8rD.esm.js +200 -0
  207. package/dist/chunks/dumpTools-CK6KW8rD.esm.js.map +1 -0
  208. package/dist/chunks/dumpTools-DtuBR0TB.esm.min.js +2 -0
  209. package/dist/chunks/dumpTools-DtuBR0TB.esm.min.js.map +1 -0
  210. package/dist/chunks/engine-CjwHJJ_I.esm.js +2216 -0
  211. package/dist/chunks/engine-CjwHJJ_I.esm.js.map +1 -0
  212. package/dist/chunks/engine-DDdcZyBr.esm.min.js +2 -0
  213. package/dist/chunks/engine-DDdcZyBr.esm.min.js.map +1 -0
  214. package/dist/chunks/engine.common-9BWDtT2M.esm.js +1162 -0
  215. package/dist/chunks/engine.common-9BWDtT2M.esm.js.map +1 -0
  216. package/dist/chunks/engine.common-B3oiG-PJ.esm.min.js +2 -0
  217. package/dist/chunks/engine.common-B3oiG-PJ.esm.min.js.map +1 -0
  218. package/dist/chunks/envTextureLoader-B2kcZ0TS.esm.js +64 -0
  219. package/dist/chunks/envTextureLoader-B2kcZ0TS.esm.js.map +1 -0
  220. package/dist/chunks/envTextureLoader-BJ0RU-N0.esm.min.js +2 -0
  221. package/dist/chunks/envTextureLoader-BJ0RU-N0.esm.min.js.map +1 -0
  222. package/dist/chunks/environmentTextureTools-BDDKxUKH.esm.js +382 -0
  223. package/dist/chunks/environmentTextureTools-BDDKxUKH.esm.js.map +1 -0
  224. package/dist/chunks/environmentTextureTools-BuVOE0iE.esm.min.js +2 -0
  225. package/dist/chunks/environmentTextureTools-BuVOE0iE.esm.min.js.map +1 -0
  226. package/dist/chunks/exrTextureLoader-ByEbgBJq.esm.min.js +2 -0
  227. package/dist/chunks/exrTextureLoader-ByEbgBJq.esm.min.js.map +1 -0
  228. package/dist/chunks/exrTextureLoader-CVJEgA3V.esm.js +1683 -0
  229. package/dist/chunks/exrTextureLoader-CVJEgA3V.esm.js.map +1 -0
  230. package/dist/chunks/fogFragment-BCI6G-ZP.esm.min.js +2 -0
  231. package/dist/chunks/fogFragment-BCI6G-ZP.esm.min.js.map +1 -0
  232. package/dist/chunks/fogFragment-DWRmb1tG.esm.min.js +2 -0
  233. package/dist/chunks/fogFragment-DWRmb1tG.esm.min.js.map +1 -0
  234. package/dist/chunks/fogFragment-Dmcif2rs.esm.js +102 -0
  235. package/dist/chunks/fogFragment-Dmcif2rs.esm.js.map +1 -0
  236. package/dist/chunks/fogFragment-K4UslW3k.esm.js +101 -0
  237. package/dist/chunks/fogFragment-K4UslW3k.esm.js.map +1 -0
  238. package/dist/chunks/fresnelFunction-Byr-DptL.esm.js +12 -0
  239. package/dist/chunks/fresnelFunction-Byr-DptL.esm.js.map +1 -0
  240. package/dist/chunks/fresnelFunction-nqy6Uoot.esm.min.js +2 -0
  241. package/dist/chunks/fresnelFunction-nqy6Uoot.esm.min.js.map +1 -0
  242. package/dist/chunks/glTFLoader-BNHy6PGg.esm.min.js +2 -0
  243. package/dist/chunks/glTFLoader-BNHy6PGg.esm.min.js.map +1 -0
  244. package/dist/chunks/glTFLoader-Bt4XTOHj.esm.js +7658 -0
  245. package/dist/chunks/glTFLoader-Bt4XTOHj.esm.js.map +1 -0
  246. package/dist/chunks/glTFLoaderAnimation-C7bRnMuQ.esm.min.js +2 -0
  247. package/dist/chunks/glTFLoaderAnimation-C7bRnMuQ.esm.min.js.map +1 -0
  248. package/dist/chunks/glTFLoaderAnimation-wzgl1G3Q.esm.js +77 -0
  249. package/dist/chunks/glTFLoaderAnimation-wzgl1G3Q.esm.js.map +1 -0
  250. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js +2 -0
  251. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js.map +1 -0
  252. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js +67 -0
  253. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js.map +1 -0
  254. package/dist/chunks/harmonicsFunctions-CJK-zUAx.esm.min.js +2 -0
  255. package/dist/chunks/harmonicsFunctions-CJK-zUAx.esm.min.js.map +1 -0
  256. package/dist/chunks/harmonicsFunctions-Cc4Kn69U.esm.js +35 -0
  257. package/dist/chunks/harmonicsFunctions-Cc4Kn69U.esm.js.map +1 -0
  258. package/dist/chunks/harmonicsFunctions-D_T4jAii.esm.min.js +2 -0
  259. package/dist/chunks/harmonicsFunctions-D_T4jAii.esm.min.js.map +1 -0
  260. package/dist/chunks/harmonicsFunctions-KLqvdh60.esm.js +34 -0
  261. package/dist/chunks/harmonicsFunctions-KLqvdh60.esm.js.map +1 -0
  262. package/dist/chunks/hdrTextureLoader-C6Df--L1.esm.js +253 -0
  263. package/dist/chunks/hdrTextureLoader-C6Df--L1.esm.js.map +1 -0
  264. package/dist/chunks/hdrTextureLoader-CsfShnoX.esm.min.js +2 -0
  265. package/dist/chunks/hdrTextureLoader-CsfShnoX.esm.min.js.map +1 -0
  266. package/dist/chunks/helperFunctions-DDGAItWp.esm.js +80 -0
  267. package/dist/chunks/helperFunctions-DDGAItWp.esm.js.map +1 -0
  268. package/dist/chunks/helperFunctions-DR_I6MXm.esm.min.js +2 -0
  269. package/dist/chunks/helperFunctions-DR_I6MXm.esm.min.js.map +1 -0
  270. package/dist/chunks/helperFunctions-DciHbMbJ.esm.min.js +2 -0
  271. package/dist/chunks/helperFunctions-DciHbMbJ.esm.min.js.map +1 -0
  272. package/dist/chunks/helperFunctions-Dp1Kzl1o.esm.js +108 -0
  273. package/dist/chunks/helperFunctions-Dp1Kzl1o.esm.js.map +1 -0
  274. package/dist/chunks/iesTextureLoader-6OJu6Vq2.esm.min.js +2 -0
  275. package/dist/chunks/iesTextureLoader-6OJu6Vq2.esm.min.js.map +1 -0
  276. package/dist/chunks/iesTextureLoader-Bm570oWa.esm.js +189 -0
  277. package/dist/chunks/iesTextureLoader-Bm570oWa.esm.js.map +1 -0
  278. package/dist/chunks/index-B6sqDOGz.esm.js +74825 -0
  279. package/dist/chunks/index-B6sqDOGz.esm.js.map +1 -0
  280. package/dist/chunks/index-D3BVnHHq.esm.min.js +57 -0
  281. package/dist/chunks/index-D3BVnHHq.esm.min.js.map +1 -0
  282. package/dist/chunks/ktxTextureLoader-Bqe5q1rf.esm.js +814 -0
  283. package/dist/chunks/ktxTextureLoader-Bqe5q1rf.esm.js.map +1 -0
  284. package/dist/chunks/ktxTextureLoader-CYGltN4N.esm.min.js +2 -0
  285. package/dist/chunks/ktxTextureLoader-CYGltN4N.esm.min.js.map +1 -0
  286. package/dist/chunks/logDepthDeclaration-5ljdm3vC.esm.min.js +2 -0
  287. package/dist/chunks/logDepthDeclaration-5ljdm3vC.esm.min.js.map +1 -0
  288. package/dist/chunks/logDepthDeclaration-BAi1U8tp.esm.js +35 -0
  289. package/dist/chunks/logDepthDeclaration-BAi1U8tp.esm.js.map +1 -0
  290. package/dist/chunks/logDepthDeclaration-BhyTMFMU.esm.js +11 -0
  291. package/dist/chunks/logDepthDeclaration-BhyTMFMU.esm.js.map +1 -0
  292. package/dist/chunks/logDepthDeclaration-TpKbhGMf.esm.min.js +2 -0
  293. package/dist/chunks/logDepthDeclaration-TpKbhGMf.esm.min.js.map +1 -0
  294. package/dist/chunks/logDepthVertex-CAe41JFY.esm.js +77 -0
  295. package/dist/chunks/logDepthVertex-CAe41JFY.esm.js.map +1 -0
  296. package/dist/chunks/logDepthVertex-DSb3D1Hm.esm.js +81 -0
  297. package/dist/chunks/logDepthVertex-DSb3D1Hm.esm.js.map +1 -0
  298. package/dist/chunks/logDepthVertex-I7P1jvLX.esm.min.js +2 -0
  299. package/dist/chunks/logDepthVertex-I7P1jvLX.esm.min.js.map +1 -0
  300. package/dist/chunks/logDepthVertex-JJkSRL9W.esm.min.js +2 -0
  301. package/dist/chunks/logDepthVertex-JJkSRL9W.esm.min.js.map +1 -0
  302. package/dist/chunks/mainUVVaryingDeclaration-BOsqkSBn.esm.js +11 -0
  303. package/dist/chunks/mainUVVaryingDeclaration-BOsqkSBn.esm.js.map +1 -0
  304. package/dist/chunks/mainUVVaryingDeclaration-CInC18r7.esm.js +11 -0
  305. package/dist/chunks/mainUVVaryingDeclaration-CInC18r7.esm.js.map +1 -0
  306. package/dist/chunks/mainUVVaryingDeclaration-CS3E9EgB.esm.min.js +2 -0
  307. package/dist/chunks/mainUVVaryingDeclaration-CS3E9EgB.esm.min.js.map +1 -0
  308. package/dist/chunks/mainUVVaryingDeclaration-ChM_7YDH.esm.min.js +2 -0
  309. package/dist/chunks/mainUVVaryingDeclaration-ChM_7YDH.esm.min.js.map +1 -0
  310. package/dist/chunks/meshUboDeclaration-BJzygYVf.esm.min.js +2 -0
  311. package/dist/chunks/meshUboDeclaration-BJzygYVf.esm.min.js.map +1 -0
  312. package/dist/chunks/meshUboDeclaration-DM7Knmm0.esm.js +26 -0
  313. package/dist/chunks/meshUboDeclaration-DM7Knmm0.esm.js.map +1 -0
  314. package/dist/chunks/objFileLoader-DXh6dEqA.esm.min.js +2 -0
  315. package/dist/chunks/objFileLoader-DXh6dEqA.esm.min.js.map +1 -0
  316. package/dist/chunks/objFileLoader-DzxFwUIY.esm.js +1338 -0
  317. package/dist/chunks/objFileLoader-DzxFwUIY.esm.js.map +1 -0
  318. package/dist/chunks/oitFragment-C2V-9s6u.esm.min.js +2 -0
  319. package/dist/chunks/oitFragment-C2V-9s6u.esm.min.js.map +1 -0
  320. package/dist/chunks/oitFragment-DOPwpc5v.esm.js +1240 -0
  321. package/dist/chunks/oitFragment-DOPwpc5v.esm.js.map +1 -0
  322. package/dist/chunks/oitFragment-kS5s81PF.esm.min.js +2 -0
  323. package/dist/chunks/oitFragment-kS5s81PF.esm.min.js.map +1 -0
  324. package/dist/chunks/oitFragment-yAzK8PUt.esm.js +1078 -0
  325. package/dist/chunks/oitFragment-yAzK8PUt.esm.js.map +1 -0
  326. package/dist/chunks/pass.fragment-5ocLOmrf.esm.js +15 -0
  327. package/dist/chunks/pass.fragment-5ocLOmrf.esm.js.map +1 -0
  328. package/dist/chunks/pass.fragment-BN-f4kEG.esm.js +15 -0
  329. package/dist/chunks/pass.fragment-BN-f4kEG.esm.js.map +1 -0
  330. package/dist/chunks/pass.fragment-CE2yo34Z.esm.min.js +2 -0
  331. package/dist/chunks/pass.fragment-CE2yo34Z.esm.min.js.map +1 -0
  332. package/dist/chunks/pass.fragment-O74A4S0m.esm.min.js +2 -0
  333. package/dist/chunks/pass.fragment-O74A4S0m.esm.min.js.map +1 -0
  334. package/dist/chunks/pbr.fragment-AC22HTP0.esm.js +3273 -0
  335. package/dist/chunks/pbr.fragment-AC22HTP0.esm.js.map +1 -0
  336. package/dist/chunks/pbr.fragment-BsRPu6hA.esm.min.js +2 -0
  337. package/dist/chunks/pbr.fragment-BsRPu6hA.esm.min.js.map +1 -0
  338. package/dist/chunks/pbr.fragment-Dxb2AuuM.esm.js +3232 -0
  339. package/dist/chunks/pbr.fragment-Dxb2AuuM.esm.js.map +1 -0
  340. package/dist/chunks/pbr.fragment-Jz2EDvVc.esm.min.js +2 -0
  341. package/dist/chunks/pbr.fragment-Jz2EDvVc.esm.min.js.map +1 -0
  342. package/dist/chunks/pbr.vertex-BkRM-a3D.esm.min.js +2 -0
  343. package/dist/chunks/pbr.vertex-BkRM-a3D.esm.min.js.map +1 -0
  344. package/dist/chunks/pbr.vertex-DC-IeqOc.esm.js +348 -0
  345. package/dist/chunks/pbr.vertex-DC-IeqOc.esm.js.map +1 -0
  346. package/dist/chunks/pbr.vertex-DFq751_7.esm.js +223 -0
  347. package/dist/chunks/pbr.vertex-DFq751_7.esm.js.map +1 -0
  348. package/dist/chunks/pbr.vertex-NaenLCtj.esm.min.js +2 -0
  349. package/dist/chunks/pbr.vertex-NaenLCtj.esm.min.js.map +1 -0
  350. package/dist/chunks/postprocess.vertex-CCzNHvuk.esm.js +20 -0
  351. package/dist/chunks/postprocess.vertex-CCzNHvuk.esm.js.map +1 -0
  352. package/dist/chunks/postprocess.vertex-Mo0vpVxw.esm.min.js +2 -0
  353. package/dist/chunks/postprocess.vertex-Mo0vpVxw.esm.min.js.map +1 -0
  354. package/dist/chunks/rawTexture-DsvWY4wf.esm.js +191 -0
  355. package/dist/chunks/rawTexture-DsvWY4wf.esm.js.map +1 -0
  356. package/dist/chunks/rawTexture-Ub3t-s7i.esm.min.js +2 -0
  357. package/dist/chunks/rawTexture-Ub3t-s7i.esm.min.js.map +1 -0
  358. package/dist/chunks/ray-BRtIhzin.esm.min.js +2 -0
  359. package/dist/chunks/ray-BRtIhzin.esm.min.js.map +1 -0
  360. package/dist/chunks/ray-DGNoxqma.esm.js +946 -0
  361. package/dist/chunks/ray-DGNoxqma.esm.js.map +1 -0
  362. package/dist/chunks/rgbdDecode.fragment-CZhZbezW.esm.min.js +2 -0
  363. package/dist/chunks/rgbdDecode.fragment-CZhZbezW.esm.min.js.map +1 -0
  364. package/dist/chunks/rgbdDecode.fragment-CgKBbbD1.esm.js +13 -0
  365. package/dist/chunks/rgbdDecode.fragment-CgKBbbD1.esm.js.map +1 -0
  366. package/dist/chunks/rgbdDecode.fragment-LHNdHf3k.esm.min.js +2 -0
  367. package/dist/chunks/rgbdDecode.fragment-LHNdHf3k.esm.min.js.map +1 -0
  368. package/dist/chunks/rgbdDecode.fragment-fiTenc35.esm.js +13 -0
  369. package/dist/chunks/rgbdDecode.fragment-fiTenc35.esm.js.map +1 -0
  370. package/dist/chunks/rgbdEncode.fragment-9S80Pwpo.esm.min.js +2 -0
  371. package/dist/chunks/rgbdEncode.fragment-9S80Pwpo.esm.min.js.map +1 -0
  372. package/dist/chunks/rgbdEncode.fragment-BqEeZloN.esm.js +13 -0
  373. package/dist/chunks/rgbdEncode.fragment-BqEeZloN.esm.js.map +1 -0
  374. package/dist/chunks/rgbdEncode.fragment-DNHQ71A7.esm.min.js +2 -0
  375. package/dist/chunks/rgbdEncode.fragment-DNHQ71A7.esm.min.js.map +1 -0
  376. package/dist/chunks/rgbdEncode.fragment-Opuv8m2e.esm.js +13 -0
  377. package/dist/chunks/rgbdEncode.fragment-Opuv8m2e.esm.js.map +1 -0
  378. package/dist/chunks/splatFileLoader-ZYsB_KqH.esm.js +3379 -0
  379. package/dist/chunks/splatFileLoader-ZYsB_KqH.esm.js.map +1 -0
  380. package/dist/chunks/splatFileLoader-vkPYxHIT.esm.min.js +2 -0
  381. package/dist/chunks/splatFileLoader-vkPYxHIT.esm.min.js.map +1 -0
  382. package/dist/chunks/spotLight-BlYHhPZ5.esm.js +701 -0
  383. package/dist/chunks/spotLight-BlYHhPZ5.esm.js.map +1 -0
  384. package/dist/chunks/spotLight-CbgIfMbz.esm.min.js +2 -0
  385. package/dist/chunks/spotLight-CbgIfMbz.esm.min.js.map +1 -0
  386. package/dist/chunks/standardMaterial-2SzHzTgX.esm.js +1806 -0
  387. package/dist/chunks/standardMaterial-2SzHzTgX.esm.js.map +1 -0
  388. package/dist/chunks/standardMaterial-BuAbZl_Z.esm.min.js +2 -0
  389. package/dist/chunks/standardMaterial-BuAbZl_Z.esm.min.js.map +1 -0
  390. package/dist/chunks/stlFileLoader-5Kq215Ci.esm.js +238 -0
  391. package/dist/chunks/stlFileLoader-5Kq215Ci.esm.js.map +1 -0
  392. package/dist/chunks/stlFileLoader-wv5ATvZu.esm.min.js +2 -0
  393. package/dist/chunks/stlFileLoader-wv5ATvZu.esm.min.js.map +1 -0
  394. package/dist/chunks/tgaTextureLoader-DWICU4Mc.esm.js +349 -0
  395. package/dist/chunks/tgaTextureLoader-DWICU4Mc.esm.js.map +1 -0
  396. package/dist/chunks/tgaTextureLoader-bJsNfJzG.esm.min.js +2 -0
  397. package/dist/chunks/tgaTextureLoader-bJsNfJzG.esm.min.js.map +1 -0
  398. package/dist/chunks/thinEngine-BeWECwt6.esm.js +3848 -0
  399. package/dist/chunks/thinEngine-BeWECwt6.esm.js.map +1 -0
  400. package/dist/chunks/thinEngine-DFwbHE_G.esm.min.js +2 -0
  401. package/dist/chunks/thinEngine-DFwbHE_G.esm.min.js.map +1 -0
  402. package/dist/chunks/thinInstanceMesh-B1pIcpZJ.esm.min.js +2 -0
  403. package/dist/chunks/thinInstanceMesh-B1pIcpZJ.esm.min.js.map +1 -0
  404. package/dist/chunks/thinInstanceMesh-CwRJpzmW.esm.js +314 -0
  405. package/dist/chunks/thinInstanceMesh-CwRJpzmW.esm.js.map +1 -0
  406. package/dist/chunks/vertexColorMixing-BKr2fbgc.esm.js +531 -0
  407. package/dist/chunks/vertexColorMixing-BKr2fbgc.esm.js.map +1 -0
  408. package/dist/chunks/vertexColorMixing-BygjAnHj.esm.min.js +2 -0
  409. package/dist/chunks/vertexColorMixing-BygjAnHj.esm.min.js.map +1 -0
  410. package/dist/chunks/vertexColorMixing-HfObYyiq.esm.min.js +2 -0
  411. package/dist/chunks/vertexColorMixing-HfObYyiq.esm.min.js.map +1 -0
  412. package/dist/chunks/vertexColorMixing-_UoBUkRQ.esm.js +421 -0
  413. package/dist/chunks/vertexColorMixing-_UoBUkRQ.esm.js.map +1 -0
  414. package/dist/chunks/webgpuEngine-BPO8q4wr.esm.js +11533 -0
  415. package/dist/chunks/webgpuEngine-BPO8q4wr.esm.js.map +1 -0
  416. package/dist/chunks/webgpuEngine-DvdhZwbl.esm.min.js +2 -0
  417. package/dist/chunks/webgpuEngine-DvdhZwbl.esm.min.js.map +1 -0
  418. package/dist/chunks/workerPool-BUOov2K1.esm.js +122 -0
  419. package/dist/chunks/workerPool-BUOov2K1.esm.js.map +1 -0
  420. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js +2 -0
  421. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js.map +1 -0
  422. package/lib/index.d.ts +591 -0
  423. package/lib/index.js +2165 -0
  424. package/lib/index.js.map +1 -0
  425. package/package.json +19 -28
  426. package/readme.md +28 -28
  427. package/configuration/configuration.d.ts +0 -107
  428. package/configuration/configuration.js +0 -16
  429. package/configuration/configuration.js.map +0 -1
  430. package/configuration/configurationCompatibility.d.ts +0 -8
  431. package/configuration/configurationCompatibility.js +0 -66
  432. package/configuration/configurationCompatibility.js.map +0 -1
  433. package/configuration/configurationContainer.d.ts +0 -10
  434. package/configuration/configurationContainer.js +0 -10
  435. package/configuration/configurationContainer.js.map +0 -1
  436. package/configuration/globals.d.ts +0 -6
  437. package/configuration/globals.js +0 -18
  438. package/configuration/globals.js.map +0 -1
  439. package/configuration/index.d.ts +0 -2
  440. package/configuration/index.js +0 -4
  441. package/configuration/index.js.map +0 -1
  442. package/configuration/interfaces/cameraConfiguration.d.ts +0 -31
  443. package/configuration/interfaces/cameraConfiguration.js +0 -2
  444. package/configuration/interfaces/cameraConfiguration.js.map +0 -1
  445. package/configuration/interfaces/colorGradingConfiguration.d.ts +0 -81
  446. package/configuration/interfaces/colorGradingConfiguration.js +0 -2
  447. package/configuration/interfaces/colorGradingConfiguration.js.map +0 -1
  448. package/configuration/interfaces/defaultRenderingPipelineConfiguration.d.ts +0 -20
  449. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js +0 -2
  450. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js.map +0 -1
  451. package/configuration/interfaces/environmentMapConfiguration.d.ts +0 -22
  452. package/configuration/interfaces/environmentMapConfiguration.js +0 -2
  453. package/configuration/interfaces/environmentMapConfiguration.js.map +0 -1
  454. package/configuration/interfaces/groundConfiguration.d.ts +0 -24
  455. package/configuration/interfaces/groundConfiguration.js +0 -2
  456. package/configuration/interfaces/groundConfiguration.js.map +0 -1
  457. package/configuration/interfaces/imageProcessingConfiguration.d.ts +0 -45
  458. package/configuration/interfaces/imageProcessingConfiguration.js +0 -2
  459. package/configuration/interfaces/imageProcessingConfiguration.js.map +0 -1
  460. package/configuration/interfaces/index.d.ts +0 -15
  461. package/configuration/interfaces/index.js +0 -16
  462. package/configuration/interfaces/index.js.map +0 -1
  463. package/configuration/interfaces/lightConfiguration.d.ts +0 -60
  464. package/configuration/interfaces/lightConfiguration.js +0 -2
  465. package/configuration/interfaces/lightConfiguration.js.map +0 -1
  466. package/configuration/interfaces/modelAnimationConfiguration.d.ts +0 -26
  467. package/configuration/interfaces/modelAnimationConfiguration.js +0 -2
  468. package/configuration/interfaces/modelAnimationConfiguration.js.map +0 -1
  469. package/configuration/interfaces/modelConfiguration.d.ts +0 -65
  470. package/configuration/interfaces/modelConfiguration.js +0 -2
  471. package/configuration/interfaces/modelConfiguration.js.map +0 -1
  472. package/configuration/interfaces/observersConfiguration.d.ts +0 -5
  473. package/configuration/interfaces/observersConfiguration.js +0 -2
  474. package/configuration/interfaces/observersConfiguration.js.map +0 -1
  475. package/configuration/interfaces/sceneConfiguration.d.ts +0 -48
  476. package/configuration/interfaces/sceneConfiguration.js +0 -2
  477. package/configuration/interfaces/sceneConfiguration.js.map +0 -1
  478. package/configuration/interfaces/sceneOptimizerConfiguration.d.ts +0 -23
  479. package/configuration/interfaces/sceneOptimizerConfiguration.js +0 -2
  480. package/configuration/interfaces/sceneOptimizerConfiguration.js.map +0 -1
  481. package/configuration/interfaces/skyboxConfiguration.d.ts +0 -21
  482. package/configuration/interfaces/skyboxConfiguration.js +0 -2
  483. package/configuration/interfaces/skyboxConfiguration.js.map +0 -1
  484. package/configuration/interfaces/templateConfiguration.d.ts +0 -67
  485. package/configuration/interfaces/templateConfiguration.js +0 -2
  486. package/configuration/interfaces/templateConfiguration.js.map +0 -1
  487. package/configuration/interfaces/vrConfiguration.d.ts +0 -16
  488. package/configuration/interfaces/vrConfiguration.js +0 -2
  489. package/configuration/interfaces/vrConfiguration.js.map +0 -1
  490. package/configuration/loader.d.ts +0 -4
  491. package/configuration/loader.js +0 -17
  492. package/configuration/loader.js.map +0 -1
  493. package/configuration/mappers.d.ts +0 -43
  494. package/configuration/mappers.js +0 -193
  495. package/configuration/mappers.js.map +0 -1
  496. package/configuration/renderOnlyLoader.d.ts +0 -33
  497. package/configuration/renderOnlyLoader.js +0 -162
  498. package/configuration/renderOnlyLoader.js.map +0 -1
  499. package/configuration/types/default.d.ts +0 -6
  500. package/configuration/types/default.js +0 -121
  501. package/configuration/types/default.js.map +0 -1
  502. package/configuration/types/environmentMap.d.ts +0 -5
  503. package/configuration/types/environmentMap.js +0 -14
  504. package/configuration/types/environmentMap.js.map +0 -1
  505. package/configuration/types/extended.d.ts +0 -6
  506. package/configuration/types/extended.js +0 -317
  507. package/configuration/types/extended.js.map +0 -1
  508. package/configuration/types/index.d.ts +0 -14
  509. package/configuration/types/index.js +0 -51
  510. package/configuration/types/index.js.map +0 -1
  511. package/configuration/types/minimal.d.ts +0 -6
  512. package/configuration/types/minimal.js +0 -43
  513. package/configuration/types/minimal.js.map +0 -1
  514. package/configuration/types/renderOnlyDefault.d.ts +0 -30
  515. package/configuration/types/renderOnlyDefault.js +0 -31
  516. package/configuration/types/renderOnlyDefault.js.map +0 -1
  517. package/configuration/types/shadowLight.d.ts +0 -9
  518. package/configuration/types/shadowLight.js +0 -64
  519. package/configuration/types/shadowLight.js.map +0 -1
  520. package/helper/index.d.ts +0 -29
  521. package/helper/index.js +0 -66
  522. package/helper/index.js.map +0 -1
  523. package/index.d.ts +0 -30
  524. package/index.js +0 -46
  525. package/index.js.map +0 -1
  526. package/initializer.d.ts +0 -11
  527. package/initializer.js +0 -35
  528. package/initializer.js.map +0 -1
  529. package/interfaces.d.ts +0 -5
  530. package/interfaces.js +0 -7
  531. package/interfaces.js.map +0 -1
  532. package/labs/environmentSerializer.d.ts +0 -126
  533. package/labs/environmentSerializer.js +0 -191
  534. package/labs/environmentSerializer.js.map +0 -1
  535. package/labs/texture.d.ts +0 -183
  536. package/labs/texture.js +0 -351
  537. package/labs/texture.js.map +0 -1
  538. package/labs/viewerLabs.d.ts +0 -51
  539. package/labs/viewerLabs.js +0 -134
  540. package/labs/viewerLabs.js.map +0 -1
  541. package/loader/modelLoader.d.ts +0 -56
  542. package/loader/modelLoader.js +0 -202
  543. package/loader/modelLoader.js.map +0 -1
  544. package/loader/plugins/applyMaterialConfig.d.ts +0 -12
  545. package/loader/plugins/applyMaterialConfig.js +0 -16
  546. package/loader/plugins/applyMaterialConfig.js.map +0 -1
  547. package/loader/plugins/extendedMaterialLoaderPlugin.d.ts +0 -9
  548. package/loader/plugins/extendedMaterialLoaderPlugin.js +0 -16
  549. package/loader/plugins/extendedMaterialLoaderPlugin.js.map +0 -1
  550. package/loader/plugins/index.d.ts +0 -19
  551. package/loader/plugins/index.js +0 -44
  552. package/loader/plugins/index.js.map +0 -1
  553. package/loader/plugins/loaderPlugin.d.ts +0 -24
  554. package/loader/plugins/loaderPlugin.js +0 -2
  555. package/loader/plugins/loaderPlugin.js.map +0 -1
  556. package/loader/plugins/msftLodLoaderPlugin.d.ts +0 -12
  557. package/loader/plugins/msftLodLoaderPlugin.js +0 -21
  558. package/loader/plugins/msftLodLoaderPlugin.js.map +0 -1
  559. package/loader/plugins/telemetryLoaderPlugin.d.ts +0 -12
  560. package/loader/plugins/telemetryLoaderPlugin.js +0 -36
  561. package/loader/plugins/telemetryLoaderPlugin.js.map +0 -1
  562. package/managers/observablesManager.d.ts +0 -66
  563. package/managers/observablesManager.js +0 -35
  564. package/managers/observablesManager.js.map +0 -1
  565. package/managers/sceneManager.d.ts +0 -245
  566. package/managers/sceneManager.js +0 -1375
  567. package/managers/sceneManager.js.map +0 -1
  568. package/managers/telemetryManager.d.ts +0 -78
  569. package/managers/telemetryManager.js +0 -117
  570. package/managers/telemetryManager.js.map +0 -1
  571. package/model/modelAnimation.d.ts +0 -215
  572. package/model/modelAnimation.js +0 -237
  573. package/model/modelAnimation.js.map +0 -1
  574. package/model/viewerModel.d.ts +0 -233
  575. package/model/viewerModel.js +0 -673
  576. package/model/viewerModel.js.map +0 -1
  577. package/optimizer/custom/extended.d.ts +0 -13
  578. package/optimizer/custom/extended.js +0 -101
  579. package/optimizer/custom/extended.js.map +0 -1
  580. package/optimizer/custom/index.d.ts +0 -9
  581. package/optimizer/custom/index.js +0 -26
  582. package/optimizer/custom/index.js.map +0 -1
  583. package/renderOnlyIndex.d.ts +0 -11
  584. package/renderOnlyIndex.js +0 -18
  585. package/renderOnlyIndex.js.map +0 -1
  586. package/templating/eventManager.d.ts +0 -35
  587. package/templating/eventManager.js +0 -66
  588. package/templating/eventManager.js.map +0 -1
  589. package/templating/plugins/hdButtonPlugin.d.ts +0 -9
  590. package/templating/plugins/hdButtonPlugin.js +0 -22
  591. package/templating/plugins/hdButtonPlugin.js.map +0 -1
  592. package/templating/plugins/printButton.d.ts +0 -9
  593. package/templating/plugins/printButton.js +0 -41
  594. package/templating/plugins/printButton.js.map +0 -1
  595. package/templating/templateManager.d.ts +0 -197
  596. package/templating/templateManager.js +0 -561
  597. package/templating/templateManager.js.map +0 -1
  598. package/templating/viewerTemplatePlugin.d.ts +0 -21
  599. package/templating/viewerTemplatePlugin.js +0 -69
  600. package/templating/viewerTemplatePlugin.js.map +0 -1
  601. package/viewer/defaultViewer.d.ts +0 -130
  602. package/viewer/defaultViewer.js +0 -672
  603. package/viewer/defaultViewer.js.map +0 -1
  604. package/viewer/renderOnlyViewer.d.ts +0 -9
  605. package/viewer/renderOnlyViewer.js +0 -46
  606. package/viewer/renderOnlyViewer.js.map +0 -1
  607. package/viewer/viewer.d.ts +0 -258
  608. package/viewer/viewer.js +0 -783
  609. package/viewer/viewer.js.map +0 -1
  610. package/viewer/viewerManager.d.ts +0 -58
  611. package/viewer/viewerManager.js +0 -91
  612. package/viewer/viewerManager.js.map +0 -1
  613. package/viewer/viewerWithTemplate.d.ts +0 -9
  614. package/viewer/viewerWithTemplate.js +0 -20
  615. package/viewer/viewerWithTemplate.js.map +0 -1
@@ -0,0 +1,814 @@
1
+ import { L as Logger, T as Tools, C as Constants } from './index-B6sqDOGz.esm.js';
2
+ import { A as AutoReleaseWorkerPool } from './workerPool-BUOov2K1.esm.js';
3
+
4
+ /* eslint-disable @typescript-eslint/naming-convention */
5
+ /**
6
+ * for description see https://www.khronos.org/opengles/sdk/tools/KTX/
7
+ * for file layout see https://www.khronos.org/opengles/sdk/tools/KTX/file_format_spec/
8
+ */
9
+ class KhronosTextureContainer {
10
+ /**
11
+ * Creates a new KhronosTextureContainer
12
+ * @param data contents of the KTX container file
13
+ * @param facesExpected should be either 1 or 6, based whether a cube texture or or
14
+ */
15
+ constructor(
16
+ /** contents of the KTX container file */
17
+ data, facesExpected) {
18
+ this.data = data;
19
+ /**
20
+ * If the container has been made invalid (eg. constructor failed to correctly load array buffer)
21
+ */
22
+ this.isInvalid = false;
23
+ if (!KhronosTextureContainer.IsValid(data)) {
24
+ this.isInvalid = true;
25
+ Logger.Error("texture missing KTX identifier");
26
+ return;
27
+ }
28
+ // load the reset of the header in native 32 bit uint
29
+ const dataSize = Uint32Array.BYTES_PER_ELEMENT;
30
+ const headerDataView = new DataView(this.data.buffer, this.data.byteOffset + 12, 13 * dataSize);
31
+ const endianness = headerDataView.getUint32(0, true);
32
+ const littleEndian = endianness === 0x04030201;
33
+ this.glType = headerDataView.getUint32(1 * dataSize, littleEndian); // must be 0 for compressed textures
34
+ this.glTypeSize = headerDataView.getUint32(2 * dataSize, littleEndian); // must be 1 for compressed textures
35
+ this.glFormat = headerDataView.getUint32(3 * dataSize, littleEndian); // must be 0 for compressed textures
36
+ this.glInternalFormat = headerDataView.getUint32(4 * dataSize, littleEndian); // the value of arg passed to gl.compressedTexImage2D(,,x,,,,)
37
+ this.glBaseInternalFormat = headerDataView.getUint32(5 * dataSize, littleEndian); // specify GL_RGB, GL_RGBA, GL_ALPHA, etc (un-compressed only)
38
+ this.pixelWidth = headerDataView.getUint32(6 * dataSize, littleEndian); // level 0 value of arg passed to gl.compressedTexImage2D(,,,x,,,)
39
+ this.pixelHeight = headerDataView.getUint32(7 * dataSize, littleEndian); // level 0 value of arg passed to gl.compressedTexImage2D(,,,,x,,)
40
+ this.pixelDepth = headerDataView.getUint32(8 * dataSize, littleEndian); // level 0 value of arg passed to gl.compressedTexImage3D(,,,,,x,,)
41
+ this.numberOfArrayElements = headerDataView.getUint32(9 * dataSize, littleEndian); // used for texture arrays
42
+ this.numberOfFaces = headerDataView.getUint32(10 * dataSize, littleEndian); // used for cubemap textures, should either be 1 or 6
43
+ this.numberOfMipmapLevels = headerDataView.getUint32(11 * dataSize, littleEndian); // number of levels; disregard possibility of 0 for compressed textures
44
+ this.bytesOfKeyValueData = headerDataView.getUint32(12 * dataSize, littleEndian); // the amount of space after the header for meta-data
45
+ // Make sure we have a compressed type. Not only reduces work, but probably better to let dev know they are not compressing.
46
+ if (this.glType !== 0) {
47
+ Logger.Error("only compressed formats currently supported");
48
+ this.isInvalid = true;
49
+ return;
50
+ }
51
+ else {
52
+ // value of zero is an indication to generate mipmaps @ runtime. Not usually allowed for compressed, so disregard.
53
+ this.numberOfMipmapLevels = Math.max(1, this.numberOfMipmapLevels);
54
+ }
55
+ if (this.pixelHeight === 0 || this.pixelDepth !== 0) {
56
+ Logger.Error("only 2D textures currently supported");
57
+ this.isInvalid = true;
58
+ return;
59
+ }
60
+ if (this.numberOfArrayElements !== 0) {
61
+ Logger.Error("texture arrays not currently supported");
62
+ this.isInvalid = true;
63
+ return;
64
+ }
65
+ if (this.numberOfFaces !== facesExpected) {
66
+ Logger.Error("number of faces expected" + facesExpected + ", but found " + this.numberOfFaces);
67
+ this.isInvalid = true;
68
+ return;
69
+ }
70
+ // we now have a completely validated file, so could use existence of loadType as success
71
+ // would need to make this more elaborate & adjust checks above to support more than one load type
72
+ this.loadType = KhronosTextureContainer.COMPRESSED_2D;
73
+ }
74
+ /**
75
+ * Uploads KTX content to a Babylon Texture.
76
+ * It is assumed that the texture has already been created & is currently bound
77
+ * @internal
78
+ */
79
+ uploadLevels(texture, loadMipmaps) {
80
+ switch (this.loadType) {
81
+ case KhronosTextureContainer.COMPRESSED_2D:
82
+ this._upload2DCompressedLevels(texture, loadMipmaps);
83
+ break;
84
+ }
85
+ }
86
+ _upload2DCompressedLevels(texture, loadMipmaps) {
87
+ // initialize width & height for level 1
88
+ let dataOffset = KhronosTextureContainer.HEADER_LEN + this.bytesOfKeyValueData;
89
+ let width = this.pixelWidth;
90
+ let height = this.pixelHeight;
91
+ const mipmapCount = loadMipmaps ? this.numberOfMipmapLevels : 1;
92
+ for (let level = 0; level < mipmapCount; level++) {
93
+ const imageSize = new Int32Array(this.data.buffer, this.data.byteOffset + dataOffset, 1)[0]; // size per face, since not supporting array cubemaps
94
+ dataOffset += 4; //image data starts from next multiple of 4 offset. Each face refers to same imagesize field above.
95
+ for (let face = 0; face < this.numberOfFaces; face++) {
96
+ const byteArray = new Uint8Array(this.data.buffer, this.data.byteOffset + dataOffset, imageSize);
97
+ const engine = texture.getEngine();
98
+ engine._uploadCompressedDataToTextureDirectly(texture, texture.format, width, height, byteArray, face, level);
99
+ dataOffset += imageSize; // add size of the image for the next face/mipmap
100
+ dataOffset += 3 - ((imageSize + 3) % 4); // add padding for odd sized image
101
+ }
102
+ width = Math.max(1.0, width * 0.5);
103
+ height = Math.max(1.0, height * 0.5);
104
+ }
105
+ }
106
+ /**
107
+ * Checks if the given data starts with a KTX file identifier.
108
+ * @param data the data to check
109
+ * @returns true if the data is a KTX file or false otherwise
110
+ */
111
+ static IsValid(data) {
112
+ if (data.byteLength >= 12) {
113
+ // '«', 'K', 'T', 'X', ' ', '1', '1', '»', '\r', '\n', '\x1A', '\n'
114
+ const identifier = new Uint8Array(data.buffer, data.byteOffset, 12);
115
+ if (identifier[0] === 0xab &&
116
+ identifier[1] === 0x4b &&
117
+ identifier[2] === 0x54 &&
118
+ identifier[3] === 0x58 &&
119
+ identifier[4] === 0x20 &&
120
+ identifier[5] === 0x31 &&
121
+ identifier[6] === 0x31 &&
122
+ identifier[7] === 0xbb &&
123
+ identifier[8] === 0x0d &&
124
+ identifier[9] === 0x0a &&
125
+ identifier[10] === 0x1a &&
126
+ identifier[11] === 0x0a) {
127
+ return true;
128
+ }
129
+ }
130
+ return false;
131
+ }
132
+ }
133
+ KhronosTextureContainer.HEADER_LEN = 12 + 13 * 4; // identifier + header elements (not including key value meta-data pairs)
134
+ // load types
135
+ KhronosTextureContainer.COMPRESSED_2D = 0; // uses a gl.compressedTexImage2D()
136
+ KhronosTextureContainer.COMPRESSED_3D = 1; // uses a gl.compressedTexImage3D()
137
+ KhronosTextureContainer.TEX_2D = 2; // uses a gl.texImage2D()
138
+ KhronosTextureContainer.TEX_3D = 3; // uses a gl.texImage3D()
139
+
140
+ var SourceTextureFormat;
141
+ (function (SourceTextureFormat) {
142
+ SourceTextureFormat[SourceTextureFormat["ETC1S"] = 0] = "ETC1S";
143
+ SourceTextureFormat[SourceTextureFormat["UASTC4x4"] = 1] = "UASTC4x4";
144
+ })(SourceTextureFormat || (SourceTextureFormat = {}));
145
+ var TranscodeTarget;
146
+ (function (TranscodeTarget) {
147
+ TranscodeTarget[TranscodeTarget["ASTC_4X4_RGBA"] = 0] = "ASTC_4X4_RGBA";
148
+ TranscodeTarget[TranscodeTarget["BC7_RGBA"] = 1] = "BC7_RGBA";
149
+ TranscodeTarget[TranscodeTarget["BC3_RGBA"] = 2] = "BC3_RGBA";
150
+ TranscodeTarget[TranscodeTarget["BC1_RGB"] = 3] = "BC1_RGB";
151
+ TranscodeTarget[TranscodeTarget["PVRTC1_4_RGBA"] = 4] = "PVRTC1_4_RGBA";
152
+ TranscodeTarget[TranscodeTarget["PVRTC1_4_RGB"] = 5] = "PVRTC1_4_RGB";
153
+ TranscodeTarget[TranscodeTarget["ETC2_RGBA"] = 6] = "ETC2_RGBA";
154
+ TranscodeTarget[TranscodeTarget["ETC1_RGB"] = 7] = "ETC1_RGB";
155
+ TranscodeTarget[TranscodeTarget["RGBA32"] = 8] = "RGBA32";
156
+ TranscodeTarget[TranscodeTarget["R8"] = 9] = "R8";
157
+ TranscodeTarget[TranscodeTarget["RG8"] = 10] = "RG8";
158
+ })(TranscodeTarget || (TranscodeTarget = {}));
159
+ var EngineFormat;
160
+ (function (EngineFormat) {
161
+ EngineFormat[EngineFormat["COMPRESSED_RGBA_BPTC_UNORM_EXT"] = 36492] = "COMPRESSED_RGBA_BPTC_UNORM_EXT";
162
+ EngineFormat[EngineFormat["COMPRESSED_RGBA_ASTC_4X4_KHR"] = 37808] = "COMPRESSED_RGBA_ASTC_4X4_KHR";
163
+ EngineFormat[EngineFormat["COMPRESSED_RGB_S3TC_DXT1_EXT"] = 33776] = "COMPRESSED_RGB_S3TC_DXT1_EXT";
164
+ EngineFormat[EngineFormat["COMPRESSED_RGBA_S3TC_DXT5_EXT"] = 33779] = "COMPRESSED_RGBA_S3TC_DXT5_EXT";
165
+ EngineFormat[EngineFormat["COMPRESSED_RGBA_PVRTC_4BPPV1_IMG"] = 35842] = "COMPRESSED_RGBA_PVRTC_4BPPV1_IMG";
166
+ EngineFormat[EngineFormat["COMPRESSED_RGB_PVRTC_4BPPV1_IMG"] = 35840] = "COMPRESSED_RGB_PVRTC_4BPPV1_IMG";
167
+ EngineFormat[EngineFormat["COMPRESSED_RGBA8_ETC2_EAC"] = 37496] = "COMPRESSED_RGBA8_ETC2_EAC";
168
+ EngineFormat[EngineFormat["COMPRESSED_RGB8_ETC2"] = 37492] = "COMPRESSED_RGB8_ETC2";
169
+ EngineFormat[EngineFormat["COMPRESSED_RGB_ETC1_WEBGL"] = 36196] = "COMPRESSED_RGB_ETC1_WEBGL";
170
+ EngineFormat[EngineFormat["RGBA8Format"] = 32856] = "RGBA8Format";
171
+ EngineFormat[EngineFormat["R8Format"] = 33321] = "R8Format";
172
+ EngineFormat[EngineFormat["RG8Format"] = 33323] = "RG8Format";
173
+ })(EngineFormat || (EngineFormat = {}));
174
+
175
+ function applyConfig(urls, binariesAndModulesContainer) {
176
+ const KTX2DecoderModule = binariesAndModulesContainer?.jsDecoderModule || KTX2DECODER;
177
+ if (urls) {
178
+ if (urls.wasmUASTCToASTC) {
179
+ KTX2DecoderModule.LiteTranscoder_UASTC_ASTC.WasmModuleURL = urls.wasmUASTCToASTC;
180
+ }
181
+ if (urls.wasmUASTCToBC7) {
182
+ KTX2DecoderModule.LiteTranscoder_UASTC_BC7.WasmModuleURL = urls.wasmUASTCToBC7;
183
+ }
184
+ if (urls.wasmUASTCToRGBA_UNORM) {
185
+ KTX2DecoderModule.LiteTranscoder_UASTC_RGBA_UNORM.WasmModuleURL = urls.wasmUASTCToRGBA_UNORM;
186
+ }
187
+ if (urls.wasmUASTCToRGBA_SRGB) {
188
+ KTX2DecoderModule.LiteTranscoder_UASTC_RGBA_SRGB.WasmModuleURL = urls.wasmUASTCToRGBA_SRGB;
189
+ }
190
+ if (urls.wasmUASTCToR8_UNORM) {
191
+ KTX2DecoderModule.LiteTranscoder_UASTC_R8_UNORM.WasmModuleURL = urls.wasmUASTCToR8_UNORM;
192
+ }
193
+ if (urls.wasmUASTCToRG8_UNORM) {
194
+ KTX2DecoderModule.LiteTranscoder_UASTC_RG8_UNORM.WasmModuleURL = urls.wasmUASTCToRG8_UNORM;
195
+ }
196
+ if (urls.jsMSCTranscoder) {
197
+ KTX2DecoderModule.MSCTranscoder.JSModuleURL = urls.jsMSCTranscoder;
198
+ }
199
+ if (urls.wasmMSCTranscoder) {
200
+ KTX2DecoderModule.MSCTranscoder.WasmModuleURL = urls.wasmMSCTranscoder;
201
+ }
202
+ if (urls.wasmZSTDDecoder) {
203
+ KTX2DecoderModule.ZSTDDecoder.WasmModuleURL = urls.wasmZSTDDecoder;
204
+ }
205
+ }
206
+ if (binariesAndModulesContainer) {
207
+ if (binariesAndModulesContainer.wasmUASTCToASTC) {
208
+ KTX2DecoderModule.LiteTranscoder_UASTC_ASTC.WasmBinary = binariesAndModulesContainer.wasmUASTCToASTC;
209
+ }
210
+ if (binariesAndModulesContainer.wasmUASTCToBC7) {
211
+ KTX2DecoderModule.LiteTranscoder_UASTC_BC7.WasmBinary = binariesAndModulesContainer.wasmUASTCToBC7;
212
+ }
213
+ if (binariesAndModulesContainer.wasmUASTCToRGBA_UNORM) {
214
+ KTX2DecoderModule.LiteTranscoder_UASTC_RGBA_UNORM.WasmBinary = binariesAndModulesContainer.wasmUASTCToRGBA_UNORM;
215
+ }
216
+ if (binariesAndModulesContainer.wasmUASTCToRGBA_SRGB) {
217
+ KTX2DecoderModule.LiteTranscoder_UASTC_RGBA_SRGB.WasmBinary = binariesAndModulesContainer.wasmUASTCToRGBA_SRGB;
218
+ }
219
+ if (binariesAndModulesContainer.wasmUASTCToR8_UNORM) {
220
+ KTX2DecoderModule.LiteTranscoder_UASTC_R8_UNORM.WasmBinary = binariesAndModulesContainer.wasmUASTCToR8_UNORM;
221
+ }
222
+ if (binariesAndModulesContainer.wasmUASTCToRG8_UNORM) {
223
+ KTX2DecoderModule.LiteTranscoder_UASTC_RG8_UNORM.WasmBinary = binariesAndModulesContainer.wasmUASTCToRG8_UNORM;
224
+ }
225
+ if (binariesAndModulesContainer.jsMSCTranscoder) {
226
+ KTX2DecoderModule.MSCTranscoder.JSModule = binariesAndModulesContainer.jsMSCTranscoder;
227
+ }
228
+ if (binariesAndModulesContainer.wasmMSCTranscoder) {
229
+ KTX2DecoderModule.MSCTranscoder.WasmBinary = binariesAndModulesContainer.wasmMSCTranscoder;
230
+ }
231
+ if (binariesAndModulesContainer.wasmZSTDDecoder) {
232
+ KTX2DecoderModule.ZSTDDecoder.WasmBinary = binariesAndModulesContainer.wasmZSTDDecoder;
233
+ }
234
+ }
235
+ }
236
+ function workerFunction(KTX2DecoderModule) {
237
+ if (typeof KTX2DecoderModule === "undefined" && typeof KTX2DECODER !== "undefined") {
238
+ KTX2DecoderModule = KTX2DECODER;
239
+ }
240
+ let ktx2Decoder;
241
+ onmessage = (event) => {
242
+ if (!event.data) {
243
+ return;
244
+ }
245
+ switch (event.data.action) {
246
+ case "init": {
247
+ const urls = event.data.urls;
248
+ if (urls) {
249
+ if (urls.jsDecoderModule && typeof KTX2DecoderModule === "undefined") {
250
+ importScripts(urls.jsDecoderModule);
251
+ // assuming global namespace populated by the script (UMD pattern)
252
+ KTX2DecoderModule = KTX2DECODER;
253
+ }
254
+ applyConfig(urls);
255
+ }
256
+ if (event.data.wasmBinaries) {
257
+ applyConfig(undefined, { ...event.data.wasmBinaries, jsDecoderModule: KTX2DecoderModule });
258
+ }
259
+ ktx2Decoder = new KTX2DecoderModule.KTX2Decoder();
260
+ postMessage({ action: "init" });
261
+ break;
262
+ }
263
+ case "setDefaultDecoderOptions": {
264
+ KTX2DecoderModule.KTX2Decoder.DefaultDecoderOptions = event.data.options;
265
+ break;
266
+ }
267
+ case "decode":
268
+ ktx2Decoder
269
+ .decode(event.data.data, event.data.caps, event.data.options)
270
+ .then((data) => {
271
+ const buffers = [];
272
+ for (let mip = 0; mip < data.mipmaps.length; ++mip) {
273
+ const mipmap = data.mipmaps[mip];
274
+ if (mipmap && mipmap.data) {
275
+ buffers.push(mipmap.data.buffer);
276
+ }
277
+ }
278
+ postMessage({ action: "decoded", success: true, decodedData: data }, buffers);
279
+ })
280
+ .catch((reason) => {
281
+ postMessage({ action: "decoded", success: false, msg: reason });
282
+ });
283
+ break;
284
+ }
285
+ };
286
+ }
287
+ function initializeWebWorker(worker, wasmBinaries, urls) {
288
+ return new Promise((resolve, reject) => {
289
+ const onError = (error) => {
290
+ worker.removeEventListener("error", onError);
291
+ worker.removeEventListener("message", onMessage);
292
+ reject(error);
293
+ };
294
+ const onMessage = (message) => {
295
+ if (message.data.action === "init") {
296
+ worker.removeEventListener("error", onError);
297
+ worker.removeEventListener("message", onMessage);
298
+ resolve(worker);
299
+ }
300
+ };
301
+ worker.addEventListener("error", onError);
302
+ worker.addEventListener("message", onMessage);
303
+ worker.postMessage({
304
+ action: "init",
305
+ urls,
306
+ wasmBinaries,
307
+ });
308
+ });
309
+ }
310
+
311
+ /**
312
+ * Class that defines the default KTX2 decoder options.
313
+ *
314
+ * This class is useful for providing options to the KTX2 decoder to control how the source data is transcoded.
315
+ */
316
+ class DefaultKTX2DecoderOptions {
317
+ constructor() {
318
+ this._isDirty = true;
319
+ this._useRGBAIfOnlyBC1BC3AvailableWhenUASTC = true;
320
+ this._ktx2DecoderOptions = {};
321
+ }
322
+ /**
323
+ * Gets the dirty flag
324
+ */
325
+ get isDirty() {
326
+ return this._isDirty;
327
+ }
328
+ /**
329
+ * force a (uncompressed) RGBA transcoded format if transcoding a UASTC source format and ASTC + BC7 are not available as a compressed transcoded format
330
+ */
331
+ get useRGBAIfASTCBC7NotAvailableWhenUASTC() {
332
+ return this._useRGBAIfASTCBC7NotAvailableWhenUASTC;
333
+ }
334
+ set useRGBAIfASTCBC7NotAvailableWhenUASTC(value) {
335
+ if (this._useRGBAIfASTCBC7NotAvailableWhenUASTC === value) {
336
+ return;
337
+ }
338
+ this._useRGBAIfASTCBC7NotAvailableWhenUASTC = value;
339
+ this._isDirty = true;
340
+ }
341
+ /**
342
+ * force a (uncompressed) RGBA transcoded format if transcoding a UASTC source format and only BC1 or BC3 are available as a compressed transcoded format.
343
+ * 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
344
+ * to uncompressed and then recompresses the texture
345
+ */
346
+ get useRGBAIfOnlyBC1BC3AvailableWhenUASTC() {
347
+ return this._useRGBAIfOnlyBC1BC3AvailableWhenUASTC;
348
+ }
349
+ set useRGBAIfOnlyBC1BC3AvailableWhenUASTC(value) {
350
+ if (this._useRGBAIfOnlyBC1BC3AvailableWhenUASTC === value) {
351
+ return;
352
+ }
353
+ this._useRGBAIfOnlyBC1BC3AvailableWhenUASTC = value;
354
+ this._isDirty = true;
355
+ }
356
+ /**
357
+ * force to always use (uncompressed) RGBA for transcoded format
358
+ */
359
+ get forceRGBA() {
360
+ return this._forceRGBA;
361
+ }
362
+ set forceRGBA(value) {
363
+ if (this._forceRGBA === value) {
364
+ return;
365
+ }
366
+ this._forceRGBA = value;
367
+ this._isDirty = true;
368
+ }
369
+ /**
370
+ * force to always use (uncompressed) R8 for transcoded format
371
+ */
372
+ get forceR8() {
373
+ return this._forceR8;
374
+ }
375
+ set forceR8(value) {
376
+ if (this._forceR8 === value) {
377
+ return;
378
+ }
379
+ this._forceR8 = value;
380
+ this._isDirty = true;
381
+ }
382
+ /**
383
+ * force to always use (uncompressed) RG8 for transcoded format
384
+ */
385
+ get forceRG8() {
386
+ return this._forceRG8;
387
+ }
388
+ set forceRG8(value) {
389
+ if (this._forceRG8 === value) {
390
+ return;
391
+ }
392
+ this._forceRG8 = value;
393
+ this._isDirty = true;
394
+ }
395
+ /**
396
+ * list of transcoders to bypass when looking for a suitable transcoder. The available transcoders are:
397
+ * UniversalTranscoder_UASTC_ASTC
398
+ * UniversalTranscoder_UASTC_BC7
399
+ * UniversalTranscoder_UASTC_RGBA_UNORM
400
+ * UniversalTranscoder_UASTC_RGBA_SRGB
401
+ * UniversalTranscoder_UASTC_R8_UNORM
402
+ * UniversalTranscoder_UASTC_RG8_UNORM
403
+ * MSCTranscoder
404
+ */
405
+ get bypassTranscoders() {
406
+ return this._bypassTranscoders;
407
+ }
408
+ set bypassTranscoders(value) {
409
+ if (this._bypassTranscoders === value) {
410
+ return;
411
+ }
412
+ this._bypassTranscoders = value;
413
+ this._isDirty = true;
414
+ }
415
+ /** @internal */
416
+ _getKTX2DecoderOptions() {
417
+ if (!this._isDirty) {
418
+ return this._ktx2DecoderOptions;
419
+ }
420
+ this._isDirty = false;
421
+ const options = {
422
+ useRGBAIfASTCBC7NotAvailableWhenUASTC: this._useRGBAIfASTCBC7NotAvailableWhenUASTC,
423
+ forceRGBA: this._forceRGBA,
424
+ forceR8: this._forceR8,
425
+ forceRG8: this._forceRG8,
426
+ bypassTranscoders: this._bypassTranscoders,
427
+ };
428
+ if (this.useRGBAIfOnlyBC1BC3AvailableWhenUASTC) {
429
+ options.transcodeFormatDecisionTree = {
430
+ UASTC: {
431
+ transcodeFormat: [TranscodeTarget.BC1_RGB, TranscodeTarget.BC3_RGBA],
432
+ yes: {
433
+ transcodeFormat: TranscodeTarget.RGBA32,
434
+ engineFormat: 32856 /* EngineFormat.RGBA8Format */,
435
+ roundToMultiple4: false,
436
+ },
437
+ },
438
+ };
439
+ }
440
+ this._ktx2DecoderOptions = options;
441
+ return options;
442
+ }
443
+ }
444
+ /**
445
+ * Class for loading KTX2 files
446
+ */
447
+ class KhronosTextureContainer2 {
448
+ static GetDefaultNumWorkers() {
449
+ if (typeof navigator !== "object" || !navigator.hardwareConcurrency) {
450
+ return 1;
451
+ }
452
+ // Use 50% of the available logical processors but capped at 4.
453
+ return Math.min(Math.floor(navigator.hardwareConcurrency * 0.5), 4);
454
+ }
455
+ static _Initialize(numWorkers) {
456
+ if (KhronosTextureContainer2._WorkerPoolPromise || KhronosTextureContainer2._DecoderModulePromise) {
457
+ return;
458
+ }
459
+ const urls = {
460
+ jsDecoderModule: Tools.GetBabylonScriptURL(this.URLConfig.jsDecoderModule, true),
461
+ wasmUASTCToASTC: Tools.GetBabylonScriptURL(this.URLConfig.wasmUASTCToASTC, true),
462
+ wasmUASTCToBC7: Tools.GetBabylonScriptURL(this.URLConfig.wasmUASTCToBC7, true),
463
+ wasmUASTCToRGBA_UNORM: Tools.GetBabylonScriptURL(this.URLConfig.wasmUASTCToRGBA_UNORM, true),
464
+ wasmUASTCToRGBA_SRGB: Tools.GetBabylonScriptURL(this.URLConfig.wasmUASTCToRGBA_SRGB, true),
465
+ wasmUASTCToR8_UNORM: Tools.GetBabylonScriptURL(this.URLConfig.wasmUASTCToR8_UNORM, true),
466
+ wasmUASTCToRG8_UNORM: Tools.GetBabylonScriptURL(this.URLConfig.wasmUASTCToRG8_UNORM, true),
467
+ jsMSCTranscoder: Tools.GetBabylonScriptURL(this.URLConfig.jsMSCTranscoder, true),
468
+ wasmMSCTranscoder: Tools.GetBabylonScriptURL(this.URLConfig.wasmMSCTranscoder, true),
469
+ wasmZSTDDecoder: Tools.GetBabylonScriptURL(this.URLConfig.wasmZSTDDecoder, true),
470
+ };
471
+ if (numWorkers && typeof Worker === "function" && typeof URL !== "undefined") {
472
+ KhronosTextureContainer2._WorkerPoolPromise = new Promise((resolve) => {
473
+ const workerContent = `${applyConfig}(${workerFunction})()`;
474
+ const workerBlobUrl = URL.createObjectURL(new Blob([workerContent], { type: "application/javascript" }));
475
+ resolve(new AutoReleaseWorkerPool(numWorkers, () => initializeWebWorker(new Worker(workerBlobUrl), undefined, urls)));
476
+ });
477
+ }
478
+ else {
479
+ if (typeof KhronosTextureContainer2._KTX2DecoderModule === "undefined") {
480
+ KhronosTextureContainer2._DecoderModulePromise = Tools.LoadBabylonScriptAsync(urls.jsDecoderModule).then(() => {
481
+ KhronosTextureContainer2._KTX2DecoderModule = KTX2DECODER;
482
+ KhronosTextureContainer2._KTX2DecoderModule.MSCTranscoder.UseFromWorkerThread = false;
483
+ KhronosTextureContainer2._KTX2DecoderModule.WASMMemoryManager.LoadBinariesFromCurrentThread = true;
484
+ applyConfig(urls, KhronosTextureContainer2._KTX2DecoderModule);
485
+ return new KhronosTextureContainer2._KTX2DecoderModule.KTX2Decoder();
486
+ });
487
+ }
488
+ else {
489
+ KhronosTextureContainer2._KTX2DecoderModule.MSCTranscoder.UseFromWorkerThread = false;
490
+ KhronosTextureContainer2._KTX2DecoderModule.WASMMemoryManager.LoadBinariesFromCurrentThread = true;
491
+ KhronosTextureContainer2._DecoderModulePromise = Promise.resolve(new KhronosTextureContainer2._KTX2DecoderModule.KTX2Decoder());
492
+ }
493
+ }
494
+ }
495
+ /**
496
+ * Constructor
497
+ * @param engine The engine to use
498
+ * @param numWorkersOrOptions The number of workers for async operations. Specify `0` to disable web workers and run synchronously in the current context.
499
+ */
500
+ constructor(engine, numWorkersOrOptions = KhronosTextureContainer2.DefaultNumWorkers) {
501
+ this._engine = engine;
502
+ const workerPoolOption = (typeof numWorkersOrOptions === "object" && numWorkersOrOptions.workerPool) || KhronosTextureContainer2.WorkerPool;
503
+ if (workerPoolOption) {
504
+ KhronosTextureContainer2._WorkerPoolPromise = Promise.resolve(workerPoolOption);
505
+ }
506
+ else {
507
+ // set the KTX2 decoder module
508
+ if (typeof numWorkersOrOptions === "object") {
509
+ KhronosTextureContainer2._KTX2DecoderModule = numWorkersOrOptions?.binariesAndModulesContainer?.jsDecoderModule;
510
+ }
511
+ else if (typeof KTX2DECODER !== "undefined") {
512
+ KhronosTextureContainer2._KTX2DecoderModule = KTX2DECODER;
513
+ }
514
+ const numberOfWorkers = typeof numWorkersOrOptions === "number" ? numWorkersOrOptions : (numWorkersOrOptions.numWorkers ?? KhronosTextureContainer2.DefaultNumWorkers);
515
+ KhronosTextureContainer2._Initialize(numberOfWorkers);
516
+ }
517
+ }
518
+ /**
519
+ * @internal
520
+ */
521
+ _uploadAsync(data, internalTexture, options) {
522
+ const caps = this._engine.getCaps();
523
+ const compressedTexturesCaps = {
524
+ astc: !!caps.astc,
525
+ bptc: !!caps.bptc,
526
+ s3tc: !!caps.s3tc,
527
+ pvrtc: !!caps.pvrtc,
528
+ etc2: !!caps.etc2,
529
+ etc1: !!caps.etc1,
530
+ };
531
+ if (KhronosTextureContainer2._WorkerPoolPromise) {
532
+ return KhronosTextureContainer2._WorkerPoolPromise.then((workerPool) => {
533
+ return new Promise((resolve, reject) => {
534
+ workerPool.push((worker, onComplete) => {
535
+ const onError = (error) => {
536
+ worker.removeEventListener("error", onError);
537
+ worker.removeEventListener("message", onMessage);
538
+ reject(error);
539
+ onComplete();
540
+ };
541
+ const onMessage = (message) => {
542
+ if (message.data.action === "decoded") {
543
+ worker.removeEventListener("error", onError);
544
+ worker.removeEventListener("message", onMessage);
545
+ if (!message.data.success) {
546
+ reject({ message: message.data.msg });
547
+ }
548
+ else {
549
+ try {
550
+ this._createTexture(message.data.decodedData, internalTexture, options);
551
+ resolve();
552
+ }
553
+ catch (err) {
554
+ reject({ message: err });
555
+ }
556
+ }
557
+ onComplete();
558
+ }
559
+ };
560
+ worker.addEventListener("error", onError);
561
+ worker.addEventListener("message", onMessage);
562
+ worker.postMessage({ action: "setDefaultDecoderOptions", options: KhronosTextureContainer2.DefaultDecoderOptions._getKTX2DecoderOptions() });
563
+ const dataCopy = new Uint8Array(data.byteLength);
564
+ dataCopy.set(new Uint8Array(data.buffer, data.byteOffset, data.byteLength));
565
+ worker.postMessage({ action: "decode", data: dataCopy, caps: compressedTexturesCaps, options }, [dataCopy.buffer]);
566
+ });
567
+ });
568
+ });
569
+ }
570
+ else if (KhronosTextureContainer2._DecoderModulePromise) {
571
+ return KhronosTextureContainer2._DecoderModulePromise.then((decoder) => {
572
+ if (KhronosTextureContainer2.DefaultDecoderOptions.isDirty) {
573
+ KhronosTextureContainer2._KTX2DecoderModule.KTX2Decoder.DefaultDecoderOptions = KhronosTextureContainer2.DefaultDecoderOptions._getKTX2DecoderOptions();
574
+ }
575
+ return new Promise((resolve, reject) => {
576
+ decoder
577
+ .decode(data, caps)
578
+ .then((data) => {
579
+ this._createTexture(data, internalTexture);
580
+ resolve();
581
+ })
582
+ .catch((reason) => {
583
+ reject({ message: reason });
584
+ });
585
+ });
586
+ });
587
+ }
588
+ throw new Error("KTX2 decoder module is not available");
589
+ }
590
+ _createTexture(data, internalTexture, options) {
591
+ const oglTexture2D = 3553; // gl.TEXTURE_2D
592
+ this._engine._bindTextureDirectly(oglTexture2D, internalTexture);
593
+ if (options) {
594
+ // return back some information about the decoded data
595
+ options.transcodedFormat = data.transcodedFormat;
596
+ options.isInGammaSpace = data.isInGammaSpace;
597
+ options.hasAlpha = data.hasAlpha;
598
+ options.transcoderName = data.transcoderName;
599
+ }
600
+ let isUncompressedFormat = true;
601
+ switch (data.transcodedFormat) {
602
+ case 0x8058 /* RGBA8 */:
603
+ internalTexture.type = Constants.TEXTURETYPE_UNSIGNED_BYTE;
604
+ internalTexture.format = Constants.TEXTUREFORMAT_RGBA;
605
+ break;
606
+ case 0x8229 /* R8 */:
607
+ internalTexture.type = Constants.TEXTURETYPE_UNSIGNED_BYTE;
608
+ internalTexture.format = Constants.TEXTUREFORMAT_R;
609
+ break;
610
+ case 0x822b /* RG8 */:
611
+ internalTexture.type = Constants.TEXTURETYPE_UNSIGNED_BYTE;
612
+ internalTexture.format = Constants.TEXTUREFORMAT_RG;
613
+ break;
614
+ default:
615
+ internalTexture.format = data.transcodedFormat;
616
+ isUncompressedFormat = false;
617
+ break;
618
+ }
619
+ internalTexture._gammaSpace = data.isInGammaSpace;
620
+ internalTexture.generateMipMaps = data.mipmaps.length > 1;
621
+ if (data.errors) {
622
+ throw new Error("KTX2 container - could not transcode the data. " + data.errors);
623
+ }
624
+ for (let t = 0; t < data.mipmaps.length; ++t) {
625
+ const mipmap = data.mipmaps[t];
626
+ if (!mipmap || !mipmap.data) {
627
+ throw new Error("KTX2 container - could not transcode one of the image");
628
+ }
629
+ if (isUncompressedFormat) {
630
+ // uncompressed RGBA / R8 / RG8
631
+ internalTexture.width = mipmap.width; // need to set width/height so that the call to _uploadDataToTextureDirectly uses the right dimensions
632
+ internalTexture.height = mipmap.height;
633
+ this._engine._uploadDataToTextureDirectly(internalTexture, mipmap.data, 0, t, undefined, true);
634
+ }
635
+ else {
636
+ this._engine._uploadCompressedDataToTextureDirectly(internalTexture, data.transcodedFormat, mipmap.width, mipmap.height, mipmap.data, 0, t);
637
+ }
638
+ }
639
+ internalTexture._extension = ".ktx2";
640
+ internalTexture.width = data.mipmaps[0].width;
641
+ internalTexture.height = data.mipmaps[0].height;
642
+ internalTexture.isReady = true;
643
+ this._engine._bindTextureDirectly(oglTexture2D, null);
644
+ }
645
+ /**
646
+ * Checks if the given data starts with a KTX2 file identifier.
647
+ * @param data the data to check
648
+ * @returns true if the data is a KTX2 file or false otherwise
649
+ */
650
+ static IsValid(data) {
651
+ if (data.byteLength >= 12) {
652
+ // '«', 'K', 'T', 'X', ' ', '2', '0', '»', '\r', '\n', '\x1A', '\n'
653
+ const identifier = new Uint8Array(data.buffer, data.byteOffset, 12);
654
+ if (identifier[0] === 0xab &&
655
+ identifier[1] === 0x4b &&
656
+ identifier[2] === 0x54 &&
657
+ identifier[3] === 0x58 &&
658
+ identifier[4] === 0x20 &&
659
+ identifier[5] === 0x32 &&
660
+ identifier[6] === 0x30 &&
661
+ identifier[7] === 0xbb &&
662
+ identifier[8] === 0x0d &&
663
+ identifier[9] === 0x0a &&
664
+ identifier[10] === 0x1a &&
665
+ identifier[11] === 0x0a) {
666
+ return true;
667
+ }
668
+ }
669
+ return false;
670
+ }
671
+ }
672
+ /**
673
+ * URLs to use when loading the KTX2 decoder module as well as its dependencies
674
+ * If a url is null, the default url is used (pointing to https://preview.babylonjs.com)
675
+ * Note that jsDecoderModule can't be null and that the other dependencies will only be loaded if necessary
676
+ * Urls you can change:
677
+ * URLConfig.jsDecoderModule
678
+ * URLConfig.wasmUASTCToASTC
679
+ * URLConfig.wasmUASTCToBC7
680
+ * URLConfig.wasmUASTCToRGBA_UNORM
681
+ * URLConfig.wasmUASTCToRGBA_SRGB
682
+ * URLConfig.wasmUASTCToR8_UNORM
683
+ * URLConfig.wasmUASTCToRG8_UNORM
684
+ * URLConfig.jsMSCTranscoder
685
+ * URLConfig.wasmMSCTranscoder
686
+ * URLConfig.wasmZSTDDecoder
687
+ * You can see their default values in this PG: https://playground.babylonjs.com/#EIJH8L#29
688
+ */
689
+ KhronosTextureContainer2.URLConfig = {
690
+ jsDecoderModule: "https://cdn.babylonjs.com/babylon.ktx2Decoder.js",
691
+ wasmUASTCToASTC: null,
692
+ wasmUASTCToBC7: null,
693
+ wasmUASTCToRGBA_UNORM: null,
694
+ wasmUASTCToRGBA_SRGB: null,
695
+ wasmUASTCToR8_UNORM: null,
696
+ wasmUASTCToRG8_UNORM: null,
697
+ jsMSCTranscoder: null,
698
+ wasmMSCTranscoder: null,
699
+ wasmZSTDDecoder: null,
700
+ };
701
+ /**
702
+ * Default number of workers used to handle data decoding
703
+ */
704
+ KhronosTextureContainer2.DefaultNumWorkers = KhronosTextureContainer2.GetDefaultNumWorkers();
705
+ /**
706
+ * Default configuration for the KTX2 decoder.
707
+ * The options defined in this way have priority over those passed when creating a KTX2 texture with new Texture(...).
708
+ */
709
+ KhronosTextureContainer2.DefaultDecoderOptions = new DefaultKTX2DecoderOptions();
710
+
711
+ function mapSRGBToLinear(format) {
712
+ switch (format) {
713
+ case Constants.TEXTUREFORMAT_COMPRESSED_SRGB_S3TC_DXT1_EXT:
714
+ return Constants.TEXTUREFORMAT_COMPRESSED_RGB_S3TC_DXT1;
715
+ case Constants.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:
716
+ return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT3;
717
+ case Constants.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:
718
+ return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT5;
719
+ case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ETC2:
720
+ return Constants.TEXTUREFORMAT_COMPRESSED_RGB8_ETC2;
721
+ case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:
722
+ return Constants.TEXTUREFORMAT_COMPRESSED_RGBA8_ETC2_EAC;
723
+ case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:
724
+ return Constants.TEXTUREFORMAT_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2;
725
+ case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:
726
+ return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_4x4;
727
+ case Constants.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_BPTC_UNORM:
728
+ return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_BPTC_UNORM;
729
+ }
730
+ return null;
731
+ }
732
+ /**
733
+ * Implementation of the KTX Texture Loader.
734
+ * @internal
735
+ */
736
+ // eslint-disable-next-line @typescript-eslint/naming-convention
737
+ class _KTXTextureLoader {
738
+ constructor() {
739
+ /**
740
+ * Defines whether the loader supports cascade loading the different faces.
741
+ */
742
+ this.supportCascades = false;
743
+ }
744
+ /**
745
+ * Uploads the cube texture data to the WebGL texture. It has already been bound.
746
+ * @param data contains the texture data
747
+ * @param texture defines the BabylonJS internal texture
748
+ * @param createPolynomials will be true if polynomials have been requested
749
+ * @param onLoad defines the callback to trigger once the texture is ready
750
+ */
751
+ loadCubeData(data, texture, createPolynomials, onLoad) {
752
+ if (Array.isArray(data)) {
753
+ return;
754
+ }
755
+ // Need to invert vScale as invertY via UNPACK_FLIP_Y_WEBGL is not supported by compressed texture
756
+ texture._invertVScale = !texture.invertY;
757
+ const engine = texture.getEngine();
758
+ const ktx = new KhronosTextureContainer(data, 6);
759
+ const loadMipmap = ktx.numberOfMipmapLevels > 1 && texture.generateMipMaps;
760
+ engine._unpackFlipY(true);
761
+ ktx.uploadLevels(texture, texture.generateMipMaps);
762
+ texture.width = ktx.pixelWidth;
763
+ texture.height = ktx.pixelHeight;
764
+ engine._setCubeMapTextureParams(texture, loadMipmap, ktx.numberOfMipmapLevels - 1);
765
+ texture.isReady = true;
766
+ texture.onLoadedObservable.notifyObservers(texture);
767
+ texture.onLoadedObservable.clear();
768
+ if (onLoad) {
769
+ onLoad();
770
+ }
771
+ }
772
+ /**
773
+ * Uploads the 2D texture data to the WebGL texture. It has already been bound once in the callback.
774
+ * @param data contains the texture data
775
+ * @param texture defines the BabylonJS internal texture
776
+ * @param callback defines the method to call once ready to upload
777
+ * @param options
778
+ */
779
+ loadData(data, texture, callback, options) {
780
+ if (KhronosTextureContainer.IsValid(data)) {
781
+ // Need to invert vScale as invertY via UNPACK_FLIP_Y_WEBGL is not supported by compressed texture
782
+ texture._invertVScale = !texture.invertY;
783
+ const ktx = new KhronosTextureContainer(data, 1);
784
+ const mappedFormat = mapSRGBToLinear(ktx.glInternalFormat);
785
+ if (mappedFormat) {
786
+ texture.format = mappedFormat;
787
+ texture._useSRGBBuffer = texture.getEngine()._getUseSRGBBuffer(true, texture.generateMipMaps);
788
+ texture._gammaSpace = true;
789
+ }
790
+ else {
791
+ texture.format = ktx.glInternalFormat;
792
+ }
793
+ callback(ktx.pixelWidth, ktx.pixelHeight, texture.generateMipMaps, true, () => {
794
+ ktx.uploadLevels(texture, texture.generateMipMaps);
795
+ }, ktx.isInvalid);
796
+ }
797
+ else if (KhronosTextureContainer2.IsValid(data)) {
798
+ const ktx2 = new KhronosTextureContainer2(texture.getEngine());
799
+ ktx2._uploadAsync(data, texture, options).then(() => {
800
+ callback(texture.width, texture.height, texture.generateMipMaps, true, () => { }, false);
801
+ }, (error) => {
802
+ Logger.Warn(`Failed to load KTX2 texture data: ${error.message}`);
803
+ callback(0, 0, false, false, () => { }, true);
804
+ });
805
+ }
806
+ else {
807
+ Logger.Error("texture missing KTX identifier");
808
+ callback(0, 0, false, false, () => { }, true);
809
+ }
810
+ }
811
+ }
812
+
813
+ export { _KTXTextureLoader };
814
+ //# sourceMappingURL=ktxTextureLoader-Bqe5q1rf.esm.js.map