Bläddra i källkod

[monogame] Reverted commits 390f496 and 631aa17 and fixed vertices re-allocation differently. See #2854.

Harald Csaszar 3 månader sedan
förälder
incheckning
6d6e85229a
1 ändrade filer med 6 tillägg och 6 borttagningar
  1. 6 6
      spine-monogame/spine-monogame/src/SkeletonRenderer.cs

+ 6 - 6
spine-monogame/spine-monogame/src/SkeletonRenderer.cs

@@ -132,6 +132,7 @@ namespace Spine {
 				float attachmentColorR, attachmentColorG, attachmentColorB, attachmentColorA;
 				object textureObject = null;
 				int verticesCount = 0;
+				float[] vertices = this.vertices;
 				int indicesCount = 0;
 				int[] indices = null;
 				float[] uvs = null;
@@ -150,7 +151,7 @@ namespace Spine {
 					MeshAttachment mesh = (MeshAttachment)attachment;
 					attachmentColorR = mesh.R; attachmentColorG = mesh.G; attachmentColorB = mesh.B; attachmentColorA = mesh.A;
 					int vertexCount = mesh.WorldVerticesLength;
-					if (vertices.Length < vertexCount) vertices = new float[vertexCount];
+					if (vertices.Length < vertexCount) this.vertices = vertices = new float[vertexCount];
 					verticesCount = vertexCount >> 1;
 					mesh.ComputeWorldVertices(slot, vertices);
 					indicesCount = mesh.Triangles.Length;
@@ -210,10 +211,9 @@ namespace Spine {
 				darkColor.A = premultipliedAlpha ? (byte)255 : (byte)0;
 
 				// clip
-				float[] usedVertices = vertices;
 				if (clipper.IsClipping) {
-					clipper.ClipTriangles(usedVertices, indices, indicesCount, uvs);
-					usedVertices = clipper.ClippedVertices.Items;
+					clipper.ClipTriangles(vertices, indices, indicesCount, uvs);
+					vertices = clipper.ClippedVertices.Items;
 					verticesCount = clipper.ClippedVertices.Count >> 1;
 					indices = clipper.ClippedTriangles.Items;
 					indicesCount = clipper.ClippedTriangles.Count;
@@ -240,8 +240,8 @@ namespace Spine {
 				for (int ii = 0, v = 0, nn = verticesCount << 1; v < nn; ii++, v += 2) {
 					itemVertices[ii].Color = color;
 					itemVertices[ii].Color2 = darkColor;
-					itemVertices[ii].Position.X = usedVertices[v];
-					itemVertices[ii].Position.Y = usedVertices[v + 1];
+					itemVertices[ii].Position.X = vertices[v];
+					itemVertices[ii].Position.Y = vertices[v + 1];
 					itemVertices[ii].Position.Z = attachmentZOffset;
 					itemVertices[ii].TextureCoordinate.X = uvs[v];
 					itemVertices[ii].TextureCoordinate.Y = uvs[v + 1];