X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Frrd_gfx.c;h=9d5943cdd463953e414463614b509a8dfa32d4d9;hb=dd611c2d8c5afedee3940eea6db3f330890556e3;hp=77a213c2f14e4906e4fd4dfd9c63299e90627b13;hpb=c112f7c06e534ce7a5a4e25b6f7f742aeb051850;p=rrdtool.git diff --git a/src/rrd_gfx.c b/src/rrd_gfx.c index 77a213c..9d5943c 100644 --- a/src/rrd_gfx.c +++ b/src/rrd_gfx.c @@ -1,5 +1,5 @@ /**************************************************************************** - * RRDtool 1.2rc3 Copyright by Tobi Oetiker, 1997-2005 + * RRDtool 1.2rc5 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("faild 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.2rc3 Tobias Oetiker, http://tobi.oetiker.ch\n" + "%%Creator: RRDtool 1.2rc5 Tobias Oetiker, http://tobi.oetiker.ch\n" /* can't like weird chars here */ "%%Title: (RRDtool output)\n" "%%DocumentData: Clean7Bit\n"