diff options
author | RĂ©mi Verschelde <remi@verschelde.fr> | 2022-08-02 21:00:01 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-02 21:00:01 +0200 |
commit | f450f242b91249ad9f899943716d21c8657accbd (patch) | |
tree | 8f97ad100fd752d4d5f2fd3d108db6ca7bb7a854 | |
parent | 9daffa12be1c131c7802f3b3ef08e6fb8df60a98 (diff) | |
parent | cf1ce8494dbba21b41a7963cf19aed6338a64145 (diff) |
Merge pull request #62639 from Calinou/line-antialiasing-decrease-feather-width
-rw-r--r-- | servers/rendering/renderer_canvas_cull.cpp | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/servers/rendering/renderer_canvas_cull.cpp b/servers/rendering/renderer_canvas_cull.cpp index 6da48fde9c..86e5e4802b 100644 --- a/servers/rendering/renderer_canvas_cull.cpp +++ b/servers/rendering/renderer_canvas_cull.cpp @@ -605,9 +605,13 @@ void RendererCanvasCull::canvas_item_add_line(RID p_item, const Point2 &p_from, } if (p_antialiased) { - float border_size = 2.0; - if (p_width < border_size) { - border_size = p_width; + // Use the same antialiasing feather size as StyleBoxFlat's default + // (but doubled, as it's specified for both sides here). + // This value is empirically determined to provide good antialiasing quality + // while not making lines appear too soft. + float border_size = 1.25f; + if (p_width < 1.0f) { + border_size *= p_width; } Vector2 dir2 = diff.normalized(); @@ -774,9 +778,13 @@ void RendererCanvasCull::canvas_item_add_polyline(RID p_item, const Vector<Point Color *colors_ptr = colors.ptrw(); if (p_antialiased) { - float border_size = 2.0; - if (p_width < border_size) { - border_size = p_width; + // Use the same antialiasing feather size as StyleBoxFlat's default + // (but doubled, as it's specified for both sides here). + // This value is empirically determined to provide good antialiasing quality + // while not making lines appear too soft. + float border_size = 1.25f; + if (p_width < 1.0f) { + border_size *= p_width; } Color color2 = Color(1, 1, 1, 0); |