浏览代码

BufferGeometry: Set elementNeedsUpdate to false after recreating DirectGeometry. Closes #9359

Mr.doob 9 年之前
父节点
当前提交
723979c050
共有 1 个文件被更改,包括 13 次插入7 次删除
  1. 13 7
      src/core/BufferGeometry.js

+ 13 - 7
src/core/BufferGeometry.js

@@ -344,19 +344,25 @@ Object.assign( BufferGeometry.prototype, EventDispatcher.prototype, {
 
 
 			var direct = geometry.__directGeometry;
 			var direct = geometry.__directGeometry;
 
 
-			if ( direct === undefined || geometry.elementsNeedUpdate === true ) {
+			if ( geometry.elementsNeedUpdate === true ) {
+
+				direct = undefined;
+				geometry.elementsNeedUpdate = false;
+
+			}
+
+			if ( direct === undefined ) {
 
 
 				return this.fromGeometry( geometry );
 				return this.fromGeometry( geometry );
 
 
 			}
 			}
 
 
-			direct.verticesNeedUpdate = geometry.verticesNeedUpdate || geometry.elementsNeedUpdate;
-			direct.normalsNeedUpdate = geometry.normalsNeedUpdate || geometry.elementsNeedUpdate;
-			direct.colorsNeedUpdate = geometry.colorsNeedUpdate || geometry.elementsNeedUpdate;
-			direct.uvsNeedUpdate = geometry.uvsNeedUpdate || geometry.elementsNeedUpdate;
-			direct.groupsNeedUpdate = geometry.groupsNeedUpdate || geometry.elementsNeedUpdate;
+			direct.verticesNeedUpdate = geometry.verticesNeedUpdate;
+			direct.normalsNeedUpdate = geometry.normalsNeedUpdate;
+			direct.colorsNeedUpdate = geometry.colorsNeedUpdate;
+			direct.uvsNeedUpdate = geometry.uvsNeedUpdate;
+			direct.groupsNeedUpdate = geometry.groupsNeedUpdate;
 
 
-			geometry.elementsNeedUpdate = false;
 			geometry.verticesNeedUpdate = false;
 			geometry.verticesNeedUpdate = false;
 			geometry.normalsNeedUpdate = false;
 			geometry.normalsNeedUpdate = false;
 			geometry.colorsNeedUpdate = false;
 			geometry.colorsNeedUpdate = false;