diff options
| author | Johan B. C. Engelen <jbc.engelen@swissonline.ch> | 2011-02-21 22:28:50 +0000 |
|---|---|---|
| committer | Johan Engelen <goejendaagh@zonnet.nl> | 2011-02-21 22:28:50 +0000 |
| commit | 4a4047fdd90aede6d16c020ddcd70c57ea4aa218 (patch) | |
| tree | e43b214f3025b953644385c301a03a4d2f3b1dbf /src/display/nr-arena-shape.cpp | |
| parent | Finished cleanup of outdated SP_OBJECT_PARENT C macro. (diff) | |
| download | inkscape-4a4047fdd90aede6d16c020ddcd70c57ea4aa218.tar.gz inkscape-4a4047fdd90aede6d16c020ddcd70c57ea4aa218.zip | |
NEW: Grayscale color display mode. (toggle assigned keybinding: Shift+keypad5)
(bzr r10065)
Diffstat (limited to 'src/display/nr-arena-shape.cpp')
| -rw-r--r-- | src/display/nr-arena-shape.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/display/nr-arena-shape.cpp b/src/display/nr-arena-shape.cpp index 1f516c066..33a218e99 100644 --- a/src/display/nr-arena-shape.cpp +++ b/src/display/nr-arena-shape.cpp @@ -24,6 +24,7 @@ #include "display/nr-arena.h" #include "display/nr-arena-shape.h" #include "display/curve.h" +#include "display/grayscale.h" #include "libnr/nr-pixops.h" #include "libnr/nr-blit.h" #include "libnr/nr-convert2geom.h" @@ -843,7 +844,8 @@ nr_arena_shape_render(cairo_t *ct, NRArenaItem *item, NRRectL *area, NRPixBlock if (!shape->style) return item->state; bool outline = (NR_ARENA_ITEM(shape)->arena->rendermode == Inkscape::RENDERMODE_OUTLINE); - bool print_colors_preview = (NR_ARENA_ITEM(shape)->arena->rendermode == Inkscape::RENDERMODE_PRINT_COLORS_PREVIEW); + bool print_colors_preview = (NR_ARENA_ITEM(shape)->arena->colorrendermode == Inkscape::COLORRENDERMODE_PRINT_COLORS_PREVIEW); + bool grayscale = (NR_ARENA_ITEM(shape)->arena->colorrendermode == Inkscape::COLORRENDERMODE_GRAYSCALE); if (outline) { // cairo outline rendering @@ -903,8 +905,11 @@ nr_arena_shape_render(cairo_t *ct, NRArenaItem *item, NRRectL *area, NRPixBlock rgba = fill_color->toRGBA32( shape->_fill.opacity ); } - if (print_colors_preview) + if (print_colors_preview) { nr_arena_separate_color_plates(&rgba); + } else if (grayscale) { + rgba = Grayscale::process(rgba); + } nr_blit_pixblock_mask_rgba32(pb, &m, rgba); pb->empty = FALSE; @@ -944,8 +949,11 @@ nr_arena_shape_render(cairo_t *ct, NRArenaItem *item, NRRectL *area, NRPixBlock rgba = stroke_color->toRGBA32( shape->_stroke.opacity ); } - if (print_colors_preview) + if (print_colors_preview) { nr_arena_separate_color_plates(&rgba); + } else if (grayscale) { + rgba = Grayscale::process(rgba); + } nr_blit_pixblock_mask_rgba32(pb, &m, rgba); pb->empty = FALSE; |
