diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2022-10-05 08:29:17 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2022-10-05 08:29:17 +0200 |
commit | 57d7e35370cea95aa8c44d79abd36ad673972410 (patch) | |
tree | de6a50b555f0b17437ed6cb027393b69ae03be29 /scene | |
parent | 47c0fe5cd65f5edcfb1d8cda5d13bd7da74eb943 (diff) | |
parent | 1518d813beaa918abe9b60eee8b44e75ba150efb (diff) |
Merge pull request #66509 from Mickeon/yes
Support chaining AtlasTextures inside other AtlasTextures
Diffstat (limited to 'scene')
-rw-r--r-- | scene/resources/texture.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/scene/resources/texture.cpp b/scene/resources/texture.cpp index 15678c9281..5a03929f98 100644 --- a/scene/resources/texture.cpp +++ b/scene/resources/texture.cpp @@ -1489,7 +1489,15 @@ void AtlasTexture::set_atlas(const Ref<Texture2D> &p_atlas) { if (atlas == p_atlas) { return; } + // Support recursive AtlasTextures. + if (Ref<AtlasTexture>(atlas).is_valid()) { + atlas->disconnect(CoreStringNames::get_singleton()->changed, callable_mp((Resource *)this, &AtlasTexture::emit_changed)); + } atlas = p_atlas; + if (Ref<AtlasTexture>(atlas).is_valid()) { + atlas->connect(CoreStringNames::get_singleton()->changed, callable_mp((Resource *)this, &AtlasTexture::emit_changed)); + } + emit_changed(); } |