summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTavmjong Bah <tavmjong@free.fr>2014-02-18 20:50:20 +0000
committertavmjong-free <tavmjong@free.fr>2014-02-18 20:50:20 +0000
commit60b09f8a899a4a084efabc38045fd0531981d1b1 (patch)
treea8f2dc5f57956b29140d71b1a6c1f3c4a54ccad5 /src
parentRead new SVG2 property 'paint-order'. (diff)
downloadinkscape-60b09f8a899a4a084efabc38045fd0531981d1b1.tar.gz
inkscape-60b09f8a899a4a084efabc38045fd0531981d1b1.zip
Copy 'paint-order' property data for Cairo rendering.
(bzr r13038)
Diffstat (limited to 'src')
-rw-r--r--src/display/nr-style.cpp26
-rw-r--r--src/display/nr-style.h12
2 files changed, 37 insertions, 1 deletions
diff --git a/src/display/nr-style.cpp b/src/display/nr-style.cpp
index 403b139e0..570ccd31e 100644
--- a/src/display/nr-style.cpp
+++ b/src/display/nr-style.cpp
@@ -68,7 +68,11 @@ NRStyle::NRStyle()
, line_through_thickness(0)
, line_through_position(0)
, font_size(0)
-{}
+{
+#ifdef WITH_SVG2
+ paint_order_layer[0] = PAINT_ORDER_NORMAL;
+#endif
+}
NRStyle::~NRStyle()
{
@@ -160,6 +164,26 @@ void NRStyle::set(SPStyle *style)
dash = NULL;
}
+
+#ifdef WITH_SVG2
+ for( unsigned i = 0; i < PAINT_ORDER_LAYERS; ++i) {
+ switch (style->paint_order.layer[i]) {
+ case SP_CSS_PAINT_ORDER_NORMAL:
+ paint_order_layer[i]=PAINT_ORDER_NORMAL;
+ break;
+ case SP_CSS_PAINT_ORDER_FILL:
+ paint_order_layer[i]=PAINT_ORDER_FILL;
+ break;
+ case SP_CSS_PAINT_ORDER_STROKE:
+ paint_order_layer[i]=PAINT_ORDER_STROKE;
+ break;
+ case SP_CSS_PAINT_ORDER_MARKER:
+ paint_order_layer[i]=PAINT_ORDER_MARKER;
+ break;
+ }
+ }
+#endif
+
text_decoration_line = TEXT_DECORATION_LINE_CLEAR;
if(style->text_decoration_line.inherit ){ text_decoration_line |= TEXT_DECORATION_LINE_INHERIT; }
if(style->text_decoration_line.underline ){ text_decoration_line |= TEXT_DECORATION_LINE_UNDERLINE + TEXT_DECORATION_LINE_SET; }
diff --git a/src/display/nr-style.h b/src/display/nr-style.h
index e54eef547..717cda899 100644
--- a/src/display/nr-style.h
+++ b/src/display/nr-style.h
@@ -68,6 +68,18 @@ struct NRStyle {
cairo_pattern_t *fill_pattern;
cairo_pattern_t *stroke_pattern;
+#ifdef WITH_SVG2
+ enum PaintOrderType {
+ PAINT_ORDER_NORMAL,
+ PAINT_ORDER_FILL,
+ PAINT_ORDER_STROKE,
+ PAINT_ORDER_MARKER
+ };
+
+ static const size_t PAINT_ORDER_LAYERS = 3;
+ PaintOrderType paint_order_layer[PAINT_ORDER_LAYERS];
+#endif
+
#define TEXT_DECORATION_LINE_CLEAR 0x00
#define TEXT_DECORATION_LINE_SET 0x01
#define TEXT_DECORATION_LINE_INHERIT 0x02