diff options
| author | root <root@jtx.marker.es> | 2013-04-14 21:08:45 +0000 |
|---|---|---|
| committer | root <root@jtx.marker.es> | 2013-04-14 21:08:45 +0000 |
| commit | 224bac8cddd8960f65cf08202c4f40e74c8fc1ae (patch) | |
| tree | 3c841d0754517a3de6829702b581bd90f31919ba /src | |
| parent | halo (diff) | |
| download | inkscape-224bac8cddd8960f65cf08202c4f40e74c8fc1ae.tar.gz inkscape-224bac8cddd8960f65cf08202c4f40e74c8fc1ae.zip | |
Go back
(bzr r11950.1.93)
Diffstat (limited to 'src')
| -rw-r--r-- | src/display/canvas-bpath.cpp | 38 | ||||
| -rw-r--r-- | src/draw-context.cpp | 14 | ||||
| -rw-r--r-- | src/draw-context.h | 3 | ||||
| -rw-r--r-- | src/pen-context.cpp | 17 |
4 files changed, 10 insertions, 62 deletions
diff --git a/src/display/canvas-bpath.cpp b/src/display/canvas-bpath.cpp index defd95b45..8faf8947f 100644 --- a/src/display/canvas-bpath.cpp +++ b/src/display/canvas-bpath.cpp @@ -147,6 +147,9 @@ sp_canvas_bpath_render (SPCanvasItem *item, SPCanvasBuf *buf) cairo_set_tolerance(buf->ct, 0.5); cairo_new_path(buf->ct); + + feed_pathvector_to_cairo (buf->ct, cbp->curve->get_pathvector(), cbp->affine, area, + /* optimized_stroke = */ !dofill, 1); if (dofill) { // RGB / BGR ink_cairo_set_source_rgba32(buf->ct, cbp->fill_rgba); @@ -156,37 +159,12 @@ sp_canvas_bpath_render (SPCanvasItem *item, SPCanvasBuf *buf) } if (dostroke) { - SPCurve* orig = new SPCurve(cbp->curve->get_pathvector()); - Geom::Point origPoint(orig->first_path()->initialPoint()); - if(cbp->stroke_rgba == 0x12345678){ - cairo_save(buf->ct); - orig->moveto(origPoint[Geom::X]+1,origPoint[Geom::Y]+1); - feed_pathvector_to_cairo (buf->ct, cbp->curve->get_pathvector(), cbp->affine, area, - /* optimized_stroke = */ !dofill, 1); - ink_cairo_set_source_rgba32(buf->ct, 0x00000020); - cairo_set_line_width(buf->ct, 1); - cairo_move_to(buf->ct, origPoint[Geom::X] + 1, origPoint[Geom::Y] + 1); - cairo_stroke_preserve(buf->ct); - cairo_restore(buf->ct); - cairo_save(buf->ct); - feed_pathvector_to_cairo (buf->ct, cbp->curve->get_pathvector(), cbp->affine, area, - /* optimized_stroke = */ !dofill, 1); - ink_cairo_set_source_rgba32(buf->ct, 0xffffff20); - cairo_set_line_width(buf->ct, 1); - cairo_move_to(buf->ct, origPoint[Geom::X] - 1, origPoint[Geom::Y] - 1); - cairo_stroke_preserve(buf->ct); - cairo_restore(buf->ct); - }else{ - feed_pathvector_to_cairo (buf->ct, cbp->curve->get_pathvector(), cbp->affine, area, - /* optimized_stroke = */ !dofill, 1); - ink_cairo_set_source_rgba32(buf->ct, cbp->stroke_rgba); - cairo_set_line_width(buf->ct, 1); - cairo_move_to(buf->ct, origPoint[Geom::X], origPoint[Geom::Y]); - if (cbp->dashes[0] != 0 && cbp->dashes[1] != 0) { - cairo_set_dash (buf->ct, cbp->dashes, 2, 0); - } - cairo_stroke(buf->ct); + ink_cairo_set_source_rgba32(buf->ct, cbp->stroke_rgba); + cairo_set_line_width(buf->ct, 1); + if (cbp->dashes[0] != 0 && cbp->dashes[1] != 0) { + cairo_set_dash (buf->ct, cbp->dashes, 2, 0); } + cairo_stroke(buf->ct); } else { cairo_new_path(buf->ct); } diff --git a/src/draw-context.cpp b/src/draw-context.cpp index 459137cc0..69e394aaa 100644 --- a/src/draw-context.cpp +++ b/src/draw-context.cpp @@ -99,7 +99,6 @@ static void sp_draw_context_init(SPDrawContext *dc) dc->red_color = 0xff00007f; dc->blue_color = 0x0000ff7f; dc->green_color = 0x00ff007f; - dc->halo_color = 0x12345678; dc->red_curve_is_valid = false; dc->red_bpath = NULL; @@ -108,8 +107,6 @@ static void sp_draw_context_init(SPDrawContext *dc) dc->blue_bpath = NULL; dc->blue_curve = NULL; - dc->halo_bpath = NULL; - dc->green_bpaths = NULL; dc->green_curve = NULL; dc->green_anchor = NULL; @@ -179,10 +176,6 @@ static void sp_draw_context_setup(SPEventContext *ec) dc->blue_bpath = sp_canvas_bpath_new(sp_desktop_sketch(ec->desktop), NULL); sp_canvas_bpath_set_stroke(SP_CANVAS_BPATH(dc->blue_bpath), dc->blue_color, 1.0, SP_STROKE_LINEJOIN_MITER, SP_STROKE_LINECAP_BUTT); - // Create halo bpath - dc->halo_bpath = sp_canvas_bpath_new(sp_desktop_sketch(ec->desktop), NULL); - sp_canvas_bpath_set_stroke(SP_CANVAS_BPATH(dc->halo_bpath), dc->halo_color, 1.0, SP_STROKE_LINEJOIN_MITER, SP_STROKE_LINECAP_BUTT); - // Create blue curve dc->blue_curve = new SPCurve(); @@ -539,7 +532,6 @@ void spdc_concat_colors_and_flush(SPDrawContext *dc, gboolean forceclosed) dc->red_curve->reset(); sp_canvas_bpath_set_bpath(SP_CANVAS_BPATH(dc->red_bpath), NULL); - sp_canvas_bpath_set_bpath(SP_CANVAS_BPATH(dc->halo_bpath), NULL); if (c->is_empty()) { c->unref(); @@ -761,12 +753,6 @@ static void spdc_free_colors(SPDrawContext *dc) dc->blue_curve = dc->blue_curve->unref(); } - // Halo - if (dc->halo_bpath) { - sp_canvas_item_destroy(SP_CANVAS_ITEM(dc->halo_bpath)); - dc->halo_bpath = NULL; - } - // Green while (dc->green_bpaths) { sp_canvas_item_destroy(SP_CANVAS_ITEM(dc->green_bpaths->data)); diff --git a/src/draw-context.h b/src/draw-context.h index 1b4d04773..f930fa858 100644 --- a/src/draw-context.h +++ b/src/draw-context.h @@ -44,7 +44,6 @@ struct SPDrawContext : public SPEventContext{ guint32 red_color; guint32 blue_color; guint32 green_color; - guint32 halo_color; // Red SPCanvasItem *red_bpath; @@ -54,8 +53,6 @@ struct SPDrawContext : public SPEventContext{ SPCanvasItem *blue_bpath; SPCurve *blue_curve; - // Halo - SPCanvasItem *halo_bpath; // Green GSList *green_bpaths; diff --git a/src/pen-context.cpp b/src/pen-context.cpp index 4a1384657..43f2fd76e 100644 --- a/src/pen-context.cpp +++ b/src/pen-context.cpp @@ -1401,7 +1401,6 @@ static void spdc_reset_colors(SPPenContext *pc) pc->blue_curve->reset(); sp_canvas_bpath_set_bpath(SP_CANVAS_BPATH(pc->blue_bpath), NULL); - sp_canvas_bpath_set_bpath(SP_CANVAS_BPATH(pc->halo_bpath), NULL); // Green while (pc->green_bpaths) { sp_canvas_item_destroy(SP_CANVAS_ITEM(pc->green_bpaths->data)); @@ -1426,7 +1425,6 @@ static void spdc_pen_set_initial_point(SPPenContext *const pc, Geom::Point const pc->p[1] = p; pc->npoints = 2; sp_canvas_bpath_set_bpath(SP_CANVAS_BPATH(pc->red_bpath), NULL); - sp_canvas_bpath_set_bpath(SP_CANVAS_BPATH(pc->halo_bpath), NULL); pc->desktop->canvas->forceFullRedrawAfterInterruptions(5); } @@ -1818,26 +1816,15 @@ static void bspline_spiro_build(SPPenContext *const pc) //LivePathEffectObject *lpeobj = static_cast<LivePathEffectObject*> (curve); //Effect *spr = static_cast<Effect*> ( new LPEbspline(lpeobj) ); //spr->doEffect(curve); - SPCurve *halo = new SPCurve(); if(pc->bspline){ bspline_doEffect(curve); - halo = curve->copy()->create_reverse(); - if(!pc->green_curve->is_empty()) - halo->append_continuous(pc->green_curve, 0.0625); - if(!pc->red_curve->is_empty()) - halo->append_continuous(pc->red_curve, 0.0625); - if(Geom::are_near(halo->first_path()->initialPoint(), halo->last_path()->finalPoint())){ - halo->closepath_current(); - } }else{ spiro_doEffect(curve); - halo = curve->copy(); } - sp_canvas_item_show(pc->blue_bpath); - sp_canvas_bpath_set_bpath(SP_CANVAS_BPATH(pc->halo_bpath), halo); - sp_canvas_bpath_set_stroke(SP_CANVAS_BPATH(pc->halo_bpath), pc->halo_color, 1.0, SP_STROKE_LINEJOIN_MITER, SP_STROKE_LINECAP_BUTT); + sp_canvas_bpath_set_bpath(SP_CANVAS_BPATH(pc->blue_bpath), curve); sp_canvas_bpath_set_stroke(SP_CANVAS_BPATH(pc->blue_bpath), pc->blue_color, 1.0, SP_STROKE_LINEJOIN_MITER, SP_STROKE_LINECAP_BUTT); + sp_canvas_item_show(pc->blue_bpath); curve->unref(); pc->blue_curve->reset(); //We hide the holders that doesn't contribute anything |
