@babylonjs/viewer 7.25.1-alpha → 7.25.1

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 (530) hide show
  1. package/configuration/configuration.d.ts +107 -0
  2. package/configuration/configuration.js +16 -0
  3. package/configuration/configuration.js.map +1 -0
  4. package/configuration/configurationCompatibility.d.ts +8 -0
  5. package/configuration/configurationCompatibility.js +66 -0
  6. package/configuration/configurationCompatibility.js.map +1 -0
  7. package/configuration/configurationContainer.d.ts +10 -0
  8. package/configuration/configurationContainer.js +10 -0
  9. package/configuration/configurationContainer.js.map +1 -0
  10. package/configuration/globals.d.ts +6 -0
  11. package/configuration/globals.js +18 -0
  12. package/configuration/globals.js.map +1 -0
  13. package/configuration/index.d.ts +2 -0
  14. package/configuration/index.js +4 -0
  15. package/configuration/index.js.map +1 -0
  16. package/configuration/interfaces/cameraConfiguration.d.ts +31 -0
  17. package/configuration/interfaces/cameraConfiguration.js +2 -0
  18. package/configuration/interfaces/cameraConfiguration.js.map +1 -0
  19. package/configuration/interfaces/colorGradingConfiguration.d.ts +81 -0
  20. package/configuration/interfaces/colorGradingConfiguration.js +2 -0
  21. package/configuration/interfaces/colorGradingConfiguration.js.map +1 -0
  22. package/configuration/interfaces/defaultRenderingPipelineConfiguration.d.ts +20 -0
  23. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js +2 -0
  24. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js.map +1 -0
  25. package/configuration/interfaces/environmentMapConfiguration.d.ts +22 -0
  26. package/configuration/interfaces/environmentMapConfiguration.js +2 -0
  27. package/configuration/interfaces/environmentMapConfiguration.js.map +1 -0
  28. package/configuration/interfaces/groundConfiguration.d.ts +24 -0
  29. package/configuration/interfaces/groundConfiguration.js +2 -0
  30. package/configuration/interfaces/groundConfiguration.js.map +1 -0
  31. package/configuration/interfaces/imageProcessingConfiguration.d.ts +45 -0
  32. package/configuration/interfaces/imageProcessingConfiguration.js +2 -0
  33. package/configuration/interfaces/imageProcessingConfiguration.js.map +1 -0
  34. package/configuration/interfaces/index.d.ts +15 -0
  35. package/configuration/interfaces/index.js +16 -0
  36. package/configuration/interfaces/index.js.map +1 -0
  37. package/configuration/interfaces/lightConfiguration.d.ts +60 -0
  38. package/configuration/interfaces/lightConfiguration.js +2 -0
  39. package/configuration/interfaces/lightConfiguration.js.map +1 -0
  40. package/configuration/interfaces/modelAnimationConfiguration.d.ts +26 -0
  41. package/configuration/interfaces/modelAnimationConfiguration.js +2 -0
  42. package/configuration/interfaces/modelAnimationConfiguration.js.map +1 -0
  43. package/configuration/interfaces/modelConfiguration.d.ts +65 -0
  44. package/configuration/interfaces/modelConfiguration.js +2 -0
  45. package/configuration/interfaces/modelConfiguration.js.map +1 -0
  46. package/configuration/interfaces/observersConfiguration.d.ts +5 -0
  47. package/configuration/interfaces/observersConfiguration.js +2 -0
  48. package/configuration/interfaces/observersConfiguration.js.map +1 -0
  49. package/configuration/interfaces/sceneConfiguration.d.ts +48 -0
  50. package/configuration/interfaces/sceneConfiguration.js +2 -0
  51. package/configuration/interfaces/sceneConfiguration.js.map +1 -0
  52. package/configuration/interfaces/sceneOptimizerConfiguration.d.ts +23 -0
  53. package/configuration/interfaces/sceneOptimizerConfiguration.js +2 -0
  54. package/configuration/interfaces/sceneOptimizerConfiguration.js.map +1 -0
  55. package/configuration/interfaces/skyboxConfiguration.d.ts +21 -0
  56. package/configuration/interfaces/skyboxConfiguration.js +2 -0
  57. package/configuration/interfaces/skyboxConfiguration.js.map +1 -0
  58. package/configuration/interfaces/templateConfiguration.d.ts +67 -0
  59. package/configuration/interfaces/templateConfiguration.js +2 -0
  60. package/configuration/interfaces/templateConfiguration.js.map +1 -0
  61. package/configuration/interfaces/vrConfiguration.d.ts +16 -0
  62. package/configuration/interfaces/vrConfiguration.js +2 -0
  63. package/configuration/interfaces/vrConfiguration.js.map +1 -0
  64. package/configuration/loader.d.ts +4 -0
  65. package/configuration/loader.js +17 -0
  66. package/configuration/loader.js.map +1 -0
  67. package/configuration/mappers.d.ts +43 -0
  68. package/configuration/mappers.js +192 -0
  69. package/configuration/mappers.js.map +1 -0
  70. package/configuration/renderOnlyLoader.d.ts +33 -0
  71. package/configuration/renderOnlyLoader.js +162 -0
  72. package/configuration/renderOnlyLoader.js.map +1 -0
  73. package/configuration/types/default.d.ts +6 -0
  74. package/configuration/types/default.js +121 -0
  75. package/configuration/types/default.js.map +1 -0
  76. package/configuration/types/environmentMap.d.ts +5 -0
  77. package/configuration/types/environmentMap.js +14 -0
  78. package/configuration/types/environmentMap.js.map +1 -0
  79. package/configuration/types/extended.d.ts +6 -0
  80. package/configuration/types/extended.js +317 -0
  81. package/configuration/types/extended.js.map +1 -0
  82. package/configuration/types/index.d.ts +14 -0
  83. package/configuration/types/index.js +51 -0
  84. package/configuration/types/index.js.map +1 -0
  85. package/configuration/types/minimal.d.ts +6 -0
  86. package/configuration/types/minimal.js +43 -0
  87. package/configuration/types/minimal.js.map +1 -0
  88. package/configuration/types/renderOnlyDefault.d.ts +30 -0
  89. package/configuration/types/renderOnlyDefault.js +31 -0
  90. package/configuration/types/renderOnlyDefault.js.map +1 -0
  91. package/configuration/types/shadowLight.d.ts +9 -0
  92. package/configuration/types/shadowLight.js +64 -0
  93. package/configuration/types/shadowLight.js.map +1 -0
  94. package/helper/index.d.ts +29 -0
  95. package/helper/index.js +66 -0
  96. package/helper/index.js.map +1 -0
  97. package/index.d.ts +30 -0
  98. package/index.js +46 -0
  99. package/index.js.map +1 -0
  100. package/initializer.d.ts +11 -0
  101. package/initializer.js +35 -0
  102. package/initializer.js.map +1 -0
  103. package/interfaces.d.ts +5 -0
  104. package/interfaces.js +7 -0
  105. package/interfaces.js.map +1 -0
  106. package/labs/environmentSerializer.d.ts +126 -0
  107. package/labs/environmentSerializer.js +191 -0
  108. package/labs/environmentSerializer.js.map +1 -0
  109. package/labs/texture.d.ts +183 -0
  110. package/labs/texture.js +350 -0
  111. package/labs/texture.js.map +1 -0
  112. package/labs/viewerLabs.d.ts +51 -0
  113. package/labs/viewerLabs.js +134 -0
  114. package/labs/viewerLabs.js.map +1 -0
  115. package/loader/modelLoader.d.ts +56 -0
  116. package/loader/modelLoader.js +199 -0
  117. package/loader/modelLoader.js.map +1 -0
  118. package/loader/plugins/applyMaterialConfig.d.ts +12 -0
  119. package/loader/plugins/applyMaterialConfig.js +16 -0
  120. package/loader/plugins/applyMaterialConfig.js.map +1 -0
  121. package/loader/plugins/extendedMaterialLoaderPlugin.d.ts +9 -0
  122. package/loader/plugins/extendedMaterialLoaderPlugin.js +16 -0
  123. package/loader/plugins/extendedMaterialLoaderPlugin.js.map +1 -0
  124. package/loader/plugins/index.d.ts +19 -0
  125. package/loader/plugins/index.js +44 -0
  126. package/loader/plugins/index.js.map +1 -0
  127. package/loader/plugins/loaderPlugin.d.ts +24 -0
  128. package/loader/plugins/loaderPlugin.js +2 -0
  129. package/loader/plugins/loaderPlugin.js.map +1 -0
  130. package/loader/plugins/msftLodLoaderPlugin.d.ts +12 -0
  131. package/loader/plugins/msftLodLoaderPlugin.js +21 -0
  132. package/loader/plugins/msftLodLoaderPlugin.js.map +1 -0
  133. package/loader/plugins/telemetryLoaderPlugin.d.ts +12 -0
  134. package/loader/plugins/telemetryLoaderPlugin.js +36 -0
  135. package/loader/plugins/telemetryLoaderPlugin.js.map +1 -0
  136. package/managers/observablesManager.d.ts +66 -0
  137. package/managers/observablesManager.js +35 -0
  138. package/managers/observablesManager.js.map +1 -0
  139. package/managers/sceneManager.d.ts +245 -0
  140. package/managers/sceneManager.js +1375 -0
  141. package/managers/sceneManager.js.map +1 -0
  142. package/managers/telemetryManager.d.ts +78 -0
  143. package/managers/telemetryManager.js +117 -0
  144. package/managers/telemetryManager.js.map +1 -0
  145. package/model/modelAnimation.d.ts +215 -0
  146. package/model/modelAnimation.js +237 -0
  147. package/model/modelAnimation.js.map +1 -0
  148. package/model/viewerModel.d.ts +233 -0
  149. package/model/viewerModel.js +673 -0
  150. package/model/viewerModel.js.map +1 -0
  151. package/optimizer/custom/extended.d.ts +13 -0
  152. package/optimizer/custom/extended.js +101 -0
  153. package/optimizer/custom/extended.js.map +1 -0
  154. package/optimizer/custom/index.d.ts +9 -0
  155. package/optimizer/custom/index.js +26 -0
  156. package/optimizer/custom/index.js.map +1 -0
  157. package/package.json +27 -17
  158. package/readme.md +21 -35
  159. package/renderOnlyIndex.d.ts +11 -0
  160. package/renderOnlyIndex.js +18 -0
  161. package/renderOnlyIndex.js.map +1 -0
  162. package/templating/eventManager.d.ts +35 -0
  163. package/templating/eventManager.js +66 -0
  164. package/templating/eventManager.js.map +1 -0
  165. package/templating/plugins/hdButtonPlugin.d.ts +9 -0
  166. package/templating/plugins/hdButtonPlugin.js +21 -0
  167. package/templating/plugins/hdButtonPlugin.js.map +1 -0
  168. package/templating/plugins/printButton.d.ts +9 -0
  169. package/templating/plugins/printButton.js +40 -0
  170. package/templating/plugins/printButton.js.map +1 -0
  171. package/templating/templateManager.d.ts +197 -0
  172. package/templating/templateManager.js +561 -0
  173. package/templating/templateManager.js.map +1 -0
  174. package/templating/viewerTemplatePlugin.d.ts +21 -0
  175. package/templating/viewerTemplatePlugin.js +69 -0
  176. package/templating/viewerTemplatePlugin.js.map +1 -0
  177. package/viewer/defaultViewer.d.ts +130 -0
  178. package/viewer/defaultViewer.js +675 -0
  179. package/viewer/defaultViewer.js.map +1 -0
  180. package/viewer/renderOnlyViewer.d.ts +9 -0
  181. package/viewer/renderOnlyViewer.js +46 -0
  182. package/viewer/renderOnlyViewer.js.map +1 -0
  183. package/viewer/viewer.d.ts +258 -0
  184. package/viewer/viewer.js +783 -0
  185. package/viewer/viewer.js.map +1 -0
  186. package/viewer/viewerManager.d.ts +58 -0
  187. package/viewer/viewerManager.js +91 -0
  188. package/viewer/viewerManager.js.map +1 -0
  189. package/viewer/viewerWithTemplate.d.ts +9 -0
  190. package/viewer/viewerWithTemplate.js +20 -0
  191. package/viewer/viewerWithTemplate.js.map +1 -0
  192. package/dist/babylon-viewer.esm.js +0 -2
  193. package/dist/babylon-viewer.esm.js.map +0 -1
  194. package/dist/babylon-viewer.esm.min.js +0 -2
  195. package/dist/babylon-viewer.esm.min.js.map +0 -1
  196. package/dist/chunks/EXT_lights_image_based-DVT9d5PE.esm.min.js +0 -2
  197. package/dist/chunks/EXT_lights_image_based-DVT9d5PE.esm.min.js.map +0 -1
  198. package/dist/chunks/EXT_lights_image_based-XqDzs68T.esm.js +0 -170
  199. package/dist/chunks/EXT_lights_image_based-XqDzs68T.esm.js.map +0 -1
  200. package/dist/chunks/EXT_mesh_gpu_instancing-BDdwYyny.esm.min.js +0 -2
  201. package/dist/chunks/EXT_mesh_gpu_instancing-BDdwYyny.esm.min.js.map +0 -1
  202. package/dist/chunks/EXT_mesh_gpu_instancing-DhR2UOBn.esm.js +0 -86
  203. package/dist/chunks/EXT_mesh_gpu_instancing-DhR2UOBn.esm.js.map +0 -1
  204. package/dist/chunks/EXT_meshopt_compression-BqFzh0gY.esm.js +0 -134
  205. package/dist/chunks/EXT_meshopt_compression-BqFzh0gY.esm.js.map +0 -1
  206. package/dist/chunks/EXT_meshopt_compression-SfXDvdUM.esm.min.js +0 -2
  207. package/dist/chunks/EXT_meshopt_compression-SfXDvdUM.esm.min.js.map +0 -1
  208. package/dist/chunks/EXT_texture_avif-JBIGyeRc.esm.js +0 -44
  209. package/dist/chunks/EXT_texture_avif-JBIGyeRc.esm.js.map +0 -1
  210. package/dist/chunks/EXT_texture_avif-q1TkH_G9.esm.min.js +0 -2
  211. package/dist/chunks/EXT_texture_avif-q1TkH_G9.esm.min.js.map +0 -1
  212. package/dist/chunks/EXT_texture_webp-B1s3FiRS.esm.js +0 -43
  213. package/dist/chunks/EXT_texture_webp-B1s3FiRS.esm.js.map +0 -1
  214. package/dist/chunks/EXT_texture_webp-BCI9KAUl.esm.min.js +0 -2
  215. package/dist/chunks/EXT_texture_webp-BCI9KAUl.esm.min.js.map +0 -1
  216. package/dist/chunks/ExtrasAsMetadata-BOD2FG8I.esm.min.js +0 -2
  217. package/dist/chunks/ExtrasAsMetadata-BOD2FG8I.esm.min.js.map +0 -1
  218. package/dist/chunks/ExtrasAsMetadata-ByiJUaSt.esm.js +0 -64
  219. package/dist/chunks/ExtrasAsMetadata-ByiJUaSt.esm.js.map +0 -1
  220. package/dist/chunks/KHR_animation_pointer-CNYMXY_w.esm.js +0 -343
  221. package/dist/chunks/KHR_animation_pointer-CNYMXY_w.esm.js.map +0 -1
  222. package/dist/chunks/KHR_animation_pointer-CnLRV_yl.esm.min.js +0 -2
  223. package/dist/chunks/KHR_animation_pointer-CnLRV_yl.esm.min.js.map +0 -1
  224. package/dist/chunks/KHR_draco_mesh_compression-AZ2o_aLj.esm.min.js +0 -2
  225. package/dist/chunks/KHR_draco_mesh_compression-AZ2o_aLj.esm.min.js.map +0 -1
  226. package/dist/chunks/KHR_draco_mesh_compression-DFY2Ctvm.esm.js +0 -610
  227. package/dist/chunks/KHR_draco_mesh_compression-DFY2Ctvm.esm.js.map +0 -1
  228. package/dist/chunks/KHR_interactivity-3PDcMKr_.esm.js +0 -4033
  229. package/dist/chunks/KHR_interactivity-3PDcMKr_.esm.js.map +0 -1
  230. package/dist/chunks/KHR_interactivity-C-cfOaao.esm.min.js +0 -2
  231. package/dist/chunks/KHR_interactivity-C-cfOaao.esm.min.js.map +0 -1
  232. package/dist/chunks/KHR_lights_punctual-DdpvJMDV.esm.js +0 -1253
  233. package/dist/chunks/KHR_lights_punctual-DdpvJMDV.esm.js.map +0 -1
  234. package/dist/chunks/KHR_lights_punctual-fnDFOclN.esm.min.js +0 -2
  235. package/dist/chunks/KHR_lights_punctual-fnDFOclN.esm.min.js.map +0 -1
  236. package/dist/chunks/KHR_materials_anisotropy-Cb6X0k3m.esm.min.js +0 -2
  237. package/dist/chunks/KHR_materials_anisotropy-Cb6X0k3m.esm.min.js.map +0 -1
  238. package/dist/chunks/KHR_materials_anisotropy-gNrsYmJY.esm.js +0 -64
  239. package/dist/chunks/KHR_materials_anisotropy-gNrsYmJY.esm.js.map +0 -1
  240. package/dist/chunks/KHR_materials_clearcoat-U2HUz3WB.esm.js +0 -96
  241. package/dist/chunks/KHR_materials_clearcoat-U2HUz3WB.esm.js.map +0 -1
  242. package/dist/chunks/KHR_materials_clearcoat-joUz7tSd.esm.min.js +0 -2
  243. package/dist/chunks/KHR_materials_clearcoat-joUz7tSd.esm.min.js.map +0 -1
  244. package/dist/chunks/KHR_materials_diffuse_transmission-Cm1IFxmL.esm.min.js +0 -2
  245. package/dist/chunks/KHR_materials_diffuse_transmission-Cm1IFxmL.esm.min.js.map +0 -1
  246. package/dist/chunks/KHR_materials_diffuse_transmission-Cn5gk-q_.esm.js +0 -97
  247. package/dist/chunks/KHR_materials_diffuse_transmission-Cn5gk-q_.esm.js.map +0 -1
  248. package/dist/chunks/KHR_materials_dispersion-Cpc2ME1B.esm.js +0 -62
  249. package/dist/chunks/KHR_materials_dispersion-Cpc2ME1B.esm.js.map +0 -1
  250. package/dist/chunks/KHR_materials_dispersion-Cv7zIL7j.esm.min.js +0 -2
  251. package/dist/chunks/KHR_materials_dispersion-Cv7zIL7j.esm.min.js.map +0 -1
  252. package/dist/chunks/KHR_materials_emissive_strength-BYxJ1Qaz.esm.js +0 -55
  253. package/dist/chunks/KHR_materials_emissive_strength-BYxJ1Qaz.esm.js.map +0 -1
  254. package/dist/chunks/KHR_materials_emissive_strength-DBEC-Pfr.esm.min.js +0 -2
  255. package/dist/chunks/KHR_materials_emissive_strength-DBEC-Pfr.esm.min.js.map +0 -1
  256. package/dist/chunks/KHR_materials_ior-B4HgptNe.esm.min.js +0 -2
  257. package/dist/chunks/KHR_materials_ior-B4HgptNe.esm.min.js.map +0 -1
  258. package/dist/chunks/KHR_materials_ior-CDtowU9f.esm.js +0 -64
  259. package/dist/chunks/KHR_materials_ior-CDtowU9f.esm.js.map +0 -1
  260. package/dist/chunks/KHR_materials_iridescence-CgkruUTk.esm.min.js +0 -2
  261. package/dist/chunks/KHR_materials_iridescence-CgkruUTk.esm.min.js.map +0 -1
  262. package/dist/chunks/KHR_materials_iridescence-CqmvyPW8.esm.js +0 -72
  263. package/dist/chunks/KHR_materials_iridescence-CqmvyPW8.esm.js.map +0 -1
  264. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-BQV0asO5.esm.js +0 -81
  265. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-BQV0asO5.esm.js.map +0 -1
  266. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-Bv4SCrwb.esm.min.js +0 -2
  267. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-Bv4SCrwb.esm.min.js.map +0 -1
  268. package/dist/chunks/KHR_materials_sheen-BQM2Rjmq.esm.js +0 -85
  269. package/dist/chunks/KHR_materials_sheen-BQM2Rjmq.esm.js.map +0 -1
  270. package/dist/chunks/KHR_materials_sheen-DV5CnbK2.esm.min.js +0 -2
  271. package/dist/chunks/KHR_materials_sheen-DV5CnbK2.esm.min.js.map +0 -1
  272. package/dist/chunks/KHR_materials_specular-4xCkE2rV.esm.js +0 -75
  273. package/dist/chunks/KHR_materials_specular-4xCkE2rV.esm.js.map +0 -1
  274. package/dist/chunks/KHR_materials_specular-CoAFRAcm.esm.min.js +0 -2
  275. package/dist/chunks/KHR_materials_specular-CoAFRAcm.esm.min.js.map +0 -1
  276. package/dist/chunks/KHR_materials_transmission-DUGtSvRL.esm.js +0 -307
  277. package/dist/chunks/KHR_materials_transmission-DUGtSvRL.esm.js.map +0 -1
  278. package/dist/chunks/KHR_materials_transmission-dc1ndoxL.esm.min.js +0 -2
  279. package/dist/chunks/KHR_materials_transmission-dc1ndoxL.esm.min.js.map +0 -1
  280. package/dist/chunks/KHR_materials_unlit-BNXbHdvw.esm.js +0 -74
  281. package/dist/chunks/KHR_materials_unlit-BNXbHdvw.esm.js.map +0 -1
  282. package/dist/chunks/KHR_materials_unlit-D9MVjMTN.esm.min.js +0 -2
  283. package/dist/chunks/KHR_materials_unlit-D9MVjMTN.esm.min.js.map +0 -1
  284. package/dist/chunks/KHR_materials_variants-CBW9J72v.esm.min.js +0 -2
  285. package/dist/chunks/KHR_materials_variants-CBW9J72v.esm.min.js.map +0 -1
  286. package/dist/chunks/KHR_materials_variants-Dkur-XMA.esm.js +0 -238
  287. package/dist/chunks/KHR_materials_variants-Dkur-XMA.esm.js.map +0 -1
  288. package/dist/chunks/KHR_materials_volume-BSWwp0PI.esm.js +0 -87
  289. package/dist/chunks/KHR_materials_volume-BSWwp0PI.esm.js.map +0 -1
  290. package/dist/chunks/KHR_materials_volume-uEEN0xx9.esm.min.js +0 -2
  291. package/dist/chunks/KHR_materials_volume-uEEN0xx9.esm.min.js.map +0 -1
  292. package/dist/chunks/KHR_mesh_quantization--7YAD1i9.esm.js +0 -26
  293. package/dist/chunks/KHR_mesh_quantization--7YAD1i9.esm.js.map +0 -1
  294. package/dist/chunks/KHR_mesh_quantization-D48i0ooq.esm.min.js +0 -2
  295. package/dist/chunks/KHR_mesh_quantization-D48i0ooq.esm.min.js.map +0 -1
  296. package/dist/chunks/KHR_texture_basisu-CJHQOtEz.esm.min.js +0 -2
  297. package/dist/chunks/KHR_texture_basisu-CJHQOtEz.esm.min.js.map +0 -1
  298. package/dist/chunks/KHR_texture_basisu-CZJ-szw2.esm.js +0 -43
  299. package/dist/chunks/KHR_texture_basisu-CZJ-szw2.esm.js.map +0 -1
  300. package/dist/chunks/KHR_texture_transform-CCGZOtJG.esm.js +0 -63
  301. package/dist/chunks/KHR_texture_transform-CCGZOtJG.esm.js.map +0 -1
  302. package/dist/chunks/KHR_texture_transform-Cz_tYWj9.esm.min.js +0 -2
  303. package/dist/chunks/KHR_texture_transform-Cz_tYWj9.esm.min.js.map +0 -1
  304. package/dist/chunks/KHR_xmp_json_ld-BWhXh4yX.esm.min.js +0 -2
  305. package/dist/chunks/KHR_xmp_json_ld-BWhXh4yX.esm.min.js.map +0 -1
  306. package/dist/chunks/KHR_xmp_json_ld-D8vGUblu.esm.js +0 -51
  307. package/dist/chunks/KHR_xmp_json_ld-D8vGUblu.esm.js.map +0 -1
  308. package/dist/chunks/MSFT_audio_emitter-CABqee9Z.esm.min.js +0 -2
  309. package/dist/chunks/MSFT_audio_emitter-CABqee9Z.esm.min.js.map +0 -1
  310. package/dist/chunks/MSFT_audio_emitter-CupxtNMJ.esm.js +0 -2236
  311. package/dist/chunks/MSFT_audio_emitter-CupxtNMJ.esm.js.map +0 -1
  312. package/dist/chunks/MSFT_lod-BZ6xhN71.esm.min.js +0 -2
  313. package/dist/chunks/MSFT_lod-BZ6xhN71.esm.min.js.map +0 -1
  314. package/dist/chunks/MSFT_lod-D6-TVSnT.esm.js +0 -337
  315. package/dist/chunks/MSFT_lod-D6-TVSnT.esm.js.map +0 -1
  316. package/dist/chunks/MSFT_minecraftMesh-DXKcYd7c.esm.js +0 -46
  317. package/dist/chunks/MSFT_minecraftMesh-DXKcYd7c.esm.js.map +0 -1
  318. package/dist/chunks/MSFT_minecraftMesh-jQGuk0z2.esm.min.js +0 -2
  319. package/dist/chunks/MSFT_minecraftMesh-jQGuk0z2.esm.min.js.map +0 -1
  320. package/dist/chunks/MSFT_sRGBFactors-CMIEJuDa.esm.min.js +0 -2
  321. package/dist/chunks/MSFT_sRGBFactors-CMIEJuDa.esm.min.js.map +0 -1
  322. package/dist/chunks/MSFT_sRGBFactors-D1di9DYd.esm.js +0 -47
  323. package/dist/chunks/MSFT_sRGBFactors-D1di9DYd.esm.js.map +0 -1
  324. package/dist/chunks/assetContainer-B4RZAzKO.esm.min.js +0 -2
  325. package/dist/chunks/assetContainer-B4RZAzKO.esm.min.js.map +0 -1
  326. package/dist/chunks/assetContainer-B_DdybqS.esm.js +0 -1598
  327. package/dist/chunks/assetContainer-B_DdybqS.esm.js.map +0 -1
  328. package/dist/chunks/audioEngine-BNEDnVbO.esm.min.js +0 -2
  329. package/dist/chunks/audioEngine-BNEDnVbO.esm.min.js.map +0 -1
  330. package/dist/chunks/audioEngine-CICNJdfP.esm.js +0 -305
  331. package/dist/chunks/audioEngine-CICNJdfP.esm.js.map +0 -1
  332. package/dist/chunks/basisTextureLoader-B_8qIBcv.esm.js +0 -600
  333. package/dist/chunks/basisTextureLoader-B_8qIBcv.esm.js.map +0 -1
  334. package/dist/chunks/basisTextureLoader-qwPrmlI1.esm.min.js +0 -2
  335. package/dist/chunks/basisTextureLoader-qwPrmlI1.esm.min.js.map +0 -1
  336. package/dist/chunks/ddsTextureLoader-Caj9Cn2g.esm.min.js +0 -2
  337. package/dist/chunks/ddsTextureLoader-Caj9Cn2g.esm.min.js.map +0 -1
  338. package/dist/chunks/ddsTextureLoader-Dtde5Y_E.esm.js +0 -87
  339. package/dist/chunks/ddsTextureLoader-Dtde5Y_E.esm.js.map +0 -1
  340. package/dist/chunks/default.fragment-3-A6Ds5q.esm.js +0 -456
  341. package/dist/chunks/default.fragment-3-A6Ds5q.esm.js.map +0 -1
  342. package/dist/chunks/default.fragment-CK_5aPIO.esm.js +0 -515
  343. package/dist/chunks/default.fragment-CK_5aPIO.esm.js.map +0 -1
  344. package/dist/chunks/default.fragment-CW6M2CvG.esm.min.js +0 -2
  345. package/dist/chunks/default.fragment-CW6M2CvG.esm.min.js.map +0 -1
  346. package/dist/chunks/default.fragment-D8IeeUuR.esm.min.js +0 -2
  347. package/dist/chunks/default.fragment-D8IeeUuR.esm.min.js.map +0 -1
  348. package/dist/chunks/default.vertex-BnmEG9Z3.esm.js +0 -178
  349. package/dist/chunks/default.vertex-BnmEG9Z3.esm.js.map +0 -1
  350. package/dist/chunks/default.vertex-CByxmCU_.esm.min.js +0 -2
  351. package/dist/chunks/default.vertex-CByxmCU_.esm.min.js.map +0 -1
  352. package/dist/chunks/default.vertex-CKXtUMTv.esm.min.js +0 -2
  353. package/dist/chunks/default.vertex-CKXtUMTv.esm.min.js.map +0 -1
  354. package/dist/chunks/default.vertex-D5kQBg6V.esm.js +0 -199
  355. package/dist/chunks/default.vertex-D5kQBg6V.esm.js.map +0 -1
  356. package/dist/chunks/defaultUboDeclaration-AgU83OaK.esm.min.js +0 -2
  357. package/dist/chunks/defaultUboDeclaration-AgU83OaK.esm.min.js.map +0 -1
  358. package/dist/chunks/defaultUboDeclaration-BTsCVlsd.esm.min.js +0 -2
  359. package/dist/chunks/defaultUboDeclaration-BTsCVlsd.esm.min.js.map +0 -1
  360. package/dist/chunks/defaultUboDeclaration-bGo0gkae.esm.js +0 -15
  361. package/dist/chunks/defaultUboDeclaration-bGo0gkae.esm.js.map +0 -1
  362. package/dist/chunks/defaultUboDeclaration-pi1Tffi-.esm.js +0 -13
  363. package/dist/chunks/defaultUboDeclaration-pi1Tffi-.esm.js.map +0 -1
  364. package/dist/chunks/engine-DDK673Fr.esm.js +0 -1613
  365. package/dist/chunks/engine-DDK673Fr.esm.js.map +0 -1
  366. package/dist/chunks/engine-DdeN2F9N.esm.min.js +0 -2
  367. package/dist/chunks/engine-DdeN2F9N.esm.min.js.map +0 -1
  368. package/dist/chunks/envTextureLoader-B_We3UAe.esm.min.js +0 -2
  369. package/dist/chunks/envTextureLoader-B_We3UAe.esm.min.js.map +0 -1
  370. package/dist/chunks/envTextureLoader-DeYk_D-u.esm.js +0 -63
  371. package/dist/chunks/envTextureLoader-DeYk_D-u.esm.js.map +0 -1
  372. package/dist/chunks/environmentTextureTools-DT_BQR6L.esm.min.js +0 -2
  373. package/dist/chunks/environmentTextureTools-DT_BQR6L.esm.min.js.map +0 -1
  374. package/dist/chunks/environmentTextureTools-DZ4GOzAY.esm.js +0 -381
  375. package/dist/chunks/environmentTextureTools-DZ4GOzAY.esm.js.map +0 -1
  376. package/dist/chunks/exrTextureLoader-BPFaquLu.esm.min.js +0 -2
  377. package/dist/chunks/exrTextureLoader-BPFaquLu.esm.min.js.map +0 -1
  378. package/dist/chunks/exrTextureLoader-DFfYDSvx.esm.js +0 -1682
  379. package/dist/chunks/exrTextureLoader-DFfYDSvx.esm.js.map +0 -1
  380. package/dist/chunks/fogFragment-ChBeVMbL.esm.min.js +0 -2
  381. package/dist/chunks/fogFragment-ChBeVMbL.esm.min.js.map +0 -1
  382. package/dist/chunks/fogFragment-CnlQ05Rn.esm.js +0 -102
  383. package/dist/chunks/fogFragment-CnlQ05Rn.esm.js.map +0 -1
  384. package/dist/chunks/glTFLoader-CfuuZdCb.esm.js +0 -7552
  385. package/dist/chunks/glTFLoader-CfuuZdCb.esm.js.map +0 -1
  386. package/dist/chunks/glTFLoader-DOyVt9PU.esm.min.js +0 -2
  387. package/dist/chunks/glTFLoader-DOyVt9PU.esm.min.js.map +0 -1
  388. package/dist/chunks/glTFLoaderAnimation-28_L-pzh.esm.js +0 -77
  389. package/dist/chunks/glTFLoaderAnimation-28_L-pzh.esm.js.map +0 -1
  390. package/dist/chunks/glTFLoaderAnimation-Cueukaay.esm.min.js +0 -2
  391. package/dist/chunks/glTFLoaderAnimation-Cueukaay.esm.min.js.map +0 -1
  392. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js +0 -2
  393. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js.map +0 -1
  394. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js +0 -67
  395. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js.map +0 -1
  396. package/dist/chunks/harmonicsFunctions-5m2TqpP7.esm.js +0 -34
  397. package/dist/chunks/harmonicsFunctions-5m2TqpP7.esm.js.map +0 -1
  398. package/dist/chunks/harmonicsFunctions-CZvW5nS2.esm.min.js +0 -2
  399. package/dist/chunks/harmonicsFunctions-CZvW5nS2.esm.min.js.map +0 -1
  400. package/dist/chunks/harmonicsFunctions-FoyoVJjx.esm.js +0 -35
  401. package/dist/chunks/harmonicsFunctions-FoyoVJjx.esm.js.map +0 -1
  402. package/dist/chunks/harmonicsFunctions-LPFcAay5.esm.min.js +0 -2
  403. package/dist/chunks/harmonicsFunctions-LPFcAay5.esm.min.js.map +0 -1
  404. package/dist/chunks/hdrTextureLoader-BF58jeD4.esm.min.js +0 -2
  405. package/dist/chunks/hdrTextureLoader-BF58jeD4.esm.min.js.map +0 -1
  406. package/dist/chunks/hdrTextureLoader-CnAlxQ46.esm.js +0 -252
  407. package/dist/chunks/hdrTextureLoader-CnAlxQ46.esm.js.map +0 -1
  408. package/dist/chunks/helperFunctions-BHi3ZDnH.esm.js +0 -80
  409. package/dist/chunks/helperFunctions-BHi3ZDnH.esm.js.map +0 -1
  410. package/dist/chunks/helperFunctions-D9QX7d8q.esm.min.js +0 -2
  411. package/dist/chunks/helperFunctions-D9QX7d8q.esm.min.js.map +0 -1
  412. package/dist/chunks/helperFunctions-bapbKVVS.esm.js +0 -108
  413. package/dist/chunks/helperFunctions-bapbKVVS.esm.js.map +0 -1
  414. package/dist/chunks/helperFunctions-hh2B4qDl.esm.min.js +0 -2
  415. package/dist/chunks/helperFunctions-hh2B4qDl.esm.min.js.map +0 -1
  416. package/dist/chunks/index-4QQveomY.esm.js +0 -79813
  417. package/dist/chunks/index-4QQveomY.esm.js.map +0 -1
  418. package/dist/chunks/index-D5606AHu.esm.min.js +0 -57
  419. package/dist/chunks/index-D5606AHu.esm.min.js.map +0 -1
  420. package/dist/chunks/ktxTextureLoader-CxAMFjnh.esm.js +0 -814
  421. package/dist/chunks/ktxTextureLoader-CxAMFjnh.esm.js.map +0 -1
  422. package/dist/chunks/ktxTextureLoader-s0dUXnt8.esm.min.js +0 -2
  423. package/dist/chunks/ktxTextureLoader-s0dUXnt8.esm.min.js.map +0 -1
  424. package/dist/chunks/logDepthDeclaration-BcnqcXJe.esm.js +0 -35
  425. package/dist/chunks/logDepthDeclaration-BcnqcXJe.esm.js.map +0 -1
  426. package/dist/chunks/logDepthDeclaration-CvXtMvcM.esm.js +0 -42
  427. package/dist/chunks/logDepthDeclaration-CvXtMvcM.esm.js.map +0 -1
  428. package/dist/chunks/logDepthDeclaration-cPWsL3PG.esm.min.js +0 -2
  429. package/dist/chunks/logDepthDeclaration-cPWsL3PG.esm.min.js.map +0 -1
  430. package/dist/chunks/logDepthDeclaration-unowpoZK.esm.min.js +0 -2
  431. package/dist/chunks/logDepthDeclaration-unowpoZK.esm.min.js.map +0 -1
  432. package/dist/chunks/logDepthVertex-BrvDYbCP.esm.min.js +0 -2
  433. package/dist/chunks/logDepthVertex-BrvDYbCP.esm.min.js.map +0 -1
  434. package/dist/chunks/logDepthVertex-CUUB4BTI.esm.js +0 -605
  435. package/dist/chunks/logDepthVertex-CUUB4BTI.esm.js.map +0 -1
  436. package/dist/chunks/logDepthVertex-DaNvEIGn.esm.min.js +0 -2
  437. package/dist/chunks/logDepthVertex-DaNvEIGn.esm.min.js.map +0 -1
  438. package/dist/chunks/logDepthVertex-foN2jGvJ.esm.js +0 -77
  439. package/dist/chunks/logDepthVertex-foN2jGvJ.esm.js.map +0 -1
  440. package/dist/chunks/mainUVVaryingDeclaration-DHTqc_aH.esm.js +0 -11
  441. package/dist/chunks/mainUVVaryingDeclaration-DHTqc_aH.esm.js.map +0 -1
  442. package/dist/chunks/mainUVVaryingDeclaration-PFUWfv7o.esm.min.js +0 -2
  443. package/dist/chunks/mainUVVaryingDeclaration-PFUWfv7o.esm.min.js.map +0 -1
  444. package/dist/chunks/objFileLoader-B-uLP26U.esm.min.js +0 -2
  445. package/dist/chunks/objFileLoader-B-uLP26U.esm.min.js.map +0 -1
  446. package/dist/chunks/objFileLoader-Bl2Pzv0o.esm.js +0 -1280
  447. package/dist/chunks/objFileLoader-Bl2Pzv0o.esm.js.map +0 -1
  448. package/dist/chunks/oitFragment-CZShr04f.esm.min.js +0 -2
  449. package/dist/chunks/oitFragment-CZShr04f.esm.min.js.map +0 -1
  450. package/dist/chunks/oitFragment-D3c3Lp9a.esm.js +0 -1210
  451. package/dist/chunks/oitFragment-D3c3Lp9a.esm.js.map +0 -1
  452. package/dist/chunks/oitFragment-D6uOdl_0.esm.min.js +0 -2
  453. package/dist/chunks/oitFragment-D6uOdl_0.esm.min.js.map +0 -1
  454. package/dist/chunks/oitFragment-E27tpA6b.esm.js +0 -1166
  455. package/dist/chunks/oitFragment-E27tpA6b.esm.js.map +0 -1
  456. package/dist/chunks/pass.fragment-CGX8gTNY.esm.js +0 -15
  457. package/dist/chunks/pass.fragment-CGX8gTNY.esm.js.map +0 -1
  458. package/dist/chunks/pass.fragment-DKqeYsmS.esm.min.js +0 -2
  459. package/dist/chunks/pass.fragment-DKqeYsmS.esm.min.js.map +0 -1
  460. package/dist/chunks/pbr.fragment-5XRl6pKm.esm.min.js +0 -2
  461. package/dist/chunks/pbr.fragment-5XRl6pKm.esm.min.js.map +0 -1
  462. package/dist/chunks/pbr.fragment-Cfsv9tFG.esm.js +0 -3172
  463. package/dist/chunks/pbr.fragment-Cfsv9tFG.esm.js.map +0 -1
  464. package/dist/chunks/pbr.fragment-DGBodARG.esm.min.js +0 -2
  465. package/dist/chunks/pbr.fragment-DGBodARG.esm.min.js.map +0 -1
  466. package/dist/chunks/pbr.fragment-IMDXwBnG.esm.js +0 -3228
  467. package/dist/chunks/pbr.fragment-IMDXwBnG.esm.js.map +0 -1
  468. package/dist/chunks/pbr.vertex-B3JKAxfl.esm.min.js +0 -2
  469. package/dist/chunks/pbr.vertex-B3JKAxfl.esm.min.js.map +0 -1
  470. package/dist/chunks/pbr.vertex-CZIasM0q.esm.js +0 -335
  471. package/dist/chunks/pbr.vertex-CZIasM0q.esm.js.map +0 -1
  472. package/dist/chunks/pbr.vertex-CjU0MUM9.esm.min.js +0 -2
  473. package/dist/chunks/pbr.vertex-CjU0MUM9.esm.min.js.map +0 -1
  474. package/dist/chunks/pbr.vertex-h6JyEpaS.esm.js +0 -208
  475. package/dist/chunks/pbr.vertex-h6JyEpaS.esm.js.map +0 -1
  476. package/dist/chunks/postprocess.vertex-B0ei94Dw.esm.min.js +0 -2
  477. package/dist/chunks/postprocess.vertex-B0ei94Dw.esm.min.js.map +0 -1
  478. package/dist/chunks/postprocess.vertex-r5NscKzh.esm.js +0 -20
  479. package/dist/chunks/postprocess.vertex-r5NscKzh.esm.js.map +0 -1
  480. package/dist/chunks/rawTexture-Bmw0auoS.esm.min.js +0 -2
  481. package/dist/chunks/rawTexture-Bmw0auoS.esm.min.js.map +0 -1
  482. package/dist/chunks/rawTexture-CpYqstLv.esm.js +0 -562
  483. package/dist/chunks/rawTexture-CpYqstLv.esm.js.map +0 -1
  484. package/dist/chunks/rgbdDecode.fragment-BBOPxYJO.esm.min.js +0 -2
  485. package/dist/chunks/rgbdDecode.fragment-BBOPxYJO.esm.min.js.map +0 -1
  486. package/dist/chunks/rgbdDecode.fragment-C1mQs3ed.esm.js +0 -17
  487. package/dist/chunks/rgbdDecode.fragment-C1mQs3ed.esm.js.map +0 -1
  488. package/dist/chunks/rgbdDecode.fragment-CaqsSeIW.esm.min.js +0 -2
  489. package/dist/chunks/rgbdDecode.fragment-CaqsSeIW.esm.min.js.map +0 -1
  490. package/dist/chunks/rgbdDecode.fragment-MPQ7knvL.esm.js +0 -17
  491. package/dist/chunks/rgbdDecode.fragment-MPQ7knvL.esm.js.map +0 -1
  492. package/dist/chunks/rgbdEncode.fragment-6EdQiINi.esm.min.js +0 -2
  493. package/dist/chunks/rgbdEncode.fragment-6EdQiINi.esm.min.js.map +0 -1
  494. package/dist/chunks/rgbdEncode.fragment-C-msuzIz.esm.min.js +0 -2
  495. package/dist/chunks/rgbdEncode.fragment-C-msuzIz.esm.min.js.map +0 -1
  496. package/dist/chunks/rgbdEncode.fragment-Wd9cTDxy.esm.js +0 -17
  497. package/dist/chunks/rgbdEncode.fragment-Wd9cTDxy.esm.js.map +0 -1
  498. package/dist/chunks/rgbdEncode.fragment-X-RqQAkc.esm.js +0 -17
  499. package/dist/chunks/rgbdEncode.fragment-X-RqQAkc.esm.js.map +0 -1
  500. package/dist/chunks/splatFileLoader-DQ9jOQE9.esm.min.js +0 -2
  501. package/dist/chunks/splatFileLoader-DQ9jOQE9.esm.min.js.map +0 -1
  502. package/dist/chunks/splatFileLoader-hdSfXVdE.esm.js +0 -3154
  503. package/dist/chunks/splatFileLoader-hdSfXVdE.esm.js.map +0 -1
  504. package/dist/chunks/standardMaterial-Cq-J9fif.esm.min.js +0 -2
  505. package/dist/chunks/standardMaterial-Cq-J9fif.esm.min.js.map +0 -1
  506. package/dist/chunks/standardMaterial-GIGkmsd2.esm.js +0 -1809
  507. package/dist/chunks/standardMaterial-GIGkmsd2.esm.js.map +0 -1
  508. package/dist/chunks/stlFileLoader--AN8pgtb.esm.min.js +0 -2
  509. package/dist/chunks/stlFileLoader--AN8pgtb.esm.min.js.map +0 -1
  510. package/dist/chunks/stlFileLoader-BjJ0Yz5v.esm.js +0 -237
  511. package/dist/chunks/stlFileLoader-BjJ0Yz5v.esm.js.map +0 -1
  512. package/dist/chunks/tgaTextureLoader-B3gQ-Dwh.esm.min.js +0 -2
  513. package/dist/chunks/tgaTextureLoader-B3gQ-Dwh.esm.min.js.map +0 -1
  514. package/dist/chunks/tgaTextureLoader-BmEYbSF8.esm.js +0 -349
  515. package/dist/chunks/tgaTextureLoader-BmEYbSF8.esm.js.map +0 -1
  516. package/dist/chunks/thinInstanceMesh-DLE1cPa9.esm.js +0 -314
  517. package/dist/chunks/thinInstanceMesh-DLE1cPa9.esm.js.map +0 -1
  518. package/dist/chunks/thinInstanceMesh-DgJgeFTD.esm.min.js +0 -2
  519. package/dist/chunks/thinInstanceMesh-DgJgeFTD.esm.min.js.map +0 -1
  520. package/dist/chunks/vertexColorMixing-Dn7oXj03.esm.js +0 -528
  521. package/dist/chunks/vertexColorMixing-Dn7oXj03.esm.js.map +0 -1
  522. package/dist/chunks/vertexColorMixing-cD_XcjBD.esm.min.js +0 -2
  523. package/dist/chunks/vertexColorMixing-cD_XcjBD.esm.min.js.map +0 -1
  524. package/dist/chunks/workerPool-BUOov2K1.esm.js +0 -122
  525. package/dist/chunks/workerPool-BUOov2K1.esm.js.map +0 -1
  526. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js +0 -2
  527. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js.map +0 -1
  528. package/lib/index.d.ts +0 -275
  529. package/lib/index.js +0 -942
  530. package/lib/index.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"engine-DDK673Fr.esm.js","sources":["../../../../../dev/core/dist/Misc/performanceMonitor.js","../../../../../dev/core/dist/Engines/Extensions/engine.alpha.js","../../../../../dev/core/dist/Engines/Extensions/engine.dynamicBuffer.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","../../../../../dev/core/dist/Engines/engine.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 { ThinEngine } from \"../../Engines/thinEngine\";\nimport { Constants } from \"../constants\";\nThinEngine.prototype.setAlphaMode = function (mode, noDepthWriteChange = false) {\n if (this._alphaMode === mode) {\n if (!noDepthWriteChange) {\n // Make sure we still have the correct depth mask according to the alpha mode (a transparent material could have forced writting to the depth buffer, for instance)\n const depthMask = mode === Constants.ALPHA_DISABLE;\n if (this.depthCullingState.depthMask !== depthMask) {\n this.depthCullingState.depthMask = depthMask;\n }\n }\n return;\n }\n switch (mode) {\n case Constants.ALPHA_DISABLE:\n this._alphaState.alphaBlend = false;\n break;\n case Constants.ALPHA_PREMULTIPLIED:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA, this._gl.ONE, this._gl.ONE);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_PREMULTIPLIED_PORTERDUFF:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA, this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_COMBINE:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA, this._gl.ONE_MINUS_SRC_ALPHA, this._gl.ONE, this._gl.ONE);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_ONEONE:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE, this._gl.ZERO, this._gl.ONE);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_ADD:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA, this._gl.ONE, this._gl.ZERO, this._gl.ONE);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_SUBTRACT:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ZERO, this._gl.ONE_MINUS_SRC_COLOR, this._gl.ONE, this._gl.ONE);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_MULTIPLY:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.DST_COLOR, this._gl.ZERO, this._gl.ONE, this._gl.ONE);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_MAXIMIZED:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA, this._gl.ONE_MINUS_SRC_COLOR, this._gl.ONE, this._gl.ONE);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_INTERPOLATE:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.CONSTANT_COLOR, this._gl.ONE_MINUS_CONSTANT_COLOR, this._gl.CONSTANT_ALPHA, this._gl.ONE_MINUS_CONSTANT_ALPHA);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_SCREENMODE:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE_MINUS_SRC_COLOR, this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_ONEONE_ONEONE:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE, this._gl.ONE, this._gl.ONE);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_ALPHATOCOLOR:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.DST_ALPHA, this._gl.ONE, this._gl.ZERO, this._gl.ZERO);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_REVERSEONEMINUS:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE_MINUS_DST_COLOR, this._gl.ONE_MINUS_SRC_COLOR, this._gl.ONE_MINUS_DST_ALPHA, this._gl.ONE_MINUS_SRC_ALPHA);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_SRC_DSTONEMINUSSRCALPHA:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA, this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_ONEONE_ONEZERO:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE, this._gl.ONE, this._gl.ZERO);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_EXCLUSION:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE_MINUS_DST_COLOR, this._gl.ONE_MINUS_SRC_COLOR, this._gl.ZERO, this._gl.ONE);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_LAYER_ACCUMULATE:\n // Same as ALPHA_COMBINE but accumulates (1 - alpha) values in the alpha channel for a later readout in order independant transparency\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA, this._gl.ONE_MINUS_SRC_ALPHA, this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA);\n this._alphaState.alphaBlend = true;\n break;\n }\n if (!noDepthWriteChange) {\n this.depthCullingState.depthMask = mode === Constants.ALPHA_DISABLE;\n }\n this._alphaMode = mode;\n};\n//# sourceMappingURL=engine.alpha.js.map","import { ThinEngine } from \"../../Engines/thinEngine\";\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nThinEngine.prototype.updateDynamicIndexBuffer = function (indexBuffer, indices, offset = 0) {\n // Force cache update\n this._currentBoundBuffer[this._gl.ELEMENT_ARRAY_BUFFER] = null;\n this.bindIndexBuffer(indexBuffer);\n let view;\n if (indexBuffer.is32Bits) {\n // anything else than Uint32Array needs to be converted to Uint32Array\n view = indices instanceof Uint32Array ? indices : new Uint32Array(indices);\n }\n else {\n // anything else than Uint16Array needs to be converted to Uint16Array\n view = indices instanceof Uint16Array ? indices : new Uint16Array(indices);\n }\n this._gl.bufferData(this._gl.ELEMENT_ARRAY_BUFFER, view, this._gl.DYNAMIC_DRAW);\n this._resetIndexBufferBinding();\n};\nThinEngine.prototype.updateDynamicVertexBuffer = function (vertexBuffer, data, byteOffset, byteLength) {\n this.bindArrayBuffer(vertexBuffer);\n if (byteOffset === undefined) {\n byteOffset = 0;\n }\n const dataLength = data.byteLength || data.length;\n if (byteLength === undefined || (byteLength >= dataLength && byteOffset === 0)) {\n if (data instanceof Array) {\n this._gl.bufferSubData(this._gl.ARRAY_BUFFER, byteOffset, new Float32Array(data));\n }\n else {\n this._gl.bufferSubData(this._gl.ARRAY_BUFFER, byteOffset, data);\n }\n }\n else {\n if (data instanceof Array) {\n this._gl.bufferSubData(this._gl.ARRAY_BUFFER, 0, new Float32Array(data).subarray(byteOffset, byteOffset + byteLength));\n }\n else {\n if (data instanceof ArrayBuffer) {\n data = new Uint8Array(data, byteOffset, byteLength);\n }\n else {\n data = new Uint8Array(data.buffer, data.byteOffset + byteOffset, byteLength);\n }\n this._gl.bufferSubData(this._gl.ARRAY_BUFFER, 0, data);\n }\n }\n this._resetVertexBufferBinding();\n};\n//# sourceMappingURL=engine.dynamicBuffer.js.map","import { 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","import { InternalTexture } from \"../Materials/Textures/internalTexture\";\nimport { EngineStore } from \"./engineStore\";\nimport { ThinEngine } from \"./thinEngine\";\nimport { Constants } from \"./constants\";\nimport { PerformanceMonitor } from \"../Misc/performanceMonitor\";\nimport { WebGLDataBuffer } from \"../Meshes/WebGL/webGLDataBuffer\";\nimport { Logger } from \"../Misc/logger\";\nimport { WebGLHardwareTexture } from \"./WebGL/webGLHardwareTexture\";\nimport \"./Extensions/engine.alpha\";\nimport \"./Extensions/engine.readTexture\";\nimport \"./Extensions/engine.dynamicBuffer\";\nimport \"./AbstractEngine/abstractEngine.loadingScreen\";\nimport \"./AbstractEngine/abstractEngine.dom\";\nimport \"./AbstractEngine/abstractEngine.states\";\nimport \"./AbstractEngine/abstractEngine.renderPass\";\nimport \"./AbstractEngine/abstractEngine.texture\";\nimport { AbstractEngine } from \"./abstractEngine\";\nimport { CreateImageBitmapFromSource, ExitFullscreen, ExitPointerlock, GetFontOffset, RequestFullscreen, RequestPointerlock, ResizeImageBitmap, _CommonDispose, _CommonInit, } from \"./engine.common\";\nimport { PerfCounter } from \"../Misc/perfCounter\";\nimport \"../Audio/audioEngine\";\n/**\n * The engine class is responsible for interfacing with all lower-level APIs such as WebGL and Audio\n */\nexport class Engine extends ThinEngine {\n /**\n * Returns the current npm package of the sdk\n */\n // Not mixed with Version for tooling purpose.\n static get NpmPackage() {\n return AbstractEngine.NpmPackage;\n }\n /**\n * Returns the current version of the framework\n */\n static get Version() {\n return AbstractEngine.Version;\n }\n /** Gets the list of created engines */\n static get Instances() {\n return EngineStore.Instances;\n }\n /**\n * Gets the latest created engine\n */\n static get LastCreatedEngine() {\n return EngineStore.LastCreatedEngine;\n }\n /**\n * Gets the latest created scene\n */\n static get LastCreatedScene() {\n return EngineStore.LastCreatedScene;\n }\n /** @internal */\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * Method called to create the default loading screen.\n * This can be overridden in your own app.\n * @param canvas The rendering canvas element\n * @returns The loading screen\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n static DefaultLoadingScreenFactory(canvas) {\n return AbstractEngine.DefaultLoadingScreenFactory(canvas);\n }\n get _supportsHardwareTextureRescaling() {\n return !!Engine._RescalePostProcessFactory;\n }\n _measureFps() {\n this._performanceMonitor.sampleFrame();\n this._fps = this._performanceMonitor.averageFPS;\n this._deltaTime = this._performanceMonitor.instantaneousFrameTime || 0;\n }\n /**\n * Gets the performance monitor attached to this engine\n * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/optimize_your_scene#engineinstrumentation\n */\n get performanceMonitor() {\n return this._performanceMonitor;\n }\n // Events\n /**\n * Creates a new engine\n * @param canvasOrContext defines the canvas or WebGL context to use for rendering. If you provide a WebGL context, Babylon.js will not hook events on the canvas (like pointers, keyboards, etc...) so no event observables will be available. This is mostly used when Babylon.js is used as a plugin on a system which already used the WebGL context\n * @param antialias defines enable antialiasing (default: false)\n * @param options defines further options to be sent to the getContext() function\n * @param adaptToDeviceRatio defines whether to adapt to the device's viewport characteristics (default: false)\n */\n constructor(canvasOrContext, antialias, options, adaptToDeviceRatio = false) {\n super(canvasOrContext, antialias, options, adaptToDeviceRatio);\n // Members\n /**\n * If set, will be used to request the next animation frame for the render loop\n */\n this.customAnimationFrameRequester = null;\n this._performanceMonitor = new PerformanceMonitor();\n this._drawCalls = new PerfCounter();\n if (!canvasOrContext) {\n return;\n }\n this._features.supportRenderPasses = true;\n options = this._creationOptions;\n if (canvasOrContext.getContext) {\n const canvas = canvasOrContext;\n this._sharedInit(canvas);\n }\n }\n _initGLContext() {\n super._initGLContext();\n this._rescalePostProcess = null;\n }\n /**\n * Shared initialization across engines types.\n * @param canvas The canvas associated with this instance of the engine.\n */\n _sharedInit(canvas) {\n super._sharedInit(canvas);\n _CommonInit(this, canvas, this._creationOptions);\n }\n /**\n * Resize an image and returns the image data as an uint8array\n * @param image image to resize\n * @param bufferWidth destination buffer width\n * @param bufferHeight destination buffer height\n * @returns an uint8array containing RGBA values of bufferWidth * bufferHeight size\n */\n resizeImageBitmap(image, bufferWidth, bufferHeight) {\n return ResizeImageBitmap(this, image, bufferWidth, bufferHeight);\n }\n /**\n * Engine abstraction for loading and creating an image bitmap from a given source string.\n * @param imageSource source to load the image from.\n * @param options An object that sets options for the image's extraction.\n * @returns ImageBitmap\n */\n _createImageBitmapFromSource(imageSource, options) {\n return CreateImageBitmapFromSource(this, imageSource, options);\n }\n /**\n * Toggle full screen mode\n * @param requestPointerLock defines if a pointer lock should be requested from the user\n */\n switchFullscreen(requestPointerLock) {\n if (this.isFullscreen) {\n this.exitFullscreen();\n }\n else {\n this.enterFullscreen(requestPointerLock);\n }\n }\n /**\n * Enters full screen mode\n * @param requestPointerLock defines if a pointer lock should be requested from the user\n */\n enterFullscreen(requestPointerLock) {\n if (!this.isFullscreen) {\n this._pointerLockRequested = requestPointerLock;\n if (this._renderingCanvas) {\n RequestFullscreen(this._renderingCanvas);\n }\n }\n }\n /**\n * Exits full screen mode\n */\n exitFullscreen() {\n if (this.isFullscreen) {\n ExitFullscreen();\n }\n }\n /** States */\n /**\n * Sets a boolean indicating if the dithering state is enabled or disabled\n * @param value defines the dithering state\n */\n setDitheringState(value) {\n if (value) {\n this._gl.enable(this._gl.DITHER);\n }\n else {\n this._gl.disable(this._gl.DITHER);\n }\n }\n /**\n * Sets a boolean indicating if the rasterizer state is enabled or disabled\n * @param value defines the rasterizer state\n */\n setRasterizerState(value) {\n if (value) {\n this._gl.disable(this._gl.RASTERIZER_DISCARD);\n }\n else {\n this._gl.enable(this._gl.RASTERIZER_DISCARD);\n }\n }\n /**\n * Directly set the WebGL Viewport\n * @param x defines the x coordinate of the viewport (in screen space)\n * @param y defines the y coordinate of the viewport (in screen space)\n * @param width defines the width of the viewport (in screen space)\n * @param height defines the height of the viewport (in screen space)\n * @returns the current viewport Object (if any) that is being replaced by this call. You can restore this viewport later on to go back to the original state\n */\n setDirectViewport(x, y, width, height) {\n const currentViewport = this._cachedViewport;\n this._cachedViewport = null;\n this._viewport(x, y, width, height);\n return currentViewport;\n }\n /**\n * Executes a scissor clear (ie. a clear on a specific portion of the screen)\n * @param x defines the x-coordinate of the bottom left corner of the clear rectangle\n * @param y defines the y-coordinate of the corner of the clear rectangle\n * @param width defines the width of the clear rectangle\n * @param height defines the height of the clear rectangle\n * @param clearColor defines the clear color\n */\n scissorClear(x, y, width, height, clearColor) {\n this.enableScissor(x, y, width, height);\n this.clear(clearColor, true, true, true);\n this.disableScissor();\n }\n /**\n * Enable scissor test on a specific rectangle (ie. render will only be executed on a specific portion of the screen)\n * @param x defines the x-coordinate of the bottom left corner of the clear rectangle\n * @param y defines the y-coordinate of the corner of the clear rectangle\n * @param width defines the width of the clear rectangle\n * @param height defines the height of the clear rectangle\n */\n enableScissor(x, y, width, height) {\n const gl = this._gl;\n // Change state\n gl.enable(gl.SCISSOR_TEST);\n gl.scissor(x, y, width, height);\n }\n /**\n * Disable previously set scissor test rectangle\n */\n disableScissor() {\n const gl = this._gl;\n gl.disable(gl.SCISSOR_TEST);\n }\n /**\n * @internal\n */\n _loadFileAsync(url, offlineProvider, useArrayBuffer) {\n return new Promise((resolve, reject) => {\n this._loadFile(url, (data) => {\n resolve(data);\n }, undefined, offlineProvider, useArrayBuffer, (request, exception) => {\n reject(exception);\n });\n });\n }\n /**\n * Gets the source code of the vertex shader associated with a specific webGL program\n * @param program defines the program to use\n * @returns a string containing the source code of the vertex shader associated with the program\n */\n getVertexShaderSource(program) {\n const shaders = this._gl.getAttachedShaders(program);\n if (!shaders) {\n return null;\n }\n return this._gl.getShaderSource(shaders[0]);\n }\n /**\n * Gets the source code of the fragment shader associated with a specific webGL program\n * @param program defines the program to use\n * @returns a string containing the source code of the fragment shader associated with the program\n */\n getFragmentShaderSource(program) {\n const shaders = this._gl.getAttachedShaders(program);\n if (!shaders) {\n return null;\n }\n return this._gl.getShaderSource(shaders[1]);\n }\n /**\n * sets the object from which width and height will be taken from when getting render width and height\n * Will fallback to the gl object\n * @param dimensions the framebuffer width and height that will be used.\n */\n set framebufferDimensionsObject(dimensions) {\n this._framebufferDimensionsObject = dimensions;\n if (this._framebufferDimensionsObject) {\n this.onResizeObservable.notifyObservers(this);\n }\n }\n _rebuildBuffers() {\n // Index / Vertex\n for (const scene of this.scenes) {\n scene.resetCachedMaterial();\n scene._rebuildGeometries();\n }\n for (const scene of this._virtualScenes) {\n scene.resetCachedMaterial();\n scene._rebuildGeometries();\n }\n super._rebuildBuffers();\n }\n /**\n * Get Font size information\n * @param font font name\n * @returns an object containing ascent, height and descent\n */\n getFontOffset(font) {\n return GetFontOffset(font);\n }\n _cancelFrame() {\n if (this.customAnimationFrameRequester) {\n if (this._frameHandler !== 0) {\n this._frameHandler = 0;\n const { cancelAnimationFrame } = this.customAnimationFrameRequester;\n if (cancelAnimationFrame) {\n cancelAnimationFrame(this.customAnimationFrameRequester.requestID);\n }\n }\n }\n else {\n super._cancelFrame();\n }\n }\n _renderLoop() {\n // Reset the frame handler before rendering a frame to determine if a new frame has been queued.\n this._frameHandler = 0;\n if (!this._contextWasLost) {\n let shouldRender = true;\n if (this.isDisposed || (!this.renderEvenInBackground && this._windowIsBackground)) {\n shouldRender = false;\n }\n if (shouldRender) {\n // Start new frame\n this.beginFrame();\n // Child canvases\n if (!this._renderViews()) {\n // Main frame\n this._renderFrame();\n }\n // Present\n this.endFrame();\n }\n }\n // The first condition prevents queuing another frame if we no longer have active render loops (e.g., if\n // `stopRenderLoop` is called mid frame). The second condition prevents queuing another frame if one has\n // already been queued (e.g., if `stopRenderLoop` and `runRenderLoop` is called mid frame).\n if (this._activeRenderLoops.length > 0 && this._frameHandler === 0) {\n if (this.customAnimationFrameRequester) {\n this.customAnimationFrameRequester.requestID = this._queueNewFrame(this.customAnimationFrameRequester.renderFunction || this._boundRenderFunction, this.customAnimationFrameRequester);\n this._frameHandler = this.customAnimationFrameRequester.requestID;\n }\n else {\n this._frameHandler = this._queueNewFrame(this._boundRenderFunction, this.getHostWindow());\n }\n }\n }\n /**\n * Enters Pointerlock mode\n */\n enterPointerlock() {\n if (this._renderingCanvas) {\n RequestPointerlock(this._renderingCanvas);\n }\n }\n /**\n * Exits Pointerlock mode\n */\n exitPointerlock() {\n ExitPointerlock();\n }\n /**\n * Begin a new frame\n */\n beginFrame() {\n this._measureFps();\n super.beginFrame();\n }\n _deletePipelineContext(pipelineContext) {\n const webGLPipelineContext = pipelineContext;\n if (webGLPipelineContext && webGLPipelineContext.program) {\n if (webGLPipelineContext.transformFeedback) {\n this.deleteTransformFeedback(webGLPipelineContext.transformFeedback);\n webGLPipelineContext.transformFeedback = null;\n }\n }\n super._deletePipelineContext(pipelineContext);\n }\n createShaderProgram(pipelineContext, vertexCode, fragmentCode, defines, context, transformFeedbackVaryings = null) {\n context = context || this._gl;\n this.onBeforeShaderCompilationObservable.notifyObservers(this);\n const program = super.createShaderProgram(pipelineContext, vertexCode, fragmentCode, defines, context, transformFeedbackVaryings);\n this.onAfterShaderCompilationObservable.notifyObservers(this);\n return program;\n }\n _createShaderProgram(pipelineContext, vertexShader, fragmentShader, context, transformFeedbackVaryings = null) {\n const shaderProgram = context.createProgram();\n pipelineContext.program = shaderProgram;\n if (!shaderProgram) {\n throw new Error(\"Unable to create program\");\n }\n context.attachShader(shaderProgram, vertexShader);\n context.attachShader(shaderProgram, fragmentShader);\n if (this.webGLVersion > 1 && transformFeedbackVaryings) {\n const transformFeedback = this.createTransformFeedback();\n this.bindTransformFeedback(transformFeedback);\n this.setTranformFeedbackVaryings(shaderProgram, transformFeedbackVaryings);\n pipelineContext.transformFeedback = transformFeedback;\n }\n context.linkProgram(shaderProgram);\n if (this.webGLVersion > 1 && transformFeedbackVaryings) {\n this.bindTransformFeedback(null);\n }\n pipelineContext.context = context;\n pipelineContext.vertexShader = vertexShader;\n pipelineContext.fragmentShader = fragmentShader;\n if (!pipelineContext.isParallelCompiled) {\n this._finalizePipelineContext(pipelineContext);\n }\n return shaderProgram;\n }\n /**\n * @internal\n */\n _releaseTexture(texture) {\n super._releaseTexture(texture);\n }\n /**\n * @internal\n */\n _releaseRenderTargetWrapper(rtWrapper) {\n super._releaseRenderTargetWrapper(rtWrapper);\n // Set output texture of post process to null if the framebuffer has been released/disposed\n this.scenes.forEach((scene) => {\n scene.postProcesses.forEach((postProcess) => {\n if (postProcess._outputTexture === rtWrapper) {\n postProcess._outputTexture = null;\n }\n });\n scene.cameras.forEach((camera) => {\n camera._postProcesses.forEach((postProcess) => {\n if (postProcess) {\n if (postProcess._outputTexture === rtWrapper) {\n postProcess._outputTexture = null;\n }\n }\n });\n });\n });\n }\n /**\n * @internal\n * Rescales a texture\n * @param source input texture\n * @param destination destination texture\n * @param scene scene to use to render the resize\n * @param internalFormat format to use when resizing\n * @param onComplete callback to be called when resize has completed\n */\n _rescaleTexture(source, destination, scene, internalFormat, onComplete) {\n this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_MAG_FILTER, this._gl.LINEAR);\n this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_MIN_FILTER, this._gl.LINEAR);\n this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_WRAP_S, this._gl.CLAMP_TO_EDGE);\n this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_WRAP_T, this._gl.CLAMP_TO_EDGE);\n const rtt = this.createRenderTargetTexture({\n width: destination.width,\n height: destination.height,\n }, {\n generateMipMaps: false,\n type: Constants.TEXTURETYPE_UNSIGNED_INT,\n samplingMode: Constants.TEXTURE_BILINEAR_SAMPLINGMODE,\n generateDepthBuffer: false,\n generateStencilBuffer: false,\n });\n if (!this._rescalePostProcess && Engine._RescalePostProcessFactory) {\n this._rescalePostProcess = Engine._RescalePostProcessFactory(this);\n }\n if (this._rescalePostProcess) {\n this._rescalePostProcess.externalTextureSamplerBinding = true;\n const onCompiled = () => {\n this._rescalePostProcess.onApply = function (effect) {\n effect._bindTexture(\"textureSampler\", source);\n };\n let hostingScene = scene;\n if (!hostingScene) {\n hostingScene = this.scenes[this.scenes.length - 1];\n }\n hostingScene.postProcessManager.directRender([this._rescalePostProcess], rtt, true);\n this._bindTextureDirectly(this._gl.TEXTURE_2D, destination, true);\n this._gl.copyTexImage2D(this._gl.TEXTURE_2D, 0, internalFormat, 0, 0, destination.width, destination.height, 0);\n this.unBindFramebuffer(rtt);\n rtt.dispose();\n if (onComplete) {\n onComplete();\n }\n };\n const effect = this._rescalePostProcess.getEffect();\n if (effect) {\n effect.executeWhenCompiled(onCompiled);\n }\n else {\n this._rescalePostProcess.onEffectCreatedObservable.addOnce((effect) => {\n effect.executeWhenCompiled(onCompiled);\n });\n }\n }\n }\n /**\n * Wraps an external web gl texture in a Babylon texture.\n * @param texture defines the external texture\n * @param hasMipMaps defines whether the external texture has mip maps (default: false)\n * @param samplingMode defines the sampling mode for the external texture (default: Constants.TEXTURE_TRILINEAR_SAMPLINGMODE)\n * @param width defines the width for the external texture (default: 0)\n * @param height defines the height for the external texture (default: 0)\n * @returns the babylon internal texture\n */\n wrapWebGLTexture(texture, hasMipMaps = false, samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE, width = 0, height = 0) {\n const hardwareTexture = new WebGLHardwareTexture(texture, this._gl);\n const internalTexture = new InternalTexture(this, 0 /* InternalTextureSource.Unknown */, true);\n internalTexture._hardwareTexture = hardwareTexture;\n internalTexture.baseWidth = width;\n internalTexture.baseHeight = height;\n internalTexture.width = width;\n internalTexture.height = height;\n internalTexture.isReady = true;\n internalTexture.useMipMaps = hasMipMaps;\n this.updateTextureSamplingMode(samplingMode, internalTexture);\n return internalTexture;\n }\n /**\n * @internal\n */\n _uploadImageToTexture(texture, image, faceIndex = 0, lod = 0) {\n const gl = this._gl;\n const textureType = this._getWebGLTextureType(texture.type);\n const format = this._getInternalFormat(texture.format);\n const internalFormat = this._getRGBABufferInternalSizedFormat(texture.type, format);\n const bindTarget = texture.isCube ? gl.TEXTURE_CUBE_MAP : gl.TEXTURE_2D;\n this._bindTextureDirectly(bindTarget, texture, true);\n this._unpackFlipY(texture.invertY);\n let target = gl.TEXTURE_2D;\n if (texture.isCube) {\n target = gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex;\n }\n gl.texImage2D(target, lod, internalFormat, format, textureType, image);\n this._bindTextureDirectly(bindTarget, null, true);\n }\n /**\n * Updates a depth texture Comparison Mode and Function.\n * If the comparison Function is equal to 0, the mode will be set to none.\n * Otherwise, this only works in webgl 2 and requires a shadow sampler in the shader.\n * @param texture The texture to set the comparison function for\n * @param comparisonFunction The comparison function to set, 0 if no comparison required\n */\n updateTextureComparisonFunction(texture, comparisonFunction) {\n if (this.webGLVersion === 1) {\n Logger.Error(\"WebGL 1 does not support texture comparison.\");\n return;\n }\n const gl = this._gl;\n if (texture.isCube) {\n this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, texture, true);\n if (comparisonFunction === 0) {\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_COMPARE_FUNC, Constants.LEQUAL);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_COMPARE_MODE, gl.NONE);\n }\n else {\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_COMPARE_FUNC, comparisonFunction);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_COMPARE_MODE, gl.COMPARE_REF_TO_TEXTURE);\n }\n this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, null);\n }\n else {\n this._bindTextureDirectly(this._gl.TEXTURE_2D, texture, true);\n if (comparisonFunction === 0) {\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_COMPARE_FUNC, Constants.LEQUAL);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_COMPARE_MODE, gl.NONE);\n }\n else {\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_COMPARE_FUNC, comparisonFunction);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_COMPARE_MODE, gl.COMPARE_REF_TO_TEXTURE);\n }\n this._bindTextureDirectly(this._gl.TEXTURE_2D, null);\n }\n texture._comparisonFunction = comparisonFunction;\n }\n /**\n * Creates a webGL buffer to use with instantiation\n * @param capacity defines the size of the buffer\n * @returns the webGL buffer\n */\n createInstancesBuffer(capacity) {\n const buffer = this._gl.createBuffer();\n if (!buffer) {\n throw new Error(\"Unable to create instance buffer\");\n }\n const result = new WebGLDataBuffer(buffer);\n result.capacity = capacity;\n this.bindArrayBuffer(result);\n this._gl.bufferData(this._gl.ARRAY_BUFFER, capacity, this._gl.DYNAMIC_DRAW);\n result.references = 1;\n return result;\n }\n /**\n * Delete a webGL buffer used with instantiation\n * @param buffer defines the webGL buffer to delete\n */\n deleteInstancesBuffer(buffer) {\n this._gl.deleteBuffer(buffer);\n }\n _clientWaitAsync(sync, flags = 0, intervalms = 10) {\n const gl = this._gl;\n return new Promise((resolve, reject) => {\n const check = () => {\n const res = gl.clientWaitSync(sync, flags, 0);\n if (res == gl.WAIT_FAILED) {\n reject();\n return;\n }\n if (res == gl.TIMEOUT_EXPIRED) {\n setTimeout(check, intervalms);\n return;\n }\n resolve();\n };\n check();\n });\n }\n /**\n * @internal\n */\n _readPixelsAsync(x, y, w, h, format, type, outputBuffer) {\n if (this._webGLVersion < 2) {\n throw new Error(\"_readPixelsAsync only work on WebGL2+\");\n }\n const gl = this._gl;\n const buf = gl.createBuffer();\n gl.bindBuffer(gl.PIXEL_PACK_BUFFER, buf);\n gl.bufferData(gl.PIXEL_PACK_BUFFER, outputBuffer.byteLength, gl.STREAM_READ);\n gl.readPixels(x, y, w, h, format, type, 0);\n gl.bindBuffer(gl.PIXEL_PACK_BUFFER, null);\n const sync = gl.fenceSync(gl.SYNC_GPU_COMMANDS_COMPLETE, 0);\n if (!sync) {\n return null;\n }\n gl.flush();\n return this._clientWaitAsync(sync, 0, 10).then(() => {\n gl.deleteSync(sync);\n gl.bindBuffer(gl.PIXEL_PACK_BUFFER, buf);\n gl.getBufferSubData(gl.PIXEL_PACK_BUFFER, 0, outputBuffer);\n gl.bindBuffer(gl.PIXEL_PACK_BUFFER, null);\n gl.deleteBuffer(buf);\n return outputBuffer;\n });\n }\n dispose() {\n this.hideLoadingUI();\n // Rescale PP\n if (this._rescalePostProcess) {\n this._rescalePostProcess.dispose();\n }\n _CommonDispose(this, this._renderingCanvas);\n super.dispose();\n }\n}\n// Const statics\n/** Defines that alpha blending is disabled */\nEngine.ALPHA_DISABLE = Constants.ALPHA_DISABLE;\n/** Defines that alpha blending to SRC ALPHA * SRC + DEST */\nEngine.ALPHA_ADD = Constants.ALPHA_ADD;\n/** Defines that alpha blending to SRC ALPHA * SRC + (1 - SRC ALPHA) * DEST */\nEngine.ALPHA_COMBINE = Constants.ALPHA_COMBINE;\n/** Defines that alpha blending to DEST - SRC * DEST */\nEngine.ALPHA_SUBTRACT = Constants.ALPHA_SUBTRACT;\n/** Defines that alpha blending to SRC * DEST */\nEngine.ALPHA_MULTIPLY = Constants.ALPHA_MULTIPLY;\n/** Defines that alpha blending to SRC ALPHA * SRC + (1 - SRC) * DEST */\nEngine.ALPHA_MAXIMIZED = Constants.ALPHA_MAXIMIZED;\n/** Defines that alpha blending to SRC + DEST */\nEngine.ALPHA_ONEONE = Constants.ALPHA_ONEONE;\n/** Defines that alpha blending to SRC + (1 - SRC ALPHA) * DEST */\nEngine.ALPHA_PREMULTIPLIED = Constants.ALPHA_PREMULTIPLIED;\n/**\n * Defines that alpha blending to SRC + (1 - SRC ALPHA) * DEST\n * Alpha will be set to (1 - SRC ALPHA) * DEST ALPHA\n */\nEngine.ALPHA_PREMULTIPLIED_PORTERDUFF = Constants.ALPHA_PREMULTIPLIED_PORTERDUFF;\n/** Defines that alpha blending to CST * SRC + (1 - CST) * DEST */\nEngine.ALPHA_INTERPOLATE = Constants.ALPHA_INTERPOLATE;\n/**\n * Defines that alpha blending to SRC + (1 - SRC) * DEST\n * Alpha will be set to SRC ALPHA + (1 - SRC ALPHA) * DEST ALPHA\n */\nEngine.ALPHA_SCREENMODE = Constants.ALPHA_SCREENMODE;\n/** Defines that the resource is not delayed*/\nEngine.DELAYLOADSTATE_NONE = Constants.DELAYLOADSTATE_NONE;\n/** Defines that the resource was successfully delay loaded */\nEngine.DELAYLOADSTATE_LOADED = Constants.DELAYLOADSTATE_LOADED;\n/** Defines that the resource is currently delay loading */\nEngine.DELAYLOADSTATE_LOADING = Constants.DELAYLOADSTATE_LOADING;\n/** Defines that the resource is delayed and has not started loading */\nEngine.DELAYLOADSTATE_NOTLOADED = Constants.DELAYLOADSTATE_NOTLOADED;\n// Depht or Stencil test Constants.\n/** Passed to depthFunction or stencilFunction to specify depth or stencil tests will never pass. i.e. Nothing will be drawn */\nEngine.NEVER = Constants.NEVER;\n/** Passed to depthFunction or stencilFunction to specify depth or stencil tests will always pass. i.e. Pixels will be drawn in the order they are drawn */\nEngine.ALWAYS = Constants.ALWAYS;\n/** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is less than the stored value */\nEngine.LESS = Constants.LESS;\n/** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is equals to the stored value */\nEngine.EQUAL = Constants.EQUAL;\n/** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is less than or equal to the stored value */\nEngine.LEQUAL = Constants.LEQUAL;\n/** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is greater than the stored value */\nEngine.GREATER = Constants.GREATER;\n/** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is greater than or equal to the stored value */\nEngine.GEQUAL = Constants.GEQUAL;\n/** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is not equal to the stored value */\nEngine.NOTEQUAL = Constants.NOTEQUAL;\n// Stencil Actions Constants.\n/** Passed to stencilOperation to specify that stencil value must be kept */\nEngine.KEEP = Constants.KEEP;\n/** Passed to stencilOperation to specify that stencil value must be replaced */\nEngine.REPLACE = Constants.REPLACE;\n/** Passed to stencilOperation to specify that stencil value must be incremented */\nEngine.INCR = Constants.INCR;\n/** Passed to stencilOperation to specify that stencil value must be decremented */\nEngine.DECR = Constants.DECR;\n/** Passed to stencilOperation to specify that stencil value must be inverted */\nEngine.INVERT = Constants.INVERT;\n/** Passed to stencilOperation to specify that stencil value must be incremented with wrapping */\nEngine.INCR_WRAP = Constants.INCR_WRAP;\n/** Passed to stencilOperation to specify that stencil value must be decremented with wrapping */\nEngine.DECR_WRAP = Constants.DECR_WRAP;\n/** Texture is not repeating outside of 0..1 UVs */\nEngine.TEXTURE_CLAMP_ADDRESSMODE = Constants.TEXTURE_CLAMP_ADDRESSMODE;\n/** Texture is repeating outside of 0..1 UVs */\nEngine.TEXTURE_WRAP_ADDRESSMODE = Constants.TEXTURE_WRAP_ADDRESSMODE;\n/** Texture is repeating and mirrored */\nEngine.TEXTURE_MIRROR_ADDRESSMODE = Constants.TEXTURE_MIRROR_ADDRESSMODE;\n/** ALPHA */\nEngine.TEXTUREFORMAT_ALPHA = Constants.TEXTUREFORMAT_ALPHA;\n/** LUMINANCE */\nEngine.TEXTUREFORMAT_LUMINANCE = Constants.TEXTUREFORMAT_LUMINANCE;\n/** LUMINANCE_ALPHA */\nEngine.TEXTUREFORMAT_LUMINANCE_ALPHA = Constants.TEXTUREFORMAT_LUMINANCE_ALPHA;\n/** RGB */\nEngine.TEXTUREFORMAT_RGB = Constants.TEXTUREFORMAT_RGB;\n/** RGBA */\nEngine.TEXTUREFORMAT_RGBA = Constants.TEXTUREFORMAT_RGBA;\n/** RED */\nEngine.TEXTUREFORMAT_RED = Constants.TEXTUREFORMAT_RED;\n/** RED (2nd reference) */\nEngine.TEXTUREFORMAT_R = Constants.TEXTUREFORMAT_R;\n/** RG */\nEngine.TEXTUREFORMAT_RG = Constants.TEXTUREFORMAT_RG;\n/** RED_INTEGER */\nEngine.TEXTUREFORMAT_RED_INTEGER = Constants.TEXTUREFORMAT_RED_INTEGER;\n/** RED_INTEGER (2nd reference) */\nEngine.TEXTUREFORMAT_R_INTEGER = Constants.TEXTUREFORMAT_R_INTEGER;\n/** RG_INTEGER */\nEngine.TEXTUREFORMAT_RG_INTEGER = Constants.TEXTUREFORMAT_RG_INTEGER;\n/** RGB_INTEGER */\nEngine.TEXTUREFORMAT_RGB_INTEGER = Constants.TEXTUREFORMAT_RGB_INTEGER;\n/** RGBA_INTEGER */\nEngine.TEXTUREFORMAT_RGBA_INTEGER = Constants.TEXTUREFORMAT_RGBA_INTEGER;\n/** UNSIGNED_BYTE */\nEngine.TEXTURETYPE_UNSIGNED_BYTE = Constants.TEXTURETYPE_UNSIGNED_BYTE;\n/** UNSIGNED_BYTE (2nd reference) */\nEngine.TEXTURETYPE_UNSIGNED_INT = Constants.TEXTURETYPE_UNSIGNED_INT;\n/** FLOAT */\nEngine.TEXTURETYPE_FLOAT = Constants.TEXTURETYPE_FLOAT;\n/** HALF_FLOAT */\nEngine.TEXTURETYPE_HALF_FLOAT = Constants.TEXTURETYPE_HALF_FLOAT;\n/** BYTE */\nEngine.TEXTURETYPE_BYTE = Constants.TEXTURETYPE_BYTE;\n/** SHORT */\nEngine.TEXTURETYPE_SHORT = Constants.TEXTURETYPE_SHORT;\n/** UNSIGNED_SHORT */\nEngine.TEXTURETYPE_UNSIGNED_SHORT = Constants.TEXTURETYPE_UNSIGNED_SHORT;\n/** INT */\nEngine.TEXTURETYPE_INT = Constants.TEXTURETYPE_INT;\n/** UNSIGNED_INT */\nEngine.TEXTURETYPE_UNSIGNED_INTEGER = Constants.TEXTURETYPE_UNSIGNED_INTEGER;\n/** UNSIGNED_SHORT_4_4_4_4 */\nEngine.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4 = Constants.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4;\n/** UNSIGNED_SHORT_5_5_5_1 */\nEngine.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1 = Constants.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1;\n/** UNSIGNED_SHORT_5_6_5 */\nEngine.TEXTURETYPE_UNSIGNED_SHORT_5_6_5 = Constants.TEXTURETYPE_UNSIGNED_SHORT_5_6_5;\n/** UNSIGNED_INT_2_10_10_10_REV */\nEngine.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV = Constants.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV;\n/** UNSIGNED_INT_24_8 */\nEngine.TEXTURETYPE_UNSIGNED_INT_24_8 = Constants.TEXTURETYPE_UNSIGNED_INT_24_8;\n/** UNSIGNED_INT_10F_11F_11F_REV */\nEngine.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV = Constants.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV;\n/** UNSIGNED_INT_5_9_9_9_REV */\nEngine.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV = Constants.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV;\n/** FLOAT_32_UNSIGNED_INT_24_8_REV */\nEngine.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV = Constants.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV;\n/** nearest is mag = nearest and min = nearest and mip = none */\nEngine.TEXTURE_NEAREST_SAMPLINGMODE = Constants.TEXTURE_NEAREST_SAMPLINGMODE;\n/** Bilinear is mag = linear and min = linear and mip = nearest */\nEngine.TEXTURE_BILINEAR_SAMPLINGMODE = Constants.TEXTURE_BILINEAR_SAMPLINGMODE;\n/** Trilinear is mag = linear and min = linear and mip = linear */\nEngine.TEXTURE_TRILINEAR_SAMPLINGMODE = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE;\n/** nearest is mag = nearest and min = nearest and mip = linear */\nEngine.TEXTURE_NEAREST_NEAREST_MIPLINEAR = Constants.TEXTURE_NEAREST_NEAREST_MIPLINEAR;\n/** Bilinear is mag = linear and min = linear and mip = nearest */\nEngine.TEXTURE_LINEAR_LINEAR_MIPNEAREST = Constants.TEXTURE_LINEAR_LINEAR_MIPNEAREST;\n/** Trilinear is mag = linear and min = linear and mip = linear */\nEngine.TEXTURE_LINEAR_LINEAR_MIPLINEAR = Constants.TEXTURE_LINEAR_LINEAR_MIPLINEAR;\n/** mag = nearest and min = nearest and mip = nearest */\nEngine.TEXTURE_NEAREST_NEAREST_MIPNEAREST = Constants.TEXTURE_NEAREST_NEAREST_MIPNEAREST;\n/** mag = nearest and min = linear and mip = nearest */\nEngine.TEXTURE_NEAREST_LINEAR_MIPNEAREST = Constants.TEXTURE_NEAREST_LINEAR_MIPNEAREST;\n/** mag = nearest and min = linear and mip = linear */\nEngine.TEXTURE_NEAREST_LINEAR_MIPLINEAR = Constants.TEXTURE_NEAREST_LINEAR_MIPLINEAR;\n/** mag = nearest and min = linear and mip = none */\nEngine.TEXTURE_NEAREST_LINEAR = Constants.TEXTURE_NEAREST_LINEAR;\n/** mag = nearest and min = nearest and mip = none */\nEngine.TEXTURE_NEAREST_NEAREST = Constants.TEXTURE_NEAREST_NEAREST;\n/** mag = linear and min = nearest and mip = nearest */\nEngine.TEXTURE_LINEAR_NEAREST_MIPNEAREST = Constants.TEXTURE_LINEAR_NEAREST_MIPNEAREST;\n/** mag = linear and min = nearest and mip = linear */\nEngine.TEXTURE_LINEAR_NEAREST_MIPLINEAR = Constants.TEXTURE_LINEAR_NEAREST_MIPLINEAR;\n/** mag = linear and min = linear and mip = none */\nEngine.TEXTURE_LINEAR_LINEAR = Constants.TEXTURE_LINEAR_LINEAR;\n/** mag = linear and min = nearest and mip = none */\nEngine.TEXTURE_LINEAR_NEAREST = Constants.TEXTURE_LINEAR_NEAREST;\n/** Explicit coordinates mode */\nEngine.TEXTURE_EXPLICIT_MODE = Constants.TEXTURE_EXPLICIT_MODE;\n/** Spherical coordinates mode */\nEngine.TEXTURE_SPHERICAL_MODE = Constants.TEXTURE_SPHERICAL_MODE;\n/** Planar coordinates mode */\nEngine.TEXTURE_PLANAR_MODE = Constants.TEXTURE_PLANAR_MODE;\n/** Cubic coordinates mode */\nEngine.TEXTURE_CUBIC_MODE = Constants.TEXTURE_CUBIC_MODE;\n/** Projection coordinates mode */\nEngine.TEXTURE_PROJECTION_MODE = Constants.TEXTURE_PROJECTION_MODE;\n/** Skybox coordinates mode */\nEngine.TEXTURE_SKYBOX_MODE = Constants.TEXTURE_SKYBOX_MODE;\n/** Inverse Cubic coordinates mode */\nEngine.TEXTURE_INVCUBIC_MODE = Constants.TEXTURE_INVCUBIC_MODE;\n/** Equirectangular coordinates mode */\nEngine.TEXTURE_EQUIRECTANGULAR_MODE = Constants.TEXTURE_EQUIRECTANGULAR_MODE;\n/** Equirectangular Fixed coordinates mode */\nEngine.TEXTURE_FIXED_EQUIRECTANGULAR_MODE = Constants.TEXTURE_FIXED_EQUIRECTANGULAR_MODE;\n/** Equirectangular Fixed Mirrored coordinates mode */\nEngine.TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE = Constants.TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE;\n// Texture rescaling mode\n/** Defines that texture rescaling will use a floor to find the closer power of 2 size */\nEngine.SCALEMODE_FLOOR = Constants.SCALEMODE_FLOOR;\n/** Defines that texture rescaling will look for the nearest power of 2 size */\nEngine.SCALEMODE_NEAREST = Constants.SCALEMODE_NEAREST;\n/** Defines that texture rescaling will use a ceil to find the closer power of 2 size */\nEngine.SCALEMODE_CEILING = Constants.SCALEMODE_CEILING;\n//# sourceMappingURL=engine.js.map"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{P as e,T as t,C as n,A as s,I as i,a,E as r,b as _,W as E,c as o,L as l,d as h}from"./index-D5606AHu.esm.min.js";import"./audioEngine-BNEDnVbO.esm.min.js";class c{constructor(e=30){this._enabled=!0,this._rollingFrameTime=new T(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 T{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}}function A(e){if(e.requestPointerLock){const t=e.requestPointerLock();t instanceof Promise?t.then((()=>{e.focus()})).catch((()=>{})):e.focus()}}t.prototype.setAlphaMode=function(e,t=!1){if(this._alphaMode!==e){switch(e){case n.ALPHA_DISABLE:this._alphaState.alphaBlend=!1;break;case n.ALPHA_PREMULTIPLIED:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE,this._gl.ONE_MINUS_SRC_ALPHA,this._gl.ONE,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case n.ALPHA_PREMULTIPLIED_PORTERDUFF:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE,this._gl.ONE_MINUS_SRC_ALPHA,this._gl.ONE,this._gl.ONE_MINUS_SRC_ALPHA),this._alphaState.alphaBlend=!0;break;case n.ALPHA_COMBINE:this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA,this._gl.ONE_MINUS_SRC_ALPHA,this._gl.ONE,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case n.ALPHA_ONEONE:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE,this._gl.ONE,this._gl.ZERO,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case n.ALPHA_ADD:this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA,this._gl.ONE,this._gl.ZERO,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case n.ALPHA_SUBTRACT:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ZERO,this._gl.ONE_MINUS_SRC_COLOR,this._gl.ONE,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case n.ALPHA_MULTIPLY:this._alphaState.setAlphaBlendFunctionParameters(this._gl.DST_COLOR,this._gl.ZERO,this._gl.ONE,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case n.ALPHA_MAXIMIZED:this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA,this._gl.ONE_MINUS_SRC_COLOR,this._gl.ONE,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case n.ALPHA_INTERPOLATE:this._alphaState.setAlphaBlendFunctionParameters(this._gl.CONSTANT_COLOR,this._gl.ONE_MINUS_CONSTANT_COLOR,this._gl.CONSTANT_ALPHA,this._gl.ONE_MINUS_CONSTANT_ALPHA),this._alphaState.alphaBlend=!0;break;case n.ALPHA_SCREENMODE:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE,this._gl.ONE_MINUS_SRC_COLOR,this._gl.ONE,this._gl.ONE_MINUS_SRC_ALPHA),this._alphaState.alphaBlend=!0;break;case n.ALPHA_ONEONE_ONEONE:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE,this._gl.ONE,this._gl.ONE,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case n.ALPHA_ALPHATOCOLOR:this._alphaState.setAlphaBlendFunctionParameters(this._gl.DST_ALPHA,this._gl.ONE,this._gl.ZERO,this._gl.ZERO),this._alphaState.alphaBlend=!0;break;case n.ALPHA_REVERSEONEMINUS:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE_MINUS_DST_COLOR,this._gl.ONE_MINUS_SRC_COLOR,this._gl.ONE_MINUS_DST_ALPHA,this._gl.ONE_MINUS_SRC_ALPHA),this._alphaState.alphaBlend=!0;break;case n.ALPHA_SRC_DSTONEMINUSSRCALPHA:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE,this._gl.ONE_MINUS_SRC_ALPHA,this._gl.ONE,this._gl.ONE_MINUS_SRC_ALPHA),this._alphaState.alphaBlend=!0;break;case n.ALPHA_ONEONE_ONEZERO:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE,this._gl.ONE,this._gl.ONE,this._gl.ZERO),this._alphaState.alphaBlend=!0;break;case n.ALPHA_EXCLUSION:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE_MINUS_DST_COLOR,this._gl.ONE_MINUS_SRC_COLOR,this._gl.ZERO,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case n.ALPHA_LAYER_ACCUMULATE:this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA,this._gl.ONE_MINUS_SRC_ALPHA,this._gl.ONE,this._gl.ONE_MINUS_SRC_ALPHA),this._alphaState.alphaBlend=!0}t||(this.depthCullingState.depthMask=e===n.ALPHA_DISABLE),this._alphaMode=e}else if(!t){const t=e===n.ALPHA_DISABLE;this.depthCullingState.depthMask!==t&&(this.depthCullingState.depthMask=t)}},t.prototype.updateDynamicIndexBuffer=function(e,t,n=0){let s;this._currentBoundBuffer[this._gl.ELEMENT_ARRAY_BUFFER]=null,this.bindIndexBuffer(e),s=e.is32Bits?t instanceof Uint32Array?t:new Uint32Array(t):t instanceof Uint16Array?t:new Uint16Array(t),this._gl.bufferData(this._gl.ELEMENT_ARRAY_BUFFER,s,this._gl.DYNAMIC_DRAW),this._resetIndexBufferBinding()},t.prototype.updateDynamicVertexBuffer=function(e,t,n,s){this.bindArrayBuffer(e),void 0===n&&(n=0);const i=t.byteLength||t.length;void 0===s||s>=i&&0===n?t instanceof Array?this._gl.bufferSubData(this._gl.ARRAY_BUFFER,n,new Float32Array(t)):this._gl.bufferSubData(this._gl.ARRAY_BUFFER,n,t):t instanceof Array?this._gl.bufferSubData(this._gl.ARRAY_BUFFER,0,new Float32Array(t).subarray(n,n+s)):(t=t instanceof ArrayBuffer?new Uint8Array(t,n,s):new Uint8Array(t.buffer,t.byteOffset+n,s),this._gl.bufferSubData(this._gl.ARRAY_BUFFER,0,t)),this._resetVertexBufferBinding()},s.prototype.displayLoadingUI=function(){if(!i())return;const e=this.loadingScreen;e&&e.displayLoadingUI()},s.prototype.hideLoadingUI=function(){if(!i())return;const e=this._loadingScreen;e&&e.hideLoadingUI()},Object.defineProperty(s.prototype,"loadingScreen",{get:function(){return!this._loadingScreen&&this._renderingCanvas&&(this._loadingScreen=s.DefaultLoadingScreenFactory(this._renderingCanvas)),this._loadingScreen},set:function(e){this._loadingScreen=e},enumerable:!0,configurable:!0}),Object.defineProperty(s.prototype,"loadingUIText",{set:function(e){this.loadingScreen.loadingUIText=e},enumerable:!0,configurable:!0}),Object.defineProperty(s.prototype,"loadingUIBackgroundColor",{set:function(e){this.loadingScreen.loadingUIBackgroundColor=e},enumerable:!0,configurable:!0}),s.prototype.getInputElement=function(){return this._renderingCanvas},s.prototype.getRenderingCanvasClientRect=function(){return this._renderingCanvas?this._renderingCanvas.getBoundingClientRect():null},s.prototype.getInputElementClientRect=function(){return this._renderingCanvas?this.getInputElement().getBoundingClientRect():null},s.prototype.getAspectRatio=function(e,t=!1){const n=e.viewport;return this.getRenderWidth(t)*n.width/(this.getRenderHeight(t)*n.height)},s.prototype.getScreenAspectRatio=function(){return this.getRenderWidth(!0)/this.getRenderHeight(!0)},s.prototype._verifyPointerLock=function(){this._onPointerLockChange?.()},s.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}},s.prototype.getInputElement=function(){return this._renderingCanvas},s.prototype.getDepthFunction=function(){return this._depthCullingState.depthFunc},s.prototype.setDepthFunction=function(e){this._depthCullingState.depthFunc=e},s.prototype.setDepthFunctionToGreater=function(){this.setDepthFunction(n.GREATER)},s.prototype.setDepthFunctionToGreaterOrEqual=function(){this.setDepthFunction(n.GEQUAL)},s.prototype.setDepthFunctionToLess=function(){this.setDepthFunction(n.LESS)},s.prototype.setDepthFunctionToLessOrEqual=function(){this.setDepthFunction(n.LEQUAL)},s.prototype.getDepthWrite=function(){return this._depthCullingState.depthMask},s.prototype.setDepthWrite=function(e){this._depthCullingState.depthMask=e},s.prototype.getStencilBuffer=function(){return this._stencilState.stencilTest},s.prototype.setStencilBuffer=function(e){this._stencilState.stencilTest=e},s.prototype.getStencilMask=function(){return this._stencilState.stencilMask},s.prototype.setStencilMask=function(e){this._stencilState.stencilMask=e},s.prototype.getStencilFunction=function(){return this._stencilState.stencilFunc},s.prototype.getStencilFunctionReference=function(){return this._stencilState.stencilFuncRef},s.prototype.getStencilFunctionMask=function(){return this._stencilState.stencilFuncMask},s.prototype.setStencilFunction=function(e){this._stencilState.stencilFunc=e},s.prototype.setStencilFunctionReference=function(e){this._stencilState.stencilFuncRef=e},s.prototype.setStencilFunctionMask=function(e){this._stencilState.stencilFuncMask=e},s.prototype.getStencilOperationFail=function(){return this._stencilState.stencilOpStencilFail},s.prototype.getStencilOperationDepthFail=function(){return this._stencilState.stencilOpDepthFail},s.prototype.getStencilOperationPass=function(){return this._stencilState.stencilOpStencilDepthPass},s.prototype.setStencilOperationFail=function(e){this._stencilState.stencilOpStencilFail=e},s.prototype.setStencilOperationDepthFail=function(e){this._stencilState.stencilOpDepthFail=e},s.prototype.setStencilOperationPass=function(e){this._stencilState.stencilOpStencilDepthPass=e},s.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()},s.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)},s.prototype.setAlphaConstants=function(e,t,n,s){this._alphaState.setAlphaBlendConstants(e,t,n,s)},s.prototype.getAlphaMode=function(){return this._alphaMode},s.prototype.getAlphaEquation=function(){return this._alphaEquation},s.prototype.getRenderPassNames=function(){return this._renderPassNames},s.prototype.getCurrentRenderPassName=function(){return this._renderPassNames[this.currentRenderPassId]},s.prototype.createRenderPassId=function(e){const t=++s._RenderPassIdCounter;return this._renderPassNames[t]=e??"NONAME",t},s.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 s=n.meshes[t];if(s.subMeshes)for(let t=0;t<s.subMeshes.length;++t){s.subMeshes[t]._removeDrawWrapper(e)}}}};class R extends t{static get NpmPackage(){return s.NpmPackage}static get Version(){return s.Version}static get Instances(){return r.Instances}static get LastCreatedEngine(){return r.LastCreatedEngine}static get LastCreatedScene(){return r.LastCreatedScene}static DefaultLoadingScreenFactory(e){return s.DefaultLoadingScreenFactory(e)}get _supportsHardwareTextureRescaling(){return!!R._RescalePostProcessFactory}_measureFps(){this._performanceMonitor.sampleFrame(),this._fps=this._performanceMonitor.averageFPS,this._deltaTime=this._performanceMonitor.instantaneousFrameTime||0}get performanceMonitor(){return this._performanceMonitor}constructor(e,t,n,s=!1){if(super(e,t,n,s),this.customAnimationFrameRequester=null,this._performanceMonitor=new c,this._drawCalls=new _,e&&(this._features.supportRenderPasses=!0,n=this._creationOptions,e.getContext)){const t=e;this._sharedInit(t)}}_initGLContext(){super._initGLContext(),this._rescalePostProcess=null}_sharedInit(e){super._sharedInit(e),function(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 i=e.getHostWindow();i&&"function"==typeof i.addEventListener&&(i.addEventListener("blur",e._onBlur),i.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),!s.audioEngine&&n.audioEngine&&s.AudioEngineFactory&&(s.audioEngine=s.AudioEngineFactory(e.getRenderingCanvas(),e.getAudioContext(),e.getAudioDestination())),a()&&(e._onFullscreenChange=()=>{e.isFullscreen=!!document.fullscreenElement,e.isFullscreen&&e._pointerLockRequested&&t&&A(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!==s.OfflineProviderFactory,e._deterministicLockstep=!!n.deterministicLockstep,e._lockstepMaxSteps=n.lockstepMaxSteps||0,e._timeStep=n.timeStep||1/60}(this,e,this._creationOptions)}resizeImageBitmap(e,t,n){return function(e,t,n,s){const i=e.createCanvas(n,s).getContext("2d");if(!i)throw new Error("Unable to get 2d context for resizeImageBitmap");return i.drawImage(t,0,0),i.getImageData(0,0,n,s).data}(this,e,t,n)}_createImageBitmapFromSource(e,t){return function(e,t,n){return new Promise(((s,i)=>{const a=new Image;a.onload=()=>{a.decode().then((()=>{e.createImageBitmap(a,n).then((e=>{s(e)}))}))},a.onerror=()=>{i(`Error loading image ${a.src}`)},a.src=t}))}(this,e,t)}switchFullscreen(e){this.isFullscreen?this.exitFullscreen():this.enterFullscreen(e)}enterFullscreen(e){this.isFullscreen||(this._pointerLockRequested=e,this._renderingCanvas&&function(e){const t=e.requestFullscreen||e.webkitRequestFullscreen;t&&t.call(e)}(this._renderingCanvas))}exitFullscreen(){this.isFullscreen&&function(){const e=document;document.exitFullscreen?document.exitFullscreen():e.webkitCancelFullScreen&&e.webkitCancelFullScreen()}()}setDitheringState(e){e?this._gl.enable(this._gl.DITHER):this._gl.disable(this._gl.DITHER)}setRasterizerState(e){e?this._gl.disable(this._gl.RASTERIZER_DISCARD):this._gl.enable(this._gl.RASTERIZER_DISCARD)}setDirectViewport(e,t,n,s){const i=this._cachedViewport;return this._cachedViewport=null,this._viewport(e,t,n,s),i}scissorClear(e,t,n,s,i){this.enableScissor(e,t,n,s),this.clear(i,!0,!0,!0),this.disableScissor()}enableScissor(e,t,n,s){const i=this._gl;i.enable(i.SCISSOR_TEST),i.scissor(e,t,n,s)}disableScissor(){const e=this._gl;e.disable(e.SCISSOR_TEST)}_loadFileAsync(e,t,n){return new Promise(((s,i)=>{this._loadFile(e,(e=>{s(e)}),void 0,t,n,((e,t)=>{i(t)}))}))}getVertexShaderSource(e){const t=this._gl.getAttachedShaders(e);return t?this._gl.getShaderSource(t[0]):null}getFragmentShaderSource(e){const t=this._gl.getAttachedShaders(e);return t?this._gl.getShaderSource(t[1]):null}set framebufferDimensionsObject(e){this._framebufferDimensionsObject=e,this._framebufferDimensionsObject&&this.onResizeObservable.notifyObservers(this)}_rebuildBuffers(){for(const e of this.scenes)e.resetCachedMaterial(),e._rebuildGeometries();for(const e of this._virtualScenes)e.resetCachedMaterial(),e._rebuildGeometries();super._rebuildBuffers()}getFontOffset(e){return function(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 s=document.createElement("div");s.style.whiteSpace="nowrap",s.appendChild(t),s.appendChild(n),document.body.appendChild(s);let i=0,a=0;try{a=n.getBoundingClientRect().top-t.getBoundingClientRect().top,n.style.verticalAlign="baseline",i=n.getBoundingClientRect().top-t.getBoundingClientRect().top}finally{document.body.removeChild(s)}return{ascent:i,height:a,descent:a-i}}(e)}_cancelFrame(){if(this.customAnimationFrameRequester){if(0!==this._frameHandler){this._frameHandler=0;const{cancelAnimationFrame:e}=this.customAnimationFrameRequester;e&&e(this.customAnimationFrameRequester.requestID)}}else super._cancelFrame()}_renderLoop(){if(this._frameHandler=0,!this._contextWasLost){let e=!0;(this.isDisposed||!this.renderEvenInBackground&&this._windowIsBackground)&&(e=!1),e&&(this.beginFrame(),this._renderViews()||this._renderFrame(),this.endFrame())}this._activeRenderLoops.length>0&&0===this._frameHandler&&(this.customAnimationFrameRequester?(this.customAnimationFrameRequester.requestID=this._queueNewFrame(this.customAnimationFrameRequester.renderFunction||this._boundRenderFunction,this.customAnimationFrameRequester),this._frameHandler=this.customAnimationFrameRequester.requestID):this._frameHandler=this._queueNewFrame(this._boundRenderFunction,this.getHostWindow()))}enterPointerlock(){this._renderingCanvas&&A(this._renderingCanvas)}exitPointerlock(){document.exitPointerLock&&document.exitPointerLock()}beginFrame(){this._measureFps(),super.beginFrame()}_deletePipelineContext(e){const t=e;t&&t.program&&t.transformFeedback&&(this.deleteTransformFeedback(t.transformFeedback),t.transformFeedback=null),super._deletePipelineContext(e)}createShaderProgram(e,t,n,s,i,a=null){i=i||this._gl,this.onBeforeShaderCompilationObservable.notifyObservers(this);const r=super.createShaderProgram(e,t,n,s,i,a);return this.onAfterShaderCompilationObservable.notifyObservers(this),r}_createShaderProgram(e,t,n,s,i=null){const a=s.createProgram();if(e.program=a,!a)throw new Error("Unable to create program");if(s.attachShader(a,t),s.attachShader(a,n),this.webGLVersion>1&&i){const t=this.createTransformFeedback();this.bindTransformFeedback(t),this.setTranformFeedbackVaryings(a,i),e.transformFeedback=t}return s.linkProgram(a),this.webGLVersion>1&&i&&this.bindTransformFeedback(null),e.context=s,e.vertexShader=t,e.fragmentShader=n,e.isParallelCompiled||this._finalizePipelineContext(e),a}_releaseTexture(e){super._releaseTexture(e)}_releaseRenderTargetWrapper(e){super._releaseRenderTargetWrapper(e),this.scenes.forEach((t=>{t.postProcesses.forEach((t=>{t._outputTexture===e&&(t._outputTexture=null)})),t.cameras.forEach((t=>{t._postProcesses.forEach((t=>{t&&t._outputTexture===e&&(t._outputTexture=null)}))}))}))}_rescaleTexture(e,t,s,i,a){this._gl.texParameteri(this._gl.TEXTURE_2D,this._gl.TEXTURE_MAG_FILTER,this._gl.LINEAR),this._gl.texParameteri(this._gl.TEXTURE_2D,this._gl.TEXTURE_MIN_FILTER,this._gl.LINEAR),this._gl.texParameteri(this._gl.TEXTURE_2D,this._gl.TEXTURE_WRAP_S,this._gl.CLAMP_TO_EDGE),this._gl.texParameteri(this._gl.TEXTURE_2D,this._gl.TEXTURE_WRAP_T,this._gl.CLAMP_TO_EDGE);const r=this.createRenderTargetTexture({width:t.width,height:t.height},{generateMipMaps:!1,type:n.TEXTURETYPE_UNSIGNED_INT,samplingMode:n.TEXTURE_BILINEAR_SAMPLINGMODE,generateDepthBuffer:!1,generateStencilBuffer:!1});if(!this._rescalePostProcess&&R._RescalePostProcessFactory&&(this._rescalePostProcess=R._RescalePostProcessFactory(this)),this._rescalePostProcess){this._rescalePostProcess.externalTextureSamplerBinding=!0;const n=()=>{this._rescalePostProcess.onApply=function(t){t._bindTexture("textureSampler",e)};let n=s;n||(n=this.scenes[this.scenes.length-1]),n.postProcessManager.directRender([this._rescalePostProcess],r,!0),this._bindTextureDirectly(this._gl.TEXTURE_2D,t,!0),this._gl.copyTexImage2D(this._gl.TEXTURE_2D,0,i,0,0,t.width,t.height,0),this.unBindFramebuffer(r),r.dispose(),a&&a()},_=this._rescalePostProcess.getEffect();_?_.executeWhenCompiled(n):this._rescalePostProcess.onEffectCreatedObservable.addOnce((e=>{e.executeWhenCompiled(n)}))}}wrapWebGLTexture(e,t=!1,s=n.TEXTURE_TRILINEAR_SAMPLINGMODE,i=0,a=0){const r=new E(e,this._gl),_=new o(this,0,!0);return _._hardwareTexture=r,_.baseWidth=i,_.baseHeight=a,_.width=i,_.height=a,_.isReady=!0,_.useMipMaps=t,this.updateTextureSamplingMode(s,_),_}_uploadImageToTexture(e,t,n=0,s=0){const i=this._gl,a=this._getWebGLTextureType(e.type),r=this._getInternalFormat(e.format),_=this._getRGBABufferInternalSizedFormat(e.type,r),E=e.isCube?i.TEXTURE_CUBE_MAP:i.TEXTURE_2D;this._bindTextureDirectly(E,e,!0),this._unpackFlipY(e.invertY);let o=i.TEXTURE_2D;e.isCube&&(o=i.TEXTURE_CUBE_MAP_POSITIVE_X+n),i.texImage2D(o,s,_,r,a,t),this._bindTextureDirectly(E,null,!0)}updateTextureComparisonFunction(e,t){if(1===this.webGLVersion)return void l.Error("WebGL 1 does not support texture comparison.");const s=this._gl;e.isCube?(this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,e,!0),0===t?(s.texParameteri(s.TEXTURE_CUBE_MAP,s.TEXTURE_COMPARE_FUNC,n.LEQUAL),s.texParameteri(s.TEXTURE_CUBE_MAP,s.TEXTURE_COMPARE_MODE,s.NONE)):(s.texParameteri(s.TEXTURE_CUBE_MAP,s.TEXTURE_COMPARE_FUNC,t),s.texParameteri(s.TEXTURE_CUBE_MAP,s.TEXTURE_COMPARE_MODE,s.COMPARE_REF_TO_TEXTURE)),this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,null)):(this._bindTextureDirectly(this._gl.TEXTURE_2D,e,!0),0===t?(s.texParameteri(s.TEXTURE_2D,s.TEXTURE_COMPARE_FUNC,n.LEQUAL),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_COMPARE_MODE,s.NONE)):(s.texParameteri(s.TEXTURE_2D,s.TEXTURE_COMPARE_FUNC,t),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_COMPARE_MODE,s.COMPARE_REF_TO_TEXTURE)),this._bindTextureDirectly(this._gl.TEXTURE_2D,null)),e._comparisonFunction=t}createInstancesBuffer(e){const t=this._gl.createBuffer();if(!t)throw new Error("Unable to create instance buffer");const n=new h(t);return n.capacity=e,this.bindArrayBuffer(n),this._gl.bufferData(this._gl.ARRAY_BUFFER,e,this._gl.DYNAMIC_DRAW),n.references=1,n}deleteInstancesBuffer(e){this._gl.deleteBuffer(e)}_clientWaitAsync(e,t=0,n=10){const s=this._gl;return new Promise(((i,a)=>{const r=()=>{const _=s.clientWaitSync(e,t,0);_!=s.WAIT_FAILED?_!=s.TIMEOUT_EXPIRED?i():setTimeout(r,n):a()};r()}))}_readPixelsAsync(e,t,n,s,i,a,r){if(this._webGLVersion<2)throw new Error("_readPixelsAsync only work on WebGL2+");const _=this._gl,E=_.createBuffer();_.bindBuffer(_.PIXEL_PACK_BUFFER,E),_.bufferData(_.PIXEL_PACK_BUFFER,r.byteLength,_.STREAM_READ),_.readPixels(e,t,n,s,i,a,0),_.bindBuffer(_.PIXEL_PACK_BUFFER,null);const o=_.fenceSync(_.SYNC_GPU_COMMANDS_COMPLETE,0);return o?(_.flush(),this._clientWaitAsync(o,0,10).then((()=>(_.deleteSync(o),_.bindBuffer(_.PIXEL_PACK_BUFFER,E),_.getBufferSubData(_.PIXEL_PACK_BUFFER,0,r),_.bindBuffer(_.PIXEL_PACK_BUFFER,null),_.deleteBuffer(E),r)))):null}dispose(){this.hideLoadingUI(),this._rescalePostProcess&&this._rescalePostProcess.dispose(),function(e,t){1===r.Instances.length&&s.audioEngine&&(s.audioEngine.dispose(),s.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)),a()&&(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))}(this,this._renderingCanvas),super.dispose()}}R.ALPHA_DISABLE=n.ALPHA_DISABLE,R.ALPHA_ADD=n.ALPHA_ADD,R.ALPHA_COMBINE=n.ALPHA_COMBINE,R.ALPHA_SUBTRACT=n.ALPHA_SUBTRACT,R.ALPHA_MULTIPLY=n.ALPHA_MULTIPLY,R.ALPHA_MAXIMIZED=n.ALPHA_MAXIMIZED,R.ALPHA_ONEONE=n.ALPHA_ONEONE,R.ALPHA_PREMULTIPLIED=n.ALPHA_PREMULTIPLIED,R.ALPHA_PREMULTIPLIED_PORTERDUFF=n.ALPHA_PREMULTIPLIED_PORTERDUFF,R.ALPHA_INTERPOLATE=n.ALPHA_INTERPOLATE,R.ALPHA_SCREENMODE=n.ALPHA_SCREENMODE,R.DELAYLOADSTATE_NONE=n.DELAYLOADSTATE_NONE,R.DELAYLOADSTATE_LOADED=n.DELAYLOADSTATE_LOADED,R.DELAYLOADSTATE_LOADING=n.DELAYLOADSTATE_LOADING,R.DELAYLOADSTATE_NOTLOADED=n.DELAYLOADSTATE_NOTLOADED,R.NEVER=n.NEVER,R.ALWAYS=n.ALWAYS,R.LESS=n.LESS,R.EQUAL=n.EQUAL,R.LEQUAL=n.LEQUAL,R.GREATER=n.GREATER,R.GEQUAL=n.GEQUAL,R.NOTEQUAL=n.NOTEQUAL,R.KEEP=n.KEEP,R.REPLACE=n.REPLACE,R.INCR=n.INCR,R.DECR=n.DECR,R.INVERT=n.INVERT,R.INCR_WRAP=n.INCR_WRAP,R.DECR_WRAP=n.DECR_WRAP,R.TEXTURE_CLAMP_ADDRESSMODE=n.TEXTURE_CLAMP_ADDRESSMODE,R.TEXTURE_WRAP_ADDRESSMODE=n.TEXTURE_WRAP_ADDRESSMODE,R.TEXTURE_MIRROR_ADDRESSMODE=n.TEXTURE_MIRROR_ADDRESSMODE,R.TEXTUREFORMAT_ALPHA=n.TEXTUREFORMAT_ALPHA,R.TEXTUREFORMAT_LUMINANCE=n.TEXTUREFORMAT_LUMINANCE,R.TEXTUREFORMAT_LUMINANCE_ALPHA=n.TEXTUREFORMAT_LUMINANCE_ALPHA,R.TEXTUREFORMAT_RGB=n.TEXTUREFORMAT_RGB,R.TEXTUREFORMAT_RGBA=n.TEXTUREFORMAT_RGBA,R.TEXTUREFORMAT_RED=n.TEXTUREFORMAT_RED,R.TEXTUREFORMAT_R=n.TEXTUREFORMAT_R,R.TEXTUREFORMAT_RG=n.TEXTUREFORMAT_RG,R.TEXTUREFORMAT_RED_INTEGER=n.TEXTUREFORMAT_RED_INTEGER,R.TEXTUREFORMAT_R_INTEGER=n.TEXTUREFORMAT_R_INTEGER,R.TEXTUREFORMAT_RG_INTEGER=n.TEXTUREFORMAT_RG_INTEGER,R.TEXTUREFORMAT_RGB_INTEGER=n.TEXTUREFORMAT_RGB_INTEGER,R.TEXTUREFORMAT_RGBA_INTEGER=n.TEXTUREFORMAT_RGBA_INTEGER,R.TEXTURETYPE_UNSIGNED_BYTE=n.TEXTURETYPE_UNSIGNED_BYTE,R.TEXTURETYPE_UNSIGNED_INT=n.TEXTURETYPE_UNSIGNED_INT,R.TEXTURETYPE_FLOAT=n.TEXTURETYPE_FLOAT,R.TEXTURETYPE_HALF_FLOAT=n.TEXTURETYPE_HALF_FLOAT,R.TEXTURETYPE_BYTE=n.TEXTURETYPE_BYTE,R.TEXTURETYPE_SHORT=n.TEXTURETYPE_SHORT,R.TEXTURETYPE_UNSIGNED_SHORT=n.TEXTURETYPE_UNSIGNED_SHORT,R.TEXTURETYPE_INT=n.TEXTURETYPE_INT,R.TEXTURETYPE_UNSIGNED_INTEGER=n.TEXTURETYPE_UNSIGNED_INTEGER,R.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4=n.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4,R.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1=n.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1,R.TEXTURETYPE_UNSIGNED_SHORT_5_6_5=n.TEXTURETYPE_UNSIGNED_SHORT_5_6_5,R.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV=n.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV,R.TEXTURETYPE_UNSIGNED_INT_24_8=n.TEXTURETYPE_UNSIGNED_INT_24_8,R.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV=n.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV,R.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV=n.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV,R.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV=n.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV,R.TEXTURE_NEAREST_SAMPLINGMODE=n.TEXTURE_NEAREST_SAMPLINGMODE,R.TEXTURE_BILINEAR_SAMPLINGMODE=n.TEXTURE_BILINEAR_SAMPLINGMODE,R.TEXTURE_TRILINEAR_SAMPLINGMODE=n.TEXTURE_TRILINEAR_SAMPLINGMODE,R.TEXTURE_NEAREST_NEAREST_MIPLINEAR=n.TEXTURE_NEAREST_NEAREST_MIPLINEAR,R.TEXTURE_LINEAR_LINEAR_MIPNEAREST=n.TEXTURE_LINEAR_LINEAR_MIPNEAREST,R.TEXTURE_LINEAR_LINEAR_MIPLINEAR=n.TEXTURE_LINEAR_LINEAR_MIPLINEAR,R.TEXTURE_NEAREST_NEAREST_MIPNEAREST=n.TEXTURE_NEAREST_NEAREST_MIPNEAREST,R.TEXTURE_NEAREST_LINEAR_MIPNEAREST=n.TEXTURE_NEAREST_LINEAR_MIPNEAREST,R.TEXTURE_NEAREST_LINEAR_MIPLINEAR=n.TEXTURE_NEAREST_LINEAR_MIPLINEAR,R.TEXTURE_NEAREST_LINEAR=n.TEXTURE_NEAREST_LINEAR,R.TEXTURE_NEAREST_NEAREST=n.TEXTURE_NEAREST_NEAREST,R.TEXTURE_LINEAR_NEAREST_MIPNEAREST=n.TEXTURE_LINEAR_NEAREST_MIPNEAREST,R.TEXTURE_LINEAR_NEAREST_MIPLINEAR=n.TEXTURE_LINEAR_NEAREST_MIPLINEAR,R.TEXTURE_LINEAR_LINEAR=n.TEXTURE_LINEAR_LINEAR,R.TEXTURE_LINEAR_NEAREST=n.TEXTURE_LINEAR_NEAREST,R.TEXTURE_EXPLICIT_MODE=n.TEXTURE_EXPLICIT_MODE,R.TEXTURE_SPHERICAL_MODE=n.TEXTURE_SPHERICAL_MODE,R.TEXTURE_PLANAR_MODE=n.TEXTURE_PLANAR_MODE,R.TEXTURE_CUBIC_MODE=n.TEXTURE_CUBIC_MODE,R.TEXTURE_PROJECTION_MODE=n.TEXTURE_PROJECTION_MODE,R.TEXTURE_SKYBOX_MODE=n.TEXTURE_SKYBOX_MODE,R.TEXTURE_INVCUBIC_MODE=n.TEXTURE_INVCUBIC_MODE,R.TEXTURE_EQUIRECTANGULAR_MODE=n.TEXTURE_EQUIRECTANGULAR_MODE,R.TEXTURE_FIXED_EQUIRECTANGULAR_MODE=n.TEXTURE_FIXED_EQUIRECTANGULAR_MODE,R.TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE=n.TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE,R.SCALEMODE_FLOOR=n.SCALEMODE_FLOOR,R.SCALEMODE_NEAREST=n.SCALEMODE_NEAREST,R.SCALEMODE_CEILING=n.SCALEMODE_CEILING;export{R as Engine};
2
- //# sourceMappingURL=engine-DdeN2F9N.esm.min.js.map