diff options
| author | Juan Linietsky | 2017-06-22 09:32:47 -0300 |
|---|---|---|
| committer | Juan Linietsky | 2017-06-22 09:33:20 -0300 |
| commit | 57ebad28a934361c52c84b7b010b1d983cce3efc (patch) | |
| tree | 997920f45f7bad4f58b332ab7799e70c883a30d5 /servers/visual/visual_server_canvas.cpp | |
| parent | fb72edf45e160a3b2b6ab74d8254a4c52a5063a2 (diff) | |
| download | godot-57ebad28a934361c52c84b7b010b1d983cce3efc.tar.gz godot-57ebad28a934361c52c84b7b010b1d983cce3efc.tar.zst godot-57ebad28a934361c52c84b7b010b1d983cce3efc.zip | |
Order of 2D nodes in tree affects drawing properly again.
Diffstat (limited to 'servers/visual/visual_server_canvas.cpp')
| -rw-r--r-- | servers/visual/visual_server_canvas.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/servers/visual/visual_server_canvas.cpp b/servers/visual/visual_server_canvas.cpp index 616990b31..1227863b7 100644 --- a/servers/visual/visual_server_canvas.cpp +++ b/servers/visual/visual_server_canvas.cpp @@ -58,6 +58,12 @@ void VisualServerCanvas::_render_canvas_item(Item *p_canvas_item, const Transfor if (!ci->visible) return; + if (p_canvas_item->children_order_dirty) { + + p_canvas_item->child_items.sort_custom<ItemIndexSort>(); + p_canvas_item->children_order_dirty = false; + } + Rect2 rect = ci->get_rect(); Transform2D xform = p_transform * ci->xform; Rect2 global_rect = xform.xform(rect); @@ -171,6 +177,12 @@ void VisualServerCanvas::render_canvas(Canvas *p_canvas, const Transform2D &p_tr VSG::canvas_render->canvas_begin(); + if (p_canvas->children_order_dirty) { + + p_canvas->child_items.sort(); + p_canvas->children_order_dirty = false; + } + int l = p_canvas->child_items.size(); Canvas::ChildItem *ci = p_canvas->child_items.ptr(); |
