Ver código fonte

Fix Texture loaded delay on transparent primitives

nockawa 9 anos atrás
pai
commit
244c2f06a3
1 arquivos alterados com 4 adições e 2 exclusões
  1. 4 2
      src/Canvas2d/babylon.renderablePrim2d.ts

+ 4 - 2
src/Canvas2d/babylon.renderablePrim2d.ts

@@ -665,9 +665,11 @@
 
             // For each Instance Data part, refresh it to update the data in the DynamicFloatArray
             for (let part of this._instanceDataParts) {
+                let justAllocated = false;
                 // Check if we need to allocate data elements (hidden prim which becomes visible again)
                 if (visChanged || !part.dataElements || rmChanged) {
                     part.allocElements();
+                    justAllocated = true;
                 }
 
                 InstanceClassInfo._CurCategories = gii.usedShaderCategories[gii.partIndexFromId.get(part.id.toString())];
@@ -681,7 +683,7 @@
                     }
                 }
 
-                rebuildTrans = rebuildTrans || part.arrayLengthChanged;
+                rebuildTrans = rebuildTrans || part.arrayLengthChanged || justAllocated;
             }
             this._instanceDirtyFlags = 0;
 
@@ -705,7 +707,7 @@
             let maxOff = 0;
 
             for (let part of this._instanceDataParts) {
-                if (part) {
+                if (part && part.dataElements) {
                     part.dataBuffer.pack();
                     for (let el of part.dataElements) {
                         minOff = Math.min(minOff, el.offset);