breakin 4 years ago
parent
commit
54714dee6c
3 changed files with 11 additions and 9 deletions
  1. 1 1
      src/Meshes/geometry.ts
  2. 4 2
      src/Meshes/instancedMesh.ts
  3. 6 6
      src/Meshes/mesh.ts

+ 1 - 1
src/Meshes/geometry.ts

@@ -371,7 +371,7 @@ export class Geometry implements IGetSetVerticesData {
     }
 
     /** @hidden */
-    public _bind(effect: Nullable<Effect>, indexToBind?: Nullable<DataBuffer>, overrideVertexBuffers?: { [kind:string]: Nullable<VertexBuffer>}, overrideVertexArrayObjects?: {[key: string]: WebGLVertexArrayObject}): void {
+    public _bind(effect: Nullable<Effect>, indexToBind?: Nullable<DataBuffer>, overrideVertexBuffers?: { [kind: string]: Nullable<VertexBuffer>}, overrideVertexArrayObjects?: {[key: string]: WebGLVertexArrayObject}): void {
         if (!effect) {
             return;
         }

+ 4 - 2
src/Meshes/instancedMesh.ts

@@ -633,8 +633,8 @@ Mesh.prototype.invalidateInstanceVertexArrayObject = function() {
         this.getEngine().releaseVertexArrayObject(this._userInstancedBuffersStorage.vertexArrayObjects[kind]);
     }
 
-    this._userInstancedBuffersStorage.vertexArrayObjects = {}
-}
+    this._userInstancedBuffersStorage.vertexArrayObjects = {};
+};
 
 Mesh.prototype._disposeInstanceSpecificData = function() {
     if (this._instanceDataStorage.instancesBuffer) {
@@ -652,5 +652,7 @@ Mesh.prototype._disposeInstanceSpecificData = function() {
         }
     }
 
+    this.invalidateInstanceVertexArrayObject();
+
     this.instancedBuffers = {};
 };

+ 6 - 6
src/Meshes/mesh.ts

@@ -1522,7 +1522,7 @@ export class Mesh extends AbstractMesh implements IGetSetVerticesData {
 
         // VBOs
         if (!this._userInstancedBuffersStorage) {
-            this._geometry._bind(effect, indexToBind)
+            this._geometry._bind(effect, indexToBind);
         } else {
             this._geometry._bind(effect, indexToBind, this._userInstancedBuffersStorage.vertexBuffers, this._userInstancedBuffersStorage.vertexArrayObjects);
         }
@@ -1692,10 +1692,10 @@ export class Mesh extends AbstractMesh implements IGetSetVerticesData {
                 };
             }
 
-            this._userInstancedBuffersStorage.vertexBuffers["world0"] = instancesBuffer.createVertexBuffer("world0", 0, 4)
-            this._userInstancedBuffersStorage.vertexBuffers["world1"] = instancesBuffer.createVertexBuffer("world0", 4, 4)
-            this._userInstancedBuffersStorage.vertexBuffers["world2"] = instancesBuffer.createVertexBuffer("world0", 8, 4)
-            this._userInstancedBuffersStorage.vertexBuffers["world3"] = instancesBuffer.createVertexBuffer("world0", 12, 4)
+            this._userInstancedBuffersStorage.vertexBuffers["world0"] = instancesBuffer.createVertexBuffer("world0", 0, 4);
+            this._userInstancedBuffersStorage.vertexBuffers["world1"] = instancesBuffer.createVertexBuffer("world0", 4, 4);
+            this._userInstancedBuffersStorage.vertexBuffers["world2"] = instancesBuffer.createVertexBuffer("world0", 8, 4);
+            this._userInstancedBuffersStorage.vertexBuffers["world3"] = instancesBuffer.createVertexBuffer("world0", 12, 4);
         } else {
             if (!this._instanceDataStorage.isFrozen) {
                 instancesBuffer!.updateDirectly(instanceStorage.instancesData, 0, instancesCount);
@@ -1802,7 +1802,7 @@ export class Mesh extends AbstractMesh implements IGetSetVerticesData {
                 }
             }
             if (this._userInstancedBuffersStorage.vertexArrayObjects) {
-                this._userInstancedBuffersStorage.vertexArrayObjects = {}
+                this._userInstancedBuffersStorage.vertexArrayObjects = {};
             }
         }
         super._rebuild();