Merge pull request #29360 from Calinou/improve-curve-editor-rendering
Improve the curve editor rendering
This commit is contained in:
commit
0f26d09fbf
1 changed files with 12 additions and 11 deletions
|
@ -593,7 +593,8 @@ struct CanvasItemPlotCurve {
|
|||
color2(p_color2) {}
|
||||
|
||||
void operator()(Vector2 pos0, Vector2 pos1, bool in_definition) {
|
||||
ci.draw_line(pos0, pos1, in_definition ? color1 : color2);
|
||||
// FIXME: Using a line width greater than 1 breaks curve rendering
|
||||
ci.draw_line(pos0, pos1, in_definition ? color1 : color2, 1, true);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -616,8 +617,8 @@ void CurveEditor::_draw() {
|
|||
Vector2 min_edge = get_world_pos(Vector2(0, view_size.y));
|
||||
Vector2 max_edge = get_world_pos(Vector2(view_size.x, 0));
|
||||
|
||||
const Color grid_color0 = Color(1.0, 1.0, 1.0, 0.15);
|
||||
const Color grid_color1 = Color(1.0, 1.0, 1.0, 0.07);
|
||||
const Color grid_color0 = get_color("mono_color", "Editor") * Color(1, 1, 1, 0.15);
|
||||
const Color grid_color1 = get_color("mono_color", "Editor") * Color(1, 1, 1, 0.07);
|
||||
draw_line(Vector2(min_edge.x, curve.get_min_value()), Vector2(max_edge.x, curve.get_min_value()), grid_color0);
|
||||
draw_line(Vector2(max_edge.x, curve.get_max_value()), Vector2(min_edge.x, curve.get_max_value()), grid_color0);
|
||||
draw_line(Vector2(0, min_edge.y), Vector2(0, max_edge.y), grid_color0);
|
||||
|
@ -674,13 +675,13 @@ void CurveEditor::_draw() {
|
|||
|
||||
if (i != 0) {
|
||||
Vector2 control_pos = get_tangent_view_pos(i, TANGENT_LEFT);
|
||||
draw_line(get_view_pos(pos), control_pos, tangent_color);
|
||||
draw_line(get_view_pos(pos), control_pos, tangent_color, Math::round(EDSCALE), true);
|
||||
draw_rect(Rect2(control_pos, Vector2(1, 1)).grow(2), tangent_color);
|
||||
}
|
||||
|
||||
if (i != curve.get_point_count() - 1) {
|
||||
Vector2 control_pos = get_tangent_view_pos(i, TANGENT_RIGHT);
|
||||
draw_line(get_view_pos(pos), control_pos, tangent_color);
|
||||
draw_line(get_view_pos(pos), control_pos, tangent_color, Math::round(EDSCALE), true);
|
||||
draw_rect(Rect2(control_pos, Vector2(1, 1)).grow(2), tangent_color);
|
||||
}
|
||||
}
|
||||
|
@ -689,8 +690,8 @@ void CurveEditor::_draw() {
|
|||
|
||||
draw_set_transform_matrix(_world_to_view);
|
||||
|
||||
const Color line_color = get_color("highlight_color", "Editor");
|
||||
const Color edge_line_color = get_color("font_color", "Editor");
|
||||
const Color line_color = get_color("font_color", "Editor");
|
||||
const Color edge_line_color = get_color("highlight_color", "Editor");
|
||||
|
||||
CanvasItemPlotCurve plot_func(*this, line_color, edge_line_color);
|
||||
plot_curve_accurate(curve, 4.f / view_size.x, plot_func);
|
||||
|
@ -736,10 +737,10 @@ void CurveEditor::stroke_rect(Rect2 rect, Color color) {
|
|||
Vector2 c(rect.position.x, rect.position.y + rect.size.y);
|
||||
Vector2 d(rect.position + rect.size);
|
||||
|
||||
draw_line(a, b, color);
|
||||
draw_line(b, d, color);
|
||||
draw_line(d, c, color);
|
||||
draw_line(c, a, color);
|
||||
draw_line(a, b, color, Math::round(EDSCALE));
|
||||
draw_line(b, d, color, Math::round(EDSCALE));
|
||||
draw_line(d, c, color, Math::round(EDSCALE));
|
||||
draw_line(c, a, color, Math::round(EDSCALE));
|
||||
}
|
||||
|
||||
void CurveEditor::_bind_methods() {
|
||||
|
|
Loading…
Reference in a new issue