diff options
Diffstat (limited to 'third_party')
-rw-r--r-- | third_party/agg23/agg_math.h | 6 | ||||
-rw-r--r-- | third_party/agg23/agg_math_stroke.h | 8 | ||||
-rw-r--r-- | third_party/agg23/agg_vcgen_stroke.cpp | 15 |
3 files changed, 14 insertions, 15 deletions
diff --git a/third_party/agg23/agg_math.h b/third_party/agg23/agg_math.h index c0d9570aa9..e003297dff 100644 --- a/third_party/agg23/agg_math.h +++ b/third_party/agg23/agg_math.h @@ -44,7 +44,7 @@ AGG_INLINE FX_FLOAT calc_line_point_distance(FX_FLOAT x1, FX_FLOAT y1, if(d < intersection_epsilon) { return calc_distance(x1, y1, x, y); } - return FXSYS_MulDiv(x - x2, dy, d) - FXSYS_MulDiv(y - y2, dx, d); + return ((x - x2) * dy / d) - ((y - y2) * dx / d); } AGG_INLINE bool calc_intersection(FX_FLOAT ax, FX_FLOAT ay, FX_FLOAT bx, FX_FLOAT by, FX_FLOAT cx, FX_FLOAT cy, FX_FLOAT dx, FX_FLOAT dy, @@ -55,8 +55,8 @@ AGG_INLINE bool calc_intersection(FX_FLOAT ax, FX_FLOAT ay, FX_FLOAT bx, FX_FLOA if (FXSYS_fabs(den) < intersection_epsilon) { return false; } - *x = ax + FXSYS_MulDiv(bx - ax, num, den); - *y = ay + FXSYS_MulDiv(by - ay, num, den); + *x = ax + ((bx - ax) * num / den); + *y = ay + ((by - ay) * num / den); return true; } } diff --git a/third_party/agg23/agg_math_stroke.h b/third_party/agg23/agg_math_stroke.h index 402028ba67..6d7ba8a96e 100644 --- a/third_party/agg23/agg_math_stroke.h +++ b/third_party/agg23/agg_math_stroke.h @@ -198,10 +198,10 @@ void stroke_calc_join(VertexConsumer& out_vertices, { typedef typename VertexConsumer::value_type coord_type; FX_FLOAT dx1, dy1, dx2, dy2; - dx1 = FXSYS_MulDiv(width, v1.y - v0.y, len1); - dy1 = FXSYS_MulDiv(width, v1.x - v0.x, len1); - dx2 = FXSYS_MulDiv(width, v2.y - v1.y, len2); - dy2 = FXSYS_MulDiv(width, v2.x - v1.x, len2); + dx1 = width * (v1.y - v0.y) / len1; + dy1 = width * (v1.x - v0.x) / len1; + dx2 = width * (v2.y - v1.y) / len2; + dy2 = width * (v2.x - v1.x) / len2; out_vertices.remove_all(); if(calc_point_location(v0.x, v0.y, v1.x, v1.y, v2.x, v2.y) > 0) { switch(inner_join) { diff --git a/third_party/agg23/agg_vcgen_stroke.cpp b/third_party/agg23/agg_vcgen_stroke.cpp index ef8bc27864..afc4ee6f9b 100644 --- a/third_party/agg23/agg_vcgen_stroke.cpp +++ b/third_party/agg23/agg_vcgen_stroke.cpp @@ -68,14 +68,13 @@ static inline void calc_butt_cap(FX_FLOAT* cap, const vertex_dist& v0, const vertex_dist& v1, FX_FLOAT len, - FX_FLOAT width) -{ - FX_FLOAT dx = FXSYS_MulDiv(v1.y - v0.y, width, len); - FX_FLOAT dy = FXSYS_MulDiv(v1.x - v0.x, width, len); - cap[0] = v0.x - dx; - cap[1] = v0.y + dy; - cap[2] = v0.x + dx; - cap[3] = v0.y - dy; + FX_FLOAT width) { + FX_FLOAT dx = (v1.y - v0.y) * width / len; + FX_FLOAT dy = (v1.x - v0.x) * width / len; + cap[0] = v0.x - dx; + cap[1] = v0.y + dy; + cap[2] = v0.x + dx; + cap[3] = v0.y - dy; } void vcgen_stroke::rewind(unsigned) { |