Code

fix 1767940
[inkscape.git] / src / sp-filter.h
index 74cb1bfa8352f568d66259f5bc63c62e0b889bb1..9c4e7aaf6e405625beb1cad2ab9853e23836de64 100644 (file)
@@ -7,16 +7,21 @@
 /*
  * Authors:
  *   Hugo Rodrigues <haa.rodrigues@gmail.com>
+ *   Niko Kiirala <niko@kiirala.com>
  *
- * Copyright (C) 2006 Hugo Rodrigues
+ * Copyright (C) 2006,2007 Authors
  *
  * Released under GNU GPL, read the file 'COPYING' for more information
  */
 
+#include <map>
+
 #include "number-opt-number.h"
 #include "sp-object.h"
 #include "sp-filter-units.h"
+#include "sp-filter-fns.h"
 #include "svg/svg-length.h"
+#include "display/nr-filter.h"
 
 /* Filter base class */
 
@@ -27,6 +32,10 @@ struct SPFilterReference;
 class SPFilter;
 class SPFilterClass;
 
+struct ltstr {
+    bool operator()(const char* s1, const char* s2) const;
+};
+
 struct SPFilter : public SPObject {
 
     /** filterUnits attribute */
@@ -47,14 +56,31 @@ struct SPFilter : public SPObject {
     NumberOptNumber filterRes;
     /** HREF attribute */
     SPFilterReference *href;
+    sigc::connection modified_connection;
+
+    NR::Filter *_renderer;
+
+    std::map<gchar *, int, ltstr> _image_name;
+    int _image_number_next;
 };
 
 struct SPFilterClass {
     SPObjectClass parent_class;
 };
 
-#include "sp-filter-fns.h"
+/*
+ * Initializes the given NR::Filter object as a renderer for this
+ * SPFilter object.
+ */
+void sp_filter_build_renderer(SPFilter *sp_filter, NR::Filter *nr_filter);
+
+/*
+ * Returns the number of filter primitives in this SPFilter object.
+ */
+int sp_filter_primitive_count(SPFilter *filter);
 
+int sp_filter_get_image_name(SPFilter *filter, gchar const *name);
+int sp_filter_set_image_name(SPFilter *filter, gchar const *name);
 
 #endif /* !SP_FILTER_H_SEEN */