@babylonjs/viewer 7.40.0-alpha → 7.40.0
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/configuration/configuration.d.ts +107 -0
- package/configuration/configuration.js +16 -0
- package/configuration/configuration.js.map +1 -0
- package/configuration/configurationCompatibility.d.ts +8 -0
- package/configuration/configurationCompatibility.js +66 -0
- package/configuration/configurationCompatibility.js.map +1 -0
- package/configuration/configurationContainer.d.ts +10 -0
- package/configuration/configurationContainer.js +10 -0
- package/configuration/configurationContainer.js.map +1 -0
- package/configuration/globals.d.ts +6 -0
- package/configuration/globals.js +18 -0
- package/configuration/globals.js.map +1 -0
- package/configuration/index.d.ts +2 -0
- package/configuration/index.js +4 -0
- package/configuration/index.js.map +1 -0
- package/configuration/interfaces/cameraConfiguration.d.ts +31 -0
- package/configuration/interfaces/cameraConfiguration.js +2 -0
- package/configuration/interfaces/cameraConfiguration.js.map +1 -0
- package/configuration/interfaces/colorGradingConfiguration.d.ts +81 -0
- package/configuration/interfaces/colorGradingConfiguration.js +2 -0
- package/configuration/interfaces/colorGradingConfiguration.js.map +1 -0
- package/configuration/interfaces/defaultRenderingPipelineConfiguration.d.ts +20 -0
- package/configuration/interfaces/defaultRenderingPipelineConfiguration.js +2 -0
- package/configuration/interfaces/defaultRenderingPipelineConfiguration.js.map +1 -0
- package/configuration/interfaces/environmentMapConfiguration.d.ts +22 -0
- package/configuration/interfaces/environmentMapConfiguration.js +2 -0
- package/configuration/interfaces/environmentMapConfiguration.js.map +1 -0
- package/configuration/interfaces/groundConfiguration.d.ts +24 -0
- package/configuration/interfaces/groundConfiguration.js +2 -0
- package/configuration/interfaces/groundConfiguration.js.map +1 -0
- package/configuration/interfaces/imageProcessingConfiguration.d.ts +45 -0
- package/configuration/interfaces/imageProcessingConfiguration.js +2 -0
- package/configuration/interfaces/imageProcessingConfiguration.js.map +1 -0
- package/configuration/interfaces/index.d.ts +15 -0
- package/configuration/interfaces/index.js +16 -0
- package/configuration/interfaces/index.js.map +1 -0
- package/configuration/interfaces/lightConfiguration.d.ts +60 -0
- package/configuration/interfaces/lightConfiguration.js +2 -0
- package/configuration/interfaces/lightConfiguration.js.map +1 -0
- package/configuration/interfaces/modelAnimationConfiguration.d.ts +26 -0
- package/configuration/interfaces/modelAnimationConfiguration.js +2 -0
- package/configuration/interfaces/modelAnimationConfiguration.js.map +1 -0
- package/configuration/interfaces/modelConfiguration.d.ts +65 -0
- package/configuration/interfaces/modelConfiguration.js +2 -0
- package/configuration/interfaces/modelConfiguration.js.map +1 -0
- package/configuration/interfaces/observersConfiguration.d.ts +5 -0
- package/configuration/interfaces/observersConfiguration.js +2 -0
- package/configuration/interfaces/observersConfiguration.js.map +1 -0
- package/configuration/interfaces/sceneConfiguration.d.ts +48 -0
- package/configuration/interfaces/sceneConfiguration.js +2 -0
- package/configuration/interfaces/sceneConfiguration.js.map +1 -0
- package/configuration/interfaces/sceneOptimizerConfiguration.d.ts +23 -0
- package/configuration/interfaces/sceneOptimizerConfiguration.js +2 -0
- package/configuration/interfaces/sceneOptimizerConfiguration.js.map +1 -0
- package/configuration/interfaces/skyboxConfiguration.d.ts +21 -0
- package/configuration/interfaces/skyboxConfiguration.js +2 -0
- package/configuration/interfaces/skyboxConfiguration.js.map +1 -0
- package/configuration/interfaces/templateConfiguration.d.ts +67 -0
- package/configuration/interfaces/templateConfiguration.js +2 -0
- package/configuration/interfaces/templateConfiguration.js.map +1 -0
- package/configuration/interfaces/vrConfiguration.d.ts +16 -0
- package/configuration/interfaces/vrConfiguration.js +2 -0
- package/configuration/interfaces/vrConfiguration.js.map +1 -0
- package/configuration/loader.d.ts +4 -0
- package/configuration/loader.js +17 -0
- package/configuration/loader.js.map +1 -0
- package/configuration/mappers.d.ts +43 -0
- package/configuration/mappers.js +193 -0
- package/configuration/mappers.js.map +1 -0
- package/configuration/renderOnlyLoader.d.ts +33 -0
- package/configuration/renderOnlyLoader.js +162 -0
- package/configuration/renderOnlyLoader.js.map +1 -0
- package/configuration/types/default.d.ts +6 -0
- package/configuration/types/default.js +121 -0
- package/configuration/types/default.js.map +1 -0
- package/configuration/types/environmentMap.d.ts +5 -0
- package/configuration/types/environmentMap.js +14 -0
- package/configuration/types/environmentMap.js.map +1 -0
- package/configuration/types/extended.d.ts +6 -0
- package/configuration/types/extended.js +317 -0
- package/configuration/types/extended.js.map +1 -0
- package/configuration/types/index.d.ts +14 -0
- package/configuration/types/index.js +51 -0
- package/configuration/types/index.js.map +1 -0
- package/configuration/types/minimal.d.ts +6 -0
- package/configuration/types/minimal.js +43 -0
- package/configuration/types/minimal.js.map +1 -0
- package/configuration/types/renderOnlyDefault.d.ts +30 -0
- package/configuration/types/renderOnlyDefault.js +31 -0
- package/configuration/types/renderOnlyDefault.js.map +1 -0
- package/configuration/types/shadowLight.d.ts +9 -0
- package/configuration/types/shadowLight.js +64 -0
- package/configuration/types/shadowLight.js.map +1 -0
- package/helper/index.d.ts +29 -0
- package/helper/index.js +66 -0
- package/helper/index.js.map +1 -0
- package/index.d.ts +30 -0
- package/index.js +46 -0
- package/index.js.map +1 -0
- package/initializer.d.ts +11 -0
- package/initializer.js +35 -0
- package/initializer.js.map +1 -0
- package/interfaces.d.ts +5 -0
- package/interfaces.js +7 -0
- package/interfaces.js.map +1 -0
- package/labs/environmentSerializer.d.ts +126 -0
- package/labs/environmentSerializer.js +191 -0
- package/labs/environmentSerializer.js.map +1 -0
- package/labs/texture.d.ts +183 -0
- package/labs/texture.js +351 -0
- package/labs/texture.js.map +1 -0
- package/labs/viewerLabs.d.ts +51 -0
- package/labs/viewerLabs.js +134 -0
- package/labs/viewerLabs.js.map +1 -0
- package/loader/modelLoader.d.ts +56 -0
- package/loader/modelLoader.js +202 -0
- package/loader/modelLoader.js.map +1 -0
- package/loader/plugins/applyMaterialConfig.d.ts +12 -0
- package/loader/plugins/applyMaterialConfig.js +16 -0
- package/loader/plugins/applyMaterialConfig.js.map +1 -0
- package/loader/plugins/extendedMaterialLoaderPlugin.d.ts +9 -0
- package/loader/plugins/extendedMaterialLoaderPlugin.js +16 -0
- package/loader/plugins/extendedMaterialLoaderPlugin.js.map +1 -0
- package/loader/plugins/index.d.ts +19 -0
- package/loader/plugins/index.js +44 -0
- package/loader/plugins/index.js.map +1 -0
- package/loader/plugins/loaderPlugin.d.ts +24 -0
- package/loader/plugins/loaderPlugin.js +2 -0
- package/loader/plugins/loaderPlugin.js.map +1 -0
- package/loader/plugins/msftLodLoaderPlugin.d.ts +12 -0
- package/loader/plugins/msftLodLoaderPlugin.js +21 -0
- package/loader/plugins/msftLodLoaderPlugin.js.map +1 -0
- package/loader/plugins/telemetryLoaderPlugin.d.ts +12 -0
- package/loader/plugins/telemetryLoaderPlugin.js +36 -0
- package/loader/plugins/telemetryLoaderPlugin.js.map +1 -0
- package/managers/observablesManager.d.ts +66 -0
- package/managers/observablesManager.js +35 -0
- package/managers/observablesManager.js.map +1 -0
- package/managers/sceneManager.d.ts +245 -0
- package/managers/sceneManager.js +1375 -0
- package/managers/sceneManager.js.map +1 -0
- package/managers/telemetryManager.d.ts +78 -0
- package/managers/telemetryManager.js +117 -0
- package/managers/telemetryManager.js.map +1 -0
- package/model/modelAnimation.d.ts +215 -0
- package/model/modelAnimation.js +237 -0
- package/model/modelAnimation.js.map +1 -0
- package/model/viewerModel.d.ts +233 -0
- package/model/viewerModel.js +673 -0
- package/model/viewerModel.js.map +1 -0
- package/optimizer/custom/extended.d.ts +13 -0
- package/optimizer/custom/extended.js +101 -0
- package/optimizer/custom/extended.js.map +1 -0
- package/optimizer/custom/index.d.ts +9 -0
- package/optimizer/custom/index.js +26 -0
- package/optimizer/custom/index.js.map +1 -0
- package/package.json +28 -19
- package/readme.md +28 -28
- package/renderOnlyIndex.d.ts +11 -0
- package/renderOnlyIndex.js +18 -0
- package/renderOnlyIndex.js.map +1 -0
- package/templating/eventManager.d.ts +35 -0
- package/templating/eventManager.js +66 -0
- package/templating/eventManager.js.map +1 -0
- package/templating/plugins/hdButtonPlugin.d.ts +9 -0
- package/templating/plugins/hdButtonPlugin.js +22 -0
- package/templating/plugins/hdButtonPlugin.js.map +1 -0
- package/templating/plugins/printButton.d.ts +9 -0
- package/templating/plugins/printButton.js +41 -0
- package/templating/plugins/printButton.js.map +1 -0
- package/templating/templateManager.d.ts +197 -0
- package/templating/templateManager.js +561 -0
- package/templating/templateManager.js.map +1 -0
- package/templating/viewerTemplatePlugin.d.ts +21 -0
- package/templating/viewerTemplatePlugin.js +69 -0
- package/templating/viewerTemplatePlugin.js.map +1 -0
- package/viewer/defaultViewer.d.ts +130 -0
- package/viewer/defaultViewer.js +672 -0
- package/viewer/defaultViewer.js.map +1 -0
- package/viewer/renderOnlyViewer.d.ts +9 -0
- package/viewer/renderOnlyViewer.js +46 -0
- package/viewer/renderOnlyViewer.js.map +1 -0
- package/viewer/viewer.d.ts +258 -0
- package/viewer/viewer.js +783 -0
- package/viewer/viewer.js.map +1 -0
- package/viewer/viewerManager.d.ts +58 -0
- package/viewer/viewerManager.js +91 -0
- package/viewer/viewerManager.js.map +1 -0
- package/viewer/viewerWithTemplate.d.ts +9 -0
- package/viewer/viewerWithTemplate.js +20 -0
- package/viewer/viewerWithTemplate.js.map +1 -0
- package/assets/photoStudio.env +0 -0
- package/dist/babylon-viewer.esm.js +0 -2
- package/dist/babylon-viewer.esm.js.map +0 -1
- package/dist/babylon-viewer.esm.min.js +0 -2
- package/dist/babylon-viewer.esm.min.js.map +0 -1
- package/dist/chunks/EXT_lights_ies-CWPYWIWN.esm.min.js +0 -2
- package/dist/chunks/EXT_lights_ies-CWPYWIWN.esm.min.js.map +0 -1
- package/dist/chunks/EXT_lights_ies-DXjx4vS8.esm.js +0 -84
- package/dist/chunks/EXT_lights_ies-DXjx4vS8.esm.js.map +0 -1
- package/dist/chunks/EXT_lights_image_based-B-Daha_c.esm.js +0 -171
- package/dist/chunks/EXT_lights_image_based-B-Daha_c.esm.js.map +0 -1
- package/dist/chunks/EXT_lights_image_based-fafIAwHA.esm.min.js +0 -2
- package/dist/chunks/EXT_lights_image_based-fafIAwHA.esm.min.js.map +0 -1
- package/dist/chunks/EXT_mesh_gpu_instancing-CQHNuvea.esm.min.js +0 -2
- package/dist/chunks/EXT_mesh_gpu_instancing-CQHNuvea.esm.min.js.map +0 -1
- package/dist/chunks/EXT_mesh_gpu_instancing-xQzfnk4R.esm.js +0 -86
- package/dist/chunks/EXT_mesh_gpu_instancing-xQzfnk4R.esm.js.map +0 -1
- package/dist/chunks/EXT_meshopt_compression-B2YW8Jul.esm.min.js +0 -2
- package/dist/chunks/EXT_meshopt_compression-B2YW8Jul.esm.min.js.map +0 -1
- package/dist/chunks/EXT_meshopt_compression-D-WT4x3b.esm.js +0 -134
- package/dist/chunks/EXT_meshopt_compression-D-WT4x3b.esm.js.map +0 -1
- package/dist/chunks/EXT_texture_avif-B3jJQLi_.esm.js +0 -44
- package/dist/chunks/EXT_texture_avif-B3jJQLi_.esm.js.map +0 -1
- package/dist/chunks/EXT_texture_avif-Cdp43X9W.esm.min.js +0 -2
- package/dist/chunks/EXT_texture_avif-Cdp43X9W.esm.min.js.map +0 -1
- package/dist/chunks/EXT_texture_webp-BnjDmIhh.esm.min.js +0 -2
- package/dist/chunks/EXT_texture_webp-BnjDmIhh.esm.min.js.map +0 -1
- package/dist/chunks/EXT_texture_webp-CJRS8tVF.esm.js +0 -43
- package/dist/chunks/EXT_texture_webp-CJRS8tVF.esm.js.map +0 -1
- package/dist/chunks/ExtrasAsMetadata-CIJMhaBZ.esm.min.js +0 -2
- package/dist/chunks/ExtrasAsMetadata-CIJMhaBZ.esm.min.js.map +0 -1
- package/dist/chunks/ExtrasAsMetadata-CwbKTcv7.esm.js +0 -64
- package/dist/chunks/ExtrasAsMetadata-CwbKTcv7.esm.js.map +0 -1
- package/dist/chunks/KHR_animation_pointer-9iHVi2y-.esm.js +0 -352
- package/dist/chunks/KHR_animation_pointer-9iHVi2y-.esm.js.map +0 -1
- package/dist/chunks/KHR_animation_pointer-CqdJSFtB.esm.min.js +0 -2
- package/dist/chunks/KHR_animation_pointer-CqdJSFtB.esm.min.js.map +0 -1
- package/dist/chunks/KHR_draco_mesh_compression-ClL38TL5.esm.min.js +0 -2
- package/dist/chunks/KHR_draco_mesh_compression-ClL38TL5.esm.min.js.map +0 -1
- package/dist/chunks/KHR_draco_mesh_compression-D3dZicO8.esm.js +0 -617
- package/dist/chunks/KHR_draco_mesh_compression-D3dZicO8.esm.js.map +0 -1
- package/dist/chunks/KHR_interactivity-6HrLuIjZ.esm.js +0 -4033
- package/dist/chunks/KHR_interactivity-6HrLuIjZ.esm.js.map +0 -1
- package/dist/chunks/KHR_interactivity-zubZF_6R.esm.min.js +0 -2
- package/dist/chunks/KHR_interactivity-zubZF_6R.esm.min.js.map +0 -1
- package/dist/chunks/KHR_lights_punctual-ClmFHdd7.esm.js +0 -581
- package/dist/chunks/KHR_lights_punctual-ClmFHdd7.esm.js.map +0 -1
- package/dist/chunks/KHR_lights_punctual-Fpwx2lSI.esm.min.js +0 -2
- package/dist/chunks/KHR_lights_punctual-Fpwx2lSI.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_anisotropy-DJzuE8wA.esm.js +0 -65
- package/dist/chunks/KHR_materials_anisotropy-DJzuE8wA.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_anisotropy-DXobrZpb.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_anisotropy-DXobrZpb.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_clearcoat-D0969pHH.esm.js +0 -96
- package/dist/chunks/KHR_materials_clearcoat-D0969pHH.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_clearcoat-IanIfR8B.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_clearcoat-IanIfR8B.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_diffuse_transmission-CswRFXu1.esm.js +0 -97
- package/dist/chunks/KHR_materials_diffuse_transmission-CswRFXu1.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_diffuse_transmission-DOSvTGyA.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_diffuse_transmission-DOSvTGyA.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_dispersion-N7vSa0nU.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_dispersion-N7vSa0nU.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_dispersion-lcuIAf7T.esm.js +0 -62
- package/dist/chunks/KHR_materials_dispersion-lcuIAf7T.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_emissive_strength-CYCr0qYT.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_emissive_strength-CYCr0qYT.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_emissive_strength-Ccj9q0E7.esm.js +0 -55
- package/dist/chunks/KHR_materials_emissive_strength-Ccj9q0E7.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_ior-CMGgp610.esm.js +0 -64
- package/dist/chunks/KHR_materials_ior-CMGgp610.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_ior-DLbZJSfw.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_ior-DLbZJSfw.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_iridescence-DxhjIyld.esm.js +0 -72
- package/dist/chunks/KHR_materials_iridescence-DxhjIyld.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_iridescence-GKx4iT0n.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_iridescence-GKx4iT0n.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-BhSexHVn.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-BhSexHVn.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-CaAfu_3f.esm.js +0 -81
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-CaAfu_3f.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_sheen-CN1BYTg2.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_sheen-CN1BYTg2.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_sheen-CTrHpM3p.esm.js +0 -85
- package/dist/chunks/KHR_materials_sheen-CTrHpM3p.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_specular-D_qAmusR.esm.js +0 -75
- package/dist/chunks/KHR_materials_specular-D_qAmusR.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_specular-DpKtpzvK.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_specular-DpKtpzvK.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_transmission-CxaJK0KS.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_transmission-CxaJK0KS.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_transmission-jJevhaTD.esm.js +0 -307
- package/dist/chunks/KHR_materials_transmission-jJevhaTD.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_unlit-B9NoDbLu.esm.js +0 -74
- package/dist/chunks/KHR_materials_unlit-B9NoDbLu.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_unlit-BV2WFURQ.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_unlit-BV2WFURQ.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_variants-BmH6A7LQ.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_variants-BmH6A7LQ.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_variants-BwlvUynB.esm.js +0 -262
- package/dist/chunks/KHR_materials_variants-BwlvUynB.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_volume-BxsuFsjg.esm.js +0 -87
- package/dist/chunks/KHR_materials_volume-BxsuFsjg.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_volume-DgaN4xP_.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_volume-DgaN4xP_.esm.min.js.map +0 -1
- package/dist/chunks/KHR_mesh_quantization-BiqtT9kx.esm.min.js +0 -2
- package/dist/chunks/KHR_mesh_quantization-BiqtT9kx.esm.min.js.map +0 -1
- package/dist/chunks/KHR_mesh_quantization-Dui9vNiN.esm.js +0 -26
- package/dist/chunks/KHR_mesh_quantization-Dui9vNiN.esm.js.map +0 -1
- package/dist/chunks/KHR_node_hoverability-Bb7NACAZ.esm.js +0 -39
- package/dist/chunks/KHR_node_hoverability-Bb7NACAZ.esm.js.map +0 -1
- package/dist/chunks/KHR_node_hoverability-DO_c3jaM.esm.min.js +0 -2
- package/dist/chunks/KHR_node_hoverability-DO_c3jaM.esm.min.js.map +0 -1
- package/dist/chunks/KHR_node_visibility-B5DLk18h.esm.js +0 -46
- package/dist/chunks/KHR_node_visibility-B5DLk18h.esm.js.map +0 -1
- package/dist/chunks/KHR_node_visibility-Cf7iNP2D.esm.min.js +0 -2
- package/dist/chunks/KHR_node_visibility-Cf7iNP2D.esm.min.js.map +0 -1
- package/dist/chunks/KHR_texture_basisu-DgmXsV7i.esm.js +0 -43
- package/dist/chunks/KHR_texture_basisu-DgmXsV7i.esm.js.map +0 -1
- package/dist/chunks/KHR_texture_basisu-O4WmrcrG.esm.min.js +0 -2
- package/dist/chunks/KHR_texture_basisu-O4WmrcrG.esm.min.js.map +0 -1
- package/dist/chunks/KHR_texture_transform-C2B03Q6l.esm.min.js +0 -2
- package/dist/chunks/KHR_texture_transform-C2B03Q6l.esm.min.js.map +0 -1
- package/dist/chunks/KHR_texture_transform-DkQQG3PK.esm.js +0 -63
- package/dist/chunks/KHR_texture_transform-DkQQG3PK.esm.js.map +0 -1
- package/dist/chunks/KHR_xmp_json_ld-D9eCYTa2.esm.min.js +0 -2
- package/dist/chunks/KHR_xmp_json_ld-D9eCYTa2.esm.min.js.map +0 -1
- package/dist/chunks/KHR_xmp_json_ld-gs5UzU_o.esm.js +0 -51
- package/dist/chunks/KHR_xmp_json_ld-gs5UzU_o.esm.js.map +0 -1
- package/dist/chunks/MSFT_audio_emitter-B9fkUjJ0.esm.js +0 -2207
- package/dist/chunks/MSFT_audio_emitter-B9fkUjJ0.esm.js.map +0 -1
- package/dist/chunks/MSFT_audio_emitter-DpJ8OxBw.esm.min.js +0 -2
- package/dist/chunks/MSFT_audio_emitter-DpJ8OxBw.esm.min.js.map +0 -1
- package/dist/chunks/MSFT_lod-DS6_zCB0.esm.js +0 -337
- package/dist/chunks/MSFT_lod-DS6_zCB0.esm.js.map +0 -1
- package/dist/chunks/MSFT_lod-qGdnTg6f.esm.min.js +0 -2
- package/dist/chunks/MSFT_lod-qGdnTg6f.esm.min.js.map +0 -1
- package/dist/chunks/MSFT_minecraftMesh-99ZDXpdT.esm.min.js +0 -2
- package/dist/chunks/MSFT_minecraftMesh-99ZDXpdT.esm.min.js.map +0 -1
- package/dist/chunks/MSFT_minecraftMesh-B60rmY-O.esm.js +0 -46
- package/dist/chunks/MSFT_minecraftMesh-B60rmY-O.esm.js.map +0 -1
- package/dist/chunks/MSFT_sRGBFactors-Br1RUJsD.esm.min.js +0 -2
- package/dist/chunks/MSFT_sRGBFactors-Br1RUJsD.esm.min.js.map +0 -1
- package/dist/chunks/MSFT_sRGBFactors-DVcyl59-.esm.js +0 -47
- package/dist/chunks/MSFT_sRGBFactors-DVcyl59-.esm.js.map +0 -1
- package/dist/chunks/animationGroup-D80NDoJK.esm.min.js +0 -2
- package/dist/chunks/animationGroup-D80NDoJK.esm.min.js.map +0 -1
- package/dist/chunks/animationGroup-DaKL_xr0.esm.js +0 -2482
- package/dist/chunks/animationGroup-DaKL_xr0.esm.js.map +0 -1
- package/dist/chunks/assetContainer-DUHXkzRR.esm.js +0 -1720
- package/dist/chunks/assetContainer-DUHXkzRR.esm.js.map +0 -1
- package/dist/chunks/assetContainer-DrlGfFUd.esm.min.js +0 -2
- package/dist/chunks/assetContainer-DrlGfFUd.esm.min.js.map +0 -1
- package/dist/chunks/audioEngine-BbaOte04.esm.min.js +0 -2
- package/dist/chunks/audioEngine-BbaOte04.esm.min.js.map +0 -1
- package/dist/chunks/audioEngine-Cl77hj6S.esm.js +0 -305
- package/dist/chunks/audioEngine-Cl77hj6S.esm.js.map +0 -1
- package/dist/chunks/bakedVertexAnimation-1Je9P1Wr.esm.js +0 -114
- package/dist/chunks/bakedVertexAnimation-1Je9P1Wr.esm.js.map +0 -1
- package/dist/chunks/bakedVertexAnimation-CqAC8NlK.esm.min.js +0 -2
- package/dist/chunks/bakedVertexAnimation-CqAC8NlK.esm.min.js.map +0 -1
- package/dist/chunks/basisTextureLoader-D6HL2Z1j.esm.js +0 -600
- package/dist/chunks/basisTextureLoader-D6HL2Z1j.esm.js.map +0 -1
- package/dist/chunks/basisTextureLoader-r7SDsKh7.esm.min.js +0 -2
- package/dist/chunks/basisTextureLoader-r7SDsKh7.esm.min.js.map +0 -1
- package/dist/chunks/dds-B3q7zTkZ.esm.js +0 -540
- package/dist/chunks/dds-B3q7zTkZ.esm.js.map +0 -1
- package/dist/chunks/dds-BBiaQw-Y.esm.min.js +0 -2
- package/dist/chunks/dds-BBiaQw-Y.esm.min.js.map +0 -1
- package/dist/chunks/ddsTextureLoader-C4PtTvoL.esm.js +0 -88
- package/dist/chunks/ddsTextureLoader-C4PtTvoL.esm.js.map +0 -1
- package/dist/chunks/ddsTextureLoader-CGA8DF-Z.esm.min.js +0 -2
- package/dist/chunks/ddsTextureLoader-CGA8DF-Z.esm.min.js.map +0 -1
- package/dist/chunks/decalFragment-BTxhBHbp.esm.js +0 -18
- package/dist/chunks/decalFragment-BTxhBHbp.esm.js.map +0 -1
- package/dist/chunks/decalFragment-n8HEgits.esm.min.js +0 -2
- package/dist/chunks/decalFragment-n8HEgits.esm.min.js.map +0 -1
- package/dist/chunks/default.fragment-CUJQb4Ds.esm.min.js +0 -2
- package/dist/chunks/default.fragment-CUJQb4Ds.esm.min.js.map +0 -1
- package/dist/chunks/default.fragment-CkvRouhO.esm.min.js +0 -2
- package/dist/chunks/default.fragment-CkvRouhO.esm.min.js.map +0 -1
- package/dist/chunks/default.fragment-D3CHq-x9.esm.js +0 -515
- package/dist/chunks/default.fragment-D3CHq-x9.esm.js.map +0 -1
- package/dist/chunks/default.fragment-DIWDeOi3.esm.js +0 -446
- package/dist/chunks/default.fragment-DIWDeOi3.esm.js.map +0 -1
- package/dist/chunks/default.vertex-7EvlstiX.esm.js +0 -181
- package/dist/chunks/default.vertex-7EvlstiX.esm.js.map +0 -1
- package/dist/chunks/default.vertex-DNVWc7Pt.esm.min.js +0 -2
- package/dist/chunks/default.vertex-DNVWc7Pt.esm.min.js.map +0 -1
- package/dist/chunks/default.vertex-DRUHVqKs.esm.min.js +0 -2
- package/dist/chunks/default.vertex-DRUHVqKs.esm.min.js.map +0 -1
- package/dist/chunks/default.vertex-Vc6tOJMI.esm.js +0 -202
- package/dist/chunks/default.vertex-Vc6tOJMI.esm.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-Bf-6awzG.esm.js +0 -15
- package/dist/chunks/defaultUboDeclaration-Bf-6awzG.esm.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-DDhQ3CTy.esm.js +0 -13
- package/dist/chunks/defaultUboDeclaration-DDhQ3CTy.esm.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-DYX0y14N.esm.min.js +0 -2
- package/dist/chunks/defaultUboDeclaration-DYX0y14N.esm.min.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-DcdUryhi.esm.min.js +0 -2
- package/dist/chunks/defaultUboDeclaration-DcdUryhi.esm.min.js.map +0 -1
- package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js +0 -11
- package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js.map +0 -1
- package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js +0 -2
- package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js.map +0 -1
- package/dist/chunks/dumpTools-BWNjR_G6.esm.min.js +0 -2
- package/dist/chunks/dumpTools-BWNjR_G6.esm.min.js.map +0 -1
- package/dist/chunks/dumpTools-hegDCvBc.esm.js +0 -200
- package/dist/chunks/dumpTools-hegDCvBc.esm.js.map +0 -1
- package/dist/chunks/engine-CZGy-n30.esm.js +0 -2216
- package/dist/chunks/engine-CZGy-n30.esm.js.map +0 -1
- package/dist/chunks/engine-iddO2T22.esm.min.js +0 -2
- package/dist/chunks/engine-iddO2T22.esm.min.js.map +0 -1
- package/dist/chunks/engine.common-CGXs9MDG.esm.min.js +0 -2
- package/dist/chunks/engine.common-CGXs9MDG.esm.min.js.map +0 -1
- package/dist/chunks/engine.common-Cqb8HjxX.esm.js +0 -1162
- package/dist/chunks/engine.common-Cqb8HjxX.esm.js.map +0 -1
- package/dist/chunks/envTextureLoader-Czm9uAXM.esm.js +0 -64
- package/dist/chunks/envTextureLoader-Czm9uAXM.esm.js.map +0 -1
- package/dist/chunks/envTextureLoader-D-YagZnu.esm.min.js +0 -2
- package/dist/chunks/envTextureLoader-D-YagZnu.esm.min.js.map +0 -1
- package/dist/chunks/environmentTextureTools-B5WZowyO.esm.min.js +0 -2
- package/dist/chunks/environmentTextureTools-B5WZowyO.esm.min.js.map +0 -1
- package/dist/chunks/environmentTextureTools-BrdD2X7A.esm.js +0 -382
- package/dist/chunks/environmentTextureTools-BrdD2X7A.esm.js.map +0 -1
- package/dist/chunks/exrTextureLoader-ClJnk3E3.esm.js +0 -1683
- package/dist/chunks/exrTextureLoader-ClJnk3E3.esm.js.map +0 -1
- package/dist/chunks/exrTextureLoader-s-Mog8_s.esm.min.js +0 -2
- package/dist/chunks/exrTextureLoader-s-Mog8_s.esm.min.js.map +0 -1
- package/dist/chunks/fogFragment-C2vW2rrh.esm.js +0 -102
- package/dist/chunks/fogFragment-C2vW2rrh.esm.js.map +0 -1
- package/dist/chunks/fogFragment-CAmhx99G.esm.min.js +0 -2
- package/dist/chunks/fogFragment-CAmhx99G.esm.min.js.map +0 -1
- package/dist/chunks/fogFragment-VhCT_edc.esm.min.js +0 -2
- package/dist/chunks/fogFragment-VhCT_edc.esm.min.js.map +0 -1
- package/dist/chunks/fogFragment-weVZWTdd.esm.js +0 -101
- package/dist/chunks/fogFragment-weVZWTdd.esm.js.map +0 -1
- package/dist/chunks/fresnelFunction-4cImVcNT.esm.js +0 -12
- package/dist/chunks/fresnelFunction-4cImVcNT.esm.js.map +0 -1
- package/dist/chunks/fresnelFunction-Da1sPcvo.esm.min.js +0 -2
- package/dist/chunks/fresnelFunction-Da1sPcvo.esm.min.js.map +0 -1
- package/dist/chunks/glTFLoader-7uvFneFt.esm.js +0 -7586
- package/dist/chunks/glTFLoader-7uvFneFt.esm.js.map +0 -1
- package/dist/chunks/glTFLoader-ChTng_Ew.esm.min.js +0 -2
- package/dist/chunks/glTFLoader-ChTng_Ew.esm.min.js.map +0 -1
- package/dist/chunks/glTFLoaderAnimation-BeBTAsWq.esm.js +0 -77
- package/dist/chunks/glTFLoaderAnimation-BeBTAsWq.esm.js.map +0 -1
- package/dist/chunks/glTFLoaderAnimation-CCHLAoRK.esm.min.js +0 -2
- package/dist/chunks/glTFLoaderAnimation-CCHLAoRK.esm.min.js.map +0 -1
- package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js +0 -2
- package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js.map +0 -1
- package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js +0 -67
- package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js.map +0 -1
- package/dist/chunks/harmonicsFunctions-CIez3XpU.esm.min.js +0 -2
- package/dist/chunks/harmonicsFunctions-CIez3XpU.esm.min.js.map +0 -1
- package/dist/chunks/harmonicsFunctions-CjYmCnUh.esm.min.js +0 -2
- package/dist/chunks/harmonicsFunctions-CjYmCnUh.esm.min.js.map +0 -1
- package/dist/chunks/harmonicsFunctions-D8X6XkcB.esm.js +0 -35
- package/dist/chunks/harmonicsFunctions-D8X6XkcB.esm.js.map +0 -1
- package/dist/chunks/harmonicsFunctions-i7q2aWAO.esm.js +0 -34
- package/dist/chunks/harmonicsFunctions-i7q2aWAO.esm.js.map +0 -1
- package/dist/chunks/hdrTextureLoader-C6WR9qDu.esm.min.js +0 -2
- package/dist/chunks/hdrTextureLoader-C6WR9qDu.esm.min.js.map +0 -1
- package/dist/chunks/hdrTextureLoader-DdEmyqh5.esm.js +0 -253
- package/dist/chunks/hdrTextureLoader-DdEmyqh5.esm.js.map +0 -1
- package/dist/chunks/helperFunctions-B8W8JpaI.esm.min.js +0 -2
- package/dist/chunks/helperFunctions-B8W8JpaI.esm.min.js.map +0 -1
- package/dist/chunks/helperFunctions-CV2C3XEf.esm.js +0 -108
- package/dist/chunks/helperFunctions-CV2C3XEf.esm.js.map +0 -1
- package/dist/chunks/helperFunctions-CgUf8pyk.esm.js +0 -80
- package/dist/chunks/helperFunctions-CgUf8pyk.esm.js.map +0 -1
- package/dist/chunks/helperFunctions-VM--MJVI.esm.min.js +0 -2
- package/dist/chunks/helperFunctions-VM--MJVI.esm.min.js.map +0 -1
- package/dist/chunks/iesTextureLoader-BuScKRlS.esm.js +0 -189
- package/dist/chunks/iesTextureLoader-BuScKRlS.esm.js.map +0 -1
- package/dist/chunks/iesTextureLoader-if1ntALJ.esm.min.js +0 -2
- package/dist/chunks/iesTextureLoader-if1ntALJ.esm.min.js.map +0 -1
- package/dist/chunks/index-7pOUdivR.esm.js +0 -74709
- package/dist/chunks/index-7pOUdivR.esm.js.map +0 -1
- package/dist/chunks/index-CHb7NKRY.esm.min.js +0 -57
- package/dist/chunks/index-CHb7NKRY.esm.min.js.map +0 -1
- package/dist/chunks/ktxTextureLoader-9L7lCOMk.esm.min.js +0 -2
- package/dist/chunks/ktxTextureLoader-9L7lCOMk.esm.min.js.map +0 -1
- package/dist/chunks/ktxTextureLoader-Ct-9NIcu.esm.js +0 -814
- package/dist/chunks/ktxTextureLoader-Ct-9NIcu.esm.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-CFHaSiET.esm.min.js +0 -2
- package/dist/chunks/logDepthDeclaration-CFHaSiET.esm.min.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-Cqb_Zo_s.esm.js +0 -11
- package/dist/chunks/logDepthDeclaration-Cqb_Zo_s.esm.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-DCW2NExX.esm.min.js +0 -2
- package/dist/chunks/logDepthDeclaration-DCW2NExX.esm.min.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-oJ9tNQ3q.esm.js +0 -35
- package/dist/chunks/logDepthDeclaration-oJ9tNQ3q.esm.js.map +0 -1
- package/dist/chunks/logDepthVertex-BCP-KTtt.esm.js +0 -81
- package/dist/chunks/logDepthVertex-BCP-KTtt.esm.js.map +0 -1
- package/dist/chunks/logDepthVertex-BwYkGLpu.esm.js +0 -77
- package/dist/chunks/logDepthVertex-BwYkGLpu.esm.js.map +0 -1
- package/dist/chunks/logDepthVertex-DoyGVTWA.esm.min.js +0 -2
- package/dist/chunks/logDepthVertex-DoyGVTWA.esm.min.js.map +0 -1
- package/dist/chunks/logDepthVertex-WdJWwsLV.esm.min.js +0 -2
- package/dist/chunks/logDepthVertex-WdJWwsLV.esm.min.js.map +0 -1
- package/dist/chunks/mainUVVaryingDeclaration-B_ziE3K3.esm.min.js +0 -2
- package/dist/chunks/mainUVVaryingDeclaration-B_ziE3K3.esm.min.js.map +0 -1
- package/dist/chunks/mainUVVaryingDeclaration-CRWcERPP.esm.js +0 -11
- package/dist/chunks/mainUVVaryingDeclaration-CRWcERPP.esm.js.map +0 -1
- package/dist/chunks/mainUVVaryingDeclaration-NuhfZTP4.esm.js +0 -11
- package/dist/chunks/mainUVVaryingDeclaration-NuhfZTP4.esm.js.map +0 -1
- package/dist/chunks/mainUVVaryingDeclaration-_WOgDBUD.esm.min.js +0 -2
- package/dist/chunks/mainUVVaryingDeclaration-_WOgDBUD.esm.min.js.map +0 -1
- package/dist/chunks/meshUboDeclaration-BkKdZCAL.esm.min.js +0 -2
- package/dist/chunks/meshUboDeclaration-BkKdZCAL.esm.min.js.map +0 -1
- package/dist/chunks/meshUboDeclaration-VO75rv0M.esm.js +0 -26
- package/dist/chunks/meshUboDeclaration-VO75rv0M.esm.js.map +0 -1
- package/dist/chunks/objFileLoader-BcUlaMO0.esm.min.js +0 -2
- package/dist/chunks/objFileLoader-BcUlaMO0.esm.min.js.map +0 -1
- package/dist/chunks/objFileLoader-CrSk62pN.esm.js +0 -1338
- package/dist/chunks/objFileLoader-CrSk62pN.esm.js.map +0 -1
- package/dist/chunks/oitFragment-9xHvc1pY.esm.min.js +0 -2
- package/dist/chunks/oitFragment-9xHvc1pY.esm.min.js.map +0 -1
- package/dist/chunks/oitFragment-BedTygSm.esm.js +0 -1240
- package/dist/chunks/oitFragment-BedTygSm.esm.js.map +0 -1
- package/dist/chunks/oitFragment-Dx3jhb-Y.esm.js +0 -1078
- package/dist/chunks/oitFragment-Dx3jhb-Y.esm.js.map +0 -1
- package/dist/chunks/oitFragment-wsShal2z.esm.min.js +0 -2
- package/dist/chunks/oitFragment-wsShal2z.esm.min.js.map +0 -1
- package/dist/chunks/pass.fragment-BAFAqEd3.esm.js +0 -15
- package/dist/chunks/pass.fragment-BAFAqEd3.esm.js.map +0 -1
- package/dist/chunks/pass.fragment-BCDgjoaP.esm.min.js +0 -2
- package/dist/chunks/pass.fragment-BCDgjoaP.esm.min.js.map +0 -1
- package/dist/chunks/pass.fragment-Cw2vMur1.esm.min.js +0 -2
- package/dist/chunks/pass.fragment-Cw2vMur1.esm.min.js.map +0 -1
- package/dist/chunks/pass.fragment-DvVPDD3q.esm.js +0 -15
- package/dist/chunks/pass.fragment-DvVPDD3q.esm.js.map +0 -1
- package/dist/chunks/pbr.fragment-BEgWbv9s.esm.min.js +0 -2
- package/dist/chunks/pbr.fragment-BEgWbv9s.esm.min.js.map +0 -1
- package/dist/chunks/pbr.fragment-CR8wXt2w.esm.js +0 -3232
- package/dist/chunks/pbr.fragment-CR8wXt2w.esm.js.map +0 -1
- package/dist/chunks/pbr.fragment-CmVN3-cU.esm.js +0 -3273
- package/dist/chunks/pbr.fragment-CmVN3-cU.esm.js.map +0 -1
- package/dist/chunks/pbr.fragment-DXqzm4Ha.esm.min.js +0 -2
- package/dist/chunks/pbr.fragment-DXqzm4Ha.esm.min.js.map +0 -1
- package/dist/chunks/pbr.vertex-B7DptLQs.esm.js +0 -214
- package/dist/chunks/pbr.vertex-B7DptLQs.esm.js.map +0 -1
- package/dist/chunks/pbr.vertex-BNDn-K_8.esm.min.js +0 -2
- package/dist/chunks/pbr.vertex-BNDn-K_8.esm.min.js.map +0 -1
- package/dist/chunks/pbr.vertex-Cp8jkMaM.esm.min.js +0 -2
- package/dist/chunks/pbr.vertex-Cp8jkMaM.esm.min.js.map +0 -1
- package/dist/chunks/pbr.vertex-rvNW4KDh.esm.js +0 -339
- package/dist/chunks/pbr.vertex-rvNW4KDh.esm.js.map +0 -1
- package/dist/chunks/postprocess.vertex-BRHkF-uK.esm.js +0 -20
- package/dist/chunks/postprocess.vertex-BRHkF-uK.esm.js.map +0 -1
- package/dist/chunks/postprocess.vertex-QT9kbb4b.esm.min.js +0 -2
- package/dist/chunks/postprocess.vertex-QT9kbb4b.esm.min.js.map +0 -1
- package/dist/chunks/rawTexture-CS3J_QPB.esm.min.js +0 -2
- package/dist/chunks/rawTexture-CS3J_QPB.esm.min.js.map +0 -1
- package/dist/chunks/rawTexture-CTQXP4lW.esm.js +0 -191
- package/dist/chunks/rawTexture-CTQXP4lW.esm.js.map +0 -1
- package/dist/chunks/ray-D1I6_i0K.esm.js +0 -946
- package/dist/chunks/ray-D1I6_i0K.esm.js.map +0 -1
- package/dist/chunks/ray-ffMmFIRM.esm.min.js +0 -2
- package/dist/chunks/ray-ffMmFIRM.esm.min.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-BuXAGpKo.esm.js +0 -17
- package/dist/chunks/rgbdDecode.fragment-BuXAGpKo.esm.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-Uqqwk9hd.esm.min.js +0 -2
- package/dist/chunks/rgbdDecode.fragment-Uqqwk9hd.esm.min.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-iifwD2Tq.esm.js +0 -17
- package/dist/chunks/rgbdDecode.fragment-iifwD2Tq.esm.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-ykJ6BacZ.esm.min.js +0 -2
- package/dist/chunks/rgbdDecode.fragment-ykJ6BacZ.esm.min.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-B8trM95E.esm.js +0 -17
- package/dist/chunks/rgbdEncode.fragment-B8trM95E.esm.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-Dk50Ggfr.esm.min.js +0 -2
- package/dist/chunks/rgbdEncode.fragment-Dk50Ggfr.esm.min.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-OfZ629fV.esm.min.js +0 -2
- package/dist/chunks/rgbdEncode.fragment-OfZ629fV.esm.min.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-S4QKY6JX.esm.js +0 -17
- package/dist/chunks/rgbdEncode.fragment-S4QKY6JX.esm.js.map +0 -1
- package/dist/chunks/splatFileLoader-BKRNi0Kz.esm.js +0 -3379
- package/dist/chunks/splatFileLoader-BKRNi0Kz.esm.js.map +0 -1
- package/dist/chunks/splatFileLoader-Bii2polh.esm.min.js +0 -2
- package/dist/chunks/splatFileLoader-Bii2polh.esm.min.js.map +0 -1
- package/dist/chunks/spotLight-Bx97rCpk.esm.js +0 -701
- package/dist/chunks/spotLight-Bx97rCpk.esm.js.map +0 -1
- package/dist/chunks/spotLight-WYJhdyXT.esm.min.js +0 -2
- package/dist/chunks/spotLight-WYJhdyXT.esm.min.js.map +0 -1
- package/dist/chunks/standardMaterial-B2COaxO7.esm.min.js +0 -2
- package/dist/chunks/standardMaterial-B2COaxO7.esm.min.js.map +0 -1
- package/dist/chunks/standardMaterial-DobO9sHt.esm.js +0 -1805
- package/dist/chunks/standardMaterial-DobO9sHt.esm.js.map +0 -1
- package/dist/chunks/stlFileLoader-BA8gtxRg.esm.js +0 -238
- package/dist/chunks/stlFileLoader-BA8gtxRg.esm.js.map +0 -1
- package/dist/chunks/stlFileLoader-hIvh4jC_.esm.min.js +0 -2
- package/dist/chunks/stlFileLoader-hIvh4jC_.esm.min.js.map +0 -1
- package/dist/chunks/tgaTextureLoader-BVKXLe7s.esm.js +0 -349
- package/dist/chunks/tgaTextureLoader-BVKXLe7s.esm.js.map +0 -1
- package/dist/chunks/tgaTextureLoader-autBbrGZ.esm.min.js +0 -2
- package/dist/chunks/tgaTextureLoader-autBbrGZ.esm.min.js.map +0 -1
- package/dist/chunks/thinEngine-BPspbumB.esm.min.js +0 -2
- package/dist/chunks/thinEngine-BPspbumB.esm.min.js.map +0 -1
- package/dist/chunks/thinEngine-wr-z1XFG.esm.js +0 -3848
- package/dist/chunks/thinEngine-wr-z1XFG.esm.js.map +0 -1
- package/dist/chunks/thinInstanceMesh-D2RBwifP.esm.min.js +0 -2
- package/dist/chunks/thinInstanceMesh-D2RBwifP.esm.min.js.map +0 -1
- package/dist/chunks/thinInstanceMesh-DVy1Ya49.esm.js +0 -314
- package/dist/chunks/thinInstanceMesh-DVy1Ya49.esm.js.map +0 -1
- package/dist/chunks/vertexColorMixing-B_-b5IVj.esm.js +0 -522
- package/dist/chunks/vertexColorMixing-B_-b5IVj.esm.js.map +0 -1
- package/dist/chunks/vertexColorMixing-Bd53icV7.esm.min.js +0 -2
- package/dist/chunks/vertexColorMixing-Bd53icV7.esm.min.js.map +0 -1
- package/dist/chunks/vertexColorMixing-Bm_nb2CS.esm.js +0 -412
- package/dist/chunks/vertexColorMixing-Bm_nb2CS.esm.js.map +0 -1
- package/dist/chunks/vertexColorMixing-DogY4EnF.esm.min.js +0 -2
- package/dist/chunks/vertexColorMixing-DogY4EnF.esm.min.js.map +0 -1
- package/dist/chunks/webgpuEngine-CZnjGjDY.esm.min.js +0 -2
- package/dist/chunks/webgpuEngine-CZnjGjDY.esm.min.js.map +0 -1
- package/dist/chunks/webgpuEngine-DQcXBSQC.esm.js +0 -11533
- package/dist/chunks/webgpuEngine-DQcXBSQC.esm.js.map +0 -1
- package/dist/chunks/workerPool-BUOov2K1.esm.js +0 -122
- package/dist/chunks/workerPool-BUOov2K1.esm.js.map +0 -1
- package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js +0 -2
- package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js.map +0 -1
- package/lib/index.d.ts +0 -559
- package/lib/index.js +0 -2083
- package/lib/index.js.map +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{L as e,T as t,C as r}from"./index-CHb7NKRY.esm.min.js";import{A as s}from"./workerPool-BWHiDmEZ.esm.min.js";class a{constructor(t,r){if(this.data=t,this.isInvalid=!1,!a.IsValid(t))return this.isInvalid=!0,void e.Error("texture missing KTX identifier");const s=Uint32Array.BYTES_PER_ELEMENT,o=new DataView(this.data.buffer,this.data.byteOffset+12,13*s),i=67305985===o.getUint32(0,!0);return this.glType=o.getUint32(1*s,i),this.glTypeSize=o.getUint32(2*s,i),this.glFormat=o.getUint32(3*s,i),this.glInternalFormat=o.getUint32(4*s,i),this.glBaseInternalFormat=o.getUint32(5*s,i),this.pixelWidth=o.getUint32(6*s,i),this.pixelHeight=o.getUint32(7*s,i),this.pixelDepth=o.getUint32(8*s,i),this.numberOfArrayElements=o.getUint32(9*s,i),this.numberOfFaces=o.getUint32(10*s,i),this.numberOfMipmapLevels=o.getUint32(11*s,i),this.bytesOfKeyValueData=o.getUint32(12*s,i),0!==this.glType?(e.Error("only compressed formats currently supported"),void(this.isInvalid=!0)):(this.numberOfMipmapLevels=Math.max(1,this.numberOfMipmapLevels),0===this.pixelHeight||0!==this.pixelDepth?(e.Error("only 2D textures currently supported"),void(this.isInvalid=!0)):0!==this.numberOfArrayElements?(e.Error("texture arrays not currently supported"),void(this.isInvalid=!0)):this.numberOfFaces!==r?(e.Error("number of faces expected"+r+", but found "+this.numberOfFaces),void(this.isInvalid=!0)):void(this.loadType=a.COMPRESSED_2D))}uploadLevels(e,t){if(this.loadType===a.COMPRESSED_2D)this._upload2DCompressedLevels(e,t)}_upload2DCompressedLevels(e,t){let r=a.HEADER_LEN+this.bytesOfKeyValueData,s=this.pixelWidth,o=this.pixelHeight;const i=t?this.numberOfMipmapLevels:1;for(let t=0;t<i;t++){const a=new Int32Array(this.data.buffer,this.data.byteOffset+r,1)[0];r+=4;for(let i=0;i<this.numberOfFaces;i++){const n=new Uint8Array(this.data.buffer,this.data.byteOffset+r,a);e.getEngine()._uploadCompressedDataToTextureDirectly(e,e.format,s,o,n,i,t),r+=a,r+=3-(a+3)%4}s=Math.max(1,.5*s),o=Math.max(1,.5*o)}}static IsValid(e){if(e.byteLength>=12){const t=new Uint8Array(e.buffer,e.byteOffset,12);if(171===t[0]&&75===t[1]&&84===t[2]&&88===t[3]&&32===t[4]&&49===t[5]&&49===t[6]&&187===t[7]&&13===t[8]&&10===t[9]&&26===t[10]&&10===t[11])return!0}return!1}}var o,i,n;function T(e,t){const r=t?.jsDecoderModule||KTX2DECODER;e&&(e.wasmUASTCToASTC&&(r.LiteTranscoder_UASTC_ASTC.WasmModuleURL=e.wasmUASTCToASTC),e.wasmUASTCToBC7&&(r.LiteTranscoder_UASTC_BC7.WasmModuleURL=e.wasmUASTCToBC7),e.wasmUASTCToRGBA_UNORM&&(r.LiteTranscoder_UASTC_RGBA_UNORM.WasmModuleURL=e.wasmUASTCToRGBA_UNORM),e.wasmUASTCToRGBA_SRGB&&(r.LiteTranscoder_UASTC_RGBA_SRGB.WasmModuleURL=e.wasmUASTCToRGBA_SRGB),e.wasmUASTCToR8_UNORM&&(r.LiteTranscoder_UASTC_R8_UNORM.WasmModuleURL=e.wasmUASTCToR8_UNORM),e.wasmUASTCToRG8_UNORM&&(r.LiteTranscoder_UASTC_RG8_UNORM.WasmModuleURL=e.wasmUASTCToRG8_UNORM),e.jsMSCTranscoder&&(r.MSCTranscoder.JSModuleURL=e.jsMSCTranscoder),e.wasmMSCTranscoder&&(r.MSCTranscoder.WasmModuleURL=e.wasmMSCTranscoder),e.wasmZSTDDecoder&&(r.ZSTDDecoder.WasmModuleURL=e.wasmZSTDDecoder)),t&&(t.wasmUASTCToASTC&&(r.LiteTranscoder_UASTC_ASTC.WasmBinary=t.wasmUASTCToASTC),t.wasmUASTCToBC7&&(r.LiteTranscoder_UASTC_BC7.WasmBinary=t.wasmUASTCToBC7),t.wasmUASTCToRGBA_UNORM&&(r.LiteTranscoder_UASTC_RGBA_UNORM.WasmBinary=t.wasmUASTCToRGBA_UNORM),t.wasmUASTCToRGBA_SRGB&&(r.LiteTranscoder_UASTC_RGBA_SRGB.WasmBinary=t.wasmUASTCToRGBA_SRGB),t.wasmUASTCToR8_UNORM&&(r.LiteTranscoder_UASTC_R8_UNORM.WasmBinary=t.wasmUASTCToR8_UNORM),t.wasmUASTCToRG8_UNORM&&(r.LiteTranscoder_UASTC_RG8_UNORM.WasmBinary=t.wasmUASTCToRG8_UNORM),t.jsMSCTranscoder&&(r.MSCTranscoder.JSModule=t.jsMSCTranscoder),t.wasmMSCTranscoder&&(r.MSCTranscoder.WasmBinary=t.wasmMSCTranscoder),t.wasmZSTDDecoder&&(r.ZSTDDecoder.WasmBinary=t.wasmZSTDDecoder))}function _(e){let t;void 0===e&&"undefined"!=typeof KTX2DECODER&&(e=KTX2DECODER),onmessage=r=>{if(r.data)switch(r.data.action){case"init":{const s=r.data.urls;s&&(s.jsDecoderModule&&void 0===e&&(importScripts(s.jsDecoderModule),e=KTX2DECODER),T(s)),r.data.wasmBinaries&&T(void 0,{...r.data.wasmBinaries,jsDecoderModule:e}),t=new e.KTX2Decoder,postMessage({action:"init"});break}case"setDefaultDecoderOptions":e.KTX2Decoder.DefaultDecoderOptions=r.data.options;break;case"decode":t.decode(r.data.data,r.data.caps,r.data.options).then((e=>{const t=[];for(let r=0;r<e.mipmaps.length;++r){const s=e.mipmaps[r];s&&s.data&&t.push(s.data.buffer)}postMessage({action:"decoded",success:!0,decodedData:e},t)})).catch((e=>{postMessage({action:"decoded",success:!1,msg:e})}))}}}a.HEADER_LEN=64,a.COMPRESSED_2D=0,a.COMPRESSED_3D=1,a.TEX_2D=2,a.TEX_3D=3,function(e){e[e.ETC1S=0]="ETC1S",e[e.UASTC4x4=1]="UASTC4x4"}(o||(o={})),function(e){e[e.ASTC_4X4_RGBA=0]="ASTC_4X4_RGBA",e[e.BC7_RGBA=1]="BC7_RGBA",e[e.BC3_RGBA=2]="BC3_RGBA",e[e.BC1_RGB=3]="BC1_RGB",e[e.PVRTC1_4_RGBA=4]="PVRTC1_4_RGBA",e[e.PVRTC1_4_RGB=5]="PVRTC1_4_RGB",e[e.ETC2_RGBA=6]="ETC2_RGBA",e[e.ETC1_RGB=7]="ETC1_RGB",e[e.RGBA32=8]="RGBA32",e[e.R8=9]="R8",e[e.RG8=10]="RG8"}(i||(i={})),function(e){e[e.COMPRESSED_RGBA_BPTC_UNORM_EXT=36492]="COMPRESSED_RGBA_BPTC_UNORM_EXT",e[e.COMPRESSED_RGBA_ASTC_4X4_KHR=37808]="COMPRESSED_RGBA_ASTC_4X4_KHR",e[e.COMPRESSED_RGB_S3TC_DXT1_EXT=33776]="COMPRESSED_RGB_S3TC_DXT1_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT5_EXT=33779]="COMPRESSED_RGBA_S3TC_DXT5_EXT",e[e.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG=35842]="COMPRESSED_RGBA_PVRTC_4BPPV1_IMG",e[e.COMPRESSED_RGB_PVRTC_4BPPV1_IMG=35840]="COMPRESSED_RGB_PVRTC_4BPPV1_IMG",e[e.COMPRESSED_RGBA8_ETC2_EAC=37496]="COMPRESSED_RGBA8_ETC2_EAC",e[e.COMPRESSED_RGB8_ETC2=37492]="COMPRESSED_RGB8_ETC2",e[e.COMPRESSED_RGB_ETC1_WEBGL=36196]="COMPRESSED_RGB_ETC1_WEBGL",e[e.RGBA8Format=32856]="RGBA8Format",e[e.R8Format=33321]="R8Format",e[e.RG8Format=33323]="RG8Format"}(n||(n={}));class R{static GetDefaultNumWorkers(){return"object"==typeof navigator&&navigator.hardwareConcurrency?Math.min(Math.floor(.5*navigator.hardwareConcurrency),4):1}static _Initialize(e){if(R._WorkerPoolPromise||R._DecoderModulePromise)return;const r={jsDecoderModule:t.GetBabylonScriptURL(this.URLConfig.jsDecoderModule,!0),wasmUASTCToASTC:t.GetBabylonScriptURL(this.URLConfig.wasmUASTCToASTC,!0),wasmUASTCToBC7:t.GetBabylonScriptURL(this.URLConfig.wasmUASTCToBC7,!0),wasmUASTCToRGBA_UNORM:t.GetBabylonScriptURL(this.URLConfig.wasmUASTCToRGBA_UNORM,!0),wasmUASTCToRGBA_SRGB:t.GetBabylonScriptURL(this.URLConfig.wasmUASTCToRGBA_SRGB,!0),wasmUASTCToR8_UNORM:t.GetBabylonScriptURL(this.URLConfig.wasmUASTCToR8_UNORM,!0),wasmUASTCToRG8_UNORM:t.GetBabylonScriptURL(this.URLConfig.wasmUASTCToRG8_UNORM,!0),jsMSCTranscoder:t.GetBabylonScriptURL(this.URLConfig.jsMSCTranscoder,!0),wasmMSCTranscoder:t.GetBabylonScriptURL(this.URLConfig.wasmMSCTranscoder,!0),wasmZSTDDecoder:t.GetBabylonScriptURL(this.URLConfig.wasmZSTDDecoder,!0)};e&&"function"==typeof Worker&&"undefined"!=typeof URL?R._WorkerPoolPromise=new Promise((t=>{const a=`${T}(${_})()`,o=URL.createObjectURL(new Blob([a],{type:"application/javascript"}));t(new s(e,(()=>function(e,t,r){return new Promise(((s,a)=>{const o=t=>{e.removeEventListener("error",o),e.removeEventListener("message",i),a(t)},i=t=>{"init"===t.data.action&&(e.removeEventListener("error",o),e.removeEventListener("message",i),s(e))};e.addEventListener("error",o),e.addEventListener("message",i),e.postMessage({action:"init",urls:r,wasmBinaries:t})}))}(new Worker(o),void 0,r))))})):void 0===R._KTX2DecoderModule?R._DecoderModulePromise=t.LoadBabylonScriptAsync(r.jsDecoderModule).then((()=>(R._KTX2DecoderModule=KTX2DECODER,R._KTX2DecoderModule.MSCTranscoder.UseFromWorkerThread=!1,R._KTX2DecoderModule.WASMMemoryManager.LoadBinariesFromCurrentThread=!0,T(r,R._KTX2DecoderModule),new R._KTX2DecoderModule.KTX2Decoder))):(R._KTX2DecoderModule.MSCTranscoder.UseFromWorkerThread=!1,R._KTX2DecoderModule.WASMMemoryManager.LoadBinariesFromCurrentThread=!0,R._DecoderModulePromise=Promise.resolve(new R._KTX2DecoderModule.KTX2Decoder))}constructor(e,t=R.DefaultNumWorkers){this._engine=e;const r="object"==typeof t&&t.workerPool||R.WorkerPool;if(r)R._WorkerPoolPromise=Promise.resolve(r);else{"object"==typeof t?R._KTX2DecoderModule=t?.binariesAndModulesContainer?.jsDecoderModule:"undefined"!=typeof KTX2DECODER&&(R._KTX2DecoderModule=KTX2DECODER);const e="number"==typeof t?t:t.numWorkers??R.DefaultNumWorkers;R._Initialize(e)}}_uploadAsync(e,t,r){const s=this._engine.getCaps(),a={astc:!!s.astc,bptc:!!s.bptc,s3tc:!!s.s3tc,pvrtc:!!s.pvrtc,etc2:!!s.etc2,etc1:!!s.etc1};if(R._WorkerPoolPromise)return R._WorkerPoolPromise.then((s=>new Promise(((o,i)=>{s.push(((s,n)=>{const T=e=>{s.removeEventListener("error",T),s.removeEventListener("message",_),i(e),n()},_=e=>{if("decoded"===e.data.action){if(s.removeEventListener("error",T),s.removeEventListener("message",_),e.data.success)try{this._createTexture(e.data.decodedData,t,r),o()}catch(e){i({message:e})}else i({message:e.data.msg});n()}};s.addEventListener("error",T),s.addEventListener("message",_),s.postMessage({action:"setDefaultDecoderOptions",options:R.DefaultDecoderOptions._getKTX2DecoderOptions()});const d=new Uint8Array(e.byteLength);d.set(new Uint8Array(e.buffer,e.byteOffset,e.byteLength)),s.postMessage({action:"decode",data:d,caps:a,options:r},[d.buffer])}))}))));if(R._DecoderModulePromise)return R._DecoderModulePromise.then((r=>(R.DefaultDecoderOptions.isDirty&&(R._KTX2DecoderModule.KTX2Decoder.DefaultDecoderOptions=R.DefaultDecoderOptions._getKTX2DecoderOptions()),new Promise(((a,o)=>{r.decode(e,s).then((e=>{this._createTexture(e,t),a()})).catch((e=>{o({message:e})}))})))));throw new Error("KTX2 decoder module is not available")}_createTexture(e,t,s){this._engine._bindTextureDirectly(3553,t),s&&(s.transcodedFormat=e.transcodedFormat,s.isInGammaSpace=e.isInGammaSpace,s.hasAlpha=e.hasAlpha,s.transcoderName=e.transcoderName);let a=!0;switch(e.transcodedFormat){case 32856:t.type=r.TEXTURETYPE_UNSIGNED_BYTE,t.format=r.TEXTUREFORMAT_RGBA;break;case 33321:t.type=r.TEXTURETYPE_UNSIGNED_BYTE,t.format=r.TEXTUREFORMAT_R;break;case 33323:t.type=r.TEXTURETYPE_UNSIGNED_BYTE,t.format=r.TEXTUREFORMAT_RG;break;default:t.format=e.transcodedFormat,a=!1}if(t._gammaSpace=e.isInGammaSpace,t.generateMipMaps=e.mipmaps.length>1,e.errors)throw new Error("KTX2 container - could not transcode the data. "+e.errors);for(let r=0;r<e.mipmaps.length;++r){const s=e.mipmaps[r];if(!s||!s.data)throw new Error("KTX2 container - could not transcode one of the image");a?(t.width=s.width,t.height=s.height,this._engine._uploadDataToTextureDirectly(t,s.data,0,r,void 0,!0)):this._engine._uploadCompressedDataToTextureDirectly(t,e.transcodedFormat,s.width,s.height,s.data,0,r)}t._extension=".ktx2",t.width=e.mipmaps[0].width,t.height=e.mipmaps[0].height,t.isReady=!0,this._engine._bindTextureDirectly(3553,null)}static IsValid(e){if(e.byteLength>=12){const t=new Uint8Array(e.buffer,e.byteOffset,12);if(171===t[0]&&75===t[1]&&84===t[2]&&88===t[3]&&32===t[4]&&50===t[5]&&48===t[6]&&187===t[7]&&13===t[8]&&10===t[9]&&26===t[10]&&10===t[11])return!0}return!1}}R.URLConfig={jsDecoderModule:"https://cdn.babylonjs.com/babylon.ktx2Decoder.js",wasmUASTCToASTC:null,wasmUASTCToBC7:null,wasmUASTCToRGBA_UNORM:null,wasmUASTCToRGBA_SRGB:null,wasmUASTCToR8_UNORM:null,wasmUASTCToRG8_UNORM:null,jsMSCTranscoder:null,wasmMSCTranscoder:null,wasmZSTDDecoder:null},R.DefaultNumWorkers=R.GetDefaultNumWorkers(),R.DefaultDecoderOptions=new class{constructor(){this._isDirty=!0,this._useRGBAIfOnlyBC1BC3AvailableWhenUASTC=!0,this._ktx2DecoderOptions={}}get isDirty(){return this._isDirty}get useRGBAIfASTCBC7NotAvailableWhenUASTC(){return this._useRGBAIfASTCBC7NotAvailableWhenUASTC}set useRGBAIfASTCBC7NotAvailableWhenUASTC(e){this._useRGBAIfASTCBC7NotAvailableWhenUASTC!==e&&(this._useRGBAIfASTCBC7NotAvailableWhenUASTC=e,this._isDirty=!0)}get useRGBAIfOnlyBC1BC3AvailableWhenUASTC(){return this._useRGBAIfOnlyBC1BC3AvailableWhenUASTC}set useRGBAIfOnlyBC1BC3AvailableWhenUASTC(e){this._useRGBAIfOnlyBC1BC3AvailableWhenUASTC!==e&&(this._useRGBAIfOnlyBC1BC3AvailableWhenUASTC=e,this._isDirty=!0)}get forceRGBA(){return this._forceRGBA}set forceRGBA(e){this._forceRGBA!==e&&(this._forceRGBA=e,this._isDirty=!0)}get forceR8(){return this._forceR8}set forceR8(e){this._forceR8!==e&&(this._forceR8=e,this._isDirty=!0)}get forceRG8(){return this._forceRG8}set forceRG8(e){this._forceRG8!==e&&(this._forceRG8=e,this._isDirty=!0)}get bypassTranscoders(){return this._bypassTranscoders}set bypassTranscoders(e){this._bypassTranscoders!==e&&(this._bypassTranscoders=e,this._isDirty=!0)}_getKTX2DecoderOptions(){if(!this._isDirty)return this._ktx2DecoderOptions;this._isDirty=!1;const e={useRGBAIfASTCBC7NotAvailableWhenUASTC:this._useRGBAIfASTCBC7NotAvailableWhenUASTC,forceRGBA:this._forceRGBA,forceR8:this._forceR8,forceRG8:this._forceRG8,bypassTranscoders:this._bypassTranscoders};return this.useRGBAIfOnlyBC1BC3AvailableWhenUASTC&&(e.transcodeFormatDecisionTree={UASTC:{transcodeFormat:[i.BC1_RGB,i.BC3_RGBA],yes:{transcodeFormat:i.RGBA32,engineFormat:32856,roundToMultiple4:!1}}}),this._ktx2DecoderOptions=e,e}};class d{constructor(){this.supportCascades=!1}loadCubeData(e,t,r,s){if(Array.isArray(e))return;t._invertVScale=!t.invertY;const o=t.getEngine(),i=new a(e,6),n=i.numberOfMipmapLevels>1&&t.generateMipMaps;o._unpackFlipY(!0),i.uploadLevels(t,t.generateMipMaps),t.width=i.pixelWidth,t.height=i.pixelHeight,o._setCubeMapTextureParams(t,n,i.numberOfMipmapLevels-1),t.isReady=!0,t.onLoadedObservable.notifyObservers(t),t.onLoadedObservable.clear(),s&&s()}loadData(t,s,o,i){if(a.IsValid(t)){s._invertVScale=!s.invertY;const e=new a(t,1),i=function(e){switch(e){case r.TEXTUREFORMAT_COMPRESSED_SRGB_S3TC_DXT1_EXT:return r.TEXTUREFORMAT_COMPRESSED_RGB_S3TC_DXT1;case r.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:return r.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT3;case r.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:return r.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT5;case r.TEXTUREFORMAT_COMPRESSED_SRGB8_ETC2:return r.TEXTUREFORMAT_COMPRESSED_RGB8_ETC2;case r.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:return r.TEXTUREFORMAT_COMPRESSED_RGBA8_ETC2_EAC;case r.TEXTUREFORMAT_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:return r.TEXTUREFORMAT_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2;case r.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:return r.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_4x4;case r.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_BPTC_UNORM:return r.TEXTUREFORMAT_COMPRESSED_RGBA_BPTC_UNORM}return null}(e.glInternalFormat);i?(s.format=i,s._useSRGBBuffer=s.getEngine()._getUseSRGBBuffer(!0,s.generateMipMaps),s._gammaSpace=!0):s.format=e.glInternalFormat,o(e.pixelWidth,e.pixelHeight,s.generateMipMaps,!0,(()=>{e.uploadLevels(s,s.generateMipMaps)}),e.isInvalid)}else if(R.IsValid(t)){new R(s.getEngine())._uploadAsync(t,s,i).then((()=>{o(s.width,s.height,s.generateMipMaps,!0,(()=>{}),!1)}),(t=>{e.Warn(`Failed to load KTX2 texture data: ${t.message}`),o(0,0,!1,!1,(()=>{}),!0)}))}else e.Error("texture missing KTX identifier"),o(0,0,!1,!1,(()=>{}),!0)}}export{d as _KTXTextureLoader};
|
|
2
|
-
//# sourceMappingURL=ktxTextureLoader-9L7lCOMk.esm.min.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ktxTextureLoader-9L7lCOMk.esm.min.js","sources":["../../../../../dev/core/dist/Misc/khronosTextureContainer.js","../../../../../dev/core/dist/Materials/Textures/ktx2decoderTypes.js","../../../../../dev/core/dist/Misc/khronosTextureContainer2Worker.js","../../../../../dev/core/dist/Misc/khronosTextureContainer2.js","../../../../../dev/core/dist/Materials/Textures/Loaders/ktxTextureLoader.js"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport { Logger } from \"../Misc/logger\";\n/**\n * for description see https://www.khronos.org/opengles/sdk/tools/KTX/\n * for file layout see https://www.khronos.org/opengles/sdk/tools/KTX/file_format_spec/\n */\nexport class KhronosTextureContainer {\n /**\n * Creates a new KhronosTextureContainer\n * @param data contents of the KTX container file\n * @param facesExpected should be either 1 or 6, based whether a cube texture or or\n */\n constructor(\n /** contents of the KTX container file */\n data, facesExpected) {\n this.data = data;\n /**\n * If the container has been made invalid (eg. constructor failed to correctly load array buffer)\n */\n this.isInvalid = false;\n if (!KhronosTextureContainer.IsValid(data)) {\n this.isInvalid = true;\n Logger.Error(\"texture missing KTX identifier\");\n return;\n }\n // load the reset of the header in native 32 bit uint\n const dataSize = Uint32Array.BYTES_PER_ELEMENT;\n const headerDataView = new DataView(this.data.buffer, this.data.byteOffset + 12, 13 * dataSize);\n const endianness = headerDataView.getUint32(0, true);\n const littleEndian = endianness === 0x04030201;\n this.glType = headerDataView.getUint32(1 * dataSize, littleEndian); // must be 0 for compressed textures\n this.glTypeSize = headerDataView.getUint32(2 * dataSize, littleEndian); // must be 1 for compressed textures\n this.glFormat = headerDataView.getUint32(3 * dataSize, littleEndian); // must be 0 for compressed textures\n this.glInternalFormat = headerDataView.getUint32(4 * dataSize, littleEndian); // the value of arg passed to gl.compressedTexImage2D(,,x,,,,)\n this.glBaseInternalFormat = headerDataView.getUint32(5 * dataSize, littleEndian); // specify GL_RGB, GL_RGBA, GL_ALPHA, etc (un-compressed only)\n this.pixelWidth = headerDataView.getUint32(6 * dataSize, littleEndian); // level 0 value of arg passed to gl.compressedTexImage2D(,,,x,,,)\n this.pixelHeight = headerDataView.getUint32(7 * dataSize, littleEndian); // level 0 value of arg passed to gl.compressedTexImage2D(,,,,x,,)\n this.pixelDepth = headerDataView.getUint32(8 * dataSize, littleEndian); // level 0 value of arg passed to gl.compressedTexImage3D(,,,,,x,,)\n this.numberOfArrayElements = headerDataView.getUint32(9 * dataSize, littleEndian); // used for texture arrays\n this.numberOfFaces = headerDataView.getUint32(10 * dataSize, littleEndian); // used for cubemap textures, should either be 1 or 6\n this.numberOfMipmapLevels = headerDataView.getUint32(11 * dataSize, littleEndian); // number of levels; disregard possibility of 0 for compressed textures\n this.bytesOfKeyValueData = headerDataView.getUint32(12 * dataSize, littleEndian); // the amount of space after the header for meta-data\n // Make sure we have a compressed type. Not only reduces work, but probably better to let dev know they are not compressing.\n if (this.glType !== 0) {\n Logger.Error(\"only compressed formats currently supported\");\n this.isInvalid = true;\n return;\n }\n else {\n // value of zero is an indication to generate mipmaps @ runtime. Not usually allowed for compressed, so disregard.\n this.numberOfMipmapLevels = Math.max(1, this.numberOfMipmapLevels);\n }\n if (this.pixelHeight === 0 || this.pixelDepth !== 0) {\n Logger.Error(\"only 2D textures currently supported\");\n this.isInvalid = true;\n return;\n }\n if (this.numberOfArrayElements !== 0) {\n Logger.Error(\"texture arrays not currently supported\");\n this.isInvalid = true;\n return;\n }\n if (this.numberOfFaces !== facesExpected) {\n Logger.Error(\"number of faces expected\" + facesExpected + \", but found \" + this.numberOfFaces);\n this.isInvalid = true;\n return;\n }\n // we now have a completely validated file, so could use existence of loadType as success\n // would need to make this more elaborate & adjust checks above to support more than one load type\n this.loadType = KhronosTextureContainer.COMPRESSED_2D;\n }\n /**\n * Uploads KTX content to a Babylon Texture.\n * It is assumed that the texture has already been created & is currently bound\n * @internal\n */\n uploadLevels(texture, loadMipmaps) {\n switch (this.loadType) {\n case KhronosTextureContainer.COMPRESSED_2D:\n this._upload2DCompressedLevels(texture, loadMipmaps);\n break;\n case KhronosTextureContainer.TEX_2D:\n case KhronosTextureContainer.COMPRESSED_3D:\n case KhronosTextureContainer.TEX_3D:\n }\n }\n _upload2DCompressedLevels(texture, loadMipmaps) {\n // initialize width & height for level 1\n let dataOffset = KhronosTextureContainer.HEADER_LEN + this.bytesOfKeyValueData;\n let width = this.pixelWidth;\n let height = this.pixelHeight;\n const mipmapCount = loadMipmaps ? this.numberOfMipmapLevels : 1;\n for (let level = 0; level < mipmapCount; level++) {\n const imageSize = new Int32Array(this.data.buffer, this.data.byteOffset + dataOffset, 1)[0]; // size per face, since not supporting array cubemaps\n dataOffset += 4; //image data starts from next multiple of 4 offset. Each face refers to same imagesize field above.\n for (let face = 0; face < this.numberOfFaces; face++) {\n const byteArray = new Uint8Array(this.data.buffer, this.data.byteOffset + dataOffset, imageSize);\n const engine = texture.getEngine();\n engine._uploadCompressedDataToTextureDirectly(texture, texture.format, width, height, byteArray, face, level);\n dataOffset += imageSize; // add size of the image for the next face/mipmap\n dataOffset += 3 - ((imageSize + 3) % 4); // add padding for odd sized image\n }\n width = Math.max(1.0, width * 0.5);\n height = Math.max(1.0, height * 0.5);\n }\n }\n /**\n * Checks if the given data starts with a KTX file identifier.\n * @param data the data to check\n * @returns true if the data is a KTX file or false otherwise\n */\n static IsValid(data) {\n if (data.byteLength >= 12) {\n // '«', 'K', 'T', 'X', ' ', '1', '1', '»', '\\r', '\\n', '\\x1A', '\\n'\n const identifier = new Uint8Array(data.buffer, data.byteOffset, 12);\n if (identifier[0] === 0xab &&\n identifier[1] === 0x4b &&\n identifier[2] === 0x54 &&\n identifier[3] === 0x58 &&\n identifier[4] === 0x20 &&\n identifier[5] === 0x31 &&\n identifier[6] === 0x31 &&\n identifier[7] === 0xbb &&\n identifier[8] === 0x0d &&\n identifier[9] === 0x0a &&\n identifier[10] === 0x1a &&\n identifier[11] === 0x0a) {\n return true;\n }\n }\n return false;\n }\n}\nKhronosTextureContainer.HEADER_LEN = 12 + 13 * 4; // identifier + header elements (not including key value meta-data pairs)\n// load types\nKhronosTextureContainer.COMPRESSED_2D = 0; // uses a gl.compressedTexImage2D()\nKhronosTextureContainer.COMPRESSED_3D = 1; // uses a gl.compressedTexImage3D()\nKhronosTextureContainer.TEX_2D = 2; // uses a gl.texImage2D()\nKhronosTextureContainer.TEX_3D = 3; // uses a gl.texImage3D()\n//# sourceMappingURL=khronosTextureContainer.js.map","export var SourceTextureFormat;\n(function (SourceTextureFormat) {\n SourceTextureFormat[SourceTextureFormat[\"ETC1S\"] = 0] = \"ETC1S\";\n SourceTextureFormat[SourceTextureFormat[\"UASTC4x4\"] = 1] = \"UASTC4x4\";\n})(SourceTextureFormat || (SourceTextureFormat = {}));\nexport var TranscodeTarget;\n(function (TranscodeTarget) {\n TranscodeTarget[TranscodeTarget[\"ASTC_4X4_RGBA\"] = 0] = \"ASTC_4X4_RGBA\";\n TranscodeTarget[TranscodeTarget[\"BC7_RGBA\"] = 1] = \"BC7_RGBA\";\n TranscodeTarget[TranscodeTarget[\"BC3_RGBA\"] = 2] = \"BC3_RGBA\";\n TranscodeTarget[TranscodeTarget[\"BC1_RGB\"] = 3] = \"BC1_RGB\";\n TranscodeTarget[TranscodeTarget[\"PVRTC1_4_RGBA\"] = 4] = \"PVRTC1_4_RGBA\";\n TranscodeTarget[TranscodeTarget[\"PVRTC1_4_RGB\"] = 5] = \"PVRTC1_4_RGB\";\n TranscodeTarget[TranscodeTarget[\"ETC2_RGBA\"] = 6] = \"ETC2_RGBA\";\n TranscodeTarget[TranscodeTarget[\"ETC1_RGB\"] = 7] = \"ETC1_RGB\";\n TranscodeTarget[TranscodeTarget[\"RGBA32\"] = 8] = \"RGBA32\";\n TranscodeTarget[TranscodeTarget[\"R8\"] = 9] = \"R8\";\n TranscodeTarget[TranscodeTarget[\"RG8\"] = 10] = \"RG8\";\n})(TranscodeTarget || (TranscodeTarget = {}));\nexport var EngineFormat;\n(function (EngineFormat) {\n EngineFormat[EngineFormat[\"COMPRESSED_RGBA_BPTC_UNORM_EXT\"] = 36492] = \"COMPRESSED_RGBA_BPTC_UNORM_EXT\";\n EngineFormat[EngineFormat[\"COMPRESSED_RGBA_ASTC_4X4_KHR\"] = 37808] = \"COMPRESSED_RGBA_ASTC_4X4_KHR\";\n EngineFormat[EngineFormat[\"COMPRESSED_RGB_S3TC_DXT1_EXT\"] = 33776] = \"COMPRESSED_RGB_S3TC_DXT1_EXT\";\n EngineFormat[EngineFormat[\"COMPRESSED_RGBA_S3TC_DXT5_EXT\"] = 33779] = \"COMPRESSED_RGBA_S3TC_DXT5_EXT\";\n EngineFormat[EngineFormat[\"COMPRESSED_RGBA_PVRTC_4BPPV1_IMG\"] = 35842] = \"COMPRESSED_RGBA_PVRTC_4BPPV1_IMG\";\n EngineFormat[EngineFormat[\"COMPRESSED_RGB_PVRTC_4BPPV1_IMG\"] = 35840] = \"COMPRESSED_RGB_PVRTC_4BPPV1_IMG\";\n EngineFormat[EngineFormat[\"COMPRESSED_RGBA8_ETC2_EAC\"] = 37496] = \"COMPRESSED_RGBA8_ETC2_EAC\";\n EngineFormat[EngineFormat[\"COMPRESSED_RGB8_ETC2\"] = 37492] = \"COMPRESSED_RGB8_ETC2\";\n EngineFormat[EngineFormat[\"COMPRESSED_RGB_ETC1_WEBGL\"] = 36196] = \"COMPRESSED_RGB_ETC1_WEBGL\";\n EngineFormat[EngineFormat[\"RGBA8Format\"] = 32856] = \"RGBA8Format\";\n EngineFormat[EngineFormat[\"R8Format\"] = 33321] = \"R8Format\";\n EngineFormat[EngineFormat[\"RG8Format\"] = 33323] = \"RG8Format\";\n})(EngineFormat || (EngineFormat = {}));\n//# sourceMappingURL=ktx2decoderTypes.js.map","export function applyConfig(urls, binariesAndModulesContainer) {\n const KTX2DecoderModule = binariesAndModulesContainer?.jsDecoderModule || KTX2DECODER;\n if (urls) {\n if (urls.wasmUASTCToASTC) {\n KTX2DecoderModule.LiteTranscoder_UASTC_ASTC.WasmModuleURL = urls.wasmUASTCToASTC;\n }\n if (urls.wasmUASTCToBC7) {\n KTX2DecoderModule.LiteTranscoder_UASTC_BC7.WasmModuleURL = urls.wasmUASTCToBC7;\n }\n if (urls.wasmUASTCToRGBA_UNORM) {\n KTX2DecoderModule.LiteTranscoder_UASTC_RGBA_UNORM.WasmModuleURL = urls.wasmUASTCToRGBA_UNORM;\n }\n if (urls.wasmUASTCToRGBA_SRGB) {\n KTX2DecoderModule.LiteTranscoder_UASTC_RGBA_SRGB.WasmModuleURL = urls.wasmUASTCToRGBA_SRGB;\n }\n if (urls.wasmUASTCToR8_UNORM) {\n KTX2DecoderModule.LiteTranscoder_UASTC_R8_UNORM.WasmModuleURL = urls.wasmUASTCToR8_UNORM;\n }\n if (urls.wasmUASTCToRG8_UNORM) {\n KTX2DecoderModule.LiteTranscoder_UASTC_RG8_UNORM.WasmModuleURL = urls.wasmUASTCToRG8_UNORM;\n }\n if (urls.jsMSCTranscoder) {\n KTX2DecoderModule.MSCTranscoder.JSModuleURL = urls.jsMSCTranscoder;\n }\n if (urls.wasmMSCTranscoder) {\n KTX2DecoderModule.MSCTranscoder.WasmModuleURL = urls.wasmMSCTranscoder;\n }\n if (urls.wasmZSTDDecoder) {\n KTX2DecoderModule.ZSTDDecoder.WasmModuleURL = urls.wasmZSTDDecoder;\n }\n }\n if (binariesAndModulesContainer) {\n if (binariesAndModulesContainer.wasmUASTCToASTC) {\n KTX2DecoderModule.LiteTranscoder_UASTC_ASTC.WasmBinary = binariesAndModulesContainer.wasmUASTCToASTC;\n }\n if (binariesAndModulesContainer.wasmUASTCToBC7) {\n KTX2DecoderModule.LiteTranscoder_UASTC_BC7.WasmBinary = binariesAndModulesContainer.wasmUASTCToBC7;\n }\n if (binariesAndModulesContainer.wasmUASTCToRGBA_UNORM) {\n KTX2DecoderModule.LiteTranscoder_UASTC_RGBA_UNORM.WasmBinary = binariesAndModulesContainer.wasmUASTCToRGBA_UNORM;\n }\n if (binariesAndModulesContainer.wasmUASTCToRGBA_SRGB) {\n KTX2DecoderModule.LiteTranscoder_UASTC_RGBA_SRGB.WasmBinary = binariesAndModulesContainer.wasmUASTCToRGBA_SRGB;\n }\n if (binariesAndModulesContainer.wasmUASTCToR8_UNORM) {\n KTX2DecoderModule.LiteTranscoder_UASTC_R8_UNORM.WasmBinary = binariesAndModulesContainer.wasmUASTCToR8_UNORM;\n }\n if (binariesAndModulesContainer.wasmUASTCToRG8_UNORM) {\n KTX2DecoderModule.LiteTranscoder_UASTC_RG8_UNORM.WasmBinary = binariesAndModulesContainer.wasmUASTCToRG8_UNORM;\n }\n if (binariesAndModulesContainer.jsMSCTranscoder) {\n KTX2DecoderModule.MSCTranscoder.JSModule = binariesAndModulesContainer.jsMSCTranscoder;\n }\n if (binariesAndModulesContainer.wasmMSCTranscoder) {\n KTX2DecoderModule.MSCTranscoder.WasmBinary = binariesAndModulesContainer.wasmMSCTranscoder;\n }\n if (binariesAndModulesContainer.wasmZSTDDecoder) {\n KTX2DecoderModule.ZSTDDecoder.WasmBinary = binariesAndModulesContainer.wasmZSTDDecoder;\n }\n }\n}\nexport function workerFunction(KTX2DecoderModule) {\n if (typeof KTX2DecoderModule === \"undefined\" && typeof KTX2DECODER !== \"undefined\") {\n KTX2DecoderModule = KTX2DECODER;\n }\n let ktx2Decoder;\n onmessage = (event) => {\n if (!event.data) {\n return;\n }\n switch (event.data.action) {\n case \"init\": {\n const urls = event.data.urls;\n if (urls) {\n if (urls.jsDecoderModule && typeof KTX2DecoderModule === \"undefined\") {\n importScripts(urls.jsDecoderModule);\n // assuming global namespace populated by the script (UMD pattern)\n KTX2DecoderModule = KTX2DECODER;\n }\n applyConfig(urls);\n }\n if (event.data.wasmBinaries) {\n applyConfig(undefined, { ...event.data.wasmBinaries, jsDecoderModule: KTX2DecoderModule });\n }\n ktx2Decoder = new KTX2DecoderModule.KTX2Decoder();\n postMessage({ action: \"init\" });\n break;\n }\n case \"setDefaultDecoderOptions\": {\n KTX2DecoderModule.KTX2Decoder.DefaultDecoderOptions = event.data.options;\n break;\n }\n case \"decode\":\n ktx2Decoder\n .decode(event.data.data, event.data.caps, event.data.options)\n .then((data) => {\n const buffers = [];\n for (let mip = 0; mip < data.mipmaps.length; ++mip) {\n const mipmap = data.mipmaps[mip];\n if (mipmap && mipmap.data) {\n buffers.push(mipmap.data.buffer);\n }\n }\n postMessage({ action: \"decoded\", success: true, decodedData: data }, buffers);\n })\n .catch((reason) => {\n postMessage({ action: \"decoded\", success: false, msg: reason });\n });\n break;\n }\n };\n}\nexport function initializeWebWorker(worker, wasmBinaries, urls) {\n return new Promise((resolve, reject) => {\n const onError = (error) => {\n worker.removeEventListener(\"error\", onError);\n worker.removeEventListener(\"message\", onMessage);\n reject(error);\n };\n const onMessage = (message) => {\n if (message.data.action === \"init\") {\n worker.removeEventListener(\"error\", onError);\n worker.removeEventListener(\"message\", onMessage);\n resolve(worker);\n }\n };\n worker.addEventListener(\"error\", onError);\n worker.addEventListener(\"message\", onMessage);\n worker.postMessage({\n action: \"init\",\n urls,\n wasmBinaries,\n });\n });\n}\n//# sourceMappingURL=khronosTextureContainer2Worker.js.map","import { Constants } from \"../Engines/constants\";\nimport { AutoReleaseWorkerPool } from \"./workerPool\";\nimport { Tools } from \"./tools\";\nimport { TranscodeTarget } from \"core/Materials/Textures/ktx2decoderTypes\";\nimport { applyConfig, initializeWebWorker, workerFunction } from \"./khronosTextureContainer2Worker\";\n/**\n * Class that defines the default KTX2 decoder options.\n *\n * This class is useful for providing options to the KTX2 decoder to control how the source data is transcoded.\n */\nexport class DefaultKTX2DecoderOptions {\n constructor() {\n this._isDirty = true;\n this._useRGBAIfOnlyBC1BC3AvailableWhenUASTC = true;\n this._ktx2DecoderOptions = {};\n }\n /**\n * Gets the dirty flag\n */\n get isDirty() {\n return this._isDirty;\n }\n /**\n * force a (uncompressed) RGBA transcoded format if transcoding a UASTC source format and ASTC + BC7 are not available as a compressed transcoded format\n */\n get useRGBAIfASTCBC7NotAvailableWhenUASTC() {\n return this._useRGBAIfASTCBC7NotAvailableWhenUASTC;\n }\n set useRGBAIfASTCBC7NotAvailableWhenUASTC(value) {\n if (this._useRGBAIfASTCBC7NotAvailableWhenUASTC === value) {\n return;\n }\n this._useRGBAIfASTCBC7NotAvailableWhenUASTC = value;\n this._isDirty = true;\n }\n /**\n * force a (uncompressed) RGBA transcoded format if transcoding a UASTC source format and only BC1 or BC3 are available as a compressed transcoded format.\n * This property is true by default to favor speed over memory, because currently transcoding from UASTC to BC1/3 is slow because the transcoder transcodes\n * to uncompressed and then recompresses the texture\n */\n get useRGBAIfOnlyBC1BC3AvailableWhenUASTC() {\n return this._useRGBAIfOnlyBC1BC3AvailableWhenUASTC;\n }\n set useRGBAIfOnlyBC1BC3AvailableWhenUASTC(value) {\n if (this._useRGBAIfOnlyBC1BC3AvailableWhenUASTC === value) {\n return;\n }\n this._useRGBAIfOnlyBC1BC3AvailableWhenUASTC = value;\n this._isDirty = true;\n }\n /**\n * force to always use (uncompressed) RGBA for transcoded format\n */\n get forceRGBA() {\n return this._forceRGBA;\n }\n set forceRGBA(value) {\n if (this._forceRGBA === value) {\n return;\n }\n this._forceRGBA = value;\n this._isDirty = true;\n }\n /**\n * force to always use (uncompressed) R8 for transcoded format\n */\n get forceR8() {\n return this._forceR8;\n }\n set forceR8(value) {\n if (this._forceR8 === value) {\n return;\n }\n this._forceR8 = value;\n this._isDirty = true;\n }\n /**\n * force to always use (uncompressed) RG8 for transcoded format\n */\n get forceRG8() {\n return this._forceRG8;\n }\n set forceRG8(value) {\n if (this._forceRG8 === value) {\n return;\n }\n this._forceRG8 = value;\n this._isDirty = true;\n }\n /**\n * list of transcoders to bypass when looking for a suitable transcoder. The available transcoders are:\n * UniversalTranscoder_UASTC_ASTC\n * UniversalTranscoder_UASTC_BC7\n * UniversalTranscoder_UASTC_RGBA_UNORM\n * UniversalTranscoder_UASTC_RGBA_SRGB\n * UniversalTranscoder_UASTC_R8_UNORM\n * UniversalTranscoder_UASTC_RG8_UNORM\n * MSCTranscoder\n */\n get bypassTranscoders() {\n return this._bypassTranscoders;\n }\n set bypassTranscoders(value) {\n if (this._bypassTranscoders === value) {\n return;\n }\n this._bypassTranscoders = value;\n this._isDirty = true;\n }\n /** @internal */\n _getKTX2DecoderOptions() {\n if (!this._isDirty) {\n return this._ktx2DecoderOptions;\n }\n this._isDirty = false;\n const options = {\n useRGBAIfASTCBC7NotAvailableWhenUASTC: this._useRGBAIfASTCBC7NotAvailableWhenUASTC,\n forceRGBA: this._forceRGBA,\n forceR8: this._forceR8,\n forceRG8: this._forceRG8,\n bypassTranscoders: this._bypassTranscoders,\n };\n if (this.useRGBAIfOnlyBC1BC3AvailableWhenUASTC) {\n options.transcodeFormatDecisionTree = {\n UASTC: {\n transcodeFormat: [TranscodeTarget.BC1_RGB, TranscodeTarget.BC3_RGBA],\n yes: {\n transcodeFormat: TranscodeTarget.RGBA32,\n engineFormat: 32856 /* EngineFormat.RGBA8Format */,\n roundToMultiple4: false,\n },\n },\n };\n }\n this._ktx2DecoderOptions = options;\n return options;\n }\n}\n/**\n * Class for loading KTX2 files\n */\nexport class KhronosTextureContainer2 {\n static GetDefaultNumWorkers() {\n if (typeof navigator !== \"object\" || !navigator.hardwareConcurrency) {\n return 1;\n }\n // Use 50% of the available logical processors but capped at 4.\n return Math.min(Math.floor(navigator.hardwareConcurrency * 0.5), 4);\n }\n static _Initialize(numWorkers) {\n if (KhronosTextureContainer2._WorkerPoolPromise || KhronosTextureContainer2._DecoderModulePromise) {\n return;\n }\n const urls = {\n jsDecoderModule: Tools.GetBabylonScriptURL(this.URLConfig.jsDecoderModule, true),\n wasmUASTCToASTC: Tools.GetBabylonScriptURL(this.URLConfig.wasmUASTCToASTC, true),\n wasmUASTCToBC7: Tools.GetBabylonScriptURL(this.URLConfig.wasmUASTCToBC7, true),\n wasmUASTCToRGBA_UNORM: Tools.GetBabylonScriptURL(this.URLConfig.wasmUASTCToRGBA_UNORM, true),\n wasmUASTCToRGBA_SRGB: Tools.GetBabylonScriptURL(this.URLConfig.wasmUASTCToRGBA_SRGB, true),\n wasmUASTCToR8_UNORM: Tools.GetBabylonScriptURL(this.URLConfig.wasmUASTCToR8_UNORM, true),\n wasmUASTCToRG8_UNORM: Tools.GetBabylonScriptURL(this.URLConfig.wasmUASTCToRG8_UNORM, true),\n jsMSCTranscoder: Tools.GetBabylonScriptURL(this.URLConfig.jsMSCTranscoder, true),\n wasmMSCTranscoder: Tools.GetBabylonScriptURL(this.URLConfig.wasmMSCTranscoder, true),\n wasmZSTDDecoder: Tools.GetBabylonScriptURL(this.URLConfig.wasmZSTDDecoder, true),\n };\n if (numWorkers && typeof Worker === \"function\" && typeof URL !== \"undefined\") {\n KhronosTextureContainer2._WorkerPoolPromise = new Promise((resolve) => {\n const workerContent = `${applyConfig}(${workerFunction})()`;\n const workerBlobUrl = URL.createObjectURL(new Blob([workerContent], { type: \"application/javascript\" }));\n resolve(new AutoReleaseWorkerPool(numWorkers, () => initializeWebWorker(new Worker(workerBlobUrl), undefined, urls)));\n });\n }\n else {\n if (typeof KhronosTextureContainer2._KTX2DecoderModule === \"undefined\") {\n KhronosTextureContainer2._DecoderModulePromise = Tools.LoadBabylonScriptAsync(urls.jsDecoderModule).then(() => {\n KhronosTextureContainer2._KTX2DecoderModule = KTX2DECODER;\n KhronosTextureContainer2._KTX2DecoderModule.MSCTranscoder.UseFromWorkerThread = false;\n KhronosTextureContainer2._KTX2DecoderModule.WASMMemoryManager.LoadBinariesFromCurrentThread = true;\n applyConfig(urls, KhronosTextureContainer2._KTX2DecoderModule);\n return new KhronosTextureContainer2._KTX2DecoderModule.KTX2Decoder();\n });\n }\n else {\n KhronosTextureContainer2._KTX2DecoderModule.MSCTranscoder.UseFromWorkerThread = false;\n KhronosTextureContainer2._KTX2DecoderModule.WASMMemoryManager.LoadBinariesFromCurrentThread = true;\n KhronosTextureContainer2._DecoderModulePromise = Promise.resolve(new KhronosTextureContainer2._KTX2DecoderModule.KTX2Decoder());\n }\n }\n }\n /**\n * Constructor\n * @param engine The engine to use\n * @param numWorkersOrOptions The number of workers for async operations. Specify `0` to disable web workers and run synchronously in the current context.\n */\n constructor(engine, numWorkersOrOptions = KhronosTextureContainer2.DefaultNumWorkers) {\n this._engine = engine;\n const workerPoolOption = (typeof numWorkersOrOptions === \"object\" && numWorkersOrOptions.workerPool) || KhronosTextureContainer2.WorkerPool;\n if (workerPoolOption) {\n KhronosTextureContainer2._WorkerPoolPromise = Promise.resolve(workerPoolOption);\n }\n else {\n // set the KTX2 decoder module\n if (typeof numWorkersOrOptions === \"object\") {\n KhronosTextureContainer2._KTX2DecoderModule = numWorkersOrOptions?.binariesAndModulesContainer?.jsDecoderModule;\n }\n else if (typeof KTX2DECODER !== \"undefined\") {\n KhronosTextureContainer2._KTX2DecoderModule = KTX2DECODER;\n }\n const numberOfWorkers = typeof numWorkersOrOptions === \"number\" ? numWorkersOrOptions : (numWorkersOrOptions.numWorkers ?? KhronosTextureContainer2.DefaultNumWorkers);\n KhronosTextureContainer2._Initialize(numberOfWorkers);\n }\n }\n /**\n * @internal\n */\n _uploadAsync(data, internalTexture, options) {\n const caps = this._engine.getCaps();\n const compressedTexturesCaps = {\n astc: !!caps.astc,\n bptc: !!caps.bptc,\n s3tc: !!caps.s3tc,\n pvrtc: !!caps.pvrtc,\n etc2: !!caps.etc2,\n etc1: !!caps.etc1,\n };\n if (KhronosTextureContainer2._WorkerPoolPromise) {\n return KhronosTextureContainer2._WorkerPoolPromise.then((workerPool) => {\n return new Promise((resolve, reject) => {\n workerPool.push((worker, onComplete) => {\n const onError = (error) => {\n worker.removeEventListener(\"error\", onError);\n worker.removeEventListener(\"message\", onMessage);\n reject(error);\n onComplete();\n };\n const onMessage = (message) => {\n if (message.data.action === \"decoded\") {\n worker.removeEventListener(\"error\", onError);\n worker.removeEventListener(\"message\", onMessage);\n if (!message.data.success) {\n reject({ message: message.data.msg });\n }\n else {\n try {\n this._createTexture(message.data.decodedData, internalTexture, options);\n resolve();\n }\n catch (err) {\n reject({ message: err });\n }\n }\n onComplete();\n }\n };\n worker.addEventListener(\"error\", onError);\n worker.addEventListener(\"message\", onMessage);\n worker.postMessage({ action: \"setDefaultDecoderOptions\", options: KhronosTextureContainer2.DefaultDecoderOptions._getKTX2DecoderOptions() });\n const dataCopy = new Uint8Array(data.byteLength);\n dataCopy.set(new Uint8Array(data.buffer, data.byteOffset, data.byteLength));\n worker.postMessage({ action: \"decode\", data: dataCopy, caps: compressedTexturesCaps, options }, [dataCopy.buffer]);\n });\n });\n });\n }\n else if (KhronosTextureContainer2._DecoderModulePromise) {\n return KhronosTextureContainer2._DecoderModulePromise.then((decoder) => {\n if (KhronosTextureContainer2.DefaultDecoderOptions.isDirty) {\n KhronosTextureContainer2._KTX2DecoderModule.KTX2Decoder.DefaultDecoderOptions = KhronosTextureContainer2.DefaultDecoderOptions._getKTX2DecoderOptions();\n }\n return new Promise((resolve, reject) => {\n decoder\n .decode(data, caps)\n .then((data) => {\n this._createTexture(data, internalTexture);\n resolve();\n })\n .catch((reason) => {\n reject({ message: reason });\n });\n });\n });\n }\n throw new Error(\"KTX2 decoder module is not available\");\n }\n _createTexture(data, internalTexture, options) {\n const oglTexture2D = 3553; // gl.TEXTURE_2D\n this._engine._bindTextureDirectly(oglTexture2D, internalTexture);\n if (options) {\n // return back some information about the decoded data\n options.transcodedFormat = data.transcodedFormat;\n options.isInGammaSpace = data.isInGammaSpace;\n options.hasAlpha = data.hasAlpha;\n options.transcoderName = data.transcoderName;\n }\n let isUncompressedFormat = true;\n switch (data.transcodedFormat) {\n case 0x8058 /* RGBA8 */:\n internalTexture.type = Constants.TEXTURETYPE_UNSIGNED_BYTE;\n internalTexture.format = Constants.TEXTUREFORMAT_RGBA;\n break;\n case 0x8229 /* R8 */:\n internalTexture.type = Constants.TEXTURETYPE_UNSIGNED_BYTE;\n internalTexture.format = Constants.TEXTUREFORMAT_R;\n break;\n case 0x822b /* RG8 */:\n internalTexture.type = Constants.TEXTURETYPE_UNSIGNED_BYTE;\n internalTexture.format = Constants.TEXTUREFORMAT_RG;\n break;\n default:\n internalTexture.format = data.transcodedFormat;\n isUncompressedFormat = false;\n break;\n }\n internalTexture._gammaSpace = data.isInGammaSpace;\n internalTexture.generateMipMaps = data.mipmaps.length > 1;\n if (data.errors) {\n throw new Error(\"KTX2 container - could not transcode the data. \" + data.errors);\n }\n for (let t = 0; t < data.mipmaps.length; ++t) {\n const mipmap = data.mipmaps[t];\n if (!mipmap || !mipmap.data) {\n throw new Error(\"KTX2 container - could not transcode one of the image\");\n }\n if (isUncompressedFormat) {\n // uncompressed RGBA / R8 / RG8\n internalTexture.width = mipmap.width; // need to set width/height so that the call to _uploadDataToTextureDirectly uses the right dimensions\n internalTexture.height = mipmap.height;\n this._engine._uploadDataToTextureDirectly(internalTexture, mipmap.data, 0, t, undefined, true);\n }\n else {\n this._engine._uploadCompressedDataToTextureDirectly(internalTexture, data.transcodedFormat, mipmap.width, mipmap.height, mipmap.data, 0, t);\n }\n }\n internalTexture._extension = \".ktx2\";\n internalTexture.width = data.mipmaps[0].width;\n internalTexture.height = data.mipmaps[0].height;\n internalTexture.isReady = true;\n this._engine._bindTextureDirectly(oglTexture2D, null);\n }\n /**\n * Checks if the given data starts with a KTX2 file identifier.\n * @param data the data to check\n * @returns true if the data is a KTX2 file or false otherwise\n */\n static IsValid(data) {\n if (data.byteLength >= 12) {\n // '«', 'K', 'T', 'X', ' ', '2', '0', '»', '\\r', '\\n', '\\x1A', '\\n'\n const identifier = new Uint8Array(data.buffer, data.byteOffset, 12);\n if (identifier[0] === 0xab &&\n identifier[1] === 0x4b &&\n identifier[2] === 0x54 &&\n identifier[3] === 0x58 &&\n identifier[4] === 0x20 &&\n identifier[5] === 0x32 &&\n identifier[6] === 0x30 &&\n identifier[7] === 0xbb &&\n identifier[8] === 0x0d &&\n identifier[9] === 0x0a &&\n identifier[10] === 0x1a &&\n identifier[11] === 0x0a) {\n return true;\n }\n }\n return false;\n }\n}\n/**\n * URLs to use when loading the KTX2 decoder module as well as its dependencies\n * If a url is null, the default url is used (pointing to https://preview.babylonjs.com)\n * Note that jsDecoderModule can't be null and that the other dependencies will only be loaded if necessary\n * Urls you can change:\n * URLConfig.jsDecoderModule\n * URLConfig.wasmUASTCToASTC\n * URLConfig.wasmUASTCToBC7\n * URLConfig.wasmUASTCToRGBA_UNORM\n * URLConfig.wasmUASTCToRGBA_SRGB\n * URLConfig.wasmUASTCToR8_UNORM\n * URLConfig.wasmUASTCToRG8_UNORM\n * URLConfig.jsMSCTranscoder\n * URLConfig.wasmMSCTranscoder\n * URLConfig.wasmZSTDDecoder\n * You can see their default values in this PG: https://playground.babylonjs.com/#EIJH8L#29\n */\nKhronosTextureContainer2.URLConfig = {\n jsDecoderModule: \"https://cdn.babylonjs.com/babylon.ktx2Decoder.js\",\n wasmUASTCToASTC: null,\n wasmUASTCToBC7: null,\n wasmUASTCToRGBA_UNORM: null,\n wasmUASTCToRGBA_SRGB: null,\n wasmUASTCToR8_UNORM: null,\n wasmUASTCToRG8_UNORM: null,\n jsMSCTranscoder: null,\n wasmMSCTranscoder: null,\n wasmZSTDDecoder: null,\n};\n/**\n * Default number of workers used to handle data decoding\n */\nKhronosTextureContainer2.DefaultNumWorkers = KhronosTextureContainer2.GetDefaultNumWorkers();\n/**\n * Default configuration for the KTX2 decoder.\n * The options defined in this way have priority over those passed when creating a KTX2 texture with new Texture(...).\n */\nKhronosTextureContainer2.DefaultDecoderOptions = new DefaultKTX2DecoderOptions();\n//# sourceMappingURL=khronosTextureContainer2.js.map","import { KhronosTextureContainer } from \"../../../Misc/khronosTextureContainer\";\nimport { KhronosTextureContainer2 } from \"../../../Misc/khronosTextureContainer2\";\nimport { Logger } from \"../../../Misc/logger\";\nimport { Constants } from \"../../../Engines/constants\";\nfunction mapSRGBToLinear(format) {\n switch (format) {\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB_S3TC_DXT1_EXT:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGB_S3TC_DXT1;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT3;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT5;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ETC2:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGB8_ETC2;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA8_ETC2_EAC;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_4x4;\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_BPTC_UNORM:\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_BPTC_UNORM;\n }\n return null;\n}\n/**\n * Implementation of the KTX Texture Loader.\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class _KTXTextureLoader {\n constructor() {\n /**\n * Defines whether the loader supports cascade loading the different faces.\n */\n this.supportCascades = false;\n }\n /**\n * Uploads the cube texture data to the WebGL texture. It has already been bound.\n * @param data contains the texture data\n * @param texture defines the BabylonJS internal texture\n * @param createPolynomials will be true if polynomials have been requested\n * @param onLoad defines the callback to trigger once the texture is ready\n */\n loadCubeData(data, texture, createPolynomials, onLoad) {\n if (Array.isArray(data)) {\n return;\n }\n // Need to invert vScale as invertY via UNPACK_FLIP_Y_WEBGL is not supported by compressed texture\n texture._invertVScale = !texture.invertY;\n const engine = texture.getEngine();\n const ktx = new KhronosTextureContainer(data, 6);\n const loadMipmap = ktx.numberOfMipmapLevels > 1 && texture.generateMipMaps;\n engine._unpackFlipY(true);\n ktx.uploadLevels(texture, texture.generateMipMaps);\n texture.width = ktx.pixelWidth;\n texture.height = ktx.pixelHeight;\n engine._setCubeMapTextureParams(texture, loadMipmap, ktx.numberOfMipmapLevels - 1);\n texture.isReady = true;\n texture.onLoadedObservable.notifyObservers(texture);\n texture.onLoadedObservable.clear();\n if (onLoad) {\n onLoad();\n }\n }\n /**\n * Uploads the 2D texture data to the WebGL texture. It has already been bound once in the callback.\n * @param data contains the texture data\n * @param texture defines the BabylonJS internal texture\n * @param callback defines the method to call once ready to upload\n * @param options\n */\n loadData(data, texture, callback, options) {\n if (KhronosTextureContainer.IsValid(data)) {\n // Need to invert vScale as invertY via UNPACK_FLIP_Y_WEBGL is not supported by compressed texture\n texture._invertVScale = !texture.invertY;\n const ktx = new KhronosTextureContainer(data, 1);\n const mappedFormat = mapSRGBToLinear(ktx.glInternalFormat);\n if (mappedFormat) {\n texture.format = mappedFormat;\n texture._useSRGBBuffer = texture.getEngine()._getUseSRGBBuffer(true, texture.generateMipMaps);\n texture._gammaSpace = true;\n }\n else {\n texture.format = ktx.glInternalFormat;\n }\n callback(ktx.pixelWidth, ktx.pixelHeight, texture.generateMipMaps, true, () => {\n ktx.uploadLevels(texture, texture.generateMipMaps);\n }, ktx.isInvalid);\n }\n else if (KhronosTextureContainer2.IsValid(data)) {\n const ktx2 = new KhronosTextureContainer2(texture.getEngine());\n ktx2._uploadAsync(data, texture, options).then(() => {\n callback(texture.width, texture.height, texture.generateMipMaps, true, () => { }, false);\n }, (error) => {\n Logger.Warn(`Failed to load KTX2 texture data: ${error.message}`);\n callback(0, 0, false, false, () => { }, true);\n });\n }\n else {\n Logger.Error(\"texture missing KTX identifier\");\n callback(0, 0, false, false, () => { }, true);\n }\n }\n}\n//# sourceMappingURL=ktxTextureLoader.js.map"],"names":["KhronosTextureContainer","constructor","data","facesExpected","this","isInvalid","IsValid","Logger","Error","dataSize","Uint32Array","BYTES_PER_ELEMENT","headerDataView","DataView","buffer","byteOffset","littleEndian","getUint32","glType","glTypeSize","glFormat","glInternalFormat","glBaseInternalFormat","pixelWidth","pixelHeight","pixelDepth","numberOfArrayElements","numberOfFaces","numberOfMipmapLevels","bytesOfKeyValueData","Math","max","loadType","COMPRESSED_2D","uploadLevels","texture","loadMipmaps","_upload2DCompressedLevels","dataOffset","HEADER_LEN","width","height","mipmapCount","level","imageSize","Int32Array","face","byteArray","Uint8Array","getEngine","_uploadCompressedDataToTextureDirectly","format","byteLength","identifier","SourceTextureFormat","TranscodeTarget","EngineFormat","applyConfig","urls","binariesAndModulesContainer","KTX2DecoderModule","jsDecoderModule","KTX2DECODER","wasmUASTCToASTC","LiteTranscoder_UASTC_ASTC","WasmModuleURL","wasmUASTCToBC7","LiteTranscoder_UASTC_BC7","wasmUASTCToRGBA_UNORM","LiteTranscoder_UASTC_RGBA_UNORM","wasmUASTCToRGBA_SRGB","LiteTranscoder_UASTC_RGBA_SRGB","wasmUASTCToR8_UNORM","LiteTranscoder_UASTC_R8_UNORM","wasmUASTCToRG8_UNORM","LiteTranscoder_UASTC_RG8_UNORM","jsMSCTranscoder","MSCTranscoder","JSModuleURL","wasmMSCTranscoder","wasmZSTDDecoder","ZSTDDecoder","WasmBinary","JSModule","workerFunction","ktx2Decoder","onmessage","event","action","importScripts","wasmBinaries","undefined","KTX2Decoder","postMessage","DefaultDecoderOptions","options","decode","caps","then","buffers","mip","mipmaps","length","mipmap","push","success","decodedData","catch","reason","msg","COMPRESSED_3D","TEX_2D","TEX_3D","KhronosTextureContainer2","GetDefaultNumWorkers","navigator","hardwareConcurrency","min","floor","_Initialize","numWorkers","_WorkerPoolPromise","_DecoderModulePromise","Tools","GetBabylonScriptURL","URLConfig","Worker","URL","Promise","resolve","workerContent","workerBlobUrl","createObjectURL","Blob","type","AutoReleaseWorkerPool","worker","reject","onError","error","removeEventListener","onMessage","message","addEventListener","initializeWebWorker","_KTX2DecoderModule","LoadBabylonScriptAsync","UseFromWorkerThread","WASMMemoryManager","LoadBinariesFromCurrentThread","engine","numWorkersOrOptions","DefaultNumWorkers","_engine","workerPoolOption","workerPool","WorkerPool","numberOfWorkers","_uploadAsync","internalTexture","getCaps","compressedTexturesCaps","astc","bptc","s3tc","pvrtc","etc2","etc1","onComplete","_createTexture","err","_getKTX2DecoderOptions","dataCopy","set","decoder","isDirty","_bindTextureDirectly","transcodedFormat","isInGammaSpace","hasAlpha","transcoderName","isUncompressedFormat","Constants","TEXTURETYPE_UNSIGNED_BYTE","TEXTUREFORMAT_RGBA","TEXTUREFORMAT_R","TEXTUREFORMAT_RG","_gammaSpace","generateMipMaps","errors","t","_uploadDataToTextureDirectly","_extension","isReady","_isDirty","_useRGBAIfOnlyBC1BC3AvailableWhenUASTC","_ktx2DecoderOptions","useRGBAIfASTCBC7NotAvailableWhenUASTC","_useRGBAIfASTCBC7NotAvailableWhenUASTC","value","useRGBAIfOnlyBC1BC3AvailableWhenUASTC","forceRGBA","_forceRGBA","forceR8","_forceR8","forceRG8","_forceRG8","bypassTranscoders","_bypassTranscoders","transcodeFormatDecisionTree","UASTC","transcodeFormat","BC1_RGB","BC3_RGBA","yes","RGBA32","engineFormat","roundToMultiple4","_KTXTextureLoader","supportCascades","loadCubeData","createPolynomials","onLoad","Array","isArray","_invertVScale","invertY","ktx","loadMipmap","_unpackFlipY","_setCubeMapTextureParams","onLoadedObservable","notifyObservers","clear","loadData","callback","mappedFormat","TEXTUREFORMAT_COMPRESSED_SRGB_S3TC_DXT1_EXT","TEXTUREFORMAT_COMPRESSED_RGB_S3TC_DXT1","TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT","TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT3","TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT","TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT5","TEXTUREFORMAT_COMPRESSED_SRGB8_ETC2","TEXTUREFORMAT_COMPRESSED_RGB8_ETC2","TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC","TEXTUREFORMAT_COMPRESSED_RGBA8_ETC2_EAC","TEXTUREFORMAT_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2","TEXTUREFORMAT_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2","TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR","TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_4x4","TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_BPTC_UNORM","TEXTUREFORMAT_COMPRESSED_RGBA_BPTC_UNORM","mapSRGBToLinear","_useSRGBBuffer","_getUseSRGBBuffer","Warn"],"mappings":"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"}
|