|
@@ -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];
|