index 445364a6cff89eaaaaa0e6210516d036b62319b6..c6b0b72b962c5de540978a7d0523a9f54dc2fd1c 100644 (file)
/*
* Gaussian blur renderer
*
/*
* Gaussian blur renderer
*
- * Author:
+ * Authors:
* Niko Kiirala <niko@kiirala.com>
* Niko Kiirala <niko@kiirala.com>
+ * bulia byak
+ * Jasper van de Gronde <th.v.d.gronde@hccnet.nl>
*
*
- * 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"
*
* 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"
#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 {
public:
FilterGaussian();
static FilterPrimitive *create();
namespace NR {
class FilterGaussian : public FilterPrimitive {
public:
FilterGaussian();
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);
/**
virtual int get_enlarge(Matrix const &m);
/**
private:
double _deviation_x;
double _deviation_y;
private:
double _deviation_x;
double _deviation_y;
-
- int _kernel_size(Matrix const &trans);
- 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);
-
- inline int _min(int const a, int const b)
- {
- return ((a < b) ? a : b);
- }
- inline int _max(int const a, int const b)
- {
- return ((a > b) ? a : b);
- }
};
};