From c0161c7c600ff3ab194c81b739c0204505739d02 Mon Sep 17 00:00:00 2001 From: Nathan Sweet Date: Tue, 4 Apr 2017 23:40:30 +0900 Subject: [PATCH] Skip further clipping for a triangle completely inside a clipping polygon. --- .../com/esotericsoftware/spine/utils/SkeletonClipping.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/SkeletonClipping.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/SkeletonClipping.java index c0ae5c9bd..cc7271bfe 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/SkeletonClipping.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/utils/SkeletonClipping.java @@ -87,8 +87,9 @@ public class SkeletonClipping { short index = 0; clippedVertices.clear(); clippedTriangles.clear(); - for (FloatArray convexClippingPolygon : convexClippingPolygons) { - for (int i = 0; i < trianglesLength; i += 3) { + outer: + for (int i = 0; i < trianglesLength; i += 3) { + for (FloatArray convexClippingPolygon : convexClippingPolygons) { int vertexOffset = triangles[i] << 1; float x1 = vertices[vertexOffset], y1 = vertices[vertexOffset + 1]; float u1 = uvs[vertexOffset], v1 = uvs[vertexOffset + 1]; @@ -190,6 +191,7 @@ public class SkeletonClipping { clippedTrianglesItems[s] = index++; clippedTrianglesItems[s + 1] = index++; clippedTrianglesItems[s + 2] = index++; + continue outer; } } }