| diff --git a/third_party/agg23/agg_math_stroke.h b/third_party/agg23/agg_math_stroke.h |
| index 6d7ba8a..2b06b1b 100644 |
| --- a/third_party/agg23/agg_math_stroke.h |
| +++ b/third_party/agg23/agg_math_stroke.h |
| @@ -60,28 +60,30 @@ void stroke_calc_arc(VertexConsumer& out_vertices, |
| } |
| da = acos(width / (width + ((1.0f / 8) / approximation_scale))) * 2; |
| out_vertices.add(coord_type(x + dx1, y + dy1)); |
| - if(!ccw) { |
| - if(a1 > a2) { |
| - a2 += 2 * FXSYS_PI; |
| + if (da > 0) { |
| + if (!ccw) { |
| + if (a1 > a2) { |
| + a2 += 2 * FXSYS_PI; |
| } |
| a2 -= da / 4; |
| a1 += da; |
| - while(a1 < a2) { |
| + while (a1 < a2) { |
| out_vertices.add(coord_type(x + (width * cos(a1)), |
| y + (width * sin(a1)))); |
| - a1 += da; |
| + a1 += da; |
| } |
| - } else { |
| - if(a1 < a2) { |
| - a2 -= 2 * FXSYS_PI; |
| + } else { |
| + if (a1 < a2) { |
| + a2 -= 2 * FXSYS_PI; |
| } |
| a2 += da / 4; |
| a1 -= da; |
| - while(a1 > a2) { |
| + while (a1 > a2) { |
| out_vertices.add(coord_type(x + (width * cos(a1)), |
| y + (width * sin(a1)))); |
| - a1 -= da; |
| + a1 -= da; |
| } |
| + } |
| } |
| out_vertices.add(coord_type(x + dx2, y + dy2)); |
| } |