From 5951e9f6b2c782504f7da8e6a1c2d8c416414426 Mon Sep 17 00:00:00 2001 From: NathanSweet Date: Tue, 28 Jun 2016 17:28:16 +0200 Subject: [PATCH] [libgdx] Removed deferred attachment lookup. --- .../src/com/esotericsoftware/spine/Animation.java | 5 +++-- .../src/com/esotericsoftware/spine/PathConstraint.java | 2 +- .../src/com/esotericsoftware/spine/Skeleton.java | 4 ++-- .../src/com/esotericsoftware/spine/SkeletonBounds.java | 2 +- .../com/esotericsoftware/spine/SkeletonMeshRenderer.java | 2 +- .../src/com/esotericsoftware/spine/SkeletonRenderer.java | 2 +- .../com/esotericsoftware/spine/SkeletonRendererDebug.java | 6 +++--- .../spine-libgdx/src/com/esotericsoftware/spine/Skin.java | 2 +- .../spine-libgdx/src/com/esotericsoftware/spine/Slot.java | 7 +------ 9 files changed, 14 insertions(+), 18 deletions(-) diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Animation.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Animation.java index 403fdbbfb..bdd4fcc7a 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Animation.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Animation.java @@ -540,7 +540,8 @@ public class Animation { frameIndex = binarySearch(frames, time, 1) - 1; String attachmentName = attachmentNames[frameIndex]; - skeleton.slots.get(slotIndex).attachmentName = attachmentName; + Slot slot = skeleton.slots.get(slotIndex); + slot.setAttachment(skeleton.getAttachment(slot.data.index, attachmentName)); } } @@ -695,7 +696,7 @@ public class Animation { public void apply (Skeleton skeleton, float lastTime, float time, Array firedEvents, float alpha) { Slot slot = skeleton.slots.get(slotIndex); - Attachment slotAttachment = slot.getAttachment(); + Attachment slotAttachment = slot.attachment; if (!(slotAttachment instanceof VertexAttachment) || !((VertexAttachment)slotAttachment).applyDeform(attachment)) return; float[] frames = this.frames; diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/PathConstraint.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/PathConstraint.java index 4e72c26c7..7037eeb27 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/PathConstraint.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/PathConstraint.java @@ -58,7 +58,7 @@ public class PathConstraint implements Updatable { @SuppressWarnings("null") public void update () { - Attachment attachment = target.getAttachment(); + Attachment attachment = target.attachment; if (!(attachment instanceof PathAttachment)) return; float rotateMix = this.rotateMix, translateMix = this.translateMix; diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Skeleton.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Skeleton.java index a0dcc8fe9..81a2582ce 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Skeleton.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Skeleton.java @@ -203,7 +203,7 @@ public class Skeleton { for (int ii = 0, nn = data.skins.size; ii < nn; ii++) sortPathConstraintAttachment(data.skins.get(ii), slotIndex, slotBone); - Attachment attachment = slot.getAttachment(); + Attachment attachment = slot.attachment; if (attachment instanceof PathAttachment) sortPathConstraintAttachment(attachment, slotBone); Array constrained = constraint.bones; @@ -530,7 +530,7 @@ public class Skeleton { for (int i = 0, n = drawOrder.size; i < n; i++) { Slot slot = drawOrder.get(i); float[] vertices = null; - Attachment attachment = slot.getAttachment(); + Attachment attachment = slot.attachment; if (attachment instanceof RegionAttachment) vertices = ((RegionAttachment)attachment).updateWorldVertices(slot, false); else if (attachment instanceof MeshAttachment) // diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonBounds.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonBounds.java index d7e951714..7ff9d0f86 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonBounds.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonBounds.java @@ -61,7 +61,7 @@ public class SkeletonBounds { for (int i = 0; i < slotCount; i++) { Slot slot = slots.get(i); - Attachment attachment = slot.getAttachment(); + Attachment attachment = slot.attachment; if (attachment instanceof BoundingBoxAttachment) { BoundingBoxAttachment boundingBox = (BoundingBoxAttachment)attachment; boundingBoxes.add(boundingBox); diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonMeshRenderer.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonMeshRenderer.java index b1cd887e5..e6db7b114 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonMeshRenderer.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonMeshRenderer.java @@ -52,7 +52,7 @@ public class SkeletonMeshRenderer extends SkeletonRenderer { Array drawOrder = skeleton.drawOrder; for (int i = 0, n = drawOrder.size; i < n; i++) { Slot slot = drawOrder.get(i); - Attachment attachment = slot.getAttachment(); + Attachment attachment = slot.attachment; Texture texture = null; if (attachment instanceof RegionAttachment) { RegionAttachment region = (RegionAttachment)attachment; diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonRenderer.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonRenderer.java index 0a2ac34c5..5a4321727 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonRenderer.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonRenderer.java @@ -48,7 +48,7 @@ public class SkeletonRenderer { Array drawOrder = skeleton.drawOrder; for (int i = 0, n = drawOrder.size; i < n; i++) { Slot slot = drawOrder.get(i); - Attachment attachment = slot.getAttachment(); + Attachment attachment = slot.attachment; if (attachment instanceof RegionAttachment) { RegionAttachment regionAttachment = (RegionAttachment)attachment; float[] vertices = regionAttachment.updateWorldVertices(slot, premultipliedAlpha); diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonRendererDebug.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonRendererDebug.java index cda014304..9aabd2662 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonRendererDebug.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonRendererDebug.java @@ -102,7 +102,7 @@ public class SkeletonRendererDebug { Array slots = skeleton.getSlots(); for (int i = 0, n = slots.size; i < n; i++) { Slot slot = slots.get(i); - Attachment attachment = slot.getAttachment(); + Attachment attachment = slot.attachment; if (attachment instanceof RegionAttachment) { RegionAttachment regionAttachment = (RegionAttachment)attachment; float[] vertices = regionAttachment.updateWorldVertices(slot, false); @@ -118,7 +118,7 @@ public class SkeletonRendererDebug { Array slots = skeleton.getSlots(); for (int i = 0, n = slots.size; i < n; i++) { Slot slot = slots.get(i); - Attachment attachment = slot.getAttachment(); + Attachment attachment = slot.attachment; if (!(attachment instanceof MeshAttachment)) continue; MeshAttachment mesh = (MeshAttachment)attachment; mesh.updateWorldVertices(slot, false); @@ -167,7 +167,7 @@ public class SkeletonRendererDebug { Array slots = skeleton.getSlots(); for (int i = 0, n = slots.size; i < n; i++) { Slot slot = slots.get(i); - Attachment attachment = slot.getAttachment(); + Attachment attachment = slot.attachment; if (!(attachment instanceof PathAttachment)) continue; PathAttachment path = (PathAttachment)attachment; int nn = path.getWorldVerticesLength(); diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Skin.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Skin.java index 39fc4af64..b42dff56f 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Skin.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Skin.java @@ -102,7 +102,7 @@ public class Skin { for (Entry entry : oldSkin.attachments.entries()) { int slotIndex = entry.key.slotIndex; Slot slot = skeleton.slots.get(slotIndex); - if (slot.getAttachment() == entry.value) { + if (slot.attachment == entry.value) { Attachment attachment = getAttachment(slotIndex, entry.key.name); if (attachment != null) slot.setAttachment(attachment); } diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Slot.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Slot.java index 483677cd0..d3dc87862 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Slot.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Slot.java @@ -39,10 +39,9 @@ public class Slot { final SlotData data; final Bone bone; final Color color; - private Attachment attachment; + Attachment attachment; private float attachmentTime; private FloatArray attachmentVertices = new FloatArray(); - String attachmentName; public Slot (SlotData data, Bone bone) { if (data == null) throw new IllegalArgumentException("data cannot be null."); @@ -82,10 +81,6 @@ public class Slot { /** @return May be null. */ public Attachment getAttachment () { - if (attachmentName != null) { - setAttachment(bone.skeleton.getAttachment(data.index, attachmentName)); - attachmentName = null; - } return attachment; }