From d85e18c5f56b622f7f6a3a7b3a58bd09235fd7c1 Mon Sep 17 00:00:00 2001 From: badlogic Date: Fri, 7 Jun 2019 10:40:30 +0200 Subject: [PATCH] [c][cpp] Call update cache when setting a new skin. --- spine-c/spine-c/src/spine/Skeleton.c | 2 ++ spine-cpp/spine-cpp/src/spine/Skeleton.cpp | 2 ++ 2 files changed, 4 insertions(+) diff --git a/spine-c/spine-c/src/spine/Skeleton.c b/spine-c/spine-c/src/spine/Skeleton.c index 6864da921..c0a49172f 100644 --- a/spine-c/spine-c/src/spine/Skeleton.c +++ b/spine-c/spine-c/src/spine/Skeleton.c @@ -535,6 +535,7 @@ int spSkeleton_setSkinByName (spSkeleton* self, const char* skinName) { } void spSkeleton_setSkin (spSkeleton* self, spSkin* newSkin) { + if (self->skin == newSkin) return; if (newSkin) { if (self->skin) spSkin_attachAll(newSkin, self, self->skin); @@ -551,6 +552,7 @@ void spSkeleton_setSkin (spSkeleton* self, spSkin* newSkin) { } } CONST_CAST(spSkin*, self->skin) = newSkin; + spSkeleton_updateCache(self); } spAttachment* spSkeleton_getAttachmentForSlotName (const spSkeleton* self, const char* slotName, const char* attachmentName) { diff --git a/spine-cpp/spine-cpp/src/spine/Skeleton.cpp b/spine-cpp/spine-cpp/src/spine/Skeleton.cpp index 636521275..aa2b65542 100644 --- a/spine-cpp/spine-cpp/src/spine/Skeleton.cpp +++ b/spine-cpp/spine-cpp/src/spine/Skeleton.cpp @@ -308,6 +308,7 @@ void Skeleton::setSkin(const String &skinName) { } void Skeleton::setSkin(Skin *newSkin) { + if (_skin == newSkin) return; if (newSkin != NULL) { if (_skin != NULL) { Skeleton &thisRef = *this; @@ -328,6 +329,7 @@ void Skeleton::setSkin(Skin *newSkin) { } _skin = newSkin; + updateCache(); } Attachment *Skeleton::getAttachment(const String &slotName, const String &attachmentName) {