index e87145c009dad4b0e2e13256408a003940373ccc..d62cb5c193cd9546ebe239ab7895fda5ab6c0716 100644 (file)
#include "display/nr-filter-primitive.h"
#include "display/nr-filter-slot.h"
+#include "display/nr-filter-units.h"
#include<vector>
namespace NR {
+enum FilterColorMatrixType {
+ COLORMATRIX_MATRIX,
+ COLORMATRIX_SATURATE,
+ COLORMATRIX_HUEROTATE,
+ COLORMATRIX_LUMINANCETOALPHA,
+ COLORMATRIX_ENDTYPE
+};
+
class FilterColorMatrix : public FilterPrimitive {
public:
FilterColorMatrix();
static FilterPrimitive *create();
virtual ~FilterColorMatrix();
- virtual int render(FilterSlot &slot, Matrix const &trans);
+ virtual int render(FilterSlot &slot, FilterUnits const &units);
virtual void area_enlarge(NRRectL &area, Matrix const &trans);
- virtual void set_type(int type);
+ virtual void set_type(FilterColorMatrixType type);
virtual void set_value(gdouble value);
- virtual void set_values(std::vector<gdouble> values);
+ virtual void set_values(std::vector<gdouble> &values);
private:
std::vector<gdouble> values;
gdouble value;
- int type;
+ FilterColorMatrixType type;
};
} /* namespace NR */