diff --git a/spine-c/src/spine/Skeleton.c b/spine-c/src/spine/Skeleton.c index 4f455251b..1c89a4cea 100644 --- a/spine-c/src/spine/Skeleton.c +++ b/spine-c/src/spine/Skeleton.c @@ -120,6 +120,7 @@ void Skeleton_setBonesToSetupPose (const Skeleton* self) { void Skeleton_setSlotsToSetupPose (const Skeleton* self) { int i; + memcpy(self->drawOrder, self->slots, self->slotCount * sizeof(int)); for (i = 0; i < self->slotCount; ++i) Slot_setToSetupPose(self->slots[i]); } diff --git a/spine-csharp/src/Skeleton.cs b/spine-csharp/src/Skeleton.cs index fa0e54ff0..1ad427c88 100644 --- a/spine-csharp/src/Skeleton.cs +++ b/spine-csharp/src/Skeleton.cs @@ -110,6 +110,8 @@ namespace Spine { public void SetSlotsToSetupPose () { List slots = this.slots; + drawOrder.Clear(); + drawOrder.AddRange(slots); for (int i = 0, n = slots.Count; i < n; i++) slots[i].SetToSetupPose(i); } diff --git a/spine-libgdx/src/com/esotericsoftware/spine/Skeleton.java b/spine-libgdx/src/com/esotericsoftware/spine/Skeleton.java index 99b66cbd5..a9409bd02 100644 --- a/spine-libgdx/src/com/esotericsoftware/spine/Skeleton.java +++ b/spine-libgdx/src/com/esotericsoftware/spine/Skeleton.java @@ -120,9 +120,8 @@ public class Skeleton { } public void setSlotsToSetupPose () { - drawOrder.clear(); - drawOrder.addAll(slots); Array slots = this.slots; + System.arraycopy(slots.items, 0, drawOrder.items, 0, slots.size); for (int i = 0, n = slots.size; i < n; i++) slots.get(i).setToSetupPose(i); }