diff options
author | mdankov <mdankov@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2012-07-04 15:06:59 +0000 |
---|---|---|
committer | mdankov <mdankov@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2012-07-04 15:06:59 +0000 |
commit | 5413a7b2f39b6c7a5d3f82419c4cef1e01a1a277 (patch) | |
tree | 54a47157d1b5ea63b8f9968d284e4598099bc298 /navit/graphics.c | |
parent | 2626db2b7238c8e4264627e86bda2659dbbca785 (diff) | |
download | navit-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.c | 8 |
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); |