summaryrefslogtreecommitdiff
path: root/navit/graphics.c
diff options
context:
space:
mode:
authorsleske <sleske@ffa7fe5e-494d-0410-b361-a75ebd5db220>2013-03-18 22:19:15 +0000
committersleske <sleske@ffa7fe5e-494d-0410-b361-a75ebd5db220>2013-03-18 22:19:15 +0000
commit543da9acfae043153e1e390e3f69b1133df64d25 (patch)
treedec21037ebd5a217ad791dd4e96fe005229eaffd /navit/graphics.c
parentebabe92513b2799ca950ddea6d768061ce4ac679 (diff)
downloadnavit-543da9acfae043153e1e390e3f69b1133df64d25.tar.gz
Fix:core:Fix signed int overflow in polygon clipping, to fix rendering errors in high zoom levels.|May be related to #1062.
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@5418 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'navit/graphics.c')
-rw-r--r--navit/graphics.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/navit/graphics.c b/navit/graphics.c
index 1cf0ac898..f8057c73b 100644
--- a/navit/graphics.c
+++ b/navit/graphics.c
@@ -1689,19 +1689,19 @@ poly_intersection(struct point *p1, struct point *p2, struct point_rect *r, int
int dy=p2->y-p1->y;
switch(edge) {
case 0:
- ret->y=p1->y+(r->lu.x-p1->x)*dy/dx;
+ ret->y=p1->y+((float)r->lu.x-p1->x)*dy/dx;
ret->x=r->lu.x;
break;
case 1:
- ret->y=p1->y+(r->rl.x-p1->x)*dy/dx;
+ ret->y=p1->y+((float)r->rl.x-p1->x)*dy/dx;
ret->x=r->rl.x;
break;
case 2:
- ret->x=p1->x+(r->lu.y-p1->y)*dx/dy;
+ ret->x=p1->x+((float)r->lu.y-p1->y)*dx/dy;
ret->y=r->lu.y;
break;
case 3:
- ret->x=p1->x+(r->rl.y-p1->y)*dx/dy;
+ ret->x=p1->x+((float)r->rl.y-p1->y)*dx/dy;
ret->y=r->rl.y;
break;
}