浏览代码

Destroy cache in Instanced.setMesh if primitive exists

Clement Espeute 2 年之前
父节点
当前提交
148de57c1f
共有 1 个文件被更改,包括 6 次插入2 次删除
  1. 6 2
      h3d/prim/Instanced.hx

+ 6 - 2
h3d/prim/Instanced.hx

@@ -16,13 +16,17 @@ class Instanced extends MeshPrimitive {
 
 
 	public function setMesh( m : MeshPrimitive ) {
 	public function setMesh( m : MeshPrimitive ) {
 		if(refCount > 0) {
 		if(refCount > 0) {
-			if(primitive != null)
+			if(primitive != null) {
 				primitive.decref();
 				primitive.decref();
+				bufferCache = null;
+			}
 			m.incref();
 			m.incref();
 		}
 		}
 		primitive = m;
 		primitive = m;
 		var engine = h3d.Engine.getCurrent();
 		var engine = h3d.Engine.getCurrent();
-		if( m.buffer == null || m.buffer.isDisposed() ) m.alloc(engine);
+		if( m.buffer == null || m.buffer.isDisposed() ) {
+			m.alloc(engine);
+		}
 		buffer = m.buffer;
 		buffer = m.buffer;
 		indexes = m.indexes;
 		indexes = m.indexes;
 		baseBounds = m.getBounds();
 		baseBounds = m.getBounds();