diff options
| author | lonesurvivor | 2017-01-03 10:27:24 +0100 |
|---|---|---|
| committer | lonesurvivor | 2017-01-03 10:35:30 +0100 |
| commit | 8b8807e37d2530324116943896c72d381d65cc15 (patch) | |
| tree | ac5cc1466a5b527261a2ad17559b08f70f581604 | |
| parent | 3fae505128d5bfdeec42244820d0b85d0408f2b7 (diff) | |
| download | godot-8b8807e37d2530324116943896c72d381d65cc15.tar.gz godot-8b8807e37d2530324116943896c72d381d65cc15.tar.zst godot-8b8807e37d2530324116943896c72d381d65cc15.zip | |
Improvement to y_sort: make clear which item has to be drawn first
when both have the same y coordinate (prevents possible flickering). Reapplying #7241 to the 3.0 code.
| -rw-r--r-- | servers/visual/visual_server_canvas.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/servers/visual/visual_server_canvas.h b/servers/visual/visual_server_canvas.h index b5412ed60..e1edc47f9 100644 --- a/servers/visual/visual_server_canvas.h +++ b/servers/visual/visual_server_canvas.h @@ -44,7 +44,10 @@ public: _FORCE_INLINE_ bool operator()(const Item* p_left,const Item* p_right) const { - return p_left->xform.elements[2].y < p_right->xform.elements[2].y; + 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; + else + return p_left->xform.elements[2].y < p_right->xform.elements[2].y; } }; |
