@babylonjs/viewer 7.41.0 → 7.41.1-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-BS2USlck.esm.min.js +2 -0
  7. package/dist/chunks/EXT_lights_ies-BS2USlck.esm.min.js.map +1 -0
  8. package/dist/chunks/EXT_lights_ies-C-joQ5O4.esm.js +84 -0
  9. package/dist/chunks/EXT_lights_ies-C-joQ5O4.esm.js.map +1 -0
  10. package/dist/chunks/EXT_lights_image_based-C3wbbb5Z.esm.js +171 -0
  11. package/dist/chunks/EXT_lights_image_based-C3wbbb5Z.esm.js.map +1 -0
  12. package/dist/chunks/EXT_lights_image_based-DDdRDnM2.esm.min.js +2 -0
  13. package/dist/chunks/EXT_lights_image_based-DDdRDnM2.esm.min.js.map +1 -0
  14. package/dist/chunks/EXT_mesh_gpu_instancing-AXAnRQN7.esm.js +86 -0
  15. package/dist/chunks/EXT_mesh_gpu_instancing-AXAnRQN7.esm.js.map +1 -0
  16. package/dist/chunks/EXT_mesh_gpu_instancing-BcjPo6uC.esm.min.js +2 -0
  17. package/dist/chunks/EXT_mesh_gpu_instancing-BcjPo6uC.esm.min.js.map +1 -0
  18. package/dist/chunks/EXT_meshopt_compression-DlUkQB2P.esm.js +134 -0
  19. package/dist/chunks/EXT_meshopt_compression-DlUkQB2P.esm.js.map +1 -0
  20. package/dist/chunks/EXT_meshopt_compression-yJ4OpORd.esm.min.js +2 -0
  21. package/dist/chunks/EXT_meshopt_compression-yJ4OpORd.esm.min.js.map +1 -0
  22. package/dist/chunks/EXT_texture_avif-BQWbvJfK.esm.min.js +2 -0
  23. package/dist/chunks/EXT_texture_avif-BQWbvJfK.esm.min.js.map +1 -0
  24. package/dist/chunks/EXT_texture_avif-C0pGpnGv.esm.js +44 -0
  25. package/dist/chunks/EXT_texture_avif-C0pGpnGv.esm.js.map +1 -0
  26. package/dist/chunks/EXT_texture_webp-Dd7Uqtmh.esm.min.js +2 -0
  27. package/dist/chunks/EXT_texture_webp-Dd7Uqtmh.esm.min.js.map +1 -0
  28. package/dist/chunks/EXT_texture_webp-DehlrnW-.esm.js +43 -0
  29. package/dist/chunks/EXT_texture_webp-DehlrnW-.esm.js.map +1 -0
  30. package/dist/chunks/ExtrasAsMetadata-C5NMuDj4.esm.js +64 -0
  31. package/dist/chunks/ExtrasAsMetadata-C5NMuDj4.esm.js.map +1 -0
  32. package/dist/chunks/ExtrasAsMetadata-Cp3LHdoG.esm.min.js +2 -0
  33. package/dist/chunks/ExtrasAsMetadata-Cp3LHdoG.esm.min.js.map +1 -0
  34. package/dist/chunks/KHR_animation_pointer-DEBOwDXh.esm.min.js +2 -0
  35. package/dist/chunks/KHR_animation_pointer-DEBOwDXh.esm.min.js.map +1 -0
  36. package/dist/chunks/KHR_animation_pointer-Dx1OeG2b.esm.js +352 -0
  37. package/dist/chunks/KHR_animation_pointer-Dx1OeG2b.esm.js.map +1 -0
  38. package/dist/chunks/KHR_draco_mesh_compression-Ch0QOlBL.esm.min.js +2 -0
  39. package/dist/chunks/KHR_draco_mesh_compression-Ch0QOlBL.esm.min.js.map +1 -0
  40. package/dist/chunks/KHR_draco_mesh_compression-D59SFLyo.esm.js +610 -0
  41. package/dist/chunks/KHR_draco_mesh_compression-D59SFLyo.esm.js.map +1 -0
  42. package/dist/chunks/KHR_interactivity-Blj_9jts.esm.min.js +2 -0
  43. package/dist/chunks/KHR_interactivity-Blj_9jts.esm.min.js.map +1 -0
  44. package/dist/chunks/KHR_interactivity-CR0LYUa7.esm.js +4033 -0
  45. package/dist/chunks/KHR_interactivity-CR0LYUa7.esm.js.map +1 -0
  46. package/dist/chunks/KHR_lights_punctual--w0a62AP.esm.js +581 -0
  47. package/dist/chunks/KHR_lights_punctual--w0a62AP.esm.js.map +1 -0
  48. package/dist/chunks/KHR_lights_punctual-BojffBbG.esm.min.js +2 -0
  49. package/dist/chunks/KHR_lights_punctual-BojffBbG.esm.min.js.map +1 -0
  50. package/dist/chunks/KHR_materials_anisotropy-BPtHWkOQ.esm.js +65 -0
  51. package/dist/chunks/KHR_materials_anisotropy-BPtHWkOQ.esm.js.map +1 -0
  52. package/dist/chunks/KHR_materials_anisotropy-DU5_bnCL.esm.min.js +2 -0
  53. package/dist/chunks/KHR_materials_anisotropy-DU5_bnCL.esm.min.js.map +1 -0
  54. package/dist/chunks/KHR_materials_clearcoat-BBuRlPhc.esm.min.js +2 -0
  55. package/dist/chunks/KHR_materials_clearcoat-BBuRlPhc.esm.min.js.map +1 -0
  56. package/dist/chunks/KHR_materials_clearcoat-Eg0xbuWN.esm.js +96 -0
  57. package/dist/chunks/KHR_materials_clearcoat-Eg0xbuWN.esm.js.map +1 -0
  58. package/dist/chunks/KHR_materials_diffuse_transmission-Bkzk60Y5.esm.min.js +2 -0
  59. package/dist/chunks/KHR_materials_diffuse_transmission-Bkzk60Y5.esm.min.js.map +1 -0
  60. package/dist/chunks/KHR_materials_diffuse_transmission-C3DaLgRY.esm.js +97 -0
  61. package/dist/chunks/KHR_materials_diffuse_transmission-C3DaLgRY.esm.js.map +1 -0
  62. package/dist/chunks/KHR_materials_dispersion-DL_XFhxj.esm.js +62 -0
  63. package/dist/chunks/KHR_materials_dispersion-DL_XFhxj.esm.js.map +1 -0
  64. package/dist/chunks/KHR_materials_dispersion-DbMQPBgM.esm.min.js +2 -0
  65. package/dist/chunks/KHR_materials_dispersion-DbMQPBgM.esm.min.js.map +1 -0
  66. package/dist/chunks/KHR_materials_emissive_strength-BuHyjtBD.esm.js +55 -0
  67. package/dist/chunks/KHR_materials_emissive_strength-BuHyjtBD.esm.js.map +1 -0
  68. package/dist/chunks/KHR_materials_emissive_strength-Djlr_ul3.esm.min.js +2 -0
  69. package/dist/chunks/KHR_materials_emissive_strength-Djlr_ul3.esm.min.js.map +1 -0
  70. package/dist/chunks/KHR_materials_ior-BIe6qBOo.esm.js +64 -0
  71. package/dist/chunks/KHR_materials_ior-BIe6qBOo.esm.js.map +1 -0
  72. package/dist/chunks/KHR_materials_ior-DOfaAmNY.esm.min.js +2 -0
  73. package/dist/chunks/KHR_materials_ior-DOfaAmNY.esm.min.js.map +1 -0
  74. package/dist/chunks/KHR_materials_iridescence-BgElZgUu.esm.js +72 -0
  75. package/dist/chunks/KHR_materials_iridescence-BgElZgUu.esm.js.map +1 -0
  76. package/dist/chunks/KHR_materials_iridescence-lUeo07SZ.esm.min.js +2 -0
  77. package/dist/chunks/KHR_materials_iridescence-lUeo07SZ.esm.min.js.map +1 -0
  78. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-9ShQyhJ6.esm.min.js +2 -0
  79. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-9ShQyhJ6.esm.min.js.map +1 -0
  80. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DE5LjLg6.esm.js +81 -0
  81. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DE5LjLg6.esm.js.map +1 -0
  82. package/dist/chunks/KHR_materials_sheen-BfZe6ZFu.esm.js +85 -0
  83. package/dist/chunks/KHR_materials_sheen-BfZe6ZFu.esm.js.map +1 -0
  84. package/dist/chunks/KHR_materials_sheen-OWjuK2V4.esm.min.js +2 -0
  85. package/dist/chunks/KHR_materials_sheen-OWjuK2V4.esm.min.js.map +1 -0
  86. package/dist/chunks/KHR_materials_specular-dowPxbW3.esm.js +75 -0
  87. package/dist/chunks/KHR_materials_specular-dowPxbW3.esm.js.map +1 -0
  88. package/dist/chunks/KHR_materials_specular-nWeBZu0R.esm.min.js +2 -0
  89. package/dist/chunks/KHR_materials_specular-nWeBZu0R.esm.min.js.map +1 -0
  90. package/dist/chunks/KHR_materials_transmission-BPNQkK0O.esm.min.js +2 -0
  91. package/dist/chunks/KHR_materials_transmission-BPNQkK0O.esm.min.js.map +1 -0
  92. package/dist/chunks/KHR_materials_transmission-CHr_yLLX.esm.js +307 -0
  93. package/dist/chunks/KHR_materials_transmission-CHr_yLLX.esm.js.map +1 -0
  94. package/dist/chunks/KHR_materials_unlit-BYXpcsdj.esm.min.js +2 -0
  95. package/dist/chunks/KHR_materials_unlit-BYXpcsdj.esm.min.js.map +1 -0
  96. package/dist/chunks/KHR_materials_unlit-Cr7YsDHT.esm.js +74 -0
  97. package/dist/chunks/KHR_materials_unlit-Cr7YsDHT.esm.js.map +1 -0
  98. package/dist/chunks/KHR_materials_variants-BCVX3sJa.esm.js +262 -0
  99. package/dist/chunks/KHR_materials_variants-BCVX3sJa.esm.js.map +1 -0
  100. package/dist/chunks/KHR_materials_variants-BXzl6KpJ.esm.min.js +2 -0
  101. package/dist/chunks/KHR_materials_variants-BXzl6KpJ.esm.min.js.map +1 -0
  102. package/dist/chunks/KHR_materials_volume-BD9KEaJz.esm.min.js +2 -0
  103. package/dist/chunks/KHR_materials_volume-BD9KEaJz.esm.min.js.map +1 -0
  104. package/dist/chunks/KHR_materials_volume-DrqGUGW6.esm.js +87 -0
  105. package/dist/chunks/KHR_materials_volume-DrqGUGW6.esm.js.map +1 -0
  106. package/dist/chunks/KHR_mesh_quantization-Dg22auJA.esm.min.js +2 -0
  107. package/dist/chunks/KHR_mesh_quantization-Dg22auJA.esm.min.js.map +1 -0
  108. package/dist/chunks/KHR_mesh_quantization-hvxpvTbe.esm.js +26 -0
  109. package/dist/chunks/KHR_mesh_quantization-hvxpvTbe.esm.js.map +1 -0
  110. package/dist/chunks/KHR_node_hoverability-BDiqFmBB.esm.js +39 -0
  111. package/dist/chunks/KHR_node_hoverability-BDiqFmBB.esm.js.map +1 -0
  112. package/dist/chunks/KHR_node_hoverability-CumkOtZM.esm.min.js +2 -0
  113. package/dist/chunks/KHR_node_hoverability-CumkOtZM.esm.min.js.map +1 -0
  114. package/dist/chunks/KHR_node_visibility-BKEa-Yfj.esm.min.js +2 -0
  115. package/dist/chunks/KHR_node_visibility-BKEa-Yfj.esm.min.js.map +1 -0
  116. package/dist/chunks/KHR_node_visibility-K0fsD4Vv.esm.js +46 -0
  117. package/dist/chunks/KHR_node_visibility-K0fsD4Vv.esm.js.map +1 -0
  118. package/dist/chunks/KHR_texture_basisu-8YVY1pKo.esm.js +43 -0
  119. package/dist/chunks/KHR_texture_basisu-8YVY1pKo.esm.js.map +1 -0
  120. package/dist/chunks/KHR_texture_basisu-BM__NeSW.esm.min.js +2 -0
  121. package/dist/chunks/KHR_texture_basisu-BM__NeSW.esm.min.js.map +1 -0
  122. package/dist/chunks/KHR_texture_transform--qxpdvRw.esm.js +63 -0
  123. package/dist/chunks/KHR_texture_transform--qxpdvRw.esm.js.map +1 -0
  124. package/dist/chunks/KHR_texture_transform-C0MO-oJp.esm.min.js +2 -0
  125. package/dist/chunks/KHR_texture_transform-C0MO-oJp.esm.min.js.map +1 -0
  126. package/dist/chunks/KHR_xmp_json_ld-D9FpHvJo.esm.js +51 -0
  127. package/dist/chunks/KHR_xmp_json_ld-D9FpHvJo.esm.js.map +1 -0
  128. package/dist/chunks/KHR_xmp_json_ld-DeXPWWQE.esm.min.js +2 -0
  129. package/dist/chunks/KHR_xmp_json_ld-DeXPWWQE.esm.min.js.map +1 -0
  130. package/dist/chunks/MSFT_audio_emitter-BbICSwFH.esm.min.js +2 -0
  131. package/dist/chunks/MSFT_audio_emitter-BbICSwFH.esm.min.js.map +1 -0
  132. package/dist/chunks/MSFT_audio_emitter-Dd5lbfUc.esm.js +2201 -0
  133. package/dist/chunks/MSFT_audio_emitter-Dd5lbfUc.esm.js.map +1 -0
  134. package/dist/chunks/MSFT_lod-B0zrRF3s.esm.js +337 -0
  135. package/dist/chunks/MSFT_lod-B0zrRF3s.esm.js.map +1 -0
  136. package/dist/chunks/MSFT_lod-Bd4znUfD.esm.min.js +2 -0
  137. package/dist/chunks/MSFT_lod-Bd4znUfD.esm.min.js.map +1 -0
  138. package/dist/chunks/MSFT_minecraftMesh-CdIpMgsb.esm.min.js +2 -0
  139. package/dist/chunks/MSFT_minecraftMesh-CdIpMgsb.esm.min.js.map +1 -0
  140. package/dist/chunks/MSFT_minecraftMesh-WFc8m_Ka.esm.js +46 -0
  141. package/dist/chunks/MSFT_minecraftMesh-WFc8m_Ka.esm.js.map +1 -0
  142. package/dist/chunks/MSFT_sRGBFactors-CTbtGna8.esm.js +47 -0
  143. package/dist/chunks/MSFT_sRGBFactors-CTbtGna8.esm.js.map +1 -0
  144. package/dist/chunks/MSFT_sRGBFactors-yTSoBQJx.esm.min.js +2 -0
  145. package/dist/chunks/MSFT_sRGBFactors-yTSoBQJx.esm.min.js.map +1 -0
  146. package/dist/chunks/animationGroup-8TJDgymS.esm.js +2482 -0
  147. package/dist/chunks/animationGroup-8TJDgymS.esm.js.map +1 -0
  148. package/dist/chunks/animationGroup-toXtd3a1.esm.min.js +2 -0
  149. package/dist/chunks/animationGroup-toXtd3a1.esm.min.js.map +1 -0
  150. package/dist/chunks/assetContainer-7pMDUaac.esm.min.js +2 -0
  151. package/dist/chunks/assetContainer-7pMDUaac.esm.min.js.map +1 -0
  152. package/dist/chunks/assetContainer-DYzO0AbX.esm.js +1720 -0
  153. package/dist/chunks/assetContainer-DYzO0AbX.esm.js.map +1 -0
  154. package/dist/chunks/audioEngine-Kz4HSEXd.esm.min.js +2 -0
  155. package/dist/chunks/audioEngine-Kz4HSEXd.esm.min.js.map +1 -0
  156. package/dist/chunks/audioEngine-peiGqjr6.esm.js +305 -0
  157. package/dist/chunks/audioEngine-peiGqjr6.esm.js.map +1 -0
  158. package/dist/chunks/bakedVertexAnimation-BZvcL01J.esm.min.js +2 -0
  159. package/dist/chunks/bakedVertexAnimation-BZvcL01J.esm.min.js.map +1 -0
  160. package/dist/chunks/bakedVertexAnimation-CPflSjER.esm.js +114 -0
  161. package/dist/chunks/bakedVertexAnimation-CPflSjER.esm.js.map +1 -0
  162. package/dist/chunks/basisTextureLoader-CR0XhSAg.esm.js +600 -0
  163. package/dist/chunks/basisTextureLoader-CR0XhSAg.esm.js.map +1 -0
  164. package/dist/chunks/basisTextureLoader-DVJdcB62.esm.min.js +2 -0
  165. package/dist/chunks/basisTextureLoader-DVJdcB62.esm.min.js.map +1 -0
  166. package/dist/chunks/dds-6EdM5O6M.esm.js +540 -0
  167. package/dist/chunks/dds-6EdM5O6M.esm.js.map +1 -0
  168. package/dist/chunks/dds-DVX_K9B3.esm.min.js +2 -0
  169. package/dist/chunks/dds-DVX_K9B3.esm.min.js.map +1 -0
  170. package/dist/chunks/ddsTextureLoader-BAK7Ib2Z.esm.min.js +2 -0
  171. package/dist/chunks/ddsTextureLoader-BAK7Ib2Z.esm.min.js.map +1 -0
  172. package/dist/chunks/ddsTextureLoader-_nktVxwZ.esm.js +88 -0
  173. package/dist/chunks/ddsTextureLoader-_nktVxwZ.esm.js.map +1 -0
  174. package/dist/chunks/decalFragment-C_Cews3-.esm.js +18 -0
  175. package/dist/chunks/decalFragment-C_Cews3-.esm.js.map +1 -0
  176. package/dist/chunks/decalFragment-Dmj88EX9.esm.min.js +2 -0
  177. package/dist/chunks/decalFragment-Dmj88EX9.esm.min.js.map +1 -0
  178. package/dist/chunks/default.fragment-Bv_nR7po.esm.min.js +2 -0
  179. package/dist/chunks/default.fragment-Bv_nR7po.esm.min.js.map +1 -0
  180. package/dist/chunks/default.fragment-CkZQyJVM.esm.min.js +2 -0
  181. package/dist/chunks/default.fragment-CkZQyJVM.esm.min.js.map +1 -0
  182. package/dist/chunks/default.fragment-CyFHDykY.esm.js +446 -0
  183. package/dist/chunks/default.fragment-CyFHDykY.esm.js.map +1 -0
  184. package/dist/chunks/default.fragment-ej-2z5tS.esm.js +515 -0
  185. package/dist/chunks/default.fragment-ej-2z5tS.esm.js.map +1 -0
  186. package/dist/chunks/default.vertex-16mVOFgT.esm.js +211 -0
  187. package/dist/chunks/default.vertex-16mVOFgT.esm.js.map +1 -0
  188. package/dist/chunks/default.vertex-D--q2At3.esm.min.js +2 -0
  189. package/dist/chunks/default.vertex-D--q2At3.esm.min.js.map +1 -0
  190. package/dist/chunks/default.vertex-DDlgZTrR.esm.js +190 -0
  191. package/dist/chunks/default.vertex-DDlgZTrR.esm.js.map +1 -0
  192. package/dist/chunks/default.vertex-_jqs3KiZ.esm.min.js +2 -0
  193. package/dist/chunks/default.vertex-_jqs3KiZ.esm.min.js.map +1 -0
  194. package/dist/chunks/defaultUboDeclaration-8YG0iNg8.esm.js +15 -0
  195. package/dist/chunks/defaultUboDeclaration-8YG0iNg8.esm.js.map +1 -0
  196. package/dist/chunks/defaultUboDeclaration-BoBSRTbi.esm.js +13 -0
  197. package/dist/chunks/defaultUboDeclaration-BoBSRTbi.esm.js.map +1 -0
  198. package/dist/chunks/defaultUboDeclaration-Dt_5vo1d.esm.min.js +2 -0
  199. package/dist/chunks/defaultUboDeclaration-Dt_5vo1d.esm.min.js.map +1 -0
  200. package/dist/chunks/defaultUboDeclaration-R6gGjkAM.esm.min.js +2 -0
  201. package/dist/chunks/defaultUboDeclaration-R6gGjkAM.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-Bhux0wvM.esm.js +200 -0
  207. package/dist/chunks/dumpTools-Bhux0wvM.esm.js.map +1 -0
  208. package/dist/chunks/dumpTools-CHCb2UkY.esm.min.js +2 -0
  209. package/dist/chunks/dumpTools-CHCb2UkY.esm.min.js.map +1 -0
  210. package/dist/chunks/engine-DF_zE4qj.esm.js +2213 -0
  211. package/dist/chunks/engine-DF_zE4qj.esm.js.map +1 -0
  212. package/dist/chunks/engine-DVmdDcyP.esm.min.js +2 -0
  213. package/dist/chunks/engine-DVmdDcyP.esm.min.js.map +1 -0
  214. package/dist/chunks/engine.common-CvOmoKru.esm.js +1162 -0
  215. package/dist/chunks/engine.common-CvOmoKru.esm.js.map +1 -0
  216. package/dist/chunks/engine.common-DpTzktQJ.esm.min.js +2 -0
  217. package/dist/chunks/engine.common-DpTzktQJ.esm.min.js.map +1 -0
  218. package/dist/chunks/envTextureLoader-4YxGm-Px.esm.js +64 -0
  219. package/dist/chunks/envTextureLoader-4YxGm-Px.esm.js.map +1 -0
  220. package/dist/chunks/envTextureLoader-DMQui088.esm.min.js +2 -0
  221. package/dist/chunks/envTextureLoader-DMQui088.esm.min.js.map +1 -0
  222. package/dist/chunks/environmentTextureTools-BPGrTBPI.esm.min.js +2 -0
  223. package/dist/chunks/environmentTextureTools-BPGrTBPI.esm.min.js.map +1 -0
  224. package/dist/chunks/environmentTextureTools-DvkpsqkN.esm.js +382 -0
  225. package/dist/chunks/environmentTextureTools-DvkpsqkN.esm.js.map +1 -0
  226. package/dist/chunks/exrTextureLoader-BRkB54sO.esm.js +1683 -0
  227. package/dist/chunks/exrTextureLoader-BRkB54sO.esm.js.map +1 -0
  228. package/dist/chunks/exrTextureLoader-BtN7_zst.esm.min.js +2 -0
  229. package/dist/chunks/exrTextureLoader-BtN7_zst.esm.min.js.map +1 -0
  230. package/dist/chunks/fogFragment-BrGGFaiu.esm.js +101 -0
  231. package/dist/chunks/fogFragment-BrGGFaiu.esm.js.map +1 -0
  232. package/dist/chunks/fogFragment-ByOwwQur.esm.min.js +2 -0
  233. package/dist/chunks/fogFragment-ByOwwQur.esm.min.js.map +1 -0
  234. package/dist/chunks/fogFragment-Chod24nu.esm.min.js +2 -0
  235. package/dist/chunks/fogFragment-Chod24nu.esm.min.js.map +1 -0
  236. package/dist/chunks/fogFragment-gZfybCpt.esm.js +102 -0
  237. package/dist/chunks/fogFragment-gZfybCpt.esm.js.map +1 -0
  238. package/dist/chunks/fresnelFunction-BdEia8ob.esm.min.js +2 -0
  239. package/dist/chunks/fresnelFunction-BdEia8ob.esm.min.js.map +1 -0
  240. package/dist/chunks/fresnelFunction-DBlxfmri.esm.js +12 -0
  241. package/dist/chunks/fresnelFunction-DBlxfmri.esm.js.map +1 -0
  242. package/dist/chunks/glTFLoader-D4C1IGb3.esm.min.js +2 -0
  243. package/dist/chunks/glTFLoader-D4C1IGb3.esm.min.js.map +1 -0
  244. package/dist/chunks/glTFLoader-fUFiWvYb.esm.js +7693 -0
  245. package/dist/chunks/glTFLoader-fUFiWvYb.esm.js.map +1 -0
  246. package/dist/chunks/glTFLoaderAnimation-BB_Vw079.esm.min.js +2 -0
  247. package/dist/chunks/glTFLoaderAnimation-BB_Vw079.esm.min.js.map +1 -0
  248. package/dist/chunks/glTFLoaderAnimation-CttmY50U.esm.js +77 -0
  249. package/dist/chunks/glTFLoaderAnimation-CttmY50U.esm.js.map +1 -0
  250. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js +2 -0
  251. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js.map +1 -0
  252. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js +67 -0
  253. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js.map +1 -0
  254. package/dist/chunks/harmonicsFunctions-B0Rp1hEo.esm.min.js +2 -0
  255. package/dist/chunks/harmonicsFunctions-B0Rp1hEo.esm.min.js.map +1 -0
  256. package/dist/chunks/harmonicsFunctions-Cca_z552.esm.js +34 -0
  257. package/dist/chunks/harmonicsFunctions-Cca_z552.esm.js.map +1 -0
  258. package/dist/chunks/harmonicsFunctions-D4ID83NC.esm.min.js +2 -0
  259. package/dist/chunks/harmonicsFunctions-D4ID83NC.esm.min.js.map +1 -0
  260. package/dist/chunks/harmonicsFunctions-HJ5dbl0w.esm.js +35 -0
  261. package/dist/chunks/harmonicsFunctions-HJ5dbl0w.esm.js.map +1 -0
  262. package/dist/chunks/hdrTextureLoader-C3kqy6YV.esm.js +253 -0
  263. package/dist/chunks/hdrTextureLoader-C3kqy6YV.esm.js.map +1 -0
  264. package/dist/chunks/hdrTextureLoader-Dhlluz4z.esm.min.js +2 -0
  265. package/dist/chunks/hdrTextureLoader-Dhlluz4z.esm.min.js.map +1 -0
  266. package/dist/chunks/helperFunctions-BJotVqUd.esm.min.js +2 -0
  267. package/dist/chunks/helperFunctions-BJotVqUd.esm.min.js.map +1 -0
  268. package/dist/chunks/helperFunctions-C66wRWtu.esm.js +110 -0
  269. package/dist/chunks/helperFunctions-C66wRWtu.esm.js.map +1 -0
  270. package/dist/chunks/helperFunctions-DwEZ9rqh.esm.min.js +2 -0
  271. package/dist/chunks/helperFunctions-DwEZ9rqh.esm.min.js.map +1 -0
  272. package/dist/chunks/helperFunctions-gnki_9Kj.esm.js +83 -0
  273. package/dist/chunks/helperFunctions-gnki_9Kj.esm.js.map +1 -0
  274. package/dist/chunks/iesTextureLoader-QDs2Cwy5.esm.js +189 -0
  275. package/dist/chunks/iesTextureLoader-QDs2Cwy5.esm.js.map +1 -0
  276. package/dist/chunks/iesTextureLoader-pwA6Q4HK.esm.min.js +2 -0
  277. package/dist/chunks/iesTextureLoader-pwA6Q4HK.esm.min.js.map +1 -0
  278. package/dist/chunks/index-C6hXZyZb.esm.js +74889 -0
  279. package/dist/chunks/index-C6hXZyZb.esm.js.map +1 -0
  280. package/dist/chunks/index-rZVkfTE6.esm.min.js +57 -0
  281. package/dist/chunks/index-rZVkfTE6.esm.min.js.map +1 -0
  282. package/dist/chunks/ktxTextureLoader-jVu-Sj-0.esm.js +814 -0
  283. package/dist/chunks/ktxTextureLoader-jVu-Sj-0.esm.js.map +1 -0
  284. package/dist/chunks/ktxTextureLoader-zG9azrZF.esm.min.js +2 -0
  285. package/dist/chunks/ktxTextureLoader-zG9azrZF.esm.min.js.map +1 -0
  286. package/dist/chunks/logDepthDeclaration-0cA1pTvQ.esm.min.js +2 -0
  287. package/dist/chunks/logDepthDeclaration-0cA1pTvQ.esm.min.js.map +1 -0
  288. package/dist/chunks/logDepthDeclaration-CYxYhXIS.esm.js +11 -0
  289. package/dist/chunks/logDepthDeclaration-CYxYhXIS.esm.js.map +1 -0
  290. package/dist/chunks/logDepthDeclaration-D4KGxdX-.esm.min.js +2 -0
  291. package/dist/chunks/logDepthDeclaration-D4KGxdX-.esm.min.js.map +1 -0
  292. package/dist/chunks/logDepthDeclaration-DJlt2-H5.esm.js +35 -0
  293. package/dist/chunks/logDepthDeclaration-DJlt2-H5.esm.js.map +1 -0
  294. package/dist/chunks/logDepthVertex-BS2JEtXA.esm.min.js +2 -0
  295. package/dist/chunks/logDepthVertex-BS2JEtXA.esm.min.js.map +1 -0
  296. package/dist/chunks/logDepthVertex-DKPfA10X.esm.js +81 -0
  297. package/dist/chunks/logDepthVertex-DKPfA10X.esm.js.map +1 -0
  298. package/dist/chunks/logDepthVertex-ojTShW5I.esm.js +77 -0
  299. package/dist/chunks/logDepthVertex-ojTShW5I.esm.js.map +1 -0
  300. package/dist/chunks/logDepthVertex-v-0pHNc-.esm.min.js +2 -0
  301. package/dist/chunks/logDepthVertex-v-0pHNc-.esm.min.js.map +1 -0
  302. package/dist/chunks/mainUVVaryingDeclaration-BAzmbS0W.esm.min.js +2 -0
  303. package/dist/chunks/mainUVVaryingDeclaration-BAzmbS0W.esm.min.js.map +1 -0
  304. package/dist/chunks/mainUVVaryingDeclaration-Cnux1jkK.esm.js +11 -0
  305. package/dist/chunks/mainUVVaryingDeclaration-Cnux1jkK.esm.js.map +1 -0
  306. package/dist/chunks/mainUVVaryingDeclaration-CwS0hUUZ.esm.min.js +2 -0
  307. package/dist/chunks/mainUVVaryingDeclaration-CwS0hUUZ.esm.min.js.map +1 -0
  308. package/dist/chunks/mainUVVaryingDeclaration-DCawby1A.esm.js +11 -0
  309. package/dist/chunks/mainUVVaryingDeclaration-DCawby1A.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-QvH0RgeZ.esm.js +26 -0
  315. package/dist/chunks/meshUboDeclaration-QvH0RgeZ.esm.js.map +1 -0
  316. package/dist/chunks/meshUboDeclaration-g2s_cYI1.esm.min.js +2 -0
  317. package/dist/chunks/meshUboDeclaration-g2s_cYI1.esm.min.js.map +1 -0
  318. package/dist/chunks/objFileLoader-BOutXdVR.esm.min.js +2 -0
  319. package/dist/chunks/objFileLoader-BOutXdVR.esm.min.js.map +1 -0
  320. package/dist/chunks/objFileLoader-BPwrX8RK.esm.js +1338 -0
  321. package/dist/chunks/objFileLoader-BPwrX8RK.esm.js.map +1 -0
  322. package/dist/chunks/oitFragment-CmcWUhsZ.esm.js +1240 -0
  323. package/dist/chunks/oitFragment-CmcWUhsZ.esm.js.map +1 -0
  324. package/dist/chunks/oitFragment-D8XBQ6Wa.esm.js +1078 -0
  325. package/dist/chunks/oitFragment-D8XBQ6Wa.esm.js.map +1 -0
  326. package/dist/chunks/oitFragment-DgAlmoHs.esm.min.js +2 -0
  327. package/dist/chunks/oitFragment-DgAlmoHs.esm.min.js.map +1 -0
  328. package/dist/chunks/oitFragment-DpJ5xGhy.esm.min.js +2 -0
  329. package/dist/chunks/oitFragment-DpJ5xGhy.esm.min.js.map +1 -0
  330. package/dist/chunks/pass.fragment--XRaXRhU.esm.js +15 -0
  331. package/dist/chunks/pass.fragment--XRaXRhU.esm.js.map +1 -0
  332. package/dist/chunks/pass.fragment-5Q3qXxDe.esm.min.js +2 -0
  333. package/dist/chunks/pass.fragment-5Q3qXxDe.esm.min.js.map +1 -0
  334. package/dist/chunks/pass.fragment-BBLiyU_i.esm.min.js +2 -0
  335. package/dist/chunks/pass.fragment-BBLiyU_i.esm.min.js.map +1 -0
  336. package/dist/chunks/pass.fragment-DI4ZYZJe.esm.js +15 -0
  337. package/dist/chunks/pass.fragment-DI4ZYZJe.esm.js.map +1 -0
  338. package/dist/chunks/pbr.fragment-C7xQS4ZJ.esm.js +3269 -0
  339. package/dist/chunks/pbr.fragment-C7xQS4ZJ.esm.js.map +1 -0
  340. package/dist/chunks/pbr.fragment-Ddxaik8T.esm.min.js +2 -0
  341. package/dist/chunks/pbr.fragment-Ddxaik8T.esm.min.js.map +1 -0
  342. package/dist/chunks/pbr.fragment-fky04gH_.esm.js +3222 -0
  343. package/dist/chunks/pbr.fragment-fky04gH_.esm.js.map +1 -0
  344. package/dist/chunks/pbr.fragment-ya1zai4w.esm.min.js +2 -0
  345. package/dist/chunks/pbr.fragment-ya1zai4w.esm.min.js.map +1 -0
  346. package/dist/chunks/pbr.vertex-BPEYHoRM.esm.js +223 -0
  347. package/dist/chunks/pbr.vertex-BPEYHoRM.esm.js.map +1 -0
  348. package/dist/chunks/pbr.vertex-BXcMYADF.esm.js +348 -0
  349. package/dist/chunks/pbr.vertex-BXcMYADF.esm.js.map +1 -0
  350. package/dist/chunks/pbr.vertex-BjA08auU.esm.min.js +2 -0
  351. package/dist/chunks/pbr.vertex-BjA08auU.esm.min.js.map +1 -0
  352. package/dist/chunks/pbr.vertex-Cx2V3lNf.esm.min.js +2 -0
  353. package/dist/chunks/pbr.vertex-Cx2V3lNf.esm.min.js.map +1 -0
  354. package/dist/chunks/postprocess.vertex-BHpQrNSx.esm.min.js +2 -0
  355. package/dist/chunks/postprocess.vertex-BHpQrNSx.esm.min.js.map +1 -0
  356. package/dist/chunks/postprocess.vertex-DnDbk0tq.esm.js +20 -0
  357. package/dist/chunks/postprocess.vertex-DnDbk0tq.esm.js.map +1 -0
  358. package/dist/chunks/rawTexture-CWiRIto8.esm.js +191 -0
  359. package/dist/chunks/rawTexture-CWiRIto8.esm.js.map +1 -0
  360. package/dist/chunks/rawTexture-DX8V9PEj.esm.min.js +2 -0
  361. package/dist/chunks/rawTexture-DX8V9PEj.esm.min.js.map +1 -0
  362. package/dist/chunks/ray-ix7SqYNQ.esm.min.js +2 -0
  363. package/dist/chunks/ray-ix7SqYNQ.esm.min.js.map +1 -0
  364. package/dist/chunks/ray-nTZBkOil.esm.js +946 -0
  365. package/dist/chunks/ray-nTZBkOil.esm.js.map +1 -0
  366. package/dist/chunks/rgbdDecode.fragment-Be3ofvlt.esm.min.js +2 -0
  367. package/dist/chunks/rgbdDecode.fragment-Be3ofvlt.esm.min.js.map +1 -0
  368. package/dist/chunks/rgbdDecode.fragment-C05QJpT2.esm.js +13 -0
  369. package/dist/chunks/rgbdDecode.fragment-C05QJpT2.esm.js.map +1 -0
  370. package/dist/chunks/rgbdDecode.fragment-D3SYBclQ.esm.min.js +2 -0
  371. package/dist/chunks/rgbdDecode.fragment-D3SYBclQ.esm.min.js.map +1 -0
  372. package/dist/chunks/rgbdDecode.fragment-DBG6KfKF.esm.js +13 -0
  373. package/dist/chunks/rgbdDecode.fragment-DBG6KfKF.esm.js.map +1 -0
  374. package/dist/chunks/rgbdEncode.fragment-BlhtohrO.esm.js +13 -0
  375. package/dist/chunks/rgbdEncode.fragment-BlhtohrO.esm.js.map +1 -0
  376. package/dist/chunks/rgbdEncode.fragment-BmJKYw6A.esm.min.js +2 -0
  377. package/dist/chunks/rgbdEncode.fragment-BmJKYw6A.esm.min.js.map +1 -0
  378. package/dist/chunks/rgbdEncode.fragment-dr2kGjSO.esm.js +13 -0
  379. package/dist/chunks/rgbdEncode.fragment-dr2kGjSO.esm.js.map +1 -0
  380. package/dist/chunks/rgbdEncode.fragment-hXPzg1p5.esm.min.js +2 -0
  381. package/dist/chunks/rgbdEncode.fragment-hXPzg1p5.esm.min.js.map +1 -0
  382. package/dist/chunks/splatFileLoader-Bs42LtsP.esm.min.js +2 -0
  383. package/dist/chunks/splatFileLoader-Bs42LtsP.esm.min.js.map +1 -0
  384. package/dist/chunks/splatFileLoader-Dp33YOem.esm.js +3379 -0
  385. package/dist/chunks/splatFileLoader-Dp33YOem.esm.js.map +1 -0
  386. package/dist/chunks/spotLight-C0NmKeem.esm.js +701 -0
  387. package/dist/chunks/spotLight-C0NmKeem.esm.js.map +1 -0
  388. package/dist/chunks/spotLight-CcuCNdES.esm.min.js +2 -0
  389. package/dist/chunks/spotLight-CcuCNdES.esm.min.js.map +1 -0
  390. package/dist/chunks/standardMaterial-C1E5n_4w.esm.min.js +2 -0
  391. package/dist/chunks/standardMaterial-C1E5n_4w.esm.min.js.map +1 -0
  392. package/dist/chunks/standardMaterial-v_D8QA4q.esm.js +1807 -0
  393. package/dist/chunks/standardMaterial-v_D8QA4q.esm.js.map +1 -0
  394. package/dist/chunks/stlFileLoader-DC2IRQDj.esm.min.js +2 -0
  395. package/dist/chunks/stlFileLoader-DC2IRQDj.esm.min.js.map +1 -0
  396. package/dist/chunks/stlFileLoader-LRHEIFfU.esm.js +238 -0
  397. package/dist/chunks/stlFileLoader-LRHEIFfU.esm.js.map +1 -0
  398. package/dist/chunks/tgaTextureLoader-2ekJC0En.esm.js +349 -0
  399. package/dist/chunks/tgaTextureLoader-2ekJC0En.esm.js.map +1 -0
  400. package/dist/chunks/tgaTextureLoader-Clj6zUK-.esm.min.js +2 -0
  401. package/dist/chunks/tgaTextureLoader-Clj6zUK-.esm.min.js.map +1 -0
  402. package/dist/chunks/thinEngine-DksimP2U.esm.js +3848 -0
  403. package/dist/chunks/thinEngine-DksimP2U.esm.js.map +1 -0
  404. package/dist/chunks/thinEngine-tsALaFYH.esm.min.js +2 -0
  405. package/dist/chunks/thinEngine-tsALaFYH.esm.min.js.map +1 -0
  406. package/dist/chunks/thinInstanceMesh-B8AW0Oa2.esm.js +314 -0
  407. package/dist/chunks/thinInstanceMesh-B8AW0Oa2.esm.js.map +1 -0
  408. package/dist/chunks/thinInstanceMesh-kCGEJ0-e.esm.min.js +2 -0
  409. package/dist/chunks/thinInstanceMesh-kCGEJ0-e.esm.min.js.map +1 -0
  410. package/dist/chunks/vertexColorMixing-Bjijk3lU.esm.min.js +2 -0
  411. package/dist/chunks/vertexColorMixing-Bjijk3lU.esm.min.js.map +1 -0
  412. package/dist/chunks/vertexColorMixing-D9917nJN.esm.js +428 -0
  413. package/dist/chunks/vertexColorMixing-D9917nJN.esm.js.map +1 -0
  414. package/dist/chunks/vertexColorMixing-DgthWrKf.esm.min.js +2 -0
  415. package/dist/chunks/vertexColorMixing-DgthWrKf.esm.min.js.map +1 -0
  416. package/dist/chunks/vertexColorMixing-U1SA6UK3.esm.js +538 -0
  417. package/dist/chunks/vertexColorMixing-U1SA6UK3.esm.js.map +1 -0
  418. package/dist/chunks/webgpuEngine-BOGR1D8F.esm.min.js +2 -0
  419. package/dist/chunks/webgpuEngine-BOGR1D8F.esm.min.js.map +1 -0
  420. package/dist/chunks/webgpuEngine-BrzOpZ-2.esm.js +11533 -0
  421. package/dist/chunks/webgpuEngine-BrzOpZ-2.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.common-CvOmoKru.esm.js","sources":["../../../../../dev/core/dist/Misc/performanceMonitor.js","../../../../../dev/core/dist/Engines/renderTargetWrapper.js","../../../../../dev/core/dist/Engines/AbstractEngine/abstractEngine.texture.js","../../../../../dev/core/dist/Engines/AbstractEngine/abstractEngine.loadingScreen.js","../../../../../dev/core/dist/Engines/AbstractEngine/abstractEngine.dom.js","../../../../../dev/core/dist/Engines/AbstractEngine/abstractEngine.alpha.js","../../../../../dev/core/dist/Engines/AbstractEngine/abstractEngine.states.js","../../../../../dev/core/dist/Engines/AbstractEngine/abstractEngine.renderPass.js","../../../../../dev/core/dist/Engines/engine.common.js"],"sourcesContent":["import { PrecisionDate } from \"./precisionDate\";\n/**\n * Performance monitor tracks rolling average frame-time and frame-time variance over a user defined sliding-window\n */\nexport class PerformanceMonitor {\n /**\n * constructor\n * @param frameSampleSize The number of samples required to saturate the sliding window\n */\n constructor(frameSampleSize = 30) {\n this._enabled = true;\n this._rollingFrameTime = new RollingAverage(frameSampleSize);\n }\n /**\n * Samples current frame\n * @param timeMs A timestamp in milliseconds of the current frame to compare with other frames\n */\n sampleFrame(timeMs = PrecisionDate.Now) {\n if (!this._enabled) {\n return;\n }\n if (this._lastFrameTimeMs != null) {\n const dt = timeMs - this._lastFrameTimeMs;\n this._rollingFrameTime.add(dt);\n }\n this._lastFrameTimeMs = timeMs;\n }\n /**\n * Returns the average frame time in milliseconds over the sliding window (or the subset of frames sampled so far)\n */\n get averageFrameTime() {\n return this._rollingFrameTime.average;\n }\n /**\n * Returns the variance frame time in milliseconds over the sliding window (or the subset of frames sampled so far)\n */\n get averageFrameTimeVariance() {\n return this._rollingFrameTime.variance;\n }\n /**\n * Returns the frame time of the most recent frame\n */\n get instantaneousFrameTime() {\n return this._rollingFrameTime.history(0);\n }\n /**\n * Returns the average framerate in frames per second over the sliding window (or the subset of frames sampled so far)\n */\n get averageFPS() {\n return 1000.0 / this._rollingFrameTime.average;\n }\n /**\n * Returns the average framerate in frames per second using the most recent frame time\n */\n get instantaneousFPS() {\n const history = this._rollingFrameTime.history(0);\n if (history === 0) {\n return 0;\n }\n return 1000.0 / history;\n }\n /**\n * Returns true if enough samples have been taken to completely fill the sliding window\n */\n get isSaturated() {\n return this._rollingFrameTime.isSaturated();\n }\n /**\n * Enables contributions to the sliding window sample set\n */\n enable() {\n this._enabled = true;\n }\n /**\n * Disables contributions to the sliding window sample set\n * Samples will not be interpolated over the disabled period\n */\n disable() {\n this._enabled = false;\n //clear last sample to avoid interpolating over the disabled period when next enabled\n this._lastFrameTimeMs = null;\n }\n /**\n * Returns true if sampling is enabled\n */\n get isEnabled() {\n return this._enabled;\n }\n /**\n * Resets performance monitor\n */\n reset() {\n //clear last sample to avoid interpolating over the disabled period when next enabled\n this._lastFrameTimeMs = null;\n //wipe record\n this._rollingFrameTime.reset();\n }\n}\n/**\n * RollingAverage\n *\n * Utility to efficiently compute the rolling average and variance over a sliding window of samples\n */\nexport class RollingAverage {\n /**\n * constructor\n * @param length The number of samples required to saturate the sliding window\n */\n constructor(length) {\n this._samples = new Array(length);\n this.reset();\n }\n /**\n * Adds a sample to the sample set\n * @param v The sample value\n */\n add(v) {\n //http://en.wikipedia.org/wiki/Algorithms_for_calculating_variance\n let delta;\n //we need to check if we've already wrapped round\n if (this.isSaturated()) {\n //remove bottom of stack from mean\n const bottomValue = this._samples[this._pos];\n delta = bottomValue - this.average;\n this.average -= delta / (this._sampleCount - 1);\n this._m2 -= delta * (bottomValue - this.average);\n }\n else {\n this._sampleCount++;\n }\n //add new value to mean\n delta = v - this.average;\n this.average += delta / this._sampleCount;\n this._m2 += delta * (v - this.average);\n //set the new variance\n this.variance = this._m2 / (this._sampleCount - 1);\n this._samples[this._pos] = v;\n this._pos++;\n this._pos %= this._samples.length; //positive wrap around\n }\n /**\n * Returns previously added values or null if outside of history or outside the sliding window domain\n * @param i Index in history. For example, pass 0 for the most recent value and 1 for the value before that\n * @returns Value previously recorded with add() or null if outside of range\n */\n history(i) {\n if (i >= this._sampleCount || i >= this._samples.length) {\n return 0;\n }\n const i0 = this._wrapPosition(this._pos - 1.0);\n return this._samples[this._wrapPosition(i0 - i)];\n }\n /**\n * Returns true if enough samples have been taken to completely fill the sliding window\n * @returns true if sample-set saturated\n */\n isSaturated() {\n return this._sampleCount >= this._samples.length;\n }\n /**\n * Resets the rolling average (equivalent to 0 samples taken so far)\n */\n reset() {\n this.average = 0;\n this.variance = 0;\n this._sampleCount = 0;\n this._pos = 0;\n this._m2 = 0;\n }\n /**\n * Wraps a value around the sample range boundaries\n * @param i Position in sample range, for example if the sample length is 5, and i is -3, then 2 will be returned.\n * @returns Wrapped position in sample range\n */\n _wrapPosition(i) {\n const max = this._samples.length;\n return ((i % max) + max) % max;\n }\n}\n//# sourceMappingURL=performanceMonitor.js.map","import { HasStencilAspect } from \"../Materials/Textures/internalTexture\";\nimport { Constants } from \"./constants\";\n/**\n * Wrapper around a render target (either single or multi textures)\n */\nexport class RenderTargetWrapper {\n /**\n * Gets the depth/stencil texture\n */\n get depthStencilTexture() {\n return this._depthStencilTexture;\n }\n /**\n * Sets the depth/stencil texture\n * @param texture The depth/stencil texture to set\n * @param disposeExisting True to dispose the existing depth/stencil texture (if any) before replacing it (default: true)\n */\n setDepthStencilTexture(texture, disposeExisting = true) {\n if (disposeExisting && this._depthStencilTexture) {\n this._depthStencilTexture.dispose();\n }\n this._depthStencilTexture = texture;\n this._generateDepthBuffer = this._generateStencilBuffer = false;\n if (texture) {\n this._generateDepthBuffer = true;\n this._generateStencilBuffer = HasStencilAspect(texture.format);\n }\n }\n /**\n * Indicates if the depth/stencil texture has a stencil aspect\n */\n get depthStencilTextureWithStencil() {\n return this._depthStencilTextureWithStencil;\n }\n /**\n * Defines if the render target wrapper is for a cube texture or if false a 2d texture\n */\n get isCube() {\n return this._isCube;\n }\n /**\n * Defines if the render target wrapper is for a single or multi target render wrapper\n */\n get isMulti() {\n return this._isMulti;\n }\n /**\n * Defines if the render target wrapper is for a single or an array of textures\n */\n get is2DArray() {\n return this.layers > 0;\n }\n /**\n * Defines if the render target wrapper is for a 3D texture\n */\n get is3D() {\n return this.depth > 0;\n }\n /**\n * Gets the size of the render target wrapper (used for cubes, as width=height in this case)\n */\n get size() {\n return this.width;\n }\n /**\n * Gets the width of the render target wrapper\n */\n get width() {\n return this._size.width ?? this._size;\n }\n /**\n * Gets the height of the render target wrapper\n */\n get height() {\n return this._size.height ?? this._size;\n }\n /**\n * Gets the number of layers of the render target wrapper (only used if is2DArray is true and wrapper is not a multi render target)\n */\n get layers() {\n return this._size.layers || 0;\n }\n /**\n * Gets the depth of the render target wrapper (only used if is3D is true and wrapper is not a multi render target)\n */\n get depth() {\n return this._size.depth || 0;\n }\n /**\n * Gets the render texture. If this is a multi render target, gets the first texture\n */\n get texture() {\n return this._textures?.[0] ?? null;\n }\n /**\n * Gets the list of render textures. If we are not in a multi render target, the list will be null (use the texture getter instead)\n */\n get textures() {\n return this._textures;\n }\n /**\n * Gets the face indices that correspond to the list of render textures. If we are not in a multi render target, the list will be null\n */\n get faceIndices() {\n return this._faceIndices;\n }\n /**\n * Gets the layer indices that correspond to the list of render textures. If we are not in a multi render target, the list will be null\n */\n get layerIndices() {\n return this._layerIndices;\n }\n /**\n * Gets the base array layer of a texture in the textures array\n * This is an number that is calculated based on the layer and face indices set for this texture at that index\n * @param index The index of the texture in the textures array to get the base array layer for\n * @returns the base array layer of the texture at the given index\n */\n getBaseArrayLayer(index) {\n if (!this._textures) {\n return -1;\n }\n const texture = this._textures[index];\n const layerIndex = this._layerIndices?.[index] ?? 0;\n const faceIndex = this._faceIndices?.[index] ?? 0;\n return texture.isCube ? layerIndex * 6 + faceIndex : texture.is3D ? 0 : layerIndex;\n }\n /**\n * Gets the sample count of the render target\n */\n get samples() {\n return this._samples;\n }\n /**\n * Sets the sample count of the render target\n * @param value sample count\n * @param initializeBuffers If set to true, the engine will make an initializing call to drawBuffers (only used when isMulti=true).\n * @param force true to force calling the update sample count engine function even if the current sample count is equal to value\n * @returns the sample count that has been set\n */\n setSamples(value, initializeBuffers = true, force = false) {\n if (this.samples === value && !force) {\n return value;\n }\n const result = this._isMulti\n ? this._engine.updateMultipleRenderTargetTextureSampleCount(this, value, initializeBuffers)\n : this._engine.updateRenderTargetTextureSampleCount(this, value);\n this._samples = value;\n return result;\n }\n /**\n * Resolves the MSAA textures into their non-MSAA version.\n * Note that if samples equals 1 (no MSAA), no resolve is performed.\n */\n resolveMSAATextures() {\n if (this.isMulti) {\n this._engine.resolveMultiFramebuffer(this);\n }\n else {\n this._engine.resolveFramebuffer(this);\n }\n }\n /**\n * Generates mipmaps for each texture of the render target\n */\n generateMipMaps() {\n if (this._engine._currentRenderTarget === this) {\n this._engine.unBindFramebuffer(this, true);\n }\n if (this.isMulti) {\n this._engine.generateMipMapsMultiFramebuffer(this);\n }\n else {\n this._engine.generateMipMapsFramebuffer(this);\n }\n }\n /**\n * Initializes the render target wrapper\n * @param isMulti true if the wrapper is a multi render target\n * @param isCube true if the wrapper should render to a cube texture\n * @param size size of the render target (width/height/layers)\n * @param engine engine used to create the render target\n * @param label defines the label to use for the wrapper (for debugging purpose only)\n */\n constructor(isMulti, isCube, size, engine, label) {\n this._textures = null;\n this._faceIndices = null;\n this._layerIndices = null;\n /** @internal */\n this._samples = 1;\n /** @internal */\n this._attachments = null;\n /** @internal */\n this._generateStencilBuffer = false;\n /** @internal */\n this._generateDepthBuffer = false;\n /** @internal */\n this._depthStencilTextureWithStencil = false;\n /**\n * Sets this property to true to disable the automatic MSAA resolve that happens when the render target wrapper is unbound (default is false)\n */\n this.disableAutomaticMSAAResolve = false;\n /**\n * Indicates if MSAA color texture(s) should be resolved when a resolve occur (either automatically by the engine or manually by the user) (default is true)\n * Note that you can trigger a MSAA resolve at any time by calling resolveMSAATextures()\n */\n this.resolveMSAAColors = true;\n /**\n * Indicates if MSAA depth texture should be resolved when a resolve occur (either automatically by the engine or manually by the user) (default is false)\n */\n this.resolveMSAADepth = false;\n /**\n * Indicates if MSAA stencil texture should be resolved when a resolve occur (either automatically by the engine or manually by the user) (default is false)\n */\n this.resolveMSAAStencil = false;\n this._isMulti = isMulti;\n this._isCube = isCube;\n this._size = size;\n this._engine = engine;\n this._depthStencilTexture = null;\n this.label = label;\n }\n /**\n * Sets the render target texture(s)\n * @param textures texture(s) to set\n */\n setTextures(textures) {\n if (Array.isArray(textures)) {\n this._textures = textures;\n }\n else if (textures) {\n this._textures = [textures];\n }\n else {\n this._textures = null;\n }\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 if (!this._textures) {\n this._textures = [];\n }\n if (this._textures[index] === texture) {\n return;\n }\n if (this._textures[index] && disposePrevious) {\n this._textures[index].dispose();\n }\n this._textures[index] = texture;\n }\n /**\n * Sets the layer and face indices of every render target texture bound to each color attachment\n * @param layers The layers of each texture to be set\n * @param faces The faces of each texture to be set\n */\n setLayerAndFaceIndices(layers, faces) {\n this._layerIndices = layers;\n this._faceIndices = faces;\n }\n /**\n * Sets the layer and face indices of a texture in the textures array that should be bound to each color attachment\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 if (!this._layerIndices) {\n this._layerIndices = [];\n }\n if (!this._faceIndices) {\n this._faceIndices = [];\n }\n if (layer !== undefined && layer >= 0) {\n this._layerIndices[index] = layer;\n }\n if (face !== undefined && face >= 0) {\n this._faceIndices[index] = face;\n }\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 Not used anymore. \"format\" will be used to determine if stencil should be created\n * @param samples sample count to use when creating the texture (default: 1)\n * @param format format of the depth texture (default: Constants.TEXTUREFORMAT_DEPTH32_FLOAT)\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 this._depthStencilTexture?.dispose();\n this._depthStencilTextureWithStencil = generateStencil;\n this._depthStencilTextureLabel = label;\n this._depthStencilTexture = this._engine.createDepthStencilTexture(this._size, {\n bilinearFiltering,\n comparisonFunction,\n generateStencil,\n isCube: this._isCube,\n samples,\n depthTextureFormat: format,\n label,\n }, this);\n return this._depthStencilTexture;\n }\n /**\n * @deprecated Use shareDepth instead\n * @param renderTarget Destination renderTarget\n */\n _shareDepth(renderTarget) {\n this.shareDepth(renderTarget);\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 if (this._depthStencilTexture) {\n if (renderTarget._depthStencilTexture) {\n renderTarget._depthStencilTexture.dispose();\n }\n renderTarget._depthStencilTexture = this._depthStencilTexture;\n renderTarget._depthStencilTextureWithStencil = this._depthStencilTextureWithStencil;\n this._depthStencilTexture.incrementReferences();\n }\n }\n /**\n * @internal\n */\n _swapAndDie(target) {\n if (this.texture) {\n this.texture._swapAndDie(target);\n }\n this._textures = null;\n this.dispose(true);\n }\n _cloneRenderTargetWrapper() {\n let rtw = null;\n if (this._isMulti) {\n const textureArray = this.textures;\n if (textureArray && textureArray.length > 0) {\n let generateDepthTexture = false;\n let textureCount = textureArray.length;\n let depthTextureFormat = -1;\n const lastTextureSource = textureArray[textureArray.length - 1]._source;\n if (lastTextureSource === 14 /* InternalTextureSource.Depth */ || lastTextureSource === 12 /* InternalTextureSource.DepthStencil */) {\n generateDepthTexture = true;\n depthTextureFormat = textureArray[textureArray.length - 1].format;\n textureCount--;\n }\n const samplingModes = [];\n const types = [];\n const formats = [];\n const targetTypes = [];\n const faceIndex = [];\n const layerIndex = [];\n const layerCounts = [];\n const internalTexture2Index = {};\n for (let i = 0; i < textureCount; ++i) {\n const texture = textureArray[i];\n samplingModes.push(texture.samplingMode);\n types.push(texture.type);\n formats.push(texture.format);\n const index = internalTexture2Index[texture.uniqueId];\n if (index !== undefined) {\n targetTypes.push(-1);\n layerCounts.push(0);\n }\n else {\n internalTexture2Index[texture.uniqueId] = i;\n if (texture.is2DArray) {\n targetTypes.push(Constants.TEXTURE_2D_ARRAY);\n layerCounts.push(texture.depth);\n }\n else if (texture.isCube) {\n targetTypes.push(Constants.TEXTURE_CUBE_MAP);\n layerCounts.push(0);\n } /*else if (texture.isCubeArray) {\n targetTypes.push(Constants.TEXTURE_CUBE_MAP_ARRAY);\n layerCounts.push(texture.depth);\n }*/\n else if (texture.is3D) {\n targetTypes.push(Constants.TEXTURE_3D);\n layerCounts.push(texture.depth);\n }\n else {\n targetTypes.push(Constants.TEXTURE_2D);\n layerCounts.push(0);\n }\n }\n if (this._faceIndices) {\n faceIndex.push(this._faceIndices[i] ?? 0);\n }\n if (this._layerIndices) {\n layerIndex.push(this._layerIndices[i] ?? 0);\n }\n }\n const optionsMRT = {\n samplingModes,\n generateMipMaps: textureArray[0].generateMipMaps,\n generateDepthBuffer: this._generateDepthBuffer,\n generateStencilBuffer: this._generateStencilBuffer,\n generateDepthTexture,\n depthTextureFormat,\n types,\n formats,\n textureCount,\n targetTypes,\n faceIndex,\n layerIndex,\n layerCounts,\n label: this.label,\n };\n const size = {\n width: this.width,\n height: this.height,\n depth: this.depth,\n };\n rtw = this._engine.createMultipleRenderTarget(size, optionsMRT);\n for (let i = 0; i < textureCount; ++i) {\n if (targetTypes[i] !== -1) {\n continue;\n }\n const index = internalTexture2Index[textureArray[i].uniqueId];\n rtw.setTexture(rtw.textures[index], i);\n }\n }\n }\n else {\n const options = {};\n options.generateDepthBuffer = this._generateDepthBuffer;\n options.generateMipMaps = this.texture?.generateMipMaps ?? false;\n options.generateStencilBuffer = this._generateStencilBuffer;\n options.samplingMode = this.texture?.samplingMode;\n options.type = this.texture?.type;\n options.format = this.texture?.format;\n options.noColorAttachment = !this._textures;\n options.label = this.label;\n if (this.isCube) {\n rtw = this._engine.createRenderTargetCubeTexture(this.width, options);\n }\n else {\n const size = {\n width: this.width,\n height: this.height,\n layers: this.is2DArray || this.is3D ? this.texture?.depth : undefined,\n };\n rtw = this._engine.createRenderTargetTexture(size, options);\n }\n if (rtw.texture) {\n rtw.texture.isReady = true;\n }\n }\n return rtw;\n }\n _swapRenderTargetWrapper(target) {\n if (this._textures && target._textures) {\n for (let i = 0; i < this._textures.length; ++i) {\n this._textures[i]._swapAndDie(target._textures[i], false);\n target._textures[i].isReady = true;\n }\n }\n if (this._depthStencilTexture && target._depthStencilTexture) {\n this._depthStencilTexture._swapAndDie(target._depthStencilTexture);\n target._depthStencilTexture.isReady = true;\n }\n this._textures = null;\n this._depthStencilTexture = null;\n }\n /** @internal */\n _rebuild() {\n const rtw = this._cloneRenderTargetWrapper();\n if (!rtw) {\n return;\n }\n if (this._depthStencilTexture) {\n const samplingMode = this._depthStencilTexture.samplingMode;\n const format = this._depthStencilTexture.format;\n const bilinear = samplingMode === Constants.TEXTURE_BILINEAR_SAMPLINGMODE ||\n samplingMode === Constants.TEXTURE_TRILINEAR_SAMPLINGMODE ||\n samplingMode === Constants.TEXTURE_LINEAR_LINEAR_MIPNEAREST;\n rtw.createDepthStencilTexture(this._depthStencilTexture._comparisonFunction, bilinear, this._depthStencilTextureWithStencil, this._depthStencilTexture.samples, format, this._depthStencilTextureLabel);\n }\n if (this.samples > 1) {\n rtw.setSamples(this.samples);\n }\n rtw._swapRenderTargetWrapper(this);\n rtw.dispose();\n }\n /**\n * Releases the internal render textures\n */\n releaseTextures() {\n if (this._textures) {\n for (let i = 0; i < this._textures.length; ++i) {\n this._textures[i].dispose();\n }\n }\n this._textures = null;\n }\n /**\n * Disposes the whole render target wrapper\n * @param disposeOnlyFramebuffers true if only the frame buffers should be released (used for the WebGL engine). If false, all the textures will also be released\n */\n dispose(disposeOnlyFramebuffers = false) {\n if (!disposeOnlyFramebuffers) {\n this._depthStencilTexture?.dispose();\n this._depthStencilTexture = null;\n this.releaseTextures();\n }\n this._engine._releaseRenderTargetWrapper(this);\n }\n}\n//# sourceMappingURL=renderTargetWrapper.js.map","import { AbstractEngine } from \"../abstractEngine\";\nAbstractEngine.prototype.createDepthStencilTexture = function (size, options, rtWrapper) {\n if (options.isCube) {\n const width = size.width || size;\n return this._createDepthStencilCubeTexture(width, options);\n }\n else {\n return this._createDepthStencilTexture(size, options, rtWrapper);\n }\n};\n//# sourceMappingURL=abstractEngine.texture.js.map","import { IsWindowObjectExist } from \"../../Misc/domManagement\";\nimport { AbstractEngine } from \"../abstractEngine\";\nAbstractEngine.prototype.displayLoadingUI = function () {\n if (!IsWindowObjectExist()) {\n return;\n }\n const loadingScreen = this.loadingScreen;\n if (loadingScreen) {\n loadingScreen.displayLoadingUI();\n }\n};\nAbstractEngine.prototype.hideLoadingUI = function () {\n if (!IsWindowObjectExist()) {\n return;\n }\n const loadingScreen = this._loadingScreen;\n if (loadingScreen) {\n loadingScreen.hideLoadingUI();\n }\n};\nObject.defineProperty(AbstractEngine.prototype, \"loadingScreen\", {\n get: function () {\n if (!this._loadingScreen && this._renderingCanvas) {\n this._loadingScreen = AbstractEngine.DefaultLoadingScreenFactory(this._renderingCanvas);\n }\n return this._loadingScreen;\n },\n set: function (value) {\n this._loadingScreen = value;\n },\n enumerable: true,\n configurable: true,\n});\nObject.defineProperty(AbstractEngine.prototype, \"loadingUIText\", {\n set: function (value) {\n this.loadingScreen.loadingUIText = value;\n },\n enumerable: true,\n configurable: true,\n});\nObject.defineProperty(AbstractEngine.prototype, \"loadingUIBackgroundColor\", {\n set: function (value) {\n this.loadingScreen.loadingUIBackgroundColor = value;\n },\n enumerable: true,\n configurable: true,\n});\n//# sourceMappingURL=abstractEngine.loadingScreen.js.map","import { AbstractEngine } from \"../abstractEngine\";\nAbstractEngine.prototype.getInputElement = function () {\n return this._renderingCanvas;\n};\nAbstractEngine.prototype.getRenderingCanvasClientRect = function () {\n if (!this._renderingCanvas) {\n return null;\n }\n return this._renderingCanvas.getBoundingClientRect();\n};\nAbstractEngine.prototype.getInputElementClientRect = function () {\n if (!this._renderingCanvas) {\n return null;\n }\n return this.getInputElement().getBoundingClientRect();\n};\nAbstractEngine.prototype.getAspectRatio = function (viewportOwner, useScreen = false) {\n const viewport = viewportOwner.viewport;\n return (this.getRenderWidth(useScreen) * viewport.width) / (this.getRenderHeight(useScreen) * viewport.height);\n};\nAbstractEngine.prototype.getScreenAspectRatio = function () {\n return this.getRenderWidth(true) / this.getRenderHeight(true);\n};\nAbstractEngine.prototype._verifyPointerLock = function () {\n this._onPointerLockChange?.();\n};\n//# sourceMappingURL=abstractEngine.dom.js.map","import { AbstractEngine } from \"../abstractEngine\";\nimport { Constants } from \"../constants\";\nAbstractEngine.prototype.setAlphaEquation = function (equation) {\n if (this._alphaEquation === equation) {\n return;\n }\n switch (equation) {\n case Constants.ALPHA_EQUATION_ADD:\n this._alphaState.setAlphaEquationParameters(Constants.GL_ALPHA_EQUATION_ADD, Constants.GL_ALPHA_EQUATION_ADD);\n break;\n case Constants.ALPHA_EQUATION_SUBSTRACT:\n this._alphaState.setAlphaEquationParameters(Constants.GL_ALPHA_EQUATION_SUBTRACT, Constants.GL_ALPHA_EQUATION_SUBTRACT);\n break;\n case Constants.ALPHA_EQUATION_REVERSE_SUBTRACT:\n this._alphaState.setAlphaEquationParameters(Constants.GL_ALPHA_EQUATION_REVERSE_SUBTRACT, Constants.GL_ALPHA_EQUATION_REVERSE_SUBTRACT);\n break;\n case Constants.ALPHA_EQUATION_MAX:\n this._alphaState.setAlphaEquationParameters(Constants.GL_ALPHA_EQUATION_MAX, Constants.GL_ALPHA_EQUATION_MAX);\n break;\n case Constants.ALPHA_EQUATION_MIN:\n this._alphaState.setAlphaEquationParameters(Constants.GL_ALPHA_EQUATION_MIN, Constants.GL_ALPHA_EQUATION_MIN);\n break;\n case Constants.ALPHA_EQUATION_DARKEN:\n this._alphaState.setAlphaEquationParameters(Constants.GL_ALPHA_EQUATION_MIN, Constants.GL_ALPHA_EQUATION_ADD);\n break;\n }\n this._alphaEquation = equation;\n};\n//# sourceMappingURL=abstractEngine.alpha.js.map","import { AbstractEngine } from \"../abstractEngine\";\nimport { Constants } from \"../constants\";\nimport \"./abstractEngine.alpha\";\nAbstractEngine.prototype.getInputElement = function () {\n return this._renderingCanvas;\n};\nAbstractEngine.prototype.getDepthFunction = function () {\n return this._depthCullingState.depthFunc;\n};\nAbstractEngine.prototype.setDepthFunction = function (depthFunc) {\n this._depthCullingState.depthFunc = depthFunc;\n};\nAbstractEngine.prototype.setDepthFunctionToGreater = function () {\n this.setDepthFunction(Constants.GREATER);\n};\nAbstractEngine.prototype.setDepthFunctionToGreaterOrEqual = function () {\n this.setDepthFunction(Constants.GEQUAL);\n};\nAbstractEngine.prototype.setDepthFunctionToLess = function () {\n this.setDepthFunction(Constants.LESS);\n};\nAbstractEngine.prototype.setDepthFunctionToLessOrEqual = function () {\n this.setDepthFunction(Constants.LEQUAL);\n};\nAbstractEngine.prototype.getDepthWrite = function () {\n return this._depthCullingState.depthMask;\n};\nAbstractEngine.prototype.setDepthWrite = function (enable) {\n this._depthCullingState.depthMask = enable;\n};\nAbstractEngine.prototype.getStencilBuffer = function () {\n return this._stencilState.stencilTest;\n};\nAbstractEngine.prototype.setStencilBuffer = function (enable) {\n this._stencilState.stencilTest = enable;\n};\nAbstractEngine.prototype.getStencilMask = function () {\n return this._stencilState.stencilMask;\n};\nAbstractEngine.prototype.setStencilMask = function (mask) {\n this._stencilState.stencilMask = mask;\n};\nAbstractEngine.prototype.getStencilFunction = function () {\n return this._stencilState.stencilFunc;\n};\nAbstractEngine.prototype.getStencilFunctionReference = function () {\n return this._stencilState.stencilFuncRef;\n};\nAbstractEngine.prototype.getStencilFunctionMask = function () {\n return this._stencilState.stencilFuncMask;\n};\nAbstractEngine.prototype.setStencilFunction = function (stencilFunc) {\n this._stencilState.stencilFunc = stencilFunc;\n};\nAbstractEngine.prototype.setStencilFunctionReference = function (reference) {\n this._stencilState.stencilFuncRef = reference;\n};\nAbstractEngine.prototype.setStencilFunctionMask = function (mask) {\n this._stencilState.stencilFuncMask = mask;\n};\nAbstractEngine.prototype.getStencilOperationFail = function () {\n return this._stencilState.stencilOpStencilFail;\n};\nAbstractEngine.prototype.getStencilOperationDepthFail = function () {\n return this._stencilState.stencilOpDepthFail;\n};\nAbstractEngine.prototype.getStencilOperationPass = function () {\n return this._stencilState.stencilOpStencilDepthPass;\n};\nAbstractEngine.prototype.setStencilOperationFail = function (operation) {\n this._stencilState.stencilOpStencilFail = operation;\n};\nAbstractEngine.prototype.setStencilOperationDepthFail = function (operation) {\n this._stencilState.stencilOpDepthFail = operation;\n};\nAbstractEngine.prototype.setStencilOperationPass = function (operation) {\n this._stencilState.stencilOpStencilDepthPass = operation;\n};\nAbstractEngine.prototype.cacheStencilState = function () {\n this._cachedStencilBuffer = this.getStencilBuffer();\n this._cachedStencilFunction = this.getStencilFunction();\n this._cachedStencilMask = this.getStencilMask();\n this._cachedStencilOperationPass = this.getStencilOperationPass();\n this._cachedStencilOperationFail = this.getStencilOperationFail();\n this._cachedStencilOperationDepthFail = this.getStencilOperationDepthFail();\n this._cachedStencilReference = this.getStencilFunctionReference();\n};\nAbstractEngine.prototype.restoreStencilState = function () {\n this.setStencilFunction(this._cachedStencilFunction);\n this.setStencilMask(this._cachedStencilMask);\n this.setStencilBuffer(this._cachedStencilBuffer);\n this.setStencilOperationPass(this._cachedStencilOperationPass);\n this.setStencilOperationFail(this._cachedStencilOperationFail);\n this.setStencilOperationDepthFail(this._cachedStencilOperationDepthFail);\n this.setStencilFunctionReference(this._cachedStencilReference);\n};\nAbstractEngine.prototype.setAlphaConstants = function (r, g, b, a) {\n this._alphaState.setAlphaBlendConstants(r, g, b, a);\n};\nAbstractEngine.prototype.getAlphaMode = function () {\n return this._alphaMode;\n};\nAbstractEngine.prototype.getAlphaEquation = function () {\n return this._alphaEquation;\n};\n//# sourceMappingURL=abstractEngine.states.js.map","import { AbstractEngine } from \"../abstractEngine\";\nAbstractEngine.prototype.getRenderPassNames = function () {\n return this._renderPassNames;\n};\nAbstractEngine.prototype.getCurrentRenderPassName = function () {\n return this._renderPassNames[this.currentRenderPassId];\n};\nAbstractEngine.prototype.createRenderPassId = function (name) {\n // Note: render pass id == 0 is always for the main render pass\n const id = ++AbstractEngine._RenderPassIdCounter;\n this._renderPassNames[id] = name ?? \"NONAME\";\n return id;\n};\nAbstractEngine.prototype.releaseRenderPassId = function (id) {\n this._renderPassNames[id] = undefined;\n for (let s = 0; s < this.scenes.length; ++s) {\n const scene = this.scenes[s];\n for (let m = 0; m < scene.meshes.length; ++m) {\n const mesh = scene.meshes[m];\n if (mesh.subMeshes) {\n for (let b = 0; b < mesh.subMeshes.length; ++b) {\n const subMesh = mesh.subMeshes[b];\n subMesh._removeDrawWrapper(id);\n }\n }\n }\n }\n};\n//# sourceMappingURL=abstractEngine.renderPass.js.map","import { IsDocumentAvailable } from \"../Misc/domManagement\";\nimport { AbstractEngine } from \"./abstractEngine\";\nimport { EngineStore } from \"./engineStore\";\n/** @internal */\nfunction _DisableTouchAction(canvas) {\n if (!canvas || !canvas.setAttribute) {\n return;\n }\n canvas.setAttribute(\"touch-action\", \"none\");\n canvas.style.touchAction = \"none\";\n canvas.style.webkitTapHighlightColor = \"transparent\";\n}\n/** @internal */\nexport function _CommonInit(commonEngine, canvas, creationOptions) {\n commonEngine._onCanvasFocus = () => {\n commonEngine.onCanvasFocusObservable.notifyObservers(commonEngine);\n };\n commonEngine._onCanvasBlur = () => {\n commonEngine.onCanvasBlurObservable.notifyObservers(commonEngine);\n };\n commonEngine._onCanvasContextMenu = (evt) => {\n if (commonEngine.disableContextMenu) {\n evt.preventDefault();\n }\n };\n canvas.addEventListener(\"focus\", commonEngine._onCanvasFocus);\n canvas.addEventListener(\"blur\", commonEngine._onCanvasBlur);\n canvas.addEventListener(\"contextmenu\", commonEngine._onCanvasContextMenu);\n commonEngine._onBlur = () => {\n if (commonEngine.disablePerformanceMonitorInBackground) {\n commonEngine.performanceMonitor.disable();\n }\n commonEngine._windowIsBackground = true;\n };\n commonEngine._onFocus = () => {\n if (commonEngine.disablePerformanceMonitorInBackground) {\n commonEngine.performanceMonitor.enable();\n }\n commonEngine._windowIsBackground = false;\n };\n commonEngine._onCanvasPointerOut = (ev) => {\n // Check that the element at the point of the pointer out isn't the canvas and if it isn't, notify observers\n // Note: This is a workaround for a bug with Safari\n if (document.elementFromPoint(ev.clientX, ev.clientY) !== canvas) {\n commonEngine.onCanvasPointerOutObservable.notifyObservers(ev);\n }\n };\n const hostWindow = commonEngine.getHostWindow(); // it calls IsWindowObjectExist()\n if (hostWindow && typeof hostWindow.addEventListener === \"function\") {\n hostWindow.addEventListener(\"blur\", commonEngine._onBlur);\n hostWindow.addEventListener(\"focus\", commonEngine._onFocus);\n }\n canvas.addEventListener(\"pointerout\", commonEngine._onCanvasPointerOut);\n if (!creationOptions.doNotHandleTouchAction) {\n _DisableTouchAction(canvas);\n }\n // Create Audio Engine if needed.\n if (!AbstractEngine.audioEngine && creationOptions.audioEngine && AbstractEngine.AudioEngineFactory) {\n AbstractEngine.audioEngine = AbstractEngine.AudioEngineFactory(commonEngine.getRenderingCanvas(), commonEngine.getAudioContext(), commonEngine.getAudioDestination());\n }\n if (IsDocumentAvailable()) {\n // Fullscreen\n commonEngine._onFullscreenChange = () => {\n commonEngine.isFullscreen = !!document.fullscreenElement;\n // Pointer lock\n if (commonEngine.isFullscreen && commonEngine._pointerLockRequested && canvas) {\n RequestPointerlock(canvas);\n }\n };\n document.addEventListener(\"fullscreenchange\", commonEngine._onFullscreenChange, false);\n document.addEventListener(\"webkitfullscreenchange\", commonEngine._onFullscreenChange, false);\n // Pointer lock\n commonEngine._onPointerLockChange = () => {\n commonEngine.isPointerLock = document.pointerLockElement === canvas;\n };\n document.addEventListener(\"pointerlockchange\", commonEngine._onPointerLockChange, false);\n document.addEventListener(\"webkitpointerlockchange\", commonEngine._onPointerLockChange, false);\n }\n commonEngine.enableOfflineSupport = AbstractEngine.OfflineProviderFactory !== undefined;\n commonEngine._deterministicLockstep = !!creationOptions.deterministicLockstep;\n commonEngine._lockstepMaxSteps = creationOptions.lockstepMaxSteps || 0;\n commonEngine._timeStep = creationOptions.timeStep || 1 / 60;\n}\n/** @internal */\nexport function _CommonDispose(commonEngine, canvas) {\n // Release audio engine\n if (EngineStore.Instances.length === 1 && AbstractEngine.audioEngine) {\n AbstractEngine.audioEngine.dispose();\n AbstractEngine.audioEngine = null;\n }\n // Events\n const hostWindow = commonEngine.getHostWindow(); // it calls IsWindowObjectExist()\n if (hostWindow && typeof hostWindow.removeEventListener === \"function\") {\n hostWindow.removeEventListener(\"blur\", commonEngine._onBlur);\n hostWindow.removeEventListener(\"focus\", commonEngine._onFocus);\n }\n if (canvas) {\n canvas.removeEventListener(\"focus\", commonEngine._onCanvasFocus);\n canvas.removeEventListener(\"blur\", commonEngine._onCanvasBlur);\n canvas.removeEventListener(\"pointerout\", commonEngine._onCanvasPointerOut);\n canvas.removeEventListener(\"contextmenu\", commonEngine._onCanvasContextMenu);\n }\n if (IsDocumentAvailable()) {\n document.removeEventListener(\"fullscreenchange\", commonEngine._onFullscreenChange);\n document.removeEventListener(\"mozfullscreenchange\", commonEngine._onFullscreenChange);\n document.removeEventListener(\"webkitfullscreenchange\", commonEngine._onFullscreenChange);\n document.removeEventListener(\"msfullscreenchange\", commonEngine._onFullscreenChange);\n document.removeEventListener(\"pointerlockchange\", commonEngine._onPointerLockChange);\n document.removeEventListener(\"mspointerlockchange\", commonEngine._onPointerLockChange);\n document.removeEventListener(\"mozpointerlockchange\", commonEngine._onPointerLockChange);\n document.removeEventListener(\"webkitpointerlockchange\", commonEngine._onPointerLockChange);\n }\n}\n/**\n * Get Font size information\n * @param font font name\n * @returns an object containing ascent, height and descent\n */\nexport function GetFontOffset(font) {\n const text = document.createElement(\"span\");\n text.textContent = \"Hg\";\n text.style.font = font;\n const block = document.createElement(\"div\");\n block.style.display = \"inline-block\";\n block.style.width = \"1px\";\n block.style.height = \"0px\";\n block.style.verticalAlign = \"bottom\";\n const div = document.createElement(\"div\");\n div.style.whiteSpace = \"nowrap\";\n div.appendChild(text);\n div.appendChild(block);\n document.body.appendChild(div);\n let fontAscent = 0;\n let fontHeight = 0;\n try {\n fontHeight = block.getBoundingClientRect().top - text.getBoundingClientRect().top;\n block.style.verticalAlign = \"baseline\";\n fontAscent = block.getBoundingClientRect().top - text.getBoundingClientRect().top;\n }\n finally {\n document.body.removeChild(div);\n }\n return { ascent: fontAscent, height: fontHeight, descent: fontHeight - fontAscent };\n}\n/** @internal */\nexport function CreateImageBitmapFromSource(engine, imageSource, options) {\n const promise = new Promise((resolve, reject) => {\n const image = new Image();\n image.onload = () => {\n image.decode().then(() => {\n engine.createImageBitmap(image, options).then((imageBitmap) => {\n resolve(imageBitmap);\n });\n });\n };\n image.onerror = () => {\n reject(`Error loading image ${image.src}`);\n };\n image.src = imageSource;\n });\n return promise;\n}\n/** @internal */\nexport function ResizeImageBitmap(engine, image, bufferWidth, bufferHeight) {\n const canvas = engine.createCanvas(bufferWidth, bufferHeight);\n const context = canvas.getContext(\"2d\");\n if (!context) {\n throw new Error(\"Unable to get 2d context for resizeImageBitmap\");\n }\n context.drawImage(image, 0, 0);\n // Create VertexData from map data\n // Cast is due to wrong definition in lib.d.ts from ts 1.3 - https://github.com/Microsoft/TypeScript/issues/949\n const buffer = context.getImageData(0, 0, bufferWidth, bufferHeight).data;\n return buffer;\n}\n/**\n * Ask the browser to promote the current element to fullscreen rendering mode\n * @param element defines the DOM element to promote\n */\nexport function RequestFullscreen(element) {\n const requestFunction = element.requestFullscreen || element.webkitRequestFullscreen;\n if (!requestFunction) {\n return;\n }\n requestFunction.call(element);\n}\n/**\n * Asks the browser to exit fullscreen mode\n */\nexport function ExitFullscreen() {\n const anyDoc = document;\n if (document.exitFullscreen) {\n document.exitFullscreen();\n }\n else if (anyDoc.webkitCancelFullScreen) {\n anyDoc.webkitCancelFullScreen();\n }\n}\n/**\n * Ask the browser to promote the current element to pointerlock mode\n * @param element defines the DOM element to promote\n */\nexport function RequestPointerlock(element) {\n if (element.requestPointerLock) {\n // In some browsers, requestPointerLock returns a promise.\n // Handle possible rejections to avoid an unhandled top-level exception.\n const promise = element.requestPointerLock();\n if (promise instanceof Promise)\n promise\n .then(() => {\n element.focus();\n })\n .catch(() => { });\n else\n element.focus();\n }\n}\n/**\n * Asks the browser to exit pointerlock mode\n */\nexport function ExitPointerlock() {\n if (document.exitPointerLock) {\n document.exitPointerLock();\n }\n}\n//# sourceMappingURL=engine.common.js.map"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{o as e,H as t,C as n,A as i,p as s,q as r,E as a}from"./index-rZVkfTE6.esm.min.js";class o{constructor(e=30){this._enabled=!0,this._rollingFrameTime=new h(e)}sampleFrame(t=e.Now){if(this._enabled){if(null!=this._lastFrameTimeMs){const e=t-this._lastFrameTimeMs;this._rollingFrameTime.add(e)}this._lastFrameTimeMs=t}}get averageFrameTime(){return this._rollingFrameTime.average}get averageFrameTimeVariance(){return this._rollingFrameTime.variance}get instantaneousFrameTime(){return this._rollingFrameTime.history(0)}get averageFPS(){return 1e3/this._rollingFrameTime.average}get instantaneousFPS(){const e=this._rollingFrameTime.history(0);return 0===e?0:1e3/e}get isSaturated(){return this._rollingFrameTime.isSaturated()}enable(){this._enabled=!0}disable(){this._enabled=!1,this._lastFrameTimeMs=null}get isEnabled(){return this._enabled}reset(){this._lastFrameTimeMs=null,this._rollingFrameTime.reset()}}class h{constructor(e){this._samples=new Array(e),this.reset()}add(e){let t;if(this.isSaturated()){const e=this._samples[this._pos];t=e-this.average,this.average-=t/(this._sampleCount-1),this._m2-=t*(e-this.average)}else this._sampleCount++;t=e-this.average,this.average+=t/this._sampleCount,this._m2+=t*(e-this.average),this.variance=this._m2/(this._sampleCount-1),this._samples[this._pos]=e,this._pos++,this._pos%=this._samples.length}history(e){if(e>=this._sampleCount||e>=this._samples.length)return 0;const t=this._wrapPosition(this._pos-1);return this._samples[this._wrapPosition(t-e)]}isSaturated(){return this._sampleCount>=this._samples.length}reset(){this.average=0,this.variance=0,this._sampleCount=0,this._pos=0,this._m2=0}_wrapPosition(e){const t=this._samples.length;return(e%t+t)%t}}class c{get depthStencilTexture(){return this._depthStencilTexture}setDepthStencilTexture(e,n=!0){n&&this._depthStencilTexture&&this._depthStencilTexture.dispose(),this._depthStencilTexture=e,this._generateDepthBuffer=this._generateStencilBuffer=!1,e&&(this._generateDepthBuffer=!0,this._generateStencilBuffer=t(e.format))}get depthStencilTextureWithStencil(){return this._depthStencilTextureWithStencil}get isCube(){return this._isCube}get isMulti(){return this._isMulti}get is2DArray(){return this.layers>0}get is3D(){return this.depth>0}get size(){return this.width}get width(){return this._size.width??this._size}get height(){return this._size.height??this._size}get layers(){return this._size.layers||0}get depth(){return this._size.depth||0}get texture(){return this._textures?.[0]??null}get textures(){return this._textures}get faceIndices(){return this._faceIndices}get layerIndices(){return this._layerIndices}getBaseArrayLayer(e){if(!this._textures)return-1;const t=this._textures[e],n=this._layerIndices?.[e]??0,i=this._faceIndices?.[e]??0;return t.isCube?6*n+i:t.is3D?0:n}get samples(){return this._samples}setSamples(e,t=!0,n=!1){if(this.samples===e&&!n)return e;const i=this._isMulti?this._engine.updateMultipleRenderTargetTextureSampleCount(this,e,t):this._engine.updateRenderTargetTextureSampleCount(this,e);return this._samples=e,i}resolveMSAATextures(){this.isMulti?this._engine.resolveMultiFramebuffer(this):this._engine.resolveFramebuffer(this)}generateMipMaps(){this._engine._currentRenderTarget===this&&this._engine.unBindFramebuffer(this,!0),this.isMulti?this._engine.generateMipMapsMultiFramebuffer(this):this._engine.generateMipMapsFramebuffer(this)}constructor(e,t,n,i,s){this._textures=null,this._faceIndices=null,this._layerIndices=null,this._samples=1,this._attachments=null,this._generateStencilBuffer=!1,this._generateDepthBuffer=!1,this._depthStencilTextureWithStencil=!1,this.disableAutomaticMSAAResolve=!1,this.resolveMSAAColors=!0,this.resolveMSAADepth=!1,this.resolveMSAAStencil=!1,this._isMulti=e,this._isCube=t,this._size=n,this._engine=i,this._depthStencilTexture=null,this.label=s}setTextures(e){Array.isArray(e)?this._textures=e:this._textures=e?[e]:null}setTexture(e,t=0,n=!0){this._textures||(this._textures=[]),this._textures[t]!==e&&(this._textures[t]&&n&&this._textures[t].dispose(),this._textures[t]=e)}setLayerAndFaceIndices(e,t){this._layerIndices=e,this._faceIndices=t}setLayerAndFaceIndex(e=0,t,n){this._layerIndices||(this._layerIndices=[]),this._faceIndices||(this._faceIndices=[]),void 0!==t&&t>=0&&(this._layerIndices[e]=t),void 0!==n&&n>=0&&(this._faceIndices[e]=n)}createDepthStencilTexture(e=0,t=!0,i=!1,s=1,r=n.TEXTUREFORMAT_DEPTH32_FLOAT,a){return this._depthStencilTexture?.dispose(),this._depthStencilTextureWithStencil=i,this._depthStencilTextureLabel=a,this._depthStencilTexture=this._engine.createDepthStencilTexture(this._size,{bilinearFiltering:t,comparisonFunction:e,generateStencil:i,isCube:this._isCube,samples:s,depthTextureFormat:r,label:a},this),this._depthStencilTexture}_shareDepth(e){this.shareDepth(e)}shareDepth(e){this._depthStencilTexture&&(e._depthStencilTexture&&e._depthStencilTexture.dispose(),e._depthStencilTexture=this._depthStencilTexture,e._depthStencilTextureWithStencil=this._depthStencilTextureWithStencil,this._depthStencilTexture.incrementReferences())}_swapAndDie(e){this.texture&&this.texture._swapAndDie(e),this._textures=null,this.dispose(!0)}_cloneRenderTargetWrapper(){let e=null;if(this._isMulti){const t=this.textures;if(t&&t.length>0){let i=!1,s=t.length,r=-1;const a=t[t.length-1]._source;14!==a&&12!==a||(i=!0,r=t[t.length-1].format,s--);const o=[],h=[],c=[],l=[],u=[],p=[],_=[],d={};for(let e=0;e<s;++e){const i=t[e];o.push(i.samplingMode),h.push(i.type),c.push(i.format);void 0!==d[i.uniqueId]?(l.push(-1),_.push(0)):(d[i.uniqueId]=e,i.is2DArray?(l.push(n.TEXTURE_2D_ARRAY),_.push(i.depth)):i.isCube?(l.push(n.TEXTURE_CUBE_MAP),_.push(0)):i.is3D?(l.push(n.TEXTURE_3D),_.push(i.depth)):(l.push(n.TEXTURE_2D),_.push(0))),this._faceIndices&&u.push(this._faceIndices[e]??0),this._layerIndices&&p.push(this._layerIndices[e]??0)}const g={samplingModes:o,generateMipMaps:t[0].generateMipMaps,generateDepthBuffer:this._generateDepthBuffer,generateStencilBuffer:this._generateStencilBuffer,generateDepthTexture:i,depthTextureFormat:r,types:h,formats:c,textureCount:s,targetTypes:l,faceIndex:u,layerIndex:p,layerCounts:_,label:this.label},f={width:this.width,height:this.height,depth:this.depth};e=this._engine.createMultipleRenderTarget(f,g);for(let n=0;n<s;++n){if(-1!==l[n])continue;const i=d[t[n].uniqueId];e.setTexture(e.textures[i],n)}}}else{const t={};if(t.generateDepthBuffer=this._generateDepthBuffer,t.generateMipMaps=this.texture?.generateMipMaps??!1,t.generateStencilBuffer=this._generateStencilBuffer,t.samplingMode=this.texture?.samplingMode,t.type=this.texture?.type,t.format=this.texture?.format,t.noColorAttachment=!this._textures,t.label=this.label,this.isCube)e=this._engine.createRenderTargetCubeTexture(this.width,t);else{const n={width:this.width,height:this.height,layers:this.is2DArray||this.is3D?this.texture?.depth:void 0};e=this._engine.createRenderTargetTexture(n,t)}e.texture&&(e.texture.isReady=!0)}return e}_swapRenderTargetWrapper(e){if(this._textures&&e._textures)for(let t=0;t<this._textures.length;++t)this._textures[t]._swapAndDie(e._textures[t],!1),e._textures[t].isReady=!0;this._depthStencilTexture&&e._depthStencilTexture&&(this._depthStencilTexture._swapAndDie(e._depthStencilTexture),e._depthStencilTexture.isReady=!0),this._textures=null,this._depthStencilTexture=null}_rebuild(){const e=this._cloneRenderTargetWrapper();if(e){if(this._depthStencilTexture){const t=this._depthStencilTexture.samplingMode,i=this._depthStencilTexture.format,s=t===n.TEXTURE_BILINEAR_SAMPLINGMODE||t===n.TEXTURE_TRILINEAR_SAMPLINGMODE||t===n.TEXTURE_LINEAR_LINEAR_MIPNEAREST;e.createDepthStencilTexture(this._depthStencilTexture._comparisonFunction,s,this._depthStencilTextureWithStencil,this._depthStencilTexture.samples,i,this._depthStencilTextureLabel)}this.samples>1&&e.setSamples(this.samples),e._swapRenderTargetWrapper(this),e.dispose()}}releaseTextures(){if(this._textures)for(let e=0;e<this._textures.length;++e)this._textures[e].dispose();this._textures=null}dispose(e=!1){e||(this._depthStencilTexture?.dispose(),this._depthStencilTexture=null,this.releaseTextures()),this._engine._releaseRenderTargetWrapper(this)}}function l(e,t,n){e._onCanvasFocus=()=>{e.onCanvasFocusObservable.notifyObservers(e)},e._onCanvasBlur=()=>{e.onCanvasBlurObservable.notifyObservers(e)},e._onCanvasContextMenu=t=>{e.disableContextMenu&&t.preventDefault()},t.addEventListener("focus",e._onCanvasFocus),t.addEventListener("blur",e._onCanvasBlur),t.addEventListener("contextmenu",e._onCanvasContextMenu),e._onBlur=()=>{e.disablePerformanceMonitorInBackground&&e.performanceMonitor.disable(),e._windowIsBackground=!0},e._onFocus=()=>{e.disablePerformanceMonitorInBackground&&e.performanceMonitor.enable(),e._windowIsBackground=!1},e._onCanvasPointerOut=n=>{document.elementFromPoint(n.clientX,n.clientY)!==t&&e.onCanvasPointerOutObservable.notifyObservers(n)};const s=e.getHostWindow();s&&"function"==typeof s.addEventListener&&(s.addEventListener("blur",e._onBlur),s.addEventListener("focus",e._onFocus)),t.addEventListener("pointerout",e._onCanvasPointerOut),n.doNotHandleTouchAction||function(e){e&&e.setAttribute&&(e.setAttribute("touch-action","none"),e.style.touchAction="none",e.style.webkitTapHighlightColor="transparent")}(t),!i.audioEngine&&n.audioEngine&&i.AudioEngineFactory&&(i.audioEngine=i.AudioEngineFactory(e.getRenderingCanvas(),e.getAudioContext(),e.getAudioDestination())),r()&&(e._onFullscreenChange=()=>{e.isFullscreen=!!document.fullscreenElement,e.isFullscreen&&e._pointerLockRequested&&t&&m(t)},document.addEventListener("fullscreenchange",e._onFullscreenChange,!1),document.addEventListener("webkitfullscreenchange",e._onFullscreenChange,!1),e._onPointerLockChange=()=>{e.isPointerLock=document.pointerLockElement===t},document.addEventListener("pointerlockchange",e._onPointerLockChange,!1),document.addEventListener("webkitpointerlockchange",e._onPointerLockChange,!1)),e.enableOfflineSupport=void 0!==i.OfflineProviderFactory,e._deterministicLockstep=!!n.deterministicLockstep,e._lockstepMaxSteps=n.lockstepMaxSteps||0,e._timeStep=n.timeStep||1/60}function u(e,t){1===a.Instances.length&&i.audioEngine&&(i.audioEngine.dispose(),i.audioEngine=null);const n=e.getHostWindow();n&&"function"==typeof n.removeEventListener&&(n.removeEventListener("blur",e._onBlur),n.removeEventListener("focus",e._onFocus)),t&&(t.removeEventListener("focus",e._onCanvasFocus),t.removeEventListener("blur",e._onCanvasBlur),t.removeEventListener("pointerout",e._onCanvasPointerOut),t.removeEventListener("contextmenu",e._onCanvasContextMenu)),r()&&(document.removeEventListener("fullscreenchange",e._onFullscreenChange),document.removeEventListener("mozfullscreenchange",e._onFullscreenChange),document.removeEventListener("webkitfullscreenchange",e._onFullscreenChange),document.removeEventListener("msfullscreenchange",e._onFullscreenChange),document.removeEventListener("pointerlockchange",e._onPointerLockChange),document.removeEventListener("mspointerlockchange",e._onPointerLockChange),document.removeEventListener("mozpointerlockchange",e._onPointerLockChange),document.removeEventListener("webkitpointerlockchange",e._onPointerLockChange))}function p(e){const t=document.createElement("span");t.textContent="Hg",t.style.font=e;const n=document.createElement("div");n.style.display="inline-block",n.style.width="1px",n.style.height="0px",n.style.verticalAlign="bottom";const i=document.createElement("div");i.style.whiteSpace="nowrap",i.appendChild(t),i.appendChild(n),document.body.appendChild(i);let s=0,r=0;try{r=n.getBoundingClientRect().top-t.getBoundingClientRect().top,n.style.verticalAlign="baseline",s=n.getBoundingClientRect().top-t.getBoundingClientRect().top}finally{document.body.removeChild(i)}return{ascent:s,height:r,descent:r-s}}function _(e,t,n){return new Promise(((i,s)=>{const r=new Image;r.onload=()=>{r.decode().then((()=>{e.createImageBitmap(r,n).then((e=>{i(e)}))}))},r.onerror=()=>{s(`Error loading image ${r.src}`)},r.src=t}))}function d(e,t,n,i){const s=e.createCanvas(n,i).getContext("2d");if(!s)throw new Error("Unable to get 2d context for resizeImageBitmap");s.drawImage(t,0,0);return s.getImageData(0,0,n,i).data}function g(e){const t=e.requestFullscreen||e.webkitRequestFullscreen;t&&t.call(e)}function f(){const e=document;document.exitFullscreen?document.exitFullscreen():e.webkitCancelFullScreen&&e.webkitCancelFullScreen()}function m(e){if(e.requestPointerLock){const t=e.requestPointerLock();t instanceof Promise?t.then((()=>{e.focus()})).catch((()=>{})):e.focus()}}function S(){document.exitPointerLock&&document.exitPointerLock()}i.prototype.createDepthStencilTexture=function(e,t,n){if(t.isCube){const n=e.width||e;return this._createDepthStencilCubeTexture(n,t)}return this._createDepthStencilTexture(e,t,n)},i.prototype.displayLoadingUI=function(){if(!s())return;const e=this.loadingScreen;e&&e.displayLoadingUI()},i.prototype.hideLoadingUI=function(){if(!s())return;const e=this._loadingScreen;e&&e.hideLoadingUI()},Object.defineProperty(i.prototype,"loadingScreen",{get:function(){return!this._loadingScreen&&this._renderingCanvas&&(this._loadingScreen=i.DefaultLoadingScreenFactory(this._renderingCanvas)),this._loadingScreen},set:function(e){this._loadingScreen=e},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"loadingUIText",{set:function(e){this.loadingScreen.loadingUIText=e},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"loadingUIBackgroundColor",{set:function(e){this.loadingScreen.loadingUIBackgroundColor=e},enumerable:!0,configurable:!0}),i.prototype.getInputElement=function(){return this._renderingCanvas},i.prototype.getRenderingCanvasClientRect=function(){return this._renderingCanvas?this._renderingCanvas.getBoundingClientRect():null},i.prototype.getInputElementClientRect=function(){return this._renderingCanvas?this.getInputElement().getBoundingClientRect():null},i.prototype.getAspectRatio=function(e,t=!1){const n=e.viewport;return this.getRenderWidth(t)*n.width/(this.getRenderHeight(t)*n.height)},i.prototype.getScreenAspectRatio=function(){return this.getRenderWidth(!0)/this.getRenderHeight(!0)},i.prototype._verifyPointerLock=function(){this._onPointerLockChange?.()},i.prototype.setAlphaEquation=function(e){if(this._alphaEquation!==e){switch(e){case n.ALPHA_EQUATION_ADD:this._alphaState.setAlphaEquationParameters(n.GL_ALPHA_EQUATION_ADD,n.GL_ALPHA_EQUATION_ADD);break;case n.ALPHA_EQUATION_SUBSTRACT:this._alphaState.setAlphaEquationParameters(n.GL_ALPHA_EQUATION_SUBTRACT,n.GL_ALPHA_EQUATION_SUBTRACT);break;case n.ALPHA_EQUATION_REVERSE_SUBTRACT:this._alphaState.setAlphaEquationParameters(n.GL_ALPHA_EQUATION_REVERSE_SUBTRACT,n.GL_ALPHA_EQUATION_REVERSE_SUBTRACT);break;case n.ALPHA_EQUATION_MAX:this._alphaState.setAlphaEquationParameters(n.GL_ALPHA_EQUATION_MAX,n.GL_ALPHA_EQUATION_MAX);break;case n.ALPHA_EQUATION_MIN:this._alphaState.setAlphaEquationParameters(n.GL_ALPHA_EQUATION_MIN,n.GL_ALPHA_EQUATION_MIN);break;case n.ALPHA_EQUATION_DARKEN:this._alphaState.setAlphaEquationParameters(n.GL_ALPHA_EQUATION_MIN,n.GL_ALPHA_EQUATION_ADD)}this._alphaEquation=e}},i.prototype.getInputElement=function(){return this._renderingCanvas},i.prototype.getDepthFunction=function(){return this._depthCullingState.depthFunc},i.prototype.setDepthFunction=function(e){this._depthCullingState.depthFunc=e},i.prototype.setDepthFunctionToGreater=function(){this.setDepthFunction(n.GREATER)},i.prototype.setDepthFunctionToGreaterOrEqual=function(){this.setDepthFunction(n.GEQUAL)},i.prototype.setDepthFunctionToLess=function(){this.setDepthFunction(n.LESS)},i.prototype.setDepthFunctionToLessOrEqual=function(){this.setDepthFunction(n.LEQUAL)},i.prototype.getDepthWrite=function(){return this._depthCullingState.depthMask},i.prototype.setDepthWrite=function(e){this._depthCullingState.depthMask=e},i.prototype.getStencilBuffer=function(){return this._stencilState.stencilTest},i.prototype.setStencilBuffer=function(e){this._stencilState.stencilTest=e},i.prototype.getStencilMask=function(){return this._stencilState.stencilMask},i.prototype.setStencilMask=function(e){this._stencilState.stencilMask=e},i.prototype.getStencilFunction=function(){return this._stencilState.stencilFunc},i.prototype.getStencilFunctionReference=function(){return this._stencilState.stencilFuncRef},i.prototype.getStencilFunctionMask=function(){return this._stencilState.stencilFuncMask},i.prototype.setStencilFunction=function(e){this._stencilState.stencilFunc=e},i.prototype.setStencilFunctionReference=function(e){this._stencilState.stencilFuncRef=e},i.prototype.setStencilFunctionMask=function(e){this._stencilState.stencilFuncMask=e},i.prototype.getStencilOperationFail=function(){return this._stencilState.stencilOpStencilFail},i.prototype.getStencilOperationDepthFail=function(){return this._stencilState.stencilOpDepthFail},i.prototype.getStencilOperationPass=function(){return this._stencilState.stencilOpStencilDepthPass},i.prototype.setStencilOperationFail=function(e){this._stencilState.stencilOpStencilFail=e},i.prototype.setStencilOperationDepthFail=function(e){this._stencilState.stencilOpDepthFail=e},i.prototype.setStencilOperationPass=function(e){this._stencilState.stencilOpStencilDepthPass=e},i.prototype.cacheStencilState=function(){this._cachedStencilBuffer=this.getStencilBuffer(),this._cachedStencilFunction=this.getStencilFunction(),this._cachedStencilMask=this.getStencilMask(),this._cachedStencilOperationPass=this.getStencilOperationPass(),this._cachedStencilOperationFail=this.getStencilOperationFail(),this._cachedStencilOperationDepthFail=this.getStencilOperationDepthFail(),this._cachedStencilReference=this.getStencilFunctionReference()},i.prototype.restoreStencilState=function(){this.setStencilFunction(this._cachedStencilFunction),this.setStencilMask(this._cachedStencilMask),this.setStencilBuffer(this._cachedStencilBuffer),this.setStencilOperationPass(this._cachedStencilOperationPass),this.setStencilOperationFail(this._cachedStencilOperationFail),this.setStencilOperationDepthFail(this._cachedStencilOperationDepthFail),this.setStencilFunctionReference(this._cachedStencilReference)},i.prototype.setAlphaConstants=function(e,t,n,i){this._alphaState.setAlphaBlendConstants(e,t,n,i)},i.prototype.getAlphaMode=function(){return this._alphaMode},i.prototype.getAlphaEquation=function(){return this._alphaEquation},i.prototype.getRenderPassNames=function(){return this._renderPassNames},i.prototype.getCurrentRenderPassName=function(){return this._renderPassNames[this.currentRenderPassId]},i.prototype.createRenderPassId=function(e){const t=++i._RenderPassIdCounter;return this._renderPassNames[t]=e??"NONAME",t},i.prototype.releaseRenderPassId=function(e){this._renderPassNames[e]=void 0;for(let t=0;t<this.scenes.length;++t){const n=this.scenes[t];for(let t=0;t<n.meshes.length;++t){const i=n.meshes[t];if(i.subMeshes)for(let t=0;t<i.subMeshes.length;++t){i.subMeshes[t]._removeDrawWrapper(e)}}}};export{_ as C,f as E,p as G,o as P,c as R,l as _,d as a,g as b,m as c,S as d,u as e};
2
+ //# sourceMappingURL=engine.common-DpTzktQJ.esm.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.common-DpTzktQJ.esm.min.js","sources":["../../../../../dev/core/dist/Misc/performanceMonitor.js","../../../../../dev/core/dist/Engines/renderTargetWrapper.js","../../../../../dev/core/dist/Engines/engine.common.js","../../../../../dev/core/dist/Engines/AbstractEngine/abstractEngine.texture.js","../../../../../dev/core/dist/Engines/AbstractEngine/abstractEngine.loadingScreen.js","../../../../../dev/core/dist/Engines/AbstractEngine/abstractEngine.dom.js","../../../../../dev/core/dist/Engines/AbstractEngine/abstractEngine.alpha.js","../../../../../dev/core/dist/Engines/AbstractEngine/abstractEngine.states.js","../../../../../dev/core/dist/Engines/AbstractEngine/abstractEngine.renderPass.js"],"sourcesContent":["import { PrecisionDate } from \"./precisionDate\";\n/**\n * Performance monitor tracks rolling average frame-time and frame-time variance over a user defined sliding-window\n */\nexport class PerformanceMonitor {\n /**\n * constructor\n * @param frameSampleSize The number of samples required to saturate the sliding window\n */\n constructor(frameSampleSize = 30) {\n this._enabled = true;\n this._rollingFrameTime = new RollingAverage(frameSampleSize);\n }\n /**\n * Samples current frame\n * @param timeMs A timestamp in milliseconds of the current frame to compare with other frames\n */\n sampleFrame(timeMs = PrecisionDate.Now) {\n if (!this._enabled) {\n return;\n }\n if (this._lastFrameTimeMs != null) {\n const dt = timeMs - this._lastFrameTimeMs;\n this._rollingFrameTime.add(dt);\n }\n this._lastFrameTimeMs = timeMs;\n }\n /**\n * Returns the average frame time in milliseconds over the sliding window (or the subset of frames sampled so far)\n */\n get averageFrameTime() {\n return this._rollingFrameTime.average;\n }\n /**\n * Returns the variance frame time in milliseconds over the sliding window (or the subset of frames sampled so far)\n */\n get averageFrameTimeVariance() {\n return this._rollingFrameTime.variance;\n }\n /**\n * Returns the frame time of the most recent frame\n */\n get instantaneousFrameTime() {\n return this._rollingFrameTime.history(0);\n }\n /**\n * Returns the average framerate in frames per second over the sliding window (or the subset of frames sampled so far)\n */\n get averageFPS() {\n return 1000.0 / this._rollingFrameTime.average;\n }\n /**\n * Returns the average framerate in frames per second using the most recent frame time\n */\n get instantaneousFPS() {\n const history = this._rollingFrameTime.history(0);\n if (history === 0) {\n return 0;\n }\n return 1000.0 / history;\n }\n /**\n * Returns true if enough samples have been taken to completely fill the sliding window\n */\n get isSaturated() {\n return this._rollingFrameTime.isSaturated();\n }\n /**\n * Enables contributions to the sliding window sample set\n */\n enable() {\n this._enabled = true;\n }\n /**\n * Disables contributions to the sliding window sample set\n * Samples will not be interpolated over the disabled period\n */\n disable() {\n this._enabled = false;\n //clear last sample to avoid interpolating over the disabled period when next enabled\n this._lastFrameTimeMs = null;\n }\n /**\n * Returns true if sampling is enabled\n */\n get isEnabled() {\n return this._enabled;\n }\n /**\n * Resets performance monitor\n */\n reset() {\n //clear last sample to avoid interpolating over the disabled period when next enabled\n this._lastFrameTimeMs = null;\n //wipe record\n this._rollingFrameTime.reset();\n }\n}\n/**\n * RollingAverage\n *\n * Utility to efficiently compute the rolling average and variance over a sliding window of samples\n */\nexport class RollingAverage {\n /**\n * constructor\n * @param length The number of samples required to saturate the sliding window\n */\n constructor(length) {\n this._samples = new Array(length);\n this.reset();\n }\n /**\n * Adds a sample to the sample set\n * @param v The sample value\n */\n add(v) {\n //http://en.wikipedia.org/wiki/Algorithms_for_calculating_variance\n let delta;\n //we need to check if we've already wrapped round\n if (this.isSaturated()) {\n //remove bottom of stack from mean\n const bottomValue = this._samples[this._pos];\n delta = bottomValue - this.average;\n this.average -= delta / (this._sampleCount - 1);\n this._m2 -= delta * (bottomValue - this.average);\n }\n else {\n this._sampleCount++;\n }\n //add new value to mean\n delta = v - this.average;\n this.average += delta / this._sampleCount;\n this._m2 += delta * (v - this.average);\n //set the new variance\n this.variance = this._m2 / (this._sampleCount - 1);\n this._samples[this._pos] = v;\n this._pos++;\n this._pos %= this._samples.length; //positive wrap around\n }\n /**\n * Returns previously added values or null if outside of history or outside the sliding window domain\n * @param i Index in history. For example, pass 0 for the most recent value and 1 for the value before that\n * @returns Value previously recorded with add() or null if outside of range\n */\n history(i) {\n if (i >= this._sampleCount || i >= this._samples.length) {\n return 0;\n }\n const i0 = this._wrapPosition(this._pos - 1.0);\n return this._samples[this._wrapPosition(i0 - i)];\n }\n /**\n * Returns true if enough samples have been taken to completely fill the sliding window\n * @returns true if sample-set saturated\n */\n isSaturated() {\n return this._sampleCount >= this._samples.length;\n }\n /**\n * Resets the rolling average (equivalent to 0 samples taken so far)\n */\n reset() {\n this.average = 0;\n this.variance = 0;\n this._sampleCount = 0;\n this._pos = 0;\n this._m2 = 0;\n }\n /**\n * Wraps a value around the sample range boundaries\n * @param i Position in sample range, for example if the sample length is 5, and i is -3, then 2 will be returned.\n * @returns Wrapped position in sample range\n */\n _wrapPosition(i) {\n const max = this._samples.length;\n return ((i % max) + max) % max;\n }\n}\n//# sourceMappingURL=performanceMonitor.js.map","import { HasStencilAspect } from \"../Materials/Textures/internalTexture\";\nimport { Constants } from \"./constants\";\n/**\n * Wrapper around a render target (either single or multi textures)\n */\nexport class RenderTargetWrapper {\n /**\n * Gets the depth/stencil texture\n */\n get depthStencilTexture() {\n return this._depthStencilTexture;\n }\n /**\n * Sets the depth/stencil texture\n * @param texture The depth/stencil texture to set\n * @param disposeExisting True to dispose the existing depth/stencil texture (if any) before replacing it (default: true)\n */\n setDepthStencilTexture(texture, disposeExisting = true) {\n if (disposeExisting && this._depthStencilTexture) {\n this._depthStencilTexture.dispose();\n }\n this._depthStencilTexture = texture;\n this._generateDepthBuffer = this._generateStencilBuffer = false;\n if (texture) {\n this._generateDepthBuffer = true;\n this._generateStencilBuffer = HasStencilAspect(texture.format);\n }\n }\n /**\n * Indicates if the depth/stencil texture has a stencil aspect\n */\n get depthStencilTextureWithStencil() {\n return this._depthStencilTextureWithStencil;\n }\n /**\n * Defines if the render target wrapper is for a cube texture or if false a 2d texture\n */\n get isCube() {\n return this._isCube;\n }\n /**\n * Defines if the render target wrapper is for a single or multi target render wrapper\n */\n get isMulti() {\n return this._isMulti;\n }\n /**\n * Defines if the render target wrapper is for a single or an array of textures\n */\n get is2DArray() {\n return this.layers > 0;\n }\n /**\n * Defines if the render target wrapper is for a 3D texture\n */\n get is3D() {\n return this.depth > 0;\n }\n /**\n * Gets the size of the render target wrapper (used for cubes, as width=height in this case)\n */\n get size() {\n return this.width;\n }\n /**\n * Gets the width of the render target wrapper\n */\n get width() {\n return this._size.width ?? this._size;\n }\n /**\n * Gets the height of the render target wrapper\n */\n get height() {\n return this._size.height ?? this._size;\n }\n /**\n * Gets the number of layers of the render target wrapper (only used if is2DArray is true and wrapper is not a multi render target)\n */\n get layers() {\n return this._size.layers || 0;\n }\n /**\n * Gets the depth of the render target wrapper (only used if is3D is true and wrapper is not a multi render target)\n */\n get depth() {\n return this._size.depth || 0;\n }\n /**\n * Gets the render texture. If this is a multi render target, gets the first texture\n */\n get texture() {\n return this._textures?.[0] ?? null;\n }\n /**\n * Gets the list of render textures. If we are not in a multi render target, the list will be null (use the texture getter instead)\n */\n get textures() {\n return this._textures;\n }\n /**\n * Gets the face indices that correspond to the list of render textures. If we are not in a multi render target, the list will be null\n */\n get faceIndices() {\n return this._faceIndices;\n }\n /**\n * Gets the layer indices that correspond to the list of render textures. If we are not in a multi render target, the list will be null\n */\n get layerIndices() {\n return this._layerIndices;\n }\n /**\n * Gets the base array layer of a texture in the textures array\n * This is an number that is calculated based on the layer and face indices set for this texture at that index\n * @param index The index of the texture in the textures array to get the base array layer for\n * @returns the base array layer of the texture at the given index\n */\n getBaseArrayLayer(index) {\n if (!this._textures) {\n return -1;\n }\n const texture = this._textures[index];\n const layerIndex = this._layerIndices?.[index] ?? 0;\n const faceIndex = this._faceIndices?.[index] ?? 0;\n return texture.isCube ? layerIndex * 6 + faceIndex : texture.is3D ? 0 : layerIndex;\n }\n /**\n * Gets the sample count of the render target\n */\n get samples() {\n return this._samples;\n }\n /**\n * Sets the sample count of the render target\n * @param value sample count\n * @param initializeBuffers If set to true, the engine will make an initializing call to drawBuffers (only used when isMulti=true).\n * @param force true to force calling the update sample count engine function even if the current sample count is equal to value\n * @returns the sample count that has been set\n */\n setSamples(value, initializeBuffers = true, force = false) {\n if (this.samples === value && !force) {\n return value;\n }\n const result = this._isMulti\n ? this._engine.updateMultipleRenderTargetTextureSampleCount(this, value, initializeBuffers)\n : this._engine.updateRenderTargetTextureSampleCount(this, value);\n this._samples = value;\n return result;\n }\n /**\n * Resolves the MSAA textures into their non-MSAA version.\n * Note that if samples equals 1 (no MSAA), no resolve is performed.\n */\n resolveMSAATextures() {\n if (this.isMulti) {\n this._engine.resolveMultiFramebuffer(this);\n }\n else {\n this._engine.resolveFramebuffer(this);\n }\n }\n /**\n * Generates mipmaps for each texture of the render target\n */\n generateMipMaps() {\n if (this._engine._currentRenderTarget === this) {\n this._engine.unBindFramebuffer(this, true);\n }\n if (this.isMulti) {\n this._engine.generateMipMapsMultiFramebuffer(this);\n }\n else {\n this._engine.generateMipMapsFramebuffer(this);\n }\n }\n /**\n * Initializes the render target wrapper\n * @param isMulti true if the wrapper is a multi render target\n * @param isCube true if the wrapper should render to a cube texture\n * @param size size of the render target (width/height/layers)\n * @param engine engine used to create the render target\n * @param label defines the label to use for the wrapper (for debugging purpose only)\n */\n constructor(isMulti, isCube, size, engine, label) {\n this._textures = null;\n this._faceIndices = null;\n this._layerIndices = null;\n /** @internal */\n this._samples = 1;\n /** @internal */\n this._attachments = null;\n /** @internal */\n this._generateStencilBuffer = false;\n /** @internal */\n this._generateDepthBuffer = false;\n /** @internal */\n this._depthStencilTextureWithStencil = false;\n /**\n * Sets this property to true to disable the automatic MSAA resolve that happens when the render target wrapper is unbound (default is false)\n */\n this.disableAutomaticMSAAResolve = false;\n /**\n * Indicates if MSAA color texture(s) should be resolved when a resolve occur (either automatically by the engine or manually by the user) (default is true)\n * Note that you can trigger a MSAA resolve at any time by calling resolveMSAATextures()\n */\n this.resolveMSAAColors = true;\n /**\n * Indicates if MSAA depth texture should be resolved when a resolve occur (either automatically by the engine or manually by the user) (default is false)\n */\n this.resolveMSAADepth = false;\n /**\n * Indicates if MSAA stencil texture should be resolved when a resolve occur (either automatically by the engine or manually by the user) (default is false)\n */\n this.resolveMSAAStencil = false;\n this._isMulti = isMulti;\n this._isCube = isCube;\n this._size = size;\n this._engine = engine;\n this._depthStencilTexture = null;\n this.label = label;\n }\n /**\n * Sets the render target texture(s)\n * @param textures texture(s) to set\n */\n setTextures(textures) {\n if (Array.isArray(textures)) {\n this._textures = textures;\n }\n else if (textures) {\n this._textures = [textures];\n }\n else {\n this._textures = null;\n }\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 if (!this._textures) {\n this._textures = [];\n }\n if (this._textures[index] === texture) {\n return;\n }\n if (this._textures[index] && disposePrevious) {\n this._textures[index].dispose();\n }\n this._textures[index] = texture;\n }\n /**\n * Sets the layer and face indices of every render target texture bound to each color attachment\n * @param layers The layers of each texture to be set\n * @param faces The faces of each texture to be set\n */\n setLayerAndFaceIndices(layers, faces) {\n this._layerIndices = layers;\n this._faceIndices = faces;\n }\n /**\n * Sets the layer and face indices of a texture in the textures array that should be bound to each color attachment\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 if (!this._layerIndices) {\n this._layerIndices = [];\n }\n if (!this._faceIndices) {\n this._faceIndices = [];\n }\n if (layer !== undefined && layer >= 0) {\n this._layerIndices[index] = layer;\n }\n if (face !== undefined && face >= 0) {\n this._faceIndices[index] = face;\n }\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 Not used anymore. \"format\" will be used to determine if stencil should be created\n * @param samples sample count to use when creating the texture (default: 1)\n * @param format format of the depth texture (default: Constants.TEXTUREFORMAT_DEPTH32_FLOAT)\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 this._depthStencilTexture?.dispose();\n this._depthStencilTextureWithStencil = generateStencil;\n this._depthStencilTextureLabel = label;\n this._depthStencilTexture = this._engine.createDepthStencilTexture(this._size, {\n bilinearFiltering,\n comparisonFunction,\n generateStencil,\n isCube: this._isCube,\n samples,\n depthTextureFormat: format,\n label,\n }, this);\n return this._depthStencilTexture;\n }\n /**\n * @deprecated Use shareDepth instead\n * @param renderTarget Destination renderTarget\n */\n _shareDepth(renderTarget) {\n this.shareDepth(renderTarget);\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 if (this._depthStencilTexture) {\n if (renderTarget._depthStencilTexture) {\n renderTarget._depthStencilTexture.dispose();\n }\n renderTarget._depthStencilTexture = this._depthStencilTexture;\n renderTarget._depthStencilTextureWithStencil = this._depthStencilTextureWithStencil;\n this._depthStencilTexture.incrementReferences();\n }\n }\n /**\n * @internal\n */\n _swapAndDie(target) {\n if (this.texture) {\n this.texture._swapAndDie(target);\n }\n this._textures = null;\n this.dispose(true);\n }\n _cloneRenderTargetWrapper() {\n let rtw = null;\n if (this._isMulti) {\n const textureArray = this.textures;\n if (textureArray && textureArray.length > 0) {\n let generateDepthTexture = false;\n let textureCount = textureArray.length;\n let depthTextureFormat = -1;\n const lastTextureSource = textureArray[textureArray.length - 1]._source;\n if (lastTextureSource === 14 /* InternalTextureSource.Depth */ || lastTextureSource === 12 /* InternalTextureSource.DepthStencil */) {\n generateDepthTexture = true;\n depthTextureFormat = textureArray[textureArray.length - 1].format;\n textureCount--;\n }\n const samplingModes = [];\n const types = [];\n const formats = [];\n const targetTypes = [];\n const faceIndex = [];\n const layerIndex = [];\n const layerCounts = [];\n const internalTexture2Index = {};\n for (let i = 0; i < textureCount; ++i) {\n const texture = textureArray[i];\n samplingModes.push(texture.samplingMode);\n types.push(texture.type);\n formats.push(texture.format);\n const index = internalTexture2Index[texture.uniqueId];\n if (index !== undefined) {\n targetTypes.push(-1);\n layerCounts.push(0);\n }\n else {\n internalTexture2Index[texture.uniqueId] = i;\n if (texture.is2DArray) {\n targetTypes.push(Constants.TEXTURE_2D_ARRAY);\n layerCounts.push(texture.depth);\n }\n else if (texture.isCube) {\n targetTypes.push(Constants.TEXTURE_CUBE_MAP);\n layerCounts.push(0);\n } /*else if (texture.isCubeArray) {\n targetTypes.push(Constants.TEXTURE_CUBE_MAP_ARRAY);\n layerCounts.push(texture.depth);\n }*/\n else if (texture.is3D) {\n targetTypes.push(Constants.TEXTURE_3D);\n layerCounts.push(texture.depth);\n }\n else {\n targetTypes.push(Constants.TEXTURE_2D);\n layerCounts.push(0);\n }\n }\n if (this._faceIndices) {\n faceIndex.push(this._faceIndices[i] ?? 0);\n }\n if (this._layerIndices) {\n layerIndex.push(this._layerIndices[i] ?? 0);\n }\n }\n const optionsMRT = {\n samplingModes,\n generateMipMaps: textureArray[0].generateMipMaps,\n generateDepthBuffer: this._generateDepthBuffer,\n generateStencilBuffer: this._generateStencilBuffer,\n generateDepthTexture,\n depthTextureFormat,\n types,\n formats,\n textureCount,\n targetTypes,\n faceIndex,\n layerIndex,\n layerCounts,\n label: this.label,\n };\n const size = {\n width: this.width,\n height: this.height,\n depth: this.depth,\n };\n rtw = this._engine.createMultipleRenderTarget(size, optionsMRT);\n for (let i = 0; i < textureCount; ++i) {\n if (targetTypes[i] !== -1) {\n continue;\n }\n const index = internalTexture2Index[textureArray[i].uniqueId];\n rtw.setTexture(rtw.textures[index], i);\n }\n }\n }\n else {\n const options = {};\n options.generateDepthBuffer = this._generateDepthBuffer;\n options.generateMipMaps = this.texture?.generateMipMaps ?? false;\n options.generateStencilBuffer = this._generateStencilBuffer;\n options.samplingMode = this.texture?.samplingMode;\n options.type = this.texture?.type;\n options.format = this.texture?.format;\n options.noColorAttachment = !this._textures;\n options.label = this.label;\n if (this.isCube) {\n rtw = this._engine.createRenderTargetCubeTexture(this.width, options);\n }\n else {\n const size = {\n width: this.width,\n height: this.height,\n layers: this.is2DArray || this.is3D ? this.texture?.depth : undefined,\n };\n rtw = this._engine.createRenderTargetTexture(size, options);\n }\n if (rtw.texture) {\n rtw.texture.isReady = true;\n }\n }\n return rtw;\n }\n _swapRenderTargetWrapper(target) {\n if (this._textures && target._textures) {\n for (let i = 0; i < this._textures.length; ++i) {\n this._textures[i]._swapAndDie(target._textures[i], false);\n target._textures[i].isReady = true;\n }\n }\n if (this._depthStencilTexture && target._depthStencilTexture) {\n this._depthStencilTexture._swapAndDie(target._depthStencilTexture);\n target._depthStencilTexture.isReady = true;\n }\n this._textures = null;\n this._depthStencilTexture = null;\n }\n /** @internal */\n _rebuild() {\n const rtw = this._cloneRenderTargetWrapper();\n if (!rtw) {\n return;\n }\n if (this._depthStencilTexture) {\n const samplingMode = this._depthStencilTexture.samplingMode;\n const format = this._depthStencilTexture.format;\n const bilinear = samplingMode === Constants.TEXTURE_BILINEAR_SAMPLINGMODE ||\n samplingMode === Constants.TEXTURE_TRILINEAR_SAMPLINGMODE ||\n samplingMode === Constants.TEXTURE_LINEAR_LINEAR_MIPNEAREST;\n rtw.createDepthStencilTexture(this._depthStencilTexture._comparisonFunction, bilinear, this._depthStencilTextureWithStencil, this._depthStencilTexture.samples, format, this._depthStencilTextureLabel);\n }\n if (this.samples > 1) {\n rtw.setSamples(this.samples);\n }\n rtw._swapRenderTargetWrapper(this);\n rtw.dispose();\n }\n /**\n * Releases the internal render textures\n */\n releaseTextures() {\n if (this._textures) {\n for (let i = 0; i < this._textures.length; ++i) {\n this._textures[i].dispose();\n }\n }\n this._textures = null;\n }\n /**\n * Disposes the whole render target wrapper\n * @param disposeOnlyFramebuffers true if only the frame buffers should be released (used for the WebGL engine). If false, all the textures will also be released\n */\n dispose(disposeOnlyFramebuffers = false) {\n if (!disposeOnlyFramebuffers) {\n this._depthStencilTexture?.dispose();\n this._depthStencilTexture = null;\n this.releaseTextures();\n }\n this._engine._releaseRenderTargetWrapper(this);\n }\n}\n//# sourceMappingURL=renderTargetWrapper.js.map","import { IsDocumentAvailable } from \"../Misc/domManagement\";\nimport { AbstractEngine } from \"./abstractEngine\";\nimport { EngineStore } from \"./engineStore\";\n/** @internal */\nfunction _DisableTouchAction(canvas) {\n if (!canvas || !canvas.setAttribute) {\n return;\n }\n canvas.setAttribute(\"touch-action\", \"none\");\n canvas.style.touchAction = \"none\";\n canvas.style.webkitTapHighlightColor = \"transparent\";\n}\n/** @internal */\nexport function _CommonInit(commonEngine, canvas, creationOptions) {\n commonEngine._onCanvasFocus = () => {\n commonEngine.onCanvasFocusObservable.notifyObservers(commonEngine);\n };\n commonEngine._onCanvasBlur = () => {\n commonEngine.onCanvasBlurObservable.notifyObservers(commonEngine);\n };\n commonEngine._onCanvasContextMenu = (evt) => {\n if (commonEngine.disableContextMenu) {\n evt.preventDefault();\n }\n };\n canvas.addEventListener(\"focus\", commonEngine._onCanvasFocus);\n canvas.addEventListener(\"blur\", commonEngine._onCanvasBlur);\n canvas.addEventListener(\"contextmenu\", commonEngine._onCanvasContextMenu);\n commonEngine._onBlur = () => {\n if (commonEngine.disablePerformanceMonitorInBackground) {\n commonEngine.performanceMonitor.disable();\n }\n commonEngine._windowIsBackground = true;\n };\n commonEngine._onFocus = () => {\n if (commonEngine.disablePerformanceMonitorInBackground) {\n commonEngine.performanceMonitor.enable();\n }\n commonEngine._windowIsBackground = false;\n };\n commonEngine._onCanvasPointerOut = (ev) => {\n // Check that the element at the point of the pointer out isn't the canvas and if it isn't, notify observers\n // Note: This is a workaround for a bug with Safari\n if (document.elementFromPoint(ev.clientX, ev.clientY) !== canvas) {\n commonEngine.onCanvasPointerOutObservable.notifyObservers(ev);\n }\n };\n const hostWindow = commonEngine.getHostWindow(); // it calls IsWindowObjectExist()\n if (hostWindow && typeof hostWindow.addEventListener === \"function\") {\n hostWindow.addEventListener(\"blur\", commonEngine._onBlur);\n hostWindow.addEventListener(\"focus\", commonEngine._onFocus);\n }\n canvas.addEventListener(\"pointerout\", commonEngine._onCanvasPointerOut);\n if (!creationOptions.doNotHandleTouchAction) {\n _DisableTouchAction(canvas);\n }\n // Create Audio Engine if needed.\n if (!AbstractEngine.audioEngine && creationOptions.audioEngine && AbstractEngine.AudioEngineFactory) {\n AbstractEngine.audioEngine = AbstractEngine.AudioEngineFactory(commonEngine.getRenderingCanvas(), commonEngine.getAudioContext(), commonEngine.getAudioDestination());\n }\n if (IsDocumentAvailable()) {\n // Fullscreen\n commonEngine._onFullscreenChange = () => {\n commonEngine.isFullscreen = !!document.fullscreenElement;\n // Pointer lock\n if (commonEngine.isFullscreen && commonEngine._pointerLockRequested && canvas) {\n RequestPointerlock(canvas);\n }\n };\n document.addEventListener(\"fullscreenchange\", commonEngine._onFullscreenChange, false);\n document.addEventListener(\"webkitfullscreenchange\", commonEngine._onFullscreenChange, false);\n // Pointer lock\n commonEngine._onPointerLockChange = () => {\n commonEngine.isPointerLock = document.pointerLockElement === canvas;\n };\n document.addEventListener(\"pointerlockchange\", commonEngine._onPointerLockChange, false);\n document.addEventListener(\"webkitpointerlockchange\", commonEngine._onPointerLockChange, false);\n }\n commonEngine.enableOfflineSupport = AbstractEngine.OfflineProviderFactory !== undefined;\n commonEngine._deterministicLockstep = !!creationOptions.deterministicLockstep;\n commonEngine._lockstepMaxSteps = creationOptions.lockstepMaxSteps || 0;\n commonEngine._timeStep = creationOptions.timeStep || 1 / 60;\n}\n/** @internal */\nexport function _CommonDispose(commonEngine, canvas) {\n // Release audio engine\n if (EngineStore.Instances.length === 1 && AbstractEngine.audioEngine) {\n AbstractEngine.audioEngine.dispose();\n AbstractEngine.audioEngine = null;\n }\n // Events\n const hostWindow = commonEngine.getHostWindow(); // it calls IsWindowObjectExist()\n if (hostWindow && typeof hostWindow.removeEventListener === \"function\") {\n hostWindow.removeEventListener(\"blur\", commonEngine._onBlur);\n hostWindow.removeEventListener(\"focus\", commonEngine._onFocus);\n }\n if (canvas) {\n canvas.removeEventListener(\"focus\", commonEngine._onCanvasFocus);\n canvas.removeEventListener(\"blur\", commonEngine._onCanvasBlur);\n canvas.removeEventListener(\"pointerout\", commonEngine._onCanvasPointerOut);\n canvas.removeEventListener(\"contextmenu\", commonEngine._onCanvasContextMenu);\n }\n if (IsDocumentAvailable()) {\n document.removeEventListener(\"fullscreenchange\", commonEngine._onFullscreenChange);\n document.removeEventListener(\"mozfullscreenchange\", commonEngine._onFullscreenChange);\n document.removeEventListener(\"webkitfullscreenchange\", commonEngine._onFullscreenChange);\n document.removeEventListener(\"msfullscreenchange\", commonEngine._onFullscreenChange);\n document.removeEventListener(\"pointerlockchange\", commonEngine._onPointerLockChange);\n document.removeEventListener(\"mspointerlockchange\", commonEngine._onPointerLockChange);\n document.removeEventListener(\"mozpointerlockchange\", commonEngine._onPointerLockChange);\n document.removeEventListener(\"webkitpointerlockchange\", commonEngine._onPointerLockChange);\n }\n}\n/**\n * Get Font size information\n * @param font font name\n * @returns an object containing ascent, height and descent\n */\nexport function GetFontOffset(font) {\n const text = document.createElement(\"span\");\n text.textContent = \"Hg\";\n text.style.font = font;\n const block = document.createElement(\"div\");\n block.style.display = \"inline-block\";\n block.style.width = \"1px\";\n block.style.height = \"0px\";\n block.style.verticalAlign = \"bottom\";\n const div = document.createElement(\"div\");\n div.style.whiteSpace = \"nowrap\";\n div.appendChild(text);\n div.appendChild(block);\n document.body.appendChild(div);\n let fontAscent = 0;\n let fontHeight = 0;\n try {\n fontHeight = block.getBoundingClientRect().top - text.getBoundingClientRect().top;\n block.style.verticalAlign = \"baseline\";\n fontAscent = block.getBoundingClientRect().top - text.getBoundingClientRect().top;\n }\n finally {\n document.body.removeChild(div);\n }\n return { ascent: fontAscent, height: fontHeight, descent: fontHeight - fontAscent };\n}\n/** @internal */\nexport function CreateImageBitmapFromSource(engine, imageSource, options) {\n const promise = new Promise((resolve, reject) => {\n const image = new Image();\n image.onload = () => {\n image.decode().then(() => {\n engine.createImageBitmap(image, options).then((imageBitmap) => {\n resolve(imageBitmap);\n });\n });\n };\n image.onerror = () => {\n reject(`Error loading image ${image.src}`);\n };\n image.src = imageSource;\n });\n return promise;\n}\n/** @internal */\nexport function ResizeImageBitmap(engine, image, bufferWidth, bufferHeight) {\n const canvas = engine.createCanvas(bufferWidth, bufferHeight);\n const context = canvas.getContext(\"2d\");\n if (!context) {\n throw new Error(\"Unable to get 2d context for resizeImageBitmap\");\n }\n context.drawImage(image, 0, 0);\n // Create VertexData from map data\n // Cast is due to wrong definition in lib.d.ts from ts 1.3 - https://github.com/Microsoft/TypeScript/issues/949\n const buffer = context.getImageData(0, 0, bufferWidth, bufferHeight).data;\n return buffer;\n}\n/**\n * Ask the browser to promote the current element to fullscreen rendering mode\n * @param element defines the DOM element to promote\n */\nexport function RequestFullscreen(element) {\n const requestFunction = element.requestFullscreen || element.webkitRequestFullscreen;\n if (!requestFunction) {\n return;\n }\n requestFunction.call(element);\n}\n/**\n * Asks the browser to exit fullscreen mode\n */\nexport function ExitFullscreen() {\n const anyDoc = document;\n if (document.exitFullscreen) {\n document.exitFullscreen();\n }\n else if (anyDoc.webkitCancelFullScreen) {\n anyDoc.webkitCancelFullScreen();\n }\n}\n/**\n * Ask the browser to promote the current element to pointerlock mode\n * @param element defines the DOM element to promote\n */\nexport function RequestPointerlock(element) {\n if (element.requestPointerLock) {\n // In some browsers, requestPointerLock returns a promise.\n // Handle possible rejections to avoid an unhandled top-level exception.\n const promise = element.requestPointerLock();\n if (promise instanceof Promise)\n promise\n .then(() => {\n element.focus();\n })\n .catch(() => { });\n else\n element.focus();\n }\n}\n/**\n * Asks the browser to exit pointerlock mode\n */\nexport function ExitPointerlock() {\n if (document.exitPointerLock) {\n document.exitPointerLock();\n }\n}\n//# sourceMappingURL=engine.common.js.map","import { AbstractEngine } from \"../abstractEngine\";\nAbstractEngine.prototype.createDepthStencilTexture = function (size, options, rtWrapper) {\n if (options.isCube) {\n const width = size.width || size;\n return this._createDepthStencilCubeTexture(width, options);\n }\n else {\n return this._createDepthStencilTexture(size, options, rtWrapper);\n }\n};\n//# sourceMappingURL=abstractEngine.texture.js.map","import { IsWindowObjectExist } from \"../../Misc/domManagement\";\nimport { AbstractEngine } from \"../abstractEngine\";\nAbstractEngine.prototype.displayLoadingUI = function () {\n if (!IsWindowObjectExist()) {\n return;\n }\n const loadingScreen = this.loadingScreen;\n if (loadingScreen) {\n loadingScreen.displayLoadingUI();\n }\n};\nAbstractEngine.prototype.hideLoadingUI = function () {\n if (!IsWindowObjectExist()) {\n return;\n }\n const loadingScreen = this._loadingScreen;\n if (loadingScreen) {\n loadingScreen.hideLoadingUI();\n }\n};\nObject.defineProperty(AbstractEngine.prototype, \"loadingScreen\", {\n get: function () {\n if (!this._loadingScreen && this._renderingCanvas) {\n this._loadingScreen = AbstractEngine.DefaultLoadingScreenFactory(this._renderingCanvas);\n }\n return this._loadingScreen;\n },\n set: function (value) {\n this._loadingScreen = value;\n },\n enumerable: true,\n configurable: true,\n});\nObject.defineProperty(AbstractEngine.prototype, \"loadingUIText\", {\n set: function (value) {\n this.loadingScreen.loadingUIText = value;\n },\n enumerable: true,\n configurable: true,\n});\nObject.defineProperty(AbstractEngine.prototype, \"loadingUIBackgroundColor\", {\n set: function (value) {\n this.loadingScreen.loadingUIBackgroundColor = value;\n },\n enumerable: true,\n configurable: true,\n});\n//# sourceMappingURL=abstractEngine.loadingScreen.js.map","import { AbstractEngine } from \"../abstractEngine\";\nAbstractEngine.prototype.getInputElement = function () {\n return this._renderingCanvas;\n};\nAbstractEngine.prototype.getRenderingCanvasClientRect = function () {\n if (!this._renderingCanvas) {\n return null;\n }\n return this._renderingCanvas.getBoundingClientRect();\n};\nAbstractEngine.prototype.getInputElementClientRect = function () {\n if (!this._renderingCanvas) {\n return null;\n }\n return this.getInputElement().getBoundingClientRect();\n};\nAbstractEngine.prototype.getAspectRatio = function (viewportOwner, useScreen = false) {\n const viewport = viewportOwner.viewport;\n return (this.getRenderWidth(useScreen) * viewport.width) / (this.getRenderHeight(useScreen) * viewport.height);\n};\nAbstractEngine.prototype.getScreenAspectRatio = function () {\n return this.getRenderWidth(true) / this.getRenderHeight(true);\n};\nAbstractEngine.prototype._verifyPointerLock = function () {\n this._onPointerLockChange?.();\n};\n//# sourceMappingURL=abstractEngine.dom.js.map","import { AbstractEngine } from \"../abstractEngine\";\nimport { Constants } from \"../constants\";\nAbstractEngine.prototype.setAlphaEquation = function (equation) {\n if (this._alphaEquation === equation) {\n return;\n }\n switch (equation) {\n case Constants.ALPHA_EQUATION_ADD:\n this._alphaState.setAlphaEquationParameters(Constants.GL_ALPHA_EQUATION_ADD, Constants.GL_ALPHA_EQUATION_ADD);\n break;\n case Constants.ALPHA_EQUATION_SUBSTRACT:\n this._alphaState.setAlphaEquationParameters(Constants.GL_ALPHA_EQUATION_SUBTRACT, Constants.GL_ALPHA_EQUATION_SUBTRACT);\n break;\n case Constants.ALPHA_EQUATION_REVERSE_SUBTRACT:\n this._alphaState.setAlphaEquationParameters(Constants.GL_ALPHA_EQUATION_REVERSE_SUBTRACT, Constants.GL_ALPHA_EQUATION_REVERSE_SUBTRACT);\n break;\n case Constants.ALPHA_EQUATION_MAX:\n this._alphaState.setAlphaEquationParameters(Constants.GL_ALPHA_EQUATION_MAX, Constants.GL_ALPHA_EQUATION_MAX);\n break;\n case Constants.ALPHA_EQUATION_MIN:\n this._alphaState.setAlphaEquationParameters(Constants.GL_ALPHA_EQUATION_MIN, Constants.GL_ALPHA_EQUATION_MIN);\n break;\n case Constants.ALPHA_EQUATION_DARKEN:\n this._alphaState.setAlphaEquationParameters(Constants.GL_ALPHA_EQUATION_MIN, Constants.GL_ALPHA_EQUATION_ADD);\n break;\n }\n this._alphaEquation = equation;\n};\n//# sourceMappingURL=abstractEngine.alpha.js.map","import { AbstractEngine } from \"../abstractEngine\";\nimport { Constants } from \"../constants\";\nimport \"./abstractEngine.alpha\";\nAbstractEngine.prototype.getInputElement = function () {\n return this._renderingCanvas;\n};\nAbstractEngine.prototype.getDepthFunction = function () {\n return this._depthCullingState.depthFunc;\n};\nAbstractEngine.prototype.setDepthFunction = function (depthFunc) {\n this._depthCullingState.depthFunc = depthFunc;\n};\nAbstractEngine.prototype.setDepthFunctionToGreater = function () {\n this.setDepthFunction(Constants.GREATER);\n};\nAbstractEngine.prototype.setDepthFunctionToGreaterOrEqual = function () {\n this.setDepthFunction(Constants.GEQUAL);\n};\nAbstractEngine.prototype.setDepthFunctionToLess = function () {\n this.setDepthFunction(Constants.LESS);\n};\nAbstractEngine.prototype.setDepthFunctionToLessOrEqual = function () {\n this.setDepthFunction(Constants.LEQUAL);\n};\nAbstractEngine.prototype.getDepthWrite = function () {\n return this._depthCullingState.depthMask;\n};\nAbstractEngine.prototype.setDepthWrite = function (enable) {\n this._depthCullingState.depthMask = enable;\n};\nAbstractEngine.prototype.getStencilBuffer = function () {\n return this._stencilState.stencilTest;\n};\nAbstractEngine.prototype.setStencilBuffer = function (enable) {\n this._stencilState.stencilTest = enable;\n};\nAbstractEngine.prototype.getStencilMask = function () {\n return this._stencilState.stencilMask;\n};\nAbstractEngine.prototype.setStencilMask = function (mask) {\n this._stencilState.stencilMask = mask;\n};\nAbstractEngine.prototype.getStencilFunction = function () {\n return this._stencilState.stencilFunc;\n};\nAbstractEngine.prototype.getStencilFunctionReference = function () {\n return this._stencilState.stencilFuncRef;\n};\nAbstractEngine.prototype.getStencilFunctionMask = function () {\n return this._stencilState.stencilFuncMask;\n};\nAbstractEngine.prototype.setStencilFunction = function (stencilFunc) {\n this._stencilState.stencilFunc = stencilFunc;\n};\nAbstractEngine.prototype.setStencilFunctionReference = function (reference) {\n this._stencilState.stencilFuncRef = reference;\n};\nAbstractEngine.prototype.setStencilFunctionMask = function (mask) {\n this._stencilState.stencilFuncMask = mask;\n};\nAbstractEngine.prototype.getStencilOperationFail = function () {\n return this._stencilState.stencilOpStencilFail;\n};\nAbstractEngine.prototype.getStencilOperationDepthFail = function () {\n return this._stencilState.stencilOpDepthFail;\n};\nAbstractEngine.prototype.getStencilOperationPass = function () {\n return this._stencilState.stencilOpStencilDepthPass;\n};\nAbstractEngine.prototype.setStencilOperationFail = function (operation) {\n this._stencilState.stencilOpStencilFail = operation;\n};\nAbstractEngine.prototype.setStencilOperationDepthFail = function (operation) {\n this._stencilState.stencilOpDepthFail = operation;\n};\nAbstractEngine.prototype.setStencilOperationPass = function (operation) {\n this._stencilState.stencilOpStencilDepthPass = operation;\n};\nAbstractEngine.prototype.cacheStencilState = function () {\n this._cachedStencilBuffer = this.getStencilBuffer();\n this._cachedStencilFunction = this.getStencilFunction();\n this._cachedStencilMask = this.getStencilMask();\n this._cachedStencilOperationPass = this.getStencilOperationPass();\n this._cachedStencilOperationFail = this.getStencilOperationFail();\n this._cachedStencilOperationDepthFail = this.getStencilOperationDepthFail();\n this._cachedStencilReference = this.getStencilFunctionReference();\n};\nAbstractEngine.prototype.restoreStencilState = function () {\n this.setStencilFunction(this._cachedStencilFunction);\n this.setStencilMask(this._cachedStencilMask);\n this.setStencilBuffer(this._cachedStencilBuffer);\n this.setStencilOperationPass(this._cachedStencilOperationPass);\n this.setStencilOperationFail(this._cachedStencilOperationFail);\n this.setStencilOperationDepthFail(this._cachedStencilOperationDepthFail);\n this.setStencilFunctionReference(this._cachedStencilReference);\n};\nAbstractEngine.prototype.setAlphaConstants = function (r, g, b, a) {\n this._alphaState.setAlphaBlendConstants(r, g, b, a);\n};\nAbstractEngine.prototype.getAlphaMode = function () {\n return this._alphaMode;\n};\nAbstractEngine.prototype.getAlphaEquation = function () {\n return this._alphaEquation;\n};\n//# sourceMappingURL=abstractEngine.states.js.map","import { AbstractEngine } from \"../abstractEngine\";\nAbstractEngine.prototype.getRenderPassNames = function () {\n return this._renderPassNames;\n};\nAbstractEngine.prototype.getCurrentRenderPassName = function () {\n return this._renderPassNames[this.currentRenderPassId];\n};\nAbstractEngine.prototype.createRenderPassId = function (name) {\n // Note: render pass id == 0 is always for the main render pass\n const id = ++AbstractEngine._RenderPassIdCounter;\n this._renderPassNames[id] = name ?? \"NONAME\";\n return id;\n};\nAbstractEngine.prototype.releaseRenderPassId = function (id) {\n this._renderPassNames[id] = undefined;\n for (let s = 0; s < this.scenes.length; ++s) {\n const scene = this.scenes[s];\n for (let m = 0; m < scene.meshes.length; ++m) {\n const mesh = scene.meshes[m];\n if (mesh.subMeshes) {\n for (let b = 0; b < mesh.subMeshes.length; ++b) {\n const subMesh = mesh.subMeshes[b];\n subMesh._removeDrawWrapper(id);\n }\n }\n }\n }\n};\n//# sourceMappingURL=abstractEngine.renderPass.js.map"],"names":["PerformanceMonitor","constructor","frameSampleSize","this","_enabled","_rollingFrameTime","RollingAverage","sampleFrame","timeMs","PrecisionDate","Now","_lastFrameTimeMs","dt","add","averageFrameTime","average","averageFrameTimeVariance","variance","instantaneousFrameTime","history","averageFPS","instantaneousFPS","isSaturated","enable","disable","isEnabled","reset","length","_samples","Array","v","delta","bottomValue","_pos","_sampleCount","_m2","i","i0","_wrapPosition","max","RenderTargetWrapper","depthStencilTexture","_depthStencilTexture","setDepthStencilTexture","texture","disposeExisting","dispose","_generateDepthBuffer","_generateStencilBuffer","HasStencilAspect","format","depthStencilTextureWithStencil","_depthStencilTextureWithStencil","isCube","_isCube","isMulti","_isMulti","is2DArray","layers","is3D","depth","size","width","_size","height","_textures","textures","faceIndices","_faceIndices","layerIndices","_layerIndices","getBaseArrayLayer","index","layerIndex","faceIndex","samples","setSamples","value","initializeBuffers","force","result","_engine","updateMultipleRenderTargetTextureSampleCount","updateRenderTargetTextureSampleCount","resolveMSAATextures","resolveMultiFramebuffer","resolveFramebuffer","generateMipMaps","_currentRenderTarget","unBindFramebuffer","generateMipMapsMultiFramebuffer","generateMipMapsFramebuffer","engine","label","_attachments","disableAutomaticMSAAResolve","resolveMSAAColors","resolveMSAADepth","resolveMSAAStencil","setTextures","isArray","setTexture","disposePrevious","setLayerAndFaceIndices","faces","setLayerAndFaceIndex","layer","face","undefined","createDepthStencilTexture","comparisonFunction","bilinearFiltering","generateStencil","Constants","TEXTUREFORMAT_DEPTH32_FLOAT","_depthStencilTextureLabel","depthTextureFormat","_shareDepth","renderTarget","shareDepth","incrementReferences","_swapAndDie","target","_cloneRenderTargetWrapper","rtw","textureArray","generateDepthTexture","textureCount","lastTextureSource","_source","samplingModes","types","formats","targetTypes","layerCounts","internalTexture2Index","push","samplingMode","type","uniqueId","TEXTURE_2D_ARRAY","TEXTURE_CUBE_MAP","TEXTURE_3D","TEXTURE_2D","optionsMRT","generateDepthBuffer","generateStencilBuffer","createMultipleRenderTarget","options","noColorAttachment","createRenderTargetCubeTexture","createRenderTargetTexture","isReady","_swapRenderTargetWrapper","_rebuild","bilinear","TEXTURE_BILINEAR_SAMPLINGMODE","TEXTURE_TRILINEAR_SAMPLINGMODE","TEXTURE_LINEAR_LINEAR_MIPNEAREST","_comparisonFunction","releaseTextures","disposeOnlyFramebuffers","_releaseRenderTargetWrapper","_CommonInit","commonEngine","canvas","creationOptions","_onCanvasFocus","onCanvasFocusObservable","notifyObservers","_onCanvasBlur","onCanvasBlurObservable","_onCanvasContextMenu","evt","disableContextMenu","preventDefault","addEventListener","_onBlur","disablePerformanceMonitorInBackground","performanceMonitor","_windowIsBackground","_onFocus","_onCanvasPointerOut","ev","document","elementFromPoint","clientX","clientY","onCanvasPointerOutObservable","hostWindow","getHostWindow","doNotHandleTouchAction","setAttribute","style","touchAction","webkitTapHighlightColor","_DisableTouchAction","AbstractEngine","audioEngine","AudioEngineFactory","getRenderingCanvas","getAudioContext","getAudioDestination","IsDocumentAvailable","_onFullscreenChange","isFullscreen","fullscreenElement","_pointerLockRequested","RequestPointerlock","_onPointerLockChange","isPointerLock","pointerLockElement","enableOfflineSupport","OfflineProviderFactory","_deterministicLockstep","deterministicLockstep","_lockstepMaxSteps","lockstepMaxSteps","_timeStep","timeStep","_CommonDispose","EngineStore","Instances","removeEventListener","GetFontOffset","font","text","createElement","textContent","block","display","verticalAlign","div","whiteSpace","appendChild","body","fontAscent","fontHeight","getBoundingClientRect","top","removeChild","ascent","descent","CreateImageBitmapFromSource","imageSource","Promise","resolve","reject","image","Image","onload","decode","then","createImageBitmap","imageBitmap","onerror","src","ResizeImageBitmap","bufferWidth","bufferHeight","context","createCanvas","getContext","Error","drawImage","getImageData","data","RequestFullscreen","element","requestFunction","requestFullscreen","webkitRequestFullscreen","call","ExitFullscreen","anyDoc","exitFullscreen","webkitCancelFullScreen","requestPointerLock","promise","focus","catch","ExitPointerlock","exitPointerLock","prototype","rtWrapper","_createDepthStencilCubeTexture","_createDepthStencilTexture","displayLoadingUI","IsWindowObjectExist","loadingScreen","hideLoadingUI","_loadingScreen","Object","defineProperty","get","_renderingCanvas","DefaultLoadingScreenFactory","set","enumerable","configurable","loadingUIText","loadingUIBackgroundColor","getInputElement","getRenderingCanvasClientRect","getInputElementClientRect","getAspectRatio","viewportOwner","useScreen","viewport","getRenderWidth","getRenderHeight","getScreenAspectRatio","_verifyPointerLock","setAlphaEquation","equation","_alphaEquation","ALPHA_EQUATION_ADD","_alphaState","setAlphaEquationParameters","GL_ALPHA_EQUATION_ADD","ALPHA_EQUATION_SUBSTRACT","GL_ALPHA_EQUATION_SUBTRACT","ALPHA_EQUATION_REVERSE_SUBTRACT","GL_ALPHA_EQUATION_REVERSE_SUBTRACT","ALPHA_EQUATION_MAX","GL_ALPHA_EQUATION_MAX","ALPHA_EQUATION_MIN","GL_ALPHA_EQUATION_MIN","ALPHA_EQUATION_DARKEN","getDepthFunction","_depthCullingState","depthFunc","setDepthFunction","setDepthFunctionToGreater","GREATER","setDepthFunctionToGreaterOrEqual","GEQUAL","setDepthFunctionToLess","LESS","setDepthFunctionToLessOrEqual","LEQUAL","getDepthWrite","depthMask","setDepthWrite","getStencilBuffer","_stencilState","stencilTest","setStencilBuffer","getStencilMask","stencilMask","setStencilMask","mask","getStencilFunction","stencilFunc","getStencilFunctionReference","stencilFuncRef","getStencilFunctionMask","stencilFuncMask","setStencilFunction","setStencilFunctionReference","reference","setStencilFunctionMask","getStencilOperationFail","stencilOpStencilFail","getStencilOperationDepthFail","stencilOpDepthFail","getStencilOperationPass","stencilOpStencilDepthPass","setStencilOperationFail","operation","setStencilOperationDepthFail","setStencilOperationPass","cacheStencilState","_cachedStencilBuffer","_cachedStencilFunction","_cachedStencilMask","_cachedStencilOperationPass","_cachedStencilOperationFail","_cachedStencilOperationDepthFail","_cachedStencilReference","restoreStencilState","setAlphaConstants","r","g","b","a","setAlphaBlendConstants","getAlphaMode","_alphaMode","getAlphaEquation","getRenderPassNames","_renderPassNames","getCurrentRenderPassName","currentRenderPassId","createRenderPassId","name","id","_RenderPassIdCounter","releaseRenderPassId","s","scenes","scene","m","meshes","mesh","subMeshes","_removeDrawWrapper"],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import { G as GetEnvInfo, U as UploadEnvSpherical, a as UploadEnvLevelsAsync } from './environmentTextureTools-DvkpsqkN.esm.js';
2
+ import './index-C6hXZyZb.esm.js';
3
+ import './dumpTools-Bhux0wvM.esm.js';
4
+
5
+ /**
6
+ * Implementation of the ENV Texture Loader.
7
+ * @internal
8
+ */
9
+ // eslint-disable-next-line @typescript-eslint/naming-convention
10
+ class _ENVTextureLoader {
11
+ constructor() {
12
+ /**
13
+ * Defines whether the loader supports cascade loading the different faces.
14
+ */
15
+ this.supportCascades = false;
16
+ }
17
+ /**
18
+ * Uploads the cube texture data to the WebGL texture. It has already been bound.
19
+ * @param data contains the texture data
20
+ * @param texture defines the BabylonJS internal texture
21
+ * @param createPolynomials will be true if polynomials have been requested
22
+ * @param onLoad defines the callback to trigger once the texture is ready
23
+ * @param onError defines the callback to trigger in case of error
24
+ */
25
+ loadCubeData(data, texture, createPolynomials, onLoad, onError) {
26
+ if (Array.isArray(data)) {
27
+ return;
28
+ }
29
+ const info = GetEnvInfo(data);
30
+ if (info) {
31
+ texture.width = info.width;
32
+ texture.height = info.width;
33
+ try {
34
+ UploadEnvSpherical(texture, info);
35
+ UploadEnvLevelsAsync(texture, data, info).then(() => {
36
+ texture.isReady = true;
37
+ texture.onLoadedObservable.notifyObservers(texture);
38
+ texture.onLoadedObservable.clear();
39
+ if (onLoad) {
40
+ onLoad();
41
+ }
42
+ }, (reason) => {
43
+ onError?.("Can not upload environment levels", reason);
44
+ });
45
+ }
46
+ catch (e) {
47
+ onError?.("Can not upload environment file", e);
48
+ }
49
+ }
50
+ else if (onError) {
51
+ onError("Can not parse the environment file", null);
52
+ }
53
+ }
54
+ /**
55
+ * Uploads the 2D texture data to the WebGL texture. It has already been bound once in the callback.
56
+ */
57
+ loadData() {
58
+ // eslint-disable-next-line no-throw-literal
59
+ throw ".env not supported in 2d.";
60
+ }
61
+ }
62
+
63
+ export { _ENVTextureLoader };
64
+ //# sourceMappingURL=envTextureLoader-4YxGm-Px.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"envTextureLoader-4YxGm-Px.esm.js","sources":["../../../../../dev/core/dist/Materials/Textures/Loaders/envTextureLoader.js"],"sourcesContent":["import { GetEnvInfo, UploadEnvLevelsAsync, UploadEnvSpherical } from \"../../../Misc/environmentTextureTools\";\n/**\n * Implementation of the ENV Texture Loader.\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class _ENVTextureLoader {\n constructor() {\n /**\n * Defines whether the loader supports cascade loading the different faces.\n */\n this.supportCascades = false;\n }\n /**\n * Uploads the cube texture data to the WebGL texture. It has already been bound.\n * @param data contains the texture data\n * @param texture defines the BabylonJS internal texture\n * @param createPolynomials will be true if polynomials have been requested\n * @param onLoad defines the callback to trigger once the texture is ready\n * @param onError defines the callback to trigger in case of error\n */\n loadCubeData(data, texture, createPolynomials, onLoad, onError) {\n if (Array.isArray(data)) {\n return;\n }\n const info = GetEnvInfo(data);\n if (info) {\n texture.width = info.width;\n texture.height = info.width;\n try {\n UploadEnvSpherical(texture, info);\n UploadEnvLevelsAsync(texture, data, info).then(() => {\n texture.isReady = true;\n texture.onLoadedObservable.notifyObservers(texture);\n texture.onLoadedObservable.clear();\n if (onLoad) {\n onLoad();\n }\n }, (reason) => {\n onError?.(\"Can not upload environment levels\", reason);\n });\n }\n catch (e) {\n onError?.(\"Can not upload environment file\", e);\n }\n }\n else if (onError) {\n onError(\"Can not parse the environment file\", null);\n }\n }\n /**\n * Uploads the 2D texture data to the WebGL texture. It has already been bound once in the callback.\n */\n loadData() {\n // eslint-disable-next-line no-throw-literal\n throw \".env not supported in 2d.\";\n }\n}\n//# sourceMappingURL=envTextureLoader.js.map"],"names":[],"mappings":";;;;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,iBAAiB,CAAC;AAC/B,IAAI,WAAW,GAAG;AAClB;AACA;AACA;AACA,QAAQ,IAAI,CAAC,eAAe,GAAG,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,OAAO,EAAE;AACpE,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACjC,YAAY;AACZ;AACA,QAAQ,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;AACrC,QAAQ,IAAI,IAAI,EAAE;AAClB,YAAY,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;AACtC,YAAY,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK;AACvC,YAAY,IAAI;AAChB,gBAAgB,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC;AACjD,gBAAgB,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM;AACrE,oBAAoB,OAAO,CAAC,OAAO,GAAG,IAAI;AAC1C,oBAAoB,OAAO,CAAC,kBAAkB,CAAC,eAAe,CAAC,OAAO,CAAC;AACvE,oBAAoB,OAAO,CAAC,kBAAkB,CAAC,KAAK,EAAE;AACtD,oBAAoB,IAAI,MAAM,EAAE;AAChC,wBAAwB,MAAM,EAAE;AAChC;AACA,iBAAiB,EAAE,CAAC,MAAM,KAAK;AAC/B,oBAAoB,OAAO,GAAG,mCAAmC,EAAE,MAAM,CAAC;AAC1E,iBAAiB,CAAC;AAClB;AACA,YAAY,OAAO,CAAC,EAAE;AACtB,gBAAgB,OAAO,GAAG,iCAAiC,EAAE,CAAC,CAAC;AAC/D;AACA;AACA,aAAa,IAAI,OAAO,EAAE;AAC1B,YAAY,OAAO,CAAC,oCAAoC,EAAE,IAAI,CAAC;AAC/D;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG;AACf;AACA,QAAQ,MAAM,2BAA2B;AACzC;AACA;;;;"}
@@ -0,0 +1,2 @@
1
+ import{G as e,U as n,a as o}from"./environmentTextureTools-BPGrTBPI.esm.min.js";import"./index-rZVkfTE6.esm.min.js";import"./dumpTools-CHCb2UkY.esm.min.js";class t{constructor(){this.supportCascades=!1}loadCubeData(t,s,a,r,i){if(Array.isArray(t))return;const d=e(t);if(d){s.width=d.width,s.height=d.width;try{n(s,d),o(s,t,d).then((()=>{s.isReady=!0,s.onLoadedObservable.notifyObservers(s),s.onLoadedObservable.clear(),r&&r()}),(e=>{i?.("Can not upload environment levels",e)}))}catch(e){i?.("Can not upload environment file",e)}}else i&&i("Can not parse the environment file",null)}loadData(){throw".env not supported in 2d."}}export{t as _ENVTextureLoader};
2
+ //# sourceMappingURL=envTextureLoader-DMQui088.esm.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"envTextureLoader-DMQui088.esm.min.js","sources":["../../../../../dev/core/dist/Materials/Textures/Loaders/envTextureLoader.js"],"sourcesContent":["import { GetEnvInfo, UploadEnvLevelsAsync, UploadEnvSpherical } from \"../../../Misc/environmentTextureTools\";\n/**\n * Implementation of the ENV Texture Loader.\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class _ENVTextureLoader {\n constructor() {\n /**\n * Defines whether the loader supports cascade loading the different faces.\n */\n this.supportCascades = false;\n }\n /**\n * Uploads the cube texture data to the WebGL texture. It has already been bound.\n * @param data contains the texture data\n * @param texture defines the BabylonJS internal texture\n * @param createPolynomials will be true if polynomials have been requested\n * @param onLoad defines the callback to trigger once the texture is ready\n * @param onError defines the callback to trigger in case of error\n */\n loadCubeData(data, texture, createPolynomials, onLoad, onError) {\n if (Array.isArray(data)) {\n return;\n }\n const info = GetEnvInfo(data);\n if (info) {\n texture.width = info.width;\n texture.height = info.width;\n try {\n UploadEnvSpherical(texture, info);\n UploadEnvLevelsAsync(texture, data, info).then(() => {\n texture.isReady = true;\n texture.onLoadedObservable.notifyObservers(texture);\n texture.onLoadedObservable.clear();\n if (onLoad) {\n onLoad();\n }\n }, (reason) => {\n onError?.(\"Can not upload environment levels\", reason);\n });\n }\n catch (e) {\n onError?.(\"Can not upload environment file\", e);\n }\n }\n else if (onError) {\n onError(\"Can not parse the environment file\", null);\n }\n }\n /**\n * Uploads the 2D texture data to the WebGL texture. It has already been bound once in the callback.\n */\n loadData() {\n // eslint-disable-next-line no-throw-literal\n throw \".env not supported in 2d.\";\n }\n}\n//# sourceMappingURL=envTextureLoader.js.map"],"names":["_ENVTextureLoader","constructor","this","supportCascades","loadCubeData","data","texture","createPolynomials","onLoad","onError","Array","isArray","info","GetEnvInfo","width","height","UploadEnvSpherical","UploadEnvLevelsAsync","then","isReady","onLoadedObservable","notifyObservers","clear","reason","e","loadData"],"mappings":"4JAMO,MAAMA,EACT,WAAAC,GAIIC,KAAKC,iBAAkB,CAC/B,CASI,YAAAC,CAAaC,EAAMC,EAASC,EAAmBC,EAAQC,GACnD,GAAIC,MAAMC,QAAQN,GACd,OAEJ,MAAMO,EAAOC,EAAWR,GACxB,GAAIO,EAAM,CACNN,EAAQQ,MAAQF,EAAKE,MACrBR,EAAQS,OAASH,EAAKE,MACtB,IACIE,EAAmBV,EAASM,GAC5BK,EAAqBX,EAASD,EAAMO,GAAMM,MAAK,KAC3CZ,EAAQa,SAAU,EAClBb,EAAQc,mBAAmBC,gBAAgBf,GAC3CA,EAAQc,mBAAmBE,QACvBd,GACAA,GACxB,IACoBe,IACAd,IAAU,oCAAqCc,EAAO,GAE1E,CACY,MAAOC,GACHf,IAAU,kCAAmCe,EAC7D,CACA,MACiBf,GACLA,EAAQ,qCAAsC,KAE1D,CAII,QAAAgB,GAEI,KAAM,2BACd"}
@@ -0,0 +1,2 @@
1
+ import{L as e,T as t,c as r,C as n,by as o,I as a,B as i,S as s,v as l}from"./index-rZVkfTE6.esm.min.js";import"./dumpTools-CHCb2UkY.esm.min.js";const u="image/png",p=[134,22,135,150,246,214,150,54];function c(t){const r=new DataView(t.buffer,t.byteOffset,t.byteLength);let n=0;for(let t=0;t<p.length;t++)if(r.getUint8(n++)!==p[t])return e.Error("Not a babylon environment map"),null;let o="",a=0;for(;a=r.getUint8(n++);)o+=String.fromCharCode(a);let i=JSON.parse(o);return i=T(i),i.specular&&(i.specular.specularDataPosition=n,i.specular.lodGenerationScale=i.specular.lodGenerationScale||.8),i}function T(e){if(e.version>2)throw new Error(`Unsupported babylon environment map version "${e.version}". Latest supported version is "2".`);return 2===e.version?e:e={...e,version:2,imageType:u}}function d(e,t,r){const n=(r=T(r)).specular;if(!n)return Promise.resolve();e._lodGenerationScale=n.lodGenerationScale;const o=function(e,t){const r=(t=T(t)).specular;let n=Math.log2(t.width);if(n=Math.round(n)+1,r.mipmaps.length!==6*n)throw new Error(`Unsupported specular mipmaps number "${r.mipmaps.length}"`);const o=new Array(n);for(let t=0;t<n;t++){o[t]=new Array(6);for(let n=0;n<6;n++){const a=r.mipmaps[6*t+n];o[t][n]=new Uint8Array(e.buffer,e.byteOffset+r.specularDataPosition+a.position,a.length)}}return o}(t,r);return m(e,o,r.imageType)}function f(e,t,r,o,a,i,s,l,u,p,c){return new Promise(((T,d)=>{if(r){const r=t.createTexture(null,!0,!0,null,n.TEXTURE_NEAREST_SAMPLINGMODE,null,(e=>{d(e)}),e);o?.onEffectCreatedObservable.addOnce((n=>{n.executeWhenCompiled((()=>{o.externalTextureSamplerBinding=!0,o.onApply=n=>{n._bindTexture("textureSampler",r),n.setFloat2("scale",1,t._features.needsInvertingBitmap&&e instanceof ImageBitmap?-1:1)},t.scenes.length&&(t.scenes[0].postProcessManager.directRender([o],p,!0,i,s),t.restoreDefaultFramebuffer(),r.dispose(),URL.revokeObjectURL(a),T())}))}))}else{if(t._uploadImageToTexture(c,e,i,s),l){const r=u[s];r&&t._uploadImageToTexture(r._texture,e,i,0)}T()}}))}async function m(e,s,l=u){if(!t.IsExponentOfTwo(e.width))throw new Error("Texture size must be a power of two");const p=r(e.width)+1,c=e.getEngine();let T=!1,d=!1,m=null,_=null,y=null;const g=c.getCaps();e.format=n.TEXTUREFORMAT_RGBA,e.type=n.TEXTURETYPE_UNSIGNED_INT,e.generateMipMaps=!0,e._cachedAnisotropicFilteringLevel=null,c.updateTextureSamplingMode(n.TEXTURE_TRILINEAR_SAMPLINGMODE,e),g.textureLOD?c._features.supportRenderAndCopyToLodForFloatTextures?g.textureHalfFloatRender&&g.textureHalfFloatLinearFiltering?(T=!0,e.type=n.TEXTURETYPE_HALF_FLOAT):g.textureFloatRender&&g.textureFloatLinearFiltering&&(T=!0,e.type=n.TEXTURETYPE_FLOAT):T=!1:(T=!1,d=!0,y={});let x=0;if(T)c.isWebGPU?(x=1,await import("./rgbdDecode.fragment-Be3ofvlt.esm.min.js")):await import("./rgbdDecode.fragment-D3SYBclQ.esm.min.js"),m=new o("rgbdDecode","rgbdDecode",null,null,1,null,n.TEXTURE_TRILINEAR_SAMPLINGMODE,c,!1,void 0,e.type,void 0,null,!1,void 0,x),e._isRGBD=!1,e.invertY=!1,_=c.createRenderTargetCubeTexture(e.width,{generateDepthBuffer:!1,generateMipMaps:!0,generateStencilBuffer:!1,samplingMode:n.TEXTURE_TRILINEAR_SAMPLINGMODE,type:e.type,format:n.TEXTUREFORMAT_RGBA});else if(e._isRGBD=!0,e.invertY=!0,d){const t=3,r=e._lodGenerationScale,o=e._lodGenerationOffset;for(let s=0;s<t;s++){const l=(p-1)*r+o,u=o+(l-o)*(1-s/(t-1)),T=Math.round(Math.min(Math.max(u,0),l)),d=new a(c,2);d.isCube=!0,d.invertY=!0,d.generateMipMaps=!1,c.updateTextureSamplingMode(n.TEXTURE_LINEAR_LINEAR,d);const f=new i(null);switch(f._isCube=!0,f._texture=d,y[T]=f,s){case 0:e._lodTextureLow=f;break;case 1:e._lodTextureMid=f;break;case 2:e._lodTextureHigh=f}}}const E=[];for(let t=0;t<s.length;t++)for(let r=0;r<6;r++){const n=s[t][r],o=new Blob([n],{type:l}),a=URL.createObjectURL(o);let i;if(c._features.forceBitmapOverHTMLImageElement)i=c.createImageBitmap(o,{premultiplyAlpha:"none"}).then((n=>f(n,c,T,m,a,r,t,d,y,_,e)));else{const n=new Image;n.src=a,i=new Promise(((o,i)=>{n.onload=()=>{f(n,c,T,m,a,r,t,d,y,_,e).then((()=>o())).catch((e=>{i(e)}))},n.onerror=e=>{i(e)}}))}E.push(i)}if(s.length<p){let t;const r=Math.pow(2,p-1-s.length),o=r*r*4;switch(e.type){case n.TEXTURETYPE_UNSIGNED_INT:t=new Uint8Array(o);break;case n.TEXTURETYPE_HALF_FLOAT:t=new Uint16Array(o);break;case n.TEXTURETYPE_FLOAT:t=new Float32Array(o)}for(let r=s.length;r<p;r++)for(let n=0;n<6;n++)c._uploadArrayBufferViewToTexture(e,t,n,r)}return Promise.all(E).then((()=>{_&&(c._releaseTexture(e),_._swapAndDie(e)),m&&m.dispose(),d&&(e._lodTextureHigh&&e._lodTextureHigh._texture&&(e._lodTextureHigh._texture.isReady=!0),e._lodTextureMid&&e._lodTextureMid._texture&&(e._lodTextureMid._texture.isReady=!0),e._lodTextureLow&&e._lodTextureLow._texture&&(e._lodTextureLow._texture.isReady=!0))}))}function _(e,t){const r=(t=T(t)).irradiance;if(!r)return;const n=new s;l.FromArrayToRef(r.x,0,n.x),l.FromArrayToRef(r.y,0,n.y),l.FromArrayToRef(r.z,0,n.z),l.FromArrayToRef(r.xx,0,n.xx),l.FromArrayToRef(r.yy,0,n.yy),l.FromArrayToRef(r.zz,0,n.zz),l.FromArrayToRef(r.yz,0,n.yz),l.FromArrayToRef(r.zx,0,n.zx),l.FromArrayToRef(r.xy,0,n.xy),e._sphericalPolynomial=n}function y(e,t,r,n,o){const a=m(e.getEngine().createRawCubeTexture(null,e.width,e.format,e.type,e.generateMipMaps,e.invertY,e.samplingMode,e._compression),t).then((()=>e));return e.onRebuildCallback=e=>({proxy:a,isReady:!0,isAsync:!0}),e._source=13,e._bufferViewArrayArray=t,e._lodGenerationScale=n,e._lodGenerationOffset=o,e._sphericalPolynomial=r,m(e,t).then((()=>(e.isReady=!0,e)))}export{c as G,_ as U,y as _,d as a};
2
+ //# sourceMappingURL=environmentTextureTools-BPGrTBPI.esm.min.js.map