mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-03-26 22:49:01 +08:00
[godot] Closes #2185, custom skins need to be referenced when set on a SpineSkeleton.
This commit is contained in:
parent
08e08531d8
commit
1826d042ad
@ -69,10 +69,11 @@ void SpineSkeleton::_bind_methods() {
|
|||||||
ClassDB::bind_method(D_METHOD("set_scale_y", "v"), &SpineSkeleton::set_scale_y);
|
ClassDB::bind_method(D_METHOD("set_scale_y", "v"), &SpineSkeleton::set_scale_y);
|
||||||
}
|
}
|
||||||
|
|
||||||
SpineSkeleton::SpineSkeleton() : skeleton(nullptr), sprite(nullptr) {
|
SpineSkeleton::SpineSkeleton() : skeleton(nullptr), sprite(nullptr), last_skin(nullptr) {
|
||||||
}
|
}
|
||||||
|
|
||||||
SpineSkeleton::~SpineSkeleton() {
|
SpineSkeleton::~SpineSkeleton() {
|
||||||
|
if (last_skin.is_valid()) last_skin.unref();
|
||||||
delete skeleton;
|
delete skeleton;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -136,6 +137,8 @@ void SpineSkeleton::set_skin_by_name(const String &skin_name) {
|
|||||||
|
|
||||||
void SpineSkeleton::set_skin(Ref<SpineSkin> new_skin) {
|
void SpineSkeleton::set_skin(Ref<SpineSkin> new_skin) {
|
||||||
SPINE_CHECK(skeleton, )
|
SPINE_CHECK(skeleton, )
|
||||||
|
if (last_skin.is_valid()) last_skin.unref();
|
||||||
|
last_skin = new_skin;
|
||||||
skeleton->setSkin(new_skin.is_valid() && new_skin->get_spine_object() ? new_skin->get_spine_object() : nullptr);
|
skeleton->setSkin(new_skin.is_valid() && new_skin->get_spine_object() ? new_skin->get_spine_object() : nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -64,6 +64,7 @@ private:
|
|||||||
spine::Skeleton *skeleton;
|
spine::Skeleton *skeleton;
|
||||||
SpineSprite *sprite;
|
SpineSprite *sprite;
|
||||||
spine::Vector<float> bounds_vertex_buffer;
|
spine::Vector<float> bounds_vertex_buffer;
|
||||||
|
Ref<SpineSkin> last_skin;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
SpineSkeleton();
|
SpineSkeleton();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user