From 7f70cb15d035f0c233b9e62b9e43aa985317c908 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 04 十一月 2024 10:22:45 +0800
Subject: [PATCH] #

---
 zy-acs-flow/src/map/insight/shelf/ShelfThree.js |   26 ++++++++++++++++++--------
 1 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/zy-acs-flow/src/map/insight/shelf/ShelfThree.js b/zy-acs-flow/src/map/insight/shelf/ShelfThree.js
index 01b60c0..beb1c2d 100644
--- a/zy-acs-flow/src/map/insight/shelf/ShelfThree.js
+++ b/zy-acs-flow/src/map/insight/shelf/ShelfThree.js
@@ -87,7 +87,7 @@
         // this.renderer.shadowMap.type = THREE.BasicShadowMap;    // 鏈�浣庨槾褰�
         // renderer.toneMapping = THREE.ReinhardToneMapping;
         renderer.toneMapping = THREE.ACESFilmicToneMapping;
-        renderer.setPixelRatio(window.devicePixelRatio);
+        renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));
         renderer.setSize(this.getFullWidth(), this.getFullHeight());
         this.dom?.appendChild(renderer.domElement);
         return renderer;
@@ -207,12 +207,13 @@
             height * cameraPosScale,
             height * cameraPosScale
         );
-        this.controls.target = new THREE.Vector3(0, maxHeight * 0.53, 0);
+        this.controls.target = new THREE.Vector3(0, maxHeight * 0.5, 0);
     }
 
     destroy = () => {
         cancelAnimationFrame(this.animationFrame);
         window.removeEventListener('resize', this.resizeHandler);
+        this.dom?.removeEventListener("click", this.handleClickEvent);
         if (this.scene) {
             while (this.scene.children.length > 0) {
                 this.removeEntity(this.scene.children[0]);
@@ -222,8 +223,13 @@
         if (this.renderer) {
             this.renderer.dispose();
             this.renderer.forceContextLoss();
-            this.renderer.context = null;
-            this.renderer.domElement = null;
+            if (this.dom && this.renderer.domElement && this.dom.contains(this.renderer.domElement)) {
+                try {
+                    this.dom.removeChild(this.renderer.domElement);
+                } catch (error) {
+                    console.warn('Failed to remove renderer.domElement:', error);
+                }
+            }
             this.renderer = null;
         }
         if (this.composer) {
@@ -238,12 +244,16 @@
             this.controls.dispose();
             this.controls = null;
         }
-        this.dom?.removeEventListener("click", this.handleClickEvent);
+        if (this.stats && this.stats.domElement && this.dom.contains(this.stats.domElement)) {
+            try {
+                this.dom.removeChild(this.stats.domElement);
+            } catch (error) {
+                console.warn('Failed to remove stats.domElement:', error);
+            }
+        }
+
         this.camera = null;
         this.objects = [];
-        while (this.dom?.firstChild) {
-            this.dom.removeChild(this.dom.firstChild);
-        }
     }
 
     removeEntity = (object) => {

--
Gitblit v1.9.1