浏览代码

BufferGeometry.fromGeometry: Add support for geometry.elementsNeedUpdate. See #8338.

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

+ 7 - 6
src/core/BufferGeometry.js

@@ -330,18 +330,19 @@ Object.assign( THREE.BufferGeometry.prototype, THREE.EventDispatcher.prototype,
 
 
 			var direct = geometry.__directGeometry;
 			var direct = geometry.__directGeometry;
 
 
-			if ( direct === undefined ) {
+			if ( direct === undefined || geometry.elementsNeedUpdate === true ) {
 
 
 				return this.fromGeometry( geometry );
 				return this.fromGeometry( geometry );
 
 
 			}
 			}
 
 
-			direct.verticesNeedUpdate = geometry.verticesNeedUpdate;
-			direct.normalsNeedUpdate = geometry.normalsNeedUpdate;
-			direct.colorsNeedUpdate = geometry.colorsNeedUpdate;
-			direct.uvsNeedUpdate = geometry.uvsNeedUpdate;
-			direct.groupsNeedUpdate = geometry.groupsNeedUpdate;
+			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;
 
 
+			geometry.elementsNeedUpdate = false;
 			geometry.verticesNeedUpdate = false;
 			geometry.verticesNeedUpdate = false;
 			geometry.normalsNeedUpdate = false;
 			geometry.normalsNeedUpdate = false;
 			geometry.colorsNeedUpdate = false;
 			geometry.colorsNeedUpdate = false;