| 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 * FX_PI; | |
| + if (da > 0) { | |
| + if (!ccw) { | |
| + if (a1 > a2) { | |
| + a2 += 2 * FX_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 * FX_PI; | |
| + } else { | |
| + if (a1 < a2) { | |
| + a2 -= 2 * FX_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)); | |
| } |