Code

disable filters in outline mode
[inkscape.git] / src / display / nr-filter-gaussian.h
index c3bf398c99f4bbf376d2dc013bf3e9ace59f73d1..af6dc0d2a3386146365479cdf07875f3bf3db3f9 100644 (file)
@@ -4,18 +4,28 @@
 /*
  * Gaussian blur renderer
  *
- * Author:
+ * Authors:
  *   Niko Kiirala <niko@kiirala.com>
+ *   bulia byak
  *
- * Copyright (C) 2006 Niko Kiirala
+ * Copyright (C) 2006 authors
  *
  * Released under GNU GPL, read the file 'COPYING' for more information
  */
 
 #include "display/nr-filter-primitive.h"
+#include "display/nr-filter-slot.h"
 #include "libnr/nr-pixblock.h"
 #include "libnr/nr-matrix.h"
 
+enum {
+    BLUR_QUALITY_BEST = 2,
+    BLUR_QUALITY_BETTER = 1,
+    BLUR_QUALITY_NORMAL = 0,
+    BLUR_QUALITY_WORSE = -1,
+    BLUR_QUALITY_WORST = -2
+};
+
 namespace NR {
 
 class FilterGaussian : public FilterPrimitive {
@@ -24,7 +34,7 @@ public:
     static FilterPrimitive *create();
     virtual ~FilterGaussian();
 
-    virtual int render(NRPixBlock **pb, Matrix const &trans);
+    virtual int render(FilterSlot &slot, Matrix const &trans);
     virtual int get_enlarge(Matrix const &m);
 
     /**
@@ -52,8 +62,8 @@ private:
     void _make_kernel(double *kernel, double deviation, double expansion);
     int _effect_area_scr_x(Matrix const &trans);
     int _effect_area_scr_y(Matrix const &trans);
-    int _effect_subsample_step(int scr_len_x);
-    int _effect_subsample_step_log2(int scr_len_x);
+    int _effect_subsample_step(int scr_len_x, int quality);
+    int _effect_subsample_step_log2(int scr_len_x, int quality);
 
     inline int _min(int const a, int const b)
     {