Merge pull request #78728 from Rindbee/reset-vp_pending-on-failure-or-not

Fix that `ViewportTexture` cannot be setup again after failed setup
This commit is contained in:
Rémi Verschelde 2023-06-27 15:45:41 +02:00 committed by GitHub
commit 3c352a5a7d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -170,6 +170,9 @@ Ref<Image> ViewportTexture::get_image() const {
}
void ViewportTexture::_setup_local_to_scene(const Node *p_loc_scene) {
// Always reset this, even if this call fails with an error.
vp_pending = false;
Node *vpn = p_loc_scene->get_node_or_null(path);
ERR_FAIL_NULL_MSG(vpn, "Path to node is invalid: '" + path + "'.");
vp = Object::cast_to<Viewport>(vpn);
@ -186,7 +189,6 @@ void ViewportTexture::_setup_local_to_scene(const Node *p_loc_scene) {
ERR_FAIL_COND(proxy.is_valid()); // Should be invalid.
proxy = RS::get_singleton()->texture_proxy_create(vp->texture_rid);
}
vp_pending = false;
vp_changed = false;
emit_changed();