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 ebe38e0d6..7c3a12959 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 @@ -56,7 +56,8 @@ public class SkeletonClipping { float[] vertices = clippingPolygon.setSize(n); clip.computeWorldVertices(slot, 0, n, vertices, 0, 2); makeClockwise(clippingPolygon); - clippingPolygons = triangulator.decompose(clippingPolygon, triangulator.triangulate(clippingPolygon)); + ShortArray triangles = triangulator.triangulate(clippingPolygon); + clippingPolygons = triangulator.decompose(clippingPolygon, triangles); for (FloatArray polygon : clippingPolygons) { makeClockwise(polygon); polygon.add(polygon.items[0]); diff --git a/spine-xna/example/src/ExampleGame.cs b/spine-xna/example/src/ExampleGame.cs index 842d3e980..0573deb5a 100644 --- a/spine-xna/example/src/ExampleGame.cs +++ b/spine-xna/example/src/ExampleGame.cs @@ -148,15 +148,15 @@ namespace Spine { else if (name == "skeleton") { skeleton.SetSkin("Pig_Normal"); skeleton.FlipY = true; - skeleton.Y -= 200; - state.SetAnimation(0, "BattleIdle", true); + // skeleton.Y -= 200; + // state.SetAnimation(0, "BattleIdle", true); } else { state.SetAnimation(0, "walk", true); } - skeleton.X += 400; - skeleton.Y += GraphicsDevice.Viewport.Height; + // skeleton.X += 400; + // skeleton.Y += GraphicsDevice.Viewport.Height; skeleton.UpdateWorldTransform(); headSlot = skeleton.FindSlot("head"); diff --git a/spine-xna/src/SkeletonDebugRenderer.cs b/spine-xna/src/SkeletonDebugRenderer.cs index 05a9e1238..f2aeaa300 100644 --- a/spine-xna/src/SkeletonDebugRenderer.cs +++ b/spine-xna/src/SkeletonDebugRenderer.cs @@ -208,11 +208,12 @@ namespace Spine { } if (DrawClippingDecomposed) { - if (!skeleton.FlipY) SkeletonClipping.MakeClockwise(clippingPolygon); - var clippingPolygons = triangulator.Decompose(clippingPolygon, triangulator.Triangulate(clippingPolygon)); + SkeletonClipping.MakeClockwise(clippingPolygon); + var triangles = triangulator.Triangulate(clippingPolygon); + var clippingPolygons = triangulator.Decompose(clippingPolygon, triangles); renderer.SetColor(clipDecomposedColor); foreach (var polygon in clippingPolygons) { - if (!skeleton.FlipY) SkeletonClipping.MakeClockwise(polygon); + SkeletonClipping.MakeClockwise(polygon); polygon.Add(polygon.Items[0]); polygon.Add(polygon.Items[1]); renderer.Polygon(polygon.Items, 0, polygon.Count >> 1);