浏览代码

[unity] Prospective resizing for MeshGenerator AddSubmesh branch.

pharan 7 年之前
父节点
当前提交
8d74ef06ac
共有 1 个文件被更改,包括 7 次插入4 次删除
  1. 7 4
      spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/SpineMesh.cs

+ 7 - 4
spine-unity/Assets/Spine/Runtime/spine-unity/Mesh Generation/SpineMesh.cs

@@ -570,10 +570,13 @@ namespace Spine.Unity {
 					// Add data to vertex buffers
 					{
 						int newVertexCount = ovc + attachmentVertexCount;
-						if (newVertexCount > vertexBuffer.Items.Length) { // Manual ExposedList.Resize()
-							Array.Resize(ref vertexBuffer.Items, newVertexCount);
-							Array.Resize(ref uvBuffer.Items, newVertexCount);
-							Array.Resize(ref colorBuffer.Items, newVertexCount);
+						int oldArraySize = vertexBuffer.Items.Length;
+						if (newVertexCount > oldArraySize) {
+							int newArraySize = (int)(oldArraySize * 1.3f);
+							if (newArraySize < newVertexCount) newArraySize = newVertexCount;
+							Array.Resize(ref vertexBuffer.Items, newArraySize);
+							Array.Resize(ref uvBuffer.Items, newArraySize);
+							Array.Resize(ref colorBuffer.Items, newArraySize);
 						}
 						vertexBuffer.Count = uvBuffer.Count = colorBuffer.Count = newVertexCount;
 					}