@babylonjs/viewer 7.41.1 → 7.42.0-alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/photoStudio.env +0 -0
- package/dist/babylon-viewer.esm.js +2 -0
- package/dist/babylon-viewer.esm.js.map +1 -0
- package/dist/babylon-viewer.esm.min.js +2 -0
- package/dist/babylon-viewer.esm.min.js.map +1 -0
- package/dist/chunks/EXT_lights_ies-BHDD74jk.esm.min.js +2 -0
- package/dist/chunks/EXT_lights_ies-BHDD74jk.esm.min.js.map +1 -0
- package/dist/chunks/EXT_lights_ies-CJfRNbJm.esm.js +84 -0
- package/dist/chunks/EXT_lights_ies-CJfRNbJm.esm.js.map +1 -0
- package/dist/chunks/EXT_lights_image_based-B460Sv95.esm.min.js +2 -0
- package/dist/chunks/EXT_lights_image_based-B460Sv95.esm.min.js.map +1 -0
- package/dist/chunks/EXT_lights_image_based-CQ6UCahL.esm.js +171 -0
- package/dist/chunks/EXT_lights_image_based-CQ6UCahL.esm.js.map +1 -0
- package/dist/chunks/EXT_mesh_gpu_instancing-D77OfiDS.esm.js +86 -0
- package/dist/chunks/EXT_mesh_gpu_instancing-D77OfiDS.esm.js.map +1 -0
- package/dist/chunks/EXT_mesh_gpu_instancing-GMG29Y9J.esm.min.js +2 -0
- package/dist/chunks/EXT_mesh_gpu_instancing-GMG29Y9J.esm.min.js.map +1 -0
- package/dist/chunks/EXT_meshopt_compression-CniiOX0a.esm.js +134 -0
- package/dist/chunks/EXT_meshopt_compression-CniiOX0a.esm.js.map +1 -0
- package/dist/chunks/EXT_meshopt_compression-DCcKdizI.esm.min.js +2 -0
- package/dist/chunks/EXT_meshopt_compression-DCcKdizI.esm.min.js.map +1 -0
- package/dist/chunks/EXT_texture_avif-By7mk6aS.esm.min.js +2 -0
- package/dist/chunks/EXT_texture_avif-By7mk6aS.esm.min.js.map +1 -0
- package/dist/chunks/EXT_texture_avif-DnaKno7b.esm.js +44 -0
- package/dist/chunks/EXT_texture_avif-DnaKno7b.esm.js.map +1 -0
- package/dist/chunks/EXT_texture_webp-Bm29ukIo.esm.js +43 -0
- package/dist/chunks/EXT_texture_webp-Bm29ukIo.esm.js.map +1 -0
- package/dist/chunks/EXT_texture_webp-DtSWYlAE.esm.min.js +2 -0
- package/dist/chunks/EXT_texture_webp-DtSWYlAE.esm.min.js.map +1 -0
- package/dist/chunks/ExtrasAsMetadata-BUO8J2zR.esm.js +64 -0
- package/dist/chunks/ExtrasAsMetadata-BUO8J2zR.esm.js.map +1 -0
- package/dist/chunks/ExtrasAsMetadata-mi3fn9sR.esm.min.js +2 -0
- package/dist/chunks/ExtrasAsMetadata-mi3fn9sR.esm.min.js.map +1 -0
- package/dist/chunks/KHR_animation_pointer-COeThtQe.esm.min.js +2 -0
- package/dist/chunks/KHR_animation_pointer-COeThtQe.esm.min.js.map +1 -0
- package/dist/chunks/KHR_animation_pointer-DXqgkZGB.esm.js +352 -0
- package/dist/chunks/KHR_animation_pointer-DXqgkZGB.esm.js.map +1 -0
- package/dist/chunks/KHR_draco_mesh_compression-Bh9XGNFd.esm.js +610 -0
- package/dist/chunks/KHR_draco_mesh_compression-Bh9XGNFd.esm.js.map +1 -0
- package/dist/chunks/KHR_draco_mesh_compression-DyU2KIa2.esm.min.js +2 -0
- package/dist/chunks/KHR_draco_mesh_compression-DyU2KIa2.esm.min.js.map +1 -0
- package/dist/chunks/KHR_interactivity-QP9zFX3U.esm.js +4033 -0
- package/dist/chunks/KHR_interactivity-QP9zFX3U.esm.js.map +1 -0
- package/dist/chunks/KHR_interactivity-_r7e7vwA.esm.min.js +2 -0
- package/dist/chunks/KHR_interactivity-_r7e7vwA.esm.min.js.map +1 -0
- package/dist/chunks/KHR_lights_punctual-DWGx9KlE.esm.js +581 -0
- package/dist/chunks/KHR_lights_punctual-DWGx9KlE.esm.js.map +1 -0
- package/dist/chunks/KHR_lights_punctual-cz3ulMW0.esm.min.js +2 -0
- package/dist/chunks/KHR_lights_punctual-cz3ulMW0.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_anisotropy-BSvZxEnx.esm.js +65 -0
- package/dist/chunks/KHR_materials_anisotropy-BSvZxEnx.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_anisotropy-CtKPvN_z.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_anisotropy-CtKPvN_z.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_clearcoat-BephgEiM.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_clearcoat-BephgEiM.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_clearcoat-C3QB9HNC.esm.js +96 -0
- package/dist/chunks/KHR_materials_clearcoat-C3QB9HNC.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_diffuse_transmission-CZvfLdyF.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_diffuse_transmission-CZvfLdyF.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_diffuse_transmission-DuM5GD2L.esm.js +97 -0
- package/dist/chunks/KHR_materials_diffuse_transmission-DuM5GD2L.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_dispersion-0FtkqUmS.esm.js +62 -0
- package/dist/chunks/KHR_materials_dispersion-0FtkqUmS.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_dispersion-C7mAat5y.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_dispersion-C7mAat5y.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_emissive_strength-Bz2y9OnA.esm.js +55 -0
- package/dist/chunks/KHR_materials_emissive_strength-Bz2y9OnA.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_emissive_strength-b7ZNj1HF.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_emissive_strength-b7ZNj1HF.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_ior-C5-JiuLs.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_ior-C5-JiuLs.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_ior-D1jjzmsp.esm.js +64 -0
- package/dist/chunks/KHR_materials_ior-D1jjzmsp.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_iridescence-CChET9-W.esm.js +72 -0
- package/dist/chunks/KHR_materials_iridescence-CChET9-W.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_iridescence-hATfgETI.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_iridescence-hATfgETI.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-B-HlmeqI.esm.js +81 -0
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-B-HlmeqI.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-_IaUmSJE.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-_IaUmSJE.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_sheen-D2QD8uSC.esm.js +85 -0
- package/dist/chunks/KHR_materials_sheen-D2QD8uSC.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_sheen-cqxpRyXD.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_sheen-cqxpRyXD.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_specular-DnHIH9RX.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_specular-DnHIH9RX.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_specular-vwRXhXVF.esm.js +75 -0
- package/dist/chunks/KHR_materials_specular-vwRXhXVF.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_transmission-D81TRCgt.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_transmission-D81TRCgt.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_transmission-nPX6lno-.esm.js +307 -0
- package/dist/chunks/KHR_materials_transmission-nPX6lno-.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_unlit-CLSTXPsk.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_unlit-CLSTXPsk.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_unlit-pmQPq5qR.esm.js +74 -0
- package/dist/chunks/KHR_materials_unlit-pmQPq5qR.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_variants-C_XVH51a.esm.js +262 -0
- package/dist/chunks/KHR_materials_variants-C_XVH51a.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_variants-Czo1ZM8r.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_variants-Czo1ZM8r.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_volume-BJVGGE1g.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_volume-BJVGGE1g.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_volume-C4EKOzF-.esm.js +87 -0
- package/dist/chunks/KHR_materials_volume-C4EKOzF-.esm.js.map +1 -0
- package/dist/chunks/KHR_mesh_quantization-CZIcA8DN.esm.min.js +2 -0
- package/dist/chunks/KHR_mesh_quantization-CZIcA8DN.esm.min.js.map +1 -0
- package/dist/chunks/KHR_mesh_quantization-DG9WNux6.esm.js +26 -0
- package/dist/chunks/KHR_mesh_quantization-DG9WNux6.esm.js.map +1 -0
- package/dist/chunks/KHR_node_hoverability-C1YMkQ95.esm.js +39 -0
- package/dist/chunks/KHR_node_hoverability-C1YMkQ95.esm.js.map +1 -0
- package/dist/chunks/KHR_node_hoverability-HxHiCdR9.esm.min.js +2 -0
- package/dist/chunks/KHR_node_hoverability-HxHiCdR9.esm.min.js.map +1 -0
- package/dist/chunks/KHR_node_visibility-C5tc6GOc.esm.js +46 -0
- package/dist/chunks/KHR_node_visibility-C5tc6GOc.esm.js.map +1 -0
- package/dist/chunks/KHR_node_visibility-CSqn8wRd.esm.min.js +2 -0
- package/dist/chunks/KHR_node_visibility-CSqn8wRd.esm.min.js.map +1 -0
- package/dist/chunks/KHR_texture_basisu-DA2FE-qb.esm.min.js +2 -0
- package/dist/chunks/KHR_texture_basisu-DA2FE-qb.esm.min.js.map +1 -0
- package/dist/chunks/KHR_texture_basisu-KtQL54P-.esm.js +43 -0
- package/dist/chunks/KHR_texture_basisu-KtQL54P-.esm.js.map +1 -0
- package/dist/chunks/KHR_texture_transform-Cb6Q41F3.esm.js +63 -0
- package/dist/chunks/KHR_texture_transform-Cb6Q41F3.esm.js.map +1 -0
- package/dist/chunks/KHR_texture_transform-GdBAq_uW.esm.min.js +2 -0
- package/dist/chunks/KHR_texture_transform-GdBAq_uW.esm.min.js.map +1 -0
- package/dist/chunks/KHR_xmp_json_ld-CD_mkZDv.esm.min.js +2 -0
- package/dist/chunks/KHR_xmp_json_ld-CD_mkZDv.esm.min.js.map +1 -0
- package/dist/chunks/KHR_xmp_json_ld-f1rcQfsd.esm.js +51 -0
- package/dist/chunks/KHR_xmp_json_ld-f1rcQfsd.esm.js.map +1 -0
- package/dist/chunks/MSFT_audio_emitter-BU83EIcP.esm.min.js +2 -0
- package/dist/chunks/MSFT_audio_emitter-BU83EIcP.esm.min.js.map +1 -0
- package/dist/chunks/MSFT_audio_emitter-ClwdeJaR.esm.js +2201 -0
- package/dist/chunks/MSFT_audio_emitter-ClwdeJaR.esm.js.map +1 -0
- package/dist/chunks/MSFT_lod-D3MQWFc3.esm.min.js +2 -0
- package/dist/chunks/MSFT_lod-D3MQWFc3.esm.min.js.map +1 -0
- package/dist/chunks/MSFT_lod-DkM5iXcm.esm.js +337 -0
- package/dist/chunks/MSFT_lod-DkM5iXcm.esm.js.map +1 -0
- package/dist/chunks/MSFT_minecraftMesh-CG9JY5Ic.esm.min.js +2 -0
- package/dist/chunks/MSFT_minecraftMesh-CG9JY5Ic.esm.min.js.map +1 -0
- package/dist/chunks/MSFT_minecraftMesh-Cyjdx_Y_.esm.js +46 -0
- package/dist/chunks/MSFT_minecraftMesh-Cyjdx_Y_.esm.js.map +1 -0
- package/dist/chunks/MSFT_sRGBFactors-Bm3_fRmt.esm.min.js +2 -0
- package/dist/chunks/MSFT_sRGBFactors-Bm3_fRmt.esm.min.js.map +1 -0
- package/dist/chunks/MSFT_sRGBFactors-uFdNij-4.esm.js +47 -0
- package/dist/chunks/MSFT_sRGBFactors-uFdNij-4.esm.js.map +1 -0
- package/dist/chunks/animationGroup-CravGs2P.esm.min.js +2 -0
- package/dist/chunks/animationGroup-CravGs2P.esm.min.js.map +1 -0
- package/dist/chunks/animationGroup-DqmFa1Nk.esm.js +2482 -0
- package/dist/chunks/animationGroup-DqmFa1Nk.esm.js.map +1 -0
- package/dist/chunks/assetContainer-0Qu2XIWb.esm.js +1720 -0
- package/dist/chunks/assetContainer-0Qu2XIWb.esm.js.map +1 -0
- package/dist/chunks/assetContainer-CMuD-n3X.esm.min.js +2 -0
- package/dist/chunks/assetContainer-CMuD-n3X.esm.min.js.map +1 -0
- package/dist/chunks/audioEngine--EMyAh-L.esm.js +305 -0
- package/dist/chunks/audioEngine--EMyAh-L.esm.js.map +1 -0
- package/dist/chunks/audioEngine-3doZGQV6.esm.min.js +2 -0
- package/dist/chunks/audioEngine-3doZGQV6.esm.min.js.map +1 -0
- package/dist/chunks/bakedVertexAnimation-DgMI1D24.esm.min.js +2 -0
- package/dist/chunks/bakedVertexAnimation-DgMI1D24.esm.min.js.map +1 -0
- package/dist/chunks/bakedVertexAnimation-gQlUctpB.esm.js +114 -0
- package/dist/chunks/bakedVertexAnimation-gQlUctpB.esm.js.map +1 -0
- package/dist/chunks/basisTextureLoader-B0PY0ILM.esm.js +600 -0
- package/dist/chunks/basisTextureLoader-B0PY0ILM.esm.js.map +1 -0
- package/dist/chunks/basisTextureLoader-ES0mOtqQ.esm.min.js +2 -0
- package/dist/chunks/basisTextureLoader-ES0mOtqQ.esm.min.js.map +1 -0
- package/dist/chunks/dds-DEZD6DKL.esm.min.js +2 -0
- package/dist/chunks/dds-DEZD6DKL.esm.min.js.map +1 -0
- package/dist/chunks/dds-HwVEMga8.esm.js +540 -0
- package/dist/chunks/dds-HwVEMga8.esm.js.map +1 -0
- package/dist/chunks/ddsTextureLoader-3PDKukdG.esm.js +88 -0
- package/dist/chunks/ddsTextureLoader-3PDKukdG.esm.js.map +1 -0
- package/dist/chunks/ddsTextureLoader-C62DqYdE.esm.min.js +2 -0
- package/dist/chunks/ddsTextureLoader-C62DqYdE.esm.min.js.map +1 -0
- package/dist/chunks/decalFragment-B9KsZn_u.esm.min.js +2 -0
- package/dist/chunks/decalFragment-B9KsZn_u.esm.min.js.map +1 -0
- package/dist/chunks/decalFragment-CNA1EQK9.esm.js +18 -0
- package/dist/chunks/decalFragment-CNA1EQK9.esm.js.map +1 -0
- package/dist/chunks/default.fragment-BsajFq2Q.esm.js +446 -0
- package/dist/chunks/default.fragment-BsajFq2Q.esm.js.map +1 -0
- package/dist/chunks/default.fragment-C7O2NjXo.esm.min.js +2 -0
- package/dist/chunks/default.fragment-C7O2NjXo.esm.min.js.map +1 -0
- package/dist/chunks/default.fragment-CNef5Xlg.esm.min.js +2 -0
- package/dist/chunks/default.fragment-CNef5Xlg.esm.min.js.map +1 -0
- package/dist/chunks/default.fragment-DAO0SBl-.esm.js +515 -0
- package/dist/chunks/default.fragment-DAO0SBl-.esm.js.map +1 -0
- package/dist/chunks/default.vertex-Ban5pFUb.esm.js +211 -0
- package/dist/chunks/default.vertex-Ban5pFUb.esm.js.map +1 -0
- package/dist/chunks/default.vertex-CPjp6YBQ.esm.min.js +2 -0
- package/dist/chunks/default.vertex-CPjp6YBQ.esm.min.js.map +1 -0
- package/dist/chunks/default.vertex-CemfGK4Y.esm.min.js +2 -0
- package/dist/chunks/default.vertex-CemfGK4Y.esm.min.js.map +1 -0
- package/dist/chunks/default.vertex-QE4cV7Y2.esm.js +190 -0
- package/dist/chunks/default.vertex-QE4cV7Y2.esm.js.map +1 -0
- package/dist/chunks/defaultUboDeclaration-B5nIsoCQ.esm.min.js +2 -0
- package/dist/chunks/defaultUboDeclaration-B5nIsoCQ.esm.min.js.map +1 -0
- package/dist/chunks/defaultUboDeclaration-B8tY8ajW.esm.js +15 -0
- package/dist/chunks/defaultUboDeclaration-B8tY8ajW.esm.js.map +1 -0
- package/dist/chunks/defaultUboDeclaration-D7yr1BRw.esm.js +13 -0
- package/dist/chunks/defaultUboDeclaration-D7yr1BRw.esm.js.map +1 -0
- package/dist/chunks/defaultUboDeclaration-Db_EQWlv.esm.min.js +2 -0
- package/dist/chunks/defaultUboDeclaration-Db_EQWlv.esm.min.js.map +1 -0
- package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js +11 -0
- package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js.map +1 -0
- package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js +2 -0
- package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js.map +1 -0
- package/dist/chunks/dumpTools-C13JzZr_.esm.min.js +2 -0
- package/dist/chunks/dumpTools-C13JzZr_.esm.min.js.map +1 -0
- package/dist/chunks/dumpTools-D6BRv6Ws.esm.js +200 -0
- package/dist/chunks/dumpTools-D6BRv6Ws.esm.js.map +1 -0
- package/dist/chunks/engine-29lBc-mw.esm.min.js +2 -0
- package/dist/chunks/engine-29lBc-mw.esm.min.js.map +1 -0
- package/dist/chunks/engine-Bk6S663t.esm.js +2213 -0
- package/dist/chunks/engine-Bk6S663t.esm.js.map +1 -0
- package/dist/chunks/engine.common-D_DOB0rT.esm.js +1162 -0
- package/dist/chunks/engine.common-D_DOB0rT.esm.js.map +1 -0
- package/dist/chunks/engine.common-OpqDqcE2.esm.min.js +2 -0
- package/dist/chunks/engine.common-OpqDqcE2.esm.min.js.map +1 -0
- package/dist/chunks/envTextureLoader-DS13pG9w.esm.js +64 -0
- package/dist/chunks/envTextureLoader-DS13pG9w.esm.js.map +1 -0
- package/dist/chunks/envTextureLoader-Dt6q0XDu.esm.min.js +2 -0
- package/dist/chunks/envTextureLoader-Dt6q0XDu.esm.min.js.map +1 -0
- package/dist/chunks/environmentTextureTools-DKN-Hd8c.esm.min.js +2 -0
- package/dist/chunks/environmentTextureTools-DKN-Hd8c.esm.min.js.map +1 -0
- package/dist/chunks/environmentTextureTools-DWkvV21A.esm.js +382 -0
- package/dist/chunks/environmentTextureTools-DWkvV21A.esm.js.map +1 -0
- package/dist/chunks/exrTextureLoader-6o4jfUaF.esm.js +1683 -0
- package/dist/chunks/exrTextureLoader-6o4jfUaF.esm.js.map +1 -0
- package/dist/chunks/exrTextureLoader-CXV9O3pZ.esm.min.js +2 -0
- package/dist/chunks/exrTextureLoader-CXV9O3pZ.esm.min.js.map +1 -0
- package/dist/chunks/fogFragment-BdOtsPe3.esm.js +102 -0
- package/dist/chunks/fogFragment-BdOtsPe3.esm.js.map +1 -0
- package/dist/chunks/fogFragment-Cv3Bqrrg.esm.js +101 -0
- package/dist/chunks/fogFragment-Cv3Bqrrg.esm.js.map +1 -0
- package/dist/chunks/fogFragment-D91rqvp0.esm.min.js +2 -0
- package/dist/chunks/fogFragment-D91rqvp0.esm.min.js.map +1 -0
- package/dist/chunks/fogFragment-qdYpZbGA.esm.min.js +2 -0
- package/dist/chunks/fogFragment-qdYpZbGA.esm.min.js.map +1 -0
- package/dist/chunks/fresnelFunction-DBMK4K-2.esm.min.js +2 -0
- package/dist/chunks/fresnelFunction-DBMK4K-2.esm.min.js.map +1 -0
- package/dist/chunks/fresnelFunction-o5ZOc6C0.esm.js +12 -0
- package/dist/chunks/fresnelFunction-o5ZOc6C0.esm.js.map +1 -0
- package/dist/chunks/glTFLoader-Dj_JCgqJ.esm.min.js +2 -0
- package/dist/chunks/glTFLoader-Dj_JCgqJ.esm.min.js.map +1 -0
- package/dist/chunks/glTFLoader-DnWHbX53.esm.js +7693 -0
- package/dist/chunks/glTFLoader-DnWHbX53.esm.js.map +1 -0
- package/dist/chunks/glTFLoaderAnimation-A_WVS-lt.esm.min.js +2 -0
- package/dist/chunks/glTFLoaderAnimation-A_WVS-lt.esm.min.js.map +1 -0
- package/dist/chunks/glTFLoaderAnimation-C3gHlipY.esm.js +77 -0
- package/dist/chunks/glTFLoaderAnimation-C3gHlipY.esm.js.map +1 -0
- package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js +2 -0
- package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js.map +1 -0
- package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js +67 -0
- package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js.map +1 -0
- package/dist/chunks/harmonicsFunctions-91QStv6v.esm.min.js +2 -0
- package/dist/chunks/harmonicsFunctions-91QStv6v.esm.min.js.map +1 -0
- package/dist/chunks/harmonicsFunctions-DBJQNoSA.esm.min.js +2 -0
- package/dist/chunks/harmonicsFunctions-DBJQNoSA.esm.min.js.map +1 -0
- package/dist/chunks/harmonicsFunctions-DXdlMMN6.esm.js +34 -0
- package/dist/chunks/harmonicsFunctions-DXdlMMN6.esm.js.map +1 -0
- package/dist/chunks/harmonicsFunctions-VtAD6DeX.esm.js +35 -0
- package/dist/chunks/harmonicsFunctions-VtAD6DeX.esm.js.map +1 -0
- package/dist/chunks/hdrTextureLoader-CYtpPSzs.esm.js +253 -0
- package/dist/chunks/hdrTextureLoader-CYtpPSzs.esm.js.map +1 -0
- package/dist/chunks/hdrTextureLoader-CzZ1hV7q.esm.min.js +2 -0
- package/dist/chunks/hdrTextureLoader-CzZ1hV7q.esm.min.js.map +1 -0
- package/dist/chunks/helperFunctions-Bn3a_gzG.esm.js +110 -0
- package/dist/chunks/helperFunctions-Bn3a_gzG.esm.js.map +1 -0
- package/dist/chunks/helperFunctions-CA_QOVSE.esm.js +83 -0
- package/dist/chunks/helperFunctions-CA_QOVSE.esm.js.map +1 -0
- package/dist/chunks/helperFunctions-mebe29sq.esm.min.js +2 -0
- package/dist/chunks/helperFunctions-mebe29sq.esm.min.js.map +1 -0
- package/dist/chunks/helperFunctions-wIdfkMdZ.esm.min.js +2 -0
- package/dist/chunks/helperFunctions-wIdfkMdZ.esm.min.js.map +1 -0
- package/dist/chunks/iesTextureLoader-D8_bkaCP.esm.min.js +2 -0
- package/dist/chunks/iesTextureLoader-D8_bkaCP.esm.min.js.map +1 -0
- package/dist/chunks/iesTextureLoader-K1MQUalq.esm.js +189 -0
- package/dist/chunks/iesTextureLoader-K1MQUalq.esm.js.map +1 -0
- package/dist/chunks/index-Bo5F_mGk.esm.min.js +57 -0
- package/dist/chunks/index-Bo5F_mGk.esm.min.js.map +1 -0
- package/dist/chunks/index-Dlf001gP.esm.js +74889 -0
- package/dist/chunks/index-Dlf001gP.esm.js.map +1 -0
- package/dist/chunks/ktxTextureLoader-B6UHYOxL.esm.js +814 -0
- package/dist/chunks/ktxTextureLoader-B6UHYOxL.esm.js.map +1 -0
- package/dist/chunks/ktxTextureLoader-s_dbtiwN.esm.min.js +2 -0
- package/dist/chunks/ktxTextureLoader-s_dbtiwN.esm.min.js.map +1 -0
- package/dist/chunks/logDepthDeclaration--xmemf5p.esm.min.js +2 -0
- package/dist/chunks/logDepthDeclaration--xmemf5p.esm.min.js.map +1 -0
- package/dist/chunks/logDepthDeclaration-Babs-3_m.esm.js +35 -0
- package/dist/chunks/logDepthDeclaration-Babs-3_m.esm.js.map +1 -0
- package/dist/chunks/logDepthDeclaration-BvoznvSG.esm.min.js +2 -0
- package/dist/chunks/logDepthDeclaration-BvoznvSG.esm.min.js.map +1 -0
- package/dist/chunks/logDepthDeclaration-_EPT9ybx.esm.js +11 -0
- package/dist/chunks/logDepthDeclaration-_EPT9ybx.esm.js.map +1 -0
- package/dist/chunks/logDepthVertex-0vve_qKh.esm.js +77 -0
- package/dist/chunks/logDepthVertex-0vve_qKh.esm.js.map +1 -0
- package/dist/chunks/logDepthVertex-BkGmO8_s.esm.js +81 -0
- package/dist/chunks/logDepthVertex-BkGmO8_s.esm.js.map +1 -0
- package/dist/chunks/logDepthVertex-CVcNpHQe.esm.min.js +2 -0
- package/dist/chunks/logDepthVertex-CVcNpHQe.esm.min.js.map +1 -0
- package/dist/chunks/logDepthVertex-DL8eWalk.esm.min.js +2 -0
- package/dist/chunks/logDepthVertex-DL8eWalk.esm.min.js.map +1 -0
- package/dist/chunks/mainUVVaryingDeclaration-9DUO7sPf.esm.js +11 -0
- package/dist/chunks/mainUVVaryingDeclaration-9DUO7sPf.esm.js.map +1 -0
- package/dist/chunks/mainUVVaryingDeclaration-DXZGPs7O.esm.js +11 -0
- package/dist/chunks/mainUVVaryingDeclaration-DXZGPs7O.esm.js.map +1 -0
- package/dist/chunks/mainUVVaryingDeclaration-DaFtbg5X.esm.min.js +2 -0
- package/dist/chunks/mainUVVaryingDeclaration-DaFtbg5X.esm.min.js.map +1 -0
- package/dist/chunks/mainUVVaryingDeclaration-lKBcMFcP.esm.min.js +2 -0
- package/dist/chunks/mainUVVaryingDeclaration-lKBcMFcP.esm.min.js.map +1 -0
- package/dist/chunks/mesh.vertexData.functions-B_pMCAzZ.esm.js +119 -0
- package/dist/chunks/mesh.vertexData.functions-B_pMCAzZ.esm.js.map +1 -0
- package/dist/chunks/mesh.vertexData.functions-Bo7e6Of9.esm.min.js +2 -0
- package/dist/chunks/mesh.vertexData.functions-Bo7e6Of9.esm.min.js.map +1 -0
- package/dist/chunks/meshUboDeclaration-BN0BlYEZ.esm.js +26 -0
- package/dist/chunks/meshUboDeclaration-BN0BlYEZ.esm.js.map +1 -0
- package/dist/chunks/meshUboDeclaration-BcQ1P_co.esm.min.js +2 -0
- package/dist/chunks/meshUboDeclaration-BcQ1P_co.esm.min.js.map +1 -0
- package/dist/chunks/objFileLoader-Lx7JtYFA.esm.min.js +2 -0
- package/dist/chunks/objFileLoader-Lx7JtYFA.esm.min.js.map +1 -0
- package/dist/chunks/objFileLoader-_nxEPYB4.esm.js +1338 -0
- package/dist/chunks/objFileLoader-_nxEPYB4.esm.js.map +1 -0
- package/dist/chunks/oitFragment-BPgREULe.esm.js +1240 -0
- package/dist/chunks/oitFragment-BPgREULe.esm.js.map +1 -0
- package/dist/chunks/oitFragment-CKNxTV0T.esm.min.js +2 -0
- package/dist/chunks/oitFragment-CKNxTV0T.esm.min.js.map +1 -0
- package/dist/chunks/oitFragment-CT3oWGRL.esm.js +1078 -0
- package/dist/chunks/oitFragment-CT3oWGRL.esm.js.map +1 -0
- package/dist/chunks/oitFragment-CXrV_64a.esm.min.js +2 -0
- package/dist/chunks/oitFragment-CXrV_64a.esm.min.js.map +1 -0
- package/dist/chunks/pass.fragment-BugqjVKo.esm.js +15 -0
- package/dist/chunks/pass.fragment-BugqjVKo.esm.js.map +1 -0
- package/dist/chunks/pass.fragment-X-KK3tOa.esm.min.js +2 -0
- package/dist/chunks/pass.fragment-X-KK3tOa.esm.min.js.map +1 -0
- package/dist/chunks/pass.fragment-pJ1J3AeO.esm.min.js +2 -0
- package/dist/chunks/pass.fragment-pJ1J3AeO.esm.min.js.map +1 -0
- package/dist/chunks/pass.fragment-tk9KCmM-.esm.js +15 -0
- package/dist/chunks/pass.fragment-tk9KCmM-.esm.js.map +1 -0
- package/dist/chunks/pbr.fragment-C4BFWzEP.esm.js +3269 -0
- package/dist/chunks/pbr.fragment-C4BFWzEP.esm.js.map +1 -0
- package/dist/chunks/pbr.fragment-CTE0zFNb.esm.min.js +2 -0
- package/dist/chunks/pbr.fragment-CTE0zFNb.esm.min.js.map +1 -0
- package/dist/chunks/pbr.fragment-DZRIiJzv.esm.js +3222 -0
- package/dist/chunks/pbr.fragment-DZRIiJzv.esm.js.map +1 -0
- package/dist/chunks/pbr.fragment-Dk1kkP87.esm.min.js +2 -0
- package/dist/chunks/pbr.fragment-Dk1kkP87.esm.min.js.map +1 -0
- package/dist/chunks/pbr.vertex-Ba8BDEep.esm.min.js +2 -0
- package/dist/chunks/pbr.vertex-Ba8BDEep.esm.min.js.map +1 -0
- package/dist/chunks/pbr.vertex-DM2WONhK.esm.js +223 -0
- package/dist/chunks/pbr.vertex-DM2WONhK.esm.js.map +1 -0
- package/dist/chunks/pbr.vertex-DVghYyb7.esm.min.js +2 -0
- package/dist/chunks/pbr.vertex-DVghYyb7.esm.min.js.map +1 -0
- package/dist/chunks/pbr.vertex-DiVjR6Bs.esm.js +348 -0
- package/dist/chunks/pbr.vertex-DiVjR6Bs.esm.js.map +1 -0
- package/dist/chunks/postprocess.vertex-CtVD6qfW.esm.min.js +2 -0
- package/dist/chunks/postprocess.vertex-CtVD6qfW.esm.min.js.map +1 -0
- package/dist/chunks/postprocess.vertex-DntzOpKV.esm.js +20 -0
- package/dist/chunks/postprocess.vertex-DntzOpKV.esm.js.map +1 -0
- package/dist/chunks/rawTexture-BAt5J3G4.esm.min.js +2 -0
- package/dist/chunks/rawTexture-BAt5J3G4.esm.min.js.map +1 -0
- package/dist/chunks/rawTexture-D0O_yrdQ.esm.js +191 -0
- package/dist/chunks/rawTexture-D0O_yrdQ.esm.js.map +1 -0
- package/dist/chunks/ray-Bbt37I0I.esm.js +946 -0
- package/dist/chunks/ray-Bbt37I0I.esm.js.map +1 -0
- package/dist/chunks/ray-OQ0d0a-k.esm.min.js +2 -0
- package/dist/chunks/ray-OQ0d0a-k.esm.min.js.map +1 -0
- package/dist/chunks/rgbdDecode.fragment-4HjKGwMm.esm.min.js +2 -0
- package/dist/chunks/rgbdDecode.fragment-4HjKGwMm.esm.min.js.map +1 -0
- package/dist/chunks/rgbdDecode.fragment-CKVGwRZO.esm.js +13 -0
- package/dist/chunks/rgbdDecode.fragment-CKVGwRZO.esm.js.map +1 -0
- package/dist/chunks/rgbdDecode.fragment-Cn6YVnkB.esm.js +13 -0
- package/dist/chunks/rgbdDecode.fragment-Cn6YVnkB.esm.js.map +1 -0
- package/dist/chunks/rgbdDecode.fragment-DwcDy8Eo.esm.min.js +2 -0
- package/dist/chunks/rgbdDecode.fragment-DwcDy8Eo.esm.min.js.map +1 -0
- package/dist/chunks/rgbdEncode.fragment-BUluDIqG.esm.min.js +2 -0
- package/dist/chunks/rgbdEncode.fragment-BUluDIqG.esm.min.js.map +1 -0
- package/dist/chunks/rgbdEncode.fragment-CEiZq0Qt.esm.js +13 -0
- package/dist/chunks/rgbdEncode.fragment-CEiZq0Qt.esm.js.map +1 -0
- package/dist/chunks/rgbdEncode.fragment-CY0yYtEl.esm.js +13 -0
- package/dist/chunks/rgbdEncode.fragment-CY0yYtEl.esm.js.map +1 -0
- package/dist/chunks/rgbdEncode.fragment-DS4_h_Qc.esm.min.js +2 -0
- package/dist/chunks/rgbdEncode.fragment-DS4_h_Qc.esm.min.js.map +1 -0
- package/dist/chunks/splatFileLoader-C9ykR2nU.esm.js +3387 -0
- package/dist/chunks/splatFileLoader-C9ykR2nU.esm.js.map +1 -0
- package/dist/chunks/splatFileLoader-fz6lXWf1.esm.min.js +2 -0
- package/dist/chunks/splatFileLoader-fz6lXWf1.esm.min.js.map +1 -0
- package/dist/chunks/spotLight-BJUVKiS1.esm.min.js +2 -0
- package/dist/chunks/spotLight-BJUVKiS1.esm.min.js.map +1 -0
- package/dist/chunks/spotLight-DPadbSE2.esm.js +701 -0
- package/dist/chunks/spotLight-DPadbSE2.esm.js.map +1 -0
- package/dist/chunks/standardMaterial-BFBsF3pv.esm.min.js +2 -0
- package/dist/chunks/standardMaterial-BFBsF3pv.esm.min.js.map +1 -0
- package/dist/chunks/standardMaterial-eJkfs5dX.esm.js +1807 -0
- package/dist/chunks/standardMaterial-eJkfs5dX.esm.js.map +1 -0
- package/dist/chunks/stlFileLoader-D-4wZdg7.esm.js +238 -0
- package/dist/chunks/stlFileLoader-D-4wZdg7.esm.js.map +1 -0
- package/dist/chunks/stlFileLoader-DFdDdaYW.esm.min.js +2 -0
- package/dist/chunks/stlFileLoader-DFdDdaYW.esm.min.js.map +1 -0
- package/dist/chunks/tgaTextureLoader-84Uwk9uE.esm.min.js +2 -0
- package/dist/chunks/tgaTextureLoader-84Uwk9uE.esm.min.js.map +1 -0
- package/dist/chunks/tgaTextureLoader-DDAxGDFK.esm.js +349 -0
- package/dist/chunks/tgaTextureLoader-DDAxGDFK.esm.js.map +1 -0
- package/dist/chunks/thinEngine-CiBi1yBe.esm.min.js +2 -0
- package/dist/chunks/thinEngine-CiBi1yBe.esm.min.js.map +1 -0
- package/dist/chunks/thinEngine-iDkoF96X.esm.js +3848 -0
- package/dist/chunks/thinEngine-iDkoF96X.esm.js.map +1 -0
- package/dist/chunks/thinInstanceMesh-DGBYkFXN.esm.js +314 -0
- package/dist/chunks/thinInstanceMesh-DGBYkFXN.esm.js.map +1 -0
- package/dist/chunks/thinInstanceMesh-MROq1d7v.esm.min.js +2 -0
- package/dist/chunks/thinInstanceMesh-MROq1d7v.esm.min.js.map +1 -0
- package/dist/chunks/vertexColorMixing-0VXbzCuF.esm.js +428 -0
- package/dist/chunks/vertexColorMixing-0VXbzCuF.esm.js.map +1 -0
- package/dist/chunks/vertexColorMixing-B3GD6hE2.esm.js +538 -0
- package/dist/chunks/vertexColorMixing-B3GD6hE2.esm.js.map +1 -0
- package/dist/chunks/vertexColorMixing-ClVYo-h9.esm.min.js +2 -0
- package/dist/chunks/vertexColorMixing-ClVYo-h9.esm.min.js.map +1 -0
- package/dist/chunks/vertexColorMixing-j0Dix_Wy.esm.min.js +2 -0
- package/dist/chunks/vertexColorMixing-j0Dix_Wy.esm.min.js.map +1 -0
- package/dist/chunks/webgpuEngine-BLhhEybd.esm.min.js +2 -0
- package/dist/chunks/webgpuEngine-BLhhEybd.esm.min.js.map +1 -0
- package/dist/chunks/webgpuEngine-Cs5fkngY.esm.js +11533 -0
- package/dist/chunks/webgpuEngine-Cs5fkngY.esm.js.map +1 -0
- package/dist/chunks/workerPool-BUOov2K1.esm.js +122 -0
- package/dist/chunks/workerPool-BUOov2K1.esm.js.map +1 -0
- package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js +2 -0
- package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js.map +1 -0
- package/lib/index.d.ts +591 -0
- package/lib/index.js +2165 -0
- package/lib/index.js.map +1 -0
- package/package.json +19 -28
- package/readme.md +28 -28
- package/configuration/configuration.d.ts +0 -107
- package/configuration/configuration.js +0 -16
- package/configuration/configuration.js.map +0 -1
- package/configuration/configurationCompatibility.d.ts +0 -8
- package/configuration/configurationCompatibility.js +0 -66
- package/configuration/configurationCompatibility.js.map +0 -1
- package/configuration/configurationContainer.d.ts +0 -10
- package/configuration/configurationContainer.js +0 -10
- package/configuration/configurationContainer.js.map +0 -1
- package/configuration/globals.d.ts +0 -6
- package/configuration/globals.js +0 -18
- package/configuration/globals.js.map +0 -1
- package/configuration/index.d.ts +0 -2
- package/configuration/index.js +0 -4
- package/configuration/index.js.map +0 -1
- package/configuration/interfaces/cameraConfiguration.d.ts +0 -31
- package/configuration/interfaces/cameraConfiguration.js +0 -2
- package/configuration/interfaces/cameraConfiguration.js.map +0 -1
- package/configuration/interfaces/colorGradingConfiguration.d.ts +0 -81
- package/configuration/interfaces/colorGradingConfiguration.js +0 -2
- package/configuration/interfaces/colorGradingConfiguration.js.map +0 -1
- package/configuration/interfaces/defaultRenderingPipelineConfiguration.d.ts +0 -20
- package/configuration/interfaces/defaultRenderingPipelineConfiguration.js +0 -2
- package/configuration/interfaces/defaultRenderingPipelineConfiguration.js.map +0 -1
- package/configuration/interfaces/environmentMapConfiguration.d.ts +0 -22
- package/configuration/interfaces/environmentMapConfiguration.js +0 -2
- package/configuration/interfaces/environmentMapConfiguration.js.map +0 -1
- package/configuration/interfaces/groundConfiguration.d.ts +0 -24
- package/configuration/interfaces/groundConfiguration.js +0 -2
- package/configuration/interfaces/groundConfiguration.js.map +0 -1
- package/configuration/interfaces/imageProcessingConfiguration.d.ts +0 -45
- package/configuration/interfaces/imageProcessingConfiguration.js +0 -2
- package/configuration/interfaces/imageProcessingConfiguration.js.map +0 -1
- package/configuration/interfaces/index.d.ts +0 -15
- package/configuration/interfaces/index.js +0 -16
- package/configuration/interfaces/index.js.map +0 -1
- package/configuration/interfaces/lightConfiguration.d.ts +0 -60
- package/configuration/interfaces/lightConfiguration.js +0 -2
- package/configuration/interfaces/lightConfiguration.js.map +0 -1
- package/configuration/interfaces/modelAnimationConfiguration.d.ts +0 -26
- package/configuration/interfaces/modelAnimationConfiguration.js +0 -2
- package/configuration/interfaces/modelAnimationConfiguration.js.map +0 -1
- package/configuration/interfaces/modelConfiguration.d.ts +0 -65
- package/configuration/interfaces/modelConfiguration.js +0 -2
- package/configuration/interfaces/modelConfiguration.js.map +0 -1
- package/configuration/interfaces/observersConfiguration.d.ts +0 -5
- package/configuration/interfaces/observersConfiguration.js +0 -2
- package/configuration/interfaces/observersConfiguration.js.map +0 -1
- package/configuration/interfaces/sceneConfiguration.d.ts +0 -48
- package/configuration/interfaces/sceneConfiguration.js +0 -2
- package/configuration/interfaces/sceneConfiguration.js.map +0 -1
- package/configuration/interfaces/sceneOptimizerConfiguration.d.ts +0 -23
- package/configuration/interfaces/sceneOptimizerConfiguration.js +0 -2
- package/configuration/interfaces/sceneOptimizerConfiguration.js.map +0 -1
- package/configuration/interfaces/skyboxConfiguration.d.ts +0 -21
- package/configuration/interfaces/skyboxConfiguration.js +0 -2
- package/configuration/interfaces/skyboxConfiguration.js.map +0 -1
- package/configuration/interfaces/templateConfiguration.d.ts +0 -67
- package/configuration/interfaces/templateConfiguration.js +0 -2
- package/configuration/interfaces/templateConfiguration.js.map +0 -1
- package/configuration/interfaces/vrConfiguration.d.ts +0 -16
- package/configuration/interfaces/vrConfiguration.js +0 -2
- package/configuration/interfaces/vrConfiguration.js.map +0 -1
- package/configuration/loader.d.ts +0 -4
- package/configuration/loader.js +0 -17
- package/configuration/loader.js.map +0 -1
- package/configuration/mappers.d.ts +0 -43
- package/configuration/mappers.js +0 -193
- package/configuration/mappers.js.map +0 -1
- package/configuration/renderOnlyLoader.d.ts +0 -33
- package/configuration/renderOnlyLoader.js +0 -162
- package/configuration/renderOnlyLoader.js.map +0 -1
- package/configuration/types/default.d.ts +0 -6
- package/configuration/types/default.js +0 -121
- package/configuration/types/default.js.map +0 -1
- package/configuration/types/environmentMap.d.ts +0 -5
- package/configuration/types/environmentMap.js +0 -14
- package/configuration/types/environmentMap.js.map +0 -1
- package/configuration/types/extended.d.ts +0 -6
- package/configuration/types/extended.js +0 -317
- package/configuration/types/extended.js.map +0 -1
- package/configuration/types/index.d.ts +0 -14
- package/configuration/types/index.js +0 -51
- package/configuration/types/index.js.map +0 -1
- package/configuration/types/minimal.d.ts +0 -6
- package/configuration/types/minimal.js +0 -43
- package/configuration/types/minimal.js.map +0 -1
- package/configuration/types/renderOnlyDefault.d.ts +0 -30
- package/configuration/types/renderOnlyDefault.js +0 -31
- package/configuration/types/renderOnlyDefault.js.map +0 -1
- package/configuration/types/shadowLight.d.ts +0 -9
- package/configuration/types/shadowLight.js +0 -64
- package/configuration/types/shadowLight.js.map +0 -1
- package/helper/index.d.ts +0 -29
- package/helper/index.js +0 -66
- package/helper/index.js.map +0 -1
- package/index.d.ts +0 -30
- package/index.js +0 -46
- package/index.js.map +0 -1
- package/initializer.d.ts +0 -11
- package/initializer.js +0 -35
- package/initializer.js.map +0 -1
- package/interfaces.d.ts +0 -5
- package/interfaces.js +0 -7
- package/interfaces.js.map +0 -1
- package/labs/environmentSerializer.d.ts +0 -126
- package/labs/environmentSerializer.js +0 -191
- package/labs/environmentSerializer.js.map +0 -1
- package/labs/texture.d.ts +0 -183
- package/labs/texture.js +0 -351
- package/labs/texture.js.map +0 -1
- package/labs/viewerLabs.d.ts +0 -51
- package/labs/viewerLabs.js +0 -134
- package/labs/viewerLabs.js.map +0 -1
- package/loader/modelLoader.d.ts +0 -56
- package/loader/modelLoader.js +0 -202
- package/loader/modelLoader.js.map +0 -1
- package/loader/plugins/applyMaterialConfig.d.ts +0 -12
- package/loader/plugins/applyMaterialConfig.js +0 -16
- package/loader/plugins/applyMaterialConfig.js.map +0 -1
- package/loader/plugins/extendedMaterialLoaderPlugin.d.ts +0 -9
- package/loader/plugins/extendedMaterialLoaderPlugin.js +0 -16
- package/loader/plugins/extendedMaterialLoaderPlugin.js.map +0 -1
- package/loader/plugins/index.d.ts +0 -19
- package/loader/plugins/index.js +0 -44
- package/loader/plugins/index.js.map +0 -1
- package/loader/plugins/loaderPlugin.d.ts +0 -24
- package/loader/plugins/loaderPlugin.js +0 -2
- package/loader/plugins/loaderPlugin.js.map +0 -1
- package/loader/plugins/msftLodLoaderPlugin.d.ts +0 -12
- package/loader/plugins/msftLodLoaderPlugin.js +0 -21
- package/loader/plugins/msftLodLoaderPlugin.js.map +0 -1
- package/loader/plugins/telemetryLoaderPlugin.d.ts +0 -12
- package/loader/plugins/telemetryLoaderPlugin.js +0 -36
- package/loader/plugins/telemetryLoaderPlugin.js.map +0 -1
- package/managers/observablesManager.d.ts +0 -66
- package/managers/observablesManager.js +0 -35
- package/managers/observablesManager.js.map +0 -1
- package/managers/sceneManager.d.ts +0 -245
- package/managers/sceneManager.js +0 -1375
- package/managers/sceneManager.js.map +0 -1
- package/managers/telemetryManager.d.ts +0 -78
- package/managers/telemetryManager.js +0 -117
- package/managers/telemetryManager.js.map +0 -1
- package/model/modelAnimation.d.ts +0 -215
- package/model/modelAnimation.js +0 -237
- package/model/modelAnimation.js.map +0 -1
- package/model/viewerModel.d.ts +0 -233
- package/model/viewerModel.js +0 -673
- package/model/viewerModel.js.map +0 -1
- package/optimizer/custom/extended.d.ts +0 -13
- package/optimizer/custom/extended.js +0 -101
- package/optimizer/custom/extended.js.map +0 -1
- package/optimizer/custom/index.d.ts +0 -9
- package/optimizer/custom/index.js +0 -26
- package/optimizer/custom/index.js.map +0 -1
- package/renderOnlyIndex.d.ts +0 -11
- package/renderOnlyIndex.js +0 -18
- package/renderOnlyIndex.js.map +0 -1
- package/templating/eventManager.d.ts +0 -35
- package/templating/eventManager.js +0 -66
- package/templating/eventManager.js.map +0 -1
- package/templating/plugins/hdButtonPlugin.d.ts +0 -9
- package/templating/plugins/hdButtonPlugin.js +0 -22
- package/templating/plugins/hdButtonPlugin.js.map +0 -1
- package/templating/plugins/printButton.d.ts +0 -9
- package/templating/plugins/printButton.js +0 -41
- package/templating/plugins/printButton.js.map +0 -1
- package/templating/templateManager.d.ts +0 -197
- package/templating/templateManager.js +0 -561
- package/templating/templateManager.js.map +0 -1
- package/templating/viewerTemplatePlugin.d.ts +0 -21
- package/templating/viewerTemplatePlugin.js +0 -69
- package/templating/viewerTemplatePlugin.js.map +0 -1
- package/viewer/defaultViewer.d.ts +0 -130
- package/viewer/defaultViewer.js +0 -672
- package/viewer/defaultViewer.js.map +0 -1
- package/viewer/renderOnlyViewer.d.ts +0 -9
- package/viewer/renderOnlyViewer.js +0 -46
- package/viewer/renderOnlyViewer.js.map +0 -1
- package/viewer/viewer.d.ts +0 -258
- package/viewer/viewer.js +0 -783
- package/viewer/viewer.js.map +0 -1
- package/viewer/viewerManager.d.ts +0 -58
- package/viewer/viewerManager.js +0 -91
- package/viewer/viewerManager.js.map +0 -1
- package/viewer/viewerWithTemplate.d.ts +0 -9
- package/viewer/viewerWithTemplate.js +0 -20
- package/viewer/viewerWithTemplate.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine-Bk6S663t.esm.js","sources":["../../../../../dev/core/dist/Engines/Extensions/engine.alpha.js","../../../../../dev/core/dist/Engines/Extensions/engine.rawTexture.js","../../../../../dev/core/dist/Engines/Extensions/engine.readTexture.js","../../../../../dev/core/dist/Engines/Extensions/engine.dynamicBuffer.js","../../../../../dev/core/dist/Engines/Extensions/engine.cubeTexture.js","../../../../../dev/core/dist/Engines/WebGL/webGLRenderTargetWrapper.js","../../../../../dev/core/dist/Engines/Extensions/engine.renderTarget.js","../../../../../dev/core/dist/Engines/Extensions/engine.renderTargetTexture.js","../../../../../dev/core/dist/Engines/Extensions/engine.renderTargetCube.js","../../../../../dev/core/dist/Engines/Extensions/engine.prefilteredCubeTexture.js","../../../../../dev/core/dist/Engines/Extensions/engine.uniformBuffer.js","../../../../../dev/core/dist/Engines/engine.js"],"sourcesContent":["import { ThinEngine } from \"../../Engines/thinEngine\";\nimport { Constants } from \"../constants\";\nThinEngine.prototype.setAlphaMode = function (mode, noDepthWriteChange = false) {\n if (this._alphaMode === mode) {\n if (!noDepthWriteChange) {\n // Make sure we still have the correct depth mask according to the alpha mode (a transparent material could have forced writting to the depth buffer, for instance)\n const depthMask = mode === Constants.ALPHA_DISABLE;\n if (this.depthCullingState.depthMask !== depthMask) {\n this.depthCullingState.depthMask = depthMask;\n }\n }\n return;\n }\n switch (mode) {\n case Constants.ALPHA_DISABLE:\n this._alphaState.alphaBlend = false;\n break;\n case Constants.ALPHA_PREMULTIPLIED:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA, this._gl.ONE, this._gl.ONE);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_PREMULTIPLIED_PORTERDUFF:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA, this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_COMBINE:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA, this._gl.ONE_MINUS_SRC_ALPHA, this._gl.ONE, this._gl.ONE);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_ONEONE:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE, this._gl.ZERO, this._gl.ONE);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_ADD:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA, this._gl.ONE, this._gl.ZERO, this._gl.ONE);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_SUBTRACT:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ZERO, this._gl.ONE_MINUS_SRC_COLOR, this._gl.ONE, this._gl.ONE);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_MULTIPLY:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.DST_COLOR, this._gl.ZERO, this._gl.ONE, this._gl.ONE);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_MAXIMIZED:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA, this._gl.ONE_MINUS_SRC_COLOR, this._gl.ONE, this._gl.ONE);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_INTERPOLATE:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.CONSTANT_COLOR, this._gl.ONE_MINUS_CONSTANT_COLOR, this._gl.CONSTANT_ALPHA, this._gl.ONE_MINUS_CONSTANT_ALPHA);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_SCREENMODE:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE_MINUS_SRC_COLOR, this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_ONEONE_ONEONE:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE, this._gl.ONE, this._gl.ONE);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_ALPHATOCOLOR:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.DST_ALPHA, this._gl.ONE, this._gl.ZERO, this._gl.ZERO);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_REVERSEONEMINUS:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE_MINUS_DST_COLOR, this._gl.ONE_MINUS_SRC_COLOR, this._gl.ONE_MINUS_DST_ALPHA, this._gl.ONE_MINUS_SRC_ALPHA);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_SRC_DSTONEMINUSSRCALPHA:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA, this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_ONEONE_ONEZERO:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE, this._gl.ONE, this._gl.ONE, this._gl.ZERO);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_EXCLUSION:\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE_MINUS_DST_COLOR, this._gl.ONE_MINUS_SRC_COLOR, this._gl.ZERO, this._gl.ONE);\n this._alphaState.alphaBlend = true;\n break;\n case Constants.ALPHA_LAYER_ACCUMULATE:\n // Same as ALPHA_COMBINE but accumulates (1 - alpha) values in the alpha channel for a later readout in order independant transparency\n this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA, this._gl.ONE_MINUS_SRC_ALPHA, this._gl.ONE, this._gl.ONE_MINUS_SRC_ALPHA);\n this._alphaState.alphaBlend = true;\n break;\n }\n if (!noDepthWriteChange) {\n this.depthCullingState.depthMask = mode === Constants.ALPHA_DISABLE;\n }\n this._alphaMode = mode;\n};\n//# sourceMappingURL=engine.alpha.js.map","import { InternalTexture } from \"../../Materials/Textures/internalTexture\";\nimport { Logger } from \"../../Misc/logger\";\nimport { Constants } from \"../constants\";\nimport { ThinEngine } from \"../thinEngine\";\nimport { IsExponentOfTwo } from \"../../Misc/tools.functions\";\nThinEngine.prototype.updateRawTexture = function (texture, data, format, invertY, compression = null, type = Constants.TEXTURETYPE_UNSIGNED_BYTE, useSRGBBuffer = false) {\n if (!texture) {\n return;\n }\n // Babylon's internalSizedFomat but gl's texImage2D internalFormat\n const internalSizedFomat = this._getRGBABufferInternalSizedFormat(type, format, useSRGBBuffer);\n // Babylon's internalFormat but gl's texImage2D format\n const internalFormat = this._getInternalFormat(format);\n const textureType = this._getWebGLTextureType(type);\n this._bindTextureDirectly(this._gl.TEXTURE_2D, texture, true);\n this._unpackFlipY(invertY === undefined ? true : invertY ? true : false);\n if (!this._doNotHandleContextLost) {\n texture._bufferView = data;\n texture.format = format;\n texture.type = type;\n texture.invertY = invertY;\n texture._compression = compression;\n }\n if (texture.width % 4 !== 0) {\n this._gl.pixelStorei(this._gl.UNPACK_ALIGNMENT, 1);\n }\n if (compression && data) {\n this._gl.compressedTexImage2D(this._gl.TEXTURE_2D, 0, this.getCaps().s3tc[compression], texture.width, texture.height, 0, data);\n }\n else {\n this._gl.texImage2D(this._gl.TEXTURE_2D, 0, internalSizedFomat, texture.width, texture.height, 0, internalFormat, textureType, data);\n }\n if (texture.generateMipMaps) {\n this._gl.generateMipmap(this._gl.TEXTURE_2D);\n }\n this._bindTextureDirectly(this._gl.TEXTURE_2D, null);\n // this.resetTextureCache();\n texture.isReady = true;\n};\nThinEngine.prototype.createRawTexture = function (data, width, height, format, generateMipMaps, invertY, samplingMode, compression = null, type = Constants.TEXTURETYPE_UNSIGNED_BYTE, \n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ncreationFlags = 0, useSRGBBuffer = false) {\n const texture = new InternalTexture(this, 3 /* InternalTextureSource.Raw */);\n texture.baseWidth = width;\n texture.baseHeight = height;\n texture.width = width;\n texture.height = height;\n texture.format = format;\n texture.generateMipMaps = generateMipMaps;\n texture.samplingMode = samplingMode;\n texture.invertY = invertY;\n texture._compression = compression;\n texture.type = type;\n texture._useSRGBBuffer = this._getUseSRGBBuffer(useSRGBBuffer, !generateMipMaps);\n if (!this._doNotHandleContextLost) {\n texture._bufferView = data;\n }\n this.updateRawTexture(texture, data, format, invertY, compression, type, texture._useSRGBBuffer);\n this._bindTextureDirectly(this._gl.TEXTURE_2D, texture, true);\n // Filters\n const filters = this._getSamplingParameters(samplingMode, generateMipMaps);\n this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_MAG_FILTER, filters.mag);\n this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_MIN_FILTER, filters.min);\n if (generateMipMaps) {\n this._gl.generateMipmap(this._gl.TEXTURE_2D);\n }\n this._bindTextureDirectly(this._gl.TEXTURE_2D, null);\n this._internalTexturesCache.push(texture);\n return texture;\n};\nThinEngine.prototype.createRawCubeTexture = function (data, size, format, type, generateMipMaps, invertY, samplingMode, compression = null) {\n const gl = this._gl;\n const texture = new InternalTexture(this, 8 /* InternalTextureSource.CubeRaw */);\n texture.isCube = true;\n texture.format = format;\n texture.type = type;\n if (!this._doNotHandleContextLost) {\n texture._bufferViewArray = data;\n }\n const textureType = this._getWebGLTextureType(type);\n let internalFormat = this._getInternalFormat(format);\n if (internalFormat === gl.RGB) {\n internalFormat = gl.RGBA;\n }\n // Mipmap generation needs a sized internal format that is both color-renderable and texture-filterable\n if (textureType === gl.FLOAT && !this._caps.textureFloatLinearFiltering) {\n generateMipMaps = false;\n samplingMode = Constants.TEXTURE_NEAREST_SAMPLINGMODE;\n Logger.Warn(\"Float texture filtering is not supported. Mipmap generation and sampling mode are forced to false and TEXTURE_NEAREST_SAMPLINGMODE, respectively.\");\n }\n else if (textureType === this._gl.HALF_FLOAT_OES && !this._caps.textureHalfFloatLinearFiltering) {\n generateMipMaps = false;\n samplingMode = Constants.TEXTURE_NEAREST_SAMPLINGMODE;\n Logger.Warn(\"Half float texture filtering is not supported. Mipmap generation and sampling mode are forced to false and TEXTURE_NEAREST_SAMPLINGMODE, respectively.\");\n }\n else if (textureType === gl.FLOAT && !this._caps.textureFloatRender) {\n generateMipMaps = false;\n Logger.Warn(\"Render to float textures is not supported. Mipmap generation forced to false.\");\n }\n else if (textureType === gl.HALF_FLOAT && !this._caps.colorBufferFloat) {\n generateMipMaps = false;\n Logger.Warn(\"Render to half float textures is not supported. Mipmap generation forced to false.\");\n }\n const width = size;\n const height = width;\n texture.width = width;\n texture.height = height;\n texture.invertY = invertY;\n texture._compression = compression;\n // Double check on POT to generate Mips.\n const isPot = !this.needPOTTextures || (IsExponentOfTwo(texture.width) && IsExponentOfTwo(texture.height));\n if (!isPot) {\n generateMipMaps = false;\n }\n // Upload data if needed. The texture won't be ready until then.\n if (data) {\n this.updateRawCubeTexture(texture, data, format, type, invertY, compression);\n }\n else {\n const internalSizedFomat = this._getRGBABufferInternalSizedFormat(type);\n const level = 0;\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, texture, true);\n for (let faceIndex = 0; faceIndex < 6; faceIndex++) {\n if (compression) {\n gl.compressedTexImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex, level, this.getCaps().s3tc[compression], texture.width, texture.height, 0, undefined);\n }\n else {\n gl.texImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex, level, internalSizedFomat, texture.width, texture.height, 0, internalFormat, textureType, null);\n }\n }\n this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, null);\n }\n this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, texture, true);\n // Filters\n if (data && generateMipMaps) {\n this._gl.generateMipmap(this._gl.TEXTURE_CUBE_MAP);\n }\n const filters = this._getSamplingParameters(samplingMode, generateMipMaps);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MAG_FILTER, filters.mag);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MIN_FILTER, filters.min);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, null);\n texture.generateMipMaps = generateMipMaps;\n texture.samplingMode = samplingMode;\n texture.isReady = true;\n return texture;\n};\nThinEngine.prototype.updateRawCubeTexture = function (texture, data, format, type, invertY, compression = null, level = 0) {\n texture._bufferViewArray = data;\n texture.format = format;\n texture.type = type;\n texture.invertY = invertY;\n texture._compression = compression;\n const gl = this._gl;\n const textureType = this._getWebGLTextureType(type);\n let internalFormat = this._getInternalFormat(format);\n const internalSizedFomat = this._getRGBABufferInternalSizedFormat(type);\n let needConversion = false;\n if (internalFormat === gl.RGB) {\n internalFormat = gl.RGBA;\n needConversion = true;\n }\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, texture, true);\n this._unpackFlipY(invertY === undefined ? true : invertY ? true : false);\n if (texture.width % 4 !== 0) {\n gl.pixelStorei(gl.UNPACK_ALIGNMENT, 1);\n }\n // Data are known to be in +X +Y +Z -X -Y -Z\n for (let faceIndex = 0; faceIndex < 6; faceIndex++) {\n let faceData = data[faceIndex];\n if (compression) {\n gl.compressedTexImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex, level, this.getCaps().s3tc[compression], texture.width, texture.height, 0, faceData);\n }\n else {\n if (needConversion) {\n faceData = _convertRGBtoRGBATextureData(faceData, texture.width, texture.height, type);\n }\n gl.texImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex, level, internalSizedFomat, texture.width, texture.height, 0, internalFormat, textureType, faceData);\n }\n }\n const isPot = !this.needPOTTextures || (IsExponentOfTwo(texture.width) && IsExponentOfTwo(texture.height));\n if (isPot && texture.generateMipMaps && level === 0) {\n this._gl.generateMipmap(this._gl.TEXTURE_CUBE_MAP);\n }\n this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, null);\n // this.resetTextureCache();\n texture.isReady = true;\n};\nThinEngine.prototype.createRawCubeTextureFromUrl = function (url, scene, size, format, type, noMipmap, callback, mipmapGenerator, onLoad = null, onError = null, samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE, invertY = false) {\n const gl = this._gl;\n const texture = this.createRawCubeTexture(null, size, format, type, !noMipmap, invertY, samplingMode, null);\n scene?.addPendingData(texture);\n texture.url = url;\n texture.isReady = false;\n this._internalTexturesCache.push(texture);\n const onerror = (request, exception) => {\n scene?.removePendingData(texture);\n if (onError && request) {\n onError(request.status + \" \" + request.statusText, exception);\n }\n };\n const internalCallback = (data) => {\n const width = texture.width;\n const faceDataArrays = callback(data);\n if (!faceDataArrays) {\n return;\n }\n if (mipmapGenerator) {\n const textureType = this._getWebGLTextureType(type);\n let internalFormat = this._getInternalFormat(format);\n const internalSizedFomat = this._getRGBABufferInternalSizedFormat(type);\n let needConversion = false;\n if (internalFormat === gl.RGB) {\n internalFormat = gl.RGBA;\n needConversion = true;\n }\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, texture, true);\n this._unpackFlipY(false);\n const mipData = mipmapGenerator(faceDataArrays);\n for (let level = 0; level < mipData.length; level++) {\n const mipSize = width >> level;\n for (let faceIndex = 0; faceIndex < 6; faceIndex++) {\n let mipFaceData = mipData[level][faceIndex];\n if (needConversion) {\n mipFaceData = _convertRGBtoRGBATextureData(mipFaceData, mipSize, mipSize, type);\n }\n gl.texImage2D(faceIndex, level, internalSizedFomat, mipSize, mipSize, 0, internalFormat, textureType, mipFaceData);\n }\n }\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, null);\n }\n else {\n this.updateRawCubeTexture(texture, faceDataArrays, format, type, invertY);\n }\n texture.isReady = true;\n // this.resetTextureCache();\n scene?.removePendingData(texture);\n texture.onLoadedObservable.notifyObservers(texture);\n texture.onLoadedObservable.clear();\n if (onLoad) {\n onLoad();\n }\n };\n this._loadFile(url, (data) => {\n internalCallback(data);\n }, undefined, scene?.offlineProvider, true, onerror);\n return texture;\n};\n/**\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nfunction _convertRGBtoRGBATextureData(rgbData, width, height, textureType) {\n // Create new RGBA data container.\n let rgbaData;\n let val1 = 1;\n if (textureType === Constants.TEXTURETYPE_FLOAT) {\n rgbaData = new Float32Array(width * height * 4);\n }\n else if (textureType === Constants.TEXTURETYPE_HALF_FLOAT) {\n rgbaData = new Uint16Array(width * height * 4);\n val1 = 15360; // 15360 is the encoding of 1 in half float\n }\n else if (textureType === Constants.TEXTURETYPE_UNSIGNED_INTEGER) {\n rgbaData = new Uint32Array(width * height * 4);\n }\n else {\n rgbaData = new Uint8Array(width * height * 4);\n }\n // Convert each pixel.\n for (let x = 0; x < width; x++) {\n for (let y = 0; y < height; y++) {\n const index = (y * width + x) * 3;\n const newIndex = (y * width + x) * 4;\n // Map Old Value to new value.\n rgbaData[newIndex + 0] = rgbData[index + 0];\n rgbaData[newIndex + 1] = rgbData[index + 1];\n rgbaData[newIndex + 2] = rgbData[index + 2];\n // Add fully opaque alpha channel.\n rgbaData[newIndex + 3] = val1;\n }\n }\n return rgbaData;\n}\n/**\n * Create a function for createRawTexture3D/createRawTexture2DArray\n * @param is3D true for TEXTURE_3D and false for TEXTURE_2D_ARRAY\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nfunction _makeCreateRawTextureFunction(is3D) {\n return function (data, width, height, depth, format, generateMipMaps, invertY, samplingMode, compression = null, textureType = Constants.TEXTURETYPE_UNSIGNED_BYTE) {\n const target = is3D ? this._gl.TEXTURE_3D : this._gl.TEXTURE_2D_ARRAY;\n const source = is3D ? 10 /* InternalTextureSource.Raw3D */ : 11 /* InternalTextureSource.Raw2DArray */;\n const texture = new InternalTexture(this, source);\n texture.baseWidth = width;\n texture.baseHeight = height;\n texture.baseDepth = depth;\n texture.width = width;\n texture.height = height;\n texture.depth = depth;\n texture.format = format;\n texture.type = textureType;\n texture.generateMipMaps = generateMipMaps;\n texture.samplingMode = samplingMode;\n if (is3D) {\n texture.is3D = true;\n }\n else {\n texture.is2DArray = true;\n }\n if (!this._doNotHandleContextLost) {\n texture._bufferView = data;\n }\n if (is3D) {\n this.updateRawTexture3D(texture, data, format, invertY, compression, textureType);\n }\n else {\n this.updateRawTexture2DArray(texture, data, format, invertY, compression, textureType);\n }\n this._bindTextureDirectly(target, texture, true);\n // Filters\n const filters = this._getSamplingParameters(samplingMode, generateMipMaps);\n this._gl.texParameteri(target, this._gl.TEXTURE_MAG_FILTER, filters.mag);\n this._gl.texParameteri(target, this._gl.TEXTURE_MIN_FILTER, filters.min);\n if (generateMipMaps) {\n this._gl.generateMipmap(target);\n }\n this._bindTextureDirectly(target, null);\n this._internalTexturesCache.push(texture);\n return texture;\n };\n}\nThinEngine.prototype.createRawTexture2DArray = _makeCreateRawTextureFunction(false);\nThinEngine.prototype.createRawTexture3D = _makeCreateRawTextureFunction(true);\n/**\n * Create a function for updateRawTexture3D/updateRawTexture2DArray\n * @param is3D true for TEXTURE_3D and false for TEXTURE_2D_ARRAY\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nfunction _makeUpdateRawTextureFunction(is3D) {\n return function (texture, data, format, invertY, compression = null, textureType = Constants.TEXTURETYPE_UNSIGNED_BYTE) {\n const target = is3D ? this._gl.TEXTURE_3D : this._gl.TEXTURE_2D_ARRAY;\n const internalType = this._getWebGLTextureType(textureType);\n const internalFormat = this._getInternalFormat(format);\n const internalSizedFomat = this._getRGBABufferInternalSizedFormat(textureType, format);\n this._bindTextureDirectly(target, texture, true);\n this._unpackFlipY(invertY === undefined ? true : invertY ? true : false);\n if (!this._doNotHandleContextLost) {\n texture._bufferView = data;\n texture.format = format;\n texture.invertY = invertY;\n texture._compression = compression;\n }\n if (texture.width % 4 !== 0) {\n this._gl.pixelStorei(this._gl.UNPACK_ALIGNMENT, 1);\n }\n if (compression && data) {\n this._gl.compressedTexImage3D(target, 0, this.getCaps().s3tc[compression], texture.width, texture.height, texture.depth, 0, data);\n }\n else {\n this._gl.texImage3D(target, 0, internalSizedFomat, texture.width, texture.height, texture.depth, 0, internalFormat, internalType, data);\n }\n if (texture.generateMipMaps) {\n this._gl.generateMipmap(target);\n }\n this._bindTextureDirectly(target, null);\n // this.resetTextureCache();\n texture.isReady = true;\n };\n}\nThinEngine.prototype.updateRawTexture2DArray = _makeUpdateRawTextureFunction(false);\nThinEngine.prototype.updateRawTexture3D = _makeUpdateRawTextureFunction(true);\n//# sourceMappingURL=engine.rawTexture.js.map","import { ThinEngine } from \"../../Engines/thinEngine\";\n// back-compat\nimport { allocateAndCopyTypedBuffer } from \"../../Engines/abstractEngine.functions\";\nexport { allocateAndCopyTypedBuffer };\nThinEngine.prototype._readTexturePixelsSync = function (texture, width, height, faceIndex = -1, level = 0, buffer = null, flushRenderer = true, noDataConversion = false, x = 0, y = 0) {\n const gl = this._gl;\n if (!gl) {\n throw new Error(\"Engine does not have gl rendering context.\");\n }\n if (!this._dummyFramebuffer) {\n const dummy = gl.createFramebuffer();\n if (!dummy) {\n throw new Error(\"Unable to create dummy framebuffer\");\n }\n this._dummyFramebuffer = dummy;\n }\n gl.bindFramebuffer(gl.FRAMEBUFFER, this._dummyFramebuffer);\n if (faceIndex > -1) {\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex, texture._hardwareTexture?.underlyingResource, level);\n }\n else {\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture._hardwareTexture?.underlyingResource, level);\n }\n let readType = texture.type !== undefined ? this._getWebGLTextureType(texture.type) : gl.UNSIGNED_BYTE;\n if (!noDataConversion) {\n switch (readType) {\n case gl.UNSIGNED_BYTE:\n if (!buffer) {\n buffer = new Uint8Array(4 * width * height);\n }\n readType = gl.UNSIGNED_BYTE;\n break;\n default:\n if (!buffer) {\n buffer = new Float32Array(4 * width * height);\n }\n readType = gl.FLOAT;\n break;\n }\n }\n else if (!buffer) {\n buffer = allocateAndCopyTypedBuffer(texture.type, 4 * width * height);\n }\n if (flushRenderer) {\n this.flushFramebuffer();\n }\n gl.readPixels(x, y, width, height, gl.RGBA, readType, buffer);\n gl.bindFramebuffer(gl.FRAMEBUFFER, this._currentFramebuffer);\n return buffer;\n};\nThinEngine.prototype._readTexturePixels = function (texture, width, height, faceIndex = -1, level = 0, buffer = null, flushRenderer = true, noDataConversion = false, x = 0, y = 0) {\n return Promise.resolve(this._readTexturePixelsSync(texture, width, height, faceIndex, level, buffer, flushRenderer, noDataConversion, x, y));\n};\n//# sourceMappingURL=engine.readTexture.js.map","import { ThinEngine } from \"../../Engines/thinEngine\";\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nThinEngine.prototype.updateDynamicIndexBuffer = function (indexBuffer, indices, offset = 0) {\n // Force cache update\n this._currentBoundBuffer[this._gl.ELEMENT_ARRAY_BUFFER] = null;\n this.bindIndexBuffer(indexBuffer);\n let view;\n if (indexBuffer.is32Bits) {\n // anything else than Uint32Array needs to be converted to Uint32Array\n view = indices instanceof Uint32Array ? indices : new Uint32Array(indices);\n }\n else {\n // anything else than Uint16Array needs to be converted to Uint16Array\n view = indices instanceof Uint16Array ? indices : new Uint16Array(indices);\n }\n this._gl.bufferData(this._gl.ELEMENT_ARRAY_BUFFER, view, this._gl.DYNAMIC_DRAW);\n this._resetIndexBufferBinding();\n};\nThinEngine.prototype.updateDynamicVertexBuffer = function (vertexBuffer, data, byteOffset, byteLength) {\n this.bindArrayBuffer(vertexBuffer);\n if (byteOffset === undefined) {\n byteOffset = 0;\n }\n const dataLength = data.byteLength || data.length;\n if (byteLength === undefined || (byteLength >= dataLength && byteOffset === 0)) {\n if (data instanceof Array) {\n this._gl.bufferSubData(this._gl.ARRAY_BUFFER, byteOffset, new Float32Array(data));\n }\n else {\n this._gl.bufferSubData(this._gl.ARRAY_BUFFER, byteOffset, data);\n }\n }\n else {\n if (data instanceof Array) {\n this._gl.bufferSubData(this._gl.ARRAY_BUFFER, 0, new Float32Array(data).subarray(byteOffset, byteOffset + byteLength));\n }\n else {\n if (data instanceof ArrayBuffer) {\n data = new Uint8Array(data, byteOffset, byteLength);\n }\n else {\n data = new Uint8Array(data.buffer, data.byteOffset + byteOffset, byteLength);\n }\n this._gl.bufferSubData(this._gl.ARRAY_BUFFER, 0, data);\n }\n }\n this._resetVertexBufferBinding();\n};\n//# sourceMappingURL=engine.dynamicBuffer.js.map","import { ThinEngine } from \"../../Engines/thinEngine\";\nimport { InternalTexture } from \"../../Materials/Textures/internalTexture\";\nimport { Logger } from \"../../Misc/logger\";\nimport { Constants } from \"../constants\";\nimport { GetExponentOfTwo } from \"../../Misc/tools.functions\";\nThinEngine.prototype._createDepthStencilCubeTexture = function (size, options) {\n const internalTexture = new InternalTexture(this, 12 /* InternalTextureSource.DepthStencil */);\n internalTexture.isCube = true;\n if (this.webGLVersion === 1) {\n Logger.Error(\"Depth cube texture is not supported by WebGL 1.\");\n return internalTexture;\n }\n const internalOptions = {\n bilinearFiltering: false,\n comparisonFunction: 0,\n generateStencil: false,\n ...options,\n };\n const gl = this._gl;\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, internalTexture, true);\n this._setupDepthStencilTexture(internalTexture, size, internalOptions.bilinearFiltering, internalOptions.comparisonFunction);\n // Create the depth/stencil buffer\n for (let face = 0; face < 6; face++) {\n if (internalOptions.generateStencil) {\n gl.texImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + face, 0, gl.DEPTH24_STENCIL8, size, size, 0, gl.DEPTH_STENCIL, gl.UNSIGNED_INT_24_8, null);\n }\n else {\n gl.texImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + face, 0, gl.DEPTH_COMPONENT24, size, size, 0, gl.DEPTH_COMPONENT, gl.UNSIGNED_INT, null);\n }\n }\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, null);\n this._internalTexturesCache.push(internalTexture);\n return internalTexture;\n};\nThinEngine.prototype._setCubeMapTextureParams = function (texture, loadMipmap, maxLevel) {\n const gl = this._gl;\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MIN_FILTER, loadMipmap ? gl.LINEAR_MIPMAP_LINEAR : gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n texture.samplingMode = loadMipmap ? Constants.TEXTURE_TRILINEAR_SAMPLINGMODE : Constants.TEXTURE_LINEAR_LINEAR;\n if (loadMipmap && this.getCaps().textureMaxLevel && maxLevel !== undefined && maxLevel > 0) {\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MAX_LEVEL, maxLevel);\n texture._maxLodLevel = maxLevel;\n }\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, null);\n};\nThinEngine.prototype.createCubeTexture = function (rootUrl, scene, files, noMipmap, onLoad = null, onError = null, format, forcedExtension = null, createPolynomials = false, lodScale = 0, lodOffset = 0, fallback = null, loaderOptions, useSRGBBuffer = false, buffer = null) {\n const gl = this._gl;\n return this.createCubeTextureBase(rootUrl, scene, files, !!noMipmap, onLoad, onError, format, forcedExtension, createPolynomials, lodScale, lodOffset, fallback, (texture) => this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, texture, true), (texture, imgs) => {\n const width = this.needPOTTextures ? GetExponentOfTwo(imgs[0].width, this._caps.maxCubemapTextureSize) : imgs[0].width;\n const height = width;\n const faces = [\n gl.TEXTURE_CUBE_MAP_POSITIVE_X,\n gl.TEXTURE_CUBE_MAP_POSITIVE_Y,\n gl.TEXTURE_CUBE_MAP_POSITIVE_Z,\n gl.TEXTURE_CUBE_MAP_NEGATIVE_X,\n gl.TEXTURE_CUBE_MAP_NEGATIVE_Y,\n gl.TEXTURE_CUBE_MAP_NEGATIVE_Z,\n ];\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, texture, true);\n this._unpackFlipY(false);\n const internalFormat = format ? this._getInternalFormat(format, texture._useSRGBBuffer) : texture._useSRGBBuffer ? this._glSRGBExtensionValues.SRGB8_ALPHA8 : gl.RGBA;\n let texelFormat = format ? this._getInternalFormat(format) : gl.RGBA;\n if (texture._useSRGBBuffer && this.webGLVersion === 1) {\n texelFormat = internalFormat;\n }\n for (let index = 0; index < faces.length; index++) {\n if (imgs[index].width !== width || imgs[index].height !== height) {\n this._prepareWorkingCanvas();\n if (!this._workingCanvas || !this._workingContext) {\n Logger.Warn(\"Cannot create canvas to resize texture.\");\n return;\n }\n this._workingCanvas.width = width;\n this._workingCanvas.height = height;\n this._workingContext.drawImage(imgs[index], 0, 0, imgs[index].width, imgs[index].height, 0, 0, width, height);\n gl.texImage2D(faces[index], 0, internalFormat, texelFormat, gl.UNSIGNED_BYTE, this._workingCanvas);\n }\n else {\n gl.texImage2D(faces[index], 0, internalFormat, texelFormat, gl.UNSIGNED_BYTE, imgs[index]);\n }\n }\n if (!noMipmap) {\n gl.generateMipmap(gl.TEXTURE_CUBE_MAP);\n }\n this._setCubeMapTextureParams(texture, !noMipmap);\n texture.width = width;\n texture.height = height;\n texture.isReady = true;\n if (format) {\n texture.format = format;\n }\n texture.onLoadedObservable.notifyObservers(texture);\n texture.onLoadedObservable.clear();\n if (onLoad) {\n onLoad();\n }\n }, !!useSRGBBuffer, buffer);\n};\nThinEngine.prototype.generateMipMapsForCubemap = function (texture, unbind = true) {\n if (texture.generateMipMaps) {\n const gl = this._gl;\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, texture, true);\n gl.generateMipmap(gl.TEXTURE_CUBE_MAP);\n if (unbind) {\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, null);\n }\n }\n};\n//# sourceMappingURL=engine.cubeTexture.js.map","import { Constants } from \"../constants\";\nimport { RenderTargetWrapper } from \"../renderTargetWrapper\";\nimport { HasStencilAspect } from \"../../Materials/Textures/internalTexture\";\n/** @internal */\nexport class WebGLRenderTargetWrapper extends RenderTargetWrapper {\n setDepthStencilTexture(texture, disposeExisting = true) {\n super.setDepthStencilTexture(texture, disposeExisting);\n if (!texture) {\n return;\n }\n const engine = this._engine;\n const gl = this._context;\n const hardwareTexture = texture._hardwareTexture;\n if (hardwareTexture && texture._autoMSAAManagement && this._MSAAFramebuffer) {\n const currentFB = engine._currentFramebuffer;\n engine._bindUnboundFramebuffer(this._MSAAFramebuffer);\n gl.framebufferRenderbuffer(gl.FRAMEBUFFER, HasStencilAspect(texture.format) ? gl.DEPTH_STENCIL_ATTACHMENT : gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, hardwareTexture.getMSAARenderBuffer());\n engine._bindUnboundFramebuffer(currentFB);\n }\n }\n constructor(isMulti, isCube, size, engine, context) {\n super(isMulti, isCube, size, engine);\n /**\n * @internal\n */\n this._framebuffer = null;\n /**\n * @internal\n */\n this._depthStencilBuffer = null;\n // eslint-disable-next-line @typescript-eslint/naming-convention\n /**\n * @internal\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n this._MSAAFramebuffer = null;\n // Multiview\n /**\n * @internal\n */\n this._colorTextureArray = null;\n /**\n * @internal\n */\n this._depthStencilTextureArray = null;\n /**\n * @internal\n */\n this._disposeOnlyFramebuffers = false;\n /**\n * @internal\n */\n this._currentLOD = 0;\n this._context = context;\n }\n _cloneRenderTargetWrapper() {\n let rtw = null;\n if (this._colorTextureArray && this._depthStencilTextureArray) {\n rtw = this._engine.createMultiviewRenderTargetTexture(this.width, this.height);\n rtw.texture.isReady = true;\n }\n else {\n rtw = super._cloneRenderTargetWrapper();\n }\n return rtw;\n }\n _swapRenderTargetWrapper(target) {\n super._swapRenderTargetWrapper(target);\n target._framebuffer = this._framebuffer;\n target._depthStencilBuffer = this._depthStencilBuffer;\n target._MSAAFramebuffer = this._MSAAFramebuffer;\n target._colorTextureArray = this._colorTextureArray;\n target._depthStencilTextureArray = this._depthStencilTextureArray;\n this._framebuffer = this._depthStencilBuffer = this._MSAAFramebuffer = this._colorTextureArray = this._depthStencilTextureArray = null;\n }\n /**\n * Creates the depth/stencil texture\n * @param comparisonFunction Comparison function to use for the texture\n * @param bilinearFiltering true if bilinear filtering should be used when sampling the texture\n * @param generateStencil true if the stencil aspect should also be created\n * @param samples sample count to use when creating the texture\n * @param format format of the depth texture\n * @param label defines the label to use for the texture (for debugging purpose only)\n * @returns the depth/stencil created texture\n */\n createDepthStencilTexture(comparisonFunction = 0, bilinearFiltering = true, generateStencil = false, samples = 1, format = Constants.TEXTUREFORMAT_DEPTH32_FLOAT, label) {\n if (this._depthStencilBuffer) {\n const engine = this._engine;\n // Dispose previous depth/stencil render buffers and clear the corresponding attachment.\n // Next time this framebuffer is bound, the new depth/stencil texture will be attached.\n const currentFrameBuffer = engine._currentFramebuffer;\n const gl = this._context;\n engine._bindUnboundFramebuffer(this._framebuffer);\n gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, gl.RENDERBUFFER, null);\n gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, null);\n gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.STENCIL_ATTACHMENT, gl.RENDERBUFFER, null);\n engine._bindUnboundFramebuffer(currentFrameBuffer);\n gl.deleteRenderbuffer(this._depthStencilBuffer);\n this._depthStencilBuffer = null;\n }\n return super.createDepthStencilTexture(comparisonFunction, bilinearFiltering, generateStencil, samples, format, label);\n }\n /**\n * Shares the depth buffer of this render target with another render target.\n * @param renderTarget Destination renderTarget\n */\n shareDepth(renderTarget) {\n super.shareDepth(renderTarget);\n const gl = this._context;\n const depthbuffer = this._depthStencilBuffer;\n const framebuffer = renderTarget._MSAAFramebuffer || renderTarget._framebuffer;\n const engine = this._engine;\n if (renderTarget._depthStencilBuffer && renderTarget._depthStencilBuffer !== depthbuffer) {\n gl.deleteRenderbuffer(renderTarget._depthStencilBuffer);\n }\n renderTarget._depthStencilBuffer = depthbuffer;\n const attachment = renderTarget._generateStencilBuffer ? gl.DEPTH_STENCIL_ATTACHMENT : gl.DEPTH_ATTACHMENT;\n engine._bindUnboundFramebuffer(framebuffer);\n gl.framebufferRenderbuffer(gl.FRAMEBUFFER, attachment, gl.RENDERBUFFER, depthbuffer);\n engine._bindUnboundFramebuffer(null);\n }\n /**\n * Binds a texture to this render target on a specific attachment\n * @param texture The texture to bind to the framebuffer\n * @param attachmentIndex Index of the attachment\n * @param faceIndexOrLayer The face or layer of the texture to render to in case of cube texture or array texture\n * @param lodLevel defines the lod level to bind to the frame buffer\n */\n _bindTextureRenderTarget(texture, attachmentIndex = 0, faceIndexOrLayer, lodLevel = 0) {\n const hardwareTexture = texture._hardwareTexture;\n if (!hardwareTexture) {\n return;\n }\n const framebuffer = this._framebuffer;\n const engine = this._engine;\n const currentFB = engine._currentFramebuffer;\n engine._bindUnboundFramebuffer(framebuffer);\n let attachment;\n if (engine.webGLVersion > 1) {\n const gl = this._context;\n attachment = gl[\"COLOR_ATTACHMENT\" + attachmentIndex];\n if (texture.is2DArray || texture.is3D) {\n faceIndexOrLayer = faceIndexOrLayer ?? this.layerIndices?.[attachmentIndex] ?? 0;\n gl.framebufferTextureLayer(gl.FRAMEBUFFER, attachment, hardwareTexture.underlyingResource, lodLevel, faceIndexOrLayer);\n }\n else if (texture.isCube) {\n // if face index is not specified, try to query it from faceIndices\n // default is face 0\n faceIndexOrLayer = faceIndexOrLayer ?? this.faceIndices?.[attachmentIndex] ?? 0;\n gl.framebufferTexture2D(gl.FRAMEBUFFER, attachment, gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndexOrLayer, hardwareTexture.underlyingResource, lodLevel);\n }\n else {\n gl.framebufferTexture2D(gl.FRAMEBUFFER, attachment, gl.TEXTURE_2D, hardwareTexture.underlyingResource, lodLevel);\n }\n }\n else {\n // Default behavior (WebGL)\n const gl = this._context;\n attachment = gl[\"COLOR_ATTACHMENT\" + attachmentIndex + \"_WEBGL\"];\n const target = faceIndexOrLayer !== undefined ? gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndexOrLayer : gl.TEXTURE_2D;\n gl.framebufferTexture2D(gl.FRAMEBUFFER, attachment, target, hardwareTexture.underlyingResource, lodLevel);\n }\n if (texture._autoMSAAManagement && this._MSAAFramebuffer) {\n const gl = this._context;\n engine._bindUnboundFramebuffer(this._MSAAFramebuffer);\n gl.framebufferRenderbuffer(gl.FRAMEBUFFER, attachment, gl.RENDERBUFFER, hardwareTexture.getMSAARenderBuffer());\n }\n engine._bindUnboundFramebuffer(currentFB);\n }\n /**\n * Set a texture in the textures array\n * @param texture the texture to set\n * @param index the index in the textures array to set\n * @param disposePrevious If this function should dispose the previous texture\n */\n setTexture(texture, index = 0, disposePrevious = true) {\n super.setTexture(texture, index, disposePrevious);\n this._bindTextureRenderTarget(texture, index);\n }\n /**\n * Sets the layer and face indices of every render target texture\n * @param layers The layer of the texture to be set (make negative to not modify)\n * @param faces The face of the texture to be set (make negative to not modify)\n */\n setLayerAndFaceIndices(layers, faces) {\n super.setLayerAndFaceIndices(layers, faces);\n if (!this.textures || !this.layerIndices || !this.faceIndices) {\n return;\n }\n // the length of this._attachments is the right one as it does not count the depth texture, in case we generated it\n const textureCount = this._attachments?.length ?? this.textures.length;\n for (let index = 0; index < textureCount; index++) {\n const texture = this.textures[index];\n if (!texture) {\n // The target type was probably -1 at creation time and setTexture has not been called yet for this index\n continue;\n }\n if (texture.is2DArray || texture.is3D) {\n this._bindTextureRenderTarget(texture, index, this.layerIndices[index]);\n }\n else if (texture.isCube) {\n this._bindTextureRenderTarget(texture, index, this.faceIndices[index]);\n }\n else {\n this._bindTextureRenderTarget(texture, index);\n }\n }\n }\n /**\n * Set the face and layer indices of a texture in the textures array\n * @param index The index of the texture in the textures array to modify\n * @param layer The layer of the texture to be set\n * @param face The face of the texture to be set\n */\n setLayerAndFaceIndex(index = 0, layer, face) {\n super.setLayerAndFaceIndex(index, layer, face);\n if (!this.textures || !this.layerIndices || !this.faceIndices) {\n return;\n }\n const texture = this.textures[index];\n if (texture.is2DArray || texture.is3D) {\n this._bindTextureRenderTarget(this.textures[index], index, this.layerIndices[index]);\n }\n else if (texture.isCube) {\n this._bindTextureRenderTarget(this.textures[index], index, this.faceIndices[index]);\n }\n }\n resolveMSAATextures() {\n const engine = this._engine;\n const currentFramebuffer = engine._currentFramebuffer;\n engine._bindUnboundFramebuffer(this._MSAAFramebuffer);\n super.resolveMSAATextures();\n engine._bindUnboundFramebuffer(currentFramebuffer);\n }\n dispose(disposeOnlyFramebuffers = this._disposeOnlyFramebuffers) {\n const gl = this._context;\n if (!disposeOnlyFramebuffers) {\n if (this._colorTextureArray) {\n this._context.deleteTexture(this._colorTextureArray);\n this._colorTextureArray = null;\n }\n if (this._depthStencilTextureArray) {\n this._context.deleteTexture(this._depthStencilTextureArray);\n this._depthStencilTextureArray = null;\n }\n }\n if (this._framebuffer) {\n gl.deleteFramebuffer(this._framebuffer);\n this._framebuffer = null;\n }\n if (this._depthStencilBuffer) {\n gl.deleteRenderbuffer(this._depthStencilBuffer);\n this._depthStencilBuffer = null;\n }\n if (this._MSAAFramebuffer) {\n gl.deleteFramebuffer(this._MSAAFramebuffer);\n this._MSAAFramebuffer = null;\n }\n super.dispose(disposeOnlyFramebuffers);\n }\n}\n//# sourceMappingURL=webGLRenderTargetWrapper.js.map","import { InternalTexture } from \"../../Materials/Textures/internalTexture\";\nimport { Logger } from \"../../Misc/logger\";\nimport { ThinEngine } from \"../thinEngine\";\nimport { WebGLRenderTargetWrapper } from \"../WebGL/webGLRenderTargetWrapper\";\nimport { Constants } from \"../constants\";\nimport \"../AbstractEngine/abstractEngine.texture\";\nThinEngine.prototype._createHardwareRenderTargetWrapper = function (isMulti, isCube, size) {\n const rtWrapper = new WebGLRenderTargetWrapper(isMulti, isCube, size, this, this._gl);\n this._renderTargetWrapperCache.push(rtWrapper);\n return rtWrapper;\n};\nThinEngine.prototype.createRenderTargetTexture = function (size, options) {\n const rtWrapper = this._createHardwareRenderTargetWrapper(false, false, size);\n let generateDepthBuffer = true;\n let generateStencilBuffer = false;\n let noColorAttachment = false;\n let colorAttachment = undefined;\n let samples = 1;\n let label = undefined;\n if (options !== undefined && typeof options === \"object\") {\n generateDepthBuffer = options.generateDepthBuffer ?? true;\n generateStencilBuffer = !!options.generateStencilBuffer;\n noColorAttachment = !!options.noColorAttachment;\n colorAttachment = options.colorAttachment;\n samples = options.samples ?? 1;\n label = options.label;\n }\n const texture = colorAttachment || (noColorAttachment ? null : this._createInternalTexture(size, options, true, 5 /* InternalTextureSource.RenderTarget */));\n const width = size.width || size;\n const height = size.height || size;\n const currentFrameBuffer = this._currentFramebuffer;\n const gl = this._gl;\n // Create the framebuffer\n const framebuffer = gl.createFramebuffer();\n this._bindUnboundFramebuffer(framebuffer);\n rtWrapper._depthStencilBuffer = this._setupFramebufferDepthAttachments(generateStencilBuffer, generateDepthBuffer, width, height);\n // No need to rebind on every frame\n if (texture && !texture.is2DArray && !texture.is3D) {\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture._hardwareTexture.underlyingResource, 0);\n }\n this._bindUnboundFramebuffer(currentFrameBuffer);\n rtWrapper.label = label ?? \"RenderTargetWrapper\";\n rtWrapper._framebuffer = framebuffer;\n rtWrapper._generateDepthBuffer = generateDepthBuffer;\n rtWrapper._generateStencilBuffer = generateStencilBuffer;\n rtWrapper.setTextures(texture);\n if (!colorAttachment) {\n this.updateRenderTargetTextureSampleCount(rtWrapper, samples);\n }\n else {\n rtWrapper._samples = colorAttachment.samples;\n if (colorAttachment.samples > 1) {\n const msaaRenderBuffer = colorAttachment._hardwareTexture.getMSAARenderBuffer(0);\n rtWrapper._MSAAFramebuffer = gl.createFramebuffer();\n this._bindUnboundFramebuffer(rtWrapper._MSAAFramebuffer);\n gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, msaaRenderBuffer);\n this._bindUnboundFramebuffer(null);\n }\n }\n return rtWrapper;\n};\nThinEngine.prototype._createDepthStencilTexture = function (size, options, rtWrapper) {\n const gl = this._gl;\n const layers = size.layers || 0;\n const depth = size.depth || 0;\n let target = gl.TEXTURE_2D;\n if (layers !== 0) {\n target = gl.TEXTURE_2D_ARRAY;\n }\n else if (depth !== 0) {\n target = gl.TEXTURE_3D;\n }\n const internalTexture = new InternalTexture(this, 12 /* InternalTextureSource.DepthStencil */);\n internalTexture.label = options.label;\n if (!this._caps.depthTextureExtension) {\n Logger.Error(\"Depth texture is not supported by your browser or hardware.\");\n return internalTexture;\n }\n const internalOptions = {\n bilinearFiltering: false,\n comparisonFunction: 0,\n generateStencil: false,\n ...options,\n };\n this._bindTextureDirectly(target, internalTexture, true);\n this._setupDepthStencilTexture(internalTexture, size, internalOptions.comparisonFunction === 0 ? false : internalOptions.bilinearFiltering, internalOptions.comparisonFunction, internalOptions.samples);\n if (internalOptions.depthTextureFormat !== undefined) {\n if (internalOptions.depthTextureFormat !== Constants.TEXTUREFORMAT_DEPTH16 &&\n internalOptions.depthTextureFormat !== Constants.TEXTUREFORMAT_DEPTH24 &&\n internalOptions.depthTextureFormat !== Constants.TEXTUREFORMAT_DEPTH24UNORM_STENCIL8 &&\n internalOptions.depthTextureFormat !== Constants.TEXTUREFORMAT_DEPTH24_STENCIL8 &&\n internalOptions.depthTextureFormat !== Constants.TEXTUREFORMAT_DEPTH32_FLOAT &&\n internalOptions.depthTextureFormat !== Constants.TEXTUREFORMAT_DEPTH32FLOAT_STENCIL8) {\n Logger.Error(`Depth texture ${internalOptions.depthTextureFormat} format is not supported.`);\n return internalTexture;\n }\n internalTexture.format = internalOptions.depthTextureFormat;\n }\n else {\n internalTexture.format = internalOptions.generateStencil ? Constants.TEXTUREFORMAT_DEPTH24_STENCIL8 : Constants.TEXTUREFORMAT_DEPTH24;\n }\n const hasStencil = internalTexture.format === Constants.TEXTUREFORMAT_DEPTH24UNORM_STENCIL8 ||\n internalTexture.format === Constants.TEXTUREFORMAT_DEPTH24_STENCIL8 ||\n internalTexture.format === Constants.TEXTUREFORMAT_DEPTH32FLOAT_STENCIL8;\n const type = this._getWebGLTextureTypeFromDepthTextureFormat(internalTexture.format);\n const format = hasStencil ? gl.DEPTH_STENCIL : gl.DEPTH_COMPONENT;\n const internalFormat = this._getInternalFormatFromDepthTextureFormat(internalTexture.format, true, hasStencil);\n if (internalTexture.is2DArray) {\n gl.texImage3D(target, 0, internalFormat, internalTexture.width, internalTexture.height, layers, 0, format, type, null);\n }\n else if (internalTexture.is3D) {\n gl.texImage3D(target, 0, internalFormat, internalTexture.width, internalTexture.height, depth, 0, format, type, null);\n }\n else {\n gl.texImage2D(target, 0, internalFormat, internalTexture.width, internalTexture.height, 0, format, type, null);\n }\n this._bindTextureDirectly(target, null);\n this._internalTexturesCache.push(internalTexture);\n if (rtWrapper._depthStencilBuffer) {\n gl.deleteRenderbuffer(rtWrapper._depthStencilBuffer);\n rtWrapper._depthStencilBuffer = null;\n }\n this._bindUnboundFramebuffer(rtWrapper._MSAAFramebuffer ?? rtWrapper._framebuffer);\n rtWrapper._generateStencilBuffer = hasStencil;\n rtWrapper._depthStencilTextureWithStencil = hasStencil;\n rtWrapper._depthStencilBuffer = this._setupFramebufferDepthAttachments(rtWrapper._generateStencilBuffer, rtWrapper._generateDepthBuffer, rtWrapper.width, rtWrapper.height, rtWrapper.samples, internalTexture.format);\n this._bindUnboundFramebuffer(null);\n return internalTexture;\n};\nThinEngine.prototype.updateRenderTargetTextureSampleCount = function (rtWrapper, samples) {\n if (this.webGLVersion < 2 || !rtWrapper) {\n return 1;\n }\n if (rtWrapper.samples === samples) {\n return samples;\n }\n const gl = this._gl;\n samples = Math.min(samples, this.getCaps().maxMSAASamples);\n // Dispose previous render buffers\n if (rtWrapper._depthStencilBuffer) {\n gl.deleteRenderbuffer(rtWrapper._depthStencilBuffer);\n rtWrapper._depthStencilBuffer = null;\n }\n if (rtWrapper._MSAAFramebuffer) {\n gl.deleteFramebuffer(rtWrapper._MSAAFramebuffer);\n rtWrapper._MSAAFramebuffer = null;\n }\n const hardwareTexture = rtWrapper.texture?._hardwareTexture;\n hardwareTexture?.releaseMSAARenderBuffers();\n if (rtWrapper.texture && samples > 1 && typeof gl.renderbufferStorageMultisample === \"function\") {\n const framebuffer = gl.createFramebuffer();\n if (!framebuffer) {\n throw new Error(\"Unable to create multi sampled framebuffer\");\n }\n rtWrapper._MSAAFramebuffer = framebuffer;\n this._bindUnboundFramebuffer(rtWrapper._MSAAFramebuffer);\n const colorRenderbuffer = this._createRenderBuffer(rtWrapper.texture.width, rtWrapper.texture.height, samples, -1 /* not used */, this._getRGBABufferInternalSizedFormat(rtWrapper.texture.type, rtWrapper.texture.format, rtWrapper.texture._useSRGBBuffer), gl.COLOR_ATTACHMENT0, false);\n if (!colorRenderbuffer) {\n throw new Error(\"Unable to create multi sampled framebuffer\");\n }\n hardwareTexture?.addMSAARenderBuffer(colorRenderbuffer);\n }\n this._bindUnboundFramebuffer(rtWrapper._MSAAFramebuffer ?? rtWrapper._framebuffer);\n if (rtWrapper.texture) {\n rtWrapper.texture.samples = samples;\n }\n rtWrapper._samples = samples;\n const depthFormat = rtWrapper._depthStencilTexture ? rtWrapper._depthStencilTexture.format : undefined;\n rtWrapper._depthStencilBuffer = this._setupFramebufferDepthAttachments(rtWrapper._generateStencilBuffer, rtWrapper._generateDepthBuffer, rtWrapper.width, rtWrapper.height, samples, depthFormat);\n this._bindUnboundFramebuffer(null);\n return samples;\n};\nThinEngine.prototype._setupDepthStencilTexture = function (internalTexture, size, bilinearFiltering, comparisonFunction, samples = 1) {\n const width = size.width ?? size;\n const height = size.height ?? size;\n const layers = size.layers || 0;\n const depth = size.depth || 0;\n internalTexture.baseWidth = width;\n internalTexture.baseHeight = height;\n internalTexture.width = width;\n internalTexture.height = height;\n internalTexture.is2DArray = layers > 0;\n internalTexture.depth = layers || depth;\n internalTexture.isReady = true;\n internalTexture.samples = samples;\n internalTexture.generateMipMaps = false;\n internalTexture.samplingMode = bilinearFiltering ? Constants.TEXTURE_BILINEAR_SAMPLINGMODE : Constants.TEXTURE_NEAREST_SAMPLINGMODE;\n internalTexture.type = Constants.TEXTURETYPE_UNSIGNED_BYTE;\n internalTexture._comparisonFunction = comparisonFunction;\n const gl = this._gl;\n const target = this._getTextureTarget(internalTexture);\n const samplingParameters = this._getSamplingParameters(internalTexture.samplingMode, false);\n gl.texParameteri(target, gl.TEXTURE_MAG_FILTER, samplingParameters.mag);\n gl.texParameteri(target, gl.TEXTURE_MIN_FILTER, samplingParameters.min);\n gl.texParameteri(target, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(target, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n // TEXTURE_COMPARE_FUNC/MODE are only availble in WebGL2.\n if (this.webGLVersion > 1) {\n if (comparisonFunction === 0) {\n gl.texParameteri(target, gl.TEXTURE_COMPARE_FUNC, Constants.LEQUAL);\n gl.texParameteri(target, gl.TEXTURE_COMPARE_MODE, gl.NONE);\n }\n else {\n gl.texParameteri(target, gl.TEXTURE_COMPARE_FUNC, comparisonFunction);\n gl.texParameteri(target, gl.TEXTURE_COMPARE_MODE, gl.COMPARE_REF_TO_TEXTURE);\n }\n }\n};\n//# sourceMappingURL=engine.renderTarget.js.map","import { ThinEngine } from \"../../Engines/thinEngine\";\nThinEngine.prototype.setDepthStencilTexture = function (channel, uniform, texture, name) {\n if (channel === undefined) {\n return;\n }\n if (uniform) {\n this._boundUniforms[channel] = uniform;\n }\n if (!texture || !texture.depthStencilTexture) {\n this._setTexture(channel, null, undefined, undefined, name);\n }\n else {\n this._setTexture(channel, texture, false, true, name);\n }\n};\n//# sourceMappingURL=engine.renderTargetTexture.js.map","import { InternalTexture } from \"../../Materials/Textures/internalTexture\";\nimport { Logger } from \"../../Misc/logger\";\nimport { Constants } from \"../constants\";\nimport { ThinEngine } from \"../thinEngine\";\nThinEngine.prototype.createRenderTargetCubeTexture = function (size, options) {\n const rtWrapper = this._createHardwareRenderTargetWrapper(false, true, size);\n const fullOptions = {\n generateMipMaps: true,\n generateDepthBuffer: true,\n generateStencilBuffer: false,\n type: Constants.TEXTURETYPE_UNSIGNED_BYTE,\n samplingMode: Constants.TEXTURE_TRILINEAR_SAMPLINGMODE,\n format: Constants.TEXTUREFORMAT_RGBA,\n ...options,\n };\n fullOptions.generateStencilBuffer = fullOptions.generateDepthBuffer && fullOptions.generateStencilBuffer;\n if (fullOptions.type === Constants.TEXTURETYPE_FLOAT && !this._caps.textureFloatLinearFiltering) {\n // if floating point linear (gl.FLOAT) then force to NEAREST_SAMPLINGMODE\n fullOptions.samplingMode = Constants.TEXTURE_NEAREST_SAMPLINGMODE;\n }\n else if (fullOptions.type === Constants.TEXTURETYPE_HALF_FLOAT && !this._caps.textureHalfFloatLinearFiltering) {\n // if floating point linear (HALF_FLOAT) then force to NEAREST_SAMPLINGMODE\n fullOptions.samplingMode = Constants.TEXTURE_NEAREST_SAMPLINGMODE;\n }\n const gl = this._gl;\n const texture = new InternalTexture(this, 5 /* InternalTextureSource.RenderTarget */);\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, texture, true);\n const filters = this._getSamplingParameters(fullOptions.samplingMode, fullOptions.generateMipMaps);\n if (fullOptions.type === Constants.TEXTURETYPE_FLOAT && !this._caps.textureFloat) {\n fullOptions.type = Constants.TEXTURETYPE_UNSIGNED_BYTE;\n Logger.Warn(\"Float textures are not supported. Cube render target forced to TEXTURETYPE_UNESIGNED_BYTE type\");\n }\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MAG_FILTER, filters.mag);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MIN_FILTER, filters.min);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n for (let face = 0; face < 6; face++) {\n gl.texImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + face, 0, this._getRGBABufferInternalSizedFormat(fullOptions.type, fullOptions.format), size, size, 0, this._getInternalFormat(fullOptions.format), this._getWebGLTextureType(fullOptions.type), null);\n }\n // Create the framebuffer\n const framebuffer = gl.createFramebuffer();\n this._bindUnboundFramebuffer(framebuffer);\n rtWrapper._depthStencilBuffer = this._setupFramebufferDepthAttachments(fullOptions.generateStencilBuffer, fullOptions.generateDepthBuffer, size, size);\n // MipMaps\n if (fullOptions.generateMipMaps) {\n gl.generateMipmap(gl.TEXTURE_CUBE_MAP);\n }\n // Unbind\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, null);\n this._bindUnboundFramebuffer(null);\n rtWrapper._framebuffer = framebuffer;\n rtWrapper._generateDepthBuffer = fullOptions.generateDepthBuffer;\n rtWrapper._generateStencilBuffer = fullOptions.generateStencilBuffer;\n texture.width = size;\n texture.height = size;\n texture.isReady = true;\n texture.isCube = true;\n texture.samples = 1;\n texture.generateMipMaps = fullOptions.generateMipMaps;\n texture.samplingMode = fullOptions.samplingMode;\n texture.type = fullOptions.type;\n texture.format = fullOptions.format;\n this._internalTexturesCache.push(texture);\n rtWrapper.setTextures(texture);\n return rtWrapper;\n};\n//# sourceMappingURL=engine.renderTargetCube.js.map","import { ThinEngine } from \"../../Engines/thinEngine\";\nimport { InternalTexture } from \"../../Materials/Textures/internalTexture\";\nimport { Logger } from \"../../Misc/logger\";\nimport { Constants } from \"../constants\";\nimport { SphericalPolynomial } from \"core/Maths/sphericalPolynomial\";\nimport { BaseTexture } from \"core/Materials/Textures/baseTexture\";\nThinEngine.prototype.createPrefilteredCubeTexture = function (rootUrl, scene, lodScale, lodOffset, onLoad = null, onError = null, format, forcedExtension = null, createPolynomials = true) {\n const callback = async (loadData) => {\n if (!loadData) {\n if (onLoad) {\n onLoad(null);\n }\n return;\n }\n const texture = loadData.texture;\n if (!createPolynomials) {\n texture._sphericalPolynomial = new SphericalPolynomial();\n }\n else if (loadData.info.sphericalPolynomial) {\n texture._sphericalPolynomial = loadData.info.sphericalPolynomial;\n }\n texture._source = 9 /* InternalTextureSource.CubePrefiltered */;\n if (this.getCaps().textureLOD) {\n // Do not add extra process if texture lod is supported.\n if (onLoad) {\n onLoad(texture);\n }\n return;\n }\n const mipSlices = 3;\n const gl = this._gl;\n const width = loadData.width;\n if (!width) {\n return;\n }\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const { DDSTools } = await import(\"core/Misc/dds\");\n const textures = [];\n for (let i = 0; i < mipSlices; i++) {\n //compute LOD from even spacing in smoothness (matching shader calculation)\n const smoothness = i / (mipSlices - 1);\n const roughness = 1 - smoothness;\n const minLODIndex = lodOffset; // roughness = 0\n const maxLODIndex = Math.log2(width) * lodScale + lodOffset; // roughness = 1\n const lodIndex = minLODIndex + (maxLODIndex - minLODIndex) * roughness;\n const mipmapIndex = Math.round(Math.min(Math.max(lodIndex, 0), maxLODIndex));\n const glTextureFromLod = new InternalTexture(this, 2 /* InternalTextureSource.Temp */);\n glTextureFromLod.type = texture.type;\n glTextureFromLod.format = texture.format;\n glTextureFromLod.width = Math.pow(2, Math.max(Math.log2(width) - mipmapIndex, 0));\n glTextureFromLod.height = glTextureFromLod.width;\n glTextureFromLod.isCube = true;\n glTextureFromLod._cachedWrapU = Constants.TEXTURE_CLAMP_ADDRESSMODE;\n glTextureFromLod._cachedWrapV = Constants.TEXTURE_CLAMP_ADDRESSMODE;\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, glTextureFromLod, true);\n glTextureFromLod.samplingMode = Constants.TEXTURE_LINEAR_LINEAR;\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n if (loadData.isDDS) {\n const info = loadData.info;\n const data = loadData.data;\n this._unpackFlipY(info.isCompressed);\n DDSTools.UploadDDSLevels(this, glTextureFromLod, data, info, true, 6, mipmapIndex);\n }\n else {\n Logger.Warn(\"DDS is the only prefiltered cube map supported so far.\");\n }\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, null);\n // Wrap in a base texture for easy binding.\n const lodTexture = new BaseTexture(scene);\n lodTexture._isCube = true;\n lodTexture._texture = glTextureFromLod;\n glTextureFromLod.isReady = true;\n textures.push(lodTexture);\n }\n texture._lodTextureHigh = textures[2];\n texture._lodTextureMid = textures[1];\n texture._lodTextureLow = textures[0];\n if (onLoad) {\n onLoad(texture);\n }\n };\n return this.createCubeTexture(rootUrl, scene, null, false, callback, onError, format, forcedExtension, createPolynomials, lodScale, lodOffset);\n};\n//# sourceMappingURL=engine.prefilteredCubeTexture.js.map","import { ThinEngine } from \"../../Engines/thinEngine\";\nimport { WebGLDataBuffer } from \"../../Meshes/WebGL/webGLDataBuffer\";\nThinEngine.prototype.createUniformBuffer = function (elements, _label) {\n const ubo = this._gl.createBuffer();\n if (!ubo) {\n throw new Error(\"Unable to create uniform buffer\");\n }\n const result = new WebGLDataBuffer(ubo);\n this.bindUniformBuffer(result);\n if (elements instanceof Float32Array) {\n this._gl.bufferData(this._gl.UNIFORM_BUFFER, elements, this._gl.STATIC_DRAW);\n }\n else {\n this._gl.bufferData(this._gl.UNIFORM_BUFFER, new Float32Array(elements), this._gl.STATIC_DRAW);\n }\n this.bindUniformBuffer(null);\n result.references = 1;\n return result;\n};\nThinEngine.prototype.createDynamicUniformBuffer = function (elements, _label) {\n const ubo = this._gl.createBuffer();\n if (!ubo) {\n throw new Error(\"Unable to create dynamic uniform buffer\");\n }\n const result = new WebGLDataBuffer(ubo);\n this.bindUniformBuffer(result);\n if (elements instanceof Float32Array) {\n this._gl.bufferData(this._gl.UNIFORM_BUFFER, elements, this._gl.DYNAMIC_DRAW);\n }\n else {\n this._gl.bufferData(this._gl.UNIFORM_BUFFER, new Float32Array(elements), this._gl.DYNAMIC_DRAW);\n }\n this.bindUniformBuffer(null);\n result.references = 1;\n return result;\n};\nThinEngine.prototype.updateUniformBuffer = function (uniformBuffer, elements, offset, count) {\n this.bindUniformBuffer(uniformBuffer);\n if (offset === undefined) {\n offset = 0;\n }\n if (count === undefined) {\n if (elements instanceof Float32Array) {\n this._gl.bufferSubData(this._gl.UNIFORM_BUFFER, offset, elements);\n }\n else {\n this._gl.bufferSubData(this._gl.UNIFORM_BUFFER, offset, new Float32Array(elements));\n }\n }\n else {\n if (elements instanceof Float32Array) {\n this._gl.bufferSubData(this._gl.UNIFORM_BUFFER, 0, elements.subarray(offset, offset + count));\n }\n else {\n this._gl.bufferSubData(this._gl.UNIFORM_BUFFER, 0, new Float32Array(elements).subarray(offset, offset + count));\n }\n }\n this.bindUniformBuffer(null);\n};\nThinEngine.prototype.bindUniformBuffer = function (buffer) {\n this._gl.bindBuffer(this._gl.UNIFORM_BUFFER, buffer ? buffer.underlyingResource : null);\n};\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nThinEngine.prototype.bindUniformBufferBase = function (buffer, location, name) {\n this._gl.bindBufferBase(this._gl.UNIFORM_BUFFER, location, buffer ? buffer.underlyingResource : null);\n};\nThinEngine.prototype.bindUniformBlock = function (pipelineContext, blockName, index) {\n const program = pipelineContext.program;\n const uniformLocation = this._gl.getUniformBlockIndex(program, blockName);\n if (uniformLocation !== 0xffffffff) {\n this._gl.uniformBlockBinding(program, uniformLocation, index);\n }\n};\n//# sourceMappingURL=engine.uniformBuffer.js.map","import { InternalTexture } from \"../Materials/Textures/internalTexture\";\nimport { EngineStore } from \"./engineStore\";\nimport { ThinEngine } from \"./thinEngine\";\nimport { Constants } from \"./constants\";\nimport { PerformanceMonitor } from \"../Misc/performanceMonitor\";\nimport { WebGLDataBuffer } from \"../Meshes/WebGL/webGLDataBuffer\";\nimport { Logger } from \"../Misc/logger\";\nimport { WebGLHardwareTexture } from \"./WebGL/webGLHardwareTexture\";\nimport \"./Extensions/engine.alpha\";\nimport \"./Extensions/engine.rawTexture\";\nimport \"./Extensions/engine.readTexture\";\nimport \"./Extensions/engine.dynamicBuffer\";\nimport \"./Extensions/engine.cubeTexture\";\nimport \"./Extensions/engine.renderTarget\";\nimport \"./Extensions/engine.renderTargetTexture\";\nimport \"./Extensions/engine.renderTargetCube\";\nimport \"./Extensions/engine.prefilteredCubeTexture\";\nimport \"./Extensions/engine.uniformBuffer\";\nimport \"./AbstractEngine/abstractEngine.loadingScreen\";\nimport \"./AbstractEngine/abstractEngine.dom\";\nimport \"./AbstractEngine/abstractEngine.states\";\nimport \"./AbstractEngine/abstractEngine.renderPass\";\nimport \"./AbstractEngine/abstractEngine.texture\";\nimport { AbstractEngine } from \"./abstractEngine\";\nimport { CreateImageBitmapFromSource, ExitFullscreen, ExitPointerlock, GetFontOffset, RequestFullscreen, RequestPointerlock, ResizeImageBitmap, _CommonDispose, _CommonInit, } from \"./engine.common\";\nimport { PerfCounter } from \"../Misc/perfCounter\";\nimport \"../Audio/audioEngine\";\nimport { _retryWithInterval } from \"core/Misc/timingTools\";\n/**\n * The engine class is responsible for interfacing with all lower-level APIs such as WebGL and Audio\n */\nexport class Engine extends ThinEngine {\n /**\n * Returns the current npm package of the sdk\n */\n // Not mixed with Version for tooling purpose.\n static get NpmPackage() {\n return AbstractEngine.NpmPackage;\n }\n /**\n * Returns the current version of the framework\n */\n static get Version() {\n return AbstractEngine.Version;\n }\n /** Gets the list of created engines */\n static get Instances() {\n return EngineStore.Instances;\n }\n /**\n * Gets the latest created engine\n */\n static get LastCreatedEngine() {\n return EngineStore.LastCreatedEngine;\n }\n /**\n * Gets the latest created scene\n */\n static get LastCreatedScene() {\n return EngineStore.LastCreatedScene;\n }\n /** @internal */\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * Method called to create the default loading screen.\n * This can be overridden in your own app.\n * @param canvas The rendering canvas element\n * @returns The loading screen\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n static DefaultLoadingScreenFactory(canvas) {\n return AbstractEngine.DefaultLoadingScreenFactory(canvas);\n }\n get _supportsHardwareTextureRescaling() {\n return !!Engine._RescalePostProcessFactory;\n }\n _measureFps() {\n this._performanceMonitor.sampleFrame();\n this._fps = this._performanceMonitor.averageFPS;\n this._deltaTime = this._performanceMonitor.instantaneousFrameTime || 0;\n }\n /**\n * Gets the performance monitor attached to this engine\n * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/optimize_your_scene#engineinstrumentation\n */\n get performanceMonitor() {\n return this._performanceMonitor;\n }\n // Events\n /**\n * Creates a new engine\n * @param canvasOrContext defines the canvas or WebGL context to use for rendering. If you provide a WebGL context, Babylon.js will not hook events on the canvas (like pointers, keyboards, etc...) so no event observables will be available. This is mostly used when Babylon.js is used as a plugin on a system which already used the WebGL context\n * @param antialias defines enable antialiasing (default: false)\n * @param options defines further options to be sent to the getContext() function\n * @param adaptToDeviceRatio defines whether to adapt to the device's viewport characteristics (default: false)\n */\n constructor(canvasOrContext, antialias, options, adaptToDeviceRatio = false) {\n super(canvasOrContext, antialias, options, adaptToDeviceRatio);\n // Members\n /**\n * If set, will be used to request the next animation frame for the render loop\n */\n this.customAnimationFrameRequester = null;\n this._performanceMonitor = new PerformanceMonitor();\n this._drawCalls = new PerfCounter();\n if (!canvasOrContext) {\n return;\n }\n this._features.supportRenderPasses = true;\n options = this._creationOptions;\n }\n _initGLContext() {\n super._initGLContext();\n this._rescalePostProcess = null;\n }\n /**\n * Shared initialization across engines types.\n * @param canvas The canvas associated with this instance of the engine.\n */\n _sharedInit(canvas) {\n super._sharedInit(canvas);\n _CommonInit(this, canvas, this._creationOptions);\n }\n /**\n * Resize an image and returns the image data as an uint8array\n * @param image image to resize\n * @param bufferWidth destination buffer width\n * @param bufferHeight destination buffer height\n * @returns an uint8array containing RGBA values of bufferWidth * bufferHeight size\n */\n resizeImageBitmap(image, bufferWidth, bufferHeight) {\n return ResizeImageBitmap(this, image, bufferWidth, bufferHeight);\n }\n /**\n * Engine abstraction for loading and creating an image bitmap from a given source string.\n * @param imageSource source to load the image from.\n * @param options An object that sets options for the image's extraction.\n * @returns ImageBitmap\n */\n _createImageBitmapFromSource(imageSource, options) {\n return CreateImageBitmapFromSource(this, imageSource, options);\n }\n /**\n * Toggle full screen mode\n * @param requestPointerLock defines if a pointer lock should be requested from the user\n */\n switchFullscreen(requestPointerLock) {\n if (this.isFullscreen) {\n this.exitFullscreen();\n }\n else {\n this.enterFullscreen(requestPointerLock);\n }\n }\n /**\n * Enters full screen mode\n * @param requestPointerLock defines if a pointer lock should be requested from the user\n */\n enterFullscreen(requestPointerLock) {\n if (!this.isFullscreen) {\n this._pointerLockRequested = requestPointerLock;\n if (this._renderingCanvas) {\n RequestFullscreen(this._renderingCanvas);\n }\n }\n }\n /**\n * Exits full screen mode\n */\n exitFullscreen() {\n if (this.isFullscreen) {\n ExitFullscreen();\n }\n }\n /** States */\n /**\n * Sets a boolean indicating if the dithering state is enabled or disabled\n * @param value defines the dithering state\n */\n setDitheringState(value) {\n if (value) {\n this._gl.enable(this._gl.DITHER);\n }\n else {\n this._gl.disable(this._gl.DITHER);\n }\n }\n /**\n * Sets a boolean indicating if the rasterizer state is enabled or disabled\n * @param value defines the rasterizer state\n */\n setRasterizerState(value) {\n if (value) {\n this._gl.disable(this._gl.RASTERIZER_DISCARD);\n }\n else {\n this._gl.enable(this._gl.RASTERIZER_DISCARD);\n }\n }\n /**\n * Directly set the WebGL Viewport\n * @param x defines the x coordinate of the viewport (in screen space)\n * @param y defines the y coordinate of the viewport (in screen space)\n * @param width defines the width of the viewport (in screen space)\n * @param height defines the height of the viewport (in screen space)\n * @returns the current viewport Object (if any) that is being replaced by this call. You can restore this viewport later on to go back to the original state\n */\n setDirectViewport(x, y, width, height) {\n const currentViewport = this._cachedViewport;\n this._cachedViewport = null;\n this._viewport(x, y, width, height);\n return currentViewport;\n }\n /**\n * Executes a scissor clear (ie. a clear on a specific portion of the screen)\n * @param x defines the x-coordinate of the bottom left corner of the clear rectangle\n * @param y defines the y-coordinate of the corner of the clear rectangle\n * @param width defines the width of the clear rectangle\n * @param height defines the height of the clear rectangle\n * @param clearColor defines the clear color\n */\n scissorClear(x, y, width, height, clearColor) {\n this.enableScissor(x, y, width, height);\n this.clear(clearColor, true, true, true);\n this.disableScissor();\n }\n /**\n * Enable scissor test on a specific rectangle (ie. render will only be executed on a specific portion of the screen)\n * @param x defines the x-coordinate of the bottom left corner of the clear rectangle\n * @param y defines the y-coordinate of the corner of the clear rectangle\n * @param width defines the width of the clear rectangle\n * @param height defines the height of the clear rectangle\n */\n enableScissor(x, y, width, height) {\n const gl = this._gl;\n // Change state\n gl.enable(gl.SCISSOR_TEST);\n gl.scissor(x, y, width, height);\n }\n /**\n * Disable previously set scissor test rectangle\n */\n disableScissor() {\n const gl = this._gl;\n gl.disable(gl.SCISSOR_TEST);\n }\n /**\n * @internal\n */\n _loadFileAsync(url, offlineProvider, useArrayBuffer) {\n return new Promise((resolve, reject) => {\n this._loadFile(url, (data) => {\n resolve(data);\n }, undefined, offlineProvider, useArrayBuffer, (request, exception) => {\n reject(exception);\n });\n });\n }\n /**\n * Gets the source code of the vertex shader associated with a specific webGL program\n * @param program defines the program to use\n * @returns a string containing the source code of the vertex shader associated with the program\n */\n getVertexShaderSource(program) {\n const shaders = this._gl.getAttachedShaders(program);\n if (!shaders) {\n return null;\n }\n return this._gl.getShaderSource(shaders[0]);\n }\n /**\n * Gets the source code of the fragment shader associated with a specific webGL program\n * @param program defines the program to use\n * @returns a string containing the source code of the fragment shader associated with the program\n */\n getFragmentShaderSource(program) {\n const shaders = this._gl.getAttachedShaders(program);\n if (!shaders) {\n return null;\n }\n return this._gl.getShaderSource(shaders[1]);\n }\n /**\n * sets the object from which width and height will be taken from when getting render width and height\n * Will fallback to the gl object\n * @param dimensions the framebuffer width and height that will be used.\n */\n set framebufferDimensionsObject(dimensions) {\n this._framebufferDimensionsObject = dimensions;\n if (this._framebufferDimensionsObject) {\n this.onResizeObservable.notifyObservers(this);\n }\n }\n _rebuildBuffers() {\n // Index / Vertex\n for (const scene of this.scenes) {\n scene.resetCachedMaterial();\n scene._rebuildGeometries();\n }\n for (const scene of this._virtualScenes) {\n scene.resetCachedMaterial();\n scene._rebuildGeometries();\n }\n super._rebuildBuffers();\n }\n /**\n * Get Font size information\n * @param font font name\n * @returns an object containing ascent, height and descent\n */\n getFontOffset(font) {\n return GetFontOffset(font);\n }\n _cancelFrame() {\n if (this.customAnimationFrameRequester) {\n if (this._frameHandler !== 0) {\n this._frameHandler = 0;\n const { cancelAnimationFrame } = this.customAnimationFrameRequester;\n if (cancelAnimationFrame) {\n cancelAnimationFrame(this.customAnimationFrameRequester.requestID);\n }\n }\n }\n else {\n super._cancelFrame();\n }\n }\n _renderLoop() {\n // Reset the frame handler before rendering a frame to determine if a new frame has been queued.\n this._frameHandler = 0;\n if (!this._contextWasLost) {\n let shouldRender = true;\n if (this.isDisposed || (!this.renderEvenInBackground && this._windowIsBackground)) {\n shouldRender = false;\n }\n if (shouldRender) {\n // Start new frame\n this.beginFrame();\n // Child canvases\n if (!this._renderViews()) {\n // Main frame\n this._renderFrame();\n }\n // Present\n this.endFrame();\n }\n }\n // The first condition prevents queuing another frame if we no longer have active render loops (e.g., if\n // `stopRenderLoop` is called mid frame). The second condition prevents queuing another frame if one has\n // already been queued (e.g., if `stopRenderLoop` and `runRenderLoop` is called mid frame).\n if (this._activeRenderLoops.length > 0 && this._frameHandler === 0) {\n if (this.customAnimationFrameRequester) {\n this.customAnimationFrameRequester.requestID = this._queueNewFrame(this.customAnimationFrameRequester.renderFunction || this._boundRenderFunction, this.customAnimationFrameRequester);\n this._frameHandler = this.customAnimationFrameRequester.requestID;\n }\n else {\n this._frameHandler = this._queueNewFrame(this._boundRenderFunction, this.getHostWindow());\n }\n }\n }\n /**\n * Enters Pointerlock mode\n */\n enterPointerlock() {\n if (this._renderingCanvas) {\n RequestPointerlock(this._renderingCanvas);\n }\n }\n /**\n * Exits Pointerlock mode\n */\n exitPointerlock() {\n ExitPointerlock();\n }\n /**\n * Begin a new frame\n */\n beginFrame() {\n this._measureFps();\n super.beginFrame();\n }\n _deletePipelineContext(pipelineContext) {\n const webGLPipelineContext = pipelineContext;\n if (webGLPipelineContext && webGLPipelineContext.program) {\n if (webGLPipelineContext.transformFeedback) {\n this.deleteTransformFeedback(webGLPipelineContext.transformFeedback);\n webGLPipelineContext.transformFeedback = null;\n }\n }\n super._deletePipelineContext(pipelineContext);\n }\n createShaderProgram(pipelineContext, vertexCode, fragmentCode, defines, context, transformFeedbackVaryings = null) {\n context = context || this._gl;\n this.onBeforeShaderCompilationObservable.notifyObservers(this);\n const program = super.createShaderProgram(pipelineContext, vertexCode, fragmentCode, defines, context, transformFeedbackVaryings);\n this.onAfterShaderCompilationObservable.notifyObservers(this);\n return program;\n }\n _createShaderProgram(pipelineContext, vertexShader, fragmentShader, context, transformFeedbackVaryings = null) {\n const shaderProgram = context.createProgram();\n pipelineContext.program = shaderProgram;\n if (!shaderProgram) {\n throw new Error(\"Unable to create program\");\n }\n context.attachShader(shaderProgram, vertexShader);\n context.attachShader(shaderProgram, fragmentShader);\n if (this.webGLVersion > 1 && transformFeedbackVaryings) {\n const transformFeedback = this.createTransformFeedback();\n this.bindTransformFeedback(transformFeedback);\n this.setTranformFeedbackVaryings(shaderProgram, transformFeedbackVaryings);\n pipelineContext.transformFeedback = transformFeedback;\n }\n context.linkProgram(shaderProgram);\n if (this.webGLVersion > 1 && transformFeedbackVaryings) {\n this.bindTransformFeedback(null);\n }\n pipelineContext.context = context;\n pipelineContext.vertexShader = vertexShader;\n pipelineContext.fragmentShader = fragmentShader;\n if (!pipelineContext.isParallelCompiled) {\n this._finalizePipelineContext(pipelineContext);\n }\n return shaderProgram;\n }\n /**\n * @internal\n */\n _releaseTexture(texture) {\n super._releaseTexture(texture);\n }\n /**\n * @internal\n */\n _releaseRenderTargetWrapper(rtWrapper) {\n super._releaseRenderTargetWrapper(rtWrapper);\n // Set output texture of post process to null if the framebuffer has been released/disposed\n this.scenes.forEach((scene) => {\n scene.postProcesses.forEach((postProcess) => {\n if (postProcess._outputTexture === rtWrapper) {\n postProcess._outputTexture = null;\n }\n });\n scene.cameras.forEach((camera) => {\n camera._postProcesses.forEach((postProcess) => {\n if (postProcess) {\n if (postProcess._outputTexture === rtWrapper) {\n postProcess._outputTexture = null;\n }\n }\n });\n });\n });\n }\n /**\n * @internal\n * Rescales a texture\n * @param source input texture\n * @param destination destination texture\n * @param scene scene to use to render the resize\n * @param internalFormat format to use when resizing\n * @param onComplete callback to be called when resize has completed\n */\n _rescaleTexture(source, destination, scene, internalFormat, onComplete) {\n this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_MAG_FILTER, this._gl.LINEAR);\n this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_MIN_FILTER, this._gl.LINEAR);\n this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_WRAP_S, this._gl.CLAMP_TO_EDGE);\n this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_WRAP_T, this._gl.CLAMP_TO_EDGE);\n const rtt = this.createRenderTargetTexture({\n width: destination.width,\n height: destination.height,\n }, {\n generateMipMaps: false,\n type: Constants.TEXTURETYPE_UNSIGNED_INT,\n samplingMode: Constants.TEXTURE_BILINEAR_SAMPLINGMODE,\n generateDepthBuffer: false,\n generateStencilBuffer: false,\n });\n if (!this._rescalePostProcess && Engine._RescalePostProcessFactory) {\n this._rescalePostProcess = Engine._RescalePostProcessFactory(this);\n }\n if (this._rescalePostProcess) {\n this._rescalePostProcess.externalTextureSamplerBinding = true;\n const onCompiled = () => {\n this._rescalePostProcess.onApply = function (effect) {\n effect._bindTexture(\"textureSampler\", source);\n };\n let hostingScene = scene;\n if (!hostingScene) {\n hostingScene = this.scenes[this.scenes.length - 1];\n }\n hostingScene.postProcessManager.directRender([this._rescalePostProcess], rtt, true);\n this._bindTextureDirectly(this._gl.TEXTURE_2D, destination, true);\n this._gl.copyTexImage2D(this._gl.TEXTURE_2D, 0, internalFormat, 0, 0, destination.width, destination.height, 0);\n this.unBindFramebuffer(rtt);\n rtt.dispose();\n if (onComplete) {\n onComplete();\n }\n };\n const effect = this._rescalePostProcess.getEffect();\n if (effect) {\n effect.executeWhenCompiled(onCompiled);\n }\n else {\n this._rescalePostProcess.onEffectCreatedObservable.addOnce((effect) => {\n effect.executeWhenCompiled(onCompiled);\n });\n }\n }\n }\n /**\n * Wraps an external web gl texture in a Babylon texture.\n * @param texture defines the external texture\n * @param hasMipMaps defines whether the external texture has mip maps (default: false)\n * @param samplingMode defines the sampling mode for the external texture (default: Constants.TEXTURE_TRILINEAR_SAMPLINGMODE)\n * @param width defines the width for the external texture (default: 0)\n * @param height defines the height for the external texture (default: 0)\n * @returns the babylon internal texture\n */\n wrapWebGLTexture(texture, hasMipMaps = false, samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE, width = 0, height = 0) {\n const hardwareTexture = new WebGLHardwareTexture(texture, this._gl);\n const internalTexture = new InternalTexture(this, 0 /* InternalTextureSource.Unknown */, true);\n internalTexture._hardwareTexture = hardwareTexture;\n internalTexture.baseWidth = width;\n internalTexture.baseHeight = height;\n internalTexture.width = width;\n internalTexture.height = height;\n internalTexture.isReady = true;\n internalTexture.useMipMaps = hasMipMaps;\n this.updateTextureSamplingMode(samplingMode, internalTexture);\n return internalTexture;\n }\n /**\n * @internal\n */\n _uploadImageToTexture(texture, image, faceIndex = 0, lod = 0) {\n const gl = this._gl;\n const textureType = this._getWebGLTextureType(texture.type);\n const format = this._getInternalFormat(texture.format);\n const internalFormat = this._getRGBABufferInternalSizedFormat(texture.type, format);\n const bindTarget = texture.isCube ? gl.TEXTURE_CUBE_MAP : gl.TEXTURE_2D;\n this._bindTextureDirectly(bindTarget, texture, true);\n this._unpackFlipY(texture.invertY);\n let target = gl.TEXTURE_2D;\n if (texture.isCube) {\n target = gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex;\n }\n gl.texImage2D(target, lod, internalFormat, format, textureType, image);\n this._bindTextureDirectly(bindTarget, null, true);\n }\n /**\n * Updates a depth texture Comparison Mode and Function.\n * If the comparison Function is equal to 0, the mode will be set to none.\n * Otherwise, this only works in webgl 2 and requires a shadow sampler in the shader.\n * @param texture The texture to set the comparison function for\n * @param comparisonFunction The comparison function to set, 0 if no comparison required\n */\n updateTextureComparisonFunction(texture, comparisonFunction) {\n if (this.webGLVersion === 1) {\n Logger.Error(\"WebGL 1 does not support texture comparison.\");\n return;\n }\n const gl = this._gl;\n if (texture.isCube) {\n this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, texture, true);\n if (comparisonFunction === 0) {\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_COMPARE_FUNC, Constants.LEQUAL);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_COMPARE_MODE, gl.NONE);\n }\n else {\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_COMPARE_FUNC, comparisonFunction);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_COMPARE_MODE, gl.COMPARE_REF_TO_TEXTURE);\n }\n this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, null);\n }\n else {\n this._bindTextureDirectly(this._gl.TEXTURE_2D, texture, true);\n if (comparisonFunction === 0) {\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_COMPARE_FUNC, Constants.LEQUAL);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_COMPARE_MODE, gl.NONE);\n }\n else {\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_COMPARE_FUNC, comparisonFunction);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_COMPARE_MODE, gl.COMPARE_REF_TO_TEXTURE);\n }\n this._bindTextureDirectly(this._gl.TEXTURE_2D, null);\n }\n texture._comparisonFunction = comparisonFunction;\n }\n /**\n * Creates a webGL buffer to use with instantiation\n * @param capacity defines the size of the buffer\n * @returns the webGL buffer\n */\n createInstancesBuffer(capacity) {\n const buffer = this._gl.createBuffer();\n if (!buffer) {\n throw new Error(\"Unable to create instance buffer\");\n }\n const result = new WebGLDataBuffer(buffer);\n result.capacity = capacity;\n this.bindArrayBuffer(result);\n this._gl.bufferData(this._gl.ARRAY_BUFFER, capacity, this._gl.DYNAMIC_DRAW);\n result.references = 1;\n return result;\n }\n /**\n * Delete a webGL buffer used with instantiation\n * @param buffer defines the webGL buffer to delete\n */\n deleteInstancesBuffer(buffer) {\n this._gl.deleteBuffer(buffer);\n }\n _clientWaitAsync(sync, flags = 0, intervalms = 10) {\n const gl = this._gl;\n return new Promise((resolve, reject) => {\n _retryWithInterval(() => {\n const res = gl.clientWaitSync(sync, flags, 0);\n if (res == gl.WAIT_FAILED) {\n throw new Error(\"clientWaitSync failed\");\n }\n if (res == gl.TIMEOUT_EXPIRED) {\n return false;\n }\n return true;\n }, resolve, reject, intervalms);\n });\n }\n /**\n * @internal\n */\n _readPixelsAsync(x, y, w, h, format, type, outputBuffer) {\n if (this._webGLVersion < 2) {\n throw new Error(\"_readPixelsAsync only work on WebGL2+\");\n }\n const gl = this._gl;\n const buf = gl.createBuffer();\n gl.bindBuffer(gl.PIXEL_PACK_BUFFER, buf);\n gl.bufferData(gl.PIXEL_PACK_BUFFER, outputBuffer.byteLength, gl.STREAM_READ);\n gl.readPixels(x, y, w, h, format, type, 0);\n gl.bindBuffer(gl.PIXEL_PACK_BUFFER, null);\n const sync = gl.fenceSync(gl.SYNC_GPU_COMMANDS_COMPLETE, 0);\n if (!sync) {\n return null;\n }\n gl.flush();\n return this._clientWaitAsync(sync, 0, 10).then(() => {\n gl.deleteSync(sync);\n gl.bindBuffer(gl.PIXEL_PACK_BUFFER, buf);\n gl.getBufferSubData(gl.PIXEL_PACK_BUFFER, 0, outputBuffer);\n gl.bindBuffer(gl.PIXEL_PACK_BUFFER, null);\n gl.deleteBuffer(buf);\n return outputBuffer;\n });\n }\n dispose() {\n this.hideLoadingUI();\n // Rescale PP\n if (this._rescalePostProcess) {\n this._rescalePostProcess.dispose();\n }\n _CommonDispose(this, this._renderingCanvas);\n super.dispose();\n }\n}\n// Const statics\n/** Defines that alpha blending is disabled */\nEngine.ALPHA_DISABLE = Constants.ALPHA_DISABLE;\n/** Defines that alpha blending to SRC ALPHA * SRC + DEST */\nEngine.ALPHA_ADD = Constants.ALPHA_ADD;\n/** Defines that alpha blending to SRC ALPHA * SRC + (1 - SRC ALPHA) * DEST */\nEngine.ALPHA_COMBINE = Constants.ALPHA_COMBINE;\n/** Defines that alpha blending to DEST - SRC * DEST */\nEngine.ALPHA_SUBTRACT = Constants.ALPHA_SUBTRACT;\n/** Defines that alpha blending to SRC * DEST */\nEngine.ALPHA_MULTIPLY = Constants.ALPHA_MULTIPLY;\n/** Defines that alpha blending to SRC ALPHA * SRC + (1 - SRC) * DEST */\nEngine.ALPHA_MAXIMIZED = Constants.ALPHA_MAXIMIZED;\n/** Defines that alpha blending to SRC + DEST */\nEngine.ALPHA_ONEONE = Constants.ALPHA_ONEONE;\n/** Defines that alpha blending to SRC + (1 - SRC ALPHA) * DEST */\nEngine.ALPHA_PREMULTIPLIED = Constants.ALPHA_PREMULTIPLIED;\n/**\n * Defines that alpha blending to SRC + (1 - SRC ALPHA) * DEST\n * Alpha will be set to (1 - SRC ALPHA) * DEST ALPHA\n */\nEngine.ALPHA_PREMULTIPLIED_PORTERDUFF = Constants.ALPHA_PREMULTIPLIED_PORTERDUFF;\n/** Defines that alpha blending to CST * SRC + (1 - CST) * DEST */\nEngine.ALPHA_INTERPOLATE = Constants.ALPHA_INTERPOLATE;\n/**\n * Defines that alpha blending to SRC + (1 - SRC) * DEST\n * Alpha will be set to SRC ALPHA + (1 - SRC ALPHA) * DEST ALPHA\n */\nEngine.ALPHA_SCREENMODE = Constants.ALPHA_SCREENMODE;\n/** Defines that the resource is not delayed*/\nEngine.DELAYLOADSTATE_NONE = Constants.DELAYLOADSTATE_NONE;\n/** Defines that the resource was successfully delay loaded */\nEngine.DELAYLOADSTATE_LOADED = Constants.DELAYLOADSTATE_LOADED;\n/** Defines that the resource is currently delay loading */\nEngine.DELAYLOADSTATE_LOADING = Constants.DELAYLOADSTATE_LOADING;\n/** Defines that the resource is delayed and has not started loading */\nEngine.DELAYLOADSTATE_NOTLOADED = Constants.DELAYLOADSTATE_NOTLOADED;\n// Depht or Stencil test Constants.\n/** Passed to depthFunction or stencilFunction to specify depth or stencil tests will never pass. i.e. Nothing will be drawn */\nEngine.NEVER = Constants.NEVER;\n/** Passed to depthFunction or stencilFunction to specify depth or stencil tests will always pass. i.e. Pixels will be drawn in the order they are drawn */\nEngine.ALWAYS = Constants.ALWAYS;\n/** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is less than the stored value */\nEngine.LESS = Constants.LESS;\n/** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is equals to the stored value */\nEngine.EQUAL = Constants.EQUAL;\n/** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is less than or equal to the stored value */\nEngine.LEQUAL = Constants.LEQUAL;\n/** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is greater than the stored value */\nEngine.GREATER = Constants.GREATER;\n/** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is greater than or equal to the stored value */\nEngine.GEQUAL = Constants.GEQUAL;\n/** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is not equal to the stored value */\nEngine.NOTEQUAL = Constants.NOTEQUAL;\n// Stencil Actions Constants.\n/** Passed to stencilOperation to specify that stencil value must be kept */\nEngine.KEEP = Constants.KEEP;\n/** Passed to stencilOperation to specify that stencil value must be replaced */\nEngine.REPLACE = Constants.REPLACE;\n/** Passed to stencilOperation to specify that stencil value must be incremented */\nEngine.INCR = Constants.INCR;\n/** Passed to stencilOperation to specify that stencil value must be decremented */\nEngine.DECR = Constants.DECR;\n/** Passed to stencilOperation to specify that stencil value must be inverted */\nEngine.INVERT = Constants.INVERT;\n/** Passed to stencilOperation to specify that stencil value must be incremented with wrapping */\nEngine.INCR_WRAP = Constants.INCR_WRAP;\n/** Passed to stencilOperation to specify that stencil value must be decremented with wrapping */\nEngine.DECR_WRAP = Constants.DECR_WRAP;\n/** Texture is not repeating outside of 0..1 UVs */\nEngine.TEXTURE_CLAMP_ADDRESSMODE = Constants.TEXTURE_CLAMP_ADDRESSMODE;\n/** Texture is repeating outside of 0..1 UVs */\nEngine.TEXTURE_WRAP_ADDRESSMODE = Constants.TEXTURE_WRAP_ADDRESSMODE;\n/** Texture is repeating and mirrored */\nEngine.TEXTURE_MIRROR_ADDRESSMODE = Constants.TEXTURE_MIRROR_ADDRESSMODE;\n/** ALPHA */\nEngine.TEXTUREFORMAT_ALPHA = Constants.TEXTUREFORMAT_ALPHA;\n/** LUMINANCE */\nEngine.TEXTUREFORMAT_LUMINANCE = Constants.TEXTUREFORMAT_LUMINANCE;\n/** LUMINANCE_ALPHA */\nEngine.TEXTUREFORMAT_LUMINANCE_ALPHA = Constants.TEXTUREFORMAT_LUMINANCE_ALPHA;\n/** RGB */\nEngine.TEXTUREFORMAT_RGB = Constants.TEXTUREFORMAT_RGB;\n/** RGBA */\nEngine.TEXTUREFORMAT_RGBA = Constants.TEXTUREFORMAT_RGBA;\n/** RED */\nEngine.TEXTUREFORMAT_RED = Constants.TEXTUREFORMAT_RED;\n/** RED (2nd reference) */\nEngine.TEXTUREFORMAT_R = Constants.TEXTUREFORMAT_R;\n/** RED unsigned short normed to [0, 1] **/\nEngine.TEXTUREFORMAT_R16_UNORM = Constants.TEXTUREFORMAT_R16_UNORM;\n/** RG unsigned short normed to [0, 1] **/\nEngine.TEXTUREFORMAT_RG16_UNORM = Constants.TEXTUREFORMAT_RG16_UNORM;\n/** RGB unsigned short normed to [0, 1] **/\nEngine.TEXTUREFORMAT_RGB16_UNORM = Constants.TEXTUREFORMAT_RGB16_UNORM;\n/** RGBA unsigned short normed to [0, 1] **/\nEngine.TEXTUREFORMAT_RGBA16_UNORM = Constants.TEXTUREFORMAT_RGBA16_UNORM;\n/** RED signed short normed to [-1, 1] **/\nEngine.TEXTUREFORMAT_R16_SNORM = Constants.TEXTUREFORMAT_R16_SNORM;\n/** RG signed short normed to [-1, 1] **/\nEngine.TEXTUREFORMAT_RG16_SNORM = Constants.TEXTUREFORMAT_RG16_SNORM;\n/** RGB signed short normed to [-1, 1] **/\nEngine.TEXTUREFORMAT_RGB16_SNORM = Constants.TEXTUREFORMAT_RGB16_SNORM;\n/** RGBA signed short normed to [-1, 1] **/\nEngine.TEXTUREFORMAT_RGBA16_SNORM = Constants.TEXTUREFORMAT_RGBA16_SNORM;\n/** RG */\nEngine.TEXTUREFORMAT_RG = Constants.TEXTUREFORMAT_RG;\n/** RED_INTEGER */\nEngine.TEXTUREFORMAT_RED_INTEGER = Constants.TEXTUREFORMAT_RED_INTEGER;\n/** RED_INTEGER (2nd reference) */\nEngine.TEXTUREFORMAT_R_INTEGER = Constants.TEXTUREFORMAT_R_INTEGER;\n/** RG_INTEGER */\nEngine.TEXTUREFORMAT_RG_INTEGER = Constants.TEXTUREFORMAT_RG_INTEGER;\n/** RGB_INTEGER */\nEngine.TEXTUREFORMAT_RGB_INTEGER = Constants.TEXTUREFORMAT_RGB_INTEGER;\n/** RGBA_INTEGER */\nEngine.TEXTUREFORMAT_RGBA_INTEGER = Constants.TEXTUREFORMAT_RGBA_INTEGER;\n/** UNSIGNED_BYTE */\nEngine.TEXTURETYPE_UNSIGNED_BYTE = Constants.TEXTURETYPE_UNSIGNED_BYTE;\n/** @deprecated use more explicit TEXTURETYPE_UNSIGNED_BYTE instead. Use TEXTURETYPE_UNSIGNED_INTEGER for 32bits values.*/\nEngine.TEXTURETYPE_UNSIGNED_INT = Constants.TEXTURETYPE_UNSIGNED_INT;\n/** FLOAT */\nEngine.TEXTURETYPE_FLOAT = Constants.TEXTURETYPE_FLOAT;\n/** HALF_FLOAT */\nEngine.TEXTURETYPE_HALF_FLOAT = Constants.TEXTURETYPE_HALF_FLOAT;\n/** BYTE */\nEngine.TEXTURETYPE_BYTE = Constants.TEXTURETYPE_BYTE;\n/** SHORT */\nEngine.TEXTURETYPE_SHORT = Constants.TEXTURETYPE_SHORT;\n/** UNSIGNED_SHORT */\nEngine.TEXTURETYPE_UNSIGNED_SHORT = Constants.TEXTURETYPE_UNSIGNED_SHORT;\n/** INT */\nEngine.TEXTURETYPE_INT = Constants.TEXTURETYPE_INT;\n/** UNSIGNED_INT */\nEngine.TEXTURETYPE_UNSIGNED_INTEGER = Constants.TEXTURETYPE_UNSIGNED_INTEGER;\n/** UNSIGNED_SHORT_4_4_4_4 */\nEngine.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4 = Constants.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4;\n/** UNSIGNED_SHORT_5_5_5_1 */\nEngine.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1 = Constants.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1;\n/** UNSIGNED_SHORT_5_6_5 */\nEngine.TEXTURETYPE_UNSIGNED_SHORT_5_6_5 = Constants.TEXTURETYPE_UNSIGNED_SHORT_5_6_5;\n/** UNSIGNED_INT_2_10_10_10_REV */\nEngine.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV = Constants.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV;\n/** UNSIGNED_INT_24_8 */\nEngine.TEXTURETYPE_UNSIGNED_INT_24_8 = Constants.TEXTURETYPE_UNSIGNED_INT_24_8;\n/** UNSIGNED_INT_10F_11F_11F_REV */\nEngine.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV = Constants.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV;\n/** UNSIGNED_INT_5_9_9_9_REV */\nEngine.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV = Constants.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV;\n/** FLOAT_32_UNSIGNED_INT_24_8_REV */\nEngine.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV = Constants.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV;\n/** nearest is mag = nearest and min = nearest and mip = none */\nEngine.TEXTURE_NEAREST_SAMPLINGMODE = Constants.TEXTURE_NEAREST_SAMPLINGMODE;\n/** Bilinear is mag = linear and min = linear and mip = nearest */\nEngine.TEXTURE_BILINEAR_SAMPLINGMODE = Constants.TEXTURE_BILINEAR_SAMPLINGMODE;\n/** Trilinear is mag = linear and min = linear and mip = linear */\nEngine.TEXTURE_TRILINEAR_SAMPLINGMODE = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE;\n/** nearest is mag = nearest and min = nearest and mip = linear */\nEngine.TEXTURE_NEAREST_NEAREST_MIPLINEAR = Constants.TEXTURE_NEAREST_NEAREST_MIPLINEAR;\n/** Bilinear is mag = linear and min = linear and mip = nearest */\nEngine.TEXTURE_LINEAR_LINEAR_MIPNEAREST = Constants.TEXTURE_LINEAR_LINEAR_MIPNEAREST;\n/** Trilinear is mag = linear and min = linear and mip = linear */\nEngine.TEXTURE_LINEAR_LINEAR_MIPLINEAR = Constants.TEXTURE_LINEAR_LINEAR_MIPLINEAR;\n/** mag = nearest and min = nearest and mip = nearest */\nEngine.TEXTURE_NEAREST_NEAREST_MIPNEAREST = Constants.TEXTURE_NEAREST_NEAREST_MIPNEAREST;\n/** mag = nearest and min = linear and mip = nearest */\nEngine.TEXTURE_NEAREST_LINEAR_MIPNEAREST = Constants.TEXTURE_NEAREST_LINEAR_MIPNEAREST;\n/** mag = nearest and min = linear and mip = linear */\nEngine.TEXTURE_NEAREST_LINEAR_MIPLINEAR = Constants.TEXTURE_NEAREST_LINEAR_MIPLINEAR;\n/** mag = nearest and min = linear and mip = none */\nEngine.TEXTURE_NEAREST_LINEAR = Constants.TEXTURE_NEAREST_LINEAR;\n/** mag = nearest and min = nearest and mip = none */\nEngine.TEXTURE_NEAREST_NEAREST = Constants.TEXTURE_NEAREST_NEAREST;\n/** mag = linear and min = nearest and mip = nearest */\nEngine.TEXTURE_LINEAR_NEAREST_MIPNEAREST = Constants.TEXTURE_LINEAR_NEAREST_MIPNEAREST;\n/** mag = linear and min = nearest and mip = linear */\nEngine.TEXTURE_LINEAR_NEAREST_MIPLINEAR = Constants.TEXTURE_LINEAR_NEAREST_MIPLINEAR;\n/** mag = linear and min = linear and mip = none */\nEngine.TEXTURE_LINEAR_LINEAR = Constants.TEXTURE_LINEAR_LINEAR;\n/** mag = linear and min = nearest and mip = none */\nEngine.TEXTURE_LINEAR_NEAREST = Constants.TEXTURE_LINEAR_NEAREST;\n/** Explicit coordinates mode */\nEngine.TEXTURE_EXPLICIT_MODE = Constants.TEXTURE_EXPLICIT_MODE;\n/** Spherical coordinates mode */\nEngine.TEXTURE_SPHERICAL_MODE = Constants.TEXTURE_SPHERICAL_MODE;\n/** Planar coordinates mode */\nEngine.TEXTURE_PLANAR_MODE = Constants.TEXTURE_PLANAR_MODE;\n/** Cubic coordinates mode */\nEngine.TEXTURE_CUBIC_MODE = Constants.TEXTURE_CUBIC_MODE;\n/** Projection coordinates mode */\nEngine.TEXTURE_PROJECTION_MODE = Constants.TEXTURE_PROJECTION_MODE;\n/** Skybox coordinates mode */\nEngine.TEXTURE_SKYBOX_MODE = Constants.TEXTURE_SKYBOX_MODE;\n/** Inverse Cubic coordinates mode */\nEngine.TEXTURE_INVCUBIC_MODE = Constants.TEXTURE_INVCUBIC_MODE;\n/** Equirectangular coordinates mode */\nEngine.TEXTURE_EQUIRECTANGULAR_MODE = Constants.TEXTURE_EQUIRECTANGULAR_MODE;\n/** Equirectangular Fixed coordinates mode */\nEngine.TEXTURE_FIXED_EQUIRECTANGULAR_MODE = Constants.TEXTURE_FIXED_EQUIRECTANGULAR_MODE;\n/** Equirectangular Fixed Mirrored coordinates mode */\nEngine.TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE = Constants.TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE;\n// Texture rescaling mode\n/** Defines that texture rescaling will use a floor to find the closer power of 2 size */\nEngine.SCALEMODE_FLOOR = Constants.SCALEMODE_FLOOR;\n/** Defines that texture rescaling will look for the nearest power of 2 size */\nEngine.SCALEMODE_NEAREST = Constants.SCALEMODE_NEAREST;\n/** Defines that texture rescaling will use a ceil to find the closer power of 2 size */\nEngine.SCALEMODE_CEILING = Constants.SCALEMODE_CEILING;\n//# sourceMappingURL=engine.js.map"],"names":[],"mappings":"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"}
|