mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-09 16:48:43 +08:00
[monogame] Reverted commits 390f496 and 631aa17 and fixed vertices re-allocation differently. See #2854.
This commit is contained in:
parent
51b908db89
commit
6d6e85229a
@ -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];
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user