X-Git-Url: https://git.octo.it/?p=rrdtool.git;a=blobdiff_plain;f=src%2Frrd_gfx.c;h=5a8c289dffcb31d54e2bfac406e8a209ab6efcc8;hp=0a443443cf831b5fba8bfc8298750fbf7561bb56;hb=f207955a7e325708d056d3dd912863dc9930a71c;hpb=99b9b7fd0cad0edea57c08fdf939d368c4c0ec45 diff --git a/src/rrd_gfx.c b/src/rrd_gfx.c index 0a44344..5a8c289 100644 --- a/src/rrd_gfx.c +++ b/src/rrd_gfx.c @@ -1,5 +1,5 @@ /**************************************************************************** - * RRDtool 1.2rc2 Copyright by Tobi Oetiker, 1997-2005 + * RRDtool 1.2rc6 Copyright by Tobi Oetiker, 1997-2005 **************************************************************************** * rrd_gfx.c graphics wrapper for rrdtool **************************************************************************/ @@ -321,14 +321,6 @@ static void gfx_libart_close_path(gfx_node_t *node, ArtVpath **vec) art_vpath_add_point (vec, &points, &points_max, ART_END, 0, 0); } -static void gfx_round_scaled_coordinates(ArtVpath *vec) -{ - while (vec->code != ART_END) { - vec->x = floor(vec->x - LINEOFFSET + 0.5) + LINEOFFSET; - vec->y = floor(vec->y - LINEOFFSET + 0.5) + LINEOFFSET; - vec++; - } -} /* find bbox of a string */ static void compute_string_bbox(gfx_string string) { @@ -519,29 +511,29 @@ int gfx_render_png (gfx_canvas_t *canvas, case GFX_AREA: { ArtVpath *vec,*pvec; double dst[6]; - ArtSVP *svp,*usvp,*rsvp; + ArtSVP *svp,*svpt; art_affine_scale(dst,canvas->zoom,canvas->zoom); vec = art_vpath_affine_transform(node->path,dst); if (node->closed_path) gfx_libart_close_path(node, &vec); - gfx_round_scaled_coordinates(vec); + /* gfx_round_scaled_coordinates(vec); */ pvec = art_vpath_perturb(vec); art_free(vec); if(node->type == GFX_LINE){ svp = art_svp_vpath_stroke ( pvec, ART_PATH_STROKE_JOIN_ROUND, ART_PATH_STROKE_CAP_ROUND, - node->size*canvas->zoom,1,1); + node->size*canvas->zoom,4,0.25); } else { - svp = art_svp_from_vpath ( pvec ); + svp = art_svp_from_vpath ( pvec ); + svpt = art_svp_uncross( svp ); + art_free(svp); + svp = art_svp_rewind_uncrossed(svpt,ART_WIND_RULE_NONZERO); + art_free(svpt); } art_free(pvec); - usvp=art_svp_uncross(svp); - art_free(svp); - rsvp=art_svp_rewind_uncrossed(usvp,ART_WIND_RULE_ODDEVEN); - art_free(usvp); - art_rgb_svp_alpha (rsvp ,0,0, pys_width, pys_height, + art_rgb_svp_alpha (svp ,0,0, pys_width, pys_height, node->color, buffer, rowstride, NULL); - art_free(rsvp); + art_free(svp); break; } case GFX_TEXT: { @@ -565,8 +557,10 @@ int gfx_render_png (gfx_canvas_t *canvas, (char *)node->filename, 0, &face ); - if ( error ) break; - + if ( error ) { + rrd_set_error("failed to load %s",node->filename); + break; + } error = FT_Set_Char_Size(face, /* handle to face object */ (long)(node->size*64), (long)(node->size*64), @@ -1337,7 +1331,7 @@ static int eps_prologue(eps_state *state) gfx_node_t *node; fputs( "%!PS-Adobe-3.0 EPSF-3.0\n" - "%%Creator: RRDtool 1.2rc2 Tobias Oetiker, http://tobi.oetiker.ch\n" + "%%Creator: RRDtool 1.2rc6 Tobias Oetiker, http://tobi.oetiker.ch\n" /* can't like weird chars here */ "%%Title: (RRDtool output)\n" "%%DocumentData: Clean7Bit\n"