summaryrefslogtreecommitdiffstats
path: root/src/sp-filter-primitive.cpp
diff options
context:
space:
mode:
authorTavmjong Bah <tavmjong@free.fr>2012-12-22 16:43:07 +0000
committertavmjong-free <tavmjong@free.fr>2012-12-22 16:43:07 +0000
commit8c4d3b68e4a5727b2205ec136d6fb5f50289d1e9 (patch)
treee42d82fbd37bf5876a67f7ac199a2f2fb607f291 /src/sp-filter-primitive.cpp
parentAdd utilities to tag a cairo surface with color interpolation value. (diff)
downloadinkscape-8c4d3b68e4a5727b2205ec136d6fb5f50289d1e9.tar.gz
inkscape-8c4d3b68e4a5727b2205ec136d6fb5f50289d1e9.zip
Add support for color-interpolation-filters = linearRGB.
(bzr r11972)
Diffstat (limited to 'src/sp-filter-primitive.cpp')
-rw-r--r--src/sp-filter-primitive.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/sp-filter-primitive.cpp b/src/sp-filter-primitive.cpp
index b63a05b4b..7ddf3b065 100644
--- a/src/sp-filter-primitive.cpp
+++ b/src/sp-filter-primitive.cpp
@@ -20,6 +20,7 @@
#include <string.h>
#include "attributes.h"
+#include "style.h"
#include "sp-filter-primitive.h"
#include "xml/repr.h"
#include "sp-filter.h"
@@ -100,16 +101,17 @@ static void sp_filter_primitive_init(SPFilterPrimitive *filter_primitive)
static void
sp_filter_primitive_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr)
{
- if ((static_cast<SPObjectClass *>(filter_primitive_parent_class))->build) {
- (static_cast<SPObjectClass *>(filter_primitive_parent_class))->build(object, document, repr);
- }
-
+ object->readAttr( "style" ); // struct not derived from SPItem, we need to do this ourselves.
object->readAttr( "in" );
object->readAttr( "result" );
object->readAttr( "x" );
object->readAttr( "y" );
object->readAttr( "width" );
object->readAttr( "height" );
+
+ if ((static_cast<SPObjectClass *>(filter_primitive_parent_class))->build) {
+ (static_cast<SPObjectClass *>(filter_primitive_parent_class))->build(object, document, repr);
+ }
}
/**
@@ -188,7 +190,9 @@ sp_filter_primitive_update(SPObject *object, SPCtx *ctx, guint flags)
{
//SPFilterPrimitive *filter_primitive = SP_FILTER_PRIMITIVE(object);
+ // Is this required?
if (flags & SP_OBJECT_MODIFIED_FLAG) {
+ object->readAttr( "style" );
object->readAttr( "in" );
object->readAttr( "result" );
object->readAttr( "x" );
@@ -311,6 +315,9 @@ void sp_filter_primitive_renderer_common(SPFilterPrimitive *sp_prim, Inkscape::F
/* TODO: place here code to handle input images, filter area etc. */
nr_prim->set_subregion( sp_prim->x, sp_prim->y, sp_prim->width, sp_prim->height );
+
+ // Give renderer access to filter properties
+ nr_prim->setStyle( sp_prim->style );
}