@babylonjs/viewer 7.40.4 → 7.41.0-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-CFzvmxxg.esm.min.js +2 -0
  7. package/dist/chunks/EXT_lights_ies-CFzvmxxg.esm.min.js.map +1 -0
  8. package/dist/chunks/EXT_lights_ies-cyFdY7yl.esm.js +84 -0
  9. package/dist/chunks/EXT_lights_ies-cyFdY7yl.esm.js.map +1 -0
  10. package/dist/chunks/EXT_lights_image_based-BNmSqx40.esm.min.js +2 -0
  11. package/dist/chunks/EXT_lights_image_based-BNmSqx40.esm.min.js.map +1 -0
  12. package/dist/chunks/EXT_lights_image_based-CC48JVU0.esm.js +171 -0
  13. package/dist/chunks/EXT_lights_image_based-CC48JVU0.esm.js.map +1 -0
  14. package/dist/chunks/EXT_mesh_gpu_instancing-B2qj3kQu.esm.js +86 -0
  15. package/dist/chunks/EXT_mesh_gpu_instancing-B2qj3kQu.esm.js.map +1 -0
  16. package/dist/chunks/EXT_mesh_gpu_instancing-lanrAAoi.esm.min.js +2 -0
  17. package/dist/chunks/EXT_mesh_gpu_instancing-lanrAAoi.esm.min.js.map +1 -0
  18. package/dist/chunks/EXT_meshopt_compression-DjvHx7gJ.esm.js +134 -0
  19. package/dist/chunks/EXT_meshopt_compression-DjvHx7gJ.esm.js.map +1 -0
  20. package/dist/chunks/EXT_meshopt_compression-oH6HzGir.esm.min.js +2 -0
  21. package/dist/chunks/EXT_meshopt_compression-oH6HzGir.esm.min.js.map +1 -0
  22. package/dist/chunks/EXT_texture_avif-BYWETW7-.esm.min.js +2 -0
  23. package/dist/chunks/EXT_texture_avif-BYWETW7-.esm.min.js.map +1 -0
  24. package/dist/chunks/EXT_texture_avif-CKXEq29h.esm.js +44 -0
  25. package/dist/chunks/EXT_texture_avif-CKXEq29h.esm.js.map +1 -0
  26. package/dist/chunks/EXT_texture_webp-Dl4GPoEU.esm.min.js +2 -0
  27. package/dist/chunks/EXT_texture_webp-Dl4GPoEU.esm.min.js.map +1 -0
  28. package/dist/chunks/EXT_texture_webp-fAiSgaNl.esm.js +43 -0
  29. package/dist/chunks/EXT_texture_webp-fAiSgaNl.esm.js.map +1 -0
  30. package/dist/chunks/ExtrasAsMetadata-BUQ3X3M6.esm.js +64 -0
  31. package/dist/chunks/ExtrasAsMetadata-BUQ3X3M6.esm.js.map +1 -0
  32. package/dist/chunks/ExtrasAsMetadata-C_M9nxb4.esm.min.js +2 -0
  33. package/dist/chunks/ExtrasAsMetadata-C_M9nxb4.esm.min.js.map +1 -0
  34. package/dist/chunks/KHR_animation_pointer-BdFZyLUq.esm.js +352 -0
  35. package/dist/chunks/KHR_animation_pointer-BdFZyLUq.esm.js.map +1 -0
  36. package/dist/chunks/KHR_animation_pointer-CBqZcURZ.esm.min.js +2 -0
  37. package/dist/chunks/KHR_animation_pointer-CBqZcURZ.esm.min.js.map +1 -0
  38. package/dist/chunks/KHR_draco_mesh_compression-DU2Rk2nj.esm.min.js +2 -0
  39. package/dist/chunks/KHR_draco_mesh_compression-DU2Rk2nj.esm.min.js.map +1 -0
  40. package/dist/chunks/KHR_draco_mesh_compression-hVF9XuFz.esm.js +610 -0
  41. package/dist/chunks/KHR_draco_mesh_compression-hVF9XuFz.esm.js.map +1 -0
  42. package/dist/chunks/KHR_interactivity-COE1p684.esm.min.js +2 -0
  43. package/dist/chunks/KHR_interactivity-COE1p684.esm.min.js.map +1 -0
  44. package/dist/chunks/KHR_interactivity-Cv1s_pea.esm.js +4033 -0
  45. package/dist/chunks/KHR_interactivity-Cv1s_pea.esm.js.map +1 -0
  46. package/dist/chunks/KHR_lights_punctual-CHf5kbKi.esm.js +581 -0
  47. package/dist/chunks/KHR_lights_punctual-CHf5kbKi.esm.js.map +1 -0
  48. package/dist/chunks/KHR_lights_punctual-DIEAP5SG.esm.min.js +2 -0
  49. package/dist/chunks/KHR_lights_punctual-DIEAP5SG.esm.min.js.map +1 -0
  50. package/dist/chunks/KHR_materials_anisotropy-CU-xxV6y.esm.js +65 -0
  51. package/dist/chunks/KHR_materials_anisotropy-CU-xxV6y.esm.js.map +1 -0
  52. package/dist/chunks/KHR_materials_anisotropy-Cq6CU4qW.esm.min.js +2 -0
  53. package/dist/chunks/KHR_materials_anisotropy-Cq6CU4qW.esm.min.js.map +1 -0
  54. package/dist/chunks/KHR_materials_clearcoat-BSjcmIju.esm.js +96 -0
  55. package/dist/chunks/KHR_materials_clearcoat-BSjcmIju.esm.js.map +1 -0
  56. package/dist/chunks/KHR_materials_clearcoat-CVNNhJRE.esm.min.js +2 -0
  57. package/dist/chunks/KHR_materials_clearcoat-CVNNhJRE.esm.min.js.map +1 -0
  58. package/dist/chunks/KHR_materials_diffuse_transmission-BDuGIkOh.esm.min.js +2 -0
  59. package/dist/chunks/KHR_materials_diffuse_transmission-BDuGIkOh.esm.min.js.map +1 -0
  60. package/dist/chunks/KHR_materials_diffuse_transmission-BZ-9rJUf.esm.js +97 -0
  61. package/dist/chunks/KHR_materials_diffuse_transmission-BZ-9rJUf.esm.js.map +1 -0
  62. package/dist/chunks/KHR_materials_dispersion-BxiGElVU.esm.min.js +2 -0
  63. package/dist/chunks/KHR_materials_dispersion-BxiGElVU.esm.min.js.map +1 -0
  64. package/dist/chunks/KHR_materials_dispersion-UI4zH1V_.esm.js +62 -0
  65. package/dist/chunks/KHR_materials_dispersion-UI4zH1V_.esm.js.map +1 -0
  66. package/dist/chunks/KHR_materials_emissive_strength-BT-Nu60T.esm.js +55 -0
  67. package/dist/chunks/KHR_materials_emissive_strength-BT-Nu60T.esm.js.map +1 -0
  68. package/dist/chunks/KHR_materials_emissive_strength-CwkVNmN7.esm.min.js +2 -0
  69. package/dist/chunks/KHR_materials_emissive_strength-CwkVNmN7.esm.min.js.map +1 -0
  70. package/dist/chunks/KHR_materials_ior-BGUUe5AW.esm.min.js +2 -0
  71. package/dist/chunks/KHR_materials_ior-BGUUe5AW.esm.min.js.map +1 -0
  72. package/dist/chunks/KHR_materials_ior-BbBQF-yw.esm.js +64 -0
  73. package/dist/chunks/KHR_materials_ior-BbBQF-yw.esm.js.map +1 -0
  74. package/dist/chunks/KHR_materials_iridescence-IFN2ewvr.esm.min.js +2 -0
  75. package/dist/chunks/KHR_materials_iridescence-IFN2ewvr.esm.min.js.map +1 -0
  76. package/dist/chunks/KHR_materials_iridescence-nLZDN7sc.esm.js +72 -0
  77. package/dist/chunks/KHR_materials_iridescence-nLZDN7sc.esm.js.map +1 -0
  78. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-CyNVQC-W.esm.js +81 -0
  79. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-CyNVQC-W.esm.js.map +1 -0
  80. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-zxcydJdp.esm.min.js +2 -0
  81. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-zxcydJdp.esm.min.js.map +1 -0
  82. package/dist/chunks/KHR_materials_sheen-BWL9yo8Z.esm.min.js +2 -0
  83. package/dist/chunks/KHR_materials_sheen-BWL9yo8Z.esm.min.js.map +1 -0
  84. package/dist/chunks/KHR_materials_sheen-DSThWwq2.esm.js +85 -0
  85. package/dist/chunks/KHR_materials_sheen-DSThWwq2.esm.js.map +1 -0
  86. package/dist/chunks/KHR_materials_specular-B96NRFEV.esm.js +75 -0
  87. package/dist/chunks/KHR_materials_specular-B96NRFEV.esm.js.map +1 -0
  88. package/dist/chunks/KHR_materials_specular-D2JwOdxw.esm.min.js +2 -0
  89. package/dist/chunks/KHR_materials_specular-D2JwOdxw.esm.min.js.map +1 -0
  90. package/dist/chunks/KHR_materials_transmission-BvqtJXfD.esm.js +307 -0
  91. package/dist/chunks/KHR_materials_transmission-BvqtJXfD.esm.js.map +1 -0
  92. package/dist/chunks/KHR_materials_transmission-ljXN4y_0.esm.min.js +2 -0
  93. package/dist/chunks/KHR_materials_transmission-ljXN4y_0.esm.min.js.map +1 -0
  94. package/dist/chunks/KHR_materials_unlit-CjGTXU3z.esm.min.js +2 -0
  95. package/dist/chunks/KHR_materials_unlit-CjGTXU3z.esm.min.js.map +1 -0
  96. package/dist/chunks/KHR_materials_unlit-ww00IloC.esm.js +74 -0
  97. package/dist/chunks/KHR_materials_unlit-ww00IloC.esm.js.map +1 -0
  98. package/dist/chunks/KHR_materials_variants-D0pVU1lm.esm.min.js +2 -0
  99. package/dist/chunks/KHR_materials_variants-D0pVU1lm.esm.min.js.map +1 -0
  100. package/dist/chunks/KHR_materials_variants-D3IDOJfB.esm.js +262 -0
  101. package/dist/chunks/KHR_materials_variants-D3IDOJfB.esm.js.map +1 -0
  102. package/dist/chunks/KHR_materials_volume-BfZR8rbr.esm.min.js +2 -0
  103. package/dist/chunks/KHR_materials_volume-BfZR8rbr.esm.min.js.map +1 -0
  104. package/dist/chunks/KHR_materials_volume-CLkC_Bvi.esm.js +87 -0
  105. package/dist/chunks/KHR_materials_volume-CLkC_Bvi.esm.js.map +1 -0
  106. package/dist/chunks/KHR_mesh_quantization-BJv1P2Wt.esm.js +26 -0
  107. package/dist/chunks/KHR_mesh_quantization-BJv1P2Wt.esm.js.map +1 -0
  108. package/dist/chunks/KHR_mesh_quantization-D69X_5bR.esm.min.js +2 -0
  109. package/dist/chunks/KHR_mesh_quantization-D69X_5bR.esm.min.js.map +1 -0
  110. package/dist/chunks/KHR_node_hoverability-CG6s7hhs.esm.min.js +2 -0
  111. package/dist/chunks/KHR_node_hoverability-CG6s7hhs.esm.min.js.map +1 -0
  112. package/dist/chunks/KHR_node_hoverability-xgvyZ_r-.esm.js +39 -0
  113. package/dist/chunks/KHR_node_hoverability-xgvyZ_r-.esm.js.map +1 -0
  114. package/dist/chunks/KHR_node_visibility-DUozjXRR.esm.min.js +2 -0
  115. package/dist/chunks/KHR_node_visibility-DUozjXRR.esm.min.js.map +1 -0
  116. package/dist/chunks/KHR_node_visibility-aAs5Kkey.esm.js +46 -0
  117. package/dist/chunks/KHR_node_visibility-aAs5Kkey.esm.js.map +1 -0
  118. package/dist/chunks/KHR_texture_basisu-Bjw0jG1d.esm.js +43 -0
  119. package/dist/chunks/KHR_texture_basisu-Bjw0jG1d.esm.js.map +1 -0
  120. package/dist/chunks/KHR_texture_basisu-FWm46QOj.esm.min.js +2 -0
  121. package/dist/chunks/KHR_texture_basisu-FWm46QOj.esm.min.js.map +1 -0
  122. package/dist/chunks/KHR_texture_transform-BZYr2brj.esm.min.js +2 -0
  123. package/dist/chunks/KHR_texture_transform-BZYr2brj.esm.min.js.map +1 -0
  124. package/dist/chunks/KHR_texture_transform-DdsN6SA_.esm.js +63 -0
  125. package/dist/chunks/KHR_texture_transform-DdsN6SA_.esm.js.map +1 -0
  126. package/dist/chunks/KHR_xmp_json_ld-DhFD64vh.esm.min.js +2 -0
  127. package/dist/chunks/KHR_xmp_json_ld-DhFD64vh.esm.min.js.map +1 -0
  128. package/dist/chunks/KHR_xmp_json_ld-sTn6N13E.esm.js +51 -0
  129. package/dist/chunks/KHR_xmp_json_ld-sTn6N13E.esm.js.map +1 -0
  130. package/dist/chunks/MSFT_audio_emitter-5lrNj8-c.esm.min.js +2 -0
  131. package/dist/chunks/MSFT_audio_emitter-5lrNj8-c.esm.min.js.map +1 -0
  132. package/dist/chunks/MSFT_audio_emitter-B7RJSCaF.esm.js +2201 -0
  133. package/dist/chunks/MSFT_audio_emitter-B7RJSCaF.esm.js.map +1 -0
  134. package/dist/chunks/MSFT_lod-BJBjM7Gp.esm.js +337 -0
  135. package/dist/chunks/MSFT_lod-BJBjM7Gp.esm.js.map +1 -0
  136. package/dist/chunks/MSFT_lod-DpEZMnoU.esm.min.js +2 -0
  137. package/dist/chunks/MSFT_lod-DpEZMnoU.esm.min.js.map +1 -0
  138. package/dist/chunks/MSFT_minecraftMesh-CXHPdyar.esm.min.js +2 -0
  139. package/dist/chunks/MSFT_minecraftMesh-CXHPdyar.esm.min.js.map +1 -0
  140. package/dist/chunks/MSFT_minecraftMesh-DRC2tMvY.esm.js +46 -0
  141. package/dist/chunks/MSFT_minecraftMesh-DRC2tMvY.esm.js.map +1 -0
  142. package/dist/chunks/MSFT_sRGBFactors-Db1asZRk.esm.js +47 -0
  143. package/dist/chunks/MSFT_sRGBFactors-Db1asZRk.esm.js.map +1 -0
  144. package/dist/chunks/MSFT_sRGBFactors-RhAtY3q7.esm.min.js +2 -0
  145. package/dist/chunks/MSFT_sRGBFactors-RhAtY3q7.esm.min.js.map +1 -0
  146. package/dist/chunks/animationGroup-CjaFhT87.esm.min.js +2 -0
  147. package/dist/chunks/animationGroup-CjaFhT87.esm.min.js.map +1 -0
  148. package/dist/chunks/animationGroup-Ctc6BUYh.esm.js +2482 -0
  149. package/dist/chunks/animationGroup-Ctc6BUYh.esm.js.map +1 -0
  150. package/dist/chunks/assetContainer-DDEska5G.esm.min.js +2 -0
  151. package/dist/chunks/assetContainer-DDEska5G.esm.min.js.map +1 -0
  152. package/dist/chunks/assetContainer-QD3gUzyx.esm.js +1720 -0
  153. package/dist/chunks/assetContainer-QD3gUzyx.esm.js.map +1 -0
  154. package/dist/chunks/audioEngine-C6R2Ow6e.esm.js +305 -0
  155. package/dist/chunks/audioEngine-C6R2Ow6e.esm.js.map +1 -0
  156. package/dist/chunks/audioEngine-FKYFzzDb.esm.min.js +2 -0
  157. package/dist/chunks/audioEngine-FKYFzzDb.esm.min.js.map +1 -0
  158. package/dist/chunks/bakedVertexAnimation-DKR6lpIg.esm.min.js +2 -0
  159. package/dist/chunks/bakedVertexAnimation-DKR6lpIg.esm.min.js.map +1 -0
  160. package/dist/chunks/bakedVertexAnimation-Hxn22qoJ.esm.js +114 -0
  161. package/dist/chunks/bakedVertexAnimation-Hxn22qoJ.esm.js.map +1 -0
  162. package/dist/chunks/basisTextureLoader-BcNAHqjw.esm.min.js +2 -0
  163. package/dist/chunks/basisTextureLoader-BcNAHqjw.esm.min.js.map +1 -0
  164. package/dist/chunks/basisTextureLoader-Dr2d0ez5.esm.js +600 -0
  165. package/dist/chunks/basisTextureLoader-Dr2d0ez5.esm.js.map +1 -0
  166. package/dist/chunks/dds-CFrq_XFM.esm.js +540 -0
  167. package/dist/chunks/dds-CFrq_XFM.esm.js.map +1 -0
  168. package/dist/chunks/dds-D1NTXLIL.esm.min.js +2 -0
  169. package/dist/chunks/dds-D1NTXLIL.esm.min.js.map +1 -0
  170. package/dist/chunks/ddsTextureLoader-DbvffCUa.esm.min.js +2 -0
  171. package/dist/chunks/ddsTextureLoader-DbvffCUa.esm.min.js.map +1 -0
  172. package/dist/chunks/ddsTextureLoader-wyjUdBoO.esm.js +88 -0
  173. package/dist/chunks/ddsTextureLoader-wyjUdBoO.esm.js.map +1 -0
  174. package/dist/chunks/decalFragment-CGto5zyq.esm.js +18 -0
  175. package/dist/chunks/decalFragment-CGto5zyq.esm.js.map +1 -0
  176. package/dist/chunks/decalFragment-CU64C8uG.esm.min.js +2 -0
  177. package/dist/chunks/decalFragment-CU64C8uG.esm.min.js.map +1 -0
  178. package/dist/chunks/default.fragment-B2bhCC4E.esm.js +446 -0
  179. package/dist/chunks/default.fragment-B2bhCC4E.esm.js.map +1 -0
  180. package/dist/chunks/default.fragment-Boq79lom.esm.min.js +2 -0
  181. package/dist/chunks/default.fragment-Boq79lom.esm.min.js.map +1 -0
  182. package/dist/chunks/default.fragment-CluFtXFp.esm.min.js +2 -0
  183. package/dist/chunks/default.fragment-CluFtXFp.esm.min.js.map +1 -0
  184. package/dist/chunks/default.fragment-Dshl5Uqc.esm.js +515 -0
  185. package/dist/chunks/default.fragment-Dshl5Uqc.esm.js.map +1 -0
  186. package/dist/chunks/default.vertex-BAAgCiYo.esm.min.js +2 -0
  187. package/dist/chunks/default.vertex-BAAgCiYo.esm.min.js.map +1 -0
  188. package/dist/chunks/default.vertex-BhOIicZW.esm.min.js +2 -0
  189. package/dist/chunks/default.vertex-BhOIicZW.esm.min.js.map +1 -0
  190. package/dist/chunks/default.vertex-DL7IogGB.esm.js +211 -0
  191. package/dist/chunks/default.vertex-DL7IogGB.esm.js.map +1 -0
  192. package/dist/chunks/default.vertex-DOXcZEQ0.esm.js +190 -0
  193. package/dist/chunks/default.vertex-DOXcZEQ0.esm.js.map +1 -0
  194. package/dist/chunks/defaultUboDeclaration-1qBz6EuF.esm.js +15 -0
  195. package/dist/chunks/defaultUboDeclaration-1qBz6EuF.esm.js.map +1 -0
  196. package/dist/chunks/defaultUboDeclaration-B9LzMzlw.esm.min.js +2 -0
  197. package/dist/chunks/defaultUboDeclaration-B9LzMzlw.esm.min.js.map +1 -0
  198. package/dist/chunks/defaultUboDeclaration-CXdodf7i.esm.js +13 -0
  199. package/dist/chunks/defaultUboDeclaration-CXdodf7i.esm.js.map +1 -0
  200. package/dist/chunks/defaultUboDeclaration-CZlCaxgu.esm.min.js +2 -0
  201. package/dist/chunks/defaultUboDeclaration-CZlCaxgu.esm.min.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-C3vcqEdz.esm.js +200 -0
  207. package/dist/chunks/dumpTools-C3vcqEdz.esm.js.map +1 -0
  208. package/dist/chunks/dumpTools-C8ZzlWEh.esm.min.js +2 -0
  209. package/dist/chunks/dumpTools-C8ZzlWEh.esm.min.js.map +1 -0
  210. package/dist/chunks/engine-_wVL12I1.esm.js +2213 -0
  211. package/dist/chunks/engine-_wVL12I1.esm.js.map +1 -0
  212. package/dist/chunks/engine-nCWszV_w.esm.min.js +2 -0
  213. package/dist/chunks/engine-nCWszV_w.esm.min.js.map +1 -0
  214. package/dist/chunks/engine.common-BuPfo1Wj.esm.min.js +2 -0
  215. package/dist/chunks/engine.common-BuPfo1Wj.esm.min.js.map +1 -0
  216. package/dist/chunks/engine.common-CT5iq3ZT.esm.js +1162 -0
  217. package/dist/chunks/engine.common-CT5iq3ZT.esm.js.map +1 -0
  218. package/dist/chunks/envTextureLoader-D7L0fVXR.esm.min.js +2 -0
  219. package/dist/chunks/envTextureLoader-D7L0fVXR.esm.min.js.map +1 -0
  220. package/dist/chunks/envTextureLoader-PtuRNDrr.esm.js +64 -0
  221. package/dist/chunks/envTextureLoader-PtuRNDrr.esm.js.map +1 -0
  222. package/dist/chunks/environmentTextureTools-BjmCbfSf.esm.min.js +2 -0
  223. package/dist/chunks/environmentTextureTools-BjmCbfSf.esm.min.js.map +1 -0
  224. package/dist/chunks/environmentTextureTools-DYbFmR95.esm.js +382 -0
  225. package/dist/chunks/environmentTextureTools-DYbFmR95.esm.js.map +1 -0
  226. package/dist/chunks/exrTextureLoader-BIPK0bPG.esm.min.js +2 -0
  227. package/dist/chunks/exrTextureLoader-BIPK0bPG.esm.min.js.map +1 -0
  228. package/dist/chunks/exrTextureLoader-CEhv_7O9.esm.js +1683 -0
  229. package/dist/chunks/exrTextureLoader-CEhv_7O9.esm.js.map +1 -0
  230. package/dist/chunks/fogFragment-B7_evZbY.esm.js +102 -0
  231. package/dist/chunks/fogFragment-B7_evZbY.esm.js.map +1 -0
  232. package/dist/chunks/fogFragment-CoZPb7oI.esm.min.js +2 -0
  233. package/dist/chunks/fogFragment-CoZPb7oI.esm.min.js.map +1 -0
  234. package/dist/chunks/fogFragment-DSO97-dc.esm.min.js +2 -0
  235. package/dist/chunks/fogFragment-DSO97-dc.esm.min.js.map +1 -0
  236. package/dist/chunks/fogFragment-wY2jQ7fb.esm.js +101 -0
  237. package/dist/chunks/fogFragment-wY2jQ7fb.esm.js.map +1 -0
  238. package/dist/chunks/fresnelFunction-BSEp5SCT.esm.js +12 -0
  239. package/dist/chunks/fresnelFunction-BSEp5SCT.esm.js.map +1 -0
  240. package/dist/chunks/fresnelFunction-Cg-NNSrz.esm.min.js +2 -0
  241. package/dist/chunks/fresnelFunction-Cg-NNSrz.esm.min.js.map +1 -0
  242. package/dist/chunks/glTFLoader-3ZUBWawQ.esm.min.js +2 -0
  243. package/dist/chunks/glTFLoader-3ZUBWawQ.esm.min.js.map +1 -0
  244. package/dist/chunks/glTFLoader-DVoAJl_A.esm.js +7658 -0
  245. package/dist/chunks/glTFLoader-DVoAJl_A.esm.js.map +1 -0
  246. package/dist/chunks/glTFLoaderAnimation-By7yP8sQ.esm.js +77 -0
  247. package/dist/chunks/glTFLoaderAnimation-By7yP8sQ.esm.js.map +1 -0
  248. package/dist/chunks/glTFLoaderAnimation-C9g-SHaJ.esm.min.js +2 -0
  249. package/dist/chunks/glTFLoaderAnimation-C9g-SHaJ.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-B8pgRSdd.esm.min.js +2 -0
  255. package/dist/chunks/harmonicsFunctions-B8pgRSdd.esm.min.js.map +1 -0
  256. package/dist/chunks/harmonicsFunctions-BcfkM4gb.esm.js +35 -0
  257. package/dist/chunks/harmonicsFunctions-BcfkM4gb.esm.js.map +1 -0
  258. package/dist/chunks/harmonicsFunctions-DF1x585z.esm.min.js +2 -0
  259. package/dist/chunks/harmonicsFunctions-DF1x585z.esm.min.js.map +1 -0
  260. package/dist/chunks/harmonicsFunctions-a48Ki58F.esm.js +34 -0
  261. package/dist/chunks/harmonicsFunctions-a48Ki58F.esm.js.map +1 -0
  262. package/dist/chunks/hdrTextureLoader-BWnO8u1r.esm.js +253 -0
  263. package/dist/chunks/hdrTextureLoader-BWnO8u1r.esm.js.map +1 -0
  264. package/dist/chunks/hdrTextureLoader-Bii9QpYI.esm.min.js +2 -0
  265. package/dist/chunks/hdrTextureLoader-Bii9QpYI.esm.min.js.map +1 -0
  266. package/dist/chunks/helperFunctions-BinFB44e.esm.js +110 -0
  267. package/dist/chunks/helperFunctions-BinFB44e.esm.js.map +1 -0
  268. package/dist/chunks/helperFunctions-CZAyJNTJ.esm.min.js +2 -0
  269. package/dist/chunks/helperFunctions-CZAyJNTJ.esm.min.js.map +1 -0
  270. package/dist/chunks/helperFunctions-DjoUVhI2.esm.min.js +2 -0
  271. package/dist/chunks/helperFunctions-DjoUVhI2.esm.min.js.map +1 -0
  272. package/dist/chunks/helperFunctions-Ds3-3-tu.esm.js +83 -0
  273. package/dist/chunks/helperFunctions-Ds3-3-tu.esm.js.map +1 -0
  274. package/dist/chunks/iesTextureLoader-CsnjIN7M.esm.js +189 -0
  275. package/dist/chunks/iesTextureLoader-CsnjIN7M.esm.js.map +1 -0
  276. package/dist/chunks/iesTextureLoader-DkmTomCD.esm.min.js +2 -0
  277. package/dist/chunks/iesTextureLoader-DkmTomCD.esm.min.js.map +1 -0
  278. package/dist/chunks/index-Cw2FZpYY.esm.js +74870 -0
  279. package/dist/chunks/index-Cw2FZpYY.esm.js.map +1 -0
  280. package/dist/chunks/index-DRbhrB0j.esm.min.js +57 -0
  281. package/dist/chunks/index-DRbhrB0j.esm.min.js.map +1 -0
  282. package/dist/chunks/ktxTextureLoader-B4pmAFQl.esm.js +814 -0
  283. package/dist/chunks/ktxTextureLoader-B4pmAFQl.esm.js.map +1 -0
  284. package/dist/chunks/ktxTextureLoader-B8Rlj2T0.esm.min.js +2 -0
  285. package/dist/chunks/ktxTextureLoader-B8Rlj2T0.esm.min.js.map +1 -0
  286. package/dist/chunks/logDepthDeclaration-CGz2sG_K.esm.js +11 -0
  287. package/dist/chunks/logDepthDeclaration-CGz2sG_K.esm.js.map +1 -0
  288. package/dist/chunks/logDepthDeclaration-CfVFs2QC.esm.min.js +2 -0
  289. package/dist/chunks/logDepthDeclaration-CfVFs2QC.esm.min.js.map +1 -0
  290. package/dist/chunks/logDepthDeclaration-CzVshpad.esm.min.js +2 -0
  291. package/dist/chunks/logDepthDeclaration-CzVshpad.esm.min.js.map +1 -0
  292. package/dist/chunks/logDepthDeclaration-xOwnAKtd.esm.js +35 -0
  293. package/dist/chunks/logDepthDeclaration-xOwnAKtd.esm.js.map +1 -0
  294. package/dist/chunks/logDepthVertex-BRgUZAsw.esm.js +81 -0
  295. package/dist/chunks/logDepthVertex-BRgUZAsw.esm.js.map +1 -0
  296. package/dist/chunks/logDepthVertex-CWfPfN9-.esm.min.js +2 -0
  297. package/dist/chunks/logDepthVertex-CWfPfN9-.esm.min.js.map +1 -0
  298. package/dist/chunks/logDepthVertex-HDlt7vTP.esm.min.js +2 -0
  299. package/dist/chunks/logDepthVertex-HDlt7vTP.esm.min.js.map +1 -0
  300. package/dist/chunks/logDepthVertex-l0uEG89p.esm.js +77 -0
  301. package/dist/chunks/logDepthVertex-l0uEG89p.esm.js.map +1 -0
  302. package/dist/chunks/mainUVVaryingDeclaration-B72zV2P9.esm.min.js +2 -0
  303. package/dist/chunks/mainUVVaryingDeclaration-B72zV2P9.esm.min.js.map +1 -0
  304. package/dist/chunks/mainUVVaryingDeclaration-BDogjZrz.esm.js +11 -0
  305. package/dist/chunks/mainUVVaryingDeclaration-BDogjZrz.esm.js.map +1 -0
  306. package/dist/chunks/mainUVVaryingDeclaration-DO5HJKyl.esm.min.js +2 -0
  307. package/dist/chunks/mainUVVaryingDeclaration-DO5HJKyl.esm.min.js.map +1 -0
  308. package/dist/chunks/mainUVVaryingDeclaration-DqzNajlu.esm.js +11 -0
  309. package/dist/chunks/mainUVVaryingDeclaration-DqzNajlu.esm.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-BCO87lfZ.esm.js +26 -0
  315. package/dist/chunks/meshUboDeclaration-BCO87lfZ.esm.js.map +1 -0
  316. package/dist/chunks/meshUboDeclaration-o4Xf2fwW.esm.min.js +2 -0
  317. package/dist/chunks/meshUboDeclaration-o4Xf2fwW.esm.min.js.map +1 -0
  318. package/dist/chunks/objFileLoader-BfPYM2Sh.esm.min.js +2 -0
  319. package/dist/chunks/objFileLoader-BfPYM2Sh.esm.min.js.map +1 -0
  320. package/dist/chunks/objFileLoader-D1emf4Qh.esm.js +1338 -0
  321. package/dist/chunks/objFileLoader-D1emf4Qh.esm.js.map +1 -0
  322. package/dist/chunks/oitFragment-B92YpEfj.esm.min.js +2 -0
  323. package/dist/chunks/oitFragment-B92YpEfj.esm.min.js.map +1 -0
  324. package/dist/chunks/oitFragment-BoFKkDNv.esm.js +1078 -0
  325. package/dist/chunks/oitFragment-BoFKkDNv.esm.js.map +1 -0
  326. package/dist/chunks/oitFragment-Cfx3g0iX.esm.js +1240 -0
  327. package/dist/chunks/oitFragment-Cfx3g0iX.esm.js.map +1 -0
  328. package/dist/chunks/oitFragment-CiA7gld-.esm.min.js +2 -0
  329. package/dist/chunks/oitFragment-CiA7gld-.esm.min.js.map +1 -0
  330. package/dist/chunks/pass.fragment-BLbIViJ7.esm.js +15 -0
  331. package/dist/chunks/pass.fragment-BLbIViJ7.esm.js.map +1 -0
  332. package/dist/chunks/pass.fragment-BqMk9ouF.esm.min.js +2 -0
  333. package/dist/chunks/pass.fragment-BqMk9ouF.esm.min.js.map +1 -0
  334. package/dist/chunks/pass.fragment-BuVDFNSR.esm.js +15 -0
  335. package/dist/chunks/pass.fragment-BuVDFNSR.esm.js.map +1 -0
  336. package/dist/chunks/pass.fragment-cM5FBHLm.esm.min.js +2 -0
  337. package/dist/chunks/pass.fragment-cM5FBHLm.esm.min.js.map +1 -0
  338. package/dist/chunks/pbr.fragment-5L_F7nGn.esm.js +3222 -0
  339. package/dist/chunks/pbr.fragment-5L_F7nGn.esm.js.map +1 -0
  340. package/dist/chunks/pbr.fragment-BJNPHSa-.esm.min.js +2 -0
  341. package/dist/chunks/pbr.fragment-BJNPHSa-.esm.min.js.map +1 -0
  342. package/dist/chunks/pbr.fragment-CTLrOzV2.esm.js +3269 -0
  343. package/dist/chunks/pbr.fragment-CTLrOzV2.esm.js.map +1 -0
  344. package/dist/chunks/pbr.fragment-D9MJFOr2.esm.min.js +2 -0
  345. package/dist/chunks/pbr.fragment-D9MJFOr2.esm.min.js.map +1 -0
  346. package/dist/chunks/pbr.vertex-BJyjq_fb.esm.js +223 -0
  347. package/dist/chunks/pbr.vertex-BJyjq_fb.esm.js.map +1 -0
  348. package/dist/chunks/pbr.vertex-Bm8Ng4Sx.esm.min.js +2 -0
  349. package/dist/chunks/pbr.vertex-Bm8Ng4Sx.esm.min.js.map +1 -0
  350. package/dist/chunks/pbr.vertex-CAKPUhfb.esm.min.js +2 -0
  351. package/dist/chunks/pbr.vertex-CAKPUhfb.esm.min.js.map +1 -0
  352. package/dist/chunks/pbr.vertex-DJd_-MvE.esm.js +348 -0
  353. package/dist/chunks/pbr.vertex-DJd_-MvE.esm.js.map +1 -0
  354. package/dist/chunks/postprocess.vertex-BjRX5eGi.esm.min.js +2 -0
  355. package/dist/chunks/postprocess.vertex-BjRX5eGi.esm.min.js.map +1 -0
  356. package/dist/chunks/postprocess.vertex-CFaKNIU-.esm.js +20 -0
  357. package/dist/chunks/postprocess.vertex-CFaKNIU-.esm.js.map +1 -0
  358. package/dist/chunks/rawTexture-ByD8l28R.esm.min.js +2 -0
  359. package/dist/chunks/rawTexture-ByD8l28R.esm.min.js.map +1 -0
  360. package/dist/chunks/rawTexture-DGz22uaX.esm.js +191 -0
  361. package/dist/chunks/rawTexture-DGz22uaX.esm.js.map +1 -0
  362. package/dist/chunks/ray-ByafiITx.esm.js +946 -0
  363. package/dist/chunks/ray-ByafiITx.esm.js.map +1 -0
  364. package/dist/chunks/ray-ChSTYrPm.esm.min.js +2 -0
  365. package/dist/chunks/ray-ChSTYrPm.esm.min.js.map +1 -0
  366. package/dist/chunks/rgbdDecode.fragment-CJ7PpH1N.esm.js +13 -0
  367. package/dist/chunks/rgbdDecode.fragment-CJ7PpH1N.esm.js.map +1 -0
  368. package/dist/chunks/rgbdDecode.fragment-DJ9crbPP.esm.js +13 -0
  369. package/dist/chunks/rgbdDecode.fragment-DJ9crbPP.esm.js.map +1 -0
  370. package/dist/chunks/rgbdDecode.fragment-DLpb3z18.esm.min.js +2 -0
  371. package/dist/chunks/rgbdDecode.fragment-DLpb3z18.esm.min.js.map +1 -0
  372. package/dist/chunks/rgbdDecode.fragment-ygeOUzIi.esm.min.js +2 -0
  373. package/dist/chunks/rgbdDecode.fragment-ygeOUzIi.esm.min.js.map +1 -0
  374. package/dist/chunks/rgbdEncode.fragment-BTG_wbck.esm.min.js +2 -0
  375. package/dist/chunks/rgbdEncode.fragment-BTG_wbck.esm.min.js.map +1 -0
  376. package/dist/chunks/rgbdEncode.fragment-C2s4AQaM.esm.js +13 -0
  377. package/dist/chunks/rgbdEncode.fragment-C2s4AQaM.esm.js.map +1 -0
  378. package/dist/chunks/rgbdEncode.fragment-C6LKySQH.esm.js +13 -0
  379. package/dist/chunks/rgbdEncode.fragment-C6LKySQH.esm.js.map +1 -0
  380. package/dist/chunks/rgbdEncode.fragment-CKB2lpgL.esm.min.js +2 -0
  381. package/dist/chunks/rgbdEncode.fragment-CKB2lpgL.esm.min.js.map +1 -0
  382. package/dist/chunks/splatFileLoader-BtSUlfZs.esm.min.js +2 -0
  383. package/dist/chunks/splatFileLoader-BtSUlfZs.esm.min.js.map +1 -0
  384. package/dist/chunks/splatFileLoader-Wn5sDtLq.esm.js +3379 -0
  385. package/dist/chunks/splatFileLoader-Wn5sDtLq.esm.js.map +1 -0
  386. package/dist/chunks/spotLight-CmDQEB8V.esm.js +701 -0
  387. package/dist/chunks/spotLight-CmDQEB8V.esm.js.map +1 -0
  388. package/dist/chunks/spotLight-hg94aMJD.esm.min.js +2 -0
  389. package/dist/chunks/spotLight-hg94aMJD.esm.min.js.map +1 -0
  390. package/dist/chunks/standardMaterial-BhIiLn1_.esm.js +1806 -0
  391. package/dist/chunks/standardMaterial-BhIiLn1_.esm.js.map +1 -0
  392. package/dist/chunks/standardMaterial-DQii8fRL.esm.min.js +2 -0
  393. package/dist/chunks/standardMaterial-DQii8fRL.esm.min.js.map +1 -0
  394. package/dist/chunks/stlFileLoader-D83u9BOr.esm.js +238 -0
  395. package/dist/chunks/stlFileLoader-D83u9BOr.esm.js.map +1 -0
  396. package/dist/chunks/stlFileLoader-DkXWqjZo.esm.min.js +2 -0
  397. package/dist/chunks/stlFileLoader-DkXWqjZo.esm.min.js.map +1 -0
  398. package/dist/chunks/tgaTextureLoader-C9xl6cvE.esm.js +349 -0
  399. package/dist/chunks/tgaTextureLoader-C9xl6cvE.esm.js.map +1 -0
  400. package/dist/chunks/tgaTextureLoader-DfzjGulW.esm.min.js +2 -0
  401. package/dist/chunks/tgaTextureLoader-DfzjGulW.esm.min.js.map +1 -0
  402. package/dist/chunks/thinEngine-Cu21aOSC.esm.min.js +2 -0
  403. package/dist/chunks/thinEngine-Cu21aOSC.esm.min.js.map +1 -0
  404. package/dist/chunks/thinEngine-IzS60pqU.esm.js +3853 -0
  405. package/dist/chunks/thinEngine-IzS60pqU.esm.js.map +1 -0
  406. package/dist/chunks/thinInstanceMesh-BN8Ev-h8.esm.js +314 -0
  407. package/dist/chunks/thinInstanceMesh-BN8Ev-h8.esm.js.map +1 -0
  408. package/dist/chunks/thinInstanceMesh-Bm9vmKU4.esm.min.js +2 -0
  409. package/dist/chunks/thinInstanceMesh-Bm9vmKU4.esm.min.js.map +1 -0
  410. package/dist/chunks/vertexColorMixing-Cazf4vEl.esm.min.js +2 -0
  411. package/dist/chunks/vertexColorMixing-Cazf4vEl.esm.min.js.map +1 -0
  412. package/dist/chunks/vertexColorMixing-DGvq3Fju.esm.js +421 -0
  413. package/dist/chunks/vertexColorMixing-DGvq3Fju.esm.js.map +1 -0
  414. package/dist/chunks/vertexColorMixing-D_6ZvivZ.esm.min.js +2 -0
  415. package/dist/chunks/vertexColorMixing-D_6ZvivZ.esm.min.js.map +1 -0
  416. package/dist/chunks/vertexColorMixing-DuYHnuUm.esm.js +531 -0
  417. package/dist/chunks/vertexColorMixing-DuYHnuUm.esm.js.map +1 -0
  418. package/dist/chunks/webgpuEngine-DHaXinU4.esm.min.js +2 -0
  419. package/dist/chunks/webgpuEngine-DHaXinU4.esm.min.js.map +1 -0
  420. package/dist/chunks/webgpuEngine-Dxev7pbz.esm.js +11538 -0
  421. package/dist/chunks/webgpuEngine-Dxev7pbz.esm.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 @@
1
+ {"version":3,"file":"engine-_wVL12I1.esm.js","sources":["../../../../../dev/core/dist/Engines/Extensions/engine.alpha.js","../../../../../dev/core/dist/Engines/Extensions/engine.rawTexture.js","../../../../../dev/core/dist/Engines/Extensions/engine.readTexture.js","../../../../../dev/core/dist/Engines/Extensions/engine.dynamicBuffer.js","../../../../../dev/core/dist/Engines/Extensions/engine.cubeTexture.js","../../../../../dev/core/dist/Engines/WebGL/webGLRenderTargetWrapper.js","../../../../../dev/core/dist/Engines/Extensions/engine.renderTarget.js","../../../../../dev/core/dist/Engines/Extensions/engine.renderTargetTexture.js","../../../../../dev/core/dist/Engines/Extensions/engine.renderTargetCube.js","../../../../../dev/core/dist/Engines/Extensions/engine.prefilteredCubeTexture.js","../../../../../dev/core/dist/Engines/Extensions/engine.uniformBuffer.js","../../../../../dev/core/dist/Engines/engine.js"],"sourcesContent":["import { ThinEngine } from \"../../Engines/thinEngine\";\nimport { Constants } from \"../constants\";\nThinEngine.prototype.setAlphaMode = function (mode, noDepthWriteChange = false) {\n if (this._alphaMode === mode) {\n if (!noDepthWriteChange) {\n // Make sure we still have the correct depth mask according to the alpha mode (a transparent material could have forced writting to the depth buffer, for instance)\n const depthMask = mode === Constants.ALPHA_DISABLE;\n if (this.depthCullingState.depthMask !== depthMask) {\n this.depthCullingState.depthMask = depthMask;\n }\n }\n return;\n }\n switch (mode) {\n case Constants.ALPHA_DISABLE:\n this._alphaState.alphaBlend = false;\n break;\n case Constants.ALPHA_PREMULTIPLIED:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA, this._gl.ONE, this._gl.ONE);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_PREMULTIPLIED_PORTERDUFF:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA, this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_COMBINE:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA, this._gl.ONE_MINUS_SRC_ALPHA, this._gl.ONE, this._gl.ONE);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_ONEONE:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE, this._gl.ZERO, this._gl.ONE);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_ADD:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA, this._gl.ONE, this._gl.ZERO, this._gl.ONE);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_SUBTRACT:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ZERO, this._gl.ONE_MINUS_SRC_COLOR, this._gl.ONE, this._gl.ONE);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_MULTIPLY:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.DST_COLOR, this._gl.ZERO, this._gl.ONE, this._gl.ONE);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_MAXIMIZED:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA, this._gl.ONE_MINUS_SRC_COLOR, this._gl.ONE, this._gl.ONE);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_INTERPOLATE:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.CONSTANT_COLOR, this._gl.ONE_MINUS_CONSTANT_COLOR, this._gl.CONSTANT_ALPHA, this._gl.ONE_MINUS_CONSTANT_ALPHA);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_SCREENMODE:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE_MINUS_SRC_COLOR, this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_ONEONE_ONEONE:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE, this._gl.ONE, this._gl.ONE);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_ALPHATOCOLOR:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.DST_ALPHA, this._gl.ONE, this._gl.ZERO, this._gl.ZERO);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_REVERSEONEMINUS:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE_MINUS_DST_COLOR, this._gl.ONE_MINUS_SRC_COLOR, this._gl.ONE_MINUS_DST_ALPHA, this._gl.ONE_MINUS_SRC_ALPHA);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_SRC_DSTONEMINUSSRCALPHA:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA, this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_ONEONE_ONEZERO:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE, this._gl.ONE, this._gl.ZERO);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_EXCLUSION:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE_MINUS_DST_COLOR, this._gl.ONE_MINUS_SRC_COLOR, this._gl.ZERO, this._gl.ONE);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_LAYER_ACCUMULATE:\n // Same as ALPHA_COMBINE but accumulates (1 - alpha) values in the alpha channel for a later readout in order independant transparency\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA, this._gl.ONE_MINUS_SRC_ALPHA, this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA);\n this._alphaState.alphaBlend = true;\n break;\n }\n if (!noDepthWriteChange) {\n this.depthCullingState.depthMask = mode === Constants.ALPHA_DISABLE;\n }\n this._alphaMode = mode;\n};\n//# sourceMappingURL=engine.alpha.js.map","import { InternalTexture } from \"../../Materials/Textures/internalTexture\";\nimport { Logger } from \"../../Misc/logger\";\nimport { Constants } from \"../constants\";\nimport { ThinEngine } from \"../thinEngine\";\nimport { IsExponentOfTwo } from \"../../Misc/tools.functions\";\nThinEngine.prototype.updateRawTexture = function (texture, data, format, invertY, compression = null, type = Constants.TEXTURETYPE_UNSIGNED_BYTE, useSRGBBuffer = false) {\n if (!texture) {\n return;\n }\n // Babylon's internalSizedFomat but gl's texImage2D internalFormat\n const internalSizedFomat = this._getRGBABufferInternalSizedFormat(type, format, useSRGBBuffer);\n // Babylon's internalFormat but gl's texImage2D format\n const internalFormat = this._getInternalFormat(format);\n const textureType = this._getWebGLTextureType(type);\n this._bindTextureDirectly(this._gl.TEXTURE_2D, texture, true);\n this._unpackFlipY(invertY === undefined ? true : invertY ? true : false);\n if (!this._doNotHandleContextLost) {\n texture._bufferView = data;\n texture.format = format;\n texture.type = type;\n texture.invertY = invertY;\n texture._compression = compression;\n }\n if (texture.width % 4 !== 0) {\n this._gl.pixelStorei(this._gl.UNPACK_ALIGNMENT, 1);\n }\n if (compression && data) {\n this._gl.compressedTexImage2D(this._gl.TEXTURE_2D, 0, this.getCaps().s3tc[compression], texture.width, texture.height, 0, data);\n }\n else {\n this._gl.texImage2D(this._gl.TEXTURE_2D, 0, internalSizedFomat, texture.width, texture.height, 0, internalFormat, textureType, data);\n }\n if (texture.generateMipMaps) {\n this._gl.generateMipmap(this._gl.TEXTURE_2D);\n }\n this._bindTextureDirectly(this._gl.TEXTURE_2D, null);\n // this.resetTextureCache();\n texture.isReady = true;\n};\nThinEngine.prototype.createRawTexture = function (data, width, height, format, generateMipMaps, invertY, samplingMode, compression = null, type = Constants.TEXTURETYPE_UNSIGNED_BYTE, \n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ncreationFlags = 0, useSRGBBuffer = false) {\n const texture = new InternalTexture(this, 3 /* InternalTextureSource.Raw */);\n texture.baseWidth = width;\n texture.baseHeight = height;\n texture.width = width;\n texture.height = height;\n texture.format = format;\n texture.generateMipMaps = generateMipMaps;\n texture.samplingMode = samplingMode;\n texture.invertY = invertY;\n texture._compression = compression;\n texture.type = type;\n texture._useSRGBBuffer = this._getUseSRGBBuffer(useSRGBBuffer, !generateMipMaps);\n if (!this._doNotHandleContextLost) {\n texture._bufferView = data;\n }\n this.updateRawTexture(texture, data, format, invertY, compression, type, texture._useSRGBBuffer);\n this._bindTextureDirectly(this._gl.TEXTURE_2D, texture, true);\n // Filters\n const filters = this._getSamplingParameters(samplingMode, generateMipMaps);\n this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_MAG_FILTER, filters.mag);\n this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_MIN_FILTER, filters.min);\n if (generateMipMaps) {\n this._gl.generateMipmap(this._gl.TEXTURE_2D);\n }\n this._bindTextureDirectly(this._gl.TEXTURE_2D, null);\n this._internalTexturesCache.push(texture);\n return texture;\n};\nThinEngine.prototype.createRawCubeTexture = function (data, size, format, type, generateMipMaps, invertY, samplingMode, compression = null) {\n const gl = this._gl;\n const texture = new InternalTexture(this, 8 /* InternalTextureSource.CubeRaw */);\n texture.isCube = true;\n texture.format = format;\n texture.type = type;\n if (!this._doNotHandleContextLost) {\n texture._bufferViewArray = data;\n }\n const textureType = this._getWebGLTextureType(type);\n let internalFormat = this._getInternalFormat(format);\n if (internalFormat === gl.RGB) {\n internalFormat = gl.RGBA;\n }\n // Mipmap generation needs a sized internal format that is both color-renderable and texture-filterable\n if (textureType === gl.FLOAT && !this._caps.textureFloatLinearFiltering) {\n generateMipMaps = false;\n samplingMode = Constants.TEXTURE_NEAREST_SAMPLINGMODE;\n Logger.Warn(\"Float texture filtering is not supported. Mipmap generation and sampling mode are forced to false and TEXTURE_NEAREST_SAMPLINGMODE, respectively.\");\n }\n else if (textureType === this._gl.HALF_FLOAT_OES && !this._caps.textureHalfFloatLinearFiltering) {\n generateMipMaps = false;\n samplingMode = Constants.TEXTURE_NEAREST_SAMPLINGMODE;\n Logger.Warn(\"Half float texture filtering is not supported. Mipmap generation and sampling mode are forced to false and TEXTURE_NEAREST_SAMPLINGMODE, respectively.\");\n }\n else if (textureType === gl.FLOAT && !this._caps.textureFloatRender) {\n generateMipMaps = false;\n Logger.Warn(\"Render to float textures is not supported. Mipmap generation forced to false.\");\n }\n else if (textureType === gl.HALF_FLOAT && !this._caps.colorBufferFloat) {\n generateMipMaps = false;\n Logger.Warn(\"Render to half float textures is not supported. Mipmap generation forced to false.\");\n }\n const width = size;\n const height = width;\n texture.width = width;\n texture.height = height;\n texture.invertY = invertY;\n texture._compression = compression;\n // Double check on POT to generate Mips.\n const isPot = !this.needPOTTextures || (IsExponentOfTwo(texture.width) && IsExponentOfTwo(texture.height));\n if (!isPot) {\n generateMipMaps = false;\n }\n // Upload data if needed. The texture won't be ready until then.\n if (data) {\n this.updateRawCubeTexture(texture, data, format, type, invertY, compression);\n }\n else {\n const internalSizedFomat = this._getRGBABufferInternalSizedFormat(type);\n const level = 0;\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, texture, true);\n for (let faceIndex = 0; faceIndex < 6; faceIndex++) {\n if (compression) {\n gl.compressedTexImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex, level, this.getCaps().s3tc[compression], texture.width, texture.height, 0, undefined);\n }\n else {\n gl.texImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex, level, internalSizedFomat, texture.width, texture.height, 0, internalFormat, textureType, null);\n }\n }\n this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, null);\n }\n this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, texture, true);\n // Filters\n if (data && generateMipMaps) {\n this._gl.generateMipmap(this._gl.TEXTURE_CUBE_MAP);\n }\n const filters = this._getSamplingParameters(samplingMode, generateMipMaps);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MAG_FILTER, filters.mag);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MIN_FILTER, filters.min);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, null);\n texture.generateMipMaps = generateMipMaps;\n texture.samplingMode = samplingMode;\n texture.isReady = true;\n return texture;\n};\nThinEngine.prototype.updateRawCubeTexture = function (texture, data, format, type, invertY, compression = null, level = 0) {\n texture._bufferViewArray = data;\n texture.format = format;\n texture.type = type;\n texture.invertY = invertY;\n texture._compression = compression;\n const gl = this._gl;\n const textureType = this._getWebGLTextureType(type);\n let internalFormat = this._getInternalFormat(format);\n const internalSizedFomat = this._getRGBABufferInternalSizedFormat(type);\n let needConversion = false;\n if (internalFormat === gl.RGB) {\n internalFormat = gl.RGBA;\n needConversion = true;\n }\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, texture, true);\n this._unpackFlipY(invertY === undefined ? true : invertY ? true : false);\n if (texture.width % 4 !== 0) {\n gl.pixelStorei(gl.UNPACK_ALIGNMENT, 1);\n }\n // Data are known to be in +X +Y +Z -X -Y -Z\n for (let faceIndex = 0; faceIndex < 6; faceIndex++) {\n let faceData = data[faceIndex];\n if (compression) {\n gl.compressedTexImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex, level, this.getCaps().s3tc[compression], texture.width, texture.height, 0, faceData);\n }\n else {\n if (needConversion) {\n faceData = _convertRGBtoRGBATextureData(faceData, texture.width, texture.height, type);\n }\n gl.texImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex, level, internalSizedFomat, texture.width, texture.height, 0, internalFormat, textureType, faceData);\n }\n }\n const isPot = !this.needPOTTextures || (IsExponentOfTwo(texture.width) && IsExponentOfTwo(texture.height));\n if (isPot && texture.generateMipMaps && level === 0) {\n this._gl.generateMipmap(this._gl.TEXTURE_CUBE_MAP);\n }\n this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, null);\n // this.resetTextureCache();\n texture.isReady = true;\n};\nThinEngine.prototype.createRawCubeTextureFromUrl = function (url, scene, size, format, type, noMipmap, callback, mipmapGenerator, onLoad = null, onError = null, samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE, invertY = false) {\n const gl = this._gl;\n const texture = this.createRawCubeTexture(null, size, format, type, !noMipmap, invertY, samplingMode, null);\n scene?.addPendingData(texture);\n texture.url = url;\n texture.isReady = false;\n this._internalTexturesCache.push(texture);\n const onerror = (request, exception) => {\n scene?.removePendingData(texture);\n if (onError && request) {\n onError(request.status + \" \" + request.statusText, exception);\n }\n };\n const internalCallback = (data) => {\n const width = texture.width;\n const faceDataArrays = callback(data);\n if (!faceDataArrays) {\n return;\n }\n if (mipmapGenerator) {\n const textureType = this._getWebGLTextureType(type);\n let internalFormat = this._getInternalFormat(format);\n const internalSizedFomat = this._getRGBABufferInternalSizedFormat(type);\n let needConversion = false;\n if (internalFormat === gl.RGB) {\n internalFormat = gl.RGBA;\n needConversion = true;\n }\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, texture, true);\n this._unpackFlipY(false);\n const mipData = mipmapGenerator(faceDataArrays);\n for (let level = 0; level < mipData.length; level++) {\n const mipSize = width >> level;\n for (let faceIndex = 0; faceIndex < 6; faceIndex++) {\n let mipFaceData = mipData[level][faceIndex];\n if (needConversion) {\n mipFaceData = _convertRGBtoRGBATextureData(mipFaceData, mipSize, mipSize, type);\n }\n gl.texImage2D(faceIndex, level, internalSizedFomat, mipSize, mipSize, 0, internalFormat, textureType, mipFaceData);\n }\n }\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, null);\n }\n else {\n this.updateRawCubeTexture(texture, faceDataArrays, format, type, invertY);\n }\n texture.isReady = true;\n // this.resetTextureCache();\n scene?.removePendingData(texture);\n texture.onLoadedObservable.notifyObservers(texture);\n texture.onLoadedObservable.clear();\n if (onLoad) {\n onLoad();\n }\n };\n this._loadFile(url, (data) => {\n internalCallback(data);\n }, undefined, scene?.offlineProvider, true, onerror);\n return texture;\n};\n/**\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nfunction _convertRGBtoRGBATextureData(rgbData, width, height, textureType) {\n // Create new RGBA data container.\n let rgbaData;\n let val1 = 1;\n if (textureType === Constants.TEXTURETYPE_FLOAT) {\n rgbaData = new Float32Array(width * height * 4);\n }\n else if (textureType === Constants.TEXTURETYPE_HALF_FLOAT) {\n rgbaData = new Uint16Array(width * height * 4);\n val1 = 15360; // 15360 is the encoding of 1 in half float\n }\n else if (textureType === Constants.TEXTURETYPE_UNSIGNED_INTEGER) {\n rgbaData = new Uint32Array(width * height * 4);\n }\n else {\n rgbaData = new Uint8Array(width * height * 4);\n }\n // Convert each pixel.\n for (let x = 0; x < width; x++) {\n for (let y = 0; y < height; y++) {\n const index = (y * width + x) * 3;\n const newIndex = (y * width + x) * 4;\n // Map Old Value to new value.\n rgbaData[newIndex + 0] = rgbData[index + 0];\n rgbaData[newIndex + 1] = rgbData[index + 1];\n rgbaData[newIndex + 2] = rgbData[index + 2];\n // Add fully opaque alpha channel.\n rgbaData[newIndex + 3] = val1;\n }\n }\n return rgbaData;\n}\n/**\n * Create a function for createRawTexture3D/createRawTexture2DArray\n * @param is3D true for TEXTURE_3D and false for TEXTURE_2D_ARRAY\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nfunction _makeCreateRawTextureFunction(is3D) {\n return function (data, width, height, depth, format, generateMipMaps, invertY, samplingMode, compression = null, textureType = Constants.TEXTURETYPE_UNSIGNED_BYTE) {\n const target = is3D ? this._gl.TEXTURE_3D : this._gl.TEXTURE_2D_ARRAY;\n const source = is3D ? 10 /* InternalTextureSource.Raw3D */ : 11 /* InternalTextureSource.Raw2DArray */;\n const texture = new InternalTexture(this, source);\n texture.baseWidth = width;\n texture.baseHeight = height;\n texture.baseDepth = depth;\n texture.width = width;\n texture.height = height;\n texture.depth = depth;\n texture.format = format;\n texture.type = textureType;\n texture.generateMipMaps = generateMipMaps;\n texture.samplingMode = samplingMode;\n if (is3D) {\n texture.is3D = true;\n }\n else {\n texture.is2DArray = true;\n }\n if (!this._doNotHandleContextLost) {\n texture._bufferView = data;\n }\n if (is3D) {\n this.updateRawTexture3D(texture, data, format, invertY, compression, textureType);\n }\n else {\n this.updateRawTexture2DArray(texture, data, format, invertY, compression, textureType);\n }\n this._bindTextureDirectly(target, texture, true);\n // Filters\n const filters = this._getSamplingParameters(samplingMode, generateMipMaps);\n this._gl.texParameteri(target, this._gl.TEXTURE_MAG_FILTER, filters.mag);\n this._gl.texParameteri(target, this._gl.TEXTURE_MIN_FILTER, filters.min);\n if (generateMipMaps) {\n this._gl.generateMipmap(target);\n }\n this._bindTextureDirectly(target, null);\n this._internalTexturesCache.push(texture);\n return texture;\n };\n}\nThinEngine.prototype.createRawTexture2DArray = _makeCreateRawTextureFunction(false);\nThinEngine.prototype.createRawTexture3D = _makeCreateRawTextureFunction(true);\n/**\n * Create a function for updateRawTexture3D/updateRawTexture2DArray\n * @param is3D true for TEXTURE_3D and false for TEXTURE_2D_ARRAY\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nfunction _makeUpdateRawTextureFunction(is3D) {\n return function (texture, data, format, invertY, compression = null, textureType = Constants.TEXTURETYPE_UNSIGNED_BYTE) {\n const target = is3D ? this._gl.TEXTURE_3D : this._gl.TEXTURE_2D_ARRAY;\n const internalType = this._getWebGLTextureType(textureType);\n const internalFormat = this._getInternalFormat(format);\n const internalSizedFomat = this._getRGBABufferInternalSizedFormat(textureType, format);\n this._bindTextureDirectly(target, texture, true);\n this._unpackFlipY(invertY === undefined ? true : invertY ? true : false);\n if (!this._doNotHandleContextLost) {\n texture._bufferView = data;\n texture.format = format;\n texture.invertY = invertY;\n texture._compression = compression;\n }\n if (texture.width % 4 !== 0) {\n this._gl.pixelStorei(this._gl.UNPACK_ALIGNMENT, 1);\n }\n if (compression && data) {\n this._gl.compressedTexImage3D(target, 0, this.getCaps().s3tc[compression], texture.width, texture.height, texture.depth, 0, data);\n }\n else {\n this._gl.texImage3D(target, 0, internalSizedFomat, texture.width, texture.height, texture.depth, 0, internalFormat, internalType, data);\n }\n if (texture.generateMipMaps) {\n this._gl.generateMipmap(target);\n }\n this._bindTextureDirectly(target, null);\n // this.resetTextureCache();\n texture.isReady = true;\n };\n}\nThinEngine.prototype.updateRawTexture2DArray = _makeUpdateRawTextureFunction(false);\nThinEngine.prototype.updateRawTexture3D = _makeUpdateRawTextureFunction(true);\n//# sourceMappingURL=engine.rawTexture.js.map","import { ThinEngine } from \"../../Engines/thinEngine\";\n// back-compat\nimport { allocateAndCopyTypedBuffer } from \"../../Engines/abstractEngine.functions\";\nexport { allocateAndCopyTypedBuffer };\nThinEngine.prototype._readTexturePixelsSync = function (texture, width, height, faceIndex = -1, level = 0, buffer = null, flushRenderer = true, noDataConversion = false, x = 0, y = 0) {\n const gl = this._gl;\n if (!gl) {\n throw new Error(\"Engine does not have gl rendering context.\");\n }\n if (!this._dummyFramebuffer) {\n const dummy = gl.createFramebuffer();\n if (!dummy) {\n throw new Error(\"Unable to create dummy framebuffer\");\n }\n this._dummyFramebuffer = dummy;\n }\n gl.bindFramebuffer(gl.FRAMEBUFFER, this._dummyFramebuffer);\n if (faceIndex > -1) {\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex, texture._hardwareTexture?.underlyingResource, level);\n }\n else {\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture._hardwareTexture?.underlyingResource, level);\n }\n let readType = texture.type !== undefined ? this._getWebGLTextureType(texture.type) : gl.UNSIGNED_BYTE;\n if (!noDataConversion) {\n switch (readType) {\n case gl.UNSIGNED_BYTE:\n if (!buffer) {\n buffer = new Uint8Array(4 * width * height);\n }\n readType = gl.UNSIGNED_BYTE;\n break;\n default:\n if (!buffer) {\n buffer = new Float32Array(4 * width * height);\n }\n readType = gl.FLOAT;\n break;\n }\n }\n else if (!buffer) {\n buffer = allocateAndCopyTypedBuffer(texture.type, 4 * width * height);\n }\n if (flushRenderer) {\n this.flushFramebuffer();\n }\n gl.readPixels(x, y, width, height, gl.RGBA, readType, buffer);\n gl.bindFramebuffer(gl.FRAMEBUFFER, this._currentFramebuffer);\n return buffer;\n};\nThinEngine.prototype._readTexturePixels = function (texture, width, height, faceIndex = -1, level = 0, buffer = null, flushRenderer = true, noDataConversion = false, x = 0, y = 0) {\n return Promise.resolve(this._readTexturePixelsSync(texture, width, height, faceIndex, level, buffer, flushRenderer, noDataConversion, x, y));\n};\n//# sourceMappingURL=engine.readTexture.js.map","import { ThinEngine } from \"../../Engines/thinEngine\";\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nThinEngine.prototype.updateDynamicIndexBuffer = function (indexBuffer, indices, offset = 0) {\n // Force cache update\n this._currentBoundBuffer[this._gl.ELEMENT_ARRAY_BUFFER] = null;\n this.bindIndexBuffer(indexBuffer);\n let view;\n if (indexBuffer.is32Bits) {\n // anything else than Uint32Array needs to be converted to Uint32Array\n view = indices instanceof Uint32Array ? indices : new Uint32Array(indices);\n }\n else {\n // anything else than Uint16Array needs to be converted to Uint16Array\n view = indices instanceof Uint16Array ? indices : new Uint16Array(indices);\n }\n this._gl.bufferData(this._gl.ELEMENT_ARRAY_BUFFER, view, this._gl.DYNAMIC_DRAW);\n this._resetIndexBufferBinding();\n};\nThinEngine.prototype.updateDynamicVertexBuffer = function (vertexBuffer, data, byteOffset, byteLength) {\n this.bindArrayBuffer(vertexBuffer);\n if (byteOffset === undefined) {\n byteOffset = 0;\n }\n const dataLength = data.byteLength || data.length;\n if (byteLength === undefined || (byteLength >= dataLength && byteOffset === 0)) {\n if (data instanceof Array) {\n this._gl.bufferSubData(this._gl.ARRAY_BUFFER, byteOffset, new Float32Array(data));\n }\n else {\n this._gl.bufferSubData(this._gl.ARRAY_BUFFER, byteOffset, data);\n }\n }\n else {\n if (data instanceof Array) {\n this._gl.bufferSubData(this._gl.ARRAY_BUFFER, 0, new Float32Array(data).subarray(byteOffset, byteOffset + byteLength));\n }\n else {\n if (data instanceof ArrayBuffer) {\n data = new Uint8Array(data, byteOffset, byteLength);\n }\n else {\n data = new Uint8Array(data.buffer, data.byteOffset + byteOffset, byteLength);\n }\n this._gl.bufferSubData(this._gl.ARRAY_BUFFER, 0, data);\n }\n }\n this._resetVertexBufferBinding();\n};\n//# sourceMappingURL=engine.dynamicBuffer.js.map","import { ThinEngine } from \"../../Engines/thinEngine\";\nimport { InternalTexture } from \"../../Materials/Textures/internalTexture\";\nimport { Logger } from \"../../Misc/logger\";\nimport { Constants } from \"../constants\";\nimport { GetExponentOfTwo } from \"../../Misc/tools.functions\";\nThinEngine.prototype._createDepthStencilCubeTexture = function (size, options) {\n const internalTexture = new InternalTexture(this, 12 /* InternalTextureSource.DepthStencil */);\n internalTexture.isCube = true;\n if (this.webGLVersion === 1) {\n Logger.Error(\"Depth cube texture is not supported by WebGL 1.\");\n return internalTexture;\n }\n const internalOptions = {\n bilinearFiltering: false,\n comparisonFunction: 0,\n generateStencil: false,\n ...options,\n };\n const gl = this._gl;\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, internalTexture, true);\n this._setupDepthStencilTexture(internalTexture, size, internalOptions.bilinearFiltering, internalOptions.comparisonFunction);\n // Create the depth/stencil buffer\n for (let face = 0; face < 6; face++) {\n if (internalOptions.generateStencil) {\n gl.texImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + face, 0, gl.DEPTH24_STENCIL8, size, size, 0, gl.DEPTH_STENCIL, gl.UNSIGNED_INT_24_8, null);\n }\n else {\n gl.texImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + face, 0, gl.DEPTH_COMPONENT24, size, size, 0, gl.DEPTH_COMPONENT, gl.UNSIGNED_INT, null);\n }\n }\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, null);\n this._internalTexturesCache.push(internalTexture);\n return internalTexture;\n};\nThinEngine.prototype._setCubeMapTextureParams = function (texture, loadMipmap, maxLevel) {\n const gl = this._gl;\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MIN_FILTER, loadMipmap ? gl.LINEAR_MIPMAP_LINEAR : gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n texture.samplingMode = loadMipmap ? Constants.TEXTURE_TRILINEAR_SAMPLINGMODE : Constants.TEXTURE_LINEAR_LINEAR;\n if (loadMipmap && this.getCaps().textureMaxLevel && maxLevel !== undefined && maxLevel > 0) {\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MAX_LEVEL, maxLevel);\n texture._maxLodLevel = maxLevel;\n }\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, null);\n};\nThinEngine.prototype.createCubeTexture = function (rootUrl, scene, files, noMipmap, onLoad = null, onError = null, format, forcedExtension = null, createPolynomials = false, lodScale = 0, lodOffset = 0, fallback = null, loaderOptions, useSRGBBuffer = false, buffer = null) {\n const gl = this._gl;\n return this.createCubeTextureBase(rootUrl, scene, files, !!noMipmap, onLoad, onError, format, forcedExtension, createPolynomials, lodScale, lodOffset, fallback, (texture) => this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, texture, true), (texture, imgs) => {\n const width = this.needPOTTextures ? GetExponentOfTwo(imgs[0].width, this._caps.maxCubemapTextureSize) : imgs[0].width;\n const height = width;\n const faces = [\n gl.TEXTURE_CUBE_MAP_POSITIVE_X,\n gl.TEXTURE_CUBE_MAP_POSITIVE_Y,\n gl.TEXTURE_CUBE_MAP_POSITIVE_Z,\n gl.TEXTURE_CUBE_MAP_NEGATIVE_X,\n gl.TEXTURE_CUBE_MAP_NEGATIVE_Y,\n gl.TEXTURE_CUBE_MAP_NEGATIVE_Z,\n ];\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, texture, true);\n this._unpackFlipY(false);\n const internalFormat = format ? this._getInternalFormat(format, texture._useSRGBBuffer) : texture._useSRGBBuffer ? this._glSRGBExtensionValues.SRGB8_ALPHA8 : gl.RGBA;\n let texelFormat = format ? this._getInternalFormat(format) : gl.RGBA;\n if (texture._useSRGBBuffer && this.webGLVersion === 1) {\n texelFormat = internalFormat;\n }\n for (let index = 0; index < faces.length; index++) {\n if (imgs[index].width !== width || imgs[index].height !== height) {\n this._prepareWorkingCanvas();\n if (!this._workingCanvas || !this._workingContext) {\n Logger.Warn(\"Cannot create canvas to resize texture.\");\n return;\n }\n this._workingCanvas.width = width;\n this._workingCanvas.height = height;\n this._workingContext.drawImage(imgs[index], 0, 0, imgs[index].width, imgs[index].height, 0, 0, width, height);\n gl.texImage2D(faces[index], 0, internalFormat, texelFormat, gl.UNSIGNED_BYTE, this._workingCanvas);\n }\n else {\n gl.texImage2D(faces[index], 0, internalFormat, texelFormat, gl.UNSIGNED_BYTE, imgs[index]);\n }\n }\n if (!noMipmap) {\n gl.generateMipmap(gl.TEXTURE_CUBE_MAP);\n }\n this._setCubeMapTextureParams(texture, !noMipmap);\n texture.width = width;\n texture.height = height;\n texture.isReady = true;\n if (format) {\n texture.format = format;\n }\n texture.onLoadedObservable.notifyObservers(texture);\n texture.onLoadedObservable.clear();\n if (onLoad) {\n onLoad();\n }\n }, !!useSRGBBuffer, buffer);\n};\nThinEngine.prototype.generateMipMapsForCubemap = function (texture, unbind = true) {\n if (texture.generateMipMaps) {\n const gl = this._gl;\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, texture, true);\n gl.generateMipmap(gl.TEXTURE_CUBE_MAP);\n if (unbind) {\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, null);\n }\n }\n};\n//# sourceMappingURL=engine.cubeTexture.js.map","import { Constants } from \"../constants\";\nimport { RenderTargetWrapper } from \"../renderTargetWrapper\";\nimport { HasStencilAspect } from \"../../Materials/Textures/internalTexture\";\n/** @internal */\nexport class WebGLRenderTargetWrapper extends RenderTargetWrapper {\n setDepthStencilTexture(texture, disposeExisting = true) {\n super.setDepthStencilTexture(texture, disposeExisting);\n if (!texture) {\n return;\n }\n const engine = this._engine;\n const gl = this._context;\n const hardwareTexture = texture._hardwareTexture;\n if (hardwareTexture && texture._autoMSAAManagement && this._MSAAFramebuffer) {\n const currentFB = engine._currentFramebuffer;\n engine._bindUnboundFramebuffer(this._MSAAFramebuffer);\n gl.framebufferRenderbuffer(gl.FRAMEBUFFER, HasStencilAspect(texture.format) ? gl.DEPTH_STENCIL_ATTACHMENT : gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, hardwareTexture.getMSAARenderBuffer());\n engine._bindUnboundFramebuffer(currentFB);\n }\n }\n constructor(isMulti, isCube, size, engine, context) {\n super(isMulti, isCube, size, engine);\n /**\n * @internal\n */\n this._framebuffer = null;\n /**\n * @internal\n */\n this._depthStencilBuffer = null;\n // eslint-disable-next-line @typescript-eslint/naming-convention\n /**\n * @internal\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n this._MSAAFramebuffer = null;\n // Multiview\n /**\n * @internal\n */\n this._colorTextureArray = null;\n /**\n * @internal\n */\n this._depthStencilTextureArray = null;\n /**\n * @internal\n */\n this._disposeOnlyFramebuffers = false;\n /**\n * @internal\n */\n this._currentLOD = 0;\n this._context = context;\n }\n _cloneRenderTargetWrapper() {\n let rtw = null;\n if (this._colorTextureArray && this._depthStencilTextureArray) {\n rtw = this._engine.createMultiviewRenderTargetTexture(this.width, this.height);\n rtw.texture.isReady = true;\n }\n else {\n rtw = super._cloneRenderTargetWrapper();\n }\n return rtw;\n }\n _swapRenderTargetWrapper(target) {\n super._swapRenderTargetWrapper(target);\n target._framebuffer = this._framebuffer;\n target._depthStencilBuffer = this._depthStencilBuffer;\n target._MSAAFramebuffer = this._MSAAFramebuffer;\n target._colorTextureArray = this._colorTextureArray;\n target._depthStencilTextureArray = this._depthStencilTextureArray;\n this._framebuffer = this._depthStencilBuffer = this._MSAAFramebuffer = this._colorTextureArray = this._depthStencilTextureArray = null;\n }\n /**\n * Creates the depth/stencil texture\n * @param comparisonFunction Comparison function to use for the texture\n * @param bilinearFiltering true if bilinear filtering should be used when sampling the texture\n * @param generateStencil true if the stencil aspect should also be created\n * @param samples sample count to use when creating the texture\n * @param format format of the depth texture\n * @param label defines the label to use for the texture (for debugging purpose only)\n * @returns the depth/stencil created texture\n */\n createDepthStencilTexture(comparisonFunction = 0, bilinearFiltering = true, generateStencil = false, samples = 1, format = Constants.TEXTUREFORMAT_DEPTH32_FLOAT, label) {\n if (this._depthStencilBuffer) {\n const engine = this._engine;\n // Dispose previous depth/stencil render buffers and clear the corresponding attachment.\n // Next time this framebuffer is bound, the new depth/stencil texture will be attached.\n const currentFrameBuffer = engine._currentFramebuffer;\n const gl = this._context;\n engine._bindUnboundFramebuffer(this._framebuffer);\n gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, gl.RENDERBUFFER, null);\n gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, null);\n gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.STENCIL_ATTACHMENT, gl.RENDERBUFFER, null);\n engine._bindUnboundFramebuffer(currentFrameBuffer);\n gl.deleteRenderbuffer(this._depthStencilBuffer);\n this._depthStencilBuffer = null;\n }\n return super.createDepthStencilTexture(comparisonFunction, bilinearFiltering, generateStencil, samples, format, label);\n }\n /**\n * Shares the depth buffer of this render target with another render target.\n * @param renderTarget Destination renderTarget\n */\n shareDepth(renderTarget) {\n super.shareDepth(renderTarget);\n const gl = this._context;\n const depthbuffer = this._depthStencilBuffer;\n const framebuffer = renderTarget._MSAAFramebuffer || renderTarget._framebuffer;\n const engine = this._engine;\n if (renderTarget._depthStencilBuffer && renderTarget._depthStencilBuffer !== depthbuffer) {\n gl.deleteRenderbuffer(renderTarget._depthStencilBuffer);\n }\n renderTarget._depthStencilBuffer = depthbuffer;\n const attachment = renderTarget._generateStencilBuffer ? gl.DEPTH_STENCIL_ATTACHMENT : gl.DEPTH_ATTACHMENT;\n engine._bindUnboundFramebuffer(framebuffer);\n gl.framebufferRenderbuffer(gl.FRAMEBUFFER, attachment, gl.RENDERBUFFER, depthbuffer);\n engine._bindUnboundFramebuffer(null);\n }\n /**\n * Binds a texture to this render target on a specific attachment\n * @param texture The texture to bind to the framebuffer\n * @param attachmentIndex Index of the attachment\n * @param faceIndexOrLayer The face or layer of the texture to render to in case of cube texture or array texture\n * @param lodLevel defines the lod level to bind to the frame buffer\n */\n _bindTextureRenderTarget(texture, attachmentIndex = 0, faceIndexOrLayer, lodLevel = 0) {\n const hardwareTexture = texture._hardwareTexture;\n if (!hardwareTexture) {\n return;\n }\n const framebuffer = this._framebuffer;\n const engine = this._engine;\n const currentFB = engine._currentFramebuffer;\n engine._bindUnboundFramebuffer(framebuffer);\n let attachment;\n if (engine.webGLVersion > 1) {\n const gl = this._context;\n attachment = gl[\"COLOR_ATTACHMENT\" + attachmentIndex];\n if (texture.is2DArray || texture.is3D) {\n faceIndexOrLayer = faceIndexOrLayer ?? this.layerIndices?.[attachmentIndex] ?? 0;\n gl.framebufferTextureLayer(gl.FRAMEBUFFER, attachment, hardwareTexture.underlyingResource, lodLevel, faceIndexOrLayer);\n }\n else if (texture.isCube) {\n // if face index is not specified, try to query it from faceIndices\n // default is face 0\n faceIndexOrLayer = faceIndexOrLayer ?? this.faceIndices?.[attachmentIndex] ?? 0;\n gl.framebufferTexture2D(gl.FRAMEBUFFER, attachment, gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndexOrLayer, hardwareTexture.underlyingResource, lodLevel);\n }\n else {\n gl.framebufferTexture2D(gl.FRAMEBUFFER, attachment, gl.TEXTURE_2D, hardwareTexture.underlyingResource, lodLevel);\n }\n }\n else {\n // Default behavior (WebGL)\n const gl = this._context;\n attachment = gl[\"COLOR_ATTACHMENT\" + attachmentIndex + \"_WEBGL\"];\n const target = faceIndexOrLayer !== undefined ? gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndexOrLayer : gl.TEXTURE_2D;\n gl.framebufferTexture2D(gl.FRAMEBUFFER, attachment, target, hardwareTexture.underlyingResource, lodLevel);\n }\n if (texture._autoMSAAManagement && this._MSAAFramebuffer) {\n const gl = this._context;\n engine._bindUnboundFramebuffer(this._MSAAFramebuffer);\n gl.framebufferRenderbuffer(gl.FRAMEBUFFER, attachment, gl.RENDERBUFFER, hardwareTexture.getMSAARenderBuffer());\n }\n engine._bindUnboundFramebuffer(currentFB);\n }\n /**\n * Set a texture in the textures array\n * @param texture the texture to set\n * @param index the index in the textures array to set\n * @param disposePrevious If this function should dispose the previous texture\n */\n setTexture(texture, index = 0, disposePrevious = true) {\n super.setTexture(texture, index, disposePrevious);\n this._bindTextureRenderTarget(texture, index);\n }\n /**\n * Sets the layer and face indices of every render target texture\n * @param layers The layer of the texture to be set (make negative to not modify)\n * @param faces The face of the texture to be set (make negative to not modify)\n */\n setLayerAndFaceIndices(layers, faces) {\n super.setLayerAndFaceIndices(layers, faces);\n if (!this.textures || !this.layerIndices || !this.faceIndices) {\n return;\n }\n // the length of this._attachments is the right one as it does not count the depth texture, in case we generated it\n const textureCount = this._attachments?.length ?? this.textures.length;\n for (let index = 0; index < textureCount; index++) {\n const texture = this.textures[index];\n if (!texture) {\n // The target type was probably -1 at creation time and setTexture has not been called yet for this index\n continue;\n }\n if (texture.is2DArray || texture.is3D) {\n this._bindTextureRenderTarget(texture, index, this.layerIndices[index]);\n }\n else if (texture.isCube) {\n this._bindTextureRenderTarget(texture, index, this.faceIndices[index]);\n }\n else {\n this._bindTextureRenderTarget(texture, index);\n }\n }\n }\n /**\n * Set the face and layer indices of a texture in the textures array\n * @param index The index of the texture in the textures array to modify\n * @param layer The layer of the texture to be set\n * @param face The face of the texture to be set\n */\n setLayerAndFaceIndex(index = 0, layer, face) {\n super.setLayerAndFaceIndex(index, layer, face);\n if (!this.textures || !this.layerIndices || !this.faceIndices) {\n return;\n }\n const texture = this.textures[index];\n if (texture.is2DArray || texture.is3D) {\n this._bindTextureRenderTarget(this.textures[index], index, this.layerIndices[index]);\n }\n else if (texture.isCube) {\n this._bindTextureRenderTarget(this.textures[index], index, this.faceIndices[index]);\n }\n }\n resolveMSAATextures() {\n const engine = this._engine;\n const currentFramebuffer = engine._currentFramebuffer;\n engine._bindUnboundFramebuffer(this._MSAAFramebuffer);\n super.resolveMSAATextures();\n engine._bindUnboundFramebuffer(currentFramebuffer);\n }\n dispose(disposeOnlyFramebuffers = this._disposeOnlyFramebuffers) {\n const gl = this._context;\n if (!disposeOnlyFramebuffers) {\n if (this._colorTextureArray) {\n this._context.deleteTexture(this._colorTextureArray);\n this._colorTextureArray = null;\n }\n if (this._depthStencilTextureArray) {\n this._context.deleteTexture(this._depthStencilTextureArray);\n this._depthStencilTextureArray = null;\n }\n }\n if (this._framebuffer) {\n gl.deleteFramebuffer(this._framebuffer);\n this._framebuffer = null;\n }\n if (this._depthStencilBuffer) {\n gl.deleteRenderbuffer(this._depthStencilBuffer);\n this._depthStencilBuffer = null;\n }\n if (this._MSAAFramebuffer) {\n gl.deleteFramebuffer(this._MSAAFramebuffer);\n this._MSAAFramebuffer = null;\n }\n super.dispose(disposeOnlyFramebuffers);\n }\n}\n//# sourceMappingURL=webGLRenderTargetWrapper.js.map","import { InternalTexture } from \"../../Materials/Textures/internalTexture\";\nimport { Logger } from \"../../Misc/logger\";\nimport { ThinEngine } from \"../thinEngine\";\nimport { WebGLRenderTargetWrapper } from \"../WebGL/webGLRenderTargetWrapper\";\nimport { Constants } from \"../constants\";\nimport \"../AbstractEngine/abstractEngine.texture\";\nThinEngine.prototype._createHardwareRenderTargetWrapper = function (isMulti, isCube, size) {\n const rtWrapper = new WebGLRenderTargetWrapper(isMulti, isCube, size, this, this._gl);\n this._renderTargetWrapperCache.push(rtWrapper);\n return rtWrapper;\n};\nThinEngine.prototype.createRenderTargetTexture = function (size, options) {\n const rtWrapper = this._createHardwareRenderTargetWrapper(false, false, size);\n let generateDepthBuffer = true;\n let generateStencilBuffer = false;\n let noColorAttachment = false;\n let colorAttachment = undefined;\n let samples = 1;\n let label = undefined;\n if (options !== undefined && typeof options === \"object\") {\n generateDepthBuffer = options.generateDepthBuffer ?? true;\n generateStencilBuffer = !!options.generateStencilBuffer;\n noColorAttachment = !!options.noColorAttachment;\n colorAttachment = options.colorAttachment;\n samples = options.samples ?? 1;\n label = options.label;\n }\n const texture = colorAttachment || (noColorAttachment ? null : this._createInternalTexture(size, options, true, 5 /* InternalTextureSource.RenderTarget */));\n const width = size.width || size;\n const height = size.height || size;\n const currentFrameBuffer = this._currentFramebuffer;\n const gl = this._gl;\n // Create the framebuffer\n const framebuffer = gl.createFramebuffer();\n this._bindUnboundFramebuffer(framebuffer);\n rtWrapper._depthStencilBuffer = this._setupFramebufferDepthAttachments(generateStencilBuffer, generateDepthBuffer, width, height);\n // No need to rebind on every frame\n if (texture && !texture.is2DArray && !texture.is3D) {\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture._hardwareTexture.underlyingResource, 0);\n }\n this._bindUnboundFramebuffer(currentFrameBuffer);\n rtWrapper.label = label ?? \"RenderTargetWrapper\";\n rtWrapper._framebuffer = framebuffer;\n rtWrapper._generateDepthBuffer = generateDepthBuffer;\n rtWrapper._generateStencilBuffer = generateStencilBuffer;\n rtWrapper.setTextures(texture);\n if (!colorAttachment) {\n this.updateRenderTargetTextureSampleCount(rtWrapper, samples);\n }\n else {\n rtWrapper._samples = colorAttachment.samples;\n if (colorAttachment.samples > 1) {\n const msaaRenderBuffer = colorAttachment._hardwareTexture.getMSAARenderBuffer(0);\n rtWrapper._MSAAFramebuffer = gl.createFramebuffer();\n this._bindUnboundFramebuffer(rtWrapper._MSAAFramebuffer);\n gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, msaaRenderBuffer);\n this._bindUnboundFramebuffer(null);\n }\n }\n return rtWrapper;\n};\nThinEngine.prototype._createDepthStencilTexture = function (size, options, rtWrapper) {\n const gl = this._gl;\n const layers = size.layers || 0;\n const depth = size.depth || 0;\n let target = gl.TEXTURE_2D;\n if (layers !== 0) {\n target = gl.TEXTURE_2D_ARRAY;\n }\n else if (depth !== 0) {\n target = gl.TEXTURE_3D;\n }\n const internalTexture = new InternalTexture(this, 12 /* InternalTextureSource.DepthStencil */);\n internalTexture.label = options.label;\n if (!this._caps.depthTextureExtension) {\n Logger.Error(\"Depth texture is not supported by your browser or hardware.\");\n return internalTexture;\n }\n const internalOptions = {\n bilinearFiltering: false,\n comparisonFunction: 0,\n generateStencil: false,\n ...options,\n };\n this._bindTextureDirectly(target, internalTexture, true);\n this._setupDepthStencilTexture(internalTexture, size, internalOptions.comparisonFunction === 0 ? false : internalOptions.bilinearFiltering, internalOptions.comparisonFunction, internalOptions.samples);\n if (internalOptions.depthTextureFormat !== undefined) {\n if (internalOptions.depthTextureFormat !== Constants.TEXTUREFORMAT_DEPTH16 &&\n internalOptions.depthTextureFormat !== Constants.TEXTUREFORMAT_DEPTH24 &&\n internalOptions.depthTextureFormat !== Constants.TEXTUREFORMAT_DEPTH24UNORM_STENCIL8 &&\n internalOptions.depthTextureFormat !== Constants.TEXTUREFORMAT_DEPTH24_STENCIL8 &&\n internalOptions.depthTextureFormat !== Constants.TEXTUREFORMAT_DEPTH32_FLOAT &&\n internalOptions.depthTextureFormat !== Constants.TEXTUREFORMAT_DEPTH32FLOAT_STENCIL8) {\n Logger.Error(`Depth texture ${internalOptions.depthTextureFormat} format is not supported.`);\n return internalTexture;\n }\n internalTexture.format = internalOptions.depthTextureFormat;\n }\n else {\n internalTexture.format = internalOptions.generateStencil ? Constants.TEXTUREFORMAT_DEPTH24_STENCIL8 : Constants.TEXTUREFORMAT_DEPTH24;\n }\n const hasStencil = internalTexture.format === Constants.TEXTUREFORMAT_DEPTH24UNORM_STENCIL8 ||\n internalTexture.format === Constants.TEXTUREFORMAT_DEPTH24_STENCIL8 ||\n internalTexture.format === Constants.TEXTUREFORMAT_DEPTH32FLOAT_STENCIL8;\n const type = this._getWebGLTextureTypeFromDepthTextureFormat(internalTexture.format);\n const format = hasStencil ? gl.DEPTH_STENCIL : gl.DEPTH_COMPONENT;\n const internalFormat = this._getInternalFormatFromDepthTextureFormat(internalTexture.format, true, hasStencil);\n if (internalTexture.is2DArray) {\n gl.texImage3D(target, 0, internalFormat, internalTexture.width, internalTexture.height, layers, 0, format, type, null);\n }\n else if (internalTexture.is3D) {\n gl.texImage3D(target, 0, internalFormat, internalTexture.width, internalTexture.height, depth, 0, format, type, null);\n }\n else {\n gl.texImage2D(target, 0, internalFormat, internalTexture.width, internalTexture.height, 0, format, type, null);\n }\n this._bindTextureDirectly(target, null);\n this._internalTexturesCache.push(internalTexture);\n if (rtWrapper._depthStencilBuffer) {\n gl.deleteRenderbuffer(rtWrapper._depthStencilBuffer);\n rtWrapper._depthStencilBuffer = null;\n }\n this._bindUnboundFramebuffer(rtWrapper._MSAAFramebuffer ?? rtWrapper._framebuffer);\n rtWrapper._generateStencilBuffer = hasStencil;\n rtWrapper._depthStencilTextureWithStencil = hasStencil;\n rtWrapper._depthStencilBuffer = this._setupFramebufferDepthAttachments(rtWrapper._generateStencilBuffer, rtWrapper._generateDepthBuffer, rtWrapper.width, rtWrapper.height, rtWrapper.samples, internalTexture.format);\n this._bindUnboundFramebuffer(null);\n return internalTexture;\n};\nThinEngine.prototype.updateRenderTargetTextureSampleCount = function (rtWrapper, samples) {\n if (this.webGLVersion < 2 || !rtWrapper) {\n return 1;\n }\n if (rtWrapper.samples === samples) {\n return samples;\n }\n const gl = this._gl;\n samples = Math.min(samples, this.getCaps().maxMSAASamples);\n // Dispose previous render buffers\n if (rtWrapper._depthStencilBuffer) {\n gl.deleteRenderbuffer(rtWrapper._depthStencilBuffer);\n rtWrapper._depthStencilBuffer = null;\n }\n if (rtWrapper._MSAAFramebuffer) {\n gl.deleteFramebuffer(rtWrapper._MSAAFramebuffer);\n rtWrapper._MSAAFramebuffer = null;\n }\n const hardwareTexture = rtWrapper.texture?._hardwareTexture;\n hardwareTexture?.releaseMSAARenderBuffers();\n if (rtWrapper.texture && samples > 1 && typeof gl.renderbufferStorageMultisample === \"function\") {\n const framebuffer = gl.createFramebuffer();\n if (!framebuffer) {\n throw new Error(\"Unable to create multi sampled framebuffer\");\n }\n rtWrapper._MSAAFramebuffer = framebuffer;\n this._bindUnboundFramebuffer(rtWrapper._MSAAFramebuffer);\n const colorRenderbuffer = this._createRenderBuffer(rtWrapper.texture.width, rtWrapper.texture.height, samples, -1 /* not used */, this._getRGBABufferInternalSizedFormat(rtWrapper.texture.type, rtWrapper.texture.format, rtWrapper.texture._useSRGBBuffer), gl.COLOR_ATTACHMENT0, false);\n if (!colorRenderbuffer) {\n throw new Error(\"Unable to create multi sampled framebuffer\");\n }\n hardwareTexture?.addMSAARenderBuffer(colorRenderbuffer);\n }\n this._bindUnboundFramebuffer(rtWrapper._MSAAFramebuffer ?? rtWrapper._framebuffer);\n if (rtWrapper.texture) {\n rtWrapper.texture.samples = samples;\n }\n rtWrapper._samples = samples;\n const depthFormat = rtWrapper._depthStencilTexture ? rtWrapper._depthStencilTexture.format : undefined;\n rtWrapper._depthStencilBuffer = this._setupFramebufferDepthAttachments(rtWrapper._generateStencilBuffer, rtWrapper._generateDepthBuffer, rtWrapper.width, rtWrapper.height, samples, depthFormat);\n this._bindUnboundFramebuffer(null);\n return samples;\n};\nThinEngine.prototype._setupDepthStencilTexture = function (internalTexture, size, bilinearFiltering, comparisonFunction, samples = 1) {\n const width = size.width ?? size;\n const height = size.height ?? size;\n const layers = size.layers || 0;\n const depth = size.depth || 0;\n internalTexture.baseWidth = width;\n internalTexture.baseHeight = height;\n internalTexture.width = width;\n internalTexture.height = height;\n internalTexture.is2DArray = layers > 0;\n internalTexture.depth = layers || depth;\n internalTexture.isReady = true;\n internalTexture.samples = samples;\n internalTexture.generateMipMaps = false;\n internalTexture.samplingMode = bilinearFiltering ? Constants.TEXTURE_BILINEAR_SAMPLINGMODE : Constants.TEXTURE_NEAREST_SAMPLINGMODE;\n internalTexture.type = Constants.TEXTURETYPE_UNSIGNED_BYTE;\n internalTexture._comparisonFunction = comparisonFunction;\n const gl = this._gl;\n const target = this._getTextureTarget(internalTexture);\n const samplingParameters = this._getSamplingParameters(internalTexture.samplingMode, false);\n gl.texParameteri(target, gl.TEXTURE_MAG_FILTER, samplingParameters.mag);\n gl.texParameteri(target, gl.TEXTURE_MIN_FILTER, samplingParameters.min);\n gl.texParameteri(target, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(target, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n // TEXTURE_COMPARE_FUNC/MODE are only availble in WebGL2.\n if (this.webGLVersion > 1) {\n if (comparisonFunction === 0) {\n gl.texParameteri(target, gl.TEXTURE_COMPARE_FUNC, Constants.LEQUAL);\n gl.texParameteri(target, gl.TEXTURE_COMPARE_MODE, gl.NONE);\n }\n else {\n gl.texParameteri(target, gl.TEXTURE_COMPARE_FUNC, comparisonFunction);\n gl.texParameteri(target, gl.TEXTURE_COMPARE_MODE, gl.COMPARE_REF_TO_TEXTURE);\n }\n }\n};\n//# sourceMappingURL=engine.renderTarget.js.map","import { ThinEngine } from \"../../Engines/thinEngine\";\nThinEngine.prototype.setDepthStencilTexture = function (channel, uniform, texture, name) {\n if (channel === undefined) {\n return;\n }\n if (uniform) {\n this._boundUniforms[channel] = uniform;\n }\n if (!texture || !texture.depthStencilTexture) {\n this._setTexture(channel, null, undefined, undefined, name);\n }\n else {\n this._setTexture(channel, texture, false, true, name);\n }\n};\n//# sourceMappingURL=engine.renderTargetTexture.js.map","import { InternalTexture } from \"../../Materials/Textures/internalTexture\";\nimport { Logger } from \"../../Misc/logger\";\nimport { Constants } from \"../constants\";\nimport { ThinEngine } from \"../thinEngine\";\nThinEngine.prototype.createRenderTargetCubeTexture = function (size, options) {\n const rtWrapper = this._createHardwareRenderTargetWrapper(false, true, size);\n const fullOptions = {\n generateMipMaps: true,\n generateDepthBuffer: true,\n generateStencilBuffer: false,\n type: Constants.TEXTURETYPE_UNSIGNED_BYTE,\n samplingMode: Constants.TEXTURE_TRILINEAR_SAMPLINGMODE,\n format: Constants.TEXTUREFORMAT_RGBA,\n ...options,\n };\n fullOptions.generateStencilBuffer = fullOptions.generateDepthBuffer && fullOptions.generateStencilBuffer;\n if (fullOptions.type === Constants.TEXTURETYPE_FLOAT && !this._caps.textureFloatLinearFiltering) {\n // if floating point linear (gl.FLOAT) then force to NEAREST_SAMPLINGMODE\n fullOptions.samplingMode = Constants.TEXTURE_NEAREST_SAMPLINGMODE;\n }\n else if (fullOptions.type === Constants.TEXTURETYPE_HALF_FLOAT && !this._caps.textureHalfFloatLinearFiltering) {\n // if floating point linear (HALF_FLOAT) then force to NEAREST_SAMPLINGMODE\n fullOptions.samplingMode = Constants.TEXTURE_NEAREST_SAMPLINGMODE;\n }\n const gl = this._gl;\n const texture = new InternalTexture(this, 5 /* InternalTextureSource.RenderTarget */);\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, texture, true);\n const filters = this._getSamplingParameters(fullOptions.samplingMode, fullOptions.generateMipMaps);\n if (fullOptions.type === Constants.TEXTURETYPE_FLOAT && !this._caps.textureFloat) {\n fullOptions.type = Constants.TEXTURETYPE_UNSIGNED_BYTE;\n Logger.Warn(\"Float textures are not supported. Cube render target forced to TEXTURETYPE_UNESIGNED_BYTE type\");\n }\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MAG_FILTER, filters.mag);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MIN_FILTER, filters.min);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n for (let face = 0; face < 6; face++) {\n gl.texImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + face, 0, this._getRGBABufferInternalSizedFormat(fullOptions.type, fullOptions.format), size, size, 0, this._getInternalFormat(fullOptions.format), this._getWebGLTextureType(fullOptions.type), null);\n }\n // Create the framebuffer\n const framebuffer = gl.createFramebuffer();\n this._bindUnboundFramebuffer(framebuffer);\n rtWrapper._depthStencilBuffer = this._setupFramebufferDepthAttachments(fullOptions.generateStencilBuffer, fullOptions.generateDepthBuffer, size, size);\n // MipMaps\n if (fullOptions.generateMipMaps) {\n gl.generateMipmap(gl.TEXTURE_CUBE_MAP);\n }\n // Unbind\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, null);\n this._bindUnboundFramebuffer(null);\n rtWrapper._framebuffer = framebuffer;\n rtWrapper._generateDepthBuffer = fullOptions.generateDepthBuffer;\n rtWrapper._generateStencilBuffer = fullOptions.generateStencilBuffer;\n texture.width = size;\n texture.height = size;\n texture.isReady = true;\n texture.isCube = true;\n texture.samples = 1;\n texture.generateMipMaps = fullOptions.generateMipMaps;\n texture.samplingMode = fullOptions.samplingMode;\n texture.type = fullOptions.type;\n texture.format = fullOptions.format;\n this._internalTexturesCache.push(texture);\n rtWrapper.setTextures(texture);\n return rtWrapper;\n};\n//# sourceMappingURL=engine.renderTargetCube.js.map","import { ThinEngine } from \"../../Engines/thinEngine\";\nimport { InternalTexture } from \"../../Materials/Textures/internalTexture\";\nimport { Logger } from \"../../Misc/logger\";\nimport { Constants } from \"../constants\";\nimport { SphericalPolynomial } from \"core/Maths/sphericalPolynomial\";\nimport { BaseTexture } from \"core/Materials/Textures/baseTexture\";\nThinEngine.prototype.createPrefilteredCubeTexture = function (rootUrl, scene, lodScale, lodOffset, onLoad = null, onError = null, format, forcedExtension = null, createPolynomials = true) {\n const callback = async (loadData) => {\n if (!loadData) {\n if (onLoad) {\n onLoad(null);\n }\n return;\n }\n const texture = loadData.texture;\n if (!createPolynomials) {\n texture._sphericalPolynomial = new SphericalPolynomial();\n }\n else if (loadData.info.sphericalPolynomial) {\n texture._sphericalPolynomial = loadData.info.sphericalPolynomial;\n }\n texture._source = 9 /* InternalTextureSource.CubePrefiltered */;\n if (this.getCaps().textureLOD) {\n // Do not add extra process if texture lod is supported.\n if (onLoad) {\n onLoad(texture);\n }\n return;\n }\n const mipSlices = 3;\n const gl = this._gl;\n const width = loadData.width;\n if (!width) {\n return;\n }\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const { DDSTools } = await import(\"core/Misc/dds\");\n const textures = [];\n for (let i = 0; i < mipSlices; i++) {\n //compute LOD from even spacing in smoothness (matching shader calculation)\n const smoothness = i / (mipSlices - 1);\n const roughness = 1 - smoothness;\n const minLODIndex = lodOffset; // roughness = 0\n const maxLODIndex = Math.log2(width) * lodScale + lodOffset; // roughness = 1\n const lodIndex = minLODIndex + (maxLODIndex - minLODIndex) * roughness;\n const mipmapIndex = Math.round(Math.min(Math.max(lodIndex, 0), maxLODIndex));\n const glTextureFromLod = new InternalTexture(this, 2 /* InternalTextureSource.Temp */);\n glTextureFromLod.type = texture.type;\n glTextureFromLod.format = texture.format;\n glTextureFromLod.width = Math.pow(2, Math.max(Math.log2(width) - mipmapIndex, 0));\n glTextureFromLod.height = glTextureFromLod.width;\n glTextureFromLod.isCube = true;\n glTextureFromLod._cachedWrapU = Constants.TEXTURE_CLAMP_ADDRESSMODE;\n glTextureFromLod._cachedWrapV = Constants.TEXTURE_CLAMP_ADDRESSMODE;\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, glTextureFromLod, true);\n glTextureFromLod.samplingMode = Constants.TEXTURE_LINEAR_LINEAR;\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n if (loadData.isDDS) {\n const info = loadData.info;\n const data = loadData.data;\n this._unpackFlipY(info.isCompressed);\n DDSTools.UploadDDSLevels(this, glTextureFromLod, data, info, true, 6, mipmapIndex);\n }\n else {\n Logger.Warn(\"DDS is the only prefiltered cube map supported so far.\");\n }\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, null);\n // Wrap in a base texture for easy binding.\n const lodTexture = new BaseTexture(scene);\n lodTexture._isCube = true;\n lodTexture._texture = glTextureFromLod;\n glTextureFromLod.isReady = true;\n textures.push(lodTexture);\n }\n texture._lodTextureHigh = textures[2];\n texture._lodTextureMid = textures[1];\n texture._lodTextureLow = textures[0];\n if (onLoad) {\n onLoad(texture);\n }\n };\n return this.createCubeTexture(rootUrl, scene, null, false, callback, onError, format, forcedExtension, createPolynomials, lodScale, lodOffset);\n};\n//# sourceMappingURL=engine.prefilteredCubeTexture.js.map","import { ThinEngine } from \"../../Engines/thinEngine\";\nimport { WebGLDataBuffer } from \"../../Meshes/WebGL/webGLDataBuffer\";\nThinEngine.prototype.createUniformBuffer = function (elements, _label) {\n const ubo = this._gl.createBuffer();\n if (!ubo) {\n throw new Error(\"Unable to create uniform buffer\");\n }\n const result = new WebGLDataBuffer(ubo);\n this.bindUniformBuffer(result);\n if (elements instanceof Float32Array) {\n this._gl.bufferData(this._gl.UNIFORM_BUFFER, elements, this._gl.STATIC_DRAW);\n }\n else {\n this._gl.bufferData(this._gl.UNIFORM_BUFFER, new Float32Array(elements), this._gl.STATIC_DRAW);\n }\n this.bindUniformBuffer(null);\n result.references = 1;\n return result;\n};\nThinEngine.prototype.createDynamicUniformBuffer = function (elements, _label) {\n const ubo = this._gl.createBuffer();\n if (!ubo) {\n throw new Error(\"Unable to create dynamic uniform buffer\");\n }\n const result = new WebGLDataBuffer(ubo);\n this.bindUniformBuffer(result);\n if (elements instanceof Float32Array) {\n this._gl.bufferData(this._gl.UNIFORM_BUFFER, elements, this._gl.DYNAMIC_DRAW);\n }\n else {\n this._gl.bufferData(this._gl.UNIFORM_BUFFER, new Float32Array(elements), this._gl.DYNAMIC_DRAW);\n }\n this.bindUniformBuffer(null);\n result.references = 1;\n return result;\n};\nThinEngine.prototype.updateUniformBuffer = function (uniformBuffer, elements, offset, count) {\n this.bindUniformBuffer(uniformBuffer);\n if (offset === undefined) {\n offset = 0;\n }\n if (count === undefined) {\n if (elements instanceof Float32Array) {\n this._gl.bufferSubData(this._gl.UNIFORM_BUFFER, offset, elements);\n }\n else {\n this._gl.bufferSubData(this._gl.UNIFORM_BUFFER, offset, new Float32Array(elements));\n }\n }\n else {\n if (elements instanceof Float32Array) {\n this._gl.bufferSubData(this._gl.UNIFORM_BUFFER, 0, elements.subarray(offset, offset + count));\n }\n else {\n this._gl.bufferSubData(this._gl.UNIFORM_BUFFER, 0, new Float32Array(elements).subarray(offset, offset + count));\n }\n }\n this.bindUniformBuffer(null);\n};\nThinEngine.prototype.bindUniformBuffer = function (buffer) {\n this._gl.bindBuffer(this._gl.UNIFORM_BUFFER, buffer ? buffer.underlyingResource : null);\n};\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nThinEngine.prototype.bindUniformBufferBase = function (buffer, location, name) {\n this._gl.bindBufferBase(this._gl.UNIFORM_BUFFER, location, buffer ? buffer.underlyingResource : null);\n};\nThinEngine.prototype.bindUniformBlock = function (pipelineContext, blockName, index) {\n const program = pipelineContext.program;\n const uniformLocation = this._gl.getUniformBlockIndex(program, blockName);\n if (uniformLocation !== 0xffffffff) {\n this._gl.uniformBlockBinding(program, uniformLocation, index);\n }\n};\n//# sourceMappingURL=engine.uniformBuffer.js.map","import { InternalTexture } from \"../Materials/Textures/internalTexture\";\nimport { EngineStore } from \"./engineStore\";\nimport { ThinEngine } from \"./thinEngine\";\nimport { Constants } from \"./constants\";\nimport { PerformanceMonitor } from \"../Misc/performanceMonitor\";\nimport { WebGLDataBuffer } from \"../Meshes/WebGL/webGLDataBuffer\";\nimport { Logger } from \"../Misc/logger\";\nimport { WebGLHardwareTexture } from \"./WebGL/webGLHardwareTexture\";\nimport \"./Extensions/engine.alpha\";\nimport \"./Extensions/engine.rawTexture\";\nimport \"./Extensions/engine.readTexture\";\nimport \"./Extensions/engine.dynamicBuffer\";\nimport \"./Extensions/engine.cubeTexture\";\nimport \"./Extensions/engine.renderTarget\";\nimport \"./Extensions/engine.renderTargetTexture\";\nimport \"./Extensions/engine.renderTargetCube\";\nimport \"./Extensions/engine.prefilteredCubeTexture\";\nimport \"./Extensions/engine.uniformBuffer\";\nimport \"./AbstractEngine/abstractEngine.loadingScreen\";\nimport \"./AbstractEngine/abstractEngine.dom\";\nimport \"./AbstractEngine/abstractEngine.states\";\nimport \"./AbstractEngine/abstractEngine.renderPass\";\nimport \"./AbstractEngine/abstractEngine.texture\";\nimport { AbstractEngine } from \"./abstractEngine\";\nimport { CreateImageBitmapFromSource, ExitFullscreen, ExitPointerlock, GetFontOffset, RequestFullscreen, RequestPointerlock, ResizeImageBitmap, _CommonDispose, _CommonInit, } from \"./engine.common\";\nimport { PerfCounter } from \"../Misc/perfCounter\";\nimport \"../Audio/audioEngine\";\nimport { _retryWithInterval } from \"core/Misc/timingTools\";\n/**\n * The engine class is responsible for interfacing with all lower-level APIs such as WebGL and Audio\n */\nexport class Engine extends ThinEngine {\n /**\n * Returns the current npm package of the sdk\n */\n // Not mixed with Version for tooling purpose.\n static get NpmPackage() {\n return AbstractEngine.NpmPackage;\n }\n /**\n * Returns the current version of the framework\n */\n static get Version() {\n return AbstractEngine.Version;\n }\n /** Gets the list of created engines */\n static get Instances() {\n return EngineStore.Instances;\n }\n /**\n * Gets the latest created engine\n */\n static get LastCreatedEngine() {\n return EngineStore.LastCreatedEngine;\n }\n /**\n * Gets the latest created scene\n */\n static get LastCreatedScene() {\n return EngineStore.LastCreatedScene;\n }\n /** @internal */\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * Method called to create the default loading screen.\n * This can be overridden in your own app.\n * @param canvas The rendering canvas element\n * @returns The loading screen\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n static DefaultLoadingScreenFactory(canvas) {\n return AbstractEngine.DefaultLoadingScreenFactory(canvas);\n }\n get _supportsHardwareTextureRescaling() {\n return !!Engine._RescalePostProcessFactory;\n }\n _measureFps() {\n this._performanceMonitor.sampleFrame();\n this._fps = this._performanceMonitor.averageFPS;\n this._deltaTime = this._performanceMonitor.instantaneousFrameTime || 0;\n }\n /**\n * Gets the performance monitor attached to this engine\n * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/optimize_your_scene#engineinstrumentation\n */\n get performanceMonitor() {\n return this._performanceMonitor;\n }\n // Events\n /**\n * Creates a new engine\n * @param canvasOrContext defines the canvas or WebGL context to use for rendering. If you provide a WebGL context, Babylon.js will not hook events on the canvas (like pointers, keyboards, etc...) so no event observables will be available. This is mostly used when Babylon.js is used as a plugin on a system which already used the WebGL context\n * @param antialias defines enable antialiasing (default: false)\n * @param options defines further options to be sent to the getContext() function\n * @param adaptToDeviceRatio defines whether to adapt to the device's viewport characteristics (default: false)\n */\n constructor(canvasOrContext, antialias, options, adaptToDeviceRatio = false) {\n super(canvasOrContext, antialias, options, adaptToDeviceRatio);\n // Members\n /**\n * If set, will be used to request the next animation frame for the render loop\n */\n this.customAnimationFrameRequester = null;\n this._performanceMonitor = new PerformanceMonitor();\n this._drawCalls = new PerfCounter();\n if (!canvasOrContext) {\n return;\n }\n this._features.supportRenderPasses = true;\n options = this._creationOptions;\n }\n _initGLContext() {\n super._initGLContext();\n this._rescalePostProcess = null;\n }\n /**\n * Shared initialization across engines types.\n * @param canvas The canvas associated with this instance of the engine.\n */\n _sharedInit(canvas) {\n super._sharedInit(canvas);\n _CommonInit(this, canvas, this._creationOptions);\n }\n /**\n * Resize an image and returns the image data as an uint8array\n * @param image image to resize\n * @param bufferWidth destination buffer width\n * @param bufferHeight destination buffer height\n * @returns an uint8array containing RGBA values of bufferWidth * bufferHeight size\n */\n resizeImageBitmap(image, bufferWidth, bufferHeight) {\n return ResizeImageBitmap(this, image, bufferWidth, bufferHeight);\n }\n /**\n * Engine abstraction for loading and creating an image bitmap from a given source string.\n * @param imageSource source to load the image from.\n * @param options An object that sets options for the image's extraction.\n * @returns ImageBitmap\n */\n _createImageBitmapFromSource(imageSource, options) {\n return CreateImageBitmapFromSource(this, imageSource, options);\n }\n /**\n * Toggle full screen mode\n * @param requestPointerLock defines if a pointer lock should be requested from the user\n */\n switchFullscreen(requestPointerLock) {\n if (this.isFullscreen) {\n this.exitFullscreen();\n }\n else {\n this.enterFullscreen(requestPointerLock);\n }\n }\n /**\n * Enters full screen mode\n * @param requestPointerLock defines if a pointer lock should be requested from the user\n */\n enterFullscreen(requestPointerLock) {\n if (!this.isFullscreen) {\n this._pointerLockRequested = requestPointerLock;\n if (this._renderingCanvas) {\n RequestFullscreen(this._renderingCanvas);\n }\n }\n }\n /**\n * Exits full screen mode\n */\n exitFullscreen() {\n if (this.isFullscreen) {\n ExitFullscreen();\n }\n }\n /** States */\n /**\n * Sets a boolean indicating if the dithering state is enabled or disabled\n * @param value defines the dithering state\n */\n setDitheringState(value) {\n if (value) {\n this._gl.enable(this._gl.DITHER);\n }\n else {\n this._gl.disable(this._gl.DITHER);\n }\n }\n /**\n * Sets a boolean indicating if the rasterizer state is enabled or disabled\n * @param value defines the rasterizer state\n */\n setRasterizerState(value) {\n if (value) {\n this._gl.disable(this._gl.RASTERIZER_DISCARD);\n }\n else {\n this._gl.enable(this._gl.RASTERIZER_DISCARD);\n }\n }\n /**\n * Directly set the WebGL Viewport\n * @param x defines the x coordinate of the viewport (in screen space)\n * @param y defines the y coordinate of the viewport (in screen space)\n * @param width defines the width of the viewport (in screen space)\n * @param height defines the height of the viewport (in screen space)\n * @returns the current viewport Object (if any) that is being replaced by this call. You can restore this viewport later on to go back to the original state\n */\n setDirectViewport(x, y, width, height) {\n const currentViewport = this._cachedViewport;\n this._cachedViewport = null;\n this._viewport(x, y, width, height);\n return currentViewport;\n }\n /**\n * Executes a scissor clear (ie. a clear on a specific portion of the screen)\n * @param x defines the x-coordinate of the bottom left corner of the clear rectangle\n * @param y defines the y-coordinate of the corner of the clear rectangle\n * @param width defines the width of the clear rectangle\n * @param height defines the height of the clear rectangle\n * @param clearColor defines the clear color\n */\n scissorClear(x, y, width, height, clearColor) {\n this.enableScissor(x, y, width, height);\n this.clear(clearColor, true, true, true);\n this.disableScissor();\n }\n /**\n * Enable scissor test on a specific rectangle (ie. render will only be executed on a specific portion of the screen)\n * @param x defines the x-coordinate of the bottom left corner of the clear rectangle\n * @param y defines the y-coordinate of the corner of the clear rectangle\n * @param width defines the width of the clear rectangle\n * @param height defines the height of the clear rectangle\n */\n enableScissor(x, y, width, height) {\n const gl = this._gl;\n // Change state\n gl.enable(gl.SCISSOR_TEST);\n gl.scissor(x, y, width, height);\n }\n /**\n * Disable previously set scissor test rectangle\n */\n disableScissor() {\n const gl = this._gl;\n gl.disable(gl.SCISSOR_TEST);\n }\n /**\n * @internal\n */\n _loadFileAsync(url, offlineProvider, useArrayBuffer) {\n return new Promise((resolve, reject) => {\n this._loadFile(url, (data) => {\n resolve(data);\n }, undefined, offlineProvider, useArrayBuffer, (request, exception) => {\n reject(exception);\n });\n });\n }\n /**\n * Gets the source code of the vertex shader associated with a specific webGL program\n * @param program defines the program to use\n * @returns a string containing the source code of the vertex shader associated with the program\n */\n getVertexShaderSource(program) {\n const shaders = this._gl.getAttachedShaders(program);\n if (!shaders) {\n return null;\n }\n return this._gl.getShaderSource(shaders[0]);\n }\n /**\n * Gets the source code of the fragment shader associated with a specific webGL program\n * @param program defines the program to use\n * @returns a string containing the source code of the fragment shader associated with the program\n */\n getFragmentShaderSource(program) {\n const shaders = this._gl.getAttachedShaders(program);\n if (!shaders) {\n return null;\n }\n return this._gl.getShaderSource(shaders[1]);\n }\n /**\n * sets the object from which width and height will be taken from when getting render width and height\n * Will fallback to the gl object\n * @param dimensions the framebuffer width and height that will be used.\n */\n set framebufferDimensionsObject(dimensions) {\n this._framebufferDimensionsObject = dimensions;\n if (this._framebufferDimensionsObject) {\n this.onResizeObservable.notifyObservers(this);\n }\n }\n _rebuildBuffers() {\n // Index / Vertex\n for (const scene of this.scenes) {\n scene.resetCachedMaterial();\n scene._rebuildGeometries();\n }\n for (const scene of this._virtualScenes) {\n scene.resetCachedMaterial();\n scene._rebuildGeometries();\n }\n super._rebuildBuffers();\n }\n /**\n * Get Font size information\n * @param font font name\n * @returns an object containing ascent, height and descent\n */\n getFontOffset(font) {\n return GetFontOffset(font);\n }\n _cancelFrame() {\n if (this.customAnimationFrameRequester) {\n if (this._frameHandler !== 0) {\n this._frameHandler = 0;\n const { cancelAnimationFrame } = this.customAnimationFrameRequester;\n if (cancelAnimationFrame) {\n cancelAnimationFrame(this.customAnimationFrameRequester.requestID);\n }\n }\n }\n else {\n super._cancelFrame();\n }\n }\n _renderLoop() {\n // Reset the frame handler before rendering a frame to determine if a new frame has been queued.\n this._frameHandler = 0;\n if (!this._contextWasLost) {\n let shouldRender = true;\n if (this.isDisposed || (!this.renderEvenInBackground && this._windowIsBackground)) {\n shouldRender = false;\n }\n if (shouldRender) {\n // Start new frame\n this.beginFrame();\n // Child canvases\n if (!this._renderViews()) {\n // Main frame\n this._renderFrame();\n }\n // Present\n this.endFrame();\n }\n }\n // The first condition prevents queuing another frame if we no longer have active render loops (e.g., if\n // `stopRenderLoop` is called mid frame). The second condition prevents queuing another frame if one has\n // already been queued (e.g., if `stopRenderLoop` and `runRenderLoop` is called mid frame).\n if (this._activeRenderLoops.length > 0 && this._frameHandler === 0) {\n if (this.customAnimationFrameRequester) {\n this.customAnimationFrameRequester.requestID = this._queueNewFrame(this.customAnimationFrameRequester.renderFunction || this._boundRenderFunction, this.customAnimationFrameRequester);\n this._frameHandler = this.customAnimationFrameRequester.requestID;\n }\n else {\n this._frameHandler = this._queueNewFrame(this._boundRenderFunction, this.getHostWindow());\n }\n }\n }\n /**\n * Enters Pointerlock mode\n */\n enterPointerlock() {\n if (this._renderingCanvas) {\n RequestPointerlock(this._renderingCanvas);\n }\n }\n /**\n * Exits Pointerlock mode\n */\n exitPointerlock() {\n ExitPointerlock();\n }\n /**\n * Begin a new frame\n */\n beginFrame() {\n this._measureFps();\n super.beginFrame();\n }\n _deletePipelineContext(pipelineContext) {\n const webGLPipelineContext = pipelineContext;\n if (webGLPipelineContext && webGLPipelineContext.program) {\n if (webGLPipelineContext.transformFeedback) {\n this.deleteTransformFeedback(webGLPipelineContext.transformFeedback);\n webGLPipelineContext.transformFeedback = null;\n }\n }\n super._deletePipelineContext(pipelineContext);\n }\n createShaderProgram(pipelineContext, vertexCode, fragmentCode, defines, context, transformFeedbackVaryings = null) {\n context = context || this._gl;\n this.onBeforeShaderCompilationObservable.notifyObservers(this);\n const program = super.createShaderProgram(pipelineContext, vertexCode, fragmentCode, defines, context, transformFeedbackVaryings);\n this.onAfterShaderCompilationObservable.notifyObservers(this);\n return program;\n }\n _createShaderProgram(pipelineContext, vertexShader, fragmentShader, context, transformFeedbackVaryings = null) {\n const shaderProgram = context.createProgram();\n pipelineContext.program = shaderProgram;\n if (!shaderProgram) {\n throw new Error(\"Unable to create program\");\n }\n context.attachShader(shaderProgram, vertexShader);\n context.attachShader(shaderProgram, fragmentShader);\n if (this.webGLVersion > 1 && transformFeedbackVaryings) {\n const transformFeedback = this.createTransformFeedback();\n this.bindTransformFeedback(transformFeedback);\n this.setTranformFeedbackVaryings(shaderProgram, transformFeedbackVaryings);\n pipelineContext.transformFeedback = transformFeedback;\n }\n context.linkProgram(shaderProgram);\n if (this.webGLVersion > 1 && transformFeedbackVaryings) {\n this.bindTransformFeedback(null);\n }\n pipelineContext.context = context;\n pipelineContext.vertexShader = vertexShader;\n pipelineContext.fragmentShader = fragmentShader;\n if (!pipelineContext.isParallelCompiled) {\n this._finalizePipelineContext(pipelineContext);\n }\n return shaderProgram;\n }\n /**\n * @internal\n */\n _releaseTexture(texture) {\n super._releaseTexture(texture);\n }\n /**\n * @internal\n */\n _releaseRenderTargetWrapper(rtWrapper) {\n super._releaseRenderTargetWrapper(rtWrapper);\n // Set output texture of post process to null if the framebuffer has been released/disposed\n this.scenes.forEach((scene) => {\n scene.postProcesses.forEach((postProcess) => {\n if (postProcess._outputTexture === rtWrapper) {\n postProcess._outputTexture = null;\n }\n });\n scene.cameras.forEach((camera) => {\n camera._postProcesses.forEach((postProcess) => {\n if (postProcess) {\n if (postProcess._outputTexture === rtWrapper) {\n postProcess._outputTexture = null;\n }\n }\n });\n });\n });\n }\n /**\n * @internal\n * Rescales a texture\n * @param source input texture\n * @param destination destination texture\n * @param scene scene to use to render the resize\n * @param internalFormat format to use when resizing\n * @param onComplete callback to be called when resize has completed\n */\n _rescaleTexture(source, destination, scene, internalFormat, onComplete) {\n this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_MAG_FILTER, this._gl.LINEAR);\n this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_MIN_FILTER, this._gl.LINEAR);\n this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_WRAP_S, this._gl.CLAMP_TO_EDGE);\n this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_WRAP_T, this._gl.CLAMP_TO_EDGE);\n const rtt = this.createRenderTargetTexture({\n width: destination.width,\n height: destination.height,\n }, {\n generateMipMaps: false,\n type: Constants.TEXTURETYPE_UNSIGNED_INT,\n samplingMode: Constants.TEXTURE_BILINEAR_SAMPLINGMODE,\n generateDepthBuffer: false,\n generateStencilBuffer: false,\n });\n if (!this._rescalePostProcess && Engine._RescalePostProcessFactory) {\n this._rescalePostProcess = Engine._RescalePostProcessFactory(this);\n }\n if (this._rescalePostProcess) {\n this._rescalePostProcess.externalTextureSamplerBinding = true;\n const onCompiled = () => {\n this._rescalePostProcess.onApply = function (effect) {\n effect._bindTexture(\"textureSampler\", source);\n };\n let hostingScene = scene;\n if (!hostingScene) {\n hostingScene = this.scenes[this.scenes.length - 1];\n }\n hostingScene.postProcessManager.directRender([this._rescalePostProcess], rtt, true);\n this._bindTextureDirectly(this._gl.TEXTURE_2D, destination, true);\n this._gl.copyTexImage2D(this._gl.TEXTURE_2D, 0, internalFormat, 0, 0, destination.width, destination.height, 0);\n this.unBindFramebuffer(rtt);\n rtt.dispose();\n if (onComplete) {\n onComplete();\n }\n };\n const effect = this._rescalePostProcess.getEffect();\n if (effect) {\n effect.executeWhenCompiled(onCompiled);\n }\n else {\n this._rescalePostProcess.onEffectCreatedObservable.addOnce((effect) => {\n effect.executeWhenCompiled(onCompiled);\n });\n }\n }\n }\n /**\n * Wraps an external web gl texture in a Babylon texture.\n * @param texture defines the external texture\n * @param hasMipMaps defines whether the external texture has mip maps (default: false)\n * @param samplingMode defines the sampling mode for the external texture (default: Constants.TEXTURE_TRILINEAR_SAMPLINGMODE)\n * @param width defines the width for the external texture (default: 0)\n * @param height defines the height for the external texture (default: 0)\n * @returns the babylon internal texture\n */\n wrapWebGLTexture(texture, hasMipMaps = false, samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE, width = 0, height = 0) {\n const hardwareTexture = new WebGLHardwareTexture(texture, this._gl);\n const internalTexture = new InternalTexture(this, 0 /* InternalTextureSource.Unknown */, true);\n internalTexture._hardwareTexture = hardwareTexture;\n internalTexture.baseWidth = width;\n internalTexture.baseHeight = height;\n internalTexture.width = width;\n internalTexture.height = height;\n internalTexture.isReady = true;\n internalTexture.useMipMaps = hasMipMaps;\n this.updateTextureSamplingMode(samplingMode, internalTexture);\n return internalTexture;\n }\n /**\n * @internal\n */\n _uploadImageToTexture(texture, image, faceIndex = 0, lod = 0) {\n const gl = this._gl;\n const textureType = this._getWebGLTextureType(texture.type);\n const format = this._getInternalFormat(texture.format);\n const internalFormat = this._getRGBABufferInternalSizedFormat(texture.type, format);\n const bindTarget = texture.isCube ? gl.TEXTURE_CUBE_MAP : gl.TEXTURE_2D;\n this._bindTextureDirectly(bindTarget, texture, true);\n this._unpackFlipY(texture.invertY);\n let target = gl.TEXTURE_2D;\n if (texture.isCube) {\n target = gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex;\n }\n gl.texImage2D(target, lod, internalFormat, format, textureType, image);\n this._bindTextureDirectly(bindTarget, null, true);\n }\n /**\n * Updates a depth texture Comparison Mode and Function.\n * If the comparison Function is equal to 0, the mode will be set to none.\n * Otherwise, this only works in webgl 2 and requires a shadow sampler in the shader.\n * @param texture The texture to set the comparison function for\n * @param comparisonFunction The comparison function to set, 0 if no comparison required\n */\n updateTextureComparisonFunction(texture, comparisonFunction) {\n if (this.webGLVersion === 1) {\n Logger.Error(\"WebGL 1 does not support texture comparison.\");\n return;\n }\n const gl = this._gl;\n if (texture.isCube) {\n this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, texture, true);\n if (comparisonFunction === 0) {\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_COMPARE_FUNC, Constants.LEQUAL);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_COMPARE_MODE, gl.NONE);\n }\n else {\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_COMPARE_FUNC, comparisonFunction);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_COMPARE_MODE, gl.COMPARE_REF_TO_TEXTURE);\n }\n this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, null);\n }\n else {\n this._bindTextureDirectly(this._gl.TEXTURE_2D, texture, true);\n if (comparisonFunction === 0) {\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_COMPARE_FUNC, Constants.LEQUAL);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_COMPARE_MODE, gl.NONE);\n }\n else {\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_COMPARE_FUNC, comparisonFunction);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_COMPARE_MODE, gl.COMPARE_REF_TO_TEXTURE);\n }\n this._bindTextureDirectly(this._gl.TEXTURE_2D, null);\n }\n texture._comparisonFunction = comparisonFunction;\n }\n /**\n * Creates a webGL buffer to use with instantiation\n * @param capacity defines the size of the buffer\n * @returns the webGL buffer\n */\n createInstancesBuffer(capacity) {\n const buffer = this._gl.createBuffer();\n if (!buffer) {\n throw new Error(\"Unable to create instance buffer\");\n }\n const result = new WebGLDataBuffer(buffer);\n result.capacity = capacity;\n this.bindArrayBuffer(result);\n this._gl.bufferData(this._gl.ARRAY_BUFFER, capacity, this._gl.DYNAMIC_DRAW);\n result.references = 1;\n return result;\n }\n /**\n * Delete a webGL buffer used with instantiation\n * @param buffer defines the webGL buffer to delete\n */\n deleteInstancesBuffer(buffer) {\n this._gl.deleteBuffer(buffer);\n }\n _clientWaitAsync(sync, flags = 0, intervalms = 10) {\n const gl = this._gl;\n return new Promise((resolve, reject) => {\n _retryWithInterval(() => {\n const res = gl.clientWaitSync(sync, flags, 0);\n if (res == gl.WAIT_FAILED) {\n throw new Error(\"clientWaitSync failed\");\n }\n if (res == gl.TIMEOUT_EXPIRED) {\n return false;\n }\n return true;\n }, resolve, reject, intervalms);\n });\n }\n /**\n * @internal\n */\n _readPixelsAsync(x, y, w, h, format, type, outputBuffer) {\n if (this._webGLVersion < 2) {\n throw new Error(\"_readPixelsAsync only work on WebGL2+\");\n }\n const gl = this._gl;\n const buf = gl.createBuffer();\n gl.bindBuffer(gl.PIXEL_PACK_BUFFER, buf);\n gl.bufferData(gl.PIXEL_PACK_BUFFER, outputBuffer.byteLength, gl.STREAM_READ);\n gl.readPixels(x, y, w, h, format, type, 0);\n gl.bindBuffer(gl.PIXEL_PACK_BUFFER, null);\n const sync = gl.fenceSync(gl.SYNC_GPU_COMMANDS_COMPLETE, 0);\n if (!sync) {\n return null;\n }\n gl.flush();\n return this._clientWaitAsync(sync, 0, 10).then(() => {\n gl.deleteSync(sync);\n gl.bindBuffer(gl.PIXEL_PACK_BUFFER, buf);\n gl.getBufferSubData(gl.PIXEL_PACK_BUFFER, 0, outputBuffer);\n gl.bindBuffer(gl.PIXEL_PACK_BUFFER, null);\n gl.deleteBuffer(buf);\n return outputBuffer;\n });\n }\n dispose() {\n this.hideLoadingUI();\n // Rescale PP\n if (this._rescalePostProcess) {\n this._rescalePostProcess.dispose();\n }\n _CommonDispose(this, this._renderingCanvas);\n super.dispose();\n }\n}\n// Const statics\n/** Defines that alpha blending is disabled */\nEngine.ALPHA_DISABLE = Constants.ALPHA_DISABLE;\n/** Defines that alpha blending to SRC ALPHA * SRC + DEST */\nEngine.ALPHA_ADD = Constants.ALPHA_ADD;\n/** Defines that alpha blending to SRC ALPHA * SRC + (1 - SRC ALPHA) * DEST */\nEngine.ALPHA_COMBINE = Constants.ALPHA_COMBINE;\n/** Defines that alpha blending to DEST - SRC * DEST */\nEngine.ALPHA_SUBTRACT = Constants.ALPHA_SUBTRACT;\n/** Defines that alpha blending to SRC * DEST */\nEngine.ALPHA_MULTIPLY = Constants.ALPHA_MULTIPLY;\n/** Defines that alpha blending to SRC ALPHA * SRC + (1 - SRC) * DEST */\nEngine.ALPHA_MAXIMIZED = Constants.ALPHA_MAXIMIZED;\n/** Defines that alpha blending to SRC + DEST */\nEngine.ALPHA_ONEONE = Constants.ALPHA_ONEONE;\n/** Defines that alpha blending to SRC + (1 - SRC ALPHA) * DEST */\nEngine.ALPHA_PREMULTIPLIED = Constants.ALPHA_PREMULTIPLIED;\n/**\n * Defines that alpha blending to SRC + (1 - SRC ALPHA) * DEST\n * Alpha will be set to (1 - SRC ALPHA) * DEST ALPHA\n */\nEngine.ALPHA_PREMULTIPLIED_PORTERDUFF = Constants.ALPHA_PREMULTIPLIED_PORTERDUFF;\n/** Defines that alpha blending to CST * SRC + (1 - CST) * DEST */\nEngine.ALPHA_INTERPOLATE = Constants.ALPHA_INTERPOLATE;\n/**\n * Defines that alpha blending to SRC + (1 - SRC) * DEST\n * Alpha will be set to SRC ALPHA + (1 - SRC ALPHA) * DEST ALPHA\n */\nEngine.ALPHA_SCREENMODE = Constants.ALPHA_SCREENMODE;\n/** Defines that the resource is not delayed*/\nEngine.DELAYLOADSTATE_NONE = Constants.DELAYLOADSTATE_NONE;\n/** Defines that the resource was successfully delay loaded */\nEngine.DELAYLOADSTATE_LOADED = Constants.DELAYLOADSTATE_LOADED;\n/** Defines that the resource is currently delay loading */\nEngine.DELAYLOADSTATE_LOADING = Constants.DELAYLOADSTATE_LOADING;\n/** Defines that the resource is delayed and has not started loading */\nEngine.DELAYLOADSTATE_NOTLOADED = Constants.DELAYLOADSTATE_NOTLOADED;\n// Depht or Stencil test Constants.\n/** Passed to depthFunction or stencilFunction to specify depth or stencil tests will never pass. i.e. Nothing will be drawn */\nEngine.NEVER = Constants.NEVER;\n/** Passed to depthFunction or stencilFunction to specify depth or stencil tests will always pass. i.e. Pixels will be drawn in the order they are drawn */\nEngine.ALWAYS = Constants.ALWAYS;\n/** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is less than the stored value */\nEngine.LESS = Constants.LESS;\n/** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is equals to the stored value */\nEngine.EQUAL = Constants.EQUAL;\n/** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is less than or equal to the stored value */\nEngine.LEQUAL = Constants.LEQUAL;\n/** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is greater than the stored value */\nEngine.GREATER = Constants.GREATER;\n/** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is greater than or equal to the stored value */\nEngine.GEQUAL = Constants.GEQUAL;\n/** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is not equal to the stored value */\nEngine.NOTEQUAL = Constants.NOTEQUAL;\n// Stencil Actions Constants.\n/** Passed to stencilOperation to specify that stencil value must be kept */\nEngine.KEEP = Constants.KEEP;\n/** Passed to stencilOperation to specify that stencil value must be replaced */\nEngine.REPLACE = Constants.REPLACE;\n/** Passed to stencilOperation to specify that stencil value must be incremented */\nEngine.INCR = Constants.INCR;\n/** Passed to stencilOperation to specify that stencil value must be decremented */\nEngine.DECR = Constants.DECR;\n/** Passed to stencilOperation to specify that stencil value must be inverted */\nEngine.INVERT = Constants.INVERT;\n/** Passed to stencilOperation to specify that stencil value must be incremented with wrapping */\nEngine.INCR_WRAP = Constants.INCR_WRAP;\n/** Passed to stencilOperation to specify that stencil value must be decremented with wrapping */\nEngine.DECR_WRAP = Constants.DECR_WRAP;\n/** Texture is not repeating outside of 0..1 UVs */\nEngine.TEXTURE_CLAMP_ADDRESSMODE = Constants.TEXTURE_CLAMP_ADDRESSMODE;\n/** Texture is repeating outside of 0..1 UVs */\nEngine.TEXTURE_WRAP_ADDRESSMODE = Constants.TEXTURE_WRAP_ADDRESSMODE;\n/** Texture is repeating and mirrored */\nEngine.TEXTURE_MIRROR_ADDRESSMODE = Constants.TEXTURE_MIRROR_ADDRESSMODE;\n/** ALPHA */\nEngine.TEXTUREFORMAT_ALPHA = Constants.TEXTUREFORMAT_ALPHA;\n/** LUMINANCE */\nEngine.TEXTUREFORMAT_LUMINANCE = Constants.TEXTUREFORMAT_LUMINANCE;\n/** LUMINANCE_ALPHA */\nEngine.TEXTUREFORMAT_LUMINANCE_ALPHA = Constants.TEXTUREFORMAT_LUMINANCE_ALPHA;\n/** RGB */\nEngine.TEXTUREFORMAT_RGB = Constants.TEXTUREFORMAT_RGB;\n/** RGBA */\nEngine.TEXTUREFORMAT_RGBA = Constants.TEXTUREFORMAT_RGBA;\n/** RED */\nEngine.TEXTUREFORMAT_RED = Constants.TEXTUREFORMAT_RED;\n/** RED (2nd reference) */\nEngine.TEXTUREFORMAT_R = Constants.TEXTUREFORMAT_R;\n/** RED unsigned short normed to [0, 1] **/\nEngine.TEXTUREFORMAT_R16_UNORM = Constants.TEXTUREFORMAT_R16_UNORM;\n/** RG unsigned short normed to [0, 1] **/\nEngine.TEXTUREFORMAT_RG16_UNORM = Constants.TEXTUREFORMAT_RG16_UNORM;\n/** RGB unsigned short normed to [0, 1] **/\nEngine.TEXTUREFORMAT_RGB16_UNORM = Constants.TEXTUREFORMAT_RGB16_UNORM;\n/** RGBA unsigned short normed to [0, 1] **/\nEngine.TEXTUREFORMAT_RGBA16_UNORM = Constants.TEXTUREFORMAT_RGBA16_UNORM;\n/** RED signed short normed to [-1, 1] **/\nEngine.TEXTUREFORMAT_R16_SNORM = Constants.TEXTUREFORMAT_R16_SNORM;\n/** RG signed short normed to [-1, 1] **/\nEngine.TEXTUREFORMAT_RG16_SNORM = Constants.TEXTUREFORMAT_RG16_SNORM;\n/** RGB signed short normed to [-1, 1] **/\nEngine.TEXTUREFORMAT_RGB16_SNORM = Constants.TEXTUREFORMAT_RGB16_SNORM;\n/** RGBA signed short normed to [-1, 1] **/\nEngine.TEXTUREFORMAT_RGBA16_SNORM = Constants.TEXTUREFORMAT_RGBA16_SNORM;\n/** RG */\nEngine.TEXTUREFORMAT_RG = Constants.TEXTUREFORMAT_RG;\n/** RED_INTEGER */\nEngine.TEXTUREFORMAT_RED_INTEGER = Constants.TEXTUREFORMAT_RED_INTEGER;\n/** RED_INTEGER (2nd reference) */\nEngine.TEXTUREFORMAT_R_INTEGER = Constants.TEXTUREFORMAT_R_INTEGER;\n/** RG_INTEGER */\nEngine.TEXTUREFORMAT_RG_INTEGER = Constants.TEXTUREFORMAT_RG_INTEGER;\n/** RGB_INTEGER */\nEngine.TEXTUREFORMAT_RGB_INTEGER = Constants.TEXTUREFORMAT_RGB_INTEGER;\n/** RGBA_INTEGER */\nEngine.TEXTUREFORMAT_RGBA_INTEGER = Constants.TEXTUREFORMAT_RGBA_INTEGER;\n/** UNSIGNED_BYTE */\nEngine.TEXTURETYPE_UNSIGNED_BYTE = Constants.TEXTURETYPE_UNSIGNED_BYTE;\n/** @deprecated use more explicit TEXTURETYPE_UNSIGNED_BYTE instead. Use TEXTURETYPE_UNSIGNED_INTEGER for 32bits values.*/\nEngine.TEXTURETYPE_UNSIGNED_INT = Constants.TEXTURETYPE_UNSIGNED_INT;\n/** FLOAT */\nEngine.TEXTURETYPE_FLOAT = Constants.TEXTURETYPE_FLOAT;\n/** HALF_FLOAT */\nEngine.TEXTURETYPE_HALF_FLOAT = Constants.TEXTURETYPE_HALF_FLOAT;\n/** BYTE */\nEngine.TEXTURETYPE_BYTE = Constants.TEXTURETYPE_BYTE;\n/** SHORT */\nEngine.TEXTURETYPE_SHORT = Constants.TEXTURETYPE_SHORT;\n/** UNSIGNED_SHORT */\nEngine.TEXTURETYPE_UNSIGNED_SHORT = Constants.TEXTURETYPE_UNSIGNED_SHORT;\n/** INT */\nEngine.TEXTURETYPE_INT = Constants.TEXTURETYPE_INT;\n/** UNSIGNED_INT */\nEngine.TEXTURETYPE_UNSIGNED_INTEGER = Constants.TEXTURETYPE_UNSIGNED_INTEGER;\n/** UNSIGNED_SHORT_4_4_4_4 */\nEngine.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4 = Constants.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4;\n/** UNSIGNED_SHORT_5_5_5_1 */\nEngine.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1 = Constants.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1;\n/** UNSIGNED_SHORT_5_6_5 */\nEngine.TEXTURETYPE_UNSIGNED_SHORT_5_6_5 = Constants.TEXTURETYPE_UNSIGNED_SHORT_5_6_5;\n/** UNSIGNED_INT_2_10_10_10_REV */\nEngine.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV = Constants.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV;\n/** UNSIGNED_INT_24_8 */\nEngine.TEXTURETYPE_UNSIGNED_INT_24_8 = Constants.TEXTURETYPE_UNSIGNED_INT_24_8;\n/** UNSIGNED_INT_10F_11F_11F_REV */\nEngine.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV = Constants.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV;\n/** UNSIGNED_INT_5_9_9_9_REV */\nEngine.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV = Constants.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV;\n/** FLOAT_32_UNSIGNED_INT_24_8_REV */\nEngine.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV = Constants.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV;\n/** nearest is mag = nearest and min = nearest and mip = none */\nEngine.TEXTURE_NEAREST_SAMPLINGMODE = Constants.TEXTURE_NEAREST_SAMPLINGMODE;\n/** Bilinear is mag = linear and min = linear and mip = nearest */\nEngine.TEXTURE_BILINEAR_SAMPLINGMODE = Constants.TEXTURE_BILINEAR_SAMPLINGMODE;\n/** Trilinear is mag = linear and min = linear and mip = linear */\nEngine.TEXTURE_TRILINEAR_SAMPLINGMODE = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE;\n/** nearest is mag = nearest and min = nearest and mip = linear */\nEngine.TEXTURE_NEAREST_NEAREST_MIPLINEAR = Constants.TEXTURE_NEAREST_NEAREST_MIPLINEAR;\n/** Bilinear is mag = linear and min = linear and mip = nearest */\nEngine.TEXTURE_LINEAR_LINEAR_MIPNEAREST = Constants.TEXTURE_LINEAR_LINEAR_MIPNEAREST;\n/** Trilinear is mag = linear and min = linear and mip = linear */\nEngine.TEXTURE_LINEAR_LINEAR_MIPLINEAR = Constants.TEXTURE_LINEAR_LINEAR_MIPLINEAR;\n/** mag = nearest and min = nearest and mip = nearest */\nEngine.TEXTURE_NEAREST_NEAREST_MIPNEAREST = Constants.TEXTURE_NEAREST_NEAREST_MIPNEAREST;\n/** mag = nearest and min = linear and mip = nearest */\nEngine.TEXTURE_NEAREST_LINEAR_MIPNEAREST = Constants.TEXTURE_NEAREST_LINEAR_MIPNEAREST;\n/** mag = nearest and min = linear and mip = linear */\nEngine.TEXTURE_NEAREST_LINEAR_MIPLINEAR = Constants.TEXTURE_NEAREST_LINEAR_MIPLINEAR;\n/** mag = nearest and min = linear and mip = none */\nEngine.TEXTURE_NEAREST_LINEAR = Constants.TEXTURE_NEAREST_LINEAR;\n/** mag = nearest and min = nearest and mip = none */\nEngine.TEXTURE_NEAREST_NEAREST = Constants.TEXTURE_NEAREST_NEAREST;\n/** mag = linear and min = nearest and mip = nearest */\nEngine.TEXTURE_LINEAR_NEAREST_MIPNEAREST = Constants.TEXTURE_LINEAR_NEAREST_MIPNEAREST;\n/** mag = linear and min = nearest and mip = linear */\nEngine.TEXTURE_LINEAR_NEAREST_MIPLINEAR = Constants.TEXTURE_LINEAR_NEAREST_MIPLINEAR;\n/** mag = linear and min = linear and mip = none */\nEngine.TEXTURE_LINEAR_LINEAR = Constants.TEXTURE_LINEAR_LINEAR;\n/** mag = linear and min = nearest and mip = none */\nEngine.TEXTURE_LINEAR_NEAREST = Constants.TEXTURE_LINEAR_NEAREST;\n/** Explicit coordinates mode */\nEngine.TEXTURE_EXPLICIT_MODE = Constants.TEXTURE_EXPLICIT_MODE;\n/** Spherical coordinates mode */\nEngine.TEXTURE_SPHERICAL_MODE = Constants.TEXTURE_SPHERICAL_MODE;\n/** Planar coordinates mode */\nEngine.TEXTURE_PLANAR_MODE = Constants.TEXTURE_PLANAR_MODE;\n/** Cubic coordinates mode */\nEngine.TEXTURE_CUBIC_MODE = Constants.TEXTURE_CUBIC_MODE;\n/** Projection coordinates mode */\nEngine.TEXTURE_PROJECTION_MODE = Constants.TEXTURE_PROJECTION_MODE;\n/** Skybox coordinates mode */\nEngine.TEXTURE_SKYBOX_MODE = Constants.TEXTURE_SKYBOX_MODE;\n/** Inverse Cubic coordinates mode */\nEngine.TEXTURE_INVCUBIC_MODE = Constants.TEXTURE_INVCUBIC_MODE;\n/** Equirectangular coordinates mode */\nEngine.TEXTURE_EQUIRECTANGULAR_MODE = Constants.TEXTURE_EQUIRECTANGULAR_MODE;\n/** Equirectangular Fixed coordinates mode */\nEngine.TEXTURE_FIXED_EQUIRECTANGULAR_MODE = Constants.TEXTURE_FIXED_EQUIRECTANGULAR_MODE;\n/** Equirectangular Fixed Mirrored coordinates mode */\nEngine.TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE = Constants.TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE;\n// Texture rescaling mode\n/** Defines that texture rescaling will use a floor to find the closer power of 2 size */\nEngine.SCALEMODE_FLOOR = Constants.SCALEMODE_FLOOR;\n/** Defines that texture rescaling will look for the nearest power of 2 size */\nEngine.SCALEMODE_NEAREST = Constants.SCALEMODE_NEAREST;\n/** Defines that texture rescaling will use a ceil to find the closer power of 2 size */\nEngine.SCALEMODE_CEILING = Constants.SCALEMODE_CEILING;\n//# sourceMappingURL=engine.js.map"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{C as e,I as t,L as r,a as _,b as i,G as E,H as s,S as a,B as n,A as T,E as h,P as l,_ as R}from"./index-DRbhrB0j.esm.min.js";import{T as u,W as o,a as A}from"./thinEngine-Cu21aOSC.esm.min.js";import{R as f,P as c,_ as d,a as U,C as p,b as g,E as m,G as M,c as S,d as P,e as N}from"./engine.common-BuPfo1Wj.esm.min.js";import"./audioEngine-FKYFzzDb.esm.min.js";import"./drawWrapper.functions-ng7lvueZ.esm.min.js";function F(t,r,_,i){let E,s=1;i===e.TEXTURETYPE_FLOAT?E=new Float32Array(r*_*4):i===e.TEXTURETYPE_HALF_FLOAT?(E=new Uint16Array(r*_*4),s=15360):E=i===e.TEXTURETYPE_UNSIGNED_INTEGER?new Uint32Array(r*_*4):new Uint8Array(r*_*4);for(let e=0;e<r;e++)for(let i=0;i<_;i++){const _=3*(i*r+e),a=4*(i*r+e);E[a+0]=t[_+0],E[a+1]=t[_+1],E[a+2]=t[_+2],E[a+3]=s}return E}function I(r){return function(_,i,E,s,a,n,T,h,l=null,R=e.TEXTURETYPE_UNSIGNED_BYTE){const u=r?this._gl.TEXTURE_3D:this._gl.TEXTURE_2D_ARRAY,o=new t(this,r?10:11);o.baseWidth=i,o.baseHeight=E,o.baseDepth=s,o.width=i,o.height=E,o.depth=s,o.format=a,o.type=R,o.generateMipMaps=n,o.samplingMode=h,r?o.is3D=!0:o.is2DArray=!0,this._doNotHandleContextLost||(o._bufferView=_),r?this.updateRawTexture3D(o,_,a,T,l,R):this.updateRawTexture2DArray(o,_,a,T,l,R),this._bindTextureDirectly(u,o,!0);const A=this._getSamplingParameters(h,n);return this._gl.texParameteri(u,this._gl.TEXTURE_MAG_FILTER,A.mag),this._gl.texParameteri(u,this._gl.TEXTURE_MIN_FILTER,A.min),n&&this._gl.generateMipmap(u),this._bindTextureDirectly(u,null),this._internalTexturesCache.push(o),o}}function D(t){return function(r,_,i,E,s=null,a=e.TEXTURETYPE_UNSIGNED_BYTE){const n=t?this._gl.TEXTURE_3D:this._gl.TEXTURE_2D_ARRAY,T=this._getWebGLTextureType(a),h=this._getInternalFormat(i),l=this._getRGBABufferInternalSizedFormat(a,i);this._bindTextureDirectly(n,r,!0),this._unpackFlipY(void 0===E||!!E),this._doNotHandleContextLost||(r._bufferView=_,r.format=i,r.invertY=E,r._compression=s),r.width%4!=0&&this._gl.pixelStorei(this._gl.UNPACK_ALIGNMENT,1),s&&_?this._gl.compressedTexImage3D(n,0,this.getCaps().s3tc[s],r.width,r.height,r.depth,0,_):this._gl.texImage3D(n,0,l,r.width,r.height,r.depth,0,h,T,_),r.generateMipMaps&&this._gl.generateMipmap(n),this._bindTextureDirectly(n,null),r.isReady=!0}}u.prototype.setAlphaMode=function(t,r=!1){if(this._alphaMode!==t){switch(t){case e.ALPHA_DISABLE:this._alphaState.alphaBlend=!1;break;case e.ALPHA_PREMULTIPLIED:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE,this._gl.ONE_MINUS_SRC_ALPHA,this._gl.ONE,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case e.ALPHA_PREMULTIPLIED_PORTERDUFF:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE,this._gl.ONE_MINUS_SRC_ALPHA,this._gl.ONE,this._gl.ONE_MINUS_SRC_ALPHA),this._alphaState.alphaBlend=!0;break;case e.ALPHA_COMBINE:this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA,this._gl.ONE_MINUS_SRC_ALPHA,this._gl.ONE,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case e.ALPHA_ONEONE:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE,this._gl.ONE,this._gl.ZERO,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case e.ALPHA_ADD:this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA,this._gl.ONE,this._gl.ZERO,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case e.ALPHA_SUBTRACT:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ZERO,this._gl.ONE_MINUS_SRC_COLOR,this._gl.ONE,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case e.ALPHA_MULTIPLY:this._alphaState.setAlphaBlendFunctionParameters(this._gl.DST_COLOR,this._gl.ZERO,this._gl.ONE,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case e.ALPHA_MAXIMIZED:this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA,this._gl.ONE_MINUS_SRC_COLOR,this._gl.ONE,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case e.ALPHA_INTERPOLATE:this._alphaState.setAlphaBlendFunctionParameters(this._gl.CONSTANT_COLOR,this._gl.ONE_MINUS_CONSTANT_COLOR,this._gl.CONSTANT_ALPHA,this._gl.ONE_MINUS_CONSTANT_ALPHA),this._alphaState.alphaBlend=!0;break;case e.ALPHA_SCREENMODE:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE,this._gl.ONE_MINUS_SRC_COLOR,this._gl.ONE,this._gl.ONE_MINUS_SRC_ALPHA),this._alphaState.alphaBlend=!0;break;case e.ALPHA_ONEONE_ONEONE:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE,this._gl.ONE,this._gl.ONE,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case e.ALPHA_ALPHATOCOLOR:this._alphaState.setAlphaBlendFunctionParameters(this._gl.DST_ALPHA,this._gl.ONE,this._gl.ZERO,this._gl.ZERO),this._alphaState.alphaBlend=!0;break;case e.ALPHA_REVERSEONEMINUS:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE_MINUS_DST_COLOR,this._gl.ONE_MINUS_SRC_COLOR,this._gl.ONE_MINUS_DST_ALPHA,this._gl.ONE_MINUS_SRC_ALPHA),this._alphaState.alphaBlend=!0;break;case e.ALPHA_SRC_DSTONEMINUSSRCALPHA:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE,this._gl.ONE_MINUS_SRC_ALPHA,this._gl.ONE,this._gl.ONE_MINUS_SRC_ALPHA),this._alphaState.alphaBlend=!0;break;case e.ALPHA_ONEONE_ONEZERO:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE,this._gl.ONE,this._gl.ONE,this._gl.ZERO),this._alphaState.alphaBlend=!0;break;case e.ALPHA_EXCLUSION:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE_MINUS_DST_COLOR,this._gl.ONE_MINUS_SRC_COLOR,this._gl.ZERO,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case e.ALPHA_LAYER_ACCUMULATE:this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA,this._gl.ONE_MINUS_SRC_ALPHA,this._gl.ONE,this._gl.ONE_MINUS_SRC_ALPHA),this._alphaState.alphaBlend=!0}r||(this.depthCullingState.depthMask=t===e.ALPHA_DISABLE),this._alphaMode=t}else if(!r){const r=t===e.ALPHA_DISABLE;this.depthCullingState.depthMask!==r&&(this.depthCullingState.depthMask=r)}},u.prototype.updateRawTexture=function(t,r,_,i,E=null,s=e.TEXTURETYPE_UNSIGNED_BYTE,a=!1){if(!t)return;const n=this._getRGBABufferInternalSizedFormat(s,_,a),T=this._getInternalFormat(_),h=this._getWebGLTextureType(s);this._bindTextureDirectly(this._gl.TEXTURE_2D,t,!0),this._unpackFlipY(void 0===i||!!i),this._doNotHandleContextLost||(t._bufferView=r,t.format=_,t.type=s,t.invertY=i,t._compression=E),t.width%4!=0&&this._gl.pixelStorei(this._gl.UNPACK_ALIGNMENT,1),E&&r?this._gl.compressedTexImage2D(this._gl.TEXTURE_2D,0,this.getCaps().s3tc[E],t.width,t.height,0,r):this._gl.texImage2D(this._gl.TEXTURE_2D,0,n,t.width,t.height,0,T,h,r),t.generateMipMaps&&this._gl.generateMipmap(this._gl.TEXTURE_2D),this._bindTextureDirectly(this._gl.TEXTURE_2D,null),t.isReady=!0},u.prototype.createRawTexture=function(r,_,i,E,s,a,n,T=null,h=e.TEXTURETYPE_UNSIGNED_BYTE,l=0,R=!1){const u=new t(this,3);u.baseWidth=_,u.baseHeight=i,u.width=_,u.height=i,u.format=E,u.generateMipMaps=s,u.samplingMode=n,u.invertY=a,u._compression=T,u.type=h,u._useSRGBBuffer=this._getUseSRGBBuffer(R,!s),this._doNotHandleContextLost||(u._bufferView=r),this.updateRawTexture(u,r,E,a,T,h,u._useSRGBBuffer),this._bindTextureDirectly(this._gl.TEXTURE_2D,u,!0);const o=this._getSamplingParameters(n,s);return this._gl.texParameteri(this._gl.TEXTURE_2D,this._gl.TEXTURE_MAG_FILTER,o.mag),this._gl.texParameteri(this._gl.TEXTURE_2D,this._gl.TEXTURE_MIN_FILTER,o.min),s&&this._gl.generateMipmap(this._gl.TEXTURE_2D),this._bindTextureDirectly(this._gl.TEXTURE_2D,null),this._internalTexturesCache.push(u),u},u.prototype.createRawCubeTexture=function(i,E,s,a,n,T,h,l=null){const R=this._gl,u=new t(this,8);u.isCube=!0,u.format=s,u.type=a,this._doNotHandleContextLost||(u._bufferViewArray=i);const o=this._getWebGLTextureType(a);let A=this._getInternalFormat(s);A===R.RGB&&(A=R.RGBA),o!==R.FLOAT||this._caps.textureFloatLinearFiltering?o!==this._gl.HALF_FLOAT_OES||this._caps.textureHalfFloatLinearFiltering?o!==R.FLOAT||this._caps.textureFloatRender?o!==R.HALF_FLOAT||this._caps.colorBufferFloat||(n=!1,r.Warn("Render to half float textures is not supported. Mipmap generation forced to false.")):(n=!1,r.Warn("Render to float textures is not supported. Mipmap generation forced to false.")):(n=!1,h=e.TEXTURE_NEAREST_SAMPLINGMODE,r.Warn("Half float texture filtering is not supported. Mipmap generation and sampling mode are forced to false and TEXTURE_NEAREST_SAMPLINGMODE, respectively.")):(n=!1,h=e.TEXTURE_NEAREST_SAMPLINGMODE,r.Warn("Float texture filtering is not supported. Mipmap generation and sampling mode are forced to false and TEXTURE_NEAREST_SAMPLINGMODE, respectively."));const f=E,c=f;u.width=f,u.height=c,u.invertY=T,u._compression=l;if(!this.needPOTTextures||_(u.width)&&_(u.height)||(n=!1),i)this.updateRawCubeTexture(u,i,s,a,T,l);else{const e=this._getRGBABufferInternalSizedFormat(a),t=0;this._bindTextureDirectly(R.TEXTURE_CUBE_MAP,u,!0);for(let r=0;r<6;r++)l?R.compressedTexImage2D(R.TEXTURE_CUBE_MAP_POSITIVE_X+r,t,this.getCaps().s3tc[l],u.width,u.height,0,void 0):R.texImage2D(R.TEXTURE_CUBE_MAP_POSITIVE_X+r,t,e,u.width,u.height,0,A,o,null);this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,null)}this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,u,!0),i&&n&&this._gl.generateMipmap(this._gl.TEXTURE_CUBE_MAP);const d=this._getSamplingParameters(h,n);return R.texParameteri(R.TEXTURE_CUBE_MAP,R.TEXTURE_MAG_FILTER,d.mag),R.texParameteri(R.TEXTURE_CUBE_MAP,R.TEXTURE_MIN_FILTER,d.min),R.texParameteri(R.TEXTURE_CUBE_MAP,R.TEXTURE_WRAP_S,R.CLAMP_TO_EDGE),R.texParameteri(R.TEXTURE_CUBE_MAP,R.TEXTURE_WRAP_T,R.CLAMP_TO_EDGE),this._bindTextureDirectly(R.TEXTURE_CUBE_MAP,null),u.generateMipMaps=n,u.samplingMode=h,u.isReady=!0,u},u.prototype.updateRawCubeTexture=function(e,t,r,i,E,s=null,a=0){e._bufferViewArray=t,e.format=r,e.type=i,e.invertY=E,e._compression=s;const n=this._gl,T=this._getWebGLTextureType(i);let h=this._getInternalFormat(r);const l=this._getRGBABufferInternalSizedFormat(i);let R=!1;h===n.RGB&&(h=n.RGBA,R=!0),this._bindTextureDirectly(n.TEXTURE_CUBE_MAP,e,!0),this._unpackFlipY(void 0===E||!!E),e.width%4!=0&&n.pixelStorei(n.UNPACK_ALIGNMENT,1);for(let r=0;r<6;r++){let _=t[r];s?n.compressedTexImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+r,a,this.getCaps().s3tc[s],e.width,e.height,0,_):(R&&(_=F(_,e.width,e.height,i)),n.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+r,a,l,e.width,e.height,0,h,T,_))}(!this.needPOTTextures||_(e.width)&&_(e.height))&&e.generateMipMaps&&0===a&&this._gl.generateMipmap(this._gl.TEXTURE_CUBE_MAP),this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,null),e.isReady=!0},u.prototype.createRawCubeTextureFromUrl=function(t,r,_,i,E,s,a,n,T=null,h=null,l=e.TEXTURE_TRILINEAR_SAMPLINGMODE,R=!1){const u=this._gl,o=this.createRawCubeTexture(null,_,i,E,!s,R,l,null);r?.addPendingData(o),o.url=t,o.isReady=!1,this._internalTexturesCache.push(o);const A=e=>{const t=o.width,_=a(e);if(_){if(n){const e=this._getWebGLTextureType(E);let r=this._getInternalFormat(i);const s=this._getRGBABufferInternalSizedFormat(E);let a=!1;r===u.RGB&&(r=u.RGBA,a=!0),this._bindTextureDirectly(u.TEXTURE_CUBE_MAP,o,!0),this._unpackFlipY(!1);const T=n(_);for(let _=0;_<T.length;_++){const i=t>>_;for(let t=0;t<6;t++){let n=T[_][t];a&&(n=F(n,i,i,E)),u.texImage2D(t,_,s,i,i,0,r,e,n)}}this._bindTextureDirectly(u.TEXTURE_CUBE_MAP,null)}else this.updateRawCubeTexture(o,_,i,E,R);o.isReady=!0,r?.removePendingData(o),o.onLoadedObservable.notifyObservers(o),o.onLoadedObservable.clear(),T&&T()}};return this._loadFile(t,(e=>{A(e)}),void 0,r?.offlineProvider,!0,((e,t)=>{r?.removePendingData(o),h&&e&&h(e.status+" "+e.statusText,t)})),o},u.prototype.createRawTexture2DArray=I(!1),u.prototype.createRawTexture3D=I(!0),u.prototype.updateRawTexture2DArray=D(!1),u.prototype.updateRawTexture3D=D(!0),u.prototype._readTexturePixelsSync=function(e,t,r,_=-1,E=0,s=null,a=!0,n=!1,T=0,h=0){const l=this._gl;if(!l)throw new Error("Engine does not have gl rendering context.");if(!this._dummyFramebuffer){const e=l.createFramebuffer();if(!e)throw new Error("Unable to create dummy framebuffer");this._dummyFramebuffer=e}l.bindFramebuffer(l.FRAMEBUFFER,this._dummyFramebuffer),_>-1?l.framebufferTexture2D(l.FRAMEBUFFER,l.COLOR_ATTACHMENT0,l.TEXTURE_CUBE_MAP_POSITIVE_X+_,e._hardwareTexture?.underlyingResource,E):l.framebufferTexture2D(l.FRAMEBUFFER,l.COLOR_ATTACHMENT0,l.TEXTURE_2D,e._hardwareTexture?.underlyingResource,E);let R=void 0!==e.type?this._getWebGLTextureType(e.type):l.UNSIGNED_BYTE;if(n)s||(s=i(e.type,4*t*r));else if(R===l.UNSIGNED_BYTE)s||(s=new Uint8Array(4*t*r)),R=l.UNSIGNED_BYTE;else s||(s=new Float32Array(4*t*r)),R=l.FLOAT;return a&&this.flushFramebuffer(),l.readPixels(T,h,t,r,l.RGBA,R,s),l.bindFramebuffer(l.FRAMEBUFFER,this._currentFramebuffer),s},u.prototype._readTexturePixels=function(e,t,r,_=-1,i=0,E=null,s=!0,a=!1,n=0,T=0){return Promise.resolve(this._readTexturePixelsSync(e,t,r,_,i,E,s,a,n,T))},u.prototype.updateDynamicIndexBuffer=function(e,t,r=0){let _;this._currentBoundBuffer[this._gl.ELEMENT_ARRAY_BUFFER]=null,this.bindIndexBuffer(e),_=e.is32Bits?t instanceof Uint32Array?t:new Uint32Array(t):t instanceof Uint16Array?t:new Uint16Array(t),this._gl.bufferData(this._gl.ELEMENT_ARRAY_BUFFER,_,this._gl.DYNAMIC_DRAW),this._resetIndexBufferBinding()},u.prototype.updateDynamicVertexBuffer=function(e,t,r,_){this.bindArrayBuffer(e),void 0===r&&(r=0);const i=t.byteLength||t.length;void 0===_||_>=i&&0===r?t instanceof Array?this._gl.bufferSubData(this._gl.ARRAY_BUFFER,r,new Float32Array(t)):this._gl.bufferSubData(this._gl.ARRAY_BUFFER,r,t):t instanceof Array?this._gl.bufferSubData(this._gl.ARRAY_BUFFER,0,new Float32Array(t).subarray(r,r+_)):(t=t instanceof ArrayBuffer?new Uint8Array(t,r,_):new Uint8Array(t.buffer,t.byteOffset+r,_),this._gl.bufferSubData(this._gl.ARRAY_BUFFER,0,t)),this._resetVertexBufferBinding()},u.prototype._createDepthStencilCubeTexture=function(e,_){const i=new t(this,12);if(i.isCube=!0,1===this.webGLVersion)return r.Error("Depth cube texture is not supported by WebGL 1."),i;const E={bilinearFiltering:!1,comparisonFunction:0,generateStencil:!1,..._},s=this._gl;this._bindTextureDirectly(s.TEXTURE_CUBE_MAP,i,!0),this._setupDepthStencilTexture(i,e,E.bilinearFiltering,E.comparisonFunction);for(let t=0;t<6;t++)E.generateStencil?s.texImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+t,0,s.DEPTH24_STENCIL8,e,e,0,s.DEPTH_STENCIL,s.UNSIGNED_INT_24_8,null):s.texImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+t,0,s.DEPTH_COMPONENT24,e,e,0,s.DEPTH_COMPONENT,s.UNSIGNED_INT,null);return this._bindTextureDirectly(s.TEXTURE_CUBE_MAP,null),this._internalTexturesCache.push(i),i},u.prototype._setCubeMapTextureParams=function(t,r,_){const i=this._gl;i.texParameteri(i.TEXTURE_CUBE_MAP,i.TEXTURE_MAG_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_CUBE_MAP,i.TEXTURE_MIN_FILTER,r?i.LINEAR_MIPMAP_LINEAR:i.LINEAR),i.texParameteri(i.TEXTURE_CUBE_MAP,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_CUBE_MAP,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),t.samplingMode=r?e.TEXTURE_TRILINEAR_SAMPLINGMODE:e.TEXTURE_LINEAR_LINEAR,r&&this.getCaps().textureMaxLevel&&void 0!==_&&_>0&&(i.texParameteri(i.TEXTURE_CUBE_MAP,i.TEXTURE_MAX_LEVEL,_),t._maxLodLevel=_),this._bindTextureDirectly(i.TEXTURE_CUBE_MAP,null)},u.prototype.createCubeTexture=function(e,t,_,i,s=null,a=null,n,T=null,h=!1,l=0,R=0,u=null,o,A=!1,f=null){const c=this._gl;return this.createCubeTextureBase(e,t,_,!!i,s,a,n,T,h,l,R,u,(e=>this._bindTextureDirectly(c.TEXTURE_CUBE_MAP,e,!0)),((e,t)=>{const _=this.needPOTTextures?E(t[0].width,this._caps.maxCubemapTextureSize):t[0].width,a=_,T=[c.TEXTURE_CUBE_MAP_POSITIVE_X,c.TEXTURE_CUBE_MAP_POSITIVE_Y,c.TEXTURE_CUBE_MAP_POSITIVE_Z,c.TEXTURE_CUBE_MAP_NEGATIVE_X,c.TEXTURE_CUBE_MAP_NEGATIVE_Y,c.TEXTURE_CUBE_MAP_NEGATIVE_Z];this._bindTextureDirectly(c.TEXTURE_CUBE_MAP,e,!0),this._unpackFlipY(!1);const h=n?this._getInternalFormat(n,e._useSRGBBuffer):e._useSRGBBuffer?this._glSRGBExtensionValues.SRGB8_ALPHA8:c.RGBA;let l=n?this._getInternalFormat(n):c.RGBA;e._useSRGBBuffer&&1===this.webGLVersion&&(l=h);for(let e=0;e<T.length;e++)if(t[e].width!==_||t[e].height!==a){if(this._prepareWorkingCanvas(),!this._workingCanvas||!this._workingContext)return void r.Warn("Cannot create canvas to resize texture.");this._workingCanvas.width=_,this._workingCanvas.height=a,this._workingContext.drawImage(t[e],0,0,t[e].width,t[e].height,0,0,_,a),c.texImage2D(T[e],0,h,l,c.UNSIGNED_BYTE,this._workingCanvas)}else c.texImage2D(T[e],0,h,l,c.UNSIGNED_BYTE,t[e]);i||c.generateMipmap(c.TEXTURE_CUBE_MAP),this._setCubeMapTextureParams(e,!i),e.width=_,e.height=a,e.isReady=!0,n&&(e.format=n),e.onLoadedObservable.notifyObservers(e),e.onLoadedObservable.clear(),s&&s()}),!!A,f)},u.prototype.generateMipMapsForCubemap=function(e,t=!0){if(e.generateMipMaps){const r=this._gl;this._bindTextureDirectly(r.TEXTURE_CUBE_MAP,e,!0),r.generateMipmap(r.TEXTURE_CUBE_MAP),t&&this._bindTextureDirectly(r.TEXTURE_CUBE_MAP,null)}};class O extends f{setDepthStencilTexture(e,t=!0){if(super.setDepthStencilTexture(e,t),!e)return;const r=this._engine,_=this._context,i=e._hardwareTexture;if(i&&e._autoMSAAManagement&&this._MSAAFramebuffer){const t=r._currentFramebuffer;r._bindUnboundFramebuffer(this._MSAAFramebuffer),_.framebufferRenderbuffer(_.FRAMEBUFFER,s(e.format)?_.DEPTH_STENCIL_ATTACHMENT:_.DEPTH_ATTACHMENT,_.RENDERBUFFER,i.getMSAARenderBuffer()),r._bindUnboundFramebuffer(t)}}constructor(e,t,r,_,i){super(e,t,r,_),this._framebuffer=null,this._depthStencilBuffer=null,this._MSAAFramebuffer=null,this._colorTextureArray=null,this._depthStencilTextureArray=null,this._disposeOnlyFramebuffers=!1,this._currentLOD=0,this._context=i}_cloneRenderTargetWrapper(){let e=null;return this._colorTextureArray&&this._depthStencilTextureArray?(e=this._engine.createMultiviewRenderTargetTexture(this.width,this.height),e.texture.isReady=!0):e=super._cloneRenderTargetWrapper(),e}_swapRenderTargetWrapper(e){super._swapRenderTargetWrapper(e),e._framebuffer=this._framebuffer,e._depthStencilBuffer=this._depthStencilBuffer,e._MSAAFramebuffer=this._MSAAFramebuffer,e._colorTextureArray=this._colorTextureArray,e._depthStencilTextureArray=this._depthStencilTextureArray,this._framebuffer=this._depthStencilBuffer=this._MSAAFramebuffer=this._colorTextureArray=this._depthStencilTextureArray=null}createDepthStencilTexture(t=0,r=!0,_=!1,i=1,E=e.TEXTUREFORMAT_DEPTH32_FLOAT,s){if(this._depthStencilBuffer){const e=this._engine,t=e._currentFramebuffer,r=this._context;e._bindUnboundFramebuffer(this._framebuffer),r.framebufferRenderbuffer(r.FRAMEBUFFER,r.DEPTH_STENCIL_ATTACHMENT,r.RENDERBUFFER,null),r.framebufferRenderbuffer(r.FRAMEBUFFER,r.DEPTH_ATTACHMENT,r.RENDERBUFFER,null),r.framebufferRenderbuffer(r.FRAMEBUFFER,r.STENCIL_ATTACHMENT,r.RENDERBUFFER,null),e._bindUnboundFramebuffer(t),r.deleteRenderbuffer(this._depthStencilBuffer),this._depthStencilBuffer=null}return super.createDepthStencilTexture(t,r,_,i,E,s)}shareDepth(e){super.shareDepth(e);const t=this._context,r=this._depthStencilBuffer,_=e._MSAAFramebuffer||e._framebuffer,i=this._engine;e._depthStencilBuffer&&e._depthStencilBuffer!==r&&t.deleteRenderbuffer(e._depthStencilBuffer),e._depthStencilBuffer=r;const E=e._generateStencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT;i._bindUnboundFramebuffer(_),t.framebufferRenderbuffer(t.FRAMEBUFFER,E,t.RENDERBUFFER,r),i._bindUnboundFramebuffer(null)}_bindTextureRenderTarget(e,t=0,r,_=0){const i=e._hardwareTexture;if(!i)return;const E=this._framebuffer,s=this._engine,a=s._currentFramebuffer;let n;if(s._bindUnboundFramebuffer(E),s.webGLVersion>1){const E=this._context;n=E["COLOR_ATTACHMENT"+t],e.is2DArray||e.is3D?(r=r??this.layerIndices?.[t]??0,E.framebufferTextureLayer(E.FRAMEBUFFER,n,i.underlyingResource,_,r)):e.isCube?(r=r??this.faceIndices?.[t]??0,E.framebufferTexture2D(E.FRAMEBUFFER,n,E.TEXTURE_CUBE_MAP_POSITIVE_X+r,i.underlyingResource,_)):E.framebufferTexture2D(E.FRAMEBUFFER,n,E.TEXTURE_2D,i.underlyingResource,_)}else{const e=this._context;n=e["COLOR_ATTACHMENT"+t+"_WEBGL"];const E=void 0!==r?e.TEXTURE_CUBE_MAP_POSITIVE_X+r:e.TEXTURE_2D;e.framebufferTexture2D(e.FRAMEBUFFER,n,E,i.underlyingResource,_)}if(e._autoMSAAManagement&&this._MSAAFramebuffer){const e=this._context;s._bindUnboundFramebuffer(this._MSAAFramebuffer),e.framebufferRenderbuffer(e.FRAMEBUFFER,n,e.RENDERBUFFER,i.getMSAARenderBuffer())}s._bindUnboundFramebuffer(a)}setTexture(e,t=0,r=!0){super.setTexture(e,t,r),this._bindTextureRenderTarget(e,t)}setLayerAndFaceIndices(e,t){if(super.setLayerAndFaceIndices(e,t),!this.textures||!this.layerIndices||!this.faceIndices)return;const r=this._attachments?.length??this.textures.length;for(let e=0;e<r;e++){const t=this.textures[e];t&&(t.is2DArray||t.is3D?this._bindTextureRenderTarget(t,e,this.layerIndices[e]):t.isCube?this._bindTextureRenderTarget(t,e,this.faceIndices[e]):this._bindTextureRenderTarget(t,e))}}setLayerAndFaceIndex(e=0,t,r){if(super.setLayerAndFaceIndex(e,t,r),!this.textures||!this.layerIndices||!this.faceIndices)return;const _=this.textures[e];_.is2DArray||_.is3D?this._bindTextureRenderTarget(this.textures[e],e,this.layerIndices[e]):_.isCube&&this._bindTextureRenderTarget(this.textures[e],e,this.faceIndices[e])}resolveMSAATextures(){const e=this._engine,t=e._currentFramebuffer;e._bindUnboundFramebuffer(this._MSAAFramebuffer),super.resolveMSAATextures(),e._bindUnboundFramebuffer(t)}dispose(e=this._disposeOnlyFramebuffers){const t=this._context;e||(this._colorTextureArray&&(this._context.deleteTexture(this._colorTextureArray),this._colorTextureArray=null),this._depthStencilTextureArray&&(this._context.deleteTexture(this._depthStencilTextureArray),this._depthStencilTextureArray=null)),this._framebuffer&&(t.deleteFramebuffer(this._framebuffer),this._framebuffer=null),this._depthStencilBuffer&&(t.deleteRenderbuffer(this._depthStencilBuffer),this._depthStencilBuffer=null),this._MSAAFramebuffer&&(t.deleteFramebuffer(this._MSAAFramebuffer),this._MSAAFramebuffer=null),super.dispose(e)}}u.prototype._createHardwareRenderTargetWrapper=function(e,t,r){const _=new O(e,t,r,this,this._gl);return this._renderTargetWrapperCache.push(_),_},u.prototype.createRenderTargetTexture=function(e,t){const r=this._createHardwareRenderTargetWrapper(!1,!1,e);let _,i,E=!0,s=!1,a=!1,n=1;void 0!==t&&"object"==typeof t&&(E=t.generateDepthBuffer??!0,s=!!t.generateStencilBuffer,a=!!t.noColorAttachment,_=t.colorAttachment,n=t.samples??1,i=t.label);const T=_||(a?null:this._createInternalTexture(e,t,!0,5)),h=e.width||e,l=e.height||e,R=this._currentFramebuffer,u=this._gl,o=u.createFramebuffer();if(this._bindUnboundFramebuffer(o),r._depthStencilBuffer=this._setupFramebufferDepthAttachments(s,E,h,l),!T||T.is2DArray||T.is3D||u.framebufferTexture2D(u.FRAMEBUFFER,u.COLOR_ATTACHMENT0,u.TEXTURE_2D,T._hardwareTexture.underlyingResource,0),this._bindUnboundFramebuffer(R),r.label=i??"RenderTargetWrapper",r._framebuffer=o,r._generateDepthBuffer=E,r._generateStencilBuffer=s,r.setTextures(T),_){if(r._samples=_.samples,_.samples>1){const e=_._hardwareTexture.getMSAARenderBuffer(0);r._MSAAFramebuffer=u.createFramebuffer(),this._bindUnboundFramebuffer(r._MSAAFramebuffer),u.framebufferRenderbuffer(u.FRAMEBUFFER,u.COLOR_ATTACHMENT0,u.RENDERBUFFER,e),this._bindUnboundFramebuffer(null)}}else this.updateRenderTargetTextureSampleCount(r,n);return r},u.prototype._createDepthStencilTexture=function(_,i,E){const s=this._gl,a=_.layers||0,n=_.depth||0;let T=s.TEXTURE_2D;0!==a?T=s.TEXTURE_2D_ARRAY:0!==n&&(T=s.TEXTURE_3D);const h=new t(this,12);if(h.label=i.label,!this._caps.depthTextureExtension)return r.Error("Depth texture is not supported by your browser or hardware."),h;const l={bilinearFiltering:!1,comparisonFunction:0,generateStencil:!1,...i};if(this._bindTextureDirectly(T,h,!0),this._setupDepthStencilTexture(h,_,0!==l.comparisonFunction&&l.bilinearFiltering,l.comparisonFunction,l.samples),void 0!==l.depthTextureFormat){if(l.depthTextureFormat!==e.TEXTUREFORMAT_DEPTH16&&l.depthTextureFormat!==e.TEXTUREFORMAT_DEPTH24&&l.depthTextureFormat!==e.TEXTUREFORMAT_DEPTH24UNORM_STENCIL8&&l.depthTextureFormat!==e.TEXTUREFORMAT_DEPTH24_STENCIL8&&l.depthTextureFormat!==e.TEXTUREFORMAT_DEPTH32_FLOAT&&l.depthTextureFormat!==e.TEXTUREFORMAT_DEPTH32FLOAT_STENCIL8)return r.Error(`Depth texture ${l.depthTextureFormat} format is not supported.`),h;h.format=l.depthTextureFormat}else h.format=l.generateStencil?e.TEXTUREFORMAT_DEPTH24_STENCIL8:e.TEXTUREFORMAT_DEPTH24;const R=h.format===e.TEXTUREFORMAT_DEPTH24UNORM_STENCIL8||h.format===e.TEXTUREFORMAT_DEPTH24_STENCIL8||h.format===e.TEXTUREFORMAT_DEPTH32FLOAT_STENCIL8,u=this._getWebGLTextureTypeFromDepthTextureFormat(h.format),o=R?s.DEPTH_STENCIL:s.DEPTH_COMPONENT,A=this._getInternalFormatFromDepthTextureFormat(h.format,!0,R);return h.is2DArray?s.texImage3D(T,0,A,h.width,h.height,a,0,o,u,null):h.is3D?s.texImage3D(T,0,A,h.width,h.height,n,0,o,u,null):s.texImage2D(T,0,A,h.width,h.height,0,o,u,null),this._bindTextureDirectly(T,null),this._internalTexturesCache.push(h),E._depthStencilBuffer&&(s.deleteRenderbuffer(E._depthStencilBuffer),E._depthStencilBuffer=null),this._bindUnboundFramebuffer(E._MSAAFramebuffer??E._framebuffer),E._generateStencilBuffer=R,E._depthStencilTextureWithStencil=R,E._depthStencilBuffer=this._setupFramebufferDepthAttachments(E._generateStencilBuffer,E._generateDepthBuffer,E.width,E.height,E.samples,h.format),this._bindUnboundFramebuffer(null),h},u.prototype.updateRenderTargetTextureSampleCount=function(e,t){if(this.webGLVersion<2||!e)return 1;if(e.samples===t)return t;const r=this._gl;t=Math.min(t,this.getCaps().maxMSAASamples),e._depthStencilBuffer&&(r.deleteRenderbuffer(e._depthStencilBuffer),e._depthStencilBuffer=null),e._MSAAFramebuffer&&(r.deleteFramebuffer(e._MSAAFramebuffer),e._MSAAFramebuffer=null);const _=e.texture?._hardwareTexture;if(_?.releaseMSAARenderBuffers(),e.texture&&t>1&&"function"==typeof r.renderbufferStorageMultisample){const i=r.createFramebuffer();if(!i)throw new Error("Unable to create multi sampled framebuffer");e._MSAAFramebuffer=i,this._bindUnboundFramebuffer(e._MSAAFramebuffer);const E=this._createRenderBuffer(e.texture.width,e.texture.height,t,-1,this._getRGBABufferInternalSizedFormat(e.texture.type,e.texture.format,e.texture._useSRGBBuffer),r.COLOR_ATTACHMENT0,!1);if(!E)throw new Error("Unable to create multi sampled framebuffer");_?.addMSAARenderBuffer(E)}this._bindUnboundFramebuffer(e._MSAAFramebuffer??e._framebuffer),e.texture&&(e.texture.samples=t),e._samples=t;const i=e._depthStencilTexture?e._depthStencilTexture.format:void 0;return e._depthStencilBuffer=this._setupFramebufferDepthAttachments(e._generateStencilBuffer,e._generateDepthBuffer,e.width,e.height,t,i),this._bindUnboundFramebuffer(null),t},u.prototype._setupDepthStencilTexture=function(t,r,_,i,E=1){const s=r.width??r,a=r.height??r,n=r.layers||0,T=r.depth||0;t.baseWidth=s,t.baseHeight=a,t.width=s,t.height=a,t.is2DArray=n>0,t.depth=n||T,t.isReady=!0,t.samples=E,t.generateMipMaps=!1,t.samplingMode=_?e.TEXTURE_BILINEAR_SAMPLINGMODE:e.TEXTURE_NEAREST_SAMPLINGMODE,t.type=e.TEXTURETYPE_UNSIGNED_BYTE,t._comparisonFunction=i;const h=this._gl,l=this._getTextureTarget(t),R=this._getSamplingParameters(t.samplingMode,!1);h.texParameteri(l,h.TEXTURE_MAG_FILTER,R.mag),h.texParameteri(l,h.TEXTURE_MIN_FILTER,R.min),h.texParameteri(l,h.TEXTURE_WRAP_S,h.CLAMP_TO_EDGE),h.texParameteri(l,h.TEXTURE_WRAP_T,h.CLAMP_TO_EDGE),this.webGLVersion>1&&(0===i?(h.texParameteri(l,h.TEXTURE_COMPARE_FUNC,e.LEQUAL),h.texParameteri(l,h.TEXTURE_COMPARE_MODE,h.NONE)):(h.texParameteri(l,h.TEXTURE_COMPARE_FUNC,i),h.texParameteri(l,h.TEXTURE_COMPARE_MODE,h.COMPARE_REF_TO_TEXTURE)))},u.prototype.setDepthStencilTexture=function(e,t,r,_){void 0!==e&&(t&&(this._boundUniforms[e]=t),r&&r.depthStencilTexture?this._setTexture(e,r,!1,!0,_):this._setTexture(e,null,void 0,void 0,_))},u.prototype.createRenderTargetCubeTexture=function(_,i){const E=this._createHardwareRenderTargetWrapper(!1,!0,_),s={generateMipMaps:!0,generateDepthBuffer:!0,generateStencilBuffer:!1,type:e.TEXTURETYPE_UNSIGNED_BYTE,samplingMode:e.TEXTURE_TRILINEAR_SAMPLINGMODE,format:e.TEXTUREFORMAT_RGBA,...i};s.generateStencilBuffer=s.generateDepthBuffer&&s.generateStencilBuffer,(s.type!==e.TEXTURETYPE_FLOAT||this._caps.textureFloatLinearFiltering)&&(s.type!==e.TEXTURETYPE_HALF_FLOAT||this._caps.textureHalfFloatLinearFiltering)||(s.samplingMode=e.TEXTURE_NEAREST_SAMPLINGMODE);const a=this._gl,n=new t(this,5);this._bindTextureDirectly(a.TEXTURE_CUBE_MAP,n,!0);const T=this._getSamplingParameters(s.samplingMode,s.generateMipMaps);s.type!==e.TEXTURETYPE_FLOAT||this._caps.textureFloat||(s.type=e.TEXTURETYPE_UNSIGNED_BYTE,r.Warn("Float textures are not supported. Cube render target forced to TEXTURETYPE_UNESIGNED_BYTE type")),a.texParameteri(a.TEXTURE_CUBE_MAP,a.TEXTURE_MAG_FILTER,T.mag),a.texParameteri(a.TEXTURE_CUBE_MAP,a.TEXTURE_MIN_FILTER,T.min),a.texParameteri(a.TEXTURE_CUBE_MAP,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_CUBE_MAP,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE);for(let e=0;e<6;e++)a.texImage2D(a.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,this._getRGBABufferInternalSizedFormat(s.type,s.format),_,_,0,this._getInternalFormat(s.format),this._getWebGLTextureType(s.type),null);const h=a.createFramebuffer();return this._bindUnboundFramebuffer(h),E._depthStencilBuffer=this._setupFramebufferDepthAttachments(s.generateStencilBuffer,s.generateDepthBuffer,_,_),s.generateMipMaps&&a.generateMipmap(a.TEXTURE_CUBE_MAP),this._bindTextureDirectly(a.TEXTURE_CUBE_MAP,null),this._bindUnboundFramebuffer(null),E._framebuffer=h,E._generateDepthBuffer=s.generateDepthBuffer,E._generateStencilBuffer=s.generateStencilBuffer,n.width=_,n.height=_,n.isReady=!0,n.isCube=!0,n.samples=1,n.generateMipMaps=s.generateMipMaps,n.samplingMode=s.samplingMode,n.type=s.type,n.format=s.format,this._internalTexturesCache.push(n),E.setTextures(n),E},u.prototype.createPrefilteredCubeTexture=function(_,i,E,s,T=null,h=null,l,R=null,u=!0){return this.createCubeTexture(_,i,null,!1,(async _=>{if(!_)return void(T&&T(null));const h=_.texture;if(u?_.info.sphericalPolynomial&&(h._sphericalPolynomial=_.info.sphericalPolynomial):h._sphericalPolynomial=new a,h._source=9,this.getCaps().textureLOD)return void(T&&T(h));const l=this._gl,R=_.width;if(!R)return;const{DDSTools:o}=await import("./dds-D1NTXLIL.esm.min.js"),A=[];for(let a=0;a<3;a++){const T=1-a/2,u=s,f=Math.log2(R)*E+s,c=u+(f-u)*T,d=Math.round(Math.min(Math.max(c,0),f)),U=new t(this,2);if(U.type=h.type,U.format=h.format,U.width=Math.pow(2,Math.max(Math.log2(R)-d,0)),U.height=U.width,U.isCube=!0,U._cachedWrapU=e.TEXTURE_CLAMP_ADDRESSMODE,U._cachedWrapV=e.TEXTURE_CLAMP_ADDRESSMODE,this._bindTextureDirectly(l.TEXTURE_CUBE_MAP,U,!0),U.samplingMode=e.TEXTURE_LINEAR_LINEAR,l.texParameteri(l.TEXTURE_CUBE_MAP,l.TEXTURE_MAG_FILTER,l.LINEAR),l.texParameteri(l.TEXTURE_CUBE_MAP,l.TEXTURE_MIN_FILTER,l.LINEAR),l.texParameteri(l.TEXTURE_CUBE_MAP,l.TEXTURE_WRAP_S,l.CLAMP_TO_EDGE),l.texParameteri(l.TEXTURE_CUBE_MAP,l.TEXTURE_WRAP_T,l.CLAMP_TO_EDGE),_.isDDS){const e=_.info,t=_.data;this._unpackFlipY(e.isCompressed),o.UploadDDSLevels(this,U,t,e,!0,6,d)}else r.Warn("DDS is the only prefiltered cube map supported so far.");this._bindTextureDirectly(l.TEXTURE_CUBE_MAP,null);const p=new n(i);p._isCube=!0,p._texture=U,U.isReady=!0,A.push(p)}h._lodTextureHigh=A[2],h._lodTextureMid=A[1],h._lodTextureLow=A[0],T&&T(h)}),h,l,R,u,E,s)},u.prototype.createUniformBuffer=function(e,t){const r=this._gl.createBuffer();if(!r)throw new Error("Unable to create uniform buffer");const _=new o(r);return this.bindUniformBuffer(_),e instanceof Float32Array?this._gl.bufferData(this._gl.UNIFORM_BUFFER,e,this._gl.STATIC_DRAW):this._gl.bufferData(this._gl.UNIFORM_BUFFER,new Float32Array(e),this._gl.STATIC_DRAW),this.bindUniformBuffer(null),_.references=1,_},u.prototype.createDynamicUniformBuffer=function(e,t){const r=this._gl.createBuffer();if(!r)throw new Error("Unable to create dynamic uniform buffer");const _=new o(r);return this.bindUniformBuffer(_),e instanceof Float32Array?this._gl.bufferData(this._gl.UNIFORM_BUFFER,e,this._gl.DYNAMIC_DRAW):this._gl.bufferData(this._gl.UNIFORM_BUFFER,new Float32Array(e),this._gl.DYNAMIC_DRAW),this.bindUniformBuffer(null),_.references=1,_},u.prototype.updateUniformBuffer=function(e,t,r,_){this.bindUniformBuffer(e),void 0===r&&(r=0),void 0===_?t instanceof Float32Array?this._gl.bufferSubData(this._gl.UNIFORM_BUFFER,r,t):this._gl.bufferSubData(this._gl.UNIFORM_BUFFER,r,new Float32Array(t)):t instanceof Float32Array?this._gl.bufferSubData(this._gl.UNIFORM_BUFFER,0,t.subarray(r,r+_)):this._gl.bufferSubData(this._gl.UNIFORM_BUFFER,0,new Float32Array(t).subarray(r,r+_)),this.bindUniformBuffer(null)},u.prototype.bindUniformBuffer=function(e){this._gl.bindBuffer(this._gl.UNIFORM_BUFFER,e?e.underlyingResource:null)},u.prototype.bindUniformBufferBase=function(e,t,r){this._gl.bindBufferBase(this._gl.UNIFORM_BUFFER,t,e?e.underlyingResource:null)},u.prototype.bindUniformBlock=function(e,t,r){const _=e.program,i=this._gl.getUniformBlockIndex(_,t);4294967295!==i&&this._gl.uniformBlockBinding(_,i,r)};class b extends u{static get NpmPackage(){return T.NpmPackage}static get Version(){return T.Version}static get Instances(){return h.Instances}static get LastCreatedEngine(){return h.LastCreatedEngine}static get LastCreatedScene(){return h.LastCreatedScene}static DefaultLoadingScreenFactory(e){return T.DefaultLoadingScreenFactory(e)}get _supportsHardwareTextureRescaling(){return!!b._RescalePostProcessFactory}_measureFps(){this._performanceMonitor.sampleFrame(),this._fps=this._performanceMonitor.averageFPS,this._deltaTime=this._performanceMonitor.instantaneousFrameTime||0}get performanceMonitor(){return this._performanceMonitor}constructor(e,t,r,_=!1){super(e,t,r,_),this.customAnimationFrameRequester=null,this._performanceMonitor=new c,this._drawCalls=new l,e&&(this._features.supportRenderPasses=!0,r=this._creationOptions)}_initGLContext(){super._initGLContext(),this._rescalePostProcess=null}_sharedInit(e){super._sharedInit(e),d(this,e,this._creationOptions)}resizeImageBitmap(e,t,r){return U(this,e,t,r)}_createImageBitmapFromSource(e,t){return p(this,e,t)}switchFullscreen(e){this.isFullscreen?this.exitFullscreen():this.enterFullscreen(e)}enterFullscreen(e){this.isFullscreen||(this._pointerLockRequested=e,this._renderingCanvas&&g(this._renderingCanvas))}exitFullscreen(){this.isFullscreen&&m()}setDitheringState(e){e?this._gl.enable(this._gl.DITHER):this._gl.disable(this._gl.DITHER)}setRasterizerState(e){e?this._gl.disable(this._gl.RASTERIZER_DISCARD):this._gl.enable(this._gl.RASTERIZER_DISCARD)}setDirectViewport(e,t,r,_){const i=this._cachedViewport;return this._cachedViewport=null,this._viewport(e,t,r,_),i}scissorClear(e,t,r,_,i){this.enableScissor(e,t,r,_),this.clear(i,!0,!0,!0),this.disableScissor()}enableScissor(e,t,r,_){const i=this._gl;i.enable(i.SCISSOR_TEST),i.scissor(e,t,r,_)}disableScissor(){const e=this._gl;e.disable(e.SCISSOR_TEST)}_loadFileAsync(e,t,r){return new Promise(((_,i)=>{this._loadFile(e,(e=>{_(e)}),void 0,t,r,((e,t)=>{i(t)}))}))}getVertexShaderSource(e){const t=this._gl.getAttachedShaders(e);return t?this._gl.getShaderSource(t[0]):null}getFragmentShaderSource(e){const t=this._gl.getAttachedShaders(e);return t?this._gl.getShaderSource(t[1]):null}set framebufferDimensionsObject(e){this._framebufferDimensionsObject=e,this._framebufferDimensionsObject&&this.onResizeObservable.notifyObservers(this)}_rebuildBuffers(){for(const e of this.scenes)e.resetCachedMaterial(),e._rebuildGeometries();for(const e of this._virtualScenes)e.resetCachedMaterial(),e._rebuildGeometries();super._rebuildBuffers()}getFontOffset(e){return M(e)}_cancelFrame(){if(this.customAnimationFrameRequester){if(0!==this._frameHandler){this._frameHandler=0;const{cancelAnimationFrame:e}=this.customAnimationFrameRequester;e&&e(this.customAnimationFrameRequester.requestID)}}else super._cancelFrame()}_renderLoop(){if(this._frameHandler=0,!this._contextWasLost){let e=!0;(this.isDisposed||!this.renderEvenInBackground&&this._windowIsBackground)&&(e=!1),e&&(this.beginFrame(),this._renderViews()||this._renderFrame(),this.endFrame())}this._activeRenderLoops.length>0&&0===this._frameHandler&&(this.customAnimationFrameRequester?(this.customAnimationFrameRequester.requestID=this._queueNewFrame(this.customAnimationFrameRequester.renderFunction||this._boundRenderFunction,this.customAnimationFrameRequester),this._frameHandler=this.customAnimationFrameRequester.requestID):this._frameHandler=this._queueNewFrame(this._boundRenderFunction,this.getHostWindow()))}enterPointerlock(){this._renderingCanvas&&S(this._renderingCanvas)}exitPointerlock(){P()}beginFrame(){this._measureFps(),super.beginFrame()}_deletePipelineContext(e){const t=e;t&&t.program&&t.transformFeedback&&(this.deleteTransformFeedback(t.transformFeedback),t.transformFeedback=null),super._deletePipelineContext(e)}createShaderProgram(e,t,r,_,i,E=null){i=i||this._gl,this.onBeforeShaderCompilationObservable.notifyObservers(this);const s=super.createShaderProgram(e,t,r,_,i,E);return this.onAfterShaderCompilationObservable.notifyObservers(this),s}_createShaderProgram(e,t,r,_,i=null){const E=_.createProgram();if(e.program=E,!E)throw new Error("Unable to create program");if(_.attachShader(E,t),_.attachShader(E,r),this.webGLVersion>1&&i){const t=this.createTransformFeedback();this.bindTransformFeedback(t),this.setTranformFeedbackVaryings(E,i),e.transformFeedback=t}return _.linkProgram(E),this.webGLVersion>1&&i&&this.bindTransformFeedback(null),e.context=_,e.vertexShader=t,e.fragmentShader=r,e.isParallelCompiled||this._finalizePipelineContext(e),E}_releaseTexture(e){super._releaseTexture(e)}_releaseRenderTargetWrapper(e){super._releaseRenderTargetWrapper(e),this.scenes.forEach((t=>{t.postProcesses.forEach((t=>{t._outputTexture===e&&(t._outputTexture=null)})),t.cameras.forEach((t=>{t._postProcesses.forEach((t=>{t&&t._outputTexture===e&&(t._outputTexture=null)}))}))}))}_rescaleTexture(t,r,_,i,E){this._gl.texParameteri(this._gl.TEXTURE_2D,this._gl.TEXTURE_MAG_FILTER,this._gl.LINEAR),this._gl.texParameteri(this._gl.TEXTURE_2D,this._gl.TEXTURE_MIN_FILTER,this._gl.LINEAR),this._gl.texParameteri(this._gl.TEXTURE_2D,this._gl.TEXTURE_WRAP_S,this._gl.CLAMP_TO_EDGE),this._gl.texParameteri(this._gl.TEXTURE_2D,this._gl.TEXTURE_WRAP_T,this._gl.CLAMP_TO_EDGE);const s=this.createRenderTargetTexture({width:r.width,height:r.height},{generateMipMaps:!1,type:e.TEXTURETYPE_UNSIGNED_INT,samplingMode:e.TEXTURE_BILINEAR_SAMPLINGMODE,generateDepthBuffer:!1,generateStencilBuffer:!1});if(!this._rescalePostProcess&&b._RescalePostProcessFactory&&(this._rescalePostProcess=b._RescalePostProcessFactory(this)),this._rescalePostProcess){this._rescalePostProcess.externalTextureSamplerBinding=!0;const e=()=>{this._rescalePostProcess.onApply=function(e){e._bindTexture("textureSampler",t)};let e=_;e||(e=this.scenes[this.scenes.length-1]),e.postProcessManager.directRender([this._rescalePostProcess],s,!0),this._bindTextureDirectly(this._gl.TEXTURE_2D,r,!0),this._gl.copyTexImage2D(this._gl.TEXTURE_2D,0,i,0,0,r.width,r.height,0),this.unBindFramebuffer(s),s.dispose(),E&&E()},a=this._rescalePostProcess.getEffect();a?a.executeWhenCompiled(e):this._rescalePostProcess.onEffectCreatedObservable.addOnce((t=>{t.executeWhenCompiled(e)}))}}wrapWebGLTexture(r,_=!1,i=e.TEXTURE_TRILINEAR_SAMPLINGMODE,E=0,s=0){const a=new A(r,this._gl),n=new t(this,0,!0);return n._hardwareTexture=a,n.baseWidth=E,n.baseHeight=s,n.width=E,n.height=s,n.isReady=!0,n.useMipMaps=_,this.updateTextureSamplingMode(i,n),n}_uploadImageToTexture(e,t,r=0,_=0){const i=this._gl,E=this._getWebGLTextureType(e.type),s=this._getInternalFormat(e.format),a=this._getRGBABufferInternalSizedFormat(e.type,s),n=e.isCube?i.TEXTURE_CUBE_MAP:i.TEXTURE_2D;this._bindTextureDirectly(n,e,!0),this._unpackFlipY(e.invertY);let T=i.TEXTURE_2D;e.isCube&&(T=i.TEXTURE_CUBE_MAP_POSITIVE_X+r),i.texImage2D(T,_,a,s,E,t),this._bindTextureDirectly(n,null,!0)}updateTextureComparisonFunction(t,_){if(1===this.webGLVersion)return void r.Error("WebGL 1 does not support texture comparison.");const i=this._gl;t.isCube?(this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,t,!0),0===_?(i.texParameteri(i.TEXTURE_CUBE_MAP,i.TEXTURE_COMPARE_FUNC,e.LEQUAL),i.texParameteri(i.TEXTURE_CUBE_MAP,i.TEXTURE_COMPARE_MODE,i.NONE)):(i.texParameteri(i.TEXTURE_CUBE_MAP,i.TEXTURE_COMPARE_FUNC,_),i.texParameteri(i.TEXTURE_CUBE_MAP,i.TEXTURE_COMPARE_MODE,i.COMPARE_REF_TO_TEXTURE)),this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,null)):(this._bindTextureDirectly(this._gl.TEXTURE_2D,t,!0),0===_?(i.texParameteri(i.TEXTURE_2D,i.TEXTURE_COMPARE_FUNC,e.LEQUAL),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_COMPARE_MODE,i.NONE)):(i.texParameteri(i.TEXTURE_2D,i.TEXTURE_COMPARE_FUNC,_),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_COMPARE_MODE,i.COMPARE_REF_TO_TEXTURE)),this._bindTextureDirectly(this._gl.TEXTURE_2D,null)),t._comparisonFunction=_}createInstancesBuffer(e){const t=this._gl.createBuffer();if(!t)throw new Error("Unable to create instance buffer");const r=new o(t);return r.capacity=e,this.bindArrayBuffer(r),this._gl.bufferData(this._gl.ARRAY_BUFFER,e,this._gl.DYNAMIC_DRAW),r.references=1,r}deleteInstancesBuffer(e){this._gl.deleteBuffer(e)}_clientWaitAsync(e,t=0,r=10){const _=this._gl;return new Promise(((i,E)=>{R((()=>{const r=_.clientWaitSync(e,t,0);if(r==_.WAIT_FAILED)throw new Error("clientWaitSync failed");return r!=_.TIMEOUT_EXPIRED}),i,E,r)}))}_readPixelsAsync(e,t,r,_,i,E,s){if(this._webGLVersion<2)throw new Error("_readPixelsAsync only work on WebGL2+");const a=this._gl,n=a.createBuffer();a.bindBuffer(a.PIXEL_PACK_BUFFER,n),a.bufferData(a.PIXEL_PACK_BUFFER,s.byteLength,a.STREAM_READ),a.readPixels(e,t,r,_,i,E,0),a.bindBuffer(a.PIXEL_PACK_BUFFER,null);const T=a.fenceSync(a.SYNC_GPU_COMMANDS_COMPLETE,0);return T?(a.flush(),this._clientWaitAsync(T,0,10).then((()=>(a.deleteSync(T),a.bindBuffer(a.PIXEL_PACK_BUFFER,n),a.getBufferSubData(a.PIXEL_PACK_BUFFER,0,s),a.bindBuffer(a.PIXEL_PACK_BUFFER,null),a.deleteBuffer(n),s)))):null}dispose(){this.hideLoadingUI(),this._rescalePostProcess&&this._rescalePostProcess.dispose(),N(this,this._renderingCanvas),super.dispose()}}b.ALPHA_DISABLE=e.ALPHA_DISABLE,b.ALPHA_ADD=e.ALPHA_ADD,b.ALPHA_COMBINE=e.ALPHA_COMBINE,b.ALPHA_SUBTRACT=e.ALPHA_SUBTRACT,b.ALPHA_MULTIPLY=e.ALPHA_MULTIPLY,b.ALPHA_MAXIMIZED=e.ALPHA_MAXIMIZED,b.ALPHA_ONEONE=e.ALPHA_ONEONE,b.ALPHA_PREMULTIPLIED=e.ALPHA_PREMULTIPLIED,b.ALPHA_PREMULTIPLIED_PORTERDUFF=e.ALPHA_PREMULTIPLIED_PORTERDUFF,b.ALPHA_INTERPOLATE=e.ALPHA_INTERPOLATE,b.ALPHA_SCREENMODE=e.ALPHA_SCREENMODE,b.DELAYLOADSTATE_NONE=e.DELAYLOADSTATE_NONE,b.DELAYLOADSTATE_LOADED=e.DELAYLOADSTATE_LOADED,b.DELAYLOADSTATE_LOADING=e.DELAYLOADSTATE_LOADING,b.DELAYLOADSTATE_NOTLOADED=e.DELAYLOADSTATE_NOTLOADED,b.NEVER=e.NEVER,b.ALWAYS=e.ALWAYS,b.LESS=e.LESS,b.EQUAL=e.EQUAL,b.LEQUAL=e.LEQUAL,b.GREATER=e.GREATER,b.GEQUAL=e.GEQUAL,b.NOTEQUAL=e.NOTEQUAL,b.KEEP=e.KEEP,b.REPLACE=e.REPLACE,b.INCR=e.INCR,b.DECR=e.DECR,b.INVERT=e.INVERT,b.INCR_WRAP=e.INCR_WRAP,b.DECR_WRAP=e.DECR_WRAP,b.TEXTURE_CLAMP_ADDRESSMODE=e.TEXTURE_CLAMP_ADDRESSMODE,b.TEXTURE_WRAP_ADDRESSMODE=e.TEXTURE_WRAP_ADDRESSMODE,b.TEXTURE_MIRROR_ADDRESSMODE=e.TEXTURE_MIRROR_ADDRESSMODE,b.TEXTUREFORMAT_ALPHA=e.TEXTUREFORMAT_ALPHA,b.TEXTUREFORMAT_LUMINANCE=e.TEXTUREFORMAT_LUMINANCE,b.TEXTUREFORMAT_LUMINANCE_ALPHA=e.TEXTUREFORMAT_LUMINANCE_ALPHA,b.TEXTUREFORMAT_RGB=e.TEXTUREFORMAT_RGB,b.TEXTUREFORMAT_RGBA=e.TEXTUREFORMAT_RGBA,b.TEXTUREFORMAT_RED=e.TEXTUREFORMAT_RED,b.TEXTUREFORMAT_R=e.TEXTUREFORMAT_R,b.TEXTUREFORMAT_R16_UNORM=e.TEXTUREFORMAT_R16_UNORM,b.TEXTUREFORMAT_RG16_UNORM=e.TEXTUREFORMAT_RG16_UNORM,b.TEXTUREFORMAT_RGB16_UNORM=e.TEXTUREFORMAT_RGB16_UNORM,b.TEXTUREFORMAT_RGBA16_UNORM=e.TEXTUREFORMAT_RGBA16_UNORM,b.TEXTUREFORMAT_R16_SNORM=e.TEXTUREFORMAT_R16_SNORM,b.TEXTUREFORMAT_RG16_SNORM=e.TEXTUREFORMAT_RG16_SNORM,b.TEXTUREFORMAT_RGB16_SNORM=e.TEXTUREFORMAT_RGB16_SNORM,b.TEXTUREFORMAT_RGBA16_SNORM=e.TEXTUREFORMAT_RGBA16_SNORM,b.TEXTUREFORMAT_RG=e.TEXTUREFORMAT_RG,b.TEXTUREFORMAT_RED_INTEGER=e.TEXTUREFORMAT_RED_INTEGER,b.TEXTUREFORMAT_R_INTEGER=e.TEXTUREFORMAT_R_INTEGER,b.TEXTUREFORMAT_RG_INTEGER=e.TEXTUREFORMAT_RG_INTEGER,b.TEXTUREFORMAT_RGB_INTEGER=e.TEXTUREFORMAT_RGB_INTEGER,b.TEXTUREFORMAT_RGBA_INTEGER=e.TEXTUREFORMAT_RGBA_INTEGER,b.TEXTURETYPE_UNSIGNED_BYTE=e.TEXTURETYPE_UNSIGNED_BYTE,b.TEXTURETYPE_UNSIGNED_INT=e.TEXTURETYPE_UNSIGNED_INT,b.TEXTURETYPE_FLOAT=e.TEXTURETYPE_FLOAT,b.TEXTURETYPE_HALF_FLOAT=e.TEXTURETYPE_HALF_FLOAT,b.TEXTURETYPE_BYTE=e.TEXTURETYPE_BYTE,b.TEXTURETYPE_SHORT=e.TEXTURETYPE_SHORT,b.TEXTURETYPE_UNSIGNED_SHORT=e.TEXTURETYPE_UNSIGNED_SHORT,b.TEXTURETYPE_INT=e.TEXTURETYPE_INT,b.TEXTURETYPE_UNSIGNED_INTEGER=e.TEXTURETYPE_UNSIGNED_INTEGER,b.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4=e.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4,b.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1=e.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1,b.TEXTURETYPE_UNSIGNED_SHORT_5_6_5=e.TEXTURETYPE_UNSIGNED_SHORT_5_6_5,b.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV=e.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV,b.TEXTURETYPE_UNSIGNED_INT_24_8=e.TEXTURETYPE_UNSIGNED_INT_24_8,b.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV=e.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV,b.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV=e.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV,b.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV=e.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV,b.TEXTURE_NEAREST_SAMPLINGMODE=e.TEXTURE_NEAREST_SAMPLINGMODE,b.TEXTURE_BILINEAR_SAMPLINGMODE=e.TEXTURE_BILINEAR_SAMPLINGMODE,b.TEXTURE_TRILINEAR_SAMPLINGMODE=e.TEXTURE_TRILINEAR_SAMPLINGMODE,b.TEXTURE_NEAREST_NEAREST_MIPLINEAR=e.TEXTURE_NEAREST_NEAREST_MIPLINEAR,b.TEXTURE_LINEAR_LINEAR_MIPNEAREST=e.TEXTURE_LINEAR_LINEAR_MIPNEAREST,b.TEXTURE_LINEAR_LINEAR_MIPLINEAR=e.TEXTURE_LINEAR_LINEAR_MIPLINEAR,b.TEXTURE_NEAREST_NEAREST_MIPNEAREST=e.TEXTURE_NEAREST_NEAREST_MIPNEAREST,b.TEXTURE_NEAREST_LINEAR_MIPNEAREST=e.TEXTURE_NEAREST_LINEAR_MIPNEAREST,b.TEXTURE_NEAREST_LINEAR_MIPLINEAR=e.TEXTURE_NEAREST_LINEAR_MIPLINEAR,b.TEXTURE_NEAREST_LINEAR=e.TEXTURE_NEAREST_LINEAR,b.TEXTURE_NEAREST_NEAREST=e.TEXTURE_NEAREST_NEAREST,b.TEXTURE_LINEAR_NEAREST_MIPNEAREST=e.TEXTURE_LINEAR_NEAREST_MIPNEAREST,b.TEXTURE_LINEAR_NEAREST_MIPLINEAR=e.TEXTURE_LINEAR_NEAREST_MIPLINEAR,b.TEXTURE_LINEAR_LINEAR=e.TEXTURE_LINEAR_LINEAR,b.TEXTURE_LINEAR_NEAREST=e.TEXTURE_LINEAR_NEAREST,b.TEXTURE_EXPLICIT_MODE=e.TEXTURE_EXPLICIT_MODE,b.TEXTURE_SPHERICAL_MODE=e.TEXTURE_SPHERICAL_MODE,b.TEXTURE_PLANAR_MODE=e.TEXTURE_PLANAR_MODE,b.TEXTURE_CUBIC_MODE=e.TEXTURE_CUBIC_MODE,b.TEXTURE_PROJECTION_MODE=e.TEXTURE_PROJECTION_MODE,b.TEXTURE_SKYBOX_MODE=e.TEXTURE_SKYBOX_MODE,b.TEXTURE_INVCUBIC_MODE=e.TEXTURE_INVCUBIC_MODE,b.TEXTURE_EQUIRECTANGULAR_MODE=e.TEXTURE_EQUIRECTANGULAR_MODE,b.TEXTURE_FIXED_EQUIRECTANGULAR_MODE=e.TEXTURE_FIXED_EQUIRECTANGULAR_MODE,b.TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE=e.TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE,b.SCALEMODE_FLOOR=e.SCALEMODE_FLOOR,b.SCALEMODE_NEAREST=e.SCALEMODE_NEAREST,b.SCALEMODE_CEILING=e.SCALEMODE_CEILING;export{b as Engine};
2
+ //# sourceMappingURL=engine-nCWszV_w.esm.min.js.map