diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2018-11-12 20:42:55 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-12 20:42:55 +0100 |
commit | 8e4837f35778e917370e802c167ce1fbd07b068c (patch) | |
tree | a0702e5e5af047f052289ec1b8083dcd3592bdd4 /servers/visual/visual_server_canvas.h | |
parent | 2815e708a0ebf3ed13ca8f96dd64b41c991350be (diff) | |
parent | 6b8d6e3b07c83da1c365f9ad79e84e5147ec26f7 (diff) | |
download | redot-engine-8e4837f35778e917370e802c167ce1fbd07b068c.tar.gz |
Merge pull request #23407 from bojidar-bg/3281-ysort-recursive
Y-Sort children together in nested YSorts
Diffstat (limited to 'servers/visual/visual_server_canvas.h')
-rw-r--r-- | servers/visual/visual_server_canvas.h | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/servers/visual/visual_server_canvas.h b/servers/visual/visual_server_canvas.h index d12bd520bf..4b7422b15a 100644 --- a/servers/visual/visual_server_canvas.h +++ b/servers/visual/visual_server_canvas.h @@ -48,6 +48,9 @@ public: bool use_parent_material; int index; bool children_order_dirty; + int ysort_children_count; + Transform2D ysort_xform; + Vector2 ysort_pos; Vector<Item *> child_items; @@ -61,6 +64,9 @@ public: use_parent_material = false; z_relative = true; index = 0; + ysort_children_count = -1; + ysort_xform = Transform2D(); + ysort_pos = Vector2(); } }; @@ -76,10 +82,10 @@ public: _FORCE_INLINE_ bool operator()(const Item *p_left, const Item *p_right) const { - if (Math::abs(p_left->xform.elements[2].y - p_right->xform.elements[2].y) < CMP_EPSILON) - return p_left->xform.elements[2].x < p_right->xform.elements[2].x; + if (Math::abs(p_left->ysort_pos.y - p_right->ysort_pos.y) < CMP_EPSILON) + return p_left->ysort_pos.x < p_right->ysort_pos.x; else - return p_left->xform.elements[2].y < p_right->xform.elements[2].y; + return p_left->ysort_pos.y < p_right->ysort_pos.y; } }; |