mirror of
https://github.com/godotengine/godot.git
synced 2024-11-25 21:52:51 +00:00
Faster Path2D drawing with polyline
Changes the Path2D drawing to use POLYLINE instead of thick lines.
This commit is contained in:
parent
56f73a7e29
commit
6db29583f2
@ -100,16 +100,18 @@ void Path2D::_notification(int p_what) {
|
||||
#endif
|
||||
const Color color = Color(0.5, 0.6, 1.0, 0.7);
|
||||
|
||||
for (int i = 0; i < curve->get_point_count(); i++) {
|
||||
Vector2 prev_p = curve->get_point_position(i);
|
||||
_cached_draw_pts.resize(curve->get_point_count() * 8);
|
||||
int count = 0;
|
||||
|
||||
for (int j = 1; j <= 8; j++) {
|
||||
real_t frac = j / 8.0;
|
||||
for (int i = 0; i < curve->get_point_count(); i++) {
|
||||
for (int j = 0; j < 8; j++) {
|
||||
real_t frac = j * (1.0 / 8.0);
|
||||
Vector2 p = curve->interpolate(i, frac);
|
||||
draw_line(prev_p, p, color, line_width);
|
||||
prev_p = p;
|
||||
_cached_draw_pts.set(count++, p);
|
||||
}
|
||||
}
|
||||
|
||||
draw_polyline(_cached_draw_pts, color, line_width, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -38,6 +38,7 @@ class Path2D : public Node2D {
|
||||
GDCLASS(Path2D, Node2D);
|
||||
|
||||
Ref<Curve2D> curve;
|
||||
Vector<Vector2> _cached_draw_pts;
|
||||
|
||||
void _curve_changed();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user