@babylonjs/viewer 7.25.2 → 7.26.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/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_image_based-BAAAren3.esm.min.js +2 -0
- package/dist/chunks/EXT_lights_image_based-BAAAren3.esm.min.js.map +1 -0
- package/dist/chunks/EXT_lights_image_based-CLRxjLYR.esm.js +170 -0
- package/dist/chunks/EXT_lights_image_based-CLRxjLYR.esm.js.map +1 -0
- package/dist/chunks/EXT_mesh_gpu_instancing-g_z4hICR.esm.min.js +2 -0
- package/dist/chunks/EXT_mesh_gpu_instancing-g_z4hICR.esm.min.js.map +1 -0
- package/dist/chunks/EXT_mesh_gpu_instancing-xdiHrPE-.esm.js +86 -0
- package/dist/chunks/EXT_mesh_gpu_instancing-xdiHrPE-.esm.js.map +1 -0
- package/dist/chunks/EXT_meshopt_compression-DtR1iauf.esm.js +134 -0
- package/dist/chunks/EXT_meshopt_compression-DtR1iauf.esm.js.map +1 -0
- package/dist/chunks/EXT_meshopt_compression-SJRA4qRp.esm.min.js +2 -0
- package/dist/chunks/EXT_meshopt_compression-SJRA4qRp.esm.min.js.map +1 -0
- package/dist/chunks/EXT_texture_avif-DyYYGGQy.esm.js +44 -0
- package/dist/chunks/EXT_texture_avif-DyYYGGQy.esm.js.map +1 -0
- package/dist/chunks/EXT_texture_avif-Qcsk_kvk.esm.min.js +2 -0
- package/dist/chunks/EXT_texture_avif-Qcsk_kvk.esm.min.js.map +1 -0
- package/dist/chunks/EXT_texture_webp-CLgPX9Kq.esm.min.js +2 -0
- package/dist/chunks/EXT_texture_webp-CLgPX9Kq.esm.min.js.map +1 -0
- package/dist/chunks/EXT_texture_webp-X7MNkN3t.esm.js +43 -0
- package/dist/chunks/EXT_texture_webp-X7MNkN3t.esm.js.map +1 -0
- package/dist/chunks/ExtrasAsMetadata-DDzM1udc.esm.min.js +2 -0
- package/dist/chunks/ExtrasAsMetadata-DDzM1udc.esm.min.js.map +1 -0
- package/dist/chunks/ExtrasAsMetadata-_A4ue-yg.esm.js +64 -0
- package/dist/chunks/ExtrasAsMetadata-_A4ue-yg.esm.js.map +1 -0
- package/dist/chunks/KHR_animation_pointer-C_uSLVMY.esm.min.js +2 -0
- package/dist/chunks/KHR_animation_pointer-C_uSLVMY.esm.min.js.map +1 -0
- package/dist/chunks/KHR_animation_pointer-DOLmQrF0.esm.js +343 -0
- package/dist/chunks/KHR_animation_pointer-DOLmQrF0.esm.js.map +1 -0
- package/dist/chunks/KHR_draco_mesh_compression-Dc2dj10X.esm.js +610 -0
- package/dist/chunks/KHR_draco_mesh_compression-Dc2dj10X.esm.js.map +1 -0
- package/dist/chunks/KHR_draco_mesh_compression-Qjbd-cV8.esm.min.js +2 -0
- package/dist/chunks/KHR_draco_mesh_compression-Qjbd-cV8.esm.min.js.map +1 -0
- package/dist/chunks/KHR_interactivity-BMxQ78NS.esm.js +4033 -0
- package/dist/chunks/KHR_interactivity-BMxQ78NS.esm.js.map +1 -0
- package/dist/chunks/KHR_interactivity-Dyhotcuc.esm.min.js +2 -0
- package/dist/chunks/KHR_interactivity-Dyhotcuc.esm.min.js.map +1 -0
- package/dist/chunks/KHR_lights_punctual-BQxBGi0_.esm.js +1253 -0
- package/dist/chunks/KHR_lights_punctual-BQxBGi0_.esm.js.map +1 -0
- package/dist/chunks/KHR_lights_punctual-CP6yK7gB.esm.min.js +2 -0
- package/dist/chunks/KHR_lights_punctual-CP6yK7gB.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_anisotropy-B-brojEG.esm.js +64 -0
- package/dist/chunks/KHR_materials_anisotropy-B-brojEG.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_anisotropy-C_kRwfha.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_anisotropy-C_kRwfha.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_clearcoat-CRp8HOuT.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_clearcoat-CRp8HOuT.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_clearcoat-Dtwqzkls.esm.js +96 -0
- package/dist/chunks/KHR_materials_clearcoat-Dtwqzkls.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_diffuse_transmission-BrvDWQjW.esm.js +97 -0
- package/dist/chunks/KHR_materials_diffuse_transmission-BrvDWQjW.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_diffuse_transmission-CNCBiTRi.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_diffuse_transmission-CNCBiTRi.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_dispersion-Bx9AztVQ.esm.js +62 -0
- package/dist/chunks/KHR_materials_dispersion-Bx9AztVQ.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_dispersion-C0wotXxO.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_dispersion-C0wotXxO.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_emissive_strength-CsJjVgTW.esm.js +55 -0
- package/dist/chunks/KHR_materials_emissive_strength-CsJjVgTW.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_emissive_strength-DQk1VN_2.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_emissive_strength-DQk1VN_2.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_ior-B-Bz-ZTi.esm.js +64 -0
- package/dist/chunks/KHR_materials_ior-B-Bz-ZTi.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_ior-DcRJZA_s.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_ior-DcRJZA_s.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_iridescence-B9mn3E_m.esm.js +72 -0
- package/dist/chunks/KHR_materials_iridescence-B9mn3E_m.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_iridescence-BVq13lbk.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_iridescence-BVq13lbk.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-D81096Xs.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-D81096Xs.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DbXQeIqw.esm.js +81 -0
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DbXQeIqw.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_sheen-CJALPuj4.esm.js +85 -0
- package/dist/chunks/KHR_materials_sheen-CJALPuj4.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_sheen-D6gJV14Q.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_sheen-D6gJV14Q.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_specular-8J6t7IWW.esm.js +75 -0
- package/dist/chunks/KHR_materials_specular-8J6t7IWW.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_specular-CLkfKuYs.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_specular-CLkfKuYs.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_transmission-CtmncfNu.esm.js +307 -0
- package/dist/chunks/KHR_materials_transmission-CtmncfNu.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_transmission-Ds1e4Rgi.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_transmission-Ds1e4Rgi.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_unlit-CjwtrKka.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_unlit-CjwtrKka.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_unlit-D7RRssK9.esm.js +74 -0
- package/dist/chunks/KHR_materials_unlit-D7RRssK9.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_variants-B16YKuMe.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_variants-B16YKuMe.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_variants-C6mz0mzG.esm.js +238 -0
- package/dist/chunks/KHR_materials_variants-C6mz0mzG.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_volume-CocxcaC_.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_volume-CocxcaC_.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_volume-kX43-sr-.esm.js +87 -0
- package/dist/chunks/KHR_materials_volume-kX43-sr-.esm.js.map +1 -0
- package/dist/chunks/KHR_mesh_quantization-B2Y3kC9D.esm.js +26 -0
- package/dist/chunks/KHR_mesh_quantization-B2Y3kC9D.esm.js.map +1 -0
- package/dist/chunks/KHR_mesh_quantization-BfMxe7Z-.esm.min.js +2 -0
- package/dist/chunks/KHR_mesh_quantization-BfMxe7Z-.esm.min.js.map +1 -0
- package/dist/chunks/KHR_texture_basisu-DS4eOc5v.esm.js +43 -0
- package/dist/chunks/KHR_texture_basisu-DS4eOc5v.esm.js.map +1 -0
- package/dist/chunks/KHR_texture_basisu-ghZqGH67.esm.min.js +2 -0
- package/dist/chunks/KHR_texture_basisu-ghZqGH67.esm.min.js.map +1 -0
- package/dist/chunks/KHR_texture_transform-6nYo8mzH.esm.min.js +2 -0
- package/dist/chunks/KHR_texture_transform-6nYo8mzH.esm.min.js.map +1 -0
- package/dist/chunks/KHR_texture_transform-B-qDuvbI.esm.js +63 -0
- package/dist/chunks/KHR_texture_transform-B-qDuvbI.esm.js.map +1 -0
- package/dist/chunks/KHR_xmp_json_ld-CKv9gfXs.esm.min.js +2 -0
- package/dist/chunks/KHR_xmp_json_ld-CKv9gfXs.esm.min.js.map +1 -0
- package/dist/chunks/KHR_xmp_json_ld-CXjOnFmU.esm.js +51 -0
- package/dist/chunks/KHR_xmp_json_ld-CXjOnFmU.esm.js.map +1 -0
- package/dist/chunks/MSFT_audio_emitter-1StuTv-Z.esm.js +2236 -0
- package/dist/chunks/MSFT_audio_emitter-1StuTv-Z.esm.js.map +1 -0
- package/dist/chunks/MSFT_audio_emitter-BfKy7LEd.esm.min.js +2 -0
- package/dist/chunks/MSFT_audio_emitter-BfKy7LEd.esm.min.js.map +1 -0
- package/dist/chunks/MSFT_lod-DA4UA4La.esm.js +337 -0
- package/dist/chunks/MSFT_lod-DA4UA4La.esm.js.map +1 -0
- package/dist/chunks/MSFT_lod-wcOn3D2V.esm.min.js +2 -0
- package/dist/chunks/MSFT_lod-wcOn3D2V.esm.min.js.map +1 -0
- package/dist/chunks/MSFT_minecraftMesh-afhS3NlZ.esm.js +46 -0
- package/dist/chunks/MSFT_minecraftMesh-afhS3NlZ.esm.js.map +1 -0
- package/dist/chunks/MSFT_minecraftMesh-x417idfJ.esm.min.js +2 -0
- package/dist/chunks/MSFT_minecraftMesh-x417idfJ.esm.min.js.map +1 -0
- package/dist/chunks/MSFT_sRGBFactors-BjLfK8v1.esm.min.js +2 -0
- package/dist/chunks/MSFT_sRGBFactors-BjLfK8v1.esm.min.js.map +1 -0
- package/dist/chunks/MSFT_sRGBFactors-fA6kZabo.esm.js +47 -0
- package/dist/chunks/MSFT_sRGBFactors-fA6kZabo.esm.js.map +1 -0
- package/dist/chunks/assetContainer-BWyT-iC8.esm.min.js +2 -0
- package/dist/chunks/assetContainer-BWyT-iC8.esm.min.js.map +1 -0
- package/dist/chunks/assetContainer-C9nOA325.esm.js +1598 -0
- package/dist/chunks/assetContainer-C9nOA325.esm.js.map +1 -0
- package/dist/chunks/audioEngine-Bi_JHe07.esm.js +305 -0
- package/dist/chunks/audioEngine-Bi_JHe07.esm.js.map +1 -0
- package/dist/chunks/audioEngine-DyaETd2M.esm.min.js +2 -0
- package/dist/chunks/audioEngine-DyaETd2M.esm.min.js.map +1 -0
- package/dist/chunks/bakedVertexAnimation-Bw1dcogG.esm.min.js +2 -0
- package/dist/chunks/bakedVertexAnimation-Bw1dcogG.esm.min.js.map +1 -0
- package/dist/chunks/bakedVertexAnimation-D2t3QFFy.esm.js +119 -0
- package/dist/chunks/bakedVertexAnimation-D2t3QFFy.esm.js.map +1 -0
- package/dist/chunks/basisTextureLoader-DEikcMs0.esm.js +600 -0
- package/dist/chunks/basisTextureLoader-DEikcMs0.esm.js.map +1 -0
- package/dist/chunks/basisTextureLoader-DnU1aFLP.esm.min.js +2 -0
- package/dist/chunks/basisTextureLoader-DnU1aFLP.esm.min.js.map +1 -0
- package/dist/chunks/ddsTextureLoader-DBWTHVjj.esm.min.js +2 -0
- package/dist/chunks/ddsTextureLoader-DBWTHVjj.esm.min.js.map +1 -0
- package/dist/chunks/ddsTextureLoader-ilOloJ4p.esm.js +87 -0
- package/dist/chunks/ddsTextureLoader-ilOloJ4p.esm.js.map +1 -0
- package/dist/chunks/decalFragment-CMHxc7Hr.esm.min.js +2 -0
- package/dist/chunks/decalFragment-CMHxc7Hr.esm.min.js.map +1 -0
- package/dist/chunks/decalFragment-CzgxOzQf.esm.js +18 -0
- package/dist/chunks/decalFragment-CzgxOzQf.esm.js.map +1 -0
- package/dist/chunks/default.fragment-BOotE87x.esm.min.js +2 -0
- package/dist/chunks/default.fragment-BOotE87x.esm.min.js.map +1 -0
- package/dist/chunks/default.fragment-C8I2FMK1.esm.js +515 -0
- package/dist/chunks/default.fragment-C8I2FMK1.esm.js.map +1 -0
- package/dist/chunks/default.fragment-CMyZ0Um2.esm.js +449 -0
- package/dist/chunks/default.fragment-CMyZ0Um2.esm.js.map +1 -0
- package/dist/chunks/default.fragment-dyXo8ZoT.esm.min.js +2 -0
- package/dist/chunks/default.fragment-dyXo8ZoT.esm.min.js.map +1 -0
- package/dist/chunks/default.vertex-BgameJri.esm.js +199 -0
- package/dist/chunks/default.vertex-BgameJri.esm.js.map +1 -0
- package/dist/chunks/default.vertex-CI-1zFCv.esm.min.js +2 -0
- package/dist/chunks/default.vertex-CI-1zFCv.esm.min.js.map +1 -0
- package/dist/chunks/default.vertex-CtvM7XrD.esm.js +180 -0
- package/dist/chunks/default.vertex-CtvM7XrD.esm.js.map +1 -0
- package/dist/chunks/default.vertex-DVEypQOv.esm.min.js +2 -0
- package/dist/chunks/default.vertex-DVEypQOv.esm.min.js.map +1 -0
- package/dist/chunks/defaultUboDeclaration-2dituFIw.esm.js +15 -0
- package/dist/chunks/defaultUboDeclaration-2dituFIw.esm.js.map +1 -0
- package/dist/chunks/defaultUboDeclaration-BCFc39NJ.esm.js +13 -0
- package/dist/chunks/defaultUboDeclaration-BCFc39NJ.esm.js.map +1 -0
- package/dist/chunks/defaultUboDeclaration-Be_Tm0i8.esm.min.js +2 -0
- package/dist/chunks/defaultUboDeclaration-Be_Tm0i8.esm.min.js.map +1 -0
- package/dist/chunks/defaultUboDeclaration-CjpL7xej.esm.min.js +2 -0
- package/dist/chunks/defaultUboDeclaration-CjpL7xej.esm.min.js.map +1 -0
- package/dist/chunks/engine-2EdX14bK.esm.js +1970 -0
- package/dist/chunks/engine-2EdX14bK.esm.js.map +1 -0
- package/dist/chunks/engine-CTtwkexh.esm.min.js +2 -0
- package/dist/chunks/engine-CTtwkexh.esm.min.js.map +1 -0
- package/dist/chunks/engine.common-BrXEBOzm.esm.js +1213 -0
- package/dist/chunks/engine.common-BrXEBOzm.esm.js.map +1 -0
- package/dist/chunks/engine.common-Dn_GE8cx.esm.min.js +2 -0
- package/dist/chunks/engine.common-Dn_GE8cx.esm.min.js.map +1 -0
- package/dist/chunks/envTextureLoader-9mljxKnB.esm.min.js +2 -0
- package/dist/chunks/envTextureLoader-9mljxKnB.esm.min.js.map +1 -0
- package/dist/chunks/envTextureLoader-cuBGdyEX.esm.js +63 -0
- package/dist/chunks/envTextureLoader-cuBGdyEX.esm.js.map +1 -0
- package/dist/chunks/environmentTextureTools-2JiPh6sF.esm.min.js +2 -0
- package/dist/chunks/environmentTextureTools-2JiPh6sF.esm.min.js.map +1 -0
- package/dist/chunks/environmentTextureTools-CaOOVUg4.esm.js +381 -0
- package/dist/chunks/environmentTextureTools-CaOOVUg4.esm.js.map +1 -0
- package/dist/chunks/exrTextureLoader-C2yRfZW0.esm.min.js +2 -0
- package/dist/chunks/exrTextureLoader-C2yRfZW0.esm.min.js.map +1 -0
- package/dist/chunks/exrTextureLoader-DPvYdRIY.esm.js +1682 -0
- package/dist/chunks/exrTextureLoader-DPvYdRIY.esm.js.map +1 -0
- package/dist/chunks/fogFragment-CerDBxh8.esm.min.js +2 -0
- package/dist/chunks/fogFragment-CerDBxh8.esm.min.js.map +1 -0
- package/dist/chunks/fogFragment-SpVyZY46.esm.js +102 -0
- package/dist/chunks/fogFragment-SpVyZY46.esm.js.map +1 -0
- package/dist/chunks/fresnelFunction-Cfc0PCuM.esm.min.js +2 -0
- package/dist/chunks/fresnelFunction-Cfc0PCuM.esm.min.js.map +1 -0
- package/dist/chunks/fresnelFunction-DYc_QORg.esm.js +12 -0
- package/dist/chunks/fresnelFunction-DYc_QORg.esm.js.map +1 -0
- package/dist/chunks/glTFLoader-CX847JwZ.esm.min.js +2 -0
- package/dist/chunks/glTFLoader-CX847JwZ.esm.min.js.map +1 -0
- package/dist/chunks/glTFLoader-FnbdTR40.esm.js +7552 -0
- package/dist/chunks/glTFLoader-FnbdTR40.esm.js.map +1 -0
- package/dist/chunks/glTFLoaderAnimation-DLprnT2e.esm.js +77 -0
- package/dist/chunks/glTFLoaderAnimation-DLprnT2e.esm.js.map +1 -0
- package/dist/chunks/glTFLoaderAnimation-YVA5W-1q.esm.min.js +2 -0
- package/dist/chunks/glTFLoaderAnimation-YVA5W-1q.esm.min.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-BglL8EAc.esm.min.js +2 -0
- package/dist/chunks/harmonicsFunctions-BglL8EAc.esm.min.js.map +1 -0
- package/dist/chunks/harmonicsFunctions-BjhkFrPF.esm.min.js +2 -0
- package/dist/chunks/harmonicsFunctions-BjhkFrPF.esm.min.js.map +1 -0
- package/dist/chunks/harmonicsFunctions-D0kGurRz.esm.js +34 -0
- package/dist/chunks/harmonicsFunctions-D0kGurRz.esm.js.map +1 -0
- package/dist/chunks/harmonicsFunctions-f0TDZMjd.esm.js +35 -0
- package/dist/chunks/harmonicsFunctions-f0TDZMjd.esm.js.map +1 -0
- package/dist/chunks/hdrTextureLoader-BYv589K1.esm.min.js +2 -0
- package/dist/chunks/hdrTextureLoader-BYv589K1.esm.min.js.map +1 -0
- package/dist/chunks/hdrTextureLoader-Cia6kLvR.esm.js +252 -0
- package/dist/chunks/hdrTextureLoader-Cia6kLvR.esm.js.map +1 -0
- package/dist/chunks/helperFunctions-B6L2NvuR.esm.min.js +2 -0
- package/dist/chunks/helperFunctions-B6L2NvuR.esm.min.js.map +1 -0
- package/dist/chunks/helperFunctions-CTmvPMOb.esm.js +108 -0
- package/dist/chunks/helperFunctions-CTmvPMOb.esm.js.map +1 -0
- package/dist/chunks/helperFunctions-Dx_bhcnf.esm.js +80 -0
- package/dist/chunks/helperFunctions-Dx_bhcnf.esm.js.map +1 -0
- package/dist/chunks/helperFunctions-lfyjwIAq.esm.min.js +2 -0
- package/dist/chunks/helperFunctions-lfyjwIAq.esm.min.js.map +1 -0
- package/dist/chunks/index-H9RbNFln.esm.js +78669 -0
- package/dist/chunks/index-H9RbNFln.esm.js.map +1 -0
- package/dist/chunks/index-NKQY07Ai.esm.min.js +57 -0
- package/dist/chunks/index-NKQY07Ai.esm.min.js.map +1 -0
- package/dist/chunks/ktxTextureLoader-C8P1HmKw.esm.min.js +2 -0
- package/dist/chunks/ktxTextureLoader-C8P1HmKw.esm.min.js.map +1 -0
- package/dist/chunks/ktxTextureLoader-CGZaZgF4.esm.js +814 -0
- package/dist/chunks/ktxTextureLoader-CGZaZgF4.esm.js.map +1 -0
- package/dist/chunks/logDepthDeclaration-BtAGVG3-.esm.min.js +2 -0
- package/dist/chunks/logDepthDeclaration-BtAGVG3-.esm.min.js.map +1 -0
- package/dist/chunks/logDepthDeclaration-BvAgEnZm.esm.min.js +2 -0
- package/dist/chunks/logDepthDeclaration-BvAgEnZm.esm.min.js.map +1 -0
- package/dist/chunks/logDepthDeclaration-DD208S_2.esm.js +35 -0
- package/dist/chunks/logDepthDeclaration-DD208S_2.esm.js.map +1 -0
- package/dist/chunks/logDepthDeclaration-T3brxHqo.esm.js +20 -0
- package/dist/chunks/logDepthDeclaration-T3brxHqo.esm.js.map +1 -0
- package/dist/chunks/logDepthVertex-0P4Fk3ej.esm.js +77 -0
- package/dist/chunks/logDepthVertex-0P4Fk3ej.esm.js.map +1 -0
- package/dist/chunks/logDepthVertex-Bo4jbfP3.esm.min.js +2 -0
- package/dist/chunks/logDepthVertex-Bo4jbfP3.esm.min.js.map +1 -0
- package/dist/chunks/logDepthVertex-DhlJdt6n.esm.min.js +2 -0
- package/dist/chunks/logDepthVertex-DhlJdt6n.esm.min.js.map +1 -0
- package/dist/chunks/logDepthVertex-bCxA8jHH.esm.js +488 -0
- package/dist/chunks/logDepthVertex-bCxA8jHH.esm.js.map +1 -0
- package/dist/chunks/mainUVVaryingDeclaration-CkGDoJLo.esm.js +11 -0
- package/dist/chunks/mainUVVaryingDeclaration-CkGDoJLo.esm.js.map +1 -0
- package/dist/chunks/mainUVVaryingDeclaration-DAb0JqU5.esm.min.js +2 -0
- package/dist/chunks/mainUVVaryingDeclaration-DAb0JqU5.esm.min.js.map +1 -0
- package/dist/chunks/meshUboDeclaration-BEpwR1Md.esm.min.js +2 -0
- package/dist/chunks/meshUboDeclaration-BEpwR1Md.esm.min.js.map +1 -0
- package/dist/chunks/meshUboDeclaration-wwoFcdXg.esm.js +24 -0
- package/dist/chunks/meshUboDeclaration-wwoFcdXg.esm.js.map +1 -0
- package/dist/chunks/objFileLoader-9VII_MH6.esm.min.js +2 -0
- package/dist/chunks/objFileLoader-9VII_MH6.esm.min.js.map +1 -0
- package/dist/chunks/objFileLoader-sy2KqRzD.esm.js +1280 -0
- package/dist/chunks/objFileLoader-sy2KqRzD.esm.js.map +1 -0
- package/dist/chunks/oitFragment-BKhyL_Ma.esm.min.js +2 -0
- package/dist/chunks/oitFragment-BKhyL_Ma.esm.min.js.map +1 -0
- package/dist/chunks/oitFragment-BqtunGU7.esm.min.js +2 -0
- package/dist/chunks/oitFragment-BqtunGU7.esm.min.js.map +1 -0
- package/dist/chunks/oitFragment-CGo4SX0U.esm.js +1150 -0
- package/dist/chunks/oitFragment-CGo4SX0U.esm.js.map +1 -0
- package/dist/chunks/oitFragment-akBosjiV.esm.js +1210 -0
- package/dist/chunks/oitFragment-akBosjiV.esm.js.map +1 -0
- package/dist/chunks/pass.fragment-CMK3Cirh.esm.js +15 -0
- package/dist/chunks/pass.fragment-CMK3Cirh.esm.js.map +1 -0
- package/dist/chunks/pass.fragment-NgBFYMH2.esm.min.js +2 -0
- package/dist/chunks/pass.fragment-NgBFYMH2.esm.min.js.map +1 -0
- package/dist/chunks/pbr.fragment-BxeirEXF.esm.min.js +2 -0
- package/dist/chunks/pbr.fragment-BxeirEXF.esm.min.js.map +1 -0
- package/dist/chunks/pbr.fragment-C9P-kot0.esm.min.js +2 -0
- package/dist/chunks/pbr.fragment-C9P-kot0.esm.min.js.map +1 -0
- package/dist/chunks/pbr.fragment-CmciAvUf.esm.js +3219 -0
- package/dist/chunks/pbr.fragment-CmciAvUf.esm.js.map +1 -0
- package/dist/chunks/pbr.fragment-DptkOGvm.esm.js +3165 -0
- package/dist/chunks/pbr.fragment-DptkOGvm.esm.js.map +1 -0
- package/dist/chunks/pbr.vertex-BGYxmiED.esm.min.js +2 -0
- package/dist/chunks/pbr.vertex-BGYxmiED.esm.min.js.map +1 -0
- package/dist/chunks/pbr.vertex-BKYxq0u4.esm.min.js +2 -0
- package/dist/chunks/pbr.vertex-BKYxq0u4.esm.min.js.map +1 -0
- package/dist/chunks/pbr.vertex-BW_cBtTy.esm.js +210 -0
- package/dist/chunks/pbr.vertex-BW_cBtTy.esm.js.map +1 -0
- package/dist/chunks/pbr.vertex-D5_YtZ3F.esm.js +335 -0
- package/dist/chunks/pbr.vertex-D5_YtZ3F.esm.js.map +1 -0
- package/dist/chunks/postprocess.vertex-BIHPwYtc.esm.min.js +2 -0
- package/dist/chunks/postprocess.vertex-BIHPwYtc.esm.min.js.map +1 -0
- package/dist/chunks/postprocess.vertex-DQbuHlSL.esm.js +20 -0
- package/dist/chunks/postprocess.vertex-DQbuHlSL.esm.js.map +1 -0
- package/dist/chunks/rawTexture-BBFBylYg.esm.js +191 -0
- package/dist/chunks/rawTexture-BBFBylYg.esm.js.map +1 -0
- package/dist/chunks/rawTexture-DtTw1SfK.esm.min.js +2 -0
- package/dist/chunks/rawTexture-DtTw1SfK.esm.min.js.map +1 -0
- package/dist/chunks/rgbdDecode.fragment-B8vtIeR2.esm.min.js +2 -0
- package/dist/chunks/rgbdDecode.fragment-B8vtIeR2.esm.min.js.map +1 -0
- package/dist/chunks/rgbdDecode.fragment-BAERNvTB.esm.js +17 -0
- package/dist/chunks/rgbdDecode.fragment-BAERNvTB.esm.js.map +1 -0
- package/dist/chunks/rgbdDecode.fragment-CUCNLBNb.esm.js +17 -0
- package/dist/chunks/rgbdDecode.fragment-CUCNLBNb.esm.js.map +1 -0
- package/dist/chunks/rgbdDecode.fragment-DE974oq3.esm.min.js +2 -0
- package/dist/chunks/rgbdDecode.fragment-DE974oq3.esm.min.js.map +1 -0
- package/dist/chunks/rgbdEncode.fragment-12Ga6DPf.esm.min.js +2 -0
- package/dist/chunks/rgbdEncode.fragment-12Ga6DPf.esm.min.js.map +1 -0
- package/dist/chunks/rgbdEncode.fragment-C_8FK6je.esm.min.js +2 -0
- package/dist/chunks/rgbdEncode.fragment-C_8FK6je.esm.min.js.map +1 -0
- package/dist/chunks/rgbdEncode.fragment-DLGZ9Ew-.esm.js +17 -0
- package/dist/chunks/rgbdEncode.fragment-DLGZ9Ew-.esm.js.map +1 -0
- package/dist/chunks/rgbdEncode.fragment-vtqqWXMx.esm.js +17 -0
- package/dist/chunks/rgbdEncode.fragment-vtqqWXMx.esm.js.map +1 -0
- package/dist/chunks/splatFileLoader-BvGLmrOU.esm.js +3179 -0
- package/dist/chunks/splatFileLoader-BvGLmrOU.esm.js.map +1 -0
- package/dist/chunks/splatFileLoader-Du-_lAWj.esm.min.js +2 -0
- package/dist/chunks/splatFileLoader-Du-_lAWj.esm.min.js.map +1 -0
- package/dist/chunks/standardMaterial-CTqOZPWo.esm.min.js +2 -0
- package/dist/chunks/standardMaterial-CTqOZPWo.esm.min.js.map +1 -0
- package/dist/chunks/standardMaterial-Nso7Fcun.esm.js +1809 -0
- package/dist/chunks/standardMaterial-Nso7Fcun.esm.js.map +1 -0
- package/dist/chunks/stlFileLoader-C0UsVNIc.esm.js +237 -0
- package/dist/chunks/stlFileLoader-C0UsVNIc.esm.js.map +1 -0
- package/dist/chunks/stlFileLoader-Du9QZoAm.esm.min.js +2 -0
- package/dist/chunks/stlFileLoader-Du9QZoAm.esm.min.js.map +1 -0
- package/dist/chunks/tgaTextureLoader-BNBS-X4Q.esm.min.js +2 -0
- package/dist/chunks/tgaTextureLoader-BNBS-X4Q.esm.min.js.map +1 -0
- package/dist/chunks/tgaTextureLoader-D46YCUQ_.esm.js +349 -0
- package/dist/chunks/tgaTextureLoader-D46YCUQ_.esm.js.map +1 -0
- package/dist/chunks/thinInstanceMesh-DCh8MOoj.esm.min.js +2 -0
- package/dist/chunks/thinInstanceMesh-DCh8MOoj.esm.min.js.map +1 -0
- package/dist/chunks/thinInstanceMesh-DzFmk7SW.esm.js +314 -0
- package/dist/chunks/thinInstanceMesh-DzFmk7SW.esm.js.map +1 -0
- package/dist/chunks/vertexColorMixing-Bt0lYFpZ.esm.min.js +2 -0
- package/dist/chunks/vertexColorMixing-Bt0lYFpZ.esm.min.js.map +1 -0
- package/dist/chunks/vertexColorMixing-Ds7u6owR.esm.js +528 -0
- package/dist/chunks/vertexColorMixing-Ds7u6owR.esm.js.map +1 -0
- package/dist/chunks/webgpuEngine--HWPU_ZX.esm.js +11169 -0
- package/dist/chunks/webgpuEngine--HWPU_ZX.esm.js.map +1 -0
- package/dist/chunks/webgpuEngine-BwnxF0Zq.esm.min.js +2 -0
- package/dist/chunks/webgpuEngine-BwnxF0Zq.esm.min.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 +281 -0
- package/lib/index.js +965 -0
- package/lib/index.js.map +1 -0
- package/package.json +17 -27
- package/readme.md +35 -21
- 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 -192
- 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 -350
- 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 -199
- 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 -21
- package/templating/plugins/hdButtonPlugin.js.map +0 -1
- package/templating/plugins/printButton.d.ts +0 -9
- package/templating/plugins/printButton.js +0 -40
- 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 -675
- 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-2EdX14bK.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.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/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_INT, 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_INT, \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_INT) {\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_INT) {\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// 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\";\n/** @internal */\nexport class WebGLRenderTargetWrapper extends RenderTargetWrapper {\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 if (!texture._hardwareTexture) {\n return;\n }\n const framebuffer = this._framebuffer;\n const engine = this._engine;\n const currentFB = engine._currentFramebuffer;\n engine._bindUnboundFramebuffer(framebuffer);\n if (engine.webGLVersion > 1) {\n const gl = this._context;\n const attachment = gl[\"COLOR_ATTACHMENT\" + attachmentIndex];\n if (texture.is2DArray || texture.is3D) {\n faceIndexOrLayer = faceIndexOrLayer ?? this.layerIndices?.[attachmentIndex] ?? 0;\n gl.framebufferTextureLayer(gl.FRAMEBUFFER, attachment, texture._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, texture._hardwareTexture.underlyingResource, lodLevel);\n }\n else {\n gl.framebufferTexture2D(gl.FRAMEBUFFER, attachment, gl.TEXTURE_2D, texture._hardwareTexture.underlyingResource, lodLevel);\n }\n }\n else {\n // Default behavior (WebGL)\n const gl = this._context;\n const 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, texture._hardwareTexture.underlyingResource, lodLevel);\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 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 this.updateRenderTargetTextureSampleCount(rtWrapper, samples);\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 let type = gl.UNSIGNED_INT;\n if (internalTexture.format === Constants.TEXTUREFORMAT_DEPTH16) {\n type = gl.UNSIGNED_SHORT;\n }\n else if (internalTexture.format === Constants.TEXTUREFORMAT_DEPTH24UNORM_STENCIL8 || internalTexture.format === Constants.TEXTUREFORMAT_DEPTH24_STENCIL8) {\n type = gl.UNSIGNED_INT_24_8;\n }\n else if (internalTexture.format === Constants.TEXTUREFORMAT_DEPTH32_FLOAT) {\n type = gl.FLOAT;\n }\n else if (internalTexture.format === Constants.TEXTUREFORMAT_DEPTH32FLOAT_STENCIL8) {\n type = gl.FLOAT_32_UNSIGNED_INT_24_8_REV;\n }\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 const framebuffer = gl.createFramebuffer();\n if (!framebuffer) {\n throw new Error(\"Unable to create multi sampled framebuffer\");\n }\n rtWrapper._MSAAFramebuffer = framebuffer;\n if (rtWrapper.texture && samples > 1 && typeof gl.renderbufferStorageMultisample === \"function\") {\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_INT;\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_INT,\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_INT;\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 { 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 \"./AbstractEngine/abstractEngine.loadingScreen\";\nimport \"./AbstractEngine/abstractEngine.dom\";\nimport \"./AbstractEngine/abstractEngine.states\";\nimport \"./AbstractEngine/abstractEngine.renderPass\";\nimport \"./AbstractEngine/abstractEngine.texture\";\nimport { AbstractEngine } from \"./abstractEngine\";\nimport { CreateImageBitmapFromSource, ExitFullscreen, ExitPointerlock, GetFontOffset, RequestFullscreen, RequestPointerlock, ResizeImageBitmap, _CommonDispose, _CommonInit, } from \"./engine.common\";\nimport { PerfCounter } from \"../Misc/perfCounter\";\nimport \"../Audio/audioEngine\";\n/**\n * The engine class is responsible for interfacing with all lower-level APIs such as WebGL and Audio\n */\nexport class Engine extends ThinEngine {\n /**\n * Returns the current npm package of the sdk\n */\n // Not mixed with Version for tooling purpose.\n static get NpmPackage() {\n return AbstractEngine.NpmPackage;\n }\n /**\n * Returns the current version of the framework\n */\n static get Version() {\n return AbstractEngine.Version;\n }\n /** Gets the list of created engines */\n static get Instances() {\n return EngineStore.Instances;\n }\n /**\n * Gets the latest created engine\n */\n static get LastCreatedEngine() {\n return EngineStore.LastCreatedEngine;\n }\n /**\n * Gets the latest created scene\n */\n static get LastCreatedScene() {\n return EngineStore.LastCreatedScene;\n }\n /** @internal */\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * Method called to create the default loading screen.\n * This can be overridden in your own app.\n * @param canvas The rendering canvas element\n * @returns The loading screen\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n static DefaultLoadingScreenFactory(canvas) {\n return AbstractEngine.DefaultLoadingScreenFactory(canvas);\n }\n get _supportsHardwareTextureRescaling() {\n return !!Engine._RescalePostProcessFactory;\n }\n _measureFps() {\n this._performanceMonitor.sampleFrame();\n this._fps = this._performanceMonitor.averageFPS;\n this._deltaTime = this._performanceMonitor.instantaneousFrameTime || 0;\n }\n /**\n * Gets the performance monitor attached to this engine\n * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/optimize_your_scene#engineinstrumentation\n */\n get performanceMonitor() {\n return this._performanceMonitor;\n }\n // Events\n /**\n * Creates a new engine\n * @param canvasOrContext defines the canvas or WebGL context to use for rendering. If you provide a WebGL context, Babylon.js will not hook events on the canvas (like pointers, keyboards, etc...) so no event observables will be available. This is mostly used when Babylon.js is used as a plugin on a system which already used the WebGL context\n * @param antialias defines enable antialiasing (default: false)\n * @param options defines further options to be sent to the getContext() function\n * @param adaptToDeviceRatio defines whether to adapt to the device's viewport characteristics (default: false)\n */\n constructor(canvasOrContext, antialias, options, adaptToDeviceRatio = false) {\n super(canvasOrContext, antialias, options, adaptToDeviceRatio);\n // Members\n /**\n * If set, will be used to request the next animation frame for the render loop\n */\n this.customAnimationFrameRequester = null;\n this._performanceMonitor = new PerformanceMonitor();\n this._drawCalls = new PerfCounter();\n if (!canvasOrContext) {\n return;\n }\n this._features.supportRenderPasses = true;\n options = this._creationOptions;\n if (canvasOrContext.getContext) {\n const canvas = canvasOrContext;\n this._sharedInit(canvas);\n }\n }\n _initGLContext() {\n super._initGLContext();\n this._rescalePostProcess = null;\n }\n /**\n * Shared initialization across engines types.\n * @param canvas The canvas associated with this instance of the engine.\n */\n _sharedInit(canvas) {\n super._sharedInit(canvas);\n _CommonInit(this, canvas, this._creationOptions);\n }\n /**\n * Resize an image and returns the image data as an uint8array\n * @param image image to resize\n * @param bufferWidth destination buffer width\n * @param bufferHeight destination buffer height\n * @returns an uint8array containing RGBA values of bufferWidth * bufferHeight size\n */\n resizeImageBitmap(image, bufferWidth, bufferHeight) {\n return ResizeImageBitmap(this, image, bufferWidth, bufferHeight);\n }\n /**\n * Engine abstraction for loading and creating an image bitmap from a given source string.\n * @param imageSource source to load the image from.\n * @param options An object that sets options for the image's extraction.\n * @returns ImageBitmap\n */\n _createImageBitmapFromSource(imageSource, options) {\n return CreateImageBitmapFromSource(this, imageSource, options);\n }\n /**\n * Toggle full screen mode\n * @param requestPointerLock defines if a pointer lock should be requested from the user\n */\n switchFullscreen(requestPointerLock) {\n if (this.isFullscreen) {\n this.exitFullscreen();\n }\n else {\n this.enterFullscreen(requestPointerLock);\n }\n }\n /**\n * Enters full screen mode\n * @param requestPointerLock defines if a pointer lock should be requested from the user\n */\n enterFullscreen(requestPointerLock) {\n if (!this.isFullscreen) {\n this._pointerLockRequested = requestPointerLock;\n if (this._renderingCanvas) {\n RequestFullscreen(this._renderingCanvas);\n }\n }\n }\n /**\n * Exits full screen mode\n */\n exitFullscreen() {\n if (this.isFullscreen) {\n ExitFullscreen();\n }\n }\n /** States */\n /**\n * Sets a boolean indicating if the dithering state is enabled or disabled\n * @param value defines the dithering state\n */\n setDitheringState(value) {\n if (value) {\n this._gl.enable(this._gl.DITHER);\n }\n else {\n this._gl.disable(this._gl.DITHER);\n }\n }\n /**\n * Sets a boolean indicating if the rasterizer state is enabled or disabled\n * @param value defines the rasterizer state\n */\n setRasterizerState(value) {\n if (value) {\n this._gl.disable(this._gl.RASTERIZER_DISCARD);\n }\n else {\n this._gl.enable(this._gl.RASTERIZER_DISCARD);\n }\n }\n /**\n * Directly set the WebGL Viewport\n * @param x defines the x coordinate of the viewport (in screen space)\n * @param y defines the y coordinate of the viewport (in screen space)\n * @param width defines the width of the viewport (in screen space)\n * @param height defines the height of the viewport (in screen space)\n * @returns the current viewport Object (if any) that is being replaced by this call. You can restore this viewport later on to go back to the original state\n */\n setDirectViewport(x, y, width, height) {\n const currentViewport = this._cachedViewport;\n this._cachedViewport = null;\n this._viewport(x, y, width, height);\n return currentViewport;\n }\n /**\n * Executes a scissor clear (ie. a clear on a specific portion of the screen)\n * @param x defines the x-coordinate of the bottom left corner of the clear rectangle\n * @param y defines the y-coordinate of the corner of the clear rectangle\n * @param width defines the width of the clear rectangle\n * @param height defines the height of the clear rectangle\n * @param clearColor defines the clear color\n */\n scissorClear(x, y, width, height, clearColor) {\n this.enableScissor(x, y, width, height);\n this.clear(clearColor, true, true, true);\n this.disableScissor();\n }\n /**\n * Enable scissor test on a specific rectangle (ie. render will only be executed on a specific portion of the screen)\n * @param x defines the x-coordinate of the bottom left corner of the clear rectangle\n * @param y defines the y-coordinate of the corner of the clear rectangle\n * @param width defines the width of the clear rectangle\n * @param height defines the height of the clear rectangle\n */\n enableScissor(x, y, width, height) {\n const gl = this._gl;\n // Change state\n gl.enable(gl.SCISSOR_TEST);\n gl.scissor(x, y, width, height);\n }\n /**\n * Disable previously set scissor test rectangle\n */\n disableScissor() {\n const gl = this._gl;\n gl.disable(gl.SCISSOR_TEST);\n }\n /**\n * @internal\n */\n _loadFileAsync(url, offlineProvider, useArrayBuffer) {\n return new Promise((resolve, reject) => {\n this._loadFile(url, (data) => {\n resolve(data);\n }, undefined, offlineProvider, useArrayBuffer, (request, exception) => {\n reject(exception);\n });\n });\n }\n /**\n * Gets the source code of the vertex shader associated with a specific webGL program\n * @param program defines the program to use\n * @returns a string containing the source code of the vertex shader associated with the program\n */\n getVertexShaderSource(program) {\n const shaders = this._gl.getAttachedShaders(program);\n if (!shaders) {\n return null;\n }\n return this._gl.getShaderSource(shaders[0]);\n }\n /**\n * Gets the source code of the fragment shader associated with a specific webGL program\n * @param program defines the program to use\n * @returns a string containing the source code of the fragment shader associated with the program\n */\n getFragmentShaderSource(program) {\n const shaders = this._gl.getAttachedShaders(program);\n if (!shaders) {\n return null;\n }\n return this._gl.getShaderSource(shaders[1]);\n }\n /**\n * sets the object from which width and height will be taken from when getting render width and height\n * Will fallback to the gl object\n * @param dimensions the framebuffer width and height that will be used.\n */\n set framebufferDimensionsObject(dimensions) {\n this._framebufferDimensionsObject = dimensions;\n if (this._framebufferDimensionsObject) {\n this.onResizeObservable.notifyObservers(this);\n }\n }\n _rebuildBuffers() {\n // Index / Vertex\n for (const scene of this.scenes) {\n scene.resetCachedMaterial();\n scene._rebuildGeometries();\n }\n for (const scene of this._virtualScenes) {\n scene.resetCachedMaterial();\n scene._rebuildGeometries();\n }\n super._rebuildBuffers();\n }\n /**\n * Get Font size information\n * @param font font name\n * @returns an object containing ascent, height and descent\n */\n getFontOffset(font) {\n return GetFontOffset(font);\n }\n _cancelFrame() {\n if (this.customAnimationFrameRequester) {\n if (this._frameHandler !== 0) {\n this._frameHandler = 0;\n const { cancelAnimationFrame } = this.customAnimationFrameRequester;\n if (cancelAnimationFrame) {\n cancelAnimationFrame(this.customAnimationFrameRequester.requestID);\n }\n }\n }\n else {\n super._cancelFrame();\n }\n }\n _renderLoop() {\n // Reset the frame handler before rendering a frame to determine if a new frame has been queued.\n this._frameHandler = 0;\n if (!this._contextWasLost) {\n let shouldRender = true;\n if (this.isDisposed || (!this.renderEvenInBackground && this._windowIsBackground)) {\n shouldRender = false;\n }\n if (shouldRender) {\n // Start new frame\n this.beginFrame();\n // Child canvases\n if (!this._renderViews()) {\n // Main frame\n this._renderFrame();\n }\n // Present\n this.endFrame();\n }\n }\n // The first condition prevents queuing another frame if we no longer have active render loops (e.g., if\n // `stopRenderLoop` is called mid frame). The second condition prevents queuing another frame if one has\n // already been queued (e.g., if `stopRenderLoop` and `runRenderLoop` is called mid frame).\n if (this._activeRenderLoops.length > 0 && this._frameHandler === 0) {\n if (this.customAnimationFrameRequester) {\n this.customAnimationFrameRequester.requestID = this._queueNewFrame(this.customAnimationFrameRequester.renderFunction || this._boundRenderFunction, this.customAnimationFrameRequester);\n this._frameHandler = this.customAnimationFrameRequester.requestID;\n }\n else {\n this._frameHandler = this._queueNewFrame(this._boundRenderFunction, this.getHostWindow());\n }\n }\n }\n /**\n * Enters Pointerlock mode\n */\n enterPointerlock() {\n if (this._renderingCanvas) {\n RequestPointerlock(this._renderingCanvas);\n }\n }\n /**\n * Exits Pointerlock mode\n */\n exitPointerlock() {\n ExitPointerlock();\n }\n /**\n * Begin a new frame\n */\n beginFrame() {\n this._measureFps();\n super.beginFrame();\n }\n _deletePipelineContext(pipelineContext) {\n const webGLPipelineContext = pipelineContext;\n if (webGLPipelineContext && webGLPipelineContext.program) {\n if (webGLPipelineContext.transformFeedback) {\n this.deleteTransformFeedback(webGLPipelineContext.transformFeedback);\n webGLPipelineContext.transformFeedback = null;\n }\n }\n super._deletePipelineContext(pipelineContext);\n }\n createShaderProgram(pipelineContext, vertexCode, fragmentCode, defines, context, transformFeedbackVaryings = null) {\n context = context || this._gl;\n this.onBeforeShaderCompilationObservable.notifyObservers(this);\n const program = super.createShaderProgram(pipelineContext, vertexCode, fragmentCode, defines, context, transformFeedbackVaryings);\n this.onAfterShaderCompilationObservable.notifyObservers(this);\n return program;\n }\n _createShaderProgram(pipelineContext, vertexShader, fragmentShader, context, transformFeedbackVaryings = null) {\n const shaderProgram = context.createProgram();\n pipelineContext.program = shaderProgram;\n if (!shaderProgram) {\n throw new Error(\"Unable to create program\");\n }\n context.attachShader(shaderProgram, vertexShader);\n context.attachShader(shaderProgram, fragmentShader);\n if (this.webGLVersion > 1 && transformFeedbackVaryings) {\n const transformFeedback = this.createTransformFeedback();\n this.bindTransformFeedback(transformFeedback);\n this.setTranformFeedbackVaryings(shaderProgram, transformFeedbackVaryings);\n pipelineContext.transformFeedback = transformFeedback;\n }\n context.linkProgram(shaderProgram);\n if (this.webGLVersion > 1 && transformFeedbackVaryings) {\n this.bindTransformFeedback(null);\n }\n pipelineContext.context = context;\n pipelineContext.vertexShader = vertexShader;\n pipelineContext.fragmentShader = fragmentShader;\n if (!pipelineContext.isParallelCompiled) {\n this._finalizePipelineContext(pipelineContext);\n }\n return shaderProgram;\n }\n /**\n * @internal\n */\n _releaseTexture(texture) {\n super._releaseTexture(texture);\n }\n /**\n * @internal\n */\n _releaseRenderTargetWrapper(rtWrapper) {\n super._releaseRenderTargetWrapper(rtWrapper);\n // Set output texture of post process to null if the framebuffer has been released/disposed\n this.scenes.forEach((scene) => {\n scene.postProcesses.forEach((postProcess) => {\n if (postProcess._outputTexture === rtWrapper) {\n postProcess._outputTexture = null;\n }\n });\n scene.cameras.forEach((camera) => {\n camera._postProcesses.forEach((postProcess) => {\n if (postProcess) {\n if (postProcess._outputTexture === rtWrapper) {\n postProcess._outputTexture = null;\n }\n }\n });\n });\n });\n }\n /**\n * @internal\n * Rescales a texture\n * @param source input texture\n * @param destination destination texture\n * @param scene scene to use to render the resize\n * @param internalFormat format to use when resizing\n * @param onComplete callback to be called when resize has completed\n */\n _rescaleTexture(source, destination, scene, internalFormat, onComplete) {\n this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_MAG_FILTER, this._gl.LINEAR);\n this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_MIN_FILTER, this._gl.LINEAR);\n this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_WRAP_S, this._gl.CLAMP_TO_EDGE);\n this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_WRAP_T, this._gl.CLAMP_TO_EDGE);\n const rtt = this.createRenderTargetTexture({\n width: destination.width,\n height: destination.height,\n }, {\n generateMipMaps: false,\n type: Constants.TEXTURETYPE_UNSIGNED_INT,\n samplingMode: Constants.TEXTURE_BILINEAR_SAMPLINGMODE,\n generateDepthBuffer: false,\n generateStencilBuffer: false,\n });\n if (!this._rescalePostProcess && Engine._RescalePostProcessFactory) {\n this._rescalePostProcess = Engine._RescalePostProcessFactory(this);\n }\n if (this._rescalePostProcess) {\n this._rescalePostProcess.externalTextureSamplerBinding = true;\n const onCompiled = () => {\n this._rescalePostProcess.onApply = function (effect) {\n effect._bindTexture(\"textureSampler\", source);\n };\n let hostingScene = scene;\n if (!hostingScene) {\n hostingScene = this.scenes[this.scenes.length - 1];\n }\n hostingScene.postProcessManager.directRender([this._rescalePostProcess], rtt, true);\n this._bindTextureDirectly(this._gl.TEXTURE_2D, destination, true);\n this._gl.copyTexImage2D(this._gl.TEXTURE_2D, 0, internalFormat, 0, 0, destination.width, destination.height, 0);\n this.unBindFramebuffer(rtt);\n rtt.dispose();\n if (onComplete) {\n onComplete();\n }\n };\n const effect = this._rescalePostProcess.getEffect();\n if (effect) {\n effect.executeWhenCompiled(onCompiled);\n }\n else {\n this._rescalePostProcess.onEffectCreatedObservable.addOnce((effect) => {\n effect.executeWhenCompiled(onCompiled);\n });\n }\n }\n }\n /**\n * Wraps an external web gl texture in a Babylon texture.\n * @param texture defines the external texture\n * @param hasMipMaps defines whether the external texture has mip maps (default: false)\n * @param samplingMode defines the sampling mode for the external texture (default: Constants.TEXTURE_TRILINEAR_SAMPLINGMODE)\n * @param width defines the width for the external texture (default: 0)\n * @param height defines the height for the external texture (default: 0)\n * @returns the babylon internal texture\n */\n wrapWebGLTexture(texture, hasMipMaps = false, samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE, width = 0, height = 0) {\n const hardwareTexture = new WebGLHardwareTexture(texture, this._gl);\n const internalTexture = new InternalTexture(this, 0 /* InternalTextureSource.Unknown */, true);\n internalTexture._hardwareTexture = hardwareTexture;\n internalTexture.baseWidth = width;\n internalTexture.baseHeight = height;\n internalTexture.width = width;\n internalTexture.height = height;\n internalTexture.isReady = true;\n internalTexture.useMipMaps = hasMipMaps;\n this.updateTextureSamplingMode(samplingMode, internalTexture);\n return internalTexture;\n }\n /**\n * @internal\n */\n _uploadImageToTexture(texture, image, faceIndex = 0, lod = 0) {\n const gl = this._gl;\n const textureType = this._getWebGLTextureType(texture.type);\n const format = this._getInternalFormat(texture.format);\n const internalFormat = this._getRGBABufferInternalSizedFormat(texture.type, format);\n const bindTarget = texture.isCube ? gl.TEXTURE_CUBE_MAP : gl.TEXTURE_2D;\n this._bindTextureDirectly(bindTarget, texture, true);\n this._unpackFlipY(texture.invertY);\n let target = gl.TEXTURE_2D;\n if (texture.isCube) {\n target = gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex;\n }\n gl.texImage2D(target, lod, internalFormat, format, textureType, image);\n this._bindTextureDirectly(bindTarget, null, true);\n }\n /**\n * Updates a depth texture Comparison Mode and Function.\n * If the comparison Function is equal to 0, the mode will be set to none.\n * Otherwise, this only works in webgl 2 and requires a shadow sampler in the shader.\n * @param texture The texture to set the comparison function for\n * @param comparisonFunction The comparison function to set, 0 if no comparison required\n */\n updateTextureComparisonFunction(texture, comparisonFunction) {\n if (this.webGLVersion === 1) {\n Logger.Error(\"WebGL 1 does not support texture comparison.\");\n return;\n }\n const gl = this._gl;\n if (texture.isCube) {\n this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, texture, true);\n if (comparisonFunction === 0) {\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_COMPARE_FUNC, Constants.LEQUAL);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_COMPARE_MODE, gl.NONE);\n }\n else {\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_COMPARE_FUNC, comparisonFunction);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_COMPARE_MODE, gl.COMPARE_REF_TO_TEXTURE);\n }\n this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, null);\n }\n else {\n this._bindTextureDirectly(this._gl.TEXTURE_2D, texture, true);\n if (comparisonFunction === 0) {\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_COMPARE_FUNC, Constants.LEQUAL);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_COMPARE_MODE, gl.NONE);\n }\n else {\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_COMPARE_FUNC, comparisonFunction);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_COMPARE_MODE, gl.COMPARE_REF_TO_TEXTURE);\n }\n this._bindTextureDirectly(this._gl.TEXTURE_2D, null);\n }\n texture._comparisonFunction = comparisonFunction;\n }\n /**\n * Creates a webGL buffer to use with instantiation\n * @param capacity defines the size of the buffer\n * @returns the webGL buffer\n */\n createInstancesBuffer(capacity) {\n const buffer = this._gl.createBuffer();\n if (!buffer) {\n throw new Error(\"Unable to create instance buffer\");\n }\n const result = new WebGLDataBuffer(buffer);\n result.capacity = capacity;\n this.bindArrayBuffer(result);\n this._gl.bufferData(this._gl.ARRAY_BUFFER, capacity, this._gl.DYNAMIC_DRAW);\n result.references = 1;\n return result;\n }\n /**\n * Delete a webGL buffer used with instantiation\n * @param buffer defines the webGL buffer to delete\n */\n deleteInstancesBuffer(buffer) {\n this._gl.deleteBuffer(buffer);\n }\n _clientWaitAsync(sync, flags = 0, intervalms = 10) {\n const gl = this._gl;\n return new Promise((resolve, reject) => {\n const check = () => {\n const res = gl.clientWaitSync(sync, flags, 0);\n if (res == gl.WAIT_FAILED) {\n reject();\n return;\n }\n if (res == gl.TIMEOUT_EXPIRED) {\n setTimeout(check, intervalms);\n return;\n }\n resolve();\n };\n check();\n });\n }\n /**\n * @internal\n */\n _readPixelsAsync(x, y, w, h, format, type, outputBuffer) {\n if (this._webGLVersion < 2) {\n throw new Error(\"_readPixelsAsync only work on WebGL2+\");\n }\n const gl = this._gl;\n const buf = gl.createBuffer();\n gl.bindBuffer(gl.PIXEL_PACK_BUFFER, buf);\n gl.bufferData(gl.PIXEL_PACK_BUFFER, outputBuffer.byteLength, gl.STREAM_READ);\n gl.readPixels(x, y, w, h, format, type, 0);\n gl.bindBuffer(gl.PIXEL_PACK_BUFFER, null);\n const sync = gl.fenceSync(gl.SYNC_GPU_COMMANDS_COMPLETE, 0);\n if (!sync) {\n return null;\n }\n gl.flush();\n return this._clientWaitAsync(sync, 0, 10).then(() => {\n gl.deleteSync(sync);\n gl.bindBuffer(gl.PIXEL_PACK_BUFFER, buf);\n gl.getBufferSubData(gl.PIXEL_PACK_BUFFER, 0, outputBuffer);\n gl.bindBuffer(gl.PIXEL_PACK_BUFFER, null);\n gl.deleteBuffer(buf);\n return outputBuffer;\n });\n }\n dispose() {\n this.hideLoadingUI();\n // Rescale PP\n if (this._rescalePostProcess) {\n this._rescalePostProcess.dispose();\n }\n _CommonDispose(this, this._renderingCanvas);\n super.dispose();\n }\n}\n// Const statics\n/** Defines that alpha blending is disabled */\nEngine.ALPHA_DISABLE = Constants.ALPHA_DISABLE;\n/** Defines that alpha blending to SRC ALPHA * SRC + DEST */\nEngine.ALPHA_ADD = Constants.ALPHA_ADD;\n/** Defines that alpha blending to SRC ALPHA * SRC + (1 - SRC ALPHA) * DEST */\nEngine.ALPHA_COMBINE = Constants.ALPHA_COMBINE;\n/** Defines that alpha blending to DEST - SRC * DEST */\nEngine.ALPHA_SUBTRACT = Constants.ALPHA_SUBTRACT;\n/** Defines that alpha blending to SRC * DEST */\nEngine.ALPHA_MULTIPLY = Constants.ALPHA_MULTIPLY;\n/** Defines that alpha blending to SRC ALPHA * SRC + (1 - SRC) * DEST */\nEngine.ALPHA_MAXIMIZED = Constants.ALPHA_MAXIMIZED;\n/** Defines that alpha blending to SRC + DEST */\nEngine.ALPHA_ONEONE = Constants.ALPHA_ONEONE;\n/** Defines that alpha blending to SRC + (1 - SRC ALPHA) * DEST */\nEngine.ALPHA_PREMULTIPLIED = Constants.ALPHA_PREMULTIPLIED;\n/**\n * Defines that alpha blending to SRC + (1 - SRC ALPHA) * DEST\n * Alpha will be set to (1 - SRC ALPHA) * DEST ALPHA\n */\nEngine.ALPHA_PREMULTIPLIED_PORTERDUFF = Constants.ALPHA_PREMULTIPLIED_PORTERDUFF;\n/** Defines that alpha blending to CST * SRC + (1 - CST) * DEST */\nEngine.ALPHA_INTERPOLATE = Constants.ALPHA_INTERPOLATE;\n/**\n * Defines that alpha blending to SRC + (1 - SRC) * DEST\n * Alpha will be set to SRC ALPHA + (1 - SRC ALPHA) * DEST ALPHA\n */\nEngine.ALPHA_SCREENMODE = Constants.ALPHA_SCREENMODE;\n/** Defines that the resource is not delayed*/\nEngine.DELAYLOADSTATE_NONE = Constants.DELAYLOADSTATE_NONE;\n/** Defines that the resource was successfully delay loaded */\nEngine.DELAYLOADSTATE_LOADED = Constants.DELAYLOADSTATE_LOADED;\n/** Defines that the resource is currently delay loading */\nEngine.DELAYLOADSTATE_LOADING = Constants.DELAYLOADSTATE_LOADING;\n/** Defines that the resource is delayed and has not started loading */\nEngine.DELAYLOADSTATE_NOTLOADED = Constants.DELAYLOADSTATE_NOTLOADED;\n// Depht or Stencil test Constants.\n/** Passed to depthFunction or stencilFunction to specify depth or stencil tests will never pass. i.e. Nothing will be drawn */\nEngine.NEVER = Constants.NEVER;\n/** Passed to depthFunction or stencilFunction to specify depth or stencil tests will always pass. i.e. Pixels will be drawn in the order they are drawn */\nEngine.ALWAYS = Constants.ALWAYS;\n/** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is less than the stored value */\nEngine.LESS = Constants.LESS;\n/** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is equals to the stored value */\nEngine.EQUAL = Constants.EQUAL;\n/** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is less than or equal to the stored value */\nEngine.LEQUAL = Constants.LEQUAL;\n/** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is greater than the stored value */\nEngine.GREATER = Constants.GREATER;\n/** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is greater than or equal to the stored value */\nEngine.GEQUAL = Constants.GEQUAL;\n/** Passed to depthFunction or stencilFunction to specify depth or stencil tests will pass if the new depth value is not equal to the stored value */\nEngine.NOTEQUAL = Constants.NOTEQUAL;\n// Stencil Actions Constants.\n/** Passed to stencilOperation to specify that stencil value must be kept */\nEngine.KEEP = Constants.KEEP;\n/** Passed to stencilOperation to specify that stencil value must be replaced */\nEngine.REPLACE = Constants.REPLACE;\n/** Passed to stencilOperation to specify that stencil value must be incremented */\nEngine.INCR = Constants.INCR;\n/** Passed to stencilOperation to specify that stencil value must be decremented */\nEngine.DECR = Constants.DECR;\n/** Passed to stencilOperation to specify that stencil value must be inverted */\nEngine.INVERT = Constants.INVERT;\n/** Passed to stencilOperation to specify that stencil value must be incremented with wrapping */\nEngine.INCR_WRAP = Constants.INCR_WRAP;\n/** Passed to stencilOperation to specify that stencil value must be decremented with wrapping */\nEngine.DECR_WRAP = Constants.DECR_WRAP;\n/** Texture is not repeating outside of 0..1 UVs */\nEngine.TEXTURE_CLAMP_ADDRESSMODE = Constants.TEXTURE_CLAMP_ADDRESSMODE;\n/** Texture is repeating outside of 0..1 UVs */\nEngine.TEXTURE_WRAP_ADDRESSMODE = Constants.TEXTURE_WRAP_ADDRESSMODE;\n/** Texture is repeating and mirrored */\nEngine.TEXTURE_MIRROR_ADDRESSMODE = Constants.TEXTURE_MIRROR_ADDRESSMODE;\n/** ALPHA */\nEngine.TEXTUREFORMAT_ALPHA = Constants.TEXTUREFORMAT_ALPHA;\n/** LUMINANCE */\nEngine.TEXTUREFORMAT_LUMINANCE = Constants.TEXTUREFORMAT_LUMINANCE;\n/** LUMINANCE_ALPHA */\nEngine.TEXTUREFORMAT_LUMINANCE_ALPHA = Constants.TEXTUREFORMAT_LUMINANCE_ALPHA;\n/** RGB */\nEngine.TEXTUREFORMAT_RGB = Constants.TEXTUREFORMAT_RGB;\n/** RGBA */\nEngine.TEXTUREFORMAT_RGBA = Constants.TEXTUREFORMAT_RGBA;\n/** RED */\nEngine.TEXTUREFORMAT_RED = Constants.TEXTUREFORMAT_RED;\n/** RED (2nd reference) */\nEngine.TEXTUREFORMAT_R = Constants.TEXTUREFORMAT_R;\n/** RG */\nEngine.TEXTUREFORMAT_RG = Constants.TEXTUREFORMAT_RG;\n/** RED_INTEGER */\nEngine.TEXTUREFORMAT_RED_INTEGER = Constants.TEXTUREFORMAT_RED_INTEGER;\n/** RED_INTEGER (2nd reference) */\nEngine.TEXTUREFORMAT_R_INTEGER = Constants.TEXTUREFORMAT_R_INTEGER;\n/** RG_INTEGER */\nEngine.TEXTUREFORMAT_RG_INTEGER = Constants.TEXTUREFORMAT_RG_INTEGER;\n/** RGB_INTEGER */\nEngine.TEXTUREFORMAT_RGB_INTEGER = Constants.TEXTUREFORMAT_RGB_INTEGER;\n/** RGBA_INTEGER */\nEngine.TEXTUREFORMAT_RGBA_INTEGER = Constants.TEXTUREFORMAT_RGBA_INTEGER;\n/** UNSIGNED_BYTE */\nEngine.TEXTURETYPE_UNSIGNED_BYTE = Constants.TEXTURETYPE_UNSIGNED_BYTE;\n/** UNSIGNED_BYTE (2nd reference) */\nEngine.TEXTURETYPE_UNSIGNED_INT = Constants.TEXTURETYPE_UNSIGNED_INT;\n/** FLOAT */\nEngine.TEXTURETYPE_FLOAT = Constants.TEXTURETYPE_FLOAT;\n/** HALF_FLOAT */\nEngine.TEXTURETYPE_HALF_FLOAT = Constants.TEXTURETYPE_HALF_FLOAT;\n/** BYTE */\nEngine.TEXTURETYPE_BYTE = Constants.TEXTURETYPE_BYTE;\n/** SHORT */\nEngine.TEXTURETYPE_SHORT = Constants.TEXTURETYPE_SHORT;\n/** UNSIGNED_SHORT */\nEngine.TEXTURETYPE_UNSIGNED_SHORT = Constants.TEXTURETYPE_UNSIGNED_SHORT;\n/** INT */\nEngine.TEXTURETYPE_INT = Constants.TEXTURETYPE_INT;\n/** UNSIGNED_INT */\nEngine.TEXTURETYPE_UNSIGNED_INTEGER = Constants.TEXTURETYPE_UNSIGNED_INTEGER;\n/** UNSIGNED_SHORT_4_4_4_4 */\nEngine.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4 = Constants.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4;\n/** UNSIGNED_SHORT_5_5_5_1 */\nEngine.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1 = Constants.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1;\n/** UNSIGNED_SHORT_5_6_5 */\nEngine.TEXTURETYPE_UNSIGNED_SHORT_5_6_5 = Constants.TEXTURETYPE_UNSIGNED_SHORT_5_6_5;\n/** UNSIGNED_INT_2_10_10_10_REV */\nEngine.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV = Constants.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV;\n/** UNSIGNED_INT_24_8 */\nEngine.TEXTURETYPE_UNSIGNED_INT_24_8 = Constants.TEXTURETYPE_UNSIGNED_INT_24_8;\n/** UNSIGNED_INT_10F_11F_11F_REV */\nEngine.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV = Constants.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV;\n/** UNSIGNED_INT_5_9_9_9_REV */\nEngine.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV = Constants.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV;\n/** FLOAT_32_UNSIGNED_INT_24_8_REV */\nEngine.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV = Constants.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV;\n/** nearest is mag = nearest and min = nearest and mip = none */\nEngine.TEXTURE_NEAREST_SAMPLINGMODE = Constants.TEXTURE_NEAREST_SAMPLINGMODE;\n/** Bilinear is mag = linear and min = linear and mip = nearest */\nEngine.TEXTURE_BILINEAR_SAMPLINGMODE = Constants.TEXTURE_BILINEAR_SAMPLINGMODE;\n/** Trilinear is mag = linear and min = linear and mip = linear */\nEngine.TEXTURE_TRILINEAR_SAMPLINGMODE = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE;\n/** nearest is mag = nearest and min = nearest and mip = linear */\nEngine.TEXTURE_NEAREST_NEAREST_MIPLINEAR = Constants.TEXTURE_NEAREST_NEAREST_MIPLINEAR;\n/** Bilinear is mag = linear and min = linear and mip = nearest */\nEngine.TEXTURE_LINEAR_LINEAR_MIPNEAREST = Constants.TEXTURE_LINEAR_LINEAR_MIPNEAREST;\n/** Trilinear is mag = linear and min = linear and mip = linear */\nEngine.TEXTURE_LINEAR_LINEAR_MIPLINEAR = Constants.TEXTURE_LINEAR_LINEAR_MIPLINEAR;\n/** mag = nearest and min = nearest and mip = nearest */\nEngine.TEXTURE_NEAREST_NEAREST_MIPNEAREST = Constants.TEXTURE_NEAREST_NEAREST_MIPNEAREST;\n/** mag = nearest and min = linear and mip = nearest */\nEngine.TEXTURE_NEAREST_LINEAR_MIPNEAREST = Constants.TEXTURE_NEAREST_LINEAR_MIPNEAREST;\n/** mag = nearest and min = linear and mip = linear */\nEngine.TEXTURE_NEAREST_LINEAR_MIPLINEAR = Constants.TEXTURE_NEAREST_LINEAR_MIPLINEAR;\n/** mag = nearest and min = linear and mip = none */\nEngine.TEXTURE_NEAREST_LINEAR = Constants.TEXTURE_NEAREST_LINEAR;\n/** mag = nearest and min = nearest and mip = none */\nEngine.TEXTURE_NEAREST_NEAREST = Constants.TEXTURE_NEAREST_NEAREST;\n/** mag = linear and min = nearest and mip = nearest */\nEngine.TEXTURE_LINEAR_NEAREST_MIPNEAREST = Constants.TEXTURE_LINEAR_NEAREST_MIPNEAREST;\n/** mag = linear and min = nearest and mip = linear */\nEngine.TEXTURE_LINEAR_NEAREST_MIPLINEAR = Constants.TEXTURE_LINEAR_NEAREST_MIPLINEAR;\n/** mag = linear and min = linear and mip = none */\nEngine.TEXTURE_LINEAR_LINEAR = Constants.TEXTURE_LINEAR_LINEAR;\n/** mag = linear and min = nearest and mip = none */\nEngine.TEXTURE_LINEAR_NEAREST = Constants.TEXTURE_LINEAR_NEAREST;\n/** Explicit coordinates mode */\nEngine.TEXTURE_EXPLICIT_MODE = Constants.TEXTURE_EXPLICIT_MODE;\n/** Spherical coordinates mode */\nEngine.TEXTURE_SPHERICAL_MODE = Constants.TEXTURE_SPHERICAL_MODE;\n/** Planar coordinates mode */\nEngine.TEXTURE_PLANAR_MODE = Constants.TEXTURE_PLANAR_MODE;\n/** Cubic coordinates mode */\nEngine.TEXTURE_CUBIC_MODE = Constants.TEXTURE_CUBIC_MODE;\n/** Projection coordinates mode */\nEngine.TEXTURE_PROJECTION_MODE = Constants.TEXTURE_PROJECTION_MODE;\n/** Skybox coordinates mode */\nEngine.TEXTURE_SKYBOX_MODE = Constants.TEXTURE_SKYBOX_MODE;\n/** Inverse Cubic coordinates mode */\nEngine.TEXTURE_INVCUBIC_MODE = Constants.TEXTURE_INVCUBIC_MODE;\n/** Equirectangular coordinates mode */\nEngine.TEXTURE_EQUIRECTANGULAR_MODE = Constants.TEXTURE_EQUIRECTANGULAR_MODE;\n/** Equirectangular Fixed coordinates mode */\nEngine.TEXTURE_FIXED_EQUIRECTANGULAR_MODE = Constants.TEXTURE_FIXED_EQUIRECTANGULAR_MODE;\n/** Equirectangular Fixed Mirrored coordinates mode */\nEngine.TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE = Constants.TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE;\n// Texture rescaling mode\n/** Defines that texture rescaling will use a floor to find the closer power of 2 size */\nEngine.SCALEMODE_FLOOR = Constants.SCALEMODE_FLOOR;\n/** Defines that texture rescaling will look for the nearest power of 2 size */\nEngine.SCALEMODE_NEAREST = Constants.SCALEMODE_NEAREST;\n/** Defines that texture rescaling will use a ceil to find the closer power of 2 size */\nEngine.SCALEMODE_CEILING = Constants.SCALEMODE_CEILING;\n//# sourceMappingURL=engine.js.map"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{T as e,C as t,I as r,L as _,a as E,G as i,A as s,E as a,P as T,W as n,b as h}from"./index-NKQY07Ai.esm.min.js";import{R as l,P as R,_ as u,a as A,C as o,b as f,E as c,G as d,c as p,d as U,e as g}from"./engine.common-Dn_GE8cx.esm.min.js";import"./audioEngine-DyaETd2M.esm.min.js";function P(e,r,_,E){let i,s=1;E===t.TEXTURETYPE_FLOAT?i=new Float32Array(r*_*4):E===t.TEXTURETYPE_HALF_FLOAT?(i=new Uint16Array(r*_*4),s=15360):i=E===t.TEXTURETYPE_UNSIGNED_INTEGER?new Uint32Array(r*_*4):new Uint8Array(r*_*4);for(let t=0;t<r;t++)for(let E=0;E<_;E++){const _=3*(E*r+t),a=4*(E*r+t);i[a+0]=e[_+0],i[a+1]=e[_+1],i[a+2]=e[_+2],i[a+3]=s}return i}function N(e){return function(_,E,i,s,a,T,n,h,l=null,R=t.TEXTURETYPE_UNSIGNED_INT){const u=e?this._gl.TEXTURE_3D:this._gl.TEXTURE_2D_ARRAY,A=new r(this,e?10:11);A.baseWidth=E,A.baseHeight=i,A.baseDepth=s,A.width=E,A.height=i,A.depth=s,A.format=a,A.type=R,A.generateMipMaps=T,A.samplingMode=h,e?A.is3D=!0:A.is2DArray=!0,this._doNotHandleContextLost||(A._bufferView=_),e?this.updateRawTexture3D(A,_,a,n,l,R):this.updateRawTexture2DArray(A,_,a,n,l,R),this._bindTextureDirectly(u,A,!0);const o=this._getSamplingParameters(h,T);return this._gl.texParameteri(u,this._gl.TEXTURE_MAG_FILTER,o.mag),this._gl.texParameteri(u,this._gl.TEXTURE_MIN_FILTER,o.min),T&&this._gl.generateMipmap(u),this._bindTextureDirectly(u,null),this._internalTexturesCache.push(A),A}}function S(e){return function(r,_,E,i,s=null,a=t.TEXTURETYPE_UNSIGNED_INT){const T=e?this._gl.TEXTURE_3D:this._gl.TEXTURE_2D_ARRAY,n=this._getWebGLTextureType(a),h=this._getInternalFormat(E),l=this._getRGBABufferInternalSizedFormat(a,E);this._bindTextureDirectly(T,r,!0),this._unpackFlipY(void 0===i||!!i),this._doNotHandleContextLost||(r._bufferView=_,r.format=E,r.invertY=i,r._compression=s),r.width%4!=0&&this._gl.pixelStorei(this._gl.UNPACK_ALIGNMENT,1),s&&_?this._gl.compressedTexImage3D(T,0,this.getCaps().s3tc[s],r.width,r.height,r.depth,0,_):this._gl.texImage3D(T,0,l,r.width,r.height,r.depth,0,h,n,_),r.generateMipMaps&&this._gl.generateMipmap(T),this._bindTextureDirectly(T,null),r.isReady=!0}}e.prototype.setAlphaMode=function(e,r=!1){if(this._alphaMode!==e){switch(e){case t.ALPHA_DISABLE:this._alphaState.alphaBlend=!1;break;case t.ALPHA_PREMULTIPLIED:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE,this._gl.ONE_MINUS_SRC_ALPHA,this._gl.ONE,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case t.ALPHA_PREMULTIPLIED_PORTERDUFF:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE,this._gl.ONE_MINUS_SRC_ALPHA,this._gl.ONE,this._gl.ONE_MINUS_SRC_ALPHA),this._alphaState.alphaBlend=!0;break;case t.ALPHA_COMBINE:this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA,this._gl.ONE_MINUS_SRC_ALPHA,this._gl.ONE,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case t.ALPHA_ONEONE:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE,this._gl.ONE,this._gl.ZERO,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case t.ALPHA_ADD:this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA,this._gl.ONE,this._gl.ZERO,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case t.ALPHA_SUBTRACT:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ZERO,this._gl.ONE_MINUS_SRC_COLOR,this._gl.ONE,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case t.ALPHA_MULTIPLY:this._alphaState.setAlphaBlendFunctionParameters(this._gl.DST_COLOR,this._gl.ZERO,this._gl.ONE,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case t.ALPHA_MAXIMIZED:this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA,this._gl.ONE_MINUS_SRC_COLOR,this._gl.ONE,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case t.ALPHA_INTERPOLATE:this._alphaState.setAlphaBlendFunctionParameters(this._gl.CONSTANT_COLOR,this._gl.ONE_MINUS_CONSTANT_COLOR,this._gl.CONSTANT_ALPHA,this._gl.ONE_MINUS_CONSTANT_ALPHA),this._alphaState.alphaBlend=!0;break;case t.ALPHA_SCREENMODE:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE,this._gl.ONE_MINUS_SRC_COLOR,this._gl.ONE,this._gl.ONE_MINUS_SRC_ALPHA),this._alphaState.alphaBlend=!0;break;case t.ALPHA_ONEONE_ONEONE:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE,this._gl.ONE,this._gl.ONE,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case t.ALPHA_ALPHATOCOLOR:this._alphaState.setAlphaBlendFunctionParameters(this._gl.DST_ALPHA,this._gl.ONE,this._gl.ZERO,this._gl.ZERO),this._alphaState.alphaBlend=!0;break;case t.ALPHA_REVERSEONEMINUS:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE_MINUS_DST_COLOR,this._gl.ONE_MINUS_SRC_COLOR,this._gl.ONE_MINUS_DST_ALPHA,this._gl.ONE_MINUS_SRC_ALPHA),this._alphaState.alphaBlend=!0;break;case t.ALPHA_SRC_DSTONEMINUSSRCALPHA:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE,this._gl.ONE_MINUS_SRC_ALPHA,this._gl.ONE,this._gl.ONE_MINUS_SRC_ALPHA),this._alphaState.alphaBlend=!0;break;case t.ALPHA_ONEONE_ONEZERO:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE,this._gl.ONE,this._gl.ONE,this._gl.ZERO),this._alphaState.alphaBlend=!0;break;case t.ALPHA_EXCLUSION:this._alphaState.setAlphaBlendFunctionParameters(this._gl.ONE_MINUS_DST_COLOR,this._gl.ONE_MINUS_SRC_COLOR,this._gl.ZERO,this._gl.ONE),this._alphaState.alphaBlend=!0;break;case t.ALPHA_LAYER_ACCUMULATE:this._alphaState.setAlphaBlendFunctionParameters(this._gl.SRC_ALPHA,this._gl.ONE_MINUS_SRC_ALPHA,this._gl.ONE,this._gl.ONE_MINUS_SRC_ALPHA),this._alphaState.alphaBlend=!0}r||(this.depthCullingState.depthMask=e===t.ALPHA_DISABLE),this._alphaMode=e}else if(!r){const r=e===t.ALPHA_DISABLE;this.depthCullingState.depthMask!==r&&(this.depthCullingState.depthMask=r)}},e.prototype.updateRawTexture=function(e,r,_,E,i=null,s=t.TEXTURETYPE_UNSIGNED_INT,a=!1){if(!e)return;const T=this._getRGBABufferInternalSizedFormat(s,_,a),n=this._getInternalFormat(_),h=this._getWebGLTextureType(s);this._bindTextureDirectly(this._gl.TEXTURE_2D,e,!0),this._unpackFlipY(void 0===E||!!E),this._doNotHandleContextLost||(e._bufferView=r,e.format=_,e.type=s,e.invertY=E,e._compression=i),e.width%4!=0&&this._gl.pixelStorei(this._gl.UNPACK_ALIGNMENT,1),i&&r?this._gl.compressedTexImage2D(this._gl.TEXTURE_2D,0,this.getCaps().s3tc[i],e.width,e.height,0,r):this._gl.texImage2D(this._gl.TEXTURE_2D,0,T,e.width,e.height,0,n,h,r),e.generateMipMaps&&this._gl.generateMipmap(this._gl.TEXTURE_2D),this._bindTextureDirectly(this._gl.TEXTURE_2D,null),e.isReady=!0},e.prototype.createRawTexture=function(e,_,E,i,s,a,T,n=null,h=t.TEXTURETYPE_UNSIGNED_INT,l=0,R=!1){const u=new r(this,3);u.baseWidth=_,u.baseHeight=E,u.width=_,u.height=E,u.format=i,u.generateMipMaps=s,u.samplingMode=T,u.invertY=a,u._compression=n,u.type=h,u._useSRGBBuffer=this._getUseSRGBBuffer(R,!s),this._doNotHandleContextLost||(u._bufferView=e),this.updateRawTexture(u,e,i,a,n,h,u._useSRGBBuffer),this._bindTextureDirectly(this._gl.TEXTURE_2D,u,!0);const A=this._getSamplingParameters(T,s);return this._gl.texParameteri(this._gl.TEXTURE_2D,this._gl.TEXTURE_MAG_FILTER,A.mag),this._gl.texParameteri(this._gl.TEXTURE_2D,this._gl.TEXTURE_MIN_FILTER,A.min),s&&this._gl.generateMipmap(this._gl.TEXTURE_2D),this._bindTextureDirectly(this._gl.TEXTURE_2D,null),this._internalTexturesCache.push(u),u},e.prototype.createRawCubeTexture=function(e,i,s,a,T,n,h,l=null){const R=this._gl,u=new r(this,8);u.isCube=!0,u.format=s,u.type=a,this._doNotHandleContextLost||(u._bufferViewArray=e);const A=this._getWebGLTextureType(a);let o=this._getInternalFormat(s);o===R.RGB&&(o=R.RGBA),A!==R.FLOAT||this._caps.textureFloatLinearFiltering?A!==this._gl.HALF_FLOAT_OES||this._caps.textureHalfFloatLinearFiltering?A!==R.FLOAT||this._caps.textureFloatRender?A!==R.HALF_FLOAT||this._caps.colorBufferFloat||(T=!1,_.Warn("Render to half float textures is not supported. Mipmap generation forced to false.")):(T=!1,_.Warn("Render to float textures is not supported. Mipmap generation forced to false.")):(T=!1,h=t.TEXTURE_NEAREST_SAMPLINGMODE,_.Warn("Half float texture filtering is not supported. Mipmap generation and sampling mode are forced to false and TEXTURE_NEAREST_SAMPLINGMODE, respectively.")):(T=!1,h=t.TEXTURE_NEAREST_SAMPLINGMODE,_.Warn("Float texture filtering is not supported. Mipmap generation and sampling mode are forced to false and TEXTURE_NEAREST_SAMPLINGMODE, respectively."));const f=i,c=f;u.width=f,u.height=c,u.invertY=n,u._compression=l;if(!this.needPOTTextures||E(u.width)&&E(u.height)||(T=!1),e)this.updateRawCubeTexture(u,e,s,a,n,l);else{const e=this._getRGBABufferInternalSizedFormat(a),t=0;this._bindTextureDirectly(R.TEXTURE_CUBE_MAP,u,!0);for(let r=0;r<6;r++)l?R.compressedTexImage2D(R.TEXTURE_CUBE_MAP_POSITIVE_X+r,t,this.getCaps().s3tc[l],u.width,u.height,0,void 0):R.texImage2D(R.TEXTURE_CUBE_MAP_POSITIVE_X+r,t,e,u.width,u.height,0,o,A,null);this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,null)}this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,u,!0),e&&T&&this._gl.generateMipmap(this._gl.TEXTURE_CUBE_MAP);const d=this._getSamplingParameters(h,T);return R.texParameteri(R.TEXTURE_CUBE_MAP,R.TEXTURE_MAG_FILTER,d.mag),R.texParameteri(R.TEXTURE_CUBE_MAP,R.TEXTURE_MIN_FILTER,d.min),R.texParameteri(R.TEXTURE_CUBE_MAP,R.TEXTURE_WRAP_S,R.CLAMP_TO_EDGE),R.texParameteri(R.TEXTURE_CUBE_MAP,R.TEXTURE_WRAP_T,R.CLAMP_TO_EDGE),this._bindTextureDirectly(R.TEXTURE_CUBE_MAP,null),u.generateMipMaps=T,u.samplingMode=h,u.isReady=!0,u},e.prototype.updateRawCubeTexture=function(e,t,r,_,i,s=null,a=0){e._bufferViewArray=t,e.format=r,e.type=_,e.invertY=i,e._compression=s;const T=this._gl,n=this._getWebGLTextureType(_);let h=this._getInternalFormat(r);const l=this._getRGBABufferInternalSizedFormat(_);let R=!1;h===T.RGB&&(h=T.RGBA,R=!0),this._bindTextureDirectly(T.TEXTURE_CUBE_MAP,e,!0),this._unpackFlipY(void 0===i||!!i),e.width%4!=0&&T.pixelStorei(T.UNPACK_ALIGNMENT,1);for(let r=0;r<6;r++){let E=t[r];s?T.compressedTexImage2D(T.TEXTURE_CUBE_MAP_POSITIVE_X+r,a,this.getCaps().s3tc[s],e.width,e.height,0,E):(R&&(E=P(E,e.width,e.height,_)),T.texImage2D(T.TEXTURE_CUBE_MAP_POSITIVE_X+r,a,l,e.width,e.height,0,h,n,E))}(!this.needPOTTextures||E(e.width)&&E(e.height))&&e.generateMipMaps&&0===a&&this._gl.generateMipmap(this._gl.TEXTURE_CUBE_MAP),this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,null),e.isReady=!0},e.prototype.createRawCubeTextureFromUrl=function(e,r,_,E,i,s,a,T,n=null,h=null,l=t.TEXTURE_TRILINEAR_SAMPLINGMODE,R=!1){const u=this._gl,A=this.createRawCubeTexture(null,_,E,i,!s,R,l,null);r?.addPendingData(A),A.url=e,A.isReady=!1,this._internalTexturesCache.push(A);const o=e=>{const t=A.width,_=a(e);if(_){if(T){const e=this._getWebGLTextureType(i);let r=this._getInternalFormat(E);const s=this._getRGBABufferInternalSizedFormat(i);let a=!1;r===u.RGB&&(r=u.RGBA,a=!0),this._bindTextureDirectly(u.TEXTURE_CUBE_MAP,A,!0),this._unpackFlipY(!1);const n=T(_);for(let _=0;_<n.length;_++){const E=t>>_;for(let t=0;t<6;t++){let T=n[_][t];a&&(T=P(T,E,E,i)),u.texImage2D(t,_,s,E,E,0,r,e,T)}}this._bindTextureDirectly(u.TEXTURE_CUBE_MAP,null)}else this.updateRawCubeTexture(A,_,E,i,R);A.isReady=!0,r?.removePendingData(A),A.onLoadedObservable.notifyObservers(A),A.onLoadedObservable.clear(),n&&n()}};return this._loadFile(e,(e=>{o(e)}),void 0,r?.offlineProvider,!0,((e,t)=>{r?.removePendingData(A),h&&e&&h(e.status+" "+e.statusText,t)})),A},e.prototype.createRawTexture2DArray=N(!1),e.prototype.createRawTexture3D=N(!0),e.prototype.updateRawTexture2DArray=S(!1),e.prototype.updateRawTexture3D=S(!0),e.prototype.updateDynamicIndexBuffer=function(e,t,r=0){let _;this._currentBoundBuffer[this._gl.ELEMENT_ARRAY_BUFFER]=null,this.bindIndexBuffer(e),_=e.is32Bits?t instanceof Uint32Array?t:new Uint32Array(t):t instanceof Uint16Array?t:new Uint16Array(t),this._gl.bufferData(this._gl.ELEMENT_ARRAY_BUFFER,_,this._gl.DYNAMIC_DRAW),this._resetIndexBufferBinding()},e.prototype.updateDynamicVertexBuffer=function(e,t,r,_){this.bindArrayBuffer(e),void 0===r&&(r=0);const E=t.byteLength||t.length;void 0===_||_>=E&&0===r?t instanceof Array?this._gl.bufferSubData(this._gl.ARRAY_BUFFER,r,new Float32Array(t)):this._gl.bufferSubData(this._gl.ARRAY_BUFFER,r,t):t instanceof Array?this._gl.bufferSubData(this._gl.ARRAY_BUFFER,0,new Float32Array(t).subarray(r,r+_)):(t=t instanceof ArrayBuffer?new Uint8Array(t,r,_):new Uint8Array(t.buffer,t.byteOffset+r,_),this._gl.bufferSubData(this._gl.ARRAY_BUFFER,0,t)),this._resetVertexBufferBinding()},e.prototype._createDepthStencilCubeTexture=function(e,t){const E=new r(this,12);if(E.isCube=!0,1===this.webGLVersion)return _.Error("Depth cube texture is not supported by WebGL 1."),E;const i={bilinearFiltering:!1,comparisonFunction:0,generateStencil:!1,...t},s=this._gl;this._bindTextureDirectly(s.TEXTURE_CUBE_MAP,E,!0),this._setupDepthStencilTexture(E,e,i.bilinearFiltering,i.comparisonFunction);for(let t=0;t<6;t++)i.generateStencil?s.texImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+t,0,s.DEPTH24_STENCIL8,e,e,0,s.DEPTH_STENCIL,s.UNSIGNED_INT_24_8,null):s.texImage2D(s.TEXTURE_CUBE_MAP_POSITIVE_X+t,0,s.DEPTH_COMPONENT24,e,e,0,s.DEPTH_COMPONENT,s.UNSIGNED_INT,null);return this._bindTextureDirectly(s.TEXTURE_CUBE_MAP,null),this._internalTexturesCache.push(E),E},e.prototype._setCubeMapTextureParams=function(e,r,_){const E=this._gl;E.texParameteri(E.TEXTURE_CUBE_MAP,E.TEXTURE_MAG_FILTER,E.LINEAR),E.texParameteri(E.TEXTURE_CUBE_MAP,E.TEXTURE_MIN_FILTER,r?E.LINEAR_MIPMAP_LINEAR:E.LINEAR),E.texParameteri(E.TEXTURE_CUBE_MAP,E.TEXTURE_WRAP_S,E.CLAMP_TO_EDGE),E.texParameteri(E.TEXTURE_CUBE_MAP,E.TEXTURE_WRAP_T,E.CLAMP_TO_EDGE),e.samplingMode=r?t.TEXTURE_TRILINEAR_SAMPLINGMODE:t.TEXTURE_LINEAR_LINEAR,r&&this.getCaps().textureMaxLevel&&void 0!==_&&_>0&&(E.texParameteri(E.TEXTURE_CUBE_MAP,E.TEXTURE_MAX_LEVEL,_),e._maxLodLevel=_),this._bindTextureDirectly(E.TEXTURE_CUBE_MAP,null)},e.prototype.createCubeTexture=function(e,t,r,E,s=null,a=null,T,n=null,h=!1,l=0,R=0,u=null,A,o=!1,f=null){const c=this._gl;return this.createCubeTextureBase(e,t,r,!!E,s,a,T,n,h,l,R,u,(e=>this._bindTextureDirectly(c.TEXTURE_CUBE_MAP,e,!0)),((e,t)=>{const r=this.needPOTTextures?i(t[0].width,this._caps.maxCubemapTextureSize):t[0].width,a=r,n=[c.TEXTURE_CUBE_MAP_POSITIVE_X,c.TEXTURE_CUBE_MAP_POSITIVE_Y,c.TEXTURE_CUBE_MAP_POSITIVE_Z,c.TEXTURE_CUBE_MAP_NEGATIVE_X,c.TEXTURE_CUBE_MAP_NEGATIVE_Y,c.TEXTURE_CUBE_MAP_NEGATIVE_Z];this._bindTextureDirectly(c.TEXTURE_CUBE_MAP,e,!0),this._unpackFlipY(!1);const h=T?this._getInternalFormat(T,e._useSRGBBuffer):e._useSRGBBuffer?this._glSRGBExtensionValues.SRGB8_ALPHA8:c.RGBA;let l=T?this._getInternalFormat(T):c.RGBA;e._useSRGBBuffer&&1===this.webGLVersion&&(l=h);for(let e=0;e<n.length;e++)if(t[e].width!==r||t[e].height!==a){if(this._prepareWorkingCanvas(),!this._workingCanvas||!this._workingContext)return void _.Warn("Cannot create canvas to resize texture.");this._workingCanvas.width=r,this._workingCanvas.height=a,this._workingContext.drawImage(t[e],0,0,t[e].width,t[e].height,0,0,r,a),c.texImage2D(n[e],0,h,l,c.UNSIGNED_BYTE,this._workingCanvas)}else c.texImage2D(n[e],0,h,l,c.UNSIGNED_BYTE,t[e]);E||c.generateMipmap(c.TEXTURE_CUBE_MAP),this._setCubeMapTextureParams(e,!E),e.width=r,e.height=a,e.isReady=!0,T&&(e.format=T),e.onLoadedObservable.notifyObservers(e),e.onLoadedObservable.clear(),s&&s()}),!!o,f)},e.prototype.generateMipMapsForCubemap=function(e,t=!0){if(e.generateMipMaps){const r=this._gl;this._bindTextureDirectly(r.TEXTURE_CUBE_MAP,e,!0),r.generateMipmap(r.TEXTURE_CUBE_MAP),t&&this._bindTextureDirectly(r.TEXTURE_CUBE_MAP,null)}};class I extends l{constructor(e,t,r,_,E){super(e,t,r,_),this._framebuffer=null,this._depthStencilBuffer=null,this._MSAAFramebuffer=null,this._colorTextureArray=null,this._depthStencilTextureArray=null,this._disposeOnlyFramebuffers=!1,this._currentLOD=0,this._context=E}_cloneRenderTargetWrapper(){let e=null;return this._colorTextureArray&&this._depthStencilTextureArray?(e=this._engine.createMultiviewRenderTargetTexture(this.width,this.height),e.texture.isReady=!0):e=super._cloneRenderTargetWrapper(),e}_swapRenderTargetWrapper(e){super._swapRenderTargetWrapper(e),e._framebuffer=this._framebuffer,e._depthStencilBuffer=this._depthStencilBuffer,e._MSAAFramebuffer=this._MSAAFramebuffer,e._colorTextureArray=this._colorTextureArray,e._depthStencilTextureArray=this._depthStencilTextureArray,this._framebuffer=this._depthStencilBuffer=this._MSAAFramebuffer=this._colorTextureArray=this._depthStencilTextureArray=null}createDepthStencilTexture(e=0,r=!0,_=!1,E=1,i=t.TEXTUREFORMAT_DEPTH32_FLOAT,s){if(this._depthStencilBuffer){const e=this._engine,t=e._currentFramebuffer,r=this._context;e._bindUnboundFramebuffer(this._framebuffer),r.framebufferRenderbuffer(r.FRAMEBUFFER,r.DEPTH_STENCIL_ATTACHMENT,r.RENDERBUFFER,null),r.framebufferRenderbuffer(r.FRAMEBUFFER,r.DEPTH_ATTACHMENT,r.RENDERBUFFER,null),r.framebufferRenderbuffer(r.FRAMEBUFFER,r.STENCIL_ATTACHMENT,r.RENDERBUFFER,null),e._bindUnboundFramebuffer(t),r.deleteRenderbuffer(this._depthStencilBuffer),this._depthStencilBuffer=null}return super.createDepthStencilTexture(e,r,_,E,i,s)}shareDepth(e){super.shareDepth(e);const t=this._context,r=this._depthStencilBuffer,_=e._MSAAFramebuffer||e._framebuffer,E=this._engine;e._depthStencilBuffer&&e._depthStencilBuffer!==r&&t.deleteRenderbuffer(e._depthStencilBuffer),e._depthStencilBuffer=r;const i=e._generateStencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT;E._bindUnboundFramebuffer(_),t.framebufferRenderbuffer(t.FRAMEBUFFER,i,t.RENDERBUFFER,r),E._bindUnboundFramebuffer(null)}_bindTextureRenderTarget(e,t=0,r,_=0){if(!e._hardwareTexture)return;const E=this._framebuffer,i=this._engine,s=i._currentFramebuffer;if(i._bindUnboundFramebuffer(E),i.webGLVersion>1){const E=this._context,i=E["COLOR_ATTACHMENT"+t];e.is2DArray||e.is3D?(r=r??this.layerIndices?.[t]??0,E.framebufferTextureLayer(E.FRAMEBUFFER,i,e._hardwareTexture.underlyingResource,_,r)):e.isCube?(r=r??this.faceIndices?.[t]??0,E.framebufferTexture2D(E.FRAMEBUFFER,i,E.TEXTURE_CUBE_MAP_POSITIVE_X+r,e._hardwareTexture.underlyingResource,_)):E.framebufferTexture2D(E.FRAMEBUFFER,i,E.TEXTURE_2D,e._hardwareTexture.underlyingResource,_)}else{const E=this._context,i=E["COLOR_ATTACHMENT"+t+"_WEBGL"],s=void 0!==r?E.TEXTURE_CUBE_MAP_POSITIVE_X+r:E.TEXTURE_2D;E.framebufferTexture2D(E.FRAMEBUFFER,i,s,e._hardwareTexture.underlyingResource,_)}i._bindUnboundFramebuffer(s)}setTexture(e,t=0,r=!0){super.setTexture(e,t,r),this._bindTextureRenderTarget(e,t)}setLayerAndFaceIndices(e,t){if(super.setLayerAndFaceIndices(e,t),!this.textures||!this.layerIndices||!this.faceIndices)return;const r=this._attachments?.length??this.textures.length;for(let e=0;e<r;e++){const t=this.textures[e];t&&(t.is2DArray||t.is3D?this._bindTextureRenderTarget(t,e,this.layerIndices[e]):t.isCube?this._bindTextureRenderTarget(t,e,this.faceIndices[e]):this._bindTextureRenderTarget(t,e))}}setLayerAndFaceIndex(e=0,t,r){if(super.setLayerAndFaceIndex(e,t,r),!this.textures||!this.layerIndices||!this.faceIndices)return;const _=this.textures[e];_.is2DArray||_.is3D?this._bindTextureRenderTarget(this.textures[e],e,this.layerIndices[e]):_.isCube&&this._bindTextureRenderTarget(this.textures[e],e,this.faceIndices[e])}dispose(e=this._disposeOnlyFramebuffers){const t=this._context;e||(this._colorTextureArray&&(this._context.deleteTexture(this._colorTextureArray),this._colorTextureArray=null),this._depthStencilTextureArray&&(this._context.deleteTexture(this._depthStencilTextureArray),this._depthStencilTextureArray=null)),this._framebuffer&&(t.deleteFramebuffer(this._framebuffer),this._framebuffer=null),this._depthStencilBuffer&&(t.deleteRenderbuffer(this._depthStencilBuffer),this._depthStencilBuffer=null),this._MSAAFramebuffer&&(t.deleteFramebuffer(this._MSAAFramebuffer),this._MSAAFramebuffer=null),super.dispose(e)}}e.prototype._createHardwareRenderTargetWrapper=function(e,t,r){const _=new I(e,t,r,this,this._gl);return this._renderTargetWrapperCache.push(_),_},e.prototype.createRenderTargetTexture=function(e,t){const r=this._createHardwareRenderTargetWrapper(!1,!1,e);let _,E,i=!0,s=!1,a=!1,T=1;void 0!==t&&"object"==typeof t&&(i=t.generateDepthBuffer??!0,s=!!t.generateStencilBuffer,a=!!t.noColorAttachment,_=t.colorAttachment,T=t.samples??1,E=t.label);const n=_||(a?null:this._createInternalTexture(e,t,!0,5)),h=e.width||e,l=e.height||e,R=this._currentFramebuffer,u=this._gl,A=u.createFramebuffer();return this._bindUnboundFramebuffer(A),r._depthStencilBuffer=this._setupFramebufferDepthAttachments(s,i,h,l),!n||n.is2DArray||n.is3D||u.framebufferTexture2D(u.FRAMEBUFFER,u.COLOR_ATTACHMENT0,u.TEXTURE_2D,n._hardwareTexture.underlyingResource,0),this._bindUnboundFramebuffer(R),r.label=E??"RenderTargetWrapper",r._framebuffer=A,r._generateDepthBuffer=i,r._generateStencilBuffer=s,r.setTextures(n),this.updateRenderTargetTextureSampleCount(r,T),r},e.prototype._createDepthStencilTexture=function(e,E,i){const s=this._gl,a=e.layers||0,T=e.depth||0;let n=s.TEXTURE_2D;0!==a?n=s.TEXTURE_2D_ARRAY:0!==T&&(n=s.TEXTURE_3D);const h=new r(this,12);if(h.label=E.label,!this._caps.depthTextureExtension)return _.Error("Depth texture is not supported by your browser or hardware."),h;const l={bilinearFiltering:!1,comparisonFunction:0,generateStencil:!1,...E};if(this._bindTextureDirectly(n,h,!0),this._setupDepthStencilTexture(h,e,0!==l.comparisonFunction&&l.bilinearFiltering,l.comparisonFunction,l.samples),void 0!==l.depthTextureFormat){if(l.depthTextureFormat!==t.TEXTUREFORMAT_DEPTH16&&l.depthTextureFormat!==t.TEXTUREFORMAT_DEPTH24&&l.depthTextureFormat!==t.TEXTUREFORMAT_DEPTH24UNORM_STENCIL8&&l.depthTextureFormat!==t.TEXTUREFORMAT_DEPTH24_STENCIL8&&l.depthTextureFormat!==t.TEXTUREFORMAT_DEPTH32_FLOAT&&l.depthTextureFormat!==t.TEXTUREFORMAT_DEPTH32FLOAT_STENCIL8)return _.Error(`Depth texture ${l.depthTextureFormat} format is not supported.`),h;h.format=l.depthTextureFormat}else h.format=l.generateStencil?t.TEXTUREFORMAT_DEPTH24_STENCIL8:t.TEXTUREFORMAT_DEPTH24;const R=h.format===t.TEXTUREFORMAT_DEPTH24UNORM_STENCIL8||h.format===t.TEXTUREFORMAT_DEPTH24_STENCIL8||h.format===t.TEXTUREFORMAT_DEPTH32FLOAT_STENCIL8;let u=s.UNSIGNED_INT;h.format===t.TEXTUREFORMAT_DEPTH16?u=s.UNSIGNED_SHORT:h.format===t.TEXTUREFORMAT_DEPTH24UNORM_STENCIL8||h.format===t.TEXTUREFORMAT_DEPTH24_STENCIL8?u=s.UNSIGNED_INT_24_8:h.format===t.TEXTUREFORMAT_DEPTH32_FLOAT?u=s.FLOAT:h.format===t.TEXTUREFORMAT_DEPTH32FLOAT_STENCIL8&&(u=s.FLOAT_32_UNSIGNED_INT_24_8_REV);const A=R?s.DEPTH_STENCIL:s.DEPTH_COMPONENT,o=this._getInternalFormatFromDepthTextureFormat(h.format,!0,R);return h.is2DArray?s.texImage3D(n,0,o,h.width,h.height,a,0,A,u,null):h.is3D?s.texImage3D(n,0,o,h.width,h.height,T,0,A,u,null):s.texImage2D(n,0,o,h.width,h.height,0,A,u,null),this._bindTextureDirectly(n,null),this._internalTexturesCache.push(h),i._depthStencilBuffer&&(s.deleteRenderbuffer(i._depthStencilBuffer),i._depthStencilBuffer=null),this._bindUnboundFramebuffer(i._MSAAFramebuffer??i._framebuffer),i._generateStencilBuffer=R,i._depthStencilTextureWithStencil=R,i._depthStencilBuffer=this._setupFramebufferDepthAttachments(i._generateStencilBuffer,i._generateDepthBuffer,i.width,i.height,i.samples,h.format),this._bindUnboundFramebuffer(null),h},e.prototype.updateRenderTargetTextureSampleCount=function(e,t){if(this.webGLVersion<2||!e)return 1;if(e.samples===t)return t;const r=this._gl;t=Math.min(t,this.getCaps().maxMSAASamples),e._depthStencilBuffer&&(r.deleteRenderbuffer(e._depthStencilBuffer),e._depthStencilBuffer=null),e._MSAAFramebuffer&&(r.deleteFramebuffer(e._MSAAFramebuffer),e._MSAAFramebuffer=null);const _=e.texture?._hardwareTexture;_?.releaseMSAARenderBuffers();const E=r.createFramebuffer();if(!E)throw new Error("Unable to create multi sampled framebuffer");if(e._MSAAFramebuffer=E,e.texture&&t>1&&"function"==typeof r.renderbufferStorageMultisample){this._bindUnboundFramebuffer(e._MSAAFramebuffer);const E=this._createRenderBuffer(e.texture.width,e.texture.height,t,-1,this._getRGBABufferInternalSizedFormat(e.texture.type,e.texture.format,e.texture._useSRGBBuffer),r.COLOR_ATTACHMENT0,!1);if(!E)throw new Error("Unable to create multi sampled framebuffer");_?.addMSAARenderBuffer(E)}this._bindUnboundFramebuffer(e._MSAAFramebuffer??e._framebuffer),e.texture&&(e.texture.samples=t),e._samples=t;const i=e._depthStencilTexture?e._depthStencilTexture.format:void 0;return e._depthStencilBuffer=this._setupFramebufferDepthAttachments(e._generateStencilBuffer,e._generateDepthBuffer,e.width,e.height,t,i),this._bindUnboundFramebuffer(null),t},e.prototype._setupDepthStencilTexture=function(e,r,_,E,i=1){const s=r.width||r,a=r.height||r,T=r.layers||0,n=r.depth||0;e.baseWidth=s,e.baseHeight=a,e.width=s,e.height=a,e.is2DArray=T>0,e.depth=T||n,e.isReady=!0,e.samples=i,e.generateMipMaps=!1,e.samplingMode=_?t.TEXTURE_BILINEAR_SAMPLINGMODE:t.TEXTURE_NEAREST_SAMPLINGMODE,e.type=t.TEXTURETYPE_UNSIGNED_INT,e._comparisonFunction=E;const h=this._gl,l=this._getTextureTarget(e),R=this._getSamplingParameters(e.samplingMode,!1);h.texParameteri(l,h.TEXTURE_MAG_FILTER,R.mag),h.texParameteri(l,h.TEXTURE_MIN_FILTER,R.min),h.texParameteri(l,h.TEXTURE_WRAP_S,h.CLAMP_TO_EDGE),h.texParameteri(l,h.TEXTURE_WRAP_T,h.CLAMP_TO_EDGE),this.webGLVersion>1&&(0===E?(h.texParameteri(l,h.TEXTURE_COMPARE_FUNC,t.LEQUAL),h.texParameteri(l,h.TEXTURE_COMPARE_MODE,h.NONE)):(h.texParameteri(l,h.TEXTURE_COMPARE_FUNC,E),h.texParameteri(l,h.TEXTURE_COMPARE_MODE,h.COMPARE_REF_TO_TEXTURE)))},e.prototype.setDepthStencilTexture=function(e,t,r,_){void 0!==e&&(t&&(this._boundUniforms[e]=t),r&&r.depthStencilTexture?this._setTexture(e,r,!1,!0,_):this._setTexture(e,null,void 0,void 0,_))},e.prototype.createRenderTargetCubeTexture=function(e,E){const i=this._createHardwareRenderTargetWrapper(!1,!0,e),s={generateMipMaps:!0,generateDepthBuffer:!0,generateStencilBuffer:!1,type:t.TEXTURETYPE_UNSIGNED_INT,samplingMode:t.TEXTURE_TRILINEAR_SAMPLINGMODE,format:t.TEXTUREFORMAT_RGBA,...E};s.generateStencilBuffer=s.generateDepthBuffer&&s.generateStencilBuffer,(s.type!==t.TEXTURETYPE_FLOAT||this._caps.textureFloatLinearFiltering)&&(s.type!==t.TEXTURETYPE_HALF_FLOAT||this._caps.textureHalfFloatLinearFiltering)||(s.samplingMode=t.TEXTURE_NEAREST_SAMPLINGMODE);const a=this._gl,T=new r(this,5);this._bindTextureDirectly(a.TEXTURE_CUBE_MAP,T,!0);const n=this._getSamplingParameters(s.samplingMode,s.generateMipMaps);s.type!==t.TEXTURETYPE_FLOAT||this._caps.textureFloat||(s.type=t.TEXTURETYPE_UNSIGNED_INT,_.Warn("Float textures are not supported. Cube render target forced to TEXTURETYPE_UNESIGNED_BYTE type")),a.texParameteri(a.TEXTURE_CUBE_MAP,a.TEXTURE_MAG_FILTER,n.mag),a.texParameteri(a.TEXTURE_CUBE_MAP,a.TEXTURE_MIN_FILTER,n.min),a.texParameteri(a.TEXTURE_CUBE_MAP,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_CUBE_MAP,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE);for(let t=0;t<6;t++)a.texImage2D(a.TEXTURE_CUBE_MAP_POSITIVE_X+t,0,this._getRGBABufferInternalSizedFormat(s.type,s.format),e,e,0,this._getInternalFormat(s.format),this._getWebGLTextureType(s.type),null);const h=a.createFramebuffer();return this._bindUnboundFramebuffer(h),i._depthStencilBuffer=this._setupFramebufferDepthAttachments(s.generateStencilBuffer,s.generateDepthBuffer,e,e),s.generateMipMaps&&a.generateMipmap(a.TEXTURE_CUBE_MAP),this._bindTextureDirectly(a.TEXTURE_CUBE_MAP,null),this._bindUnboundFramebuffer(null),i._framebuffer=h,i._generateDepthBuffer=s.generateDepthBuffer,i._generateStencilBuffer=s.generateStencilBuffer,T.width=e,T.height=e,T.isReady=!0,T.isCube=!0,T.samples=1,T.generateMipMaps=s.generateMipMaps,T.samplingMode=s.samplingMode,T.type=s.type,T.format=s.format,this._internalTexturesCache.push(T),i.setTextures(T),i};class m extends e{static get NpmPackage(){return s.NpmPackage}static get Version(){return s.Version}static get Instances(){return a.Instances}static get LastCreatedEngine(){return a.LastCreatedEngine}static get LastCreatedScene(){return a.LastCreatedScene}static DefaultLoadingScreenFactory(e){return s.DefaultLoadingScreenFactory(e)}get _supportsHardwareTextureRescaling(){return!!m._RescalePostProcessFactory}_measureFps(){this._performanceMonitor.sampleFrame(),this._fps=this._performanceMonitor.averageFPS,this._deltaTime=this._performanceMonitor.instantaneousFrameTime||0}get performanceMonitor(){return this._performanceMonitor}constructor(e,t,r,_=!1){if(super(e,t,r,_),this.customAnimationFrameRequester=null,this._performanceMonitor=new R,this._drawCalls=new T,e&&(this._features.supportRenderPasses=!0,r=this._creationOptions,e.getContext)){const t=e;this._sharedInit(t)}}_initGLContext(){super._initGLContext(),this._rescalePostProcess=null}_sharedInit(e){super._sharedInit(e),u(this,e,this._creationOptions)}resizeImageBitmap(e,t,r){return A(this,e,t,r)}_createImageBitmapFromSource(e,t){return o(this,e,t)}switchFullscreen(e){this.isFullscreen?this.exitFullscreen():this.enterFullscreen(e)}enterFullscreen(e){this.isFullscreen||(this._pointerLockRequested=e,this._renderingCanvas&&f(this._renderingCanvas))}exitFullscreen(){this.isFullscreen&&c()}setDitheringState(e){e?this._gl.enable(this._gl.DITHER):this._gl.disable(this._gl.DITHER)}setRasterizerState(e){e?this._gl.disable(this._gl.RASTERIZER_DISCARD):this._gl.enable(this._gl.RASTERIZER_DISCARD)}setDirectViewport(e,t,r,_){const E=this._cachedViewport;return this._cachedViewport=null,this._viewport(e,t,r,_),E}scissorClear(e,t,r,_,E){this.enableScissor(e,t,r,_),this.clear(E,!0,!0,!0),this.disableScissor()}enableScissor(e,t,r,_){const E=this._gl;E.enable(E.SCISSOR_TEST),E.scissor(e,t,r,_)}disableScissor(){const e=this._gl;e.disable(e.SCISSOR_TEST)}_loadFileAsync(e,t,r){return new Promise(((_,E)=>{this._loadFile(e,(e=>{_(e)}),void 0,t,r,((e,t)=>{E(t)}))}))}getVertexShaderSource(e){const t=this._gl.getAttachedShaders(e);return t?this._gl.getShaderSource(t[0]):null}getFragmentShaderSource(e){const t=this._gl.getAttachedShaders(e);return t?this._gl.getShaderSource(t[1]):null}set framebufferDimensionsObject(e){this._framebufferDimensionsObject=e,this._framebufferDimensionsObject&&this.onResizeObservable.notifyObservers(this)}_rebuildBuffers(){for(const e of this.scenes)e.resetCachedMaterial(),e._rebuildGeometries();for(const e of this._virtualScenes)e.resetCachedMaterial(),e._rebuildGeometries();super._rebuildBuffers()}getFontOffset(e){return d(e)}_cancelFrame(){if(this.customAnimationFrameRequester){if(0!==this._frameHandler){this._frameHandler=0;const{cancelAnimationFrame:e}=this.customAnimationFrameRequester;e&&e(this.customAnimationFrameRequester.requestID)}}else super._cancelFrame()}_renderLoop(){if(this._frameHandler=0,!this._contextWasLost){let e=!0;(this.isDisposed||!this.renderEvenInBackground&&this._windowIsBackground)&&(e=!1),e&&(this.beginFrame(),this._renderViews()||this._renderFrame(),this.endFrame())}this._activeRenderLoops.length>0&&0===this._frameHandler&&(this.customAnimationFrameRequester?(this.customAnimationFrameRequester.requestID=this._queueNewFrame(this.customAnimationFrameRequester.renderFunction||this._boundRenderFunction,this.customAnimationFrameRequester),this._frameHandler=this.customAnimationFrameRequester.requestID):this._frameHandler=this._queueNewFrame(this._boundRenderFunction,this.getHostWindow()))}enterPointerlock(){this._renderingCanvas&&p(this._renderingCanvas)}exitPointerlock(){U()}beginFrame(){this._measureFps(),super.beginFrame()}_deletePipelineContext(e){const t=e;t&&t.program&&t.transformFeedback&&(this.deleteTransformFeedback(t.transformFeedback),t.transformFeedback=null),super._deletePipelineContext(e)}createShaderProgram(e,t,r,_,E,i=null){E=E||this._gl,this.onBeforeShaderCompilationObservable.notifyObservers(this);const s=super.createShaderProgram(e,t,r,_,E,i);return this.onAfterShaderCompilationObservable.notifyObservers(this),s}_createShaderProgram(e,t,r,_,E=null){const i=_.createProgram();if(e.program=i,!i)throw new Error("Unable to create program");if(_.attachShader(i,t),_.attachShader(i,r),this.webGLVersion>1&&E){const t=this.createTransformFeedback();this.bindTransformFeedback(t),this.setTranformFeedbackVaryings(i,E),e.transformFeedback=t}return _.linkProgram(i),this.webGLVersion>1&&E&&this.bindTransformFeedback(null),e.context=_,e.vertexShader=t,e.fragmentShader=r,e.isParallelCompiled||this._finalizePipelineContext(e),i}_releaseTexture(e){super._releaseTexture(e)}_releaseRenderTargetWrapper(e){super._releaseRenderTargetWrapper(e),this.scenes.forEach((t=>{t.postProcesses.forEach((t=>{t._outputTexture===e&&(t._outputTexture=null)})),t.cameras.forEach((t=>{t._postProcesses.forEach((t=>{t&&t._outputTexture===e&&(t._outputTexture=null)}))}))}))}_rescaleTexture(e,r,_,E,i){this._gl.texParameteri(this._gl.TEXTURE_2D,this._gl.TEXTURE_MAG_FILTER,this._gl.LINEAR),this._gl.texParameteri(this._gl.TEXTURE_2D,this._gl.TEXTURE_MIN_FILTER,this._gl.LINEAR),this._gl.texParameteri(this._gl.TEXTURE_2D,this._gl.TEXTURE_WRAP_S,this._gl.CLAMP_TO_EDGE),this._gl.texParameteri(this._gl.TEXTURE_2D,this._gl.TEXTURE_WRAP_T,this._gl.CLAMP_TO_EDGE);const s=this.createRenderTargetTexture({width:r.width,height:r.height},{generateMipMaps:!1,type:t.TEXTURETYPE_UNSIGNED_INT,samplingMode:t.TEXTURE_BILINEAR_SAMPLINGMODE,generateDepthBuffer:!1,generateStencilBuffer:!1});if(!this._rescalePostProcess&&m._RescalePostProcessFactory&&(this._rescalePostProcess=m._RescalePostProcessFactory(this)),this._rescalePostProcess){this._rescalePostProcess.externalTextureSamplerBinding=!0;const t=()=>{this._rescalePostProcess.onApply=function(t){t._bindTexture("textureSampler",e)};let t=_;t||(t=this.scenes[this.scenes.length-1]),t.postProcessManager.directRender([this._rescalePostProcess],s,!0),this._bindTextureDirectly(this._gl.TEXTURE_2D,r,!0),this._gl.copyTexImage2D(this._gl.TEXTURE_2D,0,E,0,0,r.width,r.height,0),this.unBindFramebuffer(s),s.dispose(),i&&i()},a=this._rescalePostProcess.getEffect();a?a.executeWhenCompiled(t):this._rescalePostProcess.onEffectCreatedObservable.addOnce((e=>{e.executeWhenCompiled(t)}))}}wrapWebGLTexture(e,_=!1,E=t.TEXTURE_TRILINEAR_SAMPLINGMODE,i=0,s=0){const a=new n(e,this._gl),T=new r(this,0,!0);return T._hardwareTexture=a,T.baseWidth=i,T.baseHeight=s,T.width=i,T.height=s,T.isReady=!0,T.useMipMaps=_,this.updateTextureSamplingMode(E,T),T}_uploadImageToTexture(e,t,r=0,_=0){const E=this._gl,i=this._getWebGLTextureType(e.type),s=this._getInternalFormat(e.format),a=this._getRGBABufferInternalSizedFormat(e.type,s),T=e.isCube?E.TEXTURE_CUBE_MAP:E.TEXTURE_2D;this._bindTextureDirectly(T,e,!0),this._unpackFlipY(e.invertY);let n=E.TEXTURE_2D;e.isCube&&(n=E.TEXTURE_CUBE_MAP_POSITIVE_X+r),E.texImage2D(n,_,a,s,i,t),this._bindTextureDirectly(T,null,!0)}updateTextureComparisonFunction(e,r){if(1===this.webGLVersion)return void _.Error("WebGL 1 does not support texture comparison.");const E=this._gl;e.isCube?(this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,e,!0),0===r?(E.texParameteri(E.TEXTURE_CUBE_MAP,E.TEXTURE_COMPARE_FUNC,t.LEQUAL),E.texParameteri(E.TEXTURE_CUBE_MAP,E.TEXTURE_COMPARE_MODE,E.NONE)):(E.texParameteri(E.TEXTURE_CUBE_MAP,E.TEXTURE_COMPARE_FUNC,r),E.texParameteri(E.TEXTURE_CUBE_MAP,E.TEXTURE_COMPARE_MODE,E.COMPARE_REF_TO_TEXTURE)),this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,null)):(this._bindTextureDirectly(this._gl.TEXTURE_2D,e,!0),0===r?(E.texParameteri(E.TEXTURE_2D,E.TEXTURE_COMPARE_FUNC,t.LEQUAL),E.texParameteri(E.TEXTURE_2D,E.TEXTURE_COMPARE_MODE,E.NONE)):(E.texParameteri(E.TEXTURE_2D,E.TEXTURE_COMPARE_FUNC,r),E.texParameteri(E.TEXTURE_2D,E.TEXTURE_COMPARE_MODE,E.COMPARE_REF_TO_TEXTURE)),this._bindTextureDirectly(this._gl.TEXTURE_2D,null)),e._comparisonFunction=r}createInstancesBuffer(e){const t=this._gl.createBuffer();if(!t)throw new Error("Unable to create instance buffer");const r=new h(t);return r.capacity=e,this.bindArrayBuffer(r),this._gl.bufferData(this._gl.ARRAY_BUFFER,e,this._gl.DYNAMIC_DRAW),r.references=1,r}deleteInstancesBuffer(e){this._gl.deleteBuffer(e)}_clientWaitAsync(e,t=0,r=10){const _=this._gl;return new Promise(((E,i)=>{const s=()=>{const a=_.clientWaitSync(e,t,0);a!=_.WAIT_FAILED?a!=_.TIMEOUT_EXPIRED?E():setTimeout(s,r):i()};s()}))}_readPixelsAsync(e,t,r,_,E,i,s){if(this._webGLVersion<2)throw new Error("_readPixelsAsync only work on WebGL2+");const a=this._gl,T=a.createBuffer();a.bindBuffer(a.PIXEL_PACK_BUFFER,T),a.bufferData(a.PIXEL_PACK_BUFFER,s.byteLength,a.STREAM_READ),a.readPixels(e,t,r,_,E,i,0),a.bindBuffer(a.PIXEL_PACK_BUFFER,null);const n=a.fenceSync(a.SYNC_GPU_COMMANDS_COMPLETE,0);return n?(a.flush(),this._clientWaitAsync(n,0,10).then((()=>(a.deleteSync(n),a.bindBuffer(a.PIXEL_PACK_BUFFER,T),a.getBufferSubData(a.PIXEL_PACK_BUFFER,0,s),a.bindBuffer(a.PIXEL_PACK_BUFFER,null),a.deleteBuffer(T),s)))):null}dispose(){this.hideLoadingUI(),this._rescalePostProcess&&this._rescalePostProcess.dispose(),g(this,this._renderingCanvas),super.dispose()}}m.ALPHA_DISABLE=t.ALPHA_DISABLE,m.ALPHA_ADD=t.ALPHA_ADD,m.ALPHA_COMBINE=t.ALPHA_COMBINE,m.ALPHA_SUBTRACT=t.ALPHA_SUBTRACT,m.ALPHA_MULTIPLY=t.ALPHA_MULTIPLY,m.ALPHA_MAXIMIZED=t.ALPHA_MAXIMIZED,m.ALPHA_ONEONE=t.ALPHA_ONEONE,m.ALPHA_PREMULTIPLIED=t.ALPHA_PREMULTIPLIED,m.ALPHA_PREMULTIPLIED_PORTERDUFF=t.ALPHA_PREMULTIPLIED_PORTERDUFF,m.ALPHA_INTERPOLATE=t.ALPHA_INTERPOLATE,m.ALPHA_SCREENMODE=t.ALPHA_SCREENMODE,m.DELAYLOADSTATE_NONE=t.DELAYLOADSTATE_NONE,m.DELAYLOADSTATE_LOADED=t.DELAYLOADSTATE_LOADED,m.DELAYLOADSTATE_LOADING=t.DELAYLOADSTATE_LOADING,m.DELAYLOADSTATE_NOTLOADED=t.DELAYLOADSTATE_NOTLOADED,m.NEVER=t.NEVER,m.ALWAYS=t.ALWAYS,m.LESS=t.LESS,m.EQUAL=t.EQUAL,m.LEQUAL=t.LEQUAL,m.GREATER=t.GREATER,m.GEQUAL=t.GEQUAL,m.NOTEQUAL=t.NOTEQUAL,m.KEEP=t.KEEP,m.REPLACE=t.REPLACE,m.INCR=t.INCR,m.DECR=t.DECR,m.INVERT=t.INVERT,m.INCR_WRAP=t.INCR_WRAP,m.DECR_WRAP=t.DECR_WRAP,m.TEXTURE_CLAMP_ADDRESSMODE=t.TEXTURE_CLAMP_ADDRESSMODE,m.TEXTURE_WRAP_ADDRESSMODE=t.TEXTURE_WRAP_ADDRESSMODE,m.TEXTURE_MIRROR_ADDRESSMODE=t.TEXTURE_MIRROR_ADDRESSMODE,m.TEXTUREFORMAT_ALPHA=t.TEXTUREFORMAT_ALPHA,m.TEXTUREFORMAT_LUMINANCE=t.TEXTUREFORMAT_LUMINANCE,m.TEXTUREFORMAT_LUMINANCE_ALPHA=t.TEXTUREFORMAT_LUMINANCE_ALPHA,m.TEXTUREFORMAT_RGB=t.TEXTUREFORMAT_RGB,m.TEXTUREFORMAT_RGBA=t.TEXTUREFORMAT_RGBA,m.TEXTUREFORMAT_RED=t.TEXTUREFORMAT_RED,m.TEXTUREFORMAT_R=t.TEXTUREFORMAT_R,m.TEXTUREFORMAT_RG=t.TEXTUREFORMAT_RG,m.TEXTUREFORMAT_RED_INTEGER=t.TEXTUREFORMAT_RED_INTEGER,m.TEXTUREFORMAT_R_INTEGER=t.TEXTUREFORMAT_R_INTEGER,m.TEXTUREFORMAT_RG_INTEGER=t.TEXTUREFORMAT_RG_INTEGER,m.TEXTUREFORMAT_RGB_INTEGER=t.TEXTUREFORMAT_RGB_INTEGER,m.TEXTUREFORMAT_RGBA_INTEGER=t.TEXTUREFORMAT_RGBA_INTEGER,m.TEXTURETYPE_UNSIGNED_BYTE=t.TEXTURETYPE_UNSIGNED_BYTE,m.TEXTURETYPE_UNSIGNED_INT=t.TEXTURETYPE_UNSIGNED_INT,m.TEXTURETYPE_FLOAT=t.TEXTURETYPE_FLOAT,m.TEXTURETYPE_HALF_FLOAT=t.TEXTURETYPE_HALF_FLOAT,m.TEXTURETYPE_BYTE=t.TEXTURETYPE_BYTE,m.TEXTURETYPE_SHORT=t.TEXTURETYPE_SHORT,m.TEXTURETYPE_UNSIGNED_SHORT=t.TEXTURETYPE_UNSIGNED_SHORT,m.TEXTURETYPE_INT=t.TEXTURETYPE_INT,m.TEXTURETYPE_UNSIGNED_INTEGER=t.TEXTURETYPE_UNSIGNED_INTEGER,m.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4=t.TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4,m.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1=t.TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1,m.TEXTURETYPE_UNSIGNED_SHORT_5_6_5=t.TEXTURETYPE_UNSIGNED_SHORT_5_6_5,m.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV=t.TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV,m.TEXTURETYPE_UNSIGNED_INT_24_8=t.TEXTURETYPE_UNSIGNED_INT_24_8,m.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV=t.TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV,m.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV=t.TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV,m.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV=t.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV,m.TEXTURE_NEAREST_SAMPLINGMODE=t.TEXTURE_NEAREST_SAMPLINGMODE,m.TEXTURE_BILINEAR_SAMPLINGMODE=t.TEXTURE_BILINEAR_SAMPLINGMODE,m.TEXTURE_TRILINEAR_SAMPLINGMODE=t.TEXTURE_TRILINEAR_SAMPLINGMODE,m.TEXTURE_NEAREST_NEAREST_MIPLINEAR=t.TEXTURE_NEAREST_NEAREST_MIPLINEAR,m.TEXTURE_LINEAR_LINEAR_MIPNEAREST=t.TEXTURE_LINEAR_LINEAR_MIPNEAREST,m.TEXTURE_LINEAR_LINEAR_MIPLINEAR=t.TEXTURE_LINEAR_LINEAR_MIPLINEAR,m.TEXTURE_NEAREST_NEAREST_MIPNEAREST=t.TEXTURE_NEAREST_NEAREST_MIPNEAREST,m.TEXTURE_NEAREST_LINEAR_MIPNEAREST=t.TEXTURE_NEAREST_LINEAR_MIPNEAREST,m.TEXTURE_NEAREST_LINEAR_MIPLINEAR=t.TEXTURE_NEAREST_LINEAR_MIPLINEAR,m.TEXTURE_NEAREST_LINEAR=t.TEXTURE_NEAREST_LINEAR,m.TEXTURE_NEAREST_NEAREST=t.TEXTURE_NEAREST_NEAREST,m.TEXTURE_LINEAR_NEAREST_MIPNEAREST=t.TEXTURE_LINEAR_NEAREST_MIPNEAREST,m.TEXTURE_LINEAR_NEAREST_MIPLINEAR=t.TEXTURE_LINEAR_NEAREST_MIPLINEAR,m.TEXTURE_LINEAR_LINEAR=t.TEXTURE_LINEAR_LINEAR,m.TEXTURE_LINEAR_NEAREST=t.TEXTURE_LINEAR_NEAREST,m.TEXTURE_EXPLICIT_MODE=t.TEXTURE_EXPLICIT_MODE,m.TEXTURE_SPHERICAL_MODE=t.TEXTURE_SPHERICAL_MODE,m.TEXTURE_PLANAR_MODE=t.TEXTURE_PLANAR_MODE,m.TEXTURE_CUBIC_MODE=t.TEXTURE_CUBIC_MODE,m.TEXTURE_PROJECTION_MODE=t.TEXTURE_PROJECTION_MODE,m.TEXTURE_SKYBOX_MODE=t.TEXTURE_SKYBOX_MODE,m.TEXTURE_INVCUBIC_MODE=t.TEXTURE_INVCUBIC_MODE,m.TEXTURE_EQUIRECTANGULAR_MODE=t.TEXTURE_EQUIRECTANGULAR_MODE,m.TEXTURE_FIXED_EQUIRECTANGULAR_MODE=t.TEXTURE_FIXED_EQUIRECTANGULAR_MODE,m.TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE=t.TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE,m.SCALEMODE_FLOOR=t.SCALEMODE_FLOOR,m.SCALEMODE_NEAREST=t.SCALEMODE_NEAREST,m.SCALEMODE_CEILING=t.SCALEMODE_CEILING;export{m as Engine};
|
|
2
|
+
//# sourceMappingURL=engine-CTtwkexh.esm.min.js.map
|