summaryrefslogtreecommitdiff
path: root/third_party
diff options
context:
space:
mode:
Diffstat (limited to 'third_party')
-rw-r--r--third_party/agg23/agg_math.h6
-rw-r--r--third_party/agg23/agg_math_stroke.h8
-rw-r--r--third_party/agg23/agg_vcgen_stroke.cpp15
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)
{