From 5a4537cbc799c782aaf6fdf360d782d652b43101 Mon Sep 17 00:00:00 2001 From: Robert Yevdokimov <105675984+ryevdokimov@users.noreply.github.com> Date: Mon, 2 Feb 2026 13:00:55 -0500 Subject: [PATCH] Add anti-aliasing to transform gizmo rotation arc --- editor/scene/3d/node_3d_editor_plugin.cpp | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/editor/scene/3d/node_3d_editor_plugin.cpp b/editor/scene/3d/node_3d_editor_plugin.cpp index 350e090a2b2..cc96be62831 100644 --- a/editor/scene/3d/node_3d_editor_plugin.cpp +++ b/editor/scene/3d/node_3d_editor_plugin.cpp @@ -3802,14 +3802,10 @@ void Node3DEditorViewport::_draw() { } Color circle_color = (_edit.plane == TRANSFORM_VIEW) ? Color(1.0, 1.0, 1.0, 0.8) : handle_color.from_hsv(handle_color.get_h(), 0.6, 1.0, 0.8); - for (int i = 0; i < circle_points.size() - 1; i++) { - RenderingServer::get_singleton()->canvas_item_add_line( - ci, - circle_points[i], - circle_points[i + 1], - circle_color, - Math::round(2 * EDSCALE)); - } + Vector circle_colors; + circle_colors.resize(circle_points.size()); + circle_colors.fill(circle_color); + RenderingServer::get_singleton()->canvas_item_add_polyline(ci, circle_points, circle_colors, Math::round(2 * EDSCALE), true); const int segments = 64; float display_angle = _edit.display_rotation_angle; @@ -3866,7 +3862,8 @@ void Node3DEditorViewport::_draw() { center, start_point_2d, edge_color, - Math::round(2 * EDSCALE)); + Math::round(2 * EDSCALE), + true); Vector3 end_point_3d = _edit.center + gizmo_scale * rotation_radius * (right * Math::cos(_edit.accumulated_rotation_angle) + forward * Math::sin(_edit.accumulated_rotation_angle)); Point2 end_point_2d = point_to_screen(end_point_3d); @@ -3875,7 +3872,8 @@ void Node3DEditorViewport::_draw() { center, end_point_2d, edge_color, - Math::round(2 * EDSCALE)); + Math::round(2 * EDSCALE), + true); } if (_edit.show_rotation_line) {