X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fsp-feflood.cpp;h=a9dcb4e71c40d81452b55676646812fec12a7e8f;hb=4e33f020dd832c0fa662afd97a40d6eba7f1fade;hp=de7b658d75a4bc1cc699d596fa04854c4d6428fd;hpb=8c833a9abfd335f0305466ad7451c03c2f6b50dd;p=inkscape.git diff --git a/src/sp-feflood.cpp b/src/sp-feflood.cpp index de7b658d7..a9dcb4e71 100644 --- a/src/sp-feflood.cpp +++ b/src/sp-feflood.cpp @@ -33,6 +33,7 @@ static void sp_feFlood_release(SPObject *object); static void sp_feFlood_set(SPObject *object, unsigned int key, gchar const *value); static void sp_feFlood_update(SPObject *object, SPCtx *ctx, guint flags); static Inkscape::XML::Node *sp_feFlood_write(SPObject *object, Inkscape::XML::Node *repr, guint flags); +static void sp_feFlood_build_renderer(SPFilterPrimitive *primitive, NR::Filter *filter); static SPFilterPrimitiveClass *feFlood_parent_class; @@ -61,6 +62,7 @@ static void sp_feFlood_class_init(SPFeFloodClass *klass) { SPObjectClass *sp_object_class = (SPObjectClass *)klass; + SPFilterPrimitiveClass *sp_primitive_class = (SPFilterPrimitiveClass *)klass; feFlood_parent_class = (SPFilterPrimitiveClass*)g_type_class_peek_parent(klass); @@ -69,10 +71,11 @@ sp_feFlood_class_init(SPFeFloodClass *klass) sp_object_class->write = sp_feFlood_write; sp_object_class->set = sp_feFlood_set; sp_object_class->update = sp_feFlood_update; + sp_primitive_class->build_renderer = sp_feFlood_build_renderer; } static void -sp_feFlood_init(SPFeFlood *feFlood) +sp_feFlood_init(SPFeFlood */*feFlood*/) { } @@ -108,8 +111,9 @@ static void sp_feFlood_set(SPObject *object, unsigned int key, gchar const *value) { SPFeFlood *feFlood = SP_FEFLOOD(object); + (void)feFlood; - switch(key) { + switch(key) { /*DEAL WITH SETTING ATTRIBUTES HERE*/ default: if (((SPObjectClass *) feFlood_parent_class)->set) @@ -149,7 +153,7 @@ sp_feFlood_write(SPObject *object, Inkscape::XML::Node *repr, guint flags) // is this sane? repr->mergeFrom(SP_OBJECT_REPR(object), "id"); } else { - repr = SP_OBJECT_REPR(object)->duplicate(); + repr = SP_OBJECT_REPR(object)->duplicate(NULL); // FIXME } } @@ -160,6 +164,21 @@ sp_feFlood_write(SPObject *object, Inkscape::XML::Node *repr, guint flags) return repr; } +static void sp_feFlood_build_renderer(SPFilterPrimitive *primitive, NR::Filter *filter) { + g_assert(primitive != NULL); + g_assert(filter != NULL); + + SPFeFlood *sp_flood = SP_FEFLOOD(primitive); + (void)sp_flood; + + int primitive_n = filter->add_primitive(NR::NR_FILTER_FLOOD); + NR::FilterPrimitive *nr_primitive = filter->get_primitive(primitive_n); + NR::FilterFlood *nr_flood = dynamic_cast(nr_primitive); + g_assert(nr_flood != NULL); + + sp_filter_primitive_renderer_common(primitive, nr_primitive); +} + /* Local Variables: