diff options
| author | root <root@jtx.marker.es> | 2013-04-14 04:46:28 +0000 |
|---|---|---|
| committer | root <root@jtx.marker.es> | 2013-04-14 04:46:28 +0000 |
| commit | 329113c127323d603cdece99d3c5622d9a4864b0 (patch) | |
| tree | baf0f4ab99f48bd2e7627e9b053a532405838825 /src/draw-context.cpp | |
| parent | testing halo (diff) | |
| parent | odg export: some work on gradients (diff) | |
| download | inkscape-329113c127323d603cdece99d3c5622d9a4864b0.tar.gz inkscape-329113c127323d603cdece99d3c5622d9a4864b0.zip | |
adding halos
(bzr r11950.1.91)
Diffstat (limited to 'src/draw-context.cpp')
| -rw-r--r-- | src/draw-context.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/draw-context.cpp b/src/draw-context.cpp index 356853e09..33e9b4a5d 100644 --- a/src/draw-context.cpp +++ b/src/draw-context.cpp @@ -99,6 +99,7 @@ static void sp_draw_context_init(SPDrawContext *dc) dc->red_color = 0xff00007f; dc->blue_color = 0x0000ff7f; dc->green_color = 0x00ff007f; + dc->halo_color = 0xffffff10; dc->red_curve_is_valid = false; dc->red_bpath = NULL; @@ -107,6 +108,8 @@ 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; @@ -176,6 +179,10 @@ 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(); @@ -532,6 +539,8 @@ 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(); return; @@ -752,6 +761,12 @@ 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)); |
