diff options
author | corvid <corvid@lavabit.com> | 2011-01-22 16:20:53 +0000 |
---|---|---|
committer | corvid <corvid@lavabit.com> | 2011-01-22 16:20:53 +0000 |
commit | f742776ac7393cc98fa2e81c554620e595305774 (patch) | |
tree | 96af9d287d81bdd4420d58237457c87393fcd988 /dw/fltkviewbase.cc | |
parent | be11b1f245a443a7fee191c63338a590d2940e89 (diff) |
convex polygons for border drawing
Diffstat (limited to 'dw/fltkviewbase.cc')
-rw-r--r-- | dw/fltkviewbase.cc | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/dw/fltkviewbase.cc b/dw/fltkviewbase.cc index 1fa93e5a..f29c9a12 100644 --- a/dw/fltkviewbase.cc +++ b/dw/fltkviewbase.cc @@ -476,23 +476,30 @@ void FltkViewBase::drawArc (core::style::Color *color, void FltkViewBase::drawPolygon (core::style::Color *color, core::style::Color::Shading shading, - bool filled, int points[][2], int npoints) + bool filled, bool convex, int points[][2], + int npoints) { if (npoints > 0) { fl_color(((FltkColor*)color)->colors[shading]); - if (filled) - fl_begin_complex_polygon(); - else + if (filled) { + if (convex) + fl_begin_polygon(); + else + fl_begin_complex_polygon(); + } else fl_begin_loop(); for (int i = 0; i < npoints; i++) { fl_vertex(translateCanvasXToViewX(points[i][0]), translateCanvasYToViewY(points[i][1])); } - if (filled) - fl_end_complex_polygon(); - else + if (filled) { + if (convex) + fl_end_polygon(); + else + fl_end_complex_polygon(); + } else fl_end_loop(); } } |