aboutsummaryrefslogtreecommitdiff
path: root/scene/main/viewport.cpp
diff options
context:
space:
mode:
authorJuan Linietsky2016-01-22 18:54:43 -0300
committerJuan Linietsky2016-01-22 18:54:43 -0300
commit9d571d8eacb07e1b96de049feca976b3309cd21d (patch)
tree4c9a188cbb1b3f333127b03d3948bdfa5c85df1e /scene/main/viewport.cpp
parente7eb3327990a189884df53796c67a99fc119bd38 (diff)
downloadgodot-9d571d8eacb07e1b96de049feca976b3309cd21d.tar.gz
godot-9d571d8eacb07e1b96de049feca976b3309cd21d.tar.zst
godot-9d571d8eacb07e1b96de049feca976b3309cd21d.zip
-Fix viewport converting the scren in grayness, fixes #3406
Diffstat (limited to 'scene/main/viewport.cpp')
-rw-r--r--scene/main/viewport.cpp20
1 files changed, 12 insertions, 8 deletions
diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp
index 5e8868c32..9297d49e2 100644
--- a/scene/main/viewport.cpp
+++ b/scene/main/viewport.cpp
@@ -331,21 +331,25 @@ void Viewport::_notification(int p_what) {
}
}
- if (!render_target)
- _vp_enter_tree();
- this->parent=NULL;
- Node *parent=get_parent();
+ parent=NULL;
+ Node *parent_node=get_parent();
- if (parent) {
+ while(parent_node) {
- while(parent && !(this->parent=parent->cast_to<Viewport>())) {
+ parent = parent_node->cast_to<Viewport>();
+ if (parent)
+ break;
- parent=parent->get_parent();
- }
+ parent_node=parent_node->get_parent();
}
+
+ if (!render_target)
+ _vp_enter_tree();
+
+
current_canvas=find_world_2d()->get_canvas();
VisualServer::get_singleton()->viewport_set_scenario(viewport,find_world()->get_scenario());
VisualServer::get_singleton()->viewport_attach_canvas(viewport,current_canvas);