aboutsummaryrefslogtreecommitdiff
path: root/servers/visual/visual_server_canvas.cpp
diff options
context:
space:
mode:
authorRémi Verschelde2018-03-20 11:23:15 +0100
committerGitHub2018-03-20 11:23:15 +0100
commita238e53da99c50491cc9567b36ac664a26b0f43f (patch)
tree119dfc8fffb56e5650e95556f57f33942317a9c9 /servers/visual/visual_server_canvas.cpp
parentd486973f58e645119f9a4d210173b41f02a335d2 (diff)
parent8eedb2afe2b7e00c6317a30e98a388f78be6ac56 (diff)
downloadgodot-a238e53da99c50491cc9567b36ac664a26b0f43f.tar.gz
godot-a238e53da99c50491cc9567b36ac664a26b0f43f.tar.zst
godot-a238e53da99c50491cc9567b36ac664a26b0f43f.zip
Diffstat (limited to 'servers/visual/visual_server_canvas.cpp')
-rw-r--r--servers/visual/visual_server_canvas.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/servers/visual/visual_server_canvas.cpp b/servers/visual/visual_server_canvas.cpp
index 3e6e52411..dd8d07f00 100644
--- a/servers/visual/visual_server_canvas.cpp
+++ b/servers/visual/visual_server_canvas.cpp
@@ -440,13 +440,17 @@ void VisualServerCanvas::canvas_item_add_polyline(RID p_item, const Vector<Point
if (p_antialiased) {
pline->line_colors.push_back(Color(1, 1, 1, 1));
}
- }
- if (p_colors.size() == 1) {
+ } else if (p_colors.size() == 1) {
pline->triangle_colors = p_colors;
pline->line_colors = p_colors;
} else {
- pline->triangle_colors.resize(pline->triangles.size());
- pline->line_colors.resize(pline->lines.size());
+ if (p_colors.size() != p_points.size()) {
+ pline->triangle_colors.push_back(p_colors[0]);
+ pline->line_colors.push_back(p_colors[0]);
+ } else {
+ pline->triangle_colors.resize(pline->triangles.size());
+ pline->line_colors.resize(pline->lines.size());
+ }
}
for (int i = 0; i < p_points.size(); i++) {