summaryrefslogtreecommitdiff
path: root/navit/graphics.c
diff options
context:
space:
mode:
authormdankov <mdankov@ffa7fe5e-494d-0410-b361-a75ebd5db220>2012-07-04 15:06:59 +0000
committermdankov <mdankov@ffa7fe5e-494d-0410-b361-a75ebd5db220>2012-07-04 15:06:59 +0000
commit5413a7b2f39b6c7a5d3f82419c4cef1e01a1a277 (patch)
tree54a47157d1b5ea63b8f9968d284e4598099bc298 /navit/graphics.c
parent2626db2b7238c8e4264627e86bda2659dbbca785 (diff)
downloadnavit-svn-5413a7b2f39b6c7a5d3f82419c4cef1e01a1a277.tar.gz
Add:core:Adaptive plyline generalization, resolves #1050.
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@5178 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'navit/graphics.c')
-rw-r--r--navit/graphics.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/navit/graphics.c b/navit/graphics.c
index 8552c20d..f2b5f3cd 100644
--- a/navit/graphics.c
+++ b/navit/graphics.c
@@ -394,6 +394,8 @@ struct graphics_font * graphics_named_font_new(struct graphics *gra, char *font,
}
void graphics_font_destroy(struct graphics_font *gra_font) {
+ if(!gra_font)
+ return;
gra_font->meth.font_destroy(gra_font->priv);
g_free(gra_font);
}
@@ -1883,7 +1885,7 @@ displayitem_draw(struct displayitem *di, void *dummy, struct display_context *dc
graphics_draw_polygon_clipped(gra, gc, pa, count);
break;
case element_polyline:
- {
+ {
gc->meth.gc_set_linewidth(gc->priv, 1);
if (e->u.polyline.width > 0 && e->u.polyline.dash_num > 0)
graphics_gc_set_dashes(gc, e->u.polyline.width,
@@ -2320,7 +2322,7 @@ void graphics_displaylist_draw(struct graphics *gra, struct displaylist *display
if(displaylist->dc.trans!=trans)
displaylist->dc.trans=transform_dup(trans);
displaylist->dc.gra=gra;
- displaylist->dc.mindist=transform_get_scale(trans)/2;
+ displaylist->dc.mindist=flags&512?15:2;
// FIXME find a better place to set the background color
if (l) {
graphics_gc_set_background(gra->gc[0], &l->color);
@@ -2657,7 +2659,7 @@ int graphics_displayitem_within_dist(struct displaylist *displaylist, struct dis
struct point *pa=g_alloca(sizeof(struct point)*displaylist->dc.maxlen);
int count;
- count=transform(displaylist->dc.trans, displaylist->dc.pro, di->c, pa, di->count, 1, 0, NULL);
+ count=transform(displaylist->dc.trans, displaylist->dc.pro, di->c, pa, di->count, 0, 0, NULL);
if (di->item.type < type_line) {
return within_dist_point(p, &pa[0], dist);