diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2019-10-26 23:09:24 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-26 23:09:24 +0200 |
commit | 3eb8bd08ec8ac9cf039b9bcb78366730a4ade976 (patch) | |
tree | 3b06a71599da6cb5cb4f3d051ff17a618074d0fa /drivers/gles3/rasterizer_canvas_gles3.cpp | |
parent | c994eaa8522d1ba4f247458a14701d0ba297a2f6 (diff) | |
parent | bdaedb601ce3f3bd87cc8fb773ae8ac912fd457b (diff) |
Merge pull request #32657 from ptrojahn/lines
Fix draw_rect
Diffstat (limited to 'drivers/gles3/rasterizer_canvas_gles3.cpp')
-rw-r--r-- | drivers/gles3/rasterizer_canvas_gles3.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/gles3/rasterizer_canvas_gles3.cpp b/drivers/gles3/rasterizer_canvas_gles3.cpp index edffe852a2..e09ba755ea 100644 --- a/drivers/gles3/rasterizer_canvas_gles3.cpp +++ b/drivers/gles3/rasterizer_canvas_gles3.cpp @@ -548,8 +548,10 @@ void RasterizerCanvasGLES3::_canvas_item_render_commands(Item *p_item, Item *cur if (line->width <= 1) { Vector2 verts[2] = { - Vector2(line->from.x, line->from.y), - Vector2(line->to.x, line->to.y) + // Offset the line slightly to make sure we always draw the pixel at the from coordinate. + // Without this, corners of rectangles might be missing a pixel. (See diamond exit rule and #32657) + Vector2(Math::floor(line->from.x) + 0.5, Math::floor(line->from.y) + 0.5), + Vector2(Math::floor(line->to.x) + 0.5, Math::floor(line->to.y) + 0.5) }; #ifdef GLES_OVER_GL |