22 #ifndef SVGFEComponentTransfer_h
23 #define SVGFEComponentTransfer_h
25 #if ENABLE(SVG) && ENABLE(SVG_FILTERS)
26 #include <wtf/Vector.h>
43 enum SVGComponentTransferType {
44 SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN = 0,
45 SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY = 1,
46 SVG_FECOMPONENTTRANSFER_TYPE_TABLE = 2,
47 SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE = 3,
48 SVG_FECOMPONENTTRANSFER_TYPE_LINEAR = 4,
49 SVG_FECOMPONENTTRANSFER_TYPE_GAMMA = 5
52 struct SVGComponentTransferFunction {
53 SVGComponentTransferFunction()
54 : type(SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN)
63 SVGComponentTransferType type;
71 Vector<float> tableValues;
74 class SVGFEComponentTransfer :
public SVGFilterEffect {
76 SVGFEComponentTransfer(SVGResourceFilter*);
78 SVGComponentTransferFunction redFunction()
const;
79 void setRedFunction(
const SVGComponentTransferFunction&);
81 SVGComponentTransferFunction greenFunction()
const;
82 void setGreenFunction(
const SVGComponentTransferFunction&);
84 SVGComponentTransferFunction blueFunction()
const;
85 void setBlueFunction(
const SVGComponentTransferFunction&);
87 SVGComponentTransferFunction alphaFunction()
const;
88 void setAlphaFunction(
const SVGComponentTransferFunction&);
90 virtual TextStream& externalRepresentation(TextStream&)
const;
93 virtual CIFilter* getCIFilter(
const FloatRect& bbox)
const;
96 CIFilter* getFunctionFilter(SVGChannelSelectorType, CIImage* inputImage)
const;
100 SVGComponentTransferFunction m_redFunc;
101 SVGComponentTransferFunction m_greenFunc;
102 SVGComponentTransferFunction m_blueFunc;
103 SVGComponentTransferFunction m_alphaFunc;
108 #endif // ENABLE(SVG) && ENABLE(SVG_FILTERS)
110 #endif // SVGFEComponentTransfer_h