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
commit950bdce4b10d685c958c208d2bc15d9abc82565e (patch)
treedec21037ebd5a217ad791dd4e96fe005229eaffd /navit/graphics.c
parent245e568a0eeed29d9052b711c6cea941c2232e49 (diff)
downloadnavit-svn-950bdce4b10d685c958c208d2bc15d9abc82565e.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 1cf0ac89..f8057c73 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;
}