From 6d6e85229a8d00eeb91728ce74872e928ca69765 Mon Sep 17 00:00:00 2001 From: Harald Csaszar Date: Thu, 22 May 2025 19:14:13 +0200 Subject: [PATCH] [monogame] Reverted commits 390f496 and 631aa17 and fixed vertices re-allocation differently. See #2854. --- .../spine-monogame/src/SkeletonRenderer.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/spine-monogame/spine-monogame/src/SkeletonRenderer.cs b/spine-monogame/spine-monogame/src/SkeletonRenderer.cs index 4945b81fd..fdf3f4db6 100644 --- a/spine-monogame/spine-monogame/src/SkeletonRenderer.cs +++ b/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];