@babylonjs/viewer 7.40.3 → 7.40.4-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 (619) 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-B7tVMCka.esm.min.js +2 -0
  7. package/dist/chunks/EXT_lights_ies-B7tVMCka.esm.min.js.map +1 -0
  8. package/dist/chunks/EXT_lights_ies-T0Tkc0j0.esm.js +84 -0
  9. package/dist/chunks/EXT_lights_ies-T0Tkc0j0.esm.js.map +1 -0
  10. package/dist/chunks/EXT_lights_image_based-CyoPcoDC.esm.min.js +2 -0
  11. package/dist/chunks/EXT_lights_image_based-CyoPcoDC.esm.min.js.map +1 -0
  12. package/dist/chunks/EXT_lights_image_based-TRLY00MY.esm.js +171 -0
  13. package/dist/chunks/EXT_lights_image_based-TRLY00MY.esm.js.map +1 -0
  14. package/dist/chunks/EXT_mesh_gpu_instancing-CNSWr-2o.esm.js +86 -0
  15. package/dist/chunks/EXT_mesh_gpu_instancing-CNSWr-2o.esm.js.map +1 -0
  16. package/dist/chunks/EXT_mesh_gpu_instancing-DvkytavO.esm.min.js +2 -0
  17. package/dist/chunks/EXT_mesh_gpu_instancing-DvkytavO.esm.min.js.map +1 -0
  18. package/dist/chunks/EXT_meshopt_compression-C5Jf55Kx.esm.min.js +2 -0
  19. package/dist/chunks/EXT_meshopt_compression-C5Jf55Kx.esm.min.js.map +1 -0
  20. package/dist/chunks/EXT_meshopt_compression-CWVLJCmT.esm.js +134 -0
  21. package/dist/chunks/EXT_meshopt_compression-CWVLJCmT.esm.js.map +1 -0
  22. package/dist/chunks/EXT_texture_avif-Bv2Pa-Lr.esm.js +44 -0
  23. package/dist/chunks/EXT_texture_avif-Bv2Pa-Lr.esm.js.map +1 -0
  24. package/dist/chunks/EXT_texture_avif-DZmsorD-.esm.min.js +2 -0
  25. package/dist/chunks/EXT_texture_avif-DZmsorD-.esm.min.js.map +1 -0
  26. package/dist/chunks/EXT_texture_webp-CBpWQrqC.esm.js +43 -0
  27. package/dist/chunks/EXT_texture_webp-CBpWQrqC.esm.js.map +1 -0
  28. package/dist/chunks/EXT_texture_webp-D6RSOJSe.esm.min.js +2 -0
  29. package/dist/chunks/EXT_texture_webp-D6RSOJSe.esm.min.js.map +1 -0
  30. package/dist/chunks/ExtrasAsMetadata-6ZohdbjJ.esm.js +64 -0
  31. package/dist/chunks/ExtrasAsMetadata-6ZohdbjJ.esm.js.map +1 -0
  32. package/dist/chunks/ExtrasAsMetadata-CrG2l0Kf.esm.min.js +2 -0
  33. package/dist/chunks/ExtrasAsMetadata-CrG2l0Kf.esm.min.js.map +1 -0
  34. package/dist/chunks/KHR_animation_pointer-Cvu5a-gj.esm.js +352 -0
  35. package/dist/chunks/KHR_animation_pointer-Cvu5a-gj.esm.js.map +1 -0
  36. package/dist/chunks/KHR_animation_pointer-Rk2uzfDp.esm.min.js +2 -0
  37. package/dist/chunks/KHR_animation_pointer-Rk2uzfDp.esm.min.js.map +1 -0
  38. package/dist/chunks/KHR_draco_mesh_compression-BrXprwd5.esm.js +610 -0
  39. package/dist/chunks/KHR_draco_mesh_compression-BrXprwd5.esm.js.map +1 -0
  40. package/dist/chunks/KHR_draco_mesh_compression-Iv3q50MG.esm.min.js +2 -0
  41. package/dist/chunks/KHR_draco_mesh_compression-Iv3q50MG.esm.min.js.map +1 -0
  42. package/dist/chunks/KHR_interactivity-B4iFgkk7.esm.min.js +2 -0
  43. package/dist/chunks/KHR_interactivity-B4iFgkk7.esm.min.js.map +1 -0
  44. package/dist/chunks/KHR_interactivity-Db4iHU65.esm.js +4033 -0
  45. package/dist/chunks/KHR_interactivity-Db4iHU65.esm.js.map +1 -0
  46. package/dist/chunks/KHR_lights_punctual-B7yNiRZy.esm.min.js +2 -0
  47. package/dist/chunks/KHR_lights_punctual-B7yNiRZy.esm.min.js.map +1 -0
  48. package/dist/chunks/KHR_lights_punctual-iZl19DTA.esm.js +581 -0
  49. package/dist/chunks/KHR_lights_punctual-iZl19DTA.esm.js.map +1 -0
  50. package/dist/chunks/KHR_materials_anisotropy-Bk9K0k0q.esm.js +65 -0
  51. package/dist/chunks/KHR_materials_anisotropy-Bk9K0k0q.esm.js.map +1 -0
  52. package/dist/chunks/KHR_materials_anisotropy-DlDnL4o4.esm.min.js +2 -0
  53. package/dist/chunks/KHR_materials_anisotropy-DlDnL4o4.esm.min.js.map +1 -0
  54. package/dist/chunks/KHR_materials_clearcoat-BrT4VgMS.esm.min.js +2 -0
  55. package/dist/chunks/KHR_materials_clearcoat-BrT4VgMS.esm.min.js.map +1 -0
  56. package/dist/chunks/KHR_materials_clearcoat-DXAyxIfA.esm.js +96 -0
  57. package/dist/chunks/KHR_materials_clearcoat-DXAyxIfA.esm.js.map +1 -0
  58. package/dist/chunks/KHR_materials_diffuse_transmission-CRqI4Umg.esm.js +97 -0
  59. package/dist/chunks/KHR_materials_diffuse_transmission-CRqI4Umg.esm.js.map +1 -0
  60. package/dist/chunks/KHR_materials_diffuse_transmission-jyVvmpFx.esm.min.js +2 -0
  61. package/dist/chunks/KHR_materials_diffuse_transmission-jyVvmpFx.esm.min.js.map +1 -0
  62. package/dist/chunks/KHR_materials_dispersion-BwXQSsRC.esm.min.js +2 -0
  63. package/dist/chunks/KHR_materials_dispersion-BwXQSsRC.esm.min.js.map +1 -0
  64. package/dist/chunks/KHR_materials_dispersion-DTMaHZal.esm.js +62 -0
  65. package/dist/chunks/KHR_materials_dispersion-DTMaHZal.esm.js.map +1 -0
  66. package/dist/chunks/KHR_materials_emissive_strength-BCWSR6Zg.esm.js +55 -0
  67. package/dist/chunks/KHR_materials_emissive_strength-BCWSR6Zg.esm.js.map +1 -0
  68. package/dist/chunks/KHR_materials_emissive_strength-dEqNWrU4.esm.min.js +2 -0
  69. package/dist/chunks/KHR_materials_emissive_strength-dEqNWrU4.esm.min.js.map +1 -0
  70. package/dist/chunks/KHR_materials_ior-DXmoDlX8.esm.min.js +2 -0
  71. package/dist/chunks/KHR_materials_ior-DXmoDlX8.esm.min.js.map +1 -0
  72. package/dist/chunks/KHR_materials_ior-NvWqR2ZR.esm.js +64 -0
  73. package/dist/chunks/KHR_materials_ior-NvWqR2ZR.esm.js.map +1 -0
  74. package/dist/chunks/KHR_materials_iridescence-2VKZo_Mv.esm.min.js +2 -0
  75. package/dist/chunks/KHR_materials_iridescence-2VKZo_Mv.esm.min.js.map +1 -0
  76. package/dist/chunks/KHR_materials_iridescence-B2wLtYQ4.esm.js +72 -0
  77. package/dist/chunks/KHR_materials_iridescence-B2wLtYQ4.esm.js.map +1 -0
  78. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DYK5fci0.esm.js +81 -0
  79. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DYK5fci0.esm.js.map +1 -0
  80. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-PlzNRHwZ.esm.min.js +2 -0
  81. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-PlzNRHwZ.esm.min.js.map +1 -0
  82. package/dist/chunks/KHR_materials_sheen-CvA19viC.esm.min.js +2 -0
  83. package/dist/chunks/KHR_materials_sheen-CvA19viC.esm.min.js.map +1 -0
  84. package/dist/chunks/KHR_materials_sheen-DY8Hlw2C.esm.js +85 -0
  85. package/dist/chunks/KHR_materials_sheen-DY8Hlw2C.esm.js.map +1 -0
  86. package/dist/chunks/KHR_materials_specular-DPankAYO.esm.js +75 -0
  87. package/dist/chunks/KHR_materials_specular-DPankAYO.esm.js.map +1 -0
  88. package/dist/chunks/KHR_materials_specular-SFjYTaHn.esm.min.js +2 -0
  89. package/dist/chunks/KHR_materials_specular-SFjYTaHn.esm.min.js.map +1 -0
  90. package/dist/chunks/KHR_materials_transmission-CBvCfGeN.esm.js +307 -0
  91. package/dist/chunks/KHR_materials_transmission-CBvCfGeN.esm.js.map +1 -0
  92. package/dist/chunks/KHR_materials_transmission-DeRHqgMd.esm.min.js +2 -0
  93. package/dist/chunks/KHR_materials_transmission-DeRHqgMd.esm.min.js.map +1 -0
  94. package/dist/chunks/KHR_materials_unlit-Dp-VzfY2.esm.min.js +2 -0
  95. package/dist/chunks/KHR_materials_unlit-Dp-VzfY2.esm.min.js.map +1 -0
  96. package/dist/chunks/KHR_materials_unlit-xG3eIsVn.esm.js +74 -0
  97. package/dist/chunks/KHR_materials_unlit-xG3eIsVn.esm.js.map +1 -0
  98. package/dist/chunks/KHR_materials_variants-DtTs7enl.esm.min.js +2 -0
  99. package/dist/chunks/KHR_materials_variants-DtTs7enl.esm.min.js.map +1 -0
  100. package/dist/chunks/KHR_materials_variants-POauQPs7.esm.js +262 -0
  101. package/dist/chunks/KHR_materials_variants-POauQPs7.esm.js.map +1 -0
  102. package/dist/chunks/KHR_materials_volume-BO1lvsUq.esm.min.js +2 -0
  103. package/dist/chunks/KHR_materials_volume-BO1lvsUq.esm.min.js.map +1 -0
  104. package/dist/chunks/KHR_materials_volume-BqCunks7.esm.js +87 -0
  105. package/dist/chunks/KHR_materials_volume-BqCunks7.esm.js.map +1 -0
  106. package/dist/chunks/KHR_mesh_quantization-3ON-a5Bz.esm.js +26 -0
  107. package/dist/chunks/KHR_mesh_quantization-3ON-a5Bz.esm.js.map +1 -0
  108. package/dist/chunks/KHR_mesh_quantization-C1uR5Lci.esm.min.js +2 -0
  109. package/dist/chunks/KHR_mesh_quantization-C1uR5Lci.esm.min.js.map +1 -0
  110. package/dist/chunks/KHR_node_hoverability-CZIi0X9e.esm.js +39 -0
  111. package/dist/chunks/KHR_node_hoverability-CZIi0X9e.esm.js.map +1 -0
  112. package/dist/chunks/KHR_node_hoverability-gPD0oS5c.esm.min.js +2 -0
  113. package/dist/chunks/KHR_node_hoverability-gPD0oS5c.esm.min.js.map +1 -0
  114. package/dist/chunks/KHR_node_visibility-B5fFI1TX.esm.js +46 -0
  115. package/dist/chunks/KHR_node_visibility-B5fFI1TX.esm.js.map +1 -0
  116. package/dist/chunks/KHR_node_visibility-DPw-0W4p.esm.min.js +2 -0
  117. package/dist/chunks/KHR_node_visibility-DPw-0W4p.esm.min.js.map +1 -0
  118. package/dist/chunks/KHR_texture_basisu-D6tStneN.esm.min.js +2 -0
  119. package/dist/chunks/KHR_texture_basisu-D6tStneN.esm.min.js.map +1 -0
  120. package/dist/chunks/KHR_texture_basisu-Did7TM-4.esm.js +43 -0
  121. package/dist/chunks/KHR_texture_basisu-Did7TM-4.esm.js.map +1 -0
  122. package/dist/chunks/KHR_texture_transform-Da5NeRUm.esm.js +63 -0
  123. package/dist/chunks/KHR_texture_transform-Da5NeRUm.esm.js.map +1 -0
  124. package/dist/chunks/KHR_texture_transform-jNMzm3zb.esm.min.js +2 -0
  125. package/dist/chunks/KHR_texture_transform-jNMzm3zb.esm.min.js.map +1 -0
  126. package/dist/chunks/KHR_xmp_json_ld-D514my_a.esm.js +51 -0
  127. package/dist/chunks/KHR_xmp_json_ld-D514my_a.esm.js.map +1 -0
  128. package/dist/chunks/KHR_xmp_json_ld-D5Gbko_w.esm.min.js +2 -0
  129. package/dist/chunks/KHR_xmp_json_ld-D5Gbko_w.esm.min.js.map +1 -0
  130. package/dist/chunks/MSFT_audio_emitter-CiB3yG6v.esm.js +2201 -0
  131. package/dist/chunks/MSFT_audio_emitter-CiB3yG6v.esm.js.map +1 -0
  132. package/dist/chunks/MSFT_audio_emitter-Cn-DCgMh.esm.min.js +2 -0
  133. package/dist/chunks/MSFT_audio_emitter-Cn-DCgMh.esm.min.js.map +1 -0
  134. package/dist/chunks/MSFT_lod-BDP9fUoB.esm.js +337 -0
  135. package/dist/chunks/MSFT_lod-BDP9fUoB.esm.js.map +1 -0
  136. package/dist/chunks/MSFT_lod-BEbIdncN.esm.min.js +2 -0
  137. package/dist/chunks/MSFT_lod-BEbIdncN.esm.min.js.map +1 -0
  138. package/dist/chunks/MSFT_minecraftMesh-jASzndfE.esm.min.js +2 -0
  139. package/dist/chunks/MSFT_minecraftMesh-jASzndfE.esm.min.js.map +1 -0
  140. package/dist/chunks/MSFT_minecraftMesh-mKnNUrKI.esm.js +46 -0
  141. package/dist/chunks/MSFT_minecraftMesh-mKnNUrKI.esm.js.map +1 -0
  142. package/dist/chunks/MSFT_sRGBFactors-B1Bk1U5N.esm.min.js +2 -0
  143. package/dist/chunks/MSFT_sRGBFactors-B1Bk1U5N.esm.min.js.map +1 -0
  144. package/dist/chunks/MSFT_sRGBFactors-IZnSmmDU.esm.js +47 -0
  145. package/dist/chunks/MSFT_sRGBFactors-IZnSmmDU.esm.js.map +1 -0
  146. package/dist/chunks/animationGroup-B1YyqoTa.esm.js +2482 -0
  147. package/dist/chunks/animationGroup-B1YyqoTa.esm.js.map +1 -0
  148. package/dist/chunks/animationGroup-C9C7qST_.esm.min.js +2 -0
  149. package/dist/chunks/animationGroup-C9C7qST_.esm.min.js.map +1 -0
  150. package/dist/chunks/assetContainer-BzlRl_4x.esm.js +1720 -0
  151. package/dist/chunks/assetContainer-BzlRl_4x.esm.js.map +1 -0
  152. package/dist/chunks/assetContainer-D7C3a-Xn.esm.min.js +2 -0
  153. package/dist/chunks/assetContainer-D7C3a-Xn.esm.min.js.map +1 -0
  154. package/dist/chunks/audioEngine-BZB34VjD.esm.js +305 -0
  155. package/dist/chunks/audioEngine-BZB34VjD.esm.js.map +1 -0
  156. package/dist/chunks/audioEngine-BoxJPZL7.esm.min.js +2 -0
  157. package/dist/chunks/audioEngine-BoxJPZL7.esm.min.js.map +1 -0
  158. package/dist/chunks/bakedVertexAnimation-BQki1eZ4.esm.min.js +2 -0
  159. package/dist/chunks/bakedVertexAnimation-BQki1eZ4.esm.min.js.map +1 -0
  160. package/dist/chunks/bakedVertexAnimation-DpSHNKcC.esm.js +114 -0
  161. package/dist/chunks/bakedVertexAnimation-DpSHNKcC.esm.js.map +1 -0
  162. package/dist/chunks/basisTextureLoader-C3RlzqZl.esm.min.js +2 -0
  163. package/dist/chunks/basisTextureLoader-C3RlzqZl.esm.min.js.map +1 -0
  164. package/dist/chunks/basisTextureLoader-D6uyehp2.esm.js +600 -0
  165. package/dist/chunks/basisTextureLoader-D6uyehp2.esm.js.map +1 -0
  166. package/dist/chunks/dds-C1QgDMMC.esm.min.js +2 -0
  167. package/dist/chunks/dds-C1QgDMMC.esm.min.js.map +1 -0
  168. package/dist/chunks/dds-zApWiwah.esm.js +540 -0
  169. package/dist/chunks/dds-zApWiwah.esm.js.map +1 -0
  170. package/dist/chunks/ddsTextureLoader-CSYQAUdw.esm.js +88 -0
  171. package/dist/chunks/ddsTextureLoader-CSYQAUdw.esm.js.map +1 -0
  172. package/dist/chunks/ddsTextureLoader-Dyl2CjaG.esm.min.js +2 -0
  173. package/dist/chunks/ddsTextureLoader-Dyl2CjaG.esm.min.js.map +1 -0
  174. package/dist/chunks/decalFragment-BbsT8PSx.esm.min.js +2 -0
  175. package/dist/chunks/decalFragment-BbsT8PSx.esm.min.js.map +1 -0
  176. package/dist/chunks/decalFragment-DqgT4NiX.esm.js +18 -0
  177. package/dist/chunks/decalFragment-DqgT4NiX.esm.js.map +1 -0
  178. package/dist/chunks/default.fragment-Bpw23SLq.esm.min.js +2 -0
  179. package/dist/chunks/default.fragment-Bpw23SLq.esm.min.js.map +1 -0
  180. package/dist/chunks/default.fragment-C8lcinV9.esm.js +446 -0
  181. package/dist/chunks/default.fragment-C8lcinV9.esm.js.map +1 -0
  182. package/dist/chunks/default.fragment-De3FJCJD.esm.js +515 -0
  183. package/dist/chunks/default.fragment-De3FJCJD.esm.js.map +1 -0
  184. package/dist/chunks/default.fragment-b__nAv93.esm.min.js +2 -0
  185. package/dist/chunks/default.fragment-b__nAv93.esm.min.js.map +1 -0
  186. package/dist/chunks/default.vertex-BnpZVKdz.esm.min.js +2 -0
  187. package/dist/chunks/default.vertex-BnpZVKdz.esm.min.js.map +1 -0
  188. package/dist/chunks/default.vertex-CD2qxrmB.esm.js +190 -0
  189. package/dist/chunks/default.vertex-CD2qxrmB.esm.js.map +1 -0
  190. package/dist/chunks/default.vertex-CN5WYROZ.esm.min.js +2 -0
  191. package/dist/chunks/default.vertex-CN5WYROZ.esm.min.js.map +1 -0
  192. package/dist/chunks/default.vertex-DRHq60qX.esm.js +211 -0
  193. package/dist/chunks/default.vertex-DRHq60qX.esm.js.map +1 -0
  194. package/dist/chunks/defaultUboDeclaration-C0gMCjYL.esm.min.js +2 -0
  195. package/dist/chunks/defaultUboDeclaration-C0gMCjYL.esm.min.js.map +1 -0
  196. package/dist/chunks/defaultUboDeclaration-CGRrluBg.esm.min.js +2 -0
  197. package/dist/chunks/defaultUboDeclaration-CGRrluBg.esm.min.js.map +1 -0
  198. package/dist/chunks/defaultUboDeclaration-DCybxQ0F.esm.js +13 -0
  199. package/dist/chunks/defaultUboDeclaration-DCybxQ0F.esm.js.map +1 -0
  200. package/dist/chunks/defaultUboDeclaration-xxIrKyXf.esm.js +15 -0
  201. package/dist/chunks/defaultUboDeclaration-xxIrKyXf.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-BOVGklo2.esm.min.js +2 -0
  207. package/dist/chunks/dumpTools-BOVGklo2.esm.min.js.map +1 -0
  208. package/dist/chunks/dumpTools-Dy-fD64p.esm.js +200 -0
  209. package/dist/chunks/dumpTools-Dy-fD64p.esm.js.map +1 -0
  210. package/dist/chunks/engine-CBGABL2W.esm.min.js +2 -0
  211. package/dist/chunks/engine-CBGABL2W.esm.min.js.map +1 -0
  212. package/dist/chunks/engine-D9Sn-BC6.esm.js +2213 -0
  213. package/dist/chunks/engine-D9Sn-BC6.esm.js.map +1 -0
  214. package/dist/chunks/engine.common-BM1GAef8.esm.js +1162 -0
  215. package/dist/chunks/engine.common-BM1GAef8.esm.js.map +1 -0
  216. package/dist/chunks/engine.common-xMH7x2b0.esm.min.js +2 -0
  217. package/dist/chunks/engine.common-xMH7x2b0.esm.min.js.map +1 -0
  218. package/dist/chunks/envTextureLoader-BRdNaVH2.esm.min.js +2 -0
  219. package/dist/chunks/envTextureLoader-BRdNaVH2.esm.min.js.map +1 -0
  220. package/dist/chunks/envTextureLoader-DT_xwrde.esm.js +64 -0
  221. package/dist/chunks/envTextureLoader-DT_xwrde.esm.js.map +1 -0
  222. package/dist/chunks/environmentTextureTools-BxWsgzT8.esm.min.js +2 -0
  223. package/dist/chunks/environmentTextureTools-BxWsgzT8.esm.min.js.map +1 -0
  224. package/dist/chunks/environmentTextureTools-DuNLB_SE.esm.js +382 -0
  225. package/dist/chunks/environmentTextureTools-DuNLB_SE.esm.js.map +1 -0
  226. package/dist/chunks/exrTextureLoader-BBL1-v_g.esm.min.js +2 -0
  227. package/dist/chunks/exrTextureLoader-BBL1-v_g.esm.min.js.map +1 -0
  228. package/dist/chunks/exrTextureLoader-CUiWw4Oh.esm.js +1683 -0
  229. package/dist/chunks/exrTextureLoader-CUiWw4Oh.esm.js.map +1 -0
  230. package/dist/chunks/fogFragment-BCz1GIrJ.esm.min.js +2 -0
  231. package/dist/chunks/fogFragment-BCz1GIrJ.esm.min.js.map +1 -0
  232. package/dist/chunks/fogFragment-BQLWFsYl.esm.min.js +2 -0
  233. package/dist/chunks/fogFragment-BQLWFsYl.esm.min.js.map +1 -0
  234. package/dist/chunks/fogFragment-DANl-YQk.esm.js +102 -0
  235. package/dist/chunks/fogFragment-DANl-YQk.esm.js.map +1 -0
  236. package/dist/chunks/fogFragment-DptoygQ5.esm.js +101 -0
  237. package/dist/chunks/fogFragment-DptoygQ5.esm.js.map +1 -0
  238. package/dist/chunks/fresnelFunction-3-z89NGn.esm.js +12 -0
  239. package/dist/chunks/fresnelFunction-3-z89NGn.esm.js.map +1 -0
  240. package/dist/chunks/fresnelFunction-CbnLfwWn.esm.min.js +2 -0
  241. package/dist/chunks/fresnelFunction-CbnLfwWn.esm.min.js.map +1 -0
  242. package/dist/chunks/glTFLoader-Qw5JObwf.esm.js +7658 -0
  243. package/dist/chunks/glTFLoader-Qw5JObwf.esm.js.map +1 -0
  244. package/dist/chunks/glTFLoader-iKlvKEG-.esm.min.js +2 -0
  245. package/dist/chunks/glTFLoader-iKlvKEG-.esm.min.js.map +1 -0
  246. package/dist/chunks/glTFLoaderAnimation-BCUZthxT.esm.js +77 -0
  247. package/dist/chunks/glTFLoaderAnimation-BCUZthxT.esm.js.map +1 -0
  248. package/dist/chunks/glTFLoaderAnimation-DnTkRibM.esm.min.js +2 -0
  249. package/dist/chunks/glTFLoaderAnimation-DnTkRibM.esm.min.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-19PWyV81.esm.js +34 -0
  255. package/dist/chunks/harmonicsFunctions-19PWyV81.esm.js.map +1 -0
  256. package/dist/chunks/harmonicsFunctions-D4sp7bHN.esm.js +35 -0
  257. package/dist/chunks/harmonicsFunctions-D4sp7bHN.esm.js.map +1 -0
  258. package/dist/chunks/harmonicsFunctions-DSpaTpH7.esm.min.js +2 -0
  259. package/dist/chunks/harmonicsFunctions-DSpaTpH7.esm.min.js.map +1 -0
  260. package/dist/chunks/harmonicsFunctions-DvH68s1g.esm.min.js +2 -0
  261. package/dist/chunks/harmonicsFunctions-DvH68s1g.esm.min.js.map +1 -0
  262. package/dist/chunks/hdrTextureLoader-ChbZ5_1g.esm.min.js +2 -0
  263. package/dist/chunks/hdrTextureLoader-ChbZ5_1g.esm.min.js.map +1 -0
  264. package/dist/chunks/hdrTextureLoader-OJaopXAb.esm.js +253 -0
  265. package/dist/chunks/hdrTextureLoader-OJaopXAb.esm.js.map +1 -0
  266. package/dist/chunks/helperFunctions-CNCeKea7.esm.js +81 -0
  267. package/dist/chunks/helperFunctions-CNCeKea7.esm.js.map +1 -0
  268. package/dist/chunks/helperFunctions-Crs36Q3w.esm.js +109 -0
  269. package/dist/chunks/helperFunctions-Crs36Q3w.esm.js.map +1 -0
  270. package/dist/chunks/helperFunctions-DKz6om6i.esm.min.js +2 -0
  271. package/dist/chunks/helperFunctions-DKz6om6i.esm.min.js.map +1 -0
  272. package/dist/chunks/helperFunctions-bZhuioWn.esm.min.js +2 -0
  273. package/dist/chunks/helperFunctions-bZhuioWn.esm.min.js.map +1 -0
  274. package/dist/chunks/iesTextureLoader-BTOaWdIK.esm.js +189 -0
  275. package/dist/chunks/iesTextureLoader-BTOaWdIK.esm.js.map +1 -0
  276. package/dist/chunks/iesTextureLoader-CKnu1maC.esm.min.js +2 -0
  277. package/dist/chunks/iesTextureLoader-CKnu1maC.esm.min.js.map +1 -0
  278. package/dist/chunks/index-5L5wXyrx.esm.js +74870 -0
  279. package/dist/chunks/index-5L5wXyrx.esm.js.map +1 -0
  280. package/dist/chunks/index-B5KLkjYm.esm.min.js +57 -0
  281. package/dist/chunks/index-B5KLkjYm.esm.min.js.map +1 -0
  282. package/dist/chunks/ktxTextureLoader-CMfHt5rp.esm.js +814 -0
  283. package/dist/chunks/ktxTextureLoader-CMfHt5rp.esm.js.map +1 -0
  284. package/dist/chunks/ktxTextureLoader-DCyzShol.esm.min.js +2 -0
  285. package/dist/chunks/ktxTextureLoader-DCyzShol.esm.min.js.map +1 -0
  286. package/dist/chunks/logDepthDeclaration-8CuoGLY6.esm.js +35 -0
  287. package/dist/chunks/logDepthDeclaration-8CuoGLY6.esm.js.map +1 -0
  288. package/dist/chunks/logDepthDeclaration-BC68Ktb0.esm.js +11 -0
  289. package/dist/chunks/logDepthDeclaration-BC68Ktb0.esm.js.map +1 -0
  290. package/dist/chunks/logDepthDeclaration-CgPuLaM9.esm.min.js +2 -0
  291. package/dist/chunks/logDepthDeclaration-CgPuLaM9.esm.min.js.map +1 -0
  292. package/dist/chunks/logDepthDeclaration-iNYm9mSn.esm.min.js +2 -0
  293. package/dist/chunks/logDepthDeclaration-iNYm9mSn.esm.min.js.map +1 -0
  294. package/dist/chunks/logDepthVertex-BOepIJij.esm.js +77 -0
  295. package/dist/chunks/logDepthVertex-BOepIJij.esm.js.map +1 -0
  296. package/dist/chunks/logDepthVertex-Bno6ozc-.esm.min.js +2 -0
  297. package/dist/chunks/logDepthVertex-Bno6ozc-.esm.min.js.map +1 -0
  298. package/dist/chunks/logDepthVertex-CU3WBwOA.esm.js +81 -0
  299. package/dist/chunks/logDepthVertex-CU3WBwOA.esm.js.map +1 -0
  300. package/dist/chunks/logDepthVertex-DjeubcPn.esm.min.js +2 -0
  301. package/dist/chunks/logDepthVertex-DjeubcPn.esm.min.js.map +1 -0
  302. package/dist/chunks/mainUVVaryingDeclaration-C_Am-o4e.esm.js +11 -0
  303. package/dist/chunks/mainUVVaryingDeclaration-C_Am-o4e.esm.js.map +1 -0
  304. package/dist/chunks/mainUVVaryingDeclaration-CuSqEhkE.esm.min.js +2 -0
  305. package/dist/chunks/mainUVVaryingDeclaration-CuSqEhkE.esm.min.js.map +1 -0
  306. package/dist/chunks/mainUVVaryingDeclaration-DxqJq0-m.esm.js +11 -0
  307. package/dist/chunks/mainUVVaryingDeclaration-DxqJq0-m.esm.js.map +1 -0
  308. package/dist/chunks/mainUVVaryingDeclaration-oZF0xIut.esm.min.js +2 -0
  309. package/dist/chunks/mainUVVaryingDeclaration-oZF0xIut.esm.min.js.map +1 -0
  310. package/dist/chunks/mesh.vertexData.functions-B_pMCAzZ.esm.js +119 -0
  311. package/dist/chunks/mesh.vertexData.functions-B_pMCAzZ.esm.js.map +1 -0
  312. package/dist/chunks/mesh.vertexData.functions-Bo7e6Of9.esm.min.js +2 -0
  313. package/dist/chunks/mesh.vertexData.functions-Bo7e6Of9.esm.min.js.map +1 -0
  314. package/dist/chunks/meshUboDeclaration-BWuUYN5-.esm.js +26 -0
  315. package/dist/chunks/meshUboDeclaration-BWuUYN5-.esm.js.map +1 -0
  316. package/dist/chunks/meshUboDeclaration-D-9f-79D.esm.min.js +2 -0
  317. package/dist/chunks/meshUboDeclaration-D-9f-79D.esm.min.js.map +1 -0
  318. package/dist/chunks/objFileLoader-B3PzHlWB.esm.min.js +2 -0
  319. package/dist/chunks/objFileLoader-B3PzHlWB.esm.min.js.map +1 -0
  320. package/dist/chunks/objFileLoader-BjHr-pn1.esm.js +1338 -0
  321. package/dist/chunks/objFileLoader-BjHr-pn1.esm.js.map +1 -0
  322. package/dist/chunks/oitFragment-BypZDJVo.esm.min.js +2 -0
  323. package/dist/chunks/oitFragment-BypZDJVo.esm.min.js.map +1 -0
  324. package/dist/chunks/oitFragment-D3g8w3hO.esm.js +1078 -0
  325. package/dist/chunks/oitFragment-D3g8w3hO.esm.js.map +1 -0
  326. package/dist/chunks/oitFragment-Db3h4DV5.esm.min.js +2 -0
  327. package/dist/chunks/oitFragment-Db3h4DV5.esm.min.js.map +1 -0
  328. package/dist/chunks/oitFragment-tQJLudg5.esm.js +1240 -0
  329. package/dist/chunks/oitFragment-tQJLudg5.esm.js.map +1 -0
  330. package/dist/chunks/pass.fragment-C8CWeVkM.esm.js +15 -0
  331. package/dist/chunks/pass.fragment-C8CWeVkM.esm.js.map +1 -0
  332. package/dist/chunks/pass.fragment-CSK2ynPe.esm.js +15 -0
  333. package/dist/chunks/pass.fragment-CSK2ynPe.esm.js.map +1 -0
  334. package/dist/chunks/pass.fragment-CdgLWa1Q.esm.min.js +2 -0
  335. package/dist/chunks/pass.fragment-CdgLWa1Q.esm.min.js.map +1 -0
  336. package/dist/chunks/pass.fragment-ONNyQPrD.esm.min.js +2 -0
  337. package/dist/chunks/pass.fragment-ONNyQPrD.esm.min.js.map +1 -0
  338. package/dist/chunks/pbr.fragment-Be9mZgL7.esm.js +3269 -0
  339. package/dist/chunks/pbr.fragment-Be9mZgL7.esm.js.map +1 -0
  340. package/dist/chunks/pbr.fragment-C13t4f7Z.esm.min.js +2 -0
  341. package/dist/chunks/pbr.fragment-C13t4f7Z.esm.min.js.map +1 -0
  342. package/dist/chunks/pbr.fragment-CiAe6mgr.esm.js +3222 -0
  343. package/dist/chunks/pbr.fragment-CiAe6mgr.esm.js.map +1 -0
  344. package/dist/chunks/pbr.fragment-I66pqwoX.esm.min.js +2 -0
  345. package/dist/chunks/pbr.fragment-I66pqwoX.esm.min.js.map +1 -0
  346. package/dist/chunks/pbr.vertex-BlqPEcZe.esm.js +223 -0
  347. package/dist/chunks/pbr.vertex-BlqPEcZe.esm.js.map +1 -0
  348. package/dist/chunks/pbr.vertex-C1r_QFvZ.esm.min.js +2 -0
  349. package/dist/chunks/pbr.vertex-C1r_QFvZ.esm.min.js.map +1 -0
  350. package/dist/chunks/pbr.vertex-DE9NTHal.esm.min.js +2 -0
  351. package/dist/chunks/pbr.vertex-DE9NTHal.esm.min.js.map +1 -0
  352. package/dist/chunks/pbr.vertex-oQpu2zia.esm.js +348 -0
  353. package/dist/chunks/pbr.vertex-oQpu2zia.esm.js.map +1 -0
  354. package/dist/chunks/postprocess.vertex-D3XLqa14.esm.js +20 -0
  355. package/dist/chunks/postprocess.vertex-D3XLqa14.esm.js.map +1 -0
  356. package/dist/chunks/postprocess.vertex-IkQbrBQH.esm.min.js +2 -0
  357. package/dist/chunks/postprocess.vertex-IkQbrBQH.esm.min.js.map +1 -0
  358. package/dist/chunks/rawTexture-BVf9vm87.esm.js +191 -0
  359. package/dist/chunks/rawTexture-BVf9vm87.esm.js.map +1 -0
  360. package/dist/chunks/rawTexture-CNxyCiVq.esm.min.js +2 -0
  361. package/dist/chunks/rawTexture-CNxyCiVq.esm.min.js.map +1 -0
  362. package/dist/chunks/ray-BLVbie8S.esm.min.js +2 -0
  363. package/dist/chunks/ray-BLVbie8S.esm.min.js.map +1 -0
  364. package/dist/chunks/ray-C7H9vp-x.esm.js +946 -0
  365. package/dist/chunks/ray-C7H9vp-x.esm.js.map +1 -0
  366. package/dist/chunks/rgbdDecode.fragment-9dPOcBOA.esm.min.js +2 -0
  367. package/dist/chunks/rgbdDecode.fragment-9dPOcBOA.esm.min.js.map +1 -0
  368. package/dist/chunks/rgbdDecode.fragment-ApyH83v_.esm.js +13 -0
  369. package/dist/chunks/rgbdDecode.fragment-ApyH83v_.esm.js.map +1 -0
  370. package/dist/chunks/rgbdDecode.fragment-Bt75XOUV.esm.min.js +2 -0
  371. package/dist/chunks/rgbdDecode.fragment-Bt75XOUV.esm.min.js.map +1 -0
  372. package/dist/chunks/rgbdDecode.fragment-DDIJs9ID.esm.js +13 -0
  373. package/dist/chunks/rgbdDecode.fragment-DDIJs9ID.esm.js.map +1 -0
  374. package/dist/chunks/rgbdEncode.fragment-CSquf6K4.esm.js +13 -0
  375. package/dist/chunks/rgbdEncode.fragment-CSquf6K4.esm.js.map +1 -0
  376. package/dist/chunks/rgbdEncode.fragment-Cpudy2qT.esm.js +13 -0
  377. package/dist/chunks/rgbdEncode.fragment-Cpudy2qT.esm.js.map +1 -0
  378. package/dist/chunks/rgbdEncode.fragment-DZs59_tV.esm.min.js +2 -0
  379. package/dist/chunks/rgbdEncode.fragment-DZs59_tV.esm.min.js.map +1 -0
  380. package/dist/chunks/rgbdEncode.fragment-Djxd-azW.esm.min.js +2 -0
  381. package/dist/chunks/rgbdEncode.fragment-Djxd-azW.esm.min.js.map +1 -0
  382. package/dist/chunks/splatFileLoader-BkExyfY6.esm.js +3379 -0
  383. package/dist/chunks/splatFileLoader-BkExyfY6.esm.js.map +1 -0
  384. package/dist/chunks/splatFileLoader-DLc_wKu4.esm.min.js +2 -0
  385. package/dist/chunks/splatFileLoader-DLc_wKu4.esm.min.js.map +1 -0
  386. package/dist/chunks/spotLight-CFGRpcFc.esm.js +701 -0
  387. package/dist/chunks/spotLight-CFGRpcFc.esm.js.map +1 -0
  388. package/dist/chunks/spotLight-z5HIEQmM.esm.min.js +2 -0
  389. package/dist/chunks/spotLight-z5HIEQmM.esm.min.js.map +1 -0
  390. package/dist/chunks/standardMaterial-B5u9Vzil.esm.min.js +2 -0
  391. package/dist/chunks/standardMaterial-B5u9Vzil.esm.min.js.map +1 -0
  392. package/dist/chunks/standardMaterial-BJzDZ72T.esm.js +1806 -0
  393. package/dist/chunks/standardMaterial-BJzDZ72T.esm.js.map +1 -0
  394. package/dist/chunks/stlFileLoader-B3Y6u4L6.esm.min.js +2 -0
  395. package/dist/chunks/stlFileLoader-B3Y6u4L6.esm.min.js.map +1 -0
  396. package/dist/chunks/stlFileLoader-Bd1GgkYU.esm.js +238 -0
  397. package/dist/chunks/stlFileLoader-Bd1GgkYU.esm.js.map +1 -0
  398. package/dist/chunks/tgaTextureLoader-BD_A6gyw.esm.min.js +2 -0
  399. package/dist/chunks/tgaTextureLoader-BD_A6gyw.esm.min.js.map +1 -0
  400. package/dist/chunks/tgaTextureLoader-DnUiJRBO.esm.js +349 -0
  401. package/dist/chunks/tgaTextureLoader-DnUiJRBO.esm.js.map +1 -0
  402. package/dist/chunks/thinEngine-CRNAFHqA.esm.min.js +2 -0
  403. package/dist/chunks/thinEngine-CRNAFHqA.esm.min.js.map +1 -0
  404. package/dist/chunks/thinEngine-DGyFDxzW.esm.js +3853 -0
  405. package/dist/chunks/thinEngine-DGyFDxzW.esm.js.map +1 -0
  406. package/dist/chunks/thinInstanceMesh-B-f1KNB2.esm.min.js +2 -0
  407. package/dist/chunks/thinInstanceMesh-B-f1KNB2.esm.min.js.map +1 -0
  408. package/dist/chunks/thinInstanceMesh-D-cofgbF.esm.js +314 -0
  409. package/dist/chunks/thinInstanceMesh-D-cofgbF.esm.js.map +1 -0
  410. package/dist/chunks/vertexColorMixing-BUqoiJkS.esm.min.js +2 -0
  411. package/dist/chunks/vertexColorMixing-BUqoiJkS.esm.min.js.map +1 -0
  412. package/dist/chunks/vertexColorMixing-CBpXxGvM.esm.js +421 -0
  413. package/dist/chunks/vertexColorMixing-CBpXxGvM.esm.js.map +1 -0
  414. package/dist/chunks/vertexColorMixing-ChUhO7eS.esm.js +531 -0
  415. package/dist/chunks/vertexColorMixing-ChUhO7eS.esm.js.map +1 -0
  416. package/dist/chunks/vertexColorMixing-DbmkfWMo.esm.min.js +2 -0
  417. package/dist/chunks/vertexColorMixing-DbmkfWMo.esm.min.js.map +1 -0
  418. package/dist/chunks/webgpuEngine-DqprhQ4L.esm.js +11538 -0
  419. package/dist/chunks/webgpuEngine-DqprhQ4L.esm.js.map +1 -0
  420. package/dist/chunks/webgpuEngine-LpKjcEuV.esm.min.js +2 -0
  421. package/dist/chunks/webgpuEngine-LpKjcEuV.esm.min.js.map +1 -0
  422. package/dist/chunks/workerPool-BUOov2K1.esm.js +122 -0
  423. package/dist/chunks/workerPool-BUOov2K1.esm.js.map +1 -0
  424. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js +2 -0
  425. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js.map +1 -0
  426. package/lib/index.d.ts +591 -0
  427. package/lib/index.js +2165 -0
  428. package/lib/index.js.map +1 -0
  429. package/package.json +19 -28
  430. package/readme.md +28 -28
  431. package/configuration/configuration.d.ts +0 -107
  432. package/configuration/configuration.js +0 -16
  433. package/configuration/configuration.js.map +0 -1
  434. package/configuration/configurationCompatibility.d.ts +0 -8
  435. package/configuration/configurationCompatibility.js +0 -66
  436. package/configuration/configurationCompatibility.js.map +0 -1
  437. package/configuration/configurationContainer.d.ts +0 -10
  438. package/configuration/configurationContainer.js +0 -10
  439. package/configuration/configurationContainer.js.map +0 -1
  440. package/configuration/globals.d.ts +0 -6
  441. package/configuration/globals.js +0 -18
  442. package/configuration/globals.js.map +0 -1
  443. package/configuration/index.d.ts +0 -2
  444. package/configuration/index.js +0 -4
  445. package/configuration/index.js.map +0 -1
  446. package/configuration/interfaces/cameraConfiguration.d.ts +0 -31
  447. package/configuration/interfaces/cameraConfiguration.js +0 -2
  448. package/configuration/interfaces/cameraConfiguration.js.map +0 -1
  449. package/configuration/interfaces/colorGradingConfiguration.d.ts +0 -81
  450. package/configuration/interfaces/colorGradingConfiguration.js +0 -2
  451. package/configuration/interfaces/colorGradingConfiguration.js.map +0 -1
  452. package/configuration/interfaces/defaultRenderingPipelineConfiguration.d.ts +0 -20
  453. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js +0 -2
  454. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js.map +0 -1
  455. package/configuration/interfaces/environmentMapConfiguration.d.ts +0 -22
  456. package/configuration/interfaces/environmentMapConfiguration.js +0 -2
  457. package/configuration/interfaces/environmentMapConfiguration.js.map +0 -1
  458. package/configuration/interfaces/groundConfiguration.d.ts +0 -24
  459. package/configuration/interfaces/groundConfiguration.js +0 -2
  460. package/configuration/interfaces/groundConfiguration.js.map +0 -1
  461. package/configuration/interfaces/imageProcessingConfiguration.d.ts +0 -45
  462. package/configuration/interfaces/imageProcessingConfiguration.js +0 -2
  463. package/configuration/interfaces/imageProcessingConfiguration.js.map +0 -1
  464. package/configuration/interfaces/index.d.ts +0 -15
  465. package/configuration/interfaces/index.js +0 -16
  466. package/configuration/interfaces/index.js.map +0 -1
  467. package/configuration/interfaces/lightConfiguration.d.ts +0 -60
  468. package/configuration/interfaces/lightConfiguration.js +0 -2
  469. package/configuration/interfaces/lightConfiguration.js.map +0 -1
  470. package/configuration/interfaces/modelAnimationConfiguration.d.ts +0 -26
  471. package/configuration/interfaces/modelAnimationConfiguration.js +0 -2
  472. package/configuration/interfaces/modelAnimationConfiguration.js.map +0 -1
  473. package/configuration/interfaces/modelConfiguration.d.ts +0 -65
  474. package/configuration/interfaces/modelConfiguration.js +0 -2
  475. package/configuration/interfaces/modelConfiguration.js.map +0 -1
  476. package/configuration/interfaces/observersConfiguration.d.ts +0 -5
  477. package/configuration/interfaces/observersConfiguration.js +0 -2
  478. package/configuration/interfaces/observersConfiguration.js.map +0 -1
  479. package/configuration/interfaces/sceneConfiguration.d.ts +0 -48
  480. package/configuration/interfaces/sceneConfiguration.js +0 -2
  481. package/configuration/interfaces/sceneConfiguration.js.map +0 -1
  482. package/configuration/interfaces/sceneOptimizerConfiguration.d.ts +0 -23
  483. package/configuration/interfaces/sceneOptimizerConfiguration.js +0 -2
  484. package/configuration/interfaces/sceneOptimizerConfiguration.js.map +0 -1
  485. package/configuration/interfaces/skyboxConfiguration.d.ts +0 -21
  486. package/configuration/interfaces/skyboxConfiguration.js +0 -2
  487. package/configuration/interfaces/skyboxConfiguration.js.map +0 -1
  488. package/configuration/interfaces/templateConfiguration.d.ts +0 -67
  489. package/configuration/interfaces/templateConfiguration.js +0 -2
  490. package/configuration/interfaces/templateConfiguration.js.map +0 -1
  491. package/configuration/interfaces/vrConfiguration.d.ts +0 -16
  492. package/configuration/interfaces/vrConfiguration.js +0 -2
  493. package/configuration/interfaces/vrConfiguration.js.map +0 -1
  494. package/configuration/loader.d.ts +0 -4
  495. package/configuration/loader.js +0 -17
  496. package/configuration/loader.js.map +0 -1
  497. package/configuration/mappers.d.ts +0 -43
  498. package/configuration/mappers.js +0 -193
  499. package/configuration/mappers.js.map +0 -1
  500. package/configuration/renderOnlyLoader.d.ts +0 -33
  501. package/configuration/renderOnlyLoader.js +0 -162
  502. package/configuration/renderOnlyLoader.js.map +0 -1
  503. package/configuration/types/default.d.ts +0 -6
  504. package/configuration/types/default.js +0 -121
  505. package/configuration/types/default.js.map +0 -1
  506. package/configuration/types/environmentMap.d.ts +0 -5
  507. package/configuration/types/environmentMap.js +0 -14
  508. package/configuration/types/environmentMap.js.map +0 -1
  509. package/configuration/types/extended.d.ts +0 -6
  510. package/configuration/types/extended.js +0 -317
  511. package/configuration/types/extended.js.map +0 -1
  512. package/configuration/types/index.d.ts +0 -14
  513. package/configuration/types/index.js +0 -51
  514. package/configuration/types/index.js.map +0 -1
  515. package/configuration/types/minimal.d.ts +0 -6
  516. package/configuration/types/minimal.js +0 -43
  517. package/configuration/types/minimal.js.map +0 -1
  518. package/configuration/types/renderOnlyDefault.d.ts +0 -30
  519. package/configuration/types/renderOnlyDefault.js +0 -31
  520. package/configuration/types/renderOnlyDefault.js.map +0 -1
  521. package/configuration/types/shadowLight.d.ts +0 -9
  522. package/configuration/types/shadowLight.js +0 -64
  523. package/configuration/types/shadowLight.js.map +0 -1
  524. package/helper/index.d.ts +0 -29
  525. package/helper/index.js +0 -66
  526. package/helper/index.js.map +0 -1
  527. package/index.d.ts +0 -30
  528. package/index.js +0 -46
  529. package/index.js.map +0 -1
  530. package/initializer.d.ts +0 -11
  531. package/initializer.js +0 -35
  532. package/initializer.js.map +0 -1
  533. package/interfaces.d.ts +0 -5
  534. package/interfaces.js +0 -7
  535. package/interfaces.js.map +0 -1
  536. package/labs/environmentSerializer.d.ts +0 -126
  537. package/labs/environmentSerializer.js +0 -191
  538. package/labs/environmentSerializer.js.map +0 -1
  539. package/labs/texture.d.ts +0 -183
  540. package/labs/texture.js +0 -351
  541. package/labs/texture.js.map +0 -1
  542. package/labs/viewerLabs.d.ts +0 -51
  543. package/labs/viewerLabs.js +0 -134
  544. package/labs/viewerLabs.js.map +0 -1
  545. package/loader/modelLoader.d.ts +0 -56
  546. package/loader/modelLoader.js +0 -202
  547. package/loader/modelLoader.js.map +0 -1
  548. package/loader/plugins/applyMaterialConfig.d.ts +0 -12
  549. package/loader/plugins/applyMaterialConfig.js +0 -16
  550. package/loader/plugins/applyMaterialConfig.js.map +0 -1
  551. package/loader/plugins/extendedMaterialLoaderPlugin.d.ts +0 -9
  552. package/loader/plugins/extendedMaterialLoaderPlugin.js +0 -16
  553. package/loader/plugins/extendedMaterialLoaderPlugin.js.map +0 -1
  554. package/loader/plugins/index.d.ts +0 -19
  555. package/loader/plugins/index.js +0 -44
  556. package/loader/plugins/index.js.map +0 -1
  557. package/loader/plugins/loaderPlugin.d.ts +0 -24
  558. package/loader/plugins/loaderPlugin.js +0 -2
  559. package/loader/plugins/loaderPlugin.js.map +0 -1
  560. package/loader/plugins/msftLodLoaderPlugin.d.ts +0 -12
  561. package/loader/plugins/msftLodLoaderPlugin.js +0 -21
  562. package/loader/plugins/msftLodLoaderPlugin.js.map +0 -1
  563. package/loader/plugins/telemetryLoaderPlugin.d.ts +0 -12
  564. package/loader/plugins/telemetryLoaderPlugin.js +0 -36
  565. package/loader/plugins/telemetryLoaderPlugin.js.map +0 -1
  566. package/managers/observablesManager.d.ts +0 -66
  567. package/managers/observablesManager.js +0 -35
  568. package/managers/observablesManager.js.map +0 -1
  569. package/managers/sceneManager.d.ts +0 -245
  570. package/managers/sceneManager.js +0 -1375
  571. package/managers/sceneManager.js.map +0 -1
  572. package/managers/telemetryManager.d.ts +0 -78
  573. package/managers/telemetryManager.js +0 -117
  574. package/managers/telemetryManager.js.map +0 -1
  575. package/model/modelAnimation.d.ts +0 -215
  576. package/model/modelAnimation.js +0 -237
  577. package/model/modelAnimation.js.map +0 -1
  578. package/model/viewerModel.d.ts +0 -233
  579. package/model/viewerModel.js +0 -673
  580. package/model/viewerModel.js.map +0 -1
  581. package/optimizer/custom/extended.d.ts +0 -13
  582. package/optimizer/custom/extended.js +0 -101
  583. package/optimizer/custom/extended.js.map +0 -1
  584. package/optimizer/custom/index.d.ts +0 -9
  585. package/optimizer/custom/index.js +0 -26
  586. package/optimizer/custom/index.js.map +0 -1
  587. package/renderOnlyIndex.d.ts +0 -11
  588. package/renderOnlyIndex.js +0 -18
  589. package/renderOnlyIndex.js.map +0 -1
  590. package/templating/eventManager.d.ts +0 -35
  591. package/templating/eventManager.js +0 -66
  592. package/templating/eventManager.js.map +0 -1
  593. package/templating/plugins/hdButtonPlugin.d.ts +0 -9
  594. package/templating/plugins/hdButtonPlugin.js +0 -22
  595. package/templating/plugins/hdButtonPlugin.js.map +0 -1
  596. package/templating/plugins/printButton.d.ts +0 -9
  597. package/templating/plugins/printButton.js +0 -41
  598. package/templating/plugins/printButton.js.map +0 -1
  599. package/templating/templateManager.d.ts +0 -197
  600. package/templating/templateManager.js +0 -561
  601. package/templating/templateManager.js.map +0 -1
  602. package/templating/viewerTemplatePlugin.d.ts +0 -21
  603. package/templating/viewerTemplatePlugin.js +0 -69
  604. package/templating/viewerTemplatePlugin.js.map +0 -1
  605. package/viewer/defaultViewer.d.ts +0 -130
  606. package/viewer/defaultViewer.js +0 -672
  607. package/viewer/defaultViewer.js.map +0 -1
  608. package/viewer/renderOnlyViewer.d.ts +0 -9
  609. package/viewer/renderOnlyViewer.js +0 -46
  610. package/viewer/renderOnlyViewer.js.map +0 -1
  611. package/viewer/viewer.d.ts +0 -258
  612. package/viewer/viewer.js +0 -783
  613. package/viewer/viewer.js.map +0 -1
  614. package/viewer/viewerManager.d.ts +0 -58
  615. package/viewer/viewerManager.js +0 -91
  616. package/viewer/viewerManager.js.map +0 -1
  617. package/viewer/viewerWithTemplate.d.ts +0 -9
  618. package/viewer/viewerWithTemplate.js +0 -20
  619. package/viewer/viewerWithTemplate.js.map +0 -1
@@ -0,0 +1,349 @@
1
+ import { L as Logger } from './index-5L5wXyrx.esm.js';
2
+
3
+ //private static _TYPE_NO_DATA = 0;
4
+ const _TYPE_INDEXED = 1;
5
+ const _TYPE_RGB = 2;
6
+ const _TYPE_GREY = 3;
7
+ const _TYPE_RLE_INDEXED = 9;
8
+ const _TYPE_RLE_RGB = 10;
9
+ const _TYPE_RLE_GREY = 11;
10
+ const _ORIGIN_MASK = 0x30;
11
+ const _ORIGIN_SHIFT = 0x04;
12
+ const _ORIGIN_BL = 0x00;
13
+ const _ORIGIN_BR = 0x01;
14
+ const _ORIGIN_UL = 0x02;
15
+ const _ORIGIN_UR = 0x03;
16
+ /**
17
+ * Gets the header of a TGA file
18
+ * @param data defines the TGA data
19
+ * @returns the header
20
+ */
21
+ function GetTGAHeader(data) {
22
+ let offset = 0;
23
+ const header = {
24
+ id_length: data[offset++],
25
+ colormap_type: data[offset++],
26
+ image_type: data[offset++],
27
+ colormap_index: data[offset++] | (data[offset++] << 8),
28
+ colormap_length: data[offset++] | (data[offset++] << 8),
29
+ colormap_size: data[offset++],
30
+ origin: [data[offset++] | (data[offset++] << 8), data[offset++] | (data[offset++] << 8)],
31
+ width: data[offset++] | (data[offset++] << 8),
32
+ height: data[offset++] | (data[offset++] << 8),
33
+ pixel_size: data[offset++],
34
+ flags: data[offset++],
35
+ };
36
+ return header;
37
+ }
38
+ /**
39
+ * Uploads TGA content to a Babylon Texture
40
+ * @internal
41
+ */
42
+ function UploadContent(texture, data) {
43
+ // Not enough data to contain header ?
44
+ if (data.length < 19) {
45
+ Logger.Error("Unable to load TGA file - Not enough data to contain header");
46
+ return;
47
+ }
48
+ // Read Header
49
+ let offset = 18;
50
+ const header = GetTGAHeader(data);
51
+ // Assume it's a valid Targa file.
52
+ if (header.id_length + offset > data.length) {
53
+ Logger.Error("Unable to load TGA file - Not enough data");
54
+ return;
55
+ }
56
+ // Skip not needed data
57
+ offset += header.id_length;
58
+ let use_rle = false;
59
+ let use_pal = false;
60
+ let use_grey = false;
61
+ // Get some informations.
62
+ switch (header.image_type) {
63
+ case _TYPE_RLE_INDEXED:
64
+ use_rle = true;
65
+ // eslint-disable-next-line no-fallthrough
66
+ case _TYPE_INDEXED:
67
+ use_pal = true;
68
+ break;
69
+ case _TYPE_RLE_RGB:
70
+ use_rle = true;
71
+ // eslint-disable-next-line no-fallthrough
72
+ case _TYPE_RGB:
73
+ // use_rgb = true;
74
+ break;
75
+ case _TYPE_RLE_GREY:
76
+ use_rle = true;
77
+ // eslint-disable-next-line no-fallthrough
78
+ case _TYPE_GREY:
79
+ use_grey = true;
80
+ break;
81
+ }
82
+ let pixel_data;
83
+ // var numAlphaBits = header.flags & 0xf;
84
+ const pixel_size = header.pixel_size >> 3;
85
+ const pixel_total = header.width * header.height * pixel_size;
86
+ // Read palettes
87
+ let palettes;
88
+ if (use_pal) {
89
+ palettes = data.subarray(offset, (offset += header.colormap_length * (header.colormap_size >> 3)));
90
+ }
91
+ // Read LRE
92
+ if (use_rle) {
93
+ pixel_data = new Uint8Array(pixel_total);
94
+ let c, count, i;
95
+ let localOffset = 0;
96
+ const pixels = new Uint8Array(pixel_size);
97
+ while (offset < pixel_total && localOffset < pixel_total) {
98
+ c = data[offset++];
99
+ count = (c & 0x7f) + 1;
100
+ // RLE pixels
101
+ if (c & 0x80) {
102
+ // Bind pixel tmp array
103
+ for (i = 0; i < pixel_size; ++i) {
104
+ pixels[i] = data[offset++];
105
+ }
106
+ // Copy pixel array
107
+ for (i = 0; i < count; ++i) {
108
+ pixel_data.set(pixels, localOffset + i * pixel_size);
109
+ }
110
+ localOffset += pixel_size * count;
111
+ }
112
+ // Raw pixels
113
+ else {
114
+ count *= pixel_size;
115
+ for (i = 0; i < count; ++i) {
116
+ pixel_data[localOffset + i] = data[offset++];
117
+ }
118
+ localOffset += count;
119
+ }
120
+ }
121
+ }
122
+ // RAW Pixels
123
+ else {
124
+ pixel_data = data.subarray(offset, (offset += use_pal ? header.width * header.height : pixel_total));
125
+ }
126
+ // Load to texture
127
+ let x_start, y_start, x_step, y_step, y_end, x_end;
128
+ switch ((header.flags & _ORIGIN_MASK) >> _ORIGIN_SHIFT) {
129
+ default:
130
+ case _ORIGIN_UL:
131
+ x_start = 0;
132
+ x_step = 1;
133
+ x_end = header.width;
134
+ y_start = 0;
135
+ y_step = 1;
136
+ y_end = header.height;
137
+ break;
138
+ case _ORIGIN_BL:
139
+ x_start = 0;
140
+ x_step = 1;
141
+ x_end = header.width;
142
+ y_start = header.height - 1;
143
+ y_step = -1;
144
+ y_end = -1;
145
+ break;
146
+ case _ORIGIN_UR:
147
+ x_start = header.width - 1;
148
+ x_step = -1;
149
+ x_end = -1;
150
+ y_start = 0;
151
+ y_step = 1;
152
+ y_end = header.height;
153
+ break;
154
+ case _ORIGIN_BR:
155
+ x_start = header.width - 1;
156
+ x_step = -1;
157
+ x_end = -1;
158
+ y_start = header.height - 1;
159
+ y_step = -1;
160
+ y_end = -1;
161
+ break;
162
+ }
163
+ // Load the specify method
164
+ const func = "_getImageData" + (use_grey ? "Grey" : "") + header.pixel_size + "bits";
165
+ const imageData = TGATools[func](header, palettes, pixel_data, y_start, y_step, y_end, x_start, x_step, x_end);
166
+ const engine = texture.getEngine();
167
+ engine._uploadDataToTextureDirectly(texture, imageData);
168
+ }
169
+ /**
170
+ * @internal
171
+ */
172
+ function _getImageData8bits(header, palettes, pixel_data, y_start, y_step, y_end, x_start, x_step, x_end) {
173
+ const image = pixel_data, colormap = palettes;
174
+ const width = header.width, height = header.height;
175
+ let color, i = 0, x, y;
176
+ const imageData = new Uint8Array(width * height * 4);
177
+ for (y = y_start; y !== y_end; y += y_step) {
178
+ for (x = x_start; x !== x_end; x += x_step, i++) {
179
+ color = image[i];
180
+ imageData[(x + width * y) * 4 + 3] = 255;
181
+ imageData[(x + width * y) * 4 + 2] = colormap[color * 3 + 0];
182
+ imageData[(x + width * y) * 4 + 1] = colormap[color * 3 + 1];
183
+ imageData[(x + width * y) * 4 + 0] = colormap[color * 3 + 2];
184
+ }
185
+ }
186
+ return imageData;
187
+ }
188
+ /**
189
+ * @internal
190
+ */
191
+ function _getImageData16bits(header, palettes, pixel_data, y_start, y_step, y_end, x_start, x_step, x_end) {
192
+ const image = pixel_data;
193
+ const width = header.width, height = header.height;
194
+ let color, i = 0, x, y;
195
+ const imageData = new Uint8Array(width * height * 4);
196
+ for (y = y_start; y !== y_end; y += y_step) {
197
+ for (x = x_start; x !== x_end; x += x_step, i += 2) {
198
+ color = image[i + 0] + (image[i + 1] << 8); // Inversed ?
199
+ const r = ((((color & 0x7c00) >> 10) * 255) / 0x1f) | 0;
200
+ const g = ((((color & 0x03e0) >> 5) * 255) / 0x1f) | 0;
201
+ const b = (((color & 0x001f) * 255) / 0x1f) | 0;
202
+ imageData[(x + width * y) * 4 + 0] = r;
203
+ imageData[(x + width * y) * 4 + 1] = g;
204
+ imageData[(x + width * y) * 4 + 2] = b;
205
+ imageData[(x + width * y) * 4 + 3] = color & 0x8000 ? 0 : 255;
206
+ }
207
+ }
208
+ return imageData;
209
+ }
210
+ /**
211
+ * @internal
212
+ */
213
+ function _getImageData24bits(header, palettes, pixel_data, y_start, y_step, y_end, x_start, x_step, x_end) {
214
+ const image = pixel_data;
215
+ const width = header.width, height = header.height;
216
+ let i = 0, x, y;
217
+ const imageData = new Uint8Array(width * height * 4);
218
+ for (y = y_start; y !== y_end; y += y_step) {
219
+ for (x = x_start; x !== x_end; x += x_step, i += 3) {
220
+ imageData[(x + width * y) * 4 + 3] = 255;
221
+ imageData[(x + width * y) * 4 + 2] = image[i + 0];
222
+ imageData[(x + width * y) * 4 + 1] = image[i + 1];
223
+ imageData[(x + width * y) * 4 + 0] = image[i + 2];
224
+ }
225
+ }
226
+ return imageData;
227
+ }
228
+ /**
229
+ * @internal
230
+ */
231
+ function _getImageData32bits(header, palettes, pixel_data, y_start, y_step, y_end, x_start, x_step, x_end) {
232
+ const image = pixel_data;
233
+ const width = header.width, height = header.height;
234
+ let i = 0, x, y;
235
+ const imageData = new Uint8Array(width * height * 4);
236
+ for (y = y_start; y !== y_end; y += y_step) {
237
+ for (x = x_start; x !== x_end; x += x_step, i += 4) {
238
+ imageData[(x + width * y) * 4 + 2] = image[i + 0];
239
+ imageData[(x + width * y) * 4 + 1] = image[i + 1];
240
+ imageData[(x + width * y) * 4 + 0] = image[i + 2];
241
+ imageData[(x + width * y) * 4 + 3] = image[i + 3];
242
+ }
243
+ }
244
+ return imageData;
245
+ }
246
+ /**
247
+ * @internal
248
+ */
249
+ function _getImageDataGrey8bits(header, palettes, pixel_data, y_start, y_step, y_end, x_start, x_step, x_end) {
250
+ const image = pixel_data;
251
+ const width = header.width, height = header.height;
252
+ let color, i = 0, x, y;
253
+ const imageData = new Uint8Array(width * height * 4);
254
+ for (y = y_start; y !== y_end; y += y_step) {
255
+ for (x = x_start; x !== x_end; x += x_step, i++) {
256
+ color = image[i];
257
+ imageData[(x + width * y) * 4 + 0] = color;
258
+ imageData[(x + width * y) * 4 + 1] = color;
259
+ imageData[(x + width * y) * 4 + 2] = color;
260
+ imageData[(x + width * y) * 4 + 3] = 255;
261
+ }
262
+ }
263
+ return imageData;
264
+ }
265
+ /**
266
+ * @internal
267
+ */
268
+ function _getImageDataGrey16bits(header, palettes, pixel_data, y_start, y_step, y_end, x_start, x_step, x_end) {
269
+ const image = pixel_data;
270
+ const width = header.width, height = header.height;
271
+ let i = 0, x, y;
272
+ const imageData = new Uint8Array(width * height * 4);
273
+ for (y = y_start; y !== y_end; y += y_step) {
274
+ for (x = x_start; x !== x_end; x += x_step, i += 2) {
275
+ imageData[(x + width * y) * 4 + 0] = image[i + 0];
276
+ imageData[(x + width * y) * 4 + 1] = image[i + 0];
277
+ imageData[(x + width * y) * 4 + 2] = image[i + 0];
278
+ imageData[(x + width * y) * 4 + 3] = image[i + 1];
279
+ }
280
+ }
281
+ return imageData;
282
+ }
283
+ /**
284
+ * Based on jsTGALoader - Javascript loader for TGA file
285
+ * By Vincent Thibault
286
+ * @see http://blog.robrowser.com/javascript-tga-loader.html
287
+ */
288
+ const TGATools = {
289
+ /**
290
+ * Gets the header of a TGA file
291
+ * @param data defines the TGA data
292
+ * @returns the header
293
+ */
294
+ GetTGAHeader,
295
+ /**
296
+ * Uploads TGA content to a Babylon Texture
297
+ * @internal
298
+ */
299
+ UploadContent,
300
+ /** @internal */
301
+ _getImageData8bits,
302
+ /** @internal */
303
+ _getImageData16bits,
304
+ /** @internal */
305
+ _getImageData24bits,
306
+ /** @internal */
307
+ _getImageData32bits,
308
+ /** @internal */
309
+ _getImageDataGrey8bits,
310
+ /** @internal */
311
+ _getImageDataGrey16bits,
312
+ };
313
+
314
+ /**
315
+ * Implementation of the TGA Texture Loader.
316
+ * @internal
317
+ */
318
+ // eslint-disable-next-line @typescript-eslint/naming-convention
319
+ class _TGATextureLoader {
320
+ constructor() {
321
+ /**
322
+ * Defines whether the loader supports cascade loading the different faces.
323
+ */
324
+ this.supportCascades = false;
325
+ }
326
+ /**
327
+ * Uploads the cube texture data to the WebGL texture. It has already been bound.
328
+ */
329
+ loadCubeData() {
330
+ // eslint-disable-next-line no-throw-literal
331
+ throw ".env not supported in Cube.";
332
+ }
333
+ /**
334
+ * Uploads the 2D texture data to the WebGL texture. It has already been bound once in the callback.
335
+ * @param data contains the texture data
336
+ * @param texture defines the BabylonJS internal texture
337
+ * @param callback defines the method to call once ready to upload
338
+ */
339
+ loadData(data, texture, callback) {
340
+ const bytes = new Uint8Array(data.buffer, data.byteOffset, data.byteLength);
341
+ const header = GetTGAHeader(bytes);
342
+ callback(header.width, header.height, texture.generateMipMaps, false, () => {
343
+ UploadContent(texture, bytes);
344
+ });
345
+ }
346
+ }
347
+
348
+ export { _TGATextureLoader };
349
+ //# sourceMappingURL=tgaTextureLoader-DnUiJRBO.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tgaTextureLoader-DnUiJRBO.esm.js","sources":["../../../../../dev/core/dist/Misc/tga.js","../../../../../dev/core/dist/Materials/Textures/Loaders/tgaTextureLoader.js"],"sourcesContent":["import { Logger } from \"../Misc/logger\";\n//private static _TYPE_NO_DATA = 0;\nconst _TYPE_INDEXED = 1;\nconst _TYPE_RGB = 2;\nconst _TYPE_GREY = 3;\nconst _TYPE_RLE_INDEXED = 9;\nconst _TYPE_RLE_RGB = 10;\nconst _TYPE_RLE_GREY = 11;\nconst _ORIGIN_MASK = 0x30;\nconst _ORIGIN_SHIFT = 0x04;\nconst _ORIGIN_BL = 0x00;\nconst _ORIGIN_BR = 0x01;\nconst _ORIGIN_UL = 0x02;\nconst _ORIGIN_UR = 0x03;\n/**\n * Gets the header of a TGA file\n * @param data defines the TGA data\n * @returns the header\n */\nexport function GetTGAHeader(data) {\n let offset = 0;\n const header = {\n id_length: data[offset++],\n colormap_type: data[offset++],\n image_type: data[offset++],\n colormap_index: data[offset++] | (data[offset++] << 8),\n colormap_length: data[offset++] | (data[offset++] << 8),\n colormap_size: data[offset++],\n origin: [data[offset++] | (data[offset++] << 8), data[offset++] | (data[offset++] << 8)],\n width: data[offset++] | (data[offset++] << 8),\n height: data[offset++] | (data[offset++] << 8),\n pixel_size: data[offset++],\n flags: data[offset++],\n };\n return header;\n}\n/**\n * Uploads TGA content to a Babylon Texture\n * @internal\n */\nexport function UploadContent(texture, data) {\n // Not enough data to contain header ?\n if (data.length < 19) {\n Logger.Error(\"Unable to load TGA file - Not enough data to contain header\");\n return;\n }\n // Read Header\n let offset = 18;\n const header = GetTGAHeader(data);\n // Assume it's a valid Targa file.\n if (header.id_length + offset > data.length) {\n Logger.Error(\"Unable to load TGA file - Not enough data\");\n return;\n }\n // Skip not needed data\n offset += header.id_length;\n let use_rle = false;\n let use_pal = false;\n let use_grey = false;\n // Get some informations.\n switch (header.image_type) {\n case _TYPE_RLE_INDEXED:\n use_rle = true;\n // eslint-disable-next-line no-fallthrough\n case _TYPE_INDEXED:\n use_pal = true;\n break;\n case _TYPE_RLE_RGB:\n use_rle = true;\n // eslint-disable-next-line no-fallthrough\n case _TYPE_RGB:\n // use_rgb = true;\n break;\n case _TYPE_RLE_GREY:\n use_rle = true;\n // eslint-disable-next-line no-fallthrough\n case _TYPE_GREY:\n use_grey = true;\n break;\n }\n let pixel_data;\n // var numAlphaBits = header.flags & 0xf;\n const pixel_size = header.pixel_size >> 3;\n const pixel_total = header.width * header.height * pixel_size;\n // Read palettes\n let palettes;\n if (use_pal) {\n palettes = data.subarray(offset, (offset += header.colormap_length * (header.colormap_size >> 3)));\n }\n // Read LRE\n if (use_rle) {\n pixel_data = new Uint8Array(pixel_total);\n let c, count, i;\n let localOffset = 0;\n const pixels = new Uint8Array(pixel_size);\n while (offset < pixel_total && localOffset < pixel_total) {\n c = data[offset++];\n count = (c & 0x7f) + 1;\n // RLE pixels\n if (c & 0x80) {\n // Bind pixel tmp array\n for (i = 0; i < pixel_size; ++i) {\n pixels[i] = data[offset++];\n }\n // Copy pixel array\n for (i = 0; i < count; ++i) {\n pixel_data.set(pixels, localOffset + i * pixel_size);\n }\n localOffset += pixel_size * count;\n }\n // Raw pixels\n else {\n count *= pixel_size;\n for (i = 0; i < count; ++i) {\n pixel_data[localOffset + i] = data[offset++];\n }\n localOffset += count;\n }\n }\n }\n // RAW Pixels\n else {\n pixel_data = data.subarray(offset, (offset += use_pal ? header.width * header.height : pixel_total));\n }\n // Load to texture\n let x_start, y_start, x_step, y_step, y_end, x_end;\n switch ((header.flags & _ORIGIN_MASK) >> _ORIGIN_SHIFT) {\n default:\n case _ORIGIN_UL:\n x_start = 0;\n x_step = 1;\n x_end = header.width;\n y_start = 0;\n y_step = 1;\n y_end = header.height;\n break;\n case _ORIGIN_BL:\n x_start = 0;\n x_step = 1;\n x_end = header.width;\n y_start = header.height - 1;\n y_step = -1;\n y_end = -1;\n break;\n case _ORIGIN_UR:\n x_start = header.width - 1;\n x_step = -1;\n x_end = -1;\n y_start = 0;\n y_step = 1;\n y_end = header.height;\n break;\n case _ORIGIN_BR:\n x_start = header.width - 1;\n x_step = -1;\n x_end = -1;\n y_start = header.height - 1;\n y_step = -1;\n y_end = -1;\n break;\n }\n // Load the specify method\n const func = \"_getImageData\" + (use_grey ? \"Grey\" : \"\") + header.pixel_size + \"bits\";\n const imageData = TGATools[func](header, palettes, pixel_data, y_start, y_step, y_end, x_start, x_step, x_end);\n const engine = texture.getEngine();\n engine._uploadDataToTextureDirectly(texture, imageData);\n}\n/**\n * @internal\n */\nfunction _getImageData8bits(header, palettes, pixel_data, y_start, y_step, y_end, x_start, x_step, x_end) {\n const image = pixel_data, colormap = palettes;\n const width = header.width, height = header.height;\n let color, i = 0, x, y;\n const imageData = new Uint8Array(width * height * 4);\n for (y = y_start; y !== y_end; y += y_step) {\n for (x = x_start; x !== x_end; x += x_step, i++) {\n color = image[i];\n imageData[(x + width * y) * 4 + 3] = 255;\n imageData[(x + width * y) * 4 + 2] = colormap[color * 3 + 0];\n imageData[(x + width * y) * 4 + 1] = colormap[color * 3 + 1];\n imageData[(x + width * y) * 4 + 0] = colormap[color * 3 + 2];\n }\n }\n return imageData;\n}\n/**\n * @internal\n */\nfunction _getImageData16bits(header, palettes, pixel_data, y_start, y_step, y_end, x_start, x_step, x_end) {\n const image = pixel_data;\n const width = header.width, height = header.height;\n let color, i = 0, x, y;\n const imageData = new Uint8Array(width * height * 4);\n for (y = y_start; y !== y_end; y += y_step) {\n for (x = x_start; x !== x_end; x += x_step, i += 2) {\n color = image[i + 0] + (image[i + 1] << 8); // Inversed ?\n const r = ((((color & 0x7c00) >> 10) * 255) / 0x1f) | 0;\n const g = ((((color & 0x03e0) >> 5) * 255) / 0x1f) | 0;\n const b = (((color & 0x001f) * 255) / 0x1f) | 0;\n imageData[(x + width * y) * 4 + 0] = r;\n imageData[(x + width * y) * 4 + 1] = g;\n imageData[(x + width * y) * 4 + 2] = b;\n imageData[(x + width * y) * 4 + 3] = color & 0x8000 ? 0 : 255;\n }\n }\n return imageData;\n}\n/**\n * @internal\n */\nfunction _getImageData24bits(header, palettes, pixel_data, y_start, y_step, y_end, x_start, x_step, x_end) {\n const image = pixel_data;\n const width = header.width, height = header.height;\n let i = 0, x, y;\n const imageData = new Uint8Array(width * height * 4);\n for (y = y_start; y !== y_end; y += y_step) {\n for (x = x_start; x !== x_end; x += x_step, i += 3) {\n imageData[(x + width * y) * 4 + 3] = 255;\n imageData[(x + width * y) * 4 + 2] = image[i + 0];\n imageData[(x + width * y) * 4 + 1] = image[i + 1];\n imageData[(x + width * y) * 4 + 0] = image[i + 2];\n }\n }\n return imageData;\n}\n/**\n * @internal\n */\nfunction _getImageData32bits(header, palettes, pixel_data, y_start, y_step, y_end, x_start, x_step, x_end) {\n const image = pixel_data;\n const width = header.width, height = header.height;\n let i = 0, x, y;\n const imageData = new Uint8Array(width * height * 4);\n for (y = y_start; y !== y_end; y += y_step) {\n for (x = x_start; x !== x_end; x += x_step, i += 4) {\n imageData[(x + width * y) * 4 + 2] = image[i + 0];\n imageData[(x + width * y) * 4 + 1] = image[i + 1];\n imageData[(x + width * y) * 4 + 0] = image[i + 2];\n imageData[(x + width * y) * 4 + 3] = image[i + 3];\n }\n }\n return imageData;\n}\n/**\n * @internal\n */\nfunction _getImageDataGrey8bits(header, palettes, pixel_data, y_start, y_step, y_end, x_start, x_step, x_end) {\n const image = pixel_data;\n const width = header.width, height = header.height;\n let color, i = 0, x, y;\n const imageData = new Uint8Array(width * height * 4);\n for (y = y_start; y !== y_end; y += y_step) {\n for (x = x_start; x !== x_end; x += x_step, i++) {\n color = image[i];\n imageData[(x + width * y) * 4 + 0] = color;\n imageData[(x + width * y) * 4 + 1] = color;\n imageData[(x + width * y) * 4 + 2] = color;\n imageData[(x + width * y) * 4 + 3] = 255;\n }\n }\n return imageData;\n}\n/**\n * @internal\n */\nfunction _getImageDataGrey16bits(header, palettes, pixel_data, y_start, y_step, y_end, x_start, x_step, x_end) {\n const image = pixel_data;\n const width = header.width, height = header.height;\n let i = 0, x, y;\n const imageData = new Uint8Array(width * height * 4);\n for (y = y_start; y !== y_end; y += y_step) {\n for (x = x_start; x !== x_end; x += x_step, i += 2) {\n imageData[(x + width * y) * 4 + 0] = image[i + 0];\n imageData[(x + width * y) * 4 + 1] = image[i + 0];\n imageData[(x + width * y) * 4 + 2] = image[i + 0];\n imageData[(x + width * y) * 4 + 3] = image[i + 1];\n }\n }\n return imageData;\n}\n/**\n * Based on jsTGALoader - Javascript loader for TGA file\n * By Vincent Thibault\n * @see http://blog.robrowser.com/javascript-tga-loader.html\n */\nexport const TGATools = {\n /**\n * Gets the header of a TGA file\n * @param data defines the TGA data\n * @returns the header\n */\n GetTGAHeader,\n /**\n * Uploads TGA content to a Babylon Texture\n * @internal\n */\n UploadContent,\n /** @internal */\n _getImageData8bits,\n /** @internal */\n _getImageData16bits,\n /** @internal */\n _getImageData24bits,\n /** @internal */\n _getImageData32bits,\n /** @internal */\n _getImageDataGrey8bits,\n /** @internal */\n _getImageDataGrey16bits,\n};\n//# sourceMappingURL=tga.js.map","import { GetTGAHeader, UploadContent } from \"../../../Misc/tga\";\n/**\n * Implementation of the TGA Texture Loader.\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class _TGATextureLoader {\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 */\n loadCubeData() {\n // eslint-disable-next-line no-throw-literal\n throw \".env not supported in Cube.\";\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 */\n loadData(data, texture, callback) {\n const bytes = new Uint8Array(data.buffer, data.byteOffset, data.byteLength);\n const header = GetTGAHeader(bytes);\n callback(header.width, header.height, texture.generateMipMaps, false, () => {\n UploadContent(texture, bytes);\n });\n }\n}\n//# sourceMappingURL=tgaTextureLoader.js.map"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{D as e,b0 as t,A as r,n as s,b1 as i,L as _,b2 as n,C as a,r as l,b3 as h,b4 as E,b5 as o,b6 as T,b7 as u,b8 as R,b9 as c,ba as g,bb as f,I as d,bc as A,H as p,G as x,bd as S,p as b}from"./index-B5KLkjYm.esm.min.js";import{I as m}from"./drawWrapper.functions-ng7lvueZ.esm.min.js";class I{constructor(){this.shaderLanguage=0}postProcessor(e,t,r,s,i){if(i.drawBuffersExtensionDisabled){const t=/#extension.+GL_EXT_draw_buffers.+(enable|require)/g;e=e.replace(t,"")}return e}}const M=/(flat\s)?\s*varying\s*.*/;class B{constructor(){this.shaderLanguage=0}attributeProcessor(e){return e.replace("attribute","in")}varyingCheck(e,t){return M.test(e)}varyingProcessor(e,t){return e.replace("varying",t?"in":"out")}postProcessor(e,t,r){const s=-1!==e.search(/#extension.+GL_EXT_draw_buffers.+require/);if(e=(e=e.replace(/#extension.+(GL_OVR_multiview2|GL_OES_standard_derivatives|GL_EXT_shader_texture_lod|GL_EXT_frag_depth|GL_EXT_draw_buffers).+(enable|require)/g,"")).replace(/texture2D\s*\(/g,"texture("),r){const t=-1!==e.search(/layout *\(location *= *0\) *out/g);e=(e=(e=(e=(e=(e=(e=e.replace(/texture2DLodEXT\s*\(/g,"textureLod(")).replace(/textureCubeLodEXT\s*\(/g,"textureLod(")).replace(/textureCube\s*\(/g,"texture(")).replace(/gl_FragDepthEXT/g,"gl_FragDepth")).replace(/gl_FragColor/g,"glFragColor")).replace(/gl_FragData/g,"glFragData")).replace(/void\s+?main\s*\(/g,(s||t?"":"layout(location = 0) out vec4 glFragColor;\n")+"void main(")}else{if(-1!==t.indexOf("#define MULTIVIEW"))return"#extension GL_OVR_multiview2 : require\nlayout (num_views = 2) in;\n"+e}return e}}class U extends e{constructor(e){super(),this._buffer=e}get underlyingResource(){return this._buffer}}class F{get underlyingResource(){return this._webGLTexture}constructor(e=null,t){if(this._MSAARenderBuffers=null,this._context=t,!e&&!(e=t.createTexture()))throw new Error("Unable to create webGL texture");this.set(e)}setUsage(){}set(e){this._webGLTexture=e}reset(){this._webGLTexture=null,this._MSAARenderBuffers=null}addMSAARenderBuffer(e){this._MSAARenderBuffers||(this._MSAARenderBuffers=[]),this._MSAARenderBuffers.push(e)}releaseMSAARenderBuffers(){if(this._MSAARenderBuffers){for(const e of this._MSAARenderBuffers)this._context.deleteRenderbuffer(e);this._MSAARenderBuffers=null}}getMSAARenderBuffer(e=0){return this._MSAARenderBuffers?.[e]??null}release(){this.releaseMSAARenderBuffers(),this._webGLTexture&&this._context.deleteTexture(this._webGLTexture),this.reset()}}class G{}class N extends r{get name(){return this._name}set name(e){this._name=e}get version(){return this._webGLVersion}static get ShadersRepository(){return s.ShadersRepository}static set ShadersRepository(e){s.ShadersRepository=e}get supportsUniformBuffers(){return this.webGLVersion>1&&!this.disableUniformBuffers}get needPOTTextures(){return this._webGLVersion<2||this.forcePOTTextures}get _supportsHardwareTextureRescaling(){return!1}set framebufferDimensionsObject(e){this._framebufferDimensionsObject=e}snapshotRenderingReset(){this.snapshotRendering=!1}constructor(e,t,r,s){if(r=r||{},super(t??r.antialias,r,s),this._name="WebGL",this.forcePOTTextures=!1,this.validateShaderPrograms=!1,this.disableUniformBuffers=!1,this._webGLVersion=1,this._vertexAttribArraysEnabled=[],this._uintIndicesCurrentlySet=!1,this._currentBoundBuffer=new Array,this._currentFramebuffer=null,this._dummyFramebuffer=null,this._currentBufferPointers=new Array,this._currentInstanceLocations=new Array,this._currentInstanceBuffers=new Array,this._vaoRecordInProgress=!1,this._mustWipeVertexAttributes=!1,this._nextFreeTextureSlots=new Array,this._maxSimultaneousTextures=0,this._maxMSAASamplesOverride=null,this._unpackFlipYCached=null,this.enableUnpackFlipYCached=!0,this._boundUniforms={},!e)return;let a=null;if(e.getContext){if(a=e,void 0===r.preserveDrawingBuffer&&(r.preserveDrawingBuffer=!1),void 0===r.xrCompatible&&(r.xrCompatible=!1),navigator&&navigator.userAgent){this._setupMobileChecks();const e=navigator.userAgent;for(const t of N.ExceptionList){const s=t.key,i=t.targets;if(new RegExp(s).test(e)){if(t.capture&&t.captureConstraint){const r=t.capture,s=t.captureConstraint,i=new RegExp(r).exec(e);if(i&&i.length>0){if(parseInt(i[i.length-1])>=s)continue}}for(const e of i)switch(e){case"uniformBuffer":this.disableUniformBuffers=!0;break;case"vao":this.disableVertexArrayObjects=!0;break;case"antialias":r.antialias=!1;break;case"maxMSAASamples":this._maxMSAASamplesOverride=1}}}}if(this._doNotHandleContextLost?this._onContextLost=()=>{i(this._gl)}:(this._onContextLost=e=>{e.preventDefault(),this._contextWasLost=!0,i(this._gl),_.Warn("WebGL context lost."),this.onContextLostObservable.notifyObservers(this)},this._onContextRestored=()=>{this._restoreEngineAfterContextLost((()=>this._initGLContext()))},a.addEventListener("webglcontextrestored",this._onContextRestored,!1),r.powerPreference=r.powerPreference||"high-performance"),a.addEventListener("webglcontextlost",this._onContextLost,!1),this._badDesktopOS&&(r.xrCompatible=!1),!r.disableWebGL2Support)try{this._gl=a.getContext("webgl2",r)||a.getContext("experimental-webgl2",r),this._gl&&(this._webGLVersion=2,this._shaderPlatformName="WEBGL2",this._gl.deleteQuery||(this._webGLVersion=1,this._shaderPlatformName="WEBGL1"))}catch(e){}if(!this._gl){if(!a)throw new Error("The provided canvas is null or undefined.");try{this._gl=a.getContext("webgl",r)||a.getContext("experimental-webgl",r)}catch(e){throw new Error("WebGL not supported")}}if(!this._gl)throw new Error("WebGL not supported")}else{this._gl=e,a=this._gl.canvas,this._gl.renderbufferStorageMultisample?(this._webGLVersion=2,this._shaderPlatformName="WEBGL2"):this._shaderPlatformName="WEBGL1";const t=this._gl.getContextAttributes();t&&(r.stencil=t.stencil)}this._sharedInit(a),this._gl.pixelStorei(this._gl.UNPACK_COLORSPACE_CONVERSION_WEBGL,this._gl.NONE),void 0!==r.useHighPrecisionFloats&&(this._highPrecisionShadersAllowed=r.useHighPrecisionFloats),this.resize(),this._initGLContext(),this._initFeatures();for(let e=0;e<this._caps.maxVertexAttribs;e++)this._currentBufferPointers[e]=new G;this._shaderProcessor=this.webGLVersion>1?new B:new I;const l=`Babylon.js v${N.Version}`;_.Log(l+` - ${this.description}`),this._renderingCanvas&&this._renderingCanvas.setAttribute&&this._renderingCanvas.setAttribute("data-engine",l);const h=n(this._gl);h.validateShaderPrograms=this.validateShaderPrograms,h.parallelShaderCompile=this._caps.parallelShaderCompile}_clearEmptyResources(){this._dummyFramebuffer=null,super._clearEmptyResources()}_getShaderProcessingContext(e){return null}areAllEffectsReady(){for(const e in this._compiledEffects){if(!this._compiledEffects[e].isReady())return!1}return!0}_initGLContext(){this._caps={maxTexturesImageUnits:this._gl.getParameter(this._gl.MAX_TEXTURE_IMAGE_UNITS),maxCombinedTexturesImageUnits:this._gl.getParameter(this._gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS),maxVertexTextureImageUnits:this._gl.getParameter(this._gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS),maxTextureSize:this._gl.getParameter(this._gl.MAX_TEXTURE_SIZE),maxSamples:this._webGLVersion>1?this._gl.getParameter(this._gl.MAX_SAMPLES):1,maxCubemapTextureSize:this._gl.getParameter(this._gl.MAX_CUBE_MAP_TEXTURE_SIZE),maxRenderTextureSize:this._gl.getParameter(this._gl.MAX_RENDERBUFFER_SIZE),maxVertexAttribs:this._gl.getParameter(this._gl.MAX_VERTEX_ATTRIBS),maxVaryingVectors:this._gl.getParameter(this._gl.MAX_VARYING_VECTORS),maxFragmentUniformVectors:this._gl.getParameter(this._gl.MAX_FRAGMENT_UNIFORM_VECTORS),maxVertexUniformVectors:this._gl.getParameter(this._gl.MAX_VERTEX_UNIFORM_VECTORS),parallelShaderCompile:this._gl.getExtension("KHR_parallel_shader_compile")||void 0,standardDerivatives:this._webGLVersion>1||null!==this._gl.getExtension("OES_standard_derivatives"),maxAnisotropy:1,astc:this._gl.getExtension("WEBGL_compressed_texture_astc")||this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_astc"),bptc:this._gl.getExtension("EXT_texture_compression_bptc")||this._gl.getExtension("WEBKIT_EXT_texture_compression_bptc"),s3tc:this._gl.getExtension("WEBGL_compressed_texture_s3tc")||this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc"),s3tc_srgb:this._gl.getExtension("WEBGL_compressed_texture_s3tc_srgb")||this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc_srgb"),pvrtc:this._gl.getExtension("WEBGL_compressed_texture_pvrtc")||this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),etc1:this._gl.getExtension("WEBGL_compressed_texture_etc1")||this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_etc1"),etc2:this._gl.getExtension("WEBGL_compressed_texture_etc")||this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_etc")||this._gl.getExtension("WEBGL_compressed_texture_es3_0"),textureAnisotropicFilterExtension:this._gl.getExtension("EXT_texture_filter_anisotropic")||this._gl.getExtension("WEBKIT_EXT_texture_filter_anisotropic")||this._gl.getExtension("MOZ_EXT_texture_filter_anisotropic"),uintIndices:this._webGLVersion>1||null!==this._gl.getExtension("OES_element_index_uint"),fragmentDepthSupported:this._webGLVersion>1||null!==this._gl.getExtension("EXT_frag_depth"),highPrecisionShaderSupported:!1,timerQuery:this._gl.getExtension("EXT_disjoint_timer_query_webgl2")||this._gl.getExtension("EXT_disjoint_timer_query"),supportOcclusionQuery:this._webGLVersion>1,canUseTimestampForTimerQuery:!1,drawBuffersExtension:!1,maxMSAASamples:1,colorBufferFloat:!!(this._webGLVersion>1&&this._gl.getExtension("EXT_color_buffer_float")),supportFloatTexturesResolve:!1,rg11b10ufColorRenderable:!1,colorBufferHalfFloat:!!(this._webGLVersion>1&&this._gl.getExtension("EXT_color_buffer_half_float")),textureFloat:!!(this._webGLVersion>1||this._gl.getExtension("OES_texture_float")),textureHalfFloat:!!(this._webGLVersion>1||this._gl.getExtension("OES_texture_half_float")),textureHalfFloatRender:!1,textureFloatLinearFiltering:!1,textureFloatRender:!1,textureHalfFloatLinearFiltering:!1,vertexArrayObject:!1,instancedArrays:!1,textureLOD:!!(this._webGLVersion>1||this._gl.getExtension("EXT_shader_texture_lod")),texelFetch:1!==this._webGLVersion,blendMinMax:!1,multiview:this._gl.getExtension("OVR_multiview2"),oculusMultiview:this._gl.getExtension("OCULUS_multiview"),depthTextureExtension:!1,canUseGLInstanceID:this._webGLVersion>1,canUseGLVertexID:this._webGLVersion>1,supportComputeShaders:!1,supportSRGBBuffers:!1,supportTransformFeedbacks:this._webGLVersion>1,textureMaxLevel:this._webGLVersion>1,texture2DArrayMaxLayerCount:this._webGLVersion>1?this._gl.getParameter(this._gl.MAX_ARRAY_TEXTURE_LAYERS):128,disableMorphTargetTexture:!1,textureNorm16:!!this._gl.getExtension("EXT_texture_norm16")},this._caps.supportFloatTexturesResolve=this._caps.colorBufferFloat,this._caps.rg11b10ufColorRenderable=this._caps.colorBufferFloat,this._glVersion=this._gl.getParameter(this._gl.VERSION);const e=this._gl.getExtension("WEBGL_debug_renderer_info");if(null!=e&&(this._glRenderer=this._gl.getParameter(e.UNMASKED_RENDERER_WEBGL),this._glVendor=this._gl.getParameter(e.UNMASKED_VENDOR_WEBGL)),this._glVendor||(this._glVendor=this._gl.getParameter(this._gl.VENDOR)||"Unknown vendor"),this._glRenderer||(this._glRenderer=this._gl.getParameter(this._gl.RENDERER)||"Unknown renderer"),36193!==this._gl.HALF_FLOAT_OES&&(this._gl.HALF_FLOAT_OES=36193),34842!==this._gl.RGBA16F&&(this._gl.RGBA16F=34842),34836!==this._gl.RGBA32F&&(this._gl.RGBA32F=34836),35056!==this._gl.DEPTH24_STENCIL8&&(this._gl.DEPTH24_STENCIL8=35056),this._caps.timerQuery&&(1===this._webGLVersion&&(this._gl.getQuery=this._caps.timerQuery.getQueryEXT.bind(this._caps.timerQuery)),this._caps.canUseTimestampForTimerQuery=(this._gl.getQuery(this._caps.timerQuery.TIMESTAMP_EXT,this._caps.timerQuery.QUERY_COUNTER_BITS_EXT)??0)>0),this._caps.maxAnisotropy=this._caps.textureAnisotropicFilterExtension?this._gl.getParameter(this._caps.textureAnisotropicFilterExtension.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0,this._caps.textureFloatLinearFiltering=!(!this._caps.textureFloat||!this._gl.getExtension("OES_texture_float_linear")),this._caps.textureFloatRender=!(!this._caps.textureFloat||!this._canRenderToFloatFramebuffer()),this._caps.textureHalfFloatLinearFiltering=!!(this._webGLVersion>1||this._caps.textureHalfFloat&&this._gl.getExtension("OES_texture_half_float_linear")),this._caps.textureNorm16&&(this._gl.R16_EXT=33322,this._gl.RG16_EXT=33324,this._gl.RGB16_EXT=32852,this._gl.RGBA16_EXT=32859,this._gl.R16_SNORM_EXT=36760,this._gl.RG16_SNORM_EXT=36761,this._gl.RGB16_SNORM_EXT=36762,this._gl.RGBA16_SNORM_EXT=36763),this._caps.astc&&(this._gl.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR=this._caps.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR),this._caps.bptc&&(this._gl.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT=this._caps.bptc.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT),this._caps.s3tc_srgb&&(this._gl.COMPRESSED_SRGB_S3TC_DXT1_EXT=this._caps.s3tc_srgb.COMPRESSED_SRGB_S3TC_DXT1_EXT,this._gl.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT=this._caps.s3tc_srgb.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,this._gl.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT=this._caps.s3tc_srgb.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT),this._caps.etc2&&(this._gl.COMPRESSED_SRGB8_ETC2=this._caps.etc2.COMPRESSED_SRGB8_ETC2,this._gl.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC=this._caps.etc2.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC),this._webGLVersion>1&&5131!==this._gl.HALF_FLOAT_OES&&(this._gl.HALF_FLOAT_OES=5131),this._caps.textureHalfFloatRender=this._caps.textureHalfFloat&&this._canRenderToHalfFloatFramebuffer(),this._webGLVersion>1)this._caps.drawBuffersExtension=!0,this._caps.maxMSAASamples=null!==this._maxMSAASamplesOverride?this._maxMSAASamplesOverride:this._gl.getParameter(this._gl.MAX_SAMPLES),this._caps.maxDrawBuffers=this._gl.getParameter(this._gl.MAX_DRAW_BUFFERS);else{const e=this._gl.getExtension("WEBGL_draw_buffers");if(null!==e){this._caps.drawBuffersExtension=!0,this._gl.drawBuffers=e.drawBuffersWEBGL.bind(e),this._caps.maxDrawBuffers=this._gl.getParameter(e.MAX_DRAW_BUFFERS_WEBGL),this._gl.DRAW_FRAMEBUFFER=this._gl.FRAMEBUFFER;for(let t=0;t<16;t++)this._gl["COLOR_ATTACHMENT"+t+"_WEBGL"]=e["COLOR_ATTACHMENT"+t+"_WEBGL"]}}if(this._webGLVersion>1)this._caps.depthTextureExtension=!0;else{const e=this._gl.getExtension("WEBGL_depth_texture");null!=e&&(this._caps.depthTextureExtension=!0,this._gl.UNSIGNED_INT_24_8=e.UNSIGNED_INT_24_8_WEBGL)}if(this.disableVertexArrayObjects)this._caps.vertexArrayObject=!1;else if(this._webGLVersion>1)this._caps.vertexArrayObject=!0;else{const e=this._gl.getExtension("OES_vertex_array_object");null!=e&&(this._caps.vertexArrayObject=!0,this._gl.createVertexArray=e.createVertexArrayOES.bind(e),this._gl.bindVertexArray=e.bindVertexArrayOES.bind(e),this._gl.deleteVertexArray=e.deleteVertexArrayOES.bind(e))}if(this._webGLVersion>1)this._caps.instancedArrays=!0;else{const e=this._gl.getExtension("ANGLE_instanced_arrays");null!=e?(this._caps.instancedArrays=!0,this._gl.drawArraysInstanced=e.drawArraysInstancedANGLE.bind(e),this._gl.drawElementsInstanced=e.drawElementsInstancedANGLE.bind(e),this._gl.vertexAttribDivisor=e.vertexAttribDivisorANGLE.bind(e)):this._caps.instancedArrays=!1}if(this._gl.getShaderPrecisionFormat){const e=this._gl.getShaderPrecisionFormat(this._gl.VERTEX_SHADER,this._gl.HIGH_FLOAT),t=this._gl.getShaderPrecisionFormat(this._gl.FRAGMENT_SHADER,this._gl.HIGH_FLOAT);e&&t&&(this._caps.highPrecisionShaderSupported=0!==e.precision&&0!==t.precision)}if(this._webGLVersion>1)this._caps.blendMinMax=!0;else{const e=this._gl.getExtension("EXT_blend_minmax");null!=e&&(this._caps.blendMinMax=!0,this._gl.MAX=e.MAX_EXT,this._gl.MIN=e.MIN_EXT)}if(!this._caps.supportSRGBBuffers){if(this._webGLVersion>1)this._caps.supportSRGBBuffers=!0,this._glSRGBExtensionValues={SRGB:WebGL2RenderingContext.SRGB,SRGB8:WebGL2RenderingContext.SRGB8,SRGB8_ALPHA8:WebGL2RenderingContext.SRGB8_ALPHA8};else{const e=this._gl.getExtension("EXT_sRGB");null!=e&&(this._caps.supportSRGBBuffers=!0,this._glSRGBExtensionValues={SRGB:e.SRGB_EXT,SRGB8:e.SRGB_ALPHA_EXT,SRGB8_ALPHA8:e.SRGB_ALPHA_EXT})}if(this._creationOptions){const e=this._creationOptions.forceSRGBBufferSupportState;void 0!==e&&(this._caps.supportSRGBBuffers=this._caps.supportSRGBBuffers&&e)}}this._depthCullingState.depthTest=!0,this._depthCullingState.depthFunc=this._gl.LEQUAL,this._depthCullingState.depthMask=!0,this._maxSimultaneousTextures=this._caps.maxCombinedTexturesImageUnits;for(let e=0;e<this._maxSimultaneousTextures;e++)this._nextFreeTextureSlots.push(e);"Mali-G72"===this._glRenderer&&(this._caps.disableMorphTargetTexture=!0)}_initFeatures(){this._features={forceBitmapOverHTMLImageElement:"undefined"==typeof HTMLImageElement,supportRenderAndCopyToLodForFloatTextures:1!==this._webGLVersion,supportDepthStencilTexture:1!==this._webGLVersion,supportShadowSamplers:1!==this._webGLVersion,uniformBufferHardCheckMatrix:!1,allowTexturePrefiltering:1!==this._webGLVersion,trackUbosInFrame:!1,checkUbosContentBeforeUpload:!1,supportCSM:1!==this._webGLVersion,basisNeedsPOT:1===this._webGLVersion,support3DTextures:1!==this._webGLVersion,needTypeSuffixInShaderConstants:1!==this._webGLVersion,supportMSAA:1!==this._webGLVersion,supportSSAO2:1!==this._webGLVersion,supportIBLShadows:1!==this._webGLVersion,supportExtendedTextureFormats:1!==this._webGLVersion,supportSwitchCaseInShader:1!==this._webGLVersion,supportSyncTextureRead:!0,needsInvertingBitmap:!0,useUBOBindingCache:!0,needShaderCodeInlining:!1,needToAlwaysBindUniformBuffers:!1,supportRenderPasses:!1,supportSpriteInstancing:!0,forceVertexBufferStrideAndOffsetMultiple4Bytes:!1,_checkNonFloatVertexBuffersDontRecreatePipelineContext:!1,_collectUbosUpdatedInFrame:!1}}get webGLVersion(){return this._webGLVersion}getClassName(){return"ThinEngine"}_prepareWorkingCanvas(){if(this._workingCanvas)return;this._workingCanvas=this.createCanvas(1,1);const e=this._workingCanvas.getContext("2d");e&&(this._workingContext=e)}getInfo(){return this.getGlInfo()}getGlInfo(){return{vendor:this._glVendor,renderer:this._glRenderer,version:this._glVersion}}extractDriverInfo(){const e=this.getGlInfo();return e&&e.renderer?e.renderer:""}getRenderWidth(e=!1){return!e&&this._currentRenderTarget?this._currentRenderTarget.width:this._framebufferDimensionsObject?this._framebufferDimensionsObject.framebufferWidth:this._gl.drawingBufferWidth}getRenderHeight(e=!1){return!e&&this._currentRenderTarget?this._currentRenderTarget.height:this._framebufferDimensionsObject?this._framebufferDimensionsObject.framebufferHeight:this._gl.drawingBufferHeight}clear(e,t,r,s=!1){const i=this.stencilStateComposer.useStencilGlobalOnly;this.stencilStateComposer.useStencilGlobalOnly=!0,this.applyStates(),this.stencilStateComposer.useStencilGlobalOnly=i;let _=0;if(t&&e){let t=!0;if(this._currentRenderTarget){const r=this._currentRenderTarget.texture?.format;if(r===a.TEXTUREFORMAT_RED_INTEGER||r===a.TEXTUREFORMAT_RG_INTEGER||r===a.TEXTUREFORMAT_RGB_INTEGER||r===a.TEXTUREFORMAT_RGBA_INTEGER){const r=this._currentRenderTarget.texture?.type;r===a.TEXTURETYPE_UNSIGNED_INTEGER||r===a.TEXTURETYPE_UNSIGNED_SHORT?(N._TempClearColorUint32[0]=255*e.r,N._TempClearColorUint32[1]=255*e.g,N._TempClearColorUint32[2]=255*e.b,N._TempClearColorUint32[3]=255*e.a,this._gl.clearBufferuiv(this._gl.COLOR,0,N._TempClearColorUint32),t=!1):(N._TempClearColorInt32[0]=255*e.r,N._TempClearColorInt32[1]=255*e.g,N._TempClearColorInt32[2]=255*e.b,N._TempClearColorInt32[3]=255*e.a,this._gl.clearBufferiv(this._gl.COLOR,0,N._TempClearColorInt32),t=!1)}}t&&(this._gl.clearColor(e.r,e.g,e.b,void 0!==e.a?e.a:1),_|=this._gl.COLOR_BUFFER_BIT)}r&&(this.useReverseDepthBuffer?(this._depthCullingState.depthFunc=this._gl.GEQUAL,this._gl.clearDepth(0)):this._gl.clearDepth(1),_|=this._gl.DEPTH_BUFFER_BIT),s&&(this._gl.clearStencil(0),_|=this._gl.STENCIL_BUFFER_BIT),this._gl.clear(_)}_viewport(e,t,r,s){e===this._viewportCached.x&&t===this._viewportCached.y&&r===this._viewportCached.z&&s===this._viewportCached.w||(this._viewportCached.x=e,this._viewportCached.y=t,this._viewportCached.z=r,this._viewportCached.w=s,this._gl.viewport(e,t,r,s))}endFrame(){super.endFrame(),this._badOS&&this.flushFramebuffer()}get performanceMonitor(){throw new Error("Not Supported by ThinEngine")}bindFramebuffer(e,t=0,r,s,i,n=0,a=0){const l=e;this._currentRenderTarget&&this.unBindFramebuffer(this._currentRenderTarget),this._currentRenderTarget=e,this._bindUnboundFramebuffer(l._framebuffer);const h=this._gl;e.isMulti||(e.is2DArray||e.is3D?(h.framebufferTextureLayer(h.FRAMEBUFFER,h.COLOR_ATTACHMENT0,e.texture._hardwareTexture?.underlyingResource,n,a),l._currentLOD=n):e.isCube?h.framebufferTexture2D(h.FRAMEBUFFER,h.COLOR_ATTACHMENT0,h.TEXTURE_CUBE_MAP_POSITIVE_X+t,e.texture._hardwareTexture?.underlyingResource,n):l._currentLOD!==n&&(h.framebufferTexture2D(h.FRAMEBUFFER,h.COLOR_ATTACHMENT0,h.TEXTURE_2D,e.texture._hardwareTexture?.underlyingResource,n),l._currentLOD=n));const E=e._depthStencilTexture;if(E){e.is3D&&(e.texture.width===E.width&&e.texture.height===E.height&&e.texture.depth===E.depth||_.Warn("Depth/Stencil attachment for 3D target must have same dimensions as color attachment"));const r=e._depthStencilTextureWithStencil?h.DEPTH_STENCIL_ATTACHMENT:h.DEPTH_ATTACHMENT;e.is2DArray||e.is3D?h.framebufferTextureLayer(h.FRAMEBUFFER,r,E._hardwareTexture?.underlyingResource,n,a):e.isCube?h.framebufferTexture2D(h.FRAMEBUFFER,r,h.TEXTURE_CUBE_MAP_POSITIVE_X+t,E._hardwareTexture?.underlyingResource,n):h.framebufferTexture2D(h.FRAMEBUFFER,r,h.TEXTURE_2D,E._hardwareTexture?.underlyingResource,n)}l._MSAAFramebuffer&&this._bindUnboundFramebuffer(l._MSAAFramebuffer),this._cachedViewport&&!i?this.setViewport(this._cachedViewport,r,s):(r||(r=e.width,n&&(r/=Math.pow(2,n))),s||(s=e.height,n&&(s/=Math.pow(2,n))),this._viewport(0,0,r,s)),this.wipeCaches()}setState(e,t=0,r,s=!1,i,_,n=0){(this._depthCullingState.cull!==e||r)&&(this._depthCullingState.cull=e);const a=this.cullBackFaces??i??1?this._gl.BACK:this._gl.FRONT;(this._depthCullingState.cullFace!==a||r)&&(this._depthCullingState.cullFace=a),this.setZOffset(t),this.setZOffsetUnits(n);const l=s?this._gl.CW:this._gl.CCW;(this._depthCullingState.frontFace!==l||r)&&(this._depthCullingState.frontFace=l),this._stencilStateComposer.stencilMaterial=_}_bindUnboundFramebuffer(e){this._currentFramebuffer!==e&&(this._gl.bindFramebuffer(this._gl.FRAMEBUFFER,e),this._currentFramebuffer=e)}_currentFrameBufferIsDefaultFrameBuffer(){return null===this._currentFramebuffer}generateMipmaps(e){const t=this._getTextureTarget(e);this._bindTextureDirectly(t,e,!0),this._gl.generateMipmap(t),this._bindTextureDirectly(t,null)}unBindFramebuffer(e,t=!1,r){const s=e;this._currentRenderTarget=null,s.disableAutomaticMSAAResolve||(e.isMulti?this.resolveMultiFramebuffer(e):this.resolveFramebuffer(e)),t||(e.isMulti?this.generateMipMapsMultiFramebuffer(e):this.generateMipMapsFramebuffer(e)),r&&(s._MSAAFramebuffer&&this._bindUnboundFramebuffer(s._framebuffer),r()),this._bindUnboundFramebuffer(null)}generateMipMapsFramebuffer(e){e.isMulti||!e.texture?.generateMipMaps||e.isCube||this.generateMipmaps(e.texture)}resolveFramebuffer(e){const t=e,r=this._gl;if(!t._MSAAFramebuffer||t.isMulti)return;let s=t.resolveMSAAColors?r.COLOR_BUFFER_BIT:0;s|=t._generateDepthBuffer&&t.resolveMSAADepth?r.DEPTH_BUFFER_BIT:0,s|=t._generateStencilBuffer&&t.resolveMSAAStencil?r.STENCIL_BUFFER_BIT:0,r.bindFramebuffer(r.READ_FRAMEBUFFER,t._MSAAFramebuffer),r.bindFramebuffer(r.DRAW_FRAMEBUFFER,t._framebuffer),r.blitFramebuffer(0,0,e.width,e.height,0,0,e.width,e.height,s,r.NEAREST)}flushFramebuffer(){this._gl.flush()}restoreDefaultFramebuffer(){this._currentRenderTarget?this.unBindFramebuffer(this._currentRenderTarget):this._bindUnboundFramebuffer(null),this._cachedViewport&&this.setViewport(this._cachedViewport),this.wipeCaches()}_resetVertexBufferBinding(){this.bindArrayBuffer(null),this._cachedVertexBuffers=null}createVertexBuffer(e,t,r){return this._createVertexBuffer(e,this._gl.STATIC_DRAW)}_createVertexBuffer(e,t){const r=this._gl.createBuffer();if(!r)throw new Error("Unable to create vertex buffer");const s=new U(r);return this.bindArrayBuffer(s),"number"!=typeof e?e instanceof Array?(this._gl.bufferData(this._gl.ARRAY_BUFFER,new Float32Array(e),t),s.capacity=4*e.length):(this._gl.bufferData(this._gl.ARRAY_BUFFER,e,t),s.capacity=e.byteLength):(this._gl.bufferData(this._gl.ARRAY_BUFFER,new Uint8Array(e),t),s.capacity=e),this._resetVertexBufferBinding(),s.references=1,s}createDynamicVertexBuffer(e,t){return this._createVertexBuffer(e,this._gl.DYNAMIC_DRAW)}_resetIndexBufferBinding(){this.bindIndexBuffer(null),this._cachedIndexBuffer=null}createIndexBuffer(e,t,r){const s=this._gl.createBuffer(),i=new U(s);if(!s)throw new Error("Unable to create index buffer");this.bindIndexBuffer(i);const _=this._normalizeIndexData(e);return this._gl.bufferData(this._gl.ELEMENT_ARRAY_BUFFER,_,t?this._gl.DYNAMIC_DRAW:this._gl.STATIC_DRAW),this._resetIndexBufferBinding(),i.references=1,i.is32Bits=4===_.BYTES_PER_ELEMENT,i}_normalizeIndexData(e){if(2===e.BYTES_PER_ELEMENT)return e;if(this._caps.uintIndices){if(e instanceof Uint32Array)return e;for(let t=0;t<e.length;t++)if(e[t]>=65535)return new Uint32Array(e);return new Uint16Array(e)}return new Uint16Array(e)}bindArrayBuffer(e){this._vaoRecordInProgress||this._unbindVertexArrayObject(),this._bindBuffer(e,this._gl.ARRAY_BUFFER)}bindUniformBlock(e,t,r){const s=e.program,i=this._gl.getUniformBlockIndex(s,t);this._gl.uniformBlockBinding(s,i,r)}bindIndexBuffer(e){this._vaoRecordInProgress||this._unbindVertexArrayObject(),this._bindBuffer(e,this._gl.ELEMENT_ARRAY_BUFFER)}_bindBuffer(e,t){(this._vaoRecordInProgress||this._currentBoundBuffer[t]!==e)&&(this._gl.bindBuffer(t,e?e.underlyingResource:null),this._currentBoundBuffer[t]=e)}updateArrayBuffer(e){this._gl.bufferSubData(this._gl.ARRAY_BUFFER,0,e)}_vertexAttribPointer(e,t,r,s,i,_,n){const a=this._currentBufferPointers[t];if(!a)return;let l=!1;a.active?(a.buffer!==e&&(a.buffer=e,l=!0),a.size!==r&&(a.size=r,l=!0),a.type!==s&&(a.type=s,l=!0),a.normalized!==i&&(a.normalized=i,l=!0),a.stride!==_&&(a.stride=_,l=!0),a.offset!==n&&(a.offset=n,l=!0)):(l=!0,a.active=!0,a.index=t,a.size=r,a.type=s,a.normalized=i,a.stride=_,a.offset=n,a.buffer=e),(l||this._vaoRecordInProgress)&&(this.bindArrayBuffer(e),s===this._gl.UNSIGNED_INT||s===this._gl.INT?this._gl.vertexAttribIPointer(t,r,s,_,n):this._gl.vertexAttribPointer(t,r,s,i,_,n))}_bindIndexBufferWithCache(e){null!=e&&this._cachedIndexBuffer!==e&&(this._cachedIndexBuffer=e,this.bindIndexBuffer(e),this._uintIndicesCurrentlySet=e.is32Bits)}_bindVertexBuffersAttributes(e,t,r){const s=t.getAttributesNames();this._vaoRecordInProgress||this._unbindVertexArrayObject(),this.unbindAllAttributes();for(let i=0;i<s.length;i++){const _=t.getAttributeLocation(i);if(_>=0){const t=s[i];let n=null;if(r&&(n=r[t]),n||(n=e[t]),!n)continue;this._gl.enableVertexAttribArray(_),this._vaoRecordInProgress||(this._vertexAttribArraysEnabled[_]=!0);const a=n.getBuffer();a&&(this._vertexAttribPointer(a,_,n.getSize(),n.type,n.normalized,n.byteStride,n.byteOffset),n.getIsInstanced()&&(this._gl.vertexAttribDivisor(_,n.getInstanceDivisor()),this._vaoRecordInProgress||(this._currentInstanceLocations.push(_),this._currentInstanceBuffers.push(a))))}}}recordVertexArrayObject(e,t,r,s){const i=this._gl.createVertexArray();if(!i)throw new Error("Unable to create VAO");return this._vaoRecordInProgress=!0,this._gl.bindVertexArray(i),this._mustWipeVertexAttributes=!0,this._bindVertexBuffersAttributes(e,r,s),this.bindIndexBuffer(t),this._vaoRecordInProgress=!1,this._gl.bindVertexArray(null),i}bindVertexArrayObject(e,t){this._cachedVertexArrayObject!==e&&(this._cachedVertexArrayObject=e,this._gl.bindVertexArray(e),this._cachedVertexBuffers=null,this._cachedIndexBuffer=null,this._uintIndicesCurrentlySet=null!=t&&t.is32Bits,this._mustWipeVertexAttributes=!0)}bindBuffersDirectly(e,t,r,s,i){if(this._cachedVertexBuffers!==e||this._cachedEffectForVertexBuffers!==i){this._cachedVertexBuffers=e,this._cachedEffectForVertexBuffers=i;const t=i.getAttributesCount();this._unbindVertexArrayObject(),this.unbindAllAttributes();let _=0;for(let n=0;n<t;n++)if(n<r.length){const t=i.getAttributeLocation(n);t>=0&&(this._gl.enableVertexAttribArray(t),this._vertexAttribArraysEnabled[t]=!0,this._vertexAttribPointer(e,t,r[n],this._gl.FLOAT,!1,s,_)),_+=4*r[n]}}this._bindIndexBufferWithCache(t)}_unbindVertexArrayObject(){this._cachedVertexArrayObject&&(this._cachedVertexArrayObject=null,this._gl.bindVertexArray(null))}bindBuffers(e,t,r,s){this._cachedVertexBuffers===e&&this._cachedEffectForVertexBuffers===r||(this._cachedVertexBuffers=e,this._cachedEffectForVertexBuffers=r,this._bindVertexBuffersAttributes(e,r,s)),this._bindIndexBufferWithCache(t)}unbindInstanceAttributes(){let e;for(let t=0,r=this._currentInstanceLocations.length;t<r;t++){const r=this._currentInstanceBuffers[t];e!=r&&r.references&&(e=r,this.bindArrayBuffer(r));const s=this._currentInstanceLocations[t];this._gl.vertexAttribDivisor(s,0)}this._currentInstanceBuffers.length=0,this._currentInstanceLocations.length=0}releaseVertexArrayObject(e){this._gl.deleteVertexArray(e)}_releaseBuffer(e){return e.references--,0===e.references&&(this._deleteBuffer(e),!0)}_deleteBuffer(e){this._gl.deleteBuffer(e.underlyingResource)}updateAndBindInstancesBuffer(e,t,r){if(this.bindArrayBuffer(e),t&&this._gl.bufferSubData(this._gl.ARRAY_BUFFER,0,t),void 0!==r[0].index)this.bindInstancesBuffer(e,r,!0);else for(let t=0;t<4;t++){const s=r[t];this._vertexAttribArraysEnabled[s]||(this._gl.enableVertexAttribArray(s),this._vertexAttribArraysEnabled[s]=!0),this._vertexAttribPointer(e,s,4,this._gl.FLOAT,!1,64,16*t),this._gl.vertexAttribDivisor(s,1),this._currentInstanceLocations.push(s),this._currentInstanceBuffers.push(e)}}bindInstancesBuffer(e,t,r=!0){this.bindArrayBuffer(e);let s=0;if(r)for(let e=0;e<t.length;e++){s+=4*t[e].attributeSize}for(let r=0;r<t.length;r++){const i=t[r];void 0===i.index&&(i.index=this._currentEffect.getAttributeLocationByName(i.attributeName)),i.index<0||(this._vertexAttribArraysEnabled[i.index]||(this._gl.enableVertexAttribArray(i.index),this._vertexAttribArraysEnabled[i.index]=!0),this._vertexAttribPointer(e,i.index,i.attributeSize,i.attributeType||this._gl.FLOAT,i.normalized||!1,s,i.offset),this._gl.vertexAttribDivisor(i.index,void 0===i.divisor?1:i.divisor),this._currentInstanceLocations.push(i.index),this._currentInstanceBuffers.push(e))}}disableInstanceAttributeByName(e){if(!this._currentEffect)return;const t=this._currentEffect.getAttributeLocationByName(e);this.disableInstanceAttribute(t)}disableInstanceAttribute(e){let t,r=!1;for(;-1!==(t=this._currentInstanceLocations.indexOf(e));)this._currentInstanceLocations.splice(t,1),this._currentInstanceBuffers.splice(t,1),r=!0,t=this._currentInstanceLocations.indexOf(e);r&&(this._gl.vertexAttribDivisor(e,0),this.disableAttributeByIndex(e))}disableAttributeByIndex(e){this._gl.disableVertexAttribArray(e),this._vertexAttribArraysEnabled[e]=!1,this._currentBufferPointers[e].active=!1}draw(e,t,r,s){this.drawElementsType(e?a.MATERIAL_TriangleFillMode:a.MATERIAL_WireFrameFillMode,t,r,s)}drawPointClouds(e,t,r){this.drawArraysType(a.MATERIAL_PointFillMode,e,t,r)}drawUnIndexed(e,t,r,s){this.drawArraysType(e?a.MATERIAL_TriangleFillMode:a.MATERIAL_WireFrameFillMode,t,r,s)}drawElementsType(e,t,r,s){this.applyStates(),this._reportDrawCall();const i=this._drawMode(e),_=this._uintIndicesCurrentlySet?this._gl.UNSIGNED_INT:this._gl.UNSIGNED_SHORT,n=this._uintIndicesCurrentlySet?4:2;s?this._gl.drawElementsInstanced(i,r,_,t*n,s):this._gl.drawElements(i,r,_,t*n)}drawArraysType(e,t,r,s){this.applyStates(),this._reportDrawCall();const i=this._drawMode(e);s?this._gl.drawArraysInstanced(i,t,r,s):this._gl.drawArrays(i,t,r)}_drawMode(e){switch(e){case a.MATERIAL_TriangleFillMode:return this._gl.TRIANGLES;case a.MATERIAL_PointFillMode:return this._gl.POINTS;case a.MATERIAL_WireFrameFillMode:return this._gl.LINES;case a.MATERIAL_PointListDrawMode:return this._gl.POINTS;case a.MATERIAL_LineListDrawMode:return this._gl.LINES;case a.MATERIAL_LineLoopDrawMode:return this._gl.LINE_LOOP;case a.MATERIAL_LineStripDrawMode:return this._gl.LINE_STRIP;case a.MATERIAL_TriangleStripDrawMode:return this._gl.TRIANGLE_STRIP;case a.MATERIAL_TriangleFanDrawMode:return this._gl.TRIANGLE_FAN;default:return this._gl.TRIANGLES}}_releaseEffect(e){this._compiledEffects[e._key]&&delete this._compiledEffects[e._key];const t=e.getPipelineContext();t&&this._deletePipelineContext(t)}_deletePipelineContext(e){const t=e;t&&t.program&&(t.program.__SPECTOR_rebuildProgram=null,l(t),this._gl&&this._gl.deleteProgram(t.program))}_getGlobalDefines(e){return h(e,this.isNDCHalfZRange,this.useReverseDepthBuffer,this.useExactSrgbConversions)}createEffect(e,t,r,i,_,a,l,h,E,o=0,T){const u="string"==typeof e?e:e.vertexToken||e.vertexSource||e.vertexElement||e.vertex,R="string"==typeof e?e:e.fragmentToken||e.fragmentSource||e.fragmentElement||e.fragment,c=this._getGlobalDefines();let g=_??t.defines??"";c&&(g+=c);const f=u+"+"+R+"@"+g;if(this._compiledEffects[f]){const e=this._compiledEffects[f];return l&&e.isReady()&&l(e),e._refCount++,e}this._gl&&n(this._gl);const d=new s(e,t,r,i,this,_,a,l,((e,t)=>{h&&h(e,t),this.onEffectErrorObservable.notifyObservers({effect:e,errors:t})}),E,f,t.shaderLanguage??o,t.extraInitializationsAsync??T);return this._compiledEffects[f]=d,d}_getShaderSource(e){return this._gl.getShaderSource(e)}createRawShaderProgram(e,t,r,s,i=null){const _=n(this._gl);return _._contextWasLost=this._contextWasLost,_.validateShaderPrograms=this.validateShaderPrograms,E(e,t,r,s||this._gl,i)}createShaderProgram(e,t,r,s,i,_=null){const a=n(this._gl);return a._contextWasLost=this._contextWasLost,a.validateShaderPrograms=this.validateShaderPrograms,o(e,t,r,s,i||this._gl,_)}inlineShaderCode(e){return e}createPipelineContext(e){if(this._gl){n(this._gl).parallelShaderCompile=this._caps.parallelShaderCompile}const t=T(this._gl);return t.engine=this,t}createMaterialContext(){}createDrawContext(){}_finalizePipelineContext(e){return u(e,this._gl,this.validateShaderPrograms)}_preparePipelineContext(e,t,r,s,i,_,a,l,h,E,o){const T=n(this._gl);return T._contextWasLost=this._contextWasLost,T.validateShaderPrograms=this.validateShaderPrograms,T._createShaderProgramInjection=this._createShaderProgram.bind(this),T.createRawShaderProgramInjection=this.createRawShaderProgram.bind(this),T.createShaderProgramInjection=this.createShaderProgram.bind(this),T.loadFileInjection=this._loadFile.bind(this),R(e,t,r,s,i,_,a,l,h,E,o)}_createShaderProgram(e,t,r,s,i=null){return c(e,t,r,s,i)}_isRenderingStateCompiled(e){return!this._isDisposed&&g(e,this._gl,this.validateShaderPrograms)}_executeWhenRenderingStateIsCompiled(e,t){f(e,t)}getUniforms(e,t){const r=new Array,s=e;for(let e=0;e<t.length;e++)r.push(this._gl.getUniformLocation(s.program,t[e]));return r}getAttributes(e,t){const r=[],s=e;for(let e=0;e<t.length;e++)try{r.push(this._gl.getAttribLocation(s.program,t[e]))}catch(e){r.push(-1)}return r}enableEffect(e){(e=null!==e&&m(e)?e.effect:e)&&e!==this._currentEffect&&(this._stencilStateComposer.stencilMaterial=void 0,this.bindSamplers(e),this._currentEffect=e,e.onBind&&e.onBind(e),e._onBindObservable&&e._onBindObservable.notifyObservers(e))}setInt(e,t){return!!e&&(this._gl.uniform1i(e,t),!0)}setInt2(e,t,r){return!!e&&(this._gl.uniform2i(e,t,r),!0)}setInt3(e,t,r,s){return!!e&&(this._gl.uniform3i(e,t,r,s),!0)}setInt4(e,t,r,s,i){return!!e&&(this._gl.uniform4i(e,t,r,s,i),!0)}setIntArray(e,t){return!!e&&(this._gl.uniform1iv(e,t),!0)}setIntArray2(e,t){return!(!e||t.length%2!=0)&&(this._gl.uniform2iv(e,t),!0)}setIntArray3(e,t){return!(!e||t.length%3!=0)&&(this._gl.uniform3iv(e,t),!0)}setIntArray4(e,t){return!(!e||t.length%4!=0)&&(this._gl.uniform4iv(e,t),!0)}setUInt(e,t){return!!e&&(this._gl.uniform1ui(e,t),!0)}setUInt2(e,t,r){return!!e&&(this._gl.uniform2ui(e,t,r),!0)}setUInt3(e,t,r,s){return!!e&&(this._gl.uniform3ui(e,t,r,s),!0)}setUInt4(e,t,r,s,i){return!!e&&(this._gl.uniform4ui(e,t,r,s,i),!0)}setUIntArray(e,t){return!!e&&(this._gl.uniform1uiv(e,t),!0)}setUIntArray2(e,t){return!(!e||t.length%2!=0)&&(this._gl.uniform2uiv(e,t),!0)}setUIntArray3(e,t){return!(!e||t.length%3!=0)&&(this._gl.uniform3uiv(e,t),!0)}setUIntArray4(e,t){return!(!e||t.length%4!=0)&&(this._gl.uniform4uiv(e,t),!0)}setArray(e,t){return!!e&&(!(t.length<1)&&(this._gl.uniform1fv(e,t),!0))}setArray2(e,t){return!(!e||t.length%2!=0)&&(this._gl.uniform2fv(e,t),!0)}setArray3(e,t){return!(!e||t.length%3!=0)&&(this._gl.uniform3fv(e,t),!0)}setArray4(e,t){return!(!e||t.length%4!=0)&&(this._gl.uniform4fv(e,t),!0)}setMatrices(e,t){return!!e&&(this._gl.uniformMatrix4fv(e,!1,t),!0)}setMatrix3x3(e,t){return!!e&&(this._gl.uniformMatrix3fv(e,!1,t),!0)}setMatrix2x2(e,t){return!!e&&(this._gl.uniformMatrix2fv(e,!1,t),!0)}setFloat(e,t){return!!e&&(this._gl.uniform1f(e,t),!0)}setFloat2(e,t,r){return!!e&&(this._gl.uniform2f(e,t,r),!0)}setFloat3(e,t,r,s){return!!e&&(this._gl.uniform3f(e,t,r,s),!0)}setFloat4(e,t,r,s,i){return!!e&&(this._gl.uniform4f(e,t,r,s,i),!0)}applyStates(){if(this._depthCullingState.apply(this._gl),this._stencilStateComposer.apply(this._gl),this._alphaState.apply(this._gl),this._colorWriteChanged){this._colorWriteChanged=!1;const e=this._colorWrite;this._gl.colorMask(e,e,e,e)}}wipeCaches(e){this.preventCacheWipeBetweenFrames&&!e||(this._currentEffect=null,this._viewportCached.x=0,this._viewportCached.y=0,this._viewportCached.z=0,this._viewportCached.w=0,this._unbindVertexArrayObject(),e&&(this._currentProgram=null,this.resetTextureCache(),this._stencilStateComposer.reset(),this._depthCullingState.reset(),this._depthCullingState.depthFunc=this._gl.LEQUAL,this._alphaState.reset(),this._alphaMode=a.ALPHA_ADD,this._alphaEquation=a.ALPHA_DISABLE,this._colorWrite=!0,this._colorWriteChanged=!0,this._unpackFlipYCached=null,this._gl.pixelStorei(this._gl.UNPACK_COLORSPACE_CONVERSION_WEBGL,this._gl.NONE),this._gl.pixelStorei(this._gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL,0),this._mustWipeVertexAttributes=!0,this.unbindAllAttributes()),this._resetVertexBufferBinding(),this._cachedIndexBuffer=null,this._cachedEffectForVertexBuffers=null,this.bindIndexBuffer(null))}_getSamplingParameters(e,t){const r=this._gl;let s=r.NEAREST,i=r.NEAREST;switch(e){case a.TEXTURE_LINEAR_LINEAR_MIPNEAREST:s=r.LINEAR,i=t?r.LINEAR_MIPMAP_NEAREST:r.LINEAR;break;case a.TEXTURE_LINEAR_LINEAR_MIPLINEAR:s=r.LINEAR,i=t?r.LINEAR_MIPMAP_LINEAR:r.LINEAR;break;case a.TEXTURE_NEAREST_NEAREST_MIPLINEAR:s=r.NEAREST,i=t?r.NEAREST_MIPMAP_LINEAR:r.NEAREST;break;case a.TEXTURE_NEAREST_NEAREST_MIPNEAREST:s=r.NEAREST,i=t?r.NEAREST_MIPMAP_NEAREST:r.NEAREST;break;case a.TEXTURE_NEAREST_LINEAR_MIPNEAREST:s=r.NEAREST,i=t?r.LINEAR_MIPMAP_NEAREST:r.LINEAR;break;case a.TEXTURE_NEAREST_LINEAR_MIPLINEAR:s=r.NEAREST,i=t?r.LINEAR_MIPMAP_LINEAR:r.LINEAR;break;case a.TEXTURE_NEAREST_LINEAR:s=r.NEAREST,i=r.LINEAR;break;case a.TEXTURE_NEAREST_NEAREST:s=r.NEAREST,i=r.NEAREST;break;case a.TEXTURE_LINEAR_NEAREST_MIPNEAREST:s=r.LINEAR,i=t?r.NEAREST_MIPMAP_NEAREST:r.NEAREST;break;case a.TEXTURE_LINEAR_NEAREST_MIPLINEAR:s=r.LINEAR,i=t?r.NEAREST_MIPMAP_LINEAR:r.NEAREST;break;case a.TEXTURE_LINEAR_LINEAR:s=r.LINEAR,i=r.LINEAR;break;case a.TEXTURE_LINEAR_NEAREST:s=r.LINEAR,i=r.NEAREST}return{min:i,mag:s}}_createTexture(){const e=this._gl.createTexture();if(!e)throw new Error("Unable to create texture");return e}_createHardwareTexture(){return new F(this._createTexture(),this._gl)}_createInternalTexture(e,t,r=!0,s=0){let i,n=!1,l=!1,h=a.TEXTURETYPE_UNSIGNED_BYTE,E=a.TEXTURE_TRILINEAR_SAMPLINGMODE,o=a.TEXTUREFORMAT_RGBA,T=!1,u=1,R=!1,c=0;void 0!==t&&"object"==typeof t?(n=!!t.generateMipMaps,l=!!t.createMipMaps,h=void 0===t.type?a.TEXTURETYPE_UNSIGNED_BYTE:t.type,E=void 0===t.samplingMode?a.TEXTURE_TRILINEAR_SAMPLINGMODE:t.samplingMode,o=void 0===t.format?a.TEXTUREFORMAT_RGBA:t.format,T=void 0!==t.useSRGBBuffer&&t.useSRGBBuffer,u=t.samples??1,i=t.label,R=!!t.createMSAATexture,c=t.comparisonFunction||0):n=!!t,T&&=this._caps.supportSRGBBuffers&&(this.webGLVersion>1||this.isWebGPU),(h!==a.TEXTURETYPE_FLOAT||this._caps.textureFloatLinearFiltering)&&(h!==a.TEXTURETYPE_HALF_FLOAT||this._caps.textureHalfFloatLinearFiltering)||(E=a.TEXTURE_NEAREST_SAMPLINGMODE),h!==a.TEXTURETYPE_FLOAT||this._caps.textureFloat||(h=a.TEXTURETYPE_UNSIGNED_BYTE,_.Warn("Float textures are not supported. Type forced to TEXTURETYPE_UNSIGNED_BYTE"));const g=A(o),f=p(o),x=this._gl,S=new d(this,s),b=e.width||e,m=e.height||e,I=e.depth||0,M=e.layers||0,B=this._getSamplingParameters(E,(n||l)&&!g),U=0!==M?x.TEXTURE_2D_ARRAY:0!==I?x.TEXTURE_3D:x.TEXTURE_2D,F=g?this._getInternalFormatFromDepthTextureFormat(o,!0,f):this._getRGBABufferInternalSizedFormat(h,o,T),G=g?f?x.DEPTH_STENCIL:x.DEPTH_COMPONENT:this._getInternalFormat(o),N=g?this._getWebGLTextureTypeFromDepthTextureFormat(o):this._getWebGLTextureType(h);if(this._bindTextureDirectly(U,S),0!==M?(S.is2DArray=!0,x.texImage3D(U,0,F,b,m,M,0,G,N,null)):0!==I?(S.is3D=!0,x.texImage3D(U,0,F,b,m,I,0,G,N,null)):x.texImage2D(U,0,F,b,m,0,G,N,null),x.texParameteri(U,x.TEXTURE_MAG_FILTER,B.mag),x.texParameteri(U,x.TEXTURE_MIN_FILTER,B.min),x.texParameteri(U,x.TEXTURE_WRAP_S,x.CLAMP_TO_EDGE),x.texParameteri(U,x.TEXTURE_WRAP_T,x.CLAMP_TO_EDGE),g&&this.webGLVersion>1&&(0===c?(x.texParameteri(U,x.TEXTURE_COMPARE_FUNC,a.LEQUAL),x.texParameteri(U,x.TEXTURE_COMPARE_MODE,x.NONE)):(x.texParameteri(U,x.TEXTURE_COMPARE_FUNC,c),x.texParameteri(U,x.TEXTURE_COMPARE_MODE,x.COMPARE_REF_TO_TEXTURE))),(n||l)&&this._gl.generateMipmap(U),this._bindTextureDirectly(U,null),S._useSRGBBuffer=T,S.baseWidth=b,S.baseHeight=m,S.width=b,S.height=m,S.depth=M||I,S.isReady=!0,S.samples=u,S.generateMipMaps=n,S.samplingMode=E,S.type=h,S.format=o,S.label=i,S.comparisonFunction=c,this._internalTexturesCache.push(S),R){let e=null;if(e=A(S.format)?this._setupFramebufferDepthAttachments(p(S.format),S.format!==a.TEXTUREFORMAT_STENCIL8,S.width,S.height,u,S.format,!0):this._createRenderBuffer(S.width,S.height,u,-1,this._getRGBABufferInternalSizedFormat(S.type,S.format,S._useSRGBBuffer),-1),!e)throw new Error("Unable to create render buffer");S._autoMSAAManagement=!0;let t=S._hardwareTexture;t||(t=S._hardwareTexture=this._createHardwareTexture()),t.addMSAARenderBuffer(e)}return S}_getUseSRGBBuffer(e,t){return e&&this._caps.supportSRGBBuffers&&(this.webGLVersion>1||t)}createTexture(e,t,r,s,i=a.TEXTURE_TRILINEAR_SAMPLINGMODE,_=null,n=null,l=null,h=null,E=null,o=null,T,u,R,c){return this._createTextureBase(e,t,r,s,i,_,n,((...e)=>this._prepareWebGLTexture(...e,E)),((e,t,r,i,_,n)=>{const a=this._gl,l=r.width===e&&r.height===t;_._creationFlags=R??0;const h=this._getTexImageParametersForCreateTexture(_.format,_._useSRGBBuffer);if(l)return a.texImage2D(a.TEXTURE_2D,0,h.internalFormat,h.format,h.type,r),!1;const E=this._caps.maxTextureSize;if(r.width>E||r.height>E||!this._supportsHardwareTextureRescaling)return this._prepareWorkingCanvas(),!(!this._workingCanvas||!this._workingContext)&&(this._workingCanvas.width=e,this._workingCanvas.height=t,this._workingContext.drawImage(r,0,0,r.width,r.height,0,0,e,t),a.texImage2D(a.TEXTURE_2D,0,h.internalFormat,h.format,h.type,this._workingCanvas),_.width=e,_.height=t,!1);{const e=new d(this,2);this._bindTextureDirectly(a.TEXTURE_2D,e,!0),a.texImage2D(a.TEXTURE_2D,0,h.internalFormat,h.format,h.type,r),this._rescaleTexture(e,_,s,h.format,(()=>{this._releaseTexture(e),this._bindTextureDirectly(a.TEXTURE_2D,_,!0),n()}))}return!0}),l,h,E,o,T,u,c)}_getTexImageParametersForCreateTexture(e,t){let r,s;return 1===this.webGLVersion?(r=this._getInternalFormat(e,t),s=r):(r=this._getInternalFormat(e,!1),s=this._getRGBABufferInternalSizedFormat(a.TEXTURETYPE_UNSIGNED_BYTE,e,t)),{internalFormat:s,format:r,type:this._gl.UNSIGNED_BYTE}}_rescaleTexture(e,t,r,s,i){}_unpackFlipY(e){this._unpackFlipYCached!==e&&(this._gl.pixelStorei(this._gl.UNPACK_FLIP_Y_WEBGL,e?1:0),this.enableUnpackFlipYCached&&(this._unpackFlipYCached=e))}_getUnpackAlignement(){return this._gl.getParameter(this._gl.UNPACK_ALIGNMENT)}_getTextureTarget(e){return e.isCube?this._gl.TEXTURE_CUBE_MAP:e.is3D?this._gl.TEXTURE_3D:e.is2DArray||e.isMultiview?this._gl.TEXTURE_2D_ARRAY:this._gl.TEXTURE_2D}updateTextureSamplingMode(e,t,r=!1){const s=this._getTextureTarget(t),i=this._getSamplingParameters(e,t.useMipMaps||r);this._setTextureParameterInteger(s,this._gl.TEXTURE_MAG_FILTER,i.mag,t),this._setTextureParameterInteger(s,this._gl.TEXTURE_MIN_FILTER,i.min),r&&(t.generateMipMaps=!0,this._gl.generateMipmap(s)),this._bindTextureDirectly(s,null),t.samplingMode=e}updateTextureDimensions(e,t,r,s=1){}updateTextureWrappingMode(e,t,r=null,s=null){const i=this._getTextureTarget(e);null!==t&&(this._setTextureParameterInteger(i,this._gl.TEXTURE_WRAP_S,this._getTextureWrapMode(t),e),e._cachedWrapU=t),null!==r&&(this._setTextureParameterInteger(i,this._gl.TEXTURE_WRAP_T,this._getTextureWrapMode(r),e),e._cachedWrapV=r),(e.is2DArray||e.is3D)&&null!==s&&(this._setTextureParameterInteger(i,this._gl.TEXTURE_WRAP_R,this._getTextureWrapMode(s),e),e._cachedWrapR=s),this._bindTextureDirectly(i,null)}_uploadCompressedDataToTextureDirectly(e,t,r,s,i,_=0,n=0){const l=this._gl;let h=l.TEXTURE_2D;if(e.isCube&&(h=l.TEXTURE_CUBE_MAP_POSITIVE_X+_),e._useSRGBBuffer)switch(t){case a.TEXTUREFORMAT_COMPRESSED_RGB8_ETC2:case a.TEXTUREFORMAT_COMPRESSED_RGB_ETC1_WEBGL:this._caps.etc2?t=l.COMPRESSED_SRGB8_ETC2:e._useSRGBBuffer=!1;break;case a.TEXTUREFORMAT_COMPRESSED_RGBA8_ETC2_EAC:this._caps.etc2?t=l.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:e._useSRGBBuffer=!1;break;case a.TEXTUREFORMAT_COMPRESSED_RGBA_BPTC_UNORM:t=l.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT;break;case a.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_4x4:t=l.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR;break;case a.TEXTUREFORMAT_COMPRESSED_RGB_S3TC_DXT1:this._caps.s3tc_srgb?t=l.COMPRESSED_SRGB_S3TC_DXT1_EXT:e._useSRGBBuffer=!1;break;case a.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT1:this._caps.s3tc_srgb?t=l.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT:e._useSRGBBuffer=!1;break;case a.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT5:this._caps.s3tc_srgb?t=l.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:e._useSRGBBuffer=!1;break;default:e._useSRGBBuffer=!1}this._gl.compressedTexImage2D(h,n,t,r,s,0,i)}_uploadDataToTextureDirectly(e,t,r=0,s=0,i,_=!1){const n=this._gl,a=this._getWebGLTextureType(e.type),l=this._getInternalFormat(e.format),h=void 0===i?this._getRGBABufferInternalSizedFormat(e.type,e.format,e._useSRGBBuffer):this._getInternalFormat(i,e._useSRGBBuffer);this._unpackFlipY(e.invertY);let E=n.TEXTURE_2D;e.isCube&&(E=n.TEXTURE_CUBE_MAP_POSITIVE_X+r);const o=Math.round(Math.log(e.width)*Math.LOG2E),T=Math.round(Math.log(e.height)*Math.LOG2E),u=_?e.width:Math.pow(2,Math.max(o-s,0)),R=_?e.height:Math.pow(2,Math.max(T-s,0));n.texImage2D(E,s,h,u,R,0,l,a,t)}updateTextureData(e,t,r,s,i,_,n=0,a=0,l=!1){const h=this._gl,E=this._getWebGLTextureType(e.type),o=this._getInternalFormat(e.format);this._unpackFlipY(e.invertY);let T=h.TEXTURE_2D,u=h.TEXTURE_2D;e.isCube&&(u=h.TEXTURE_CUBE_MAP_POSITIVE_X+n,T=h.TEXTURE_CUBE_MAP),this._bindTextureDirectly(T,e,!0),h.texSubImage2D(u,a,r,s,i,_,o,E,t),l&&this._gl.generateMipmap(u),this._bindTextureDirectly(T,null)}_uploadArrayBufferViewToTexture(e,t,r=0,s=0){const i=this._gl,_=e.isCube?i.TEXTURE_CUBE_MAP:i.TEXTURE_2D;this._bindTextureDirectly(_,e,!0),this._uploadDataToTextureDirectly(e,t,r,s),this._bindTextureDirectly(_,null,!0)}_prepareWebGLTextureContinuation(e,t,r,s,i){const _=this._gl;if(!_)return;const n=this._getSamplingParameters(i,!r);_.texParameteri(_.TEXTURE_2D,_.TEXTURE_MAG_FILTER,n.mag),_.texParameteri(_.TEXTURE_2D,_.TEXTURE_MIN_FILTER,n.min),r||s||_.generateMipmap(_.TEXTURE_2D),this._bindTextureDirectly(_.TEXTURE_2D,null),t&&t.removePendingData(e),e.onLoadedObservable.notifyObservers(e),e.onLoadedObservable.clear()}_prepareWebGLTexture(e,t,r,s,i,_,n,l,h,E){const o=this.getCaps().maxTextureSize,T=Math.min(o,this.needPOTTextures?x(s.width,o):s.width),u=Math.min(o,this.needPOTTextures?x(s.height,o):s.height),R=this._gl;R&&(e._hardwareTexture?(this._bindTextureDirectly(R.TEXTURE_2D,e,!0),this._unpackFlipY(void 0===i||!!i),e.baseWidth=s.width,e.baseHeight=s.height,e.width=T,e.height=u,e.isReady=!0,e.type=-1!==e.type?e.type:a.TEXTURETYPE_UNSIGNED_BYTE,e.format=-1!==e.format?e.format:E??(".jpg"!==t||e._useSRGBBuffer?a.TEXTUREFORMAT_RGBA:a.TEXTUREFORMAT_RGB),l(T,u,s,t,e,(()=>{this._prepareWebGLTextureContinuation(e,r,_,n,h)}))||this._prepareWebGLTextureContinuation(e,r,_,n,h)):r&&r.removePendingData(e))}_getInternalFormatFromDepthTextureFormat(e,t,r){const s=this._gl;if(!t)return s.STENCIL_INDEX8;let i=r?s.DEPTH_STENCIL:s.DEPTH_COMPONENT;return this.webGLVersion>1?e===a.TEXTUREFORMAT_DEPTH16?i=s.DEPTH_COMPONENT16:e===a.TEXTUREFORMAT_DEPTH24?i=s.DEPTH_COMPONENT24:e===a.TEXTUREFORMAT_DEPTH24UNORM_STENCIL8||e===a.TEXTUREFORMAT_DEPTH24_STENCIL8?i=r?s.DEPTH24_STENCIL8:s.DEPTH_COMPONENT24:e===a.TEXTUREFORMAT_DEPTH32_FLOAT?i=s.DEPTH_COMPONENT32F:e===a.TEXTUREFORMAT_DEPTH32FLOAT_STENCIL8&&(i=r?s.DEPTH32F_STENCIL8:s.DEPTH_COMPONENT32F):i=s.DEPTH_COMPONENT16,i}_getWebGLTextureTypeFromDepthTextureFormat(e){const t=this._gl;let r=t.UNSIGNED_INT;return e===a.TEXTUREFORMAT_DEPTH16?r=t.UNSIGNED_SHORT:e===a.TEXTUREFORMAT_DEPTH24UNORM_STENCIL8||e===a.TEXTUREFORMAT_DEPTH24_STENCIL8?r=t.UNSIGNED_INT_24_8:e===a.TEXTUREFORMAT_DEPTH32_FLOAT?r=t.FLOAT:e===a.TEXTUREFORMAT_DEPTH32FLOAT_STENCIL8?r=t.FLOAT_32_UNSIGNED_INT_24_8_REV:e===a.TEXTUREFORMAT_STENCIL8&&(r=t.UNSIGNED_BYTE),r}_setupFramebufferDepthAttachments(e,t,r,s,i=1,_,n=!1){const l=this._gl;_=_??(e?a.TEXTUREFORMAT_DEPTH24_STENCIL8:a.TEXTUREFORMAT_DEPTH32_FLOAT);const h=this._getInternalFormatFromDepthTextureFormat(_,t,e);return e&&t?this._createRenderBuffer(r,s,i,l.DEPTH_STENCIL,h,n?-1:l.DEPTH_STENCIL_ATTACHMENT):t?this._createRenderBuffer(r,s,i,h,h,n?-1:l.DEPTH_ATTACHMENT):e?this._createRenderBuffer(r,s,i,h,h,n?-1:l.STENCIL_ATTACHMENT):null}_createRenderBuffer(e,t,r,s,i,_,n=!0){const a=this._gl.createRenderbuffer();return this._updateRenderBuffer(a,e,t,r,s,i,_,n)}_updateRenderBuffer(e,t,r,s,i,_,n,a=!0){const l=this._gl;return l.bindRenderbuffer(l.RENDERBUFFER,e),s>1&&l.renderbufferStorageMultisample?l.renderbufferStorageMultisample(l.RENDERBUFFER,s,_,t,r):l.renderbufferStorage(l.RENDERBUFFER,i,t,r),-1!==n&&l.framebufferRenderbuffer(l.FRAMEBUFFER,n,l.RENDERBUFFER,e),a&&l.bindRenderbuffer(l.RENDERBUFFER,null),e}_releaseTexture(e){this._deleteTexture(e._hardwareTexture),this.unbindAllTextures();const t=this._internalTexturesCache.indexOf(e);-1!==t&&this._internalTexturesCache.splice(t,1),e._lodTextureHigh&&e._lodTextureHigh.dispose(),e._lodTextureMid&&e._lodTextureMid.dispose(),e._lodTextureLow&&e._lodTextureLow.dispose(),e._irradianceTexture&&e._irradianceTexture.dispose()}_deleteTexture(e){e?.release()}_setProgram(e){this._currentProgram!==e&&(S(e,this._gl),this._currentProgram=e)}bindSamplers(e){const t=e.getPipelineContext();this._setProgram(t.program);const r=e.getSamplers();for(let t=0;t<r.length;t++){const s=e.getUniform(r[t]);s&&(this._boundUniforms[t]=s)}this._currentEffect=null}_activateCurrentTexture(){this._currentTextureChannel!==this._activeChannel&&(this._gl.activeTexture(this._gl.TEXTURE0+this._activeChannel),this._currentTextureChannel=this._activeChannel)}_bindTextureDirectly(e,t,r=!1,s=!1){let i=!1;const n=t&&t._associatedChannel>-1;r&&n&&(this._activeChannel=t._associatedChannel);if(this._boundTexturesCache[this._activeChannel]!==t||s){if(this._activateCurrentTexture(),t&&t.isMultiview)throw _.Error(["_bindTextureDirectly called with a multiview texture!",e,t]),"_bindTextureDirectly called with a multiview texture!";this._gl.bindTexture(e,t?._hardwareTexture?.underlyingResource??null),this._boundTexturesCache[this._activeChannel]=t,t&&(t._associatedChannel=this._activeChannel)}else r&&(i=!0,this._activateCurrentTexture());return n&&!r&&this._bindSamplerUniformToChannel(t._associatedChannel,this._activeChannel),i}_bindTexture(e,t,r){if(void 0===e)return;t&&(t._associatedChannel=e),this._activeChannel=e;const s=t?this._getTextureTarget(t):this._gl.TEXTURE_2D;this._bindTextureDirectly(s,t)}unbindAllTextures(){for(let e=0;e<this._maxSimultaneousTextures;e++)this._activeChannel=e,this._bindTextureDirectly(this._gl.TEXTURE_2D,null),this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,null),this.webGLVersion>1&&(this._bindTextureDirectly(this._gl.TEXTURE_3D,null),this._bindTextureDirectly(this._gl.TEXTURE_2D_ARRAY,null))}setTexture(e,t,r,s){void 0!==e&&(t&&(this._boundUniforms[e]=t),this._setTexture(e,r))}_bindSamplerUniformToChannel(e,t){const r=this._boundUniforms[e];r&&r._currentState!==t&&(this._gl.uniform1i(r,t),r._currentState=t)}_getTextureWrapMode(e){switch(e){case a.TEXTURE_WRAP_ADDRESSMODE:return this._gl.REPEAT;case a.TEXTURE_CLAMP_ADDRESSMODE:return this._gl.CLAMP_TO_EDGE;case a.TEXTURE_MIRROR_ADDRESSMODE:return this._gl.MIRRORED_REPEAT}return this._gl.REPEAT}_setTexture(e,t,r=!1,s=!1,i=""){if(!t)return null!=this._boundTexturesCache[e]&&(this._activeChannel=e,this._bindTextureDirectly(this._gl.TEXTURE_2D,null),this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,null),this.webGLVersion>1&&(this._bindTextureDirectly(this._gl.TEXTURE_3D,null),this._bindTextureDirectly(this._gl.TEXTURE_2D_ARRAY,null))),!1;if(t.video){this._activeChannel=e;const r=t.getInternalTexture();r&&(r._associatedChannel=e),t.update()}else if(t.delayLoadState===a.DELAYLOADSTATE_NOTLOADED)return t.delayLoad(),!1;let _;_=s?t.depthStencilTexture:t.isReady()?t.getInternalTexture():t.isCube?this.emptyCubeTexture:t.is3D?this.emptyTexture3D:t.is2DArray?this.emptyTexture2DArray:this.emptyTexture,!r&&_&&(_._associatedChannel=e);let n=!0;this._boundTexturesCache[e]===_&&(r||this._bindSamplerUniformToChannel(_._associatedChannel,e),n=!1),this._activeChannel=e;const l=this._getTextureTarget(_);if(n&&this._bindTextureDirectly(l,_,r),_&&!_.isMultiview){if(_.isCube&&_._cachedCoordinatesMode!==t.coordinatesMode){_._cachedCoordinatesMode=t.coordinatesMode;const e=t.coordinatesMode!==a.TEXTURE_CUBIC_MODE&&t.coordinatesMode!==a.TEXTURE_SKYBOX_MODE?a.TEXTURE_WRAP_ADDRESSMODE:a.TEXTURE_CLAMP_ADDRESSMODE;t.wrapU=e,t.wrapV=e}_._cachedWrapU!==t.wrapU&&(_._cachedWrapU=t.wrapU,this._setTextureParameterInteger(l,this._gl.TEXTURE_WRAP_S,this._getTextureWrapMode(t.wrapU),_)),_._cachedWrapV!==t.wrapV&&(_._cachedWrapV=t.wrapV,this._setTextureParameterInteger(l,this._gl.TEXTURE_WRAP_T,this._getTextureWrapMode(t.wrapV),_)),_.is3D&&_._cachedWrapR!==t.wrapR&&(_._cachedWrapR=t.wrapR,this._setTextureParameterInteger(l,this._gl.TEXTURE_WRAP_R,this._getTextureWrapMode(t.wrapR),_)),this._setAnisotropicLevel(l,_,t.anisotropicFilteringLevel)}return!0}setTextureArray(e,t,r,s){if(void 0!==e&&t){this._textureUnits&&this._textureUnits.length===r.length||(this._textureUnits=new Int32Array(r.length));for(let t=0;t<r.length;t++){const s=r[t].getInternalTexture();s?(this._textureUnits[t]=e+t,s._associatedChannel=e+t):this._textureUnits[t]=-1}this._gl.uniform1iv(t,this._textureUnits);for(let e=0;e<r.length;e++)this._setTexture(this._textureUnits[e],r[e],!0)}}_setAnisotropicLevel(e,t,r){const s=this._caps.textureAnisotropicFilterExtension;t.samplingMode!==a.TEXTURE_LINEAR_LINEAR_MIPNEAREST&&t.samplingMode!==a.TEXTURE_LINEAR_LINEAR_MIPLINEAR&&t.samplingMode!==a.TEXTURE_LINEAR_LINEAR&&(r=1),s&&t._cachedAnisotropicFilteringLevel!==r&&(this._setTextureParameterFloat(e,s.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(r,this._caps.maxAnisotropy),t),t._cachedAnisotropicFilteringLevel=r)}_setTextureParameterFloat(e,t,r,s){this._bindTextureDirectly(e,s,!0,!0),this._gl.texParameterf(e,t,r)}_setTextureParameterInteger(e,t,r,s){s&&this._bindTextureDirectly(e,s,!0,!0),this._gl.texParameteri(e,t,r)}unbindAllAttributes(){if(this._mustWipeVertexAttributes){this._mustWipeVertexAttributes=!1;for(let e=0;e<this._caps.maxVertexAttribs;e++)this.disableAttributeByIndex(e)}else for(let e=0,t=this._vertexAttribArraysEnabled.length;e<t;e++)e>=this._caps.maxVertexAttribs||!this._vertexAttribArraysEnabled[e]||this.disableAttributeByIndex(e)}releaseEffects(){const e=Object.keys(this._compiledEffects);for(const t of e){this._compiledEffects[t].dispose(!0)}this._compiledEffects={}}dispose(){b()&&this._renderingCanvas&&(this._renderingCanvas.removeEventListener("webglcontextlost",this._onContextLost),this._onContextRestored&&this._renderingCanvas.removeEventListener("webglcontextrestored",this._onContextRestored)),super.dispose(),this._dummyFramebuffer&&this._gl.deleteFramebuffer(this._dummyFramebuffer),this.unbindAllAttributes(),this._boundUniforms={},this._workingCanvas=null,this._workingContext=null,this._currentBufferPointers.length=0,this._currentProgram=null,this._creationOptions.loseContextOnDispose&&this._gl.getExtension("WEBGL_lose_context")?.loseContext(),i(this._gl)}attachContextLostEvent(e){this._renderingCanvas&&this._renderingCanvas.addEventListener("webglcontextlost",e,!1)}attachContextRestoredEvent(e){this._renderingCanvas&&this._renderingCanvas.addEventListener("webglcontextrestored",e,!1)}getError(){return this._gl.getError()}_canRenderToFloatFramebuffer(){return this._webGLVersion>1?this._caps.colorBufferFloat:this._canRenderToFramebuffer(a.TEXTURETYPE_FLOAT)}_canRenderToHalfFloatFramebuffer(){return this._webGLVersion>1?this._caps.colorBufferFloat:this._canRenderToFramebuffer(a.TEXTURETYPE_HALF_FLOAT)}_canRenderToFramebuffer(e){const t=this._gl;for(;t.getError()!==t.NO_ERROR;);let r=!0;const s=t.createTexture();t.bindTexture(t.TEXTURE_2D,s),t.texImage2D(t.TEXTURE_2D,0,this._getRGBABufferInternalSizedFormat(e),1,1,0,t.RGBA,this._getWebGLTextureType(e),null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST);const i=t.createFramebuffer();t.bindFramebuffer(t.FRAMEBUFFER,i),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,s,0);const _=t.checkFramebufferStatus(t.FRAMEBUFFER);if(r=r&&_===t.FRAMEBUFFER_COMPLETE,r=r&&t.getError()===t.NO_ERROR,r&&(t.clear(t.COLOR_BUFFER_BIT),r=r&&t.getError()===t.NO_ERROR),r){t.bindFramebuffer(t.FRAMEBUFFER,null);const e=t.RGBA,s=t.UNSIGNED_BYTE,i=new Uint8Array(4);t.readPixels(0,0,1,1,e,s,i),r=r&&t.getError()===t.NO_ERROR}for(t.deleteTexture(s),t.deleteFramebuffer(i),t.bindFramebuffer(t.FRAMEBUFFER,null);!r&&t.getError()!==t.NO_ERROR;);return r}_getWebGLTextureType(e){if(1===this._webGLVersion){switch(e){case a.TEXTURETYPE_FLOAT:return this._gl.FLOAT;case a.TEXTURETYPE_HALF_FLOAT:return this._gl.HALF_FLOAT_OES;case a.TEXTURETYPE_UNSIGNED_BYTE:return this._gl.UNSIGNED_BYTE;case a.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4:return this._gl.UNSIGNED_SHORT_4_4_4_4;case a.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1:return this._gl.UNSIGNED_SHORT_5_5_5_1;case a.TEXTURETYPE_UNSIGNED_SHORT_5_6_5:return this._gl.UNSIGNED_SHORT_5_6_5}return this._gl.UNSIGNED_BYTE}switch(e){case a.TEXTURETYPE_BYTE:return this._gl.BYTE;case a.TEXTURETYPE_UNSIGNED_BYTE:return this._gl.UNSIGNED_BYTE;case a.TEXTURETYPE_SHORT:return this._gl.SHORT;case a.TEXTURETYPE_UNSIGNED_SHORT:return this._gl.UNSIGNED_SHORT;case a.TEXTURETYPE_INT:return this._gl.INT;case a.TEXTURETYPE_UNSIGNED_INTEGER:return this._gl.UNSIGNED_INT;case a.TEXTURETYPE_FLOAT:return this._gl.FLOAT;case a.TEXTURETYPE_HALF_FLOAT:return this._gl.HALF_FLOAT;case a.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4:return this._gl.UNSIGNED_SHORT_4_4_4_4;case a.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1:return this._gl.UNSIGNED_SHORT_5_5_5_1;case a.TEXTURETYPE_UNSIGNED_SHORT_5_6_5:return this._gl.UNSIGNED_SHORT_5_6_5;case a.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV:return this._gl.UNSIGNED_INT_2_10_10_10_REV;case a.TEXTURETYPE_UNSIGNED_INT_24_8:return this._gl.UNSIGNED_INT_24_8;case a.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV:return this._gl.UNSIGNED_INT_10F_11F_11F_REV;case a.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV:return this._gl.UNSIGNED_INT_5_9_9_9_REV;case a.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV:return this._gl.FLOAT_32_UNSIGNED_INT_24_8_REV}return this._gl.UNSIGNED_BYTE}_getInternalFormat(e,t=!1){let r=t?this._glSRGBExtensionValues.SRGB8_ALPHA8:this._gl.RGBA;switch(e){case a.TEXTUREFORMAT_ALPHA:r=this._gl.ALPHA;break;case a.TEXTUREFORMAT_LUMINANCE:r=this._gl.LUMINANCE;break;case a.TEXTUREFORMAT_LUMINANCE_ALPHA:r=this._gl.LUMINANCE_ALPHA;break;case a.TEXTUREFORMAT_RED:case a.TEXTUREFORMAT_R16_UNORM:case a.TEXTUREFORMAT_R16_SNORM:r=this._gl.RED;break;case a.TEXTUREFORMAT_RG:case a.TEXTUREFORMAT_RG16_UNORM:case a.TEXTUREFORMAT_RG16_SNORM:r=this._gl.RG;break;case a.TEXTUREFORMAT_RGB:case a.TEXTUREFORMAT_RGB16_UNORM:case a.TEXTUREFORMAT_RGB16_SNORM:r=t?this._glSRGBExtensionValues.SRGB:this._gl.RGB;break;case a.TEXTUREFORMAT_RGBA:case a.TEXTUREFORMAT_RGBA16_UNORM:case a.TEXTUREFORMAT_RGBA16_SNORM:r=t?this._glSRGBExtensionValues.SRGB8_ALPHA8:this._gl.RGBA}if(this._webGLVersion>1)switch(e){case a.TEXTUREFORMAT_RED_INTEGER:r=this._gl.RED_INTEGER;break;case a.TEXTUREFORMAT_RG_INTEGER:r=this._gl.RG_INTEGER;break;case a.TEXTUREFORMAT_RGB_INTEGER:r=this._gl.RGB_INTEGER;break;case a.TEXTUREFORMAT_RGBA_INTEGER:r=this._gl.RGBA_INTEGER}return r}_getRGBABufferInternalSizedFormat(e,t,r=!1){if(1===this._webGLVersion){if(void 0!==t)switch(t){case a.TEXTUREFORMAT_ALPHA:return this._gl.ALPHA;case a.TEXTUREFORMAT_LUMINANCE:return this._gl.LUMINANCE;case a.TEXTUREFORMAT_LUMINANCE_ALPHA:return this._gl.LUMINANCE_ALPHA;case a.TEXTUREFORMAT_RGB:return r?this._glSRGBExtensionValues.SRGB:this._gl.RGB}return this._gl.RGBA}switch(e){case a.TEXTURETYPE_BYTE:switch(t){case a.TEXTUREFORMAT_RED:return this._gl.R8_SNORM;case a.TEXTUREFORMAT_RG:return this._gl.RG8_SNORM;case a.TEXTUREFORMAT_RGB:return this._gl.RGB8_SNORM;case a.TEXTUREFORMAT_RED_INTEGER:return this._gl.R8I;case a.TEXTUREFORMAT_RG_INTEGER:return this._gl.RG8I;case a.TEXTUREFORMAT_RGB_INTEGER:return this._gl.RGB8I;case a.TEXTUREFORMAT_RGBA_INTEGER:return this._gl.RGBA8I;default:return this._gl.RGBA8_SNORM}case a.TEXTURETYPE_UNSIGNED_BYTE:switch(t){case a.TEXTUREFORMAT_RED:return this._gl.R8;case a.TEXTUREFORMAT_RG:return this._gl.RG8;case a.TEXTUREFORMAT_RGB:return r?this._glSRGBExtensionValues.SRGB8:this._gl.RGB8;case a.TEXTUREFORMAT_RGBA:return r?this._glSRGBExtensionValues.SRGB8_ALPHA8:this._gl.RGBA8;case a.TEXTUREFORMAT_RED_INTEGER:return this._gl.R8UI;case a.TEXTUREFORMAT_RG_INTEGER:return this._gl.RG8UI;case a.TEXTUREFORMAT_RGB_INTEGER:return this._gl.RGB8UI;case a.TEXTUREFORMAT_RGBA_INTEGER:return this._gl.RGBA8UI;case a.TEXTUREFORMAT_ALPHA:return this._gl.ALPHA;case a.TEXTUREFORMAT_LUMINANCE:return this._gl.LUMINANCE;case a.TEXTUREFORMAT_LUMINANCE_ALPHA:return this._gl.LUMINANCE_ALPHA;default:return this._gl.RGBA8}case a.TEXTURETYPE_SHORT:switch(t){case a.TEXTUREFORMAT_RED_INTEGER:return this._gl.R16I;case a.TEXTUREFORMAT_R16_SNORM:return this._gl.R16_SNORM_EXT;case a.TEXTUREFORMAT_RG16_SNORM:return this._gl.RG16_SNORM_EXT;case a.TEXTUREFORMAT_RGB16_SNORM:return this._gl.RGB16_SNORM_EXT;case a.TEXTUREFORMAT_RGBA16_SNORM:return this._gl.RGBA16_SNORM_EXT;case a.TEXTUREFORMAT_RG_INTEGER:return this._gl.RG16I;case a.TEXTUREFORMAT_RGB_INTEGER:return this._gl.RGB16I;case a.TEXTUREFORMAT_RGBA_INTEGER:default:return this._gl.RGBA16I}case a.TEXTURETYPE_UNSIGNED_SHORT:switch(t){case a.TEXTUREFORMAT_RED_INTEGER:return this._gl.R16UI;case a.TEXTUREFORMAT_R16_UNORM:return this._gl.R16_EXT;case a.TEXTUREFORMAT_RG16_UNORM:return this._gl.RG16_EXT;case a.TEXTUREFORMAT_RGB16_UNORM:return this._gl.RGB16_EXT;case a.TEXTUREFORMAT_RGBA16_UNORM:return this._gl.RGBA16_EXT;case a.TEXTUREFORMAT_RG_INTEGER:return this._gl.RG16UI;case a.TEXTUREFORMAT_RGB_INTEGER:return this._gl.RGB16UI;case a.TEXTUREFORMAT_RGBA_INTEGER:default:return this._gl.RGBA16UI}case a.TEXTURETYPE_INT:switch(t){case a.TEXTUREFORMAT_RED_INTEGER:return this._gl.R32I;case a.TEXTUREFORMAT_RG_INTEGER:return this._gl.RG32I;case a.TEXTUREFORMAT_RGB_INTEGER:return this._gl.RGB32I;case a.TEXTUREFORMAT_RGBA_INTEGER:default:return this._gl.RGBA32I}case a.TEXTURETYPE_UNSIGNED_INTEGER:switch(t){case a.TEXTUREFORMAT_RED_INTEGER:return this._gl.R32UI;case a.TEXTUREFORMAT_RG_INTEGER:return this._gl.RG32UI;case a.TEXTUREFORMAT_RGB_INTEGER:return this._gl.RGB32UI;case a.TEXTUREFORMAT_RGBA_INTEGER:default:return this._gl.RGBA32UI}case a.TEXTURETYPE_FLOAT:switch(t){case a.TEXTUREFORMAT_RED:return this._gl.R32F;case a.TEXTUREFORMAT_RG:return this._gl.RG32F;case a.TEXTUREFORMAT_RGB:return this._gl.RGB32F;case a.TEXTUREFORMAT_RGBA:default:return this._gl.RGBA32F}case a.TEXTURETYPE_HALF_FLOAT:switch(t){case a.TEXTUREFORMAT_RED:return this._gl.R16F;case a.TEXTUREFORMAT_RG:return this._gl.RG16F;case a.TEXTUREFORMAT_RGB:return this._gl.RGB16F;case a.TEXTUREFORMAT_RGBA:default:return this._gl.RGBA16F}case a.TEXTURETYPE_UNSIGNED_SHORT_5_6_5:return this._gl.RGB565;case a.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV:return this._gl.R11F_G11F_B10F;case a.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV:return this._gl.RGB9_E5;case a.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4:return this._gl.RGBA4;case a.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1:return this._gl.RGB5_A1;case a.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV:switch(t){case a.TEXTUREFORMAT_RGBA:return this._gl.RGB10_A2;case a.TEXTUREFORMAT_RGBA_INTEGER:return this._gl.RGB10_A2UI;default:return this._gl.RGB10_A2}}return r?this._glSRGBExtensionValues.SRGB8_ALPHA8:this._gl.RGBA8}readPixels(e,t,r,s,i=!0,_=!0){const n=i?4:3,a=i?this._gl.RGBA:this._gl.RGB,l=new Uint8Array(s*r*n);return _&&this.flushFramebuffer(),this._gl.readPixels(e,t,r,s,a,this._gl.UNSIGNED_BYTE,l),Promise.resolve(l)}static get IsSupportedAsync(){return Promise.resolve(this.isSupported())}static get IsSupported(){return this.isSupported()}static isSupported(){if(null!==this._HasMajorPerformanceCaveat)return!this._HasMajorPerformanceCaveat;if(null===this._IsSupported)try{const e=r._CreateCanvas(1,1),t=e.getContext("webgl")||e.getContext("experimental-webgl");this._IsSupported=null!=t&&!!window.WebGLRenderingContext}catch(e){this._IsSupported=!1}return this._IsSupported}static get HasMajorPerformanceCaveat(){if(null===this._HasMajorPerformanceCaveat)try{const e=r._CreateCanvas(1,1),t=e.getContext("webgl",{failIfMajorPerformanceCaveat:!0})||e.getContext("experimental-webgl",{failIfMajorPerformanceCaveat:!0});this._HasMajorPerformanceCaveat=!t}catch(e){this._HasMajorPerformanceCaveat=!1}return this._HasMajorPerformanceCaveat}}N._TempClearColorUint32=new Uint32Array(4),N._TempClearColorInt32=new Int32Array(4),N.ExceptionList=[{key:"Chrome/63.0",capture:"63\\.0\\.3239\\.(\\d+)",captureConstraint:108,targets:["uniformBuffer"]},{key:"Firefox/58",capture:null,captureConstraint:null,targets:["uniformBuffer"]},{key:"Firefox/59",capture:null,captureConstraint:null,targets:["uniformBuffer"]},{key:"Chrome/72.+?Mobile",capture:null,captureConstraint:null,targets:["vao"]},{key:"Chrome/73.+?Mobile",capture:null,captureConstraint:null,targets:["vao"]},{key:"Chrome/74.+?Mobile",capture:null,captureConstraint:null,targets:["vao"]},{key:"Mac OS.+Chrome/71",capture:null,captureConstraint:null,targets:["vao"]},{key:"Mac OS.+Chrome/72",capture:null,captureConstraint:null,targets:["vao"]},{key:"Mac OS.+Chrome",capture:null,captureConstraint:null,targets:["uniformBuffer"]},{key:"Chrome/12\\d\\..+?Mobile",capture:null,captureConstraint:null,targets:["uniformBuffer"]},{key:".*AppleWebKit.*(15.4).*Safari",capture:null,captureConstraint:null,targets:["antialias","maxMSAASamples"]},{key:".*(15.4).*AppleWebKit.*Safari",capture:null,captureConstraint:null,targets:["antialias","maxMSAASamples"]}],N._ConcatenateShader=t,N._IsSupported=null,N._HasMajorPerformanceCaveat=null;var L=Object.freeze({__proto__:null,ThinEngine:N});export{N as T,U as W,F as a,L as t};
2
+ //# sourceMappingURL=thinEngine-CRNAFHqA.esm.min.js.map