29class Q_SVG_EXPORT QSvgFeFilterPrimitive :
public QSvgStructureNode
32 QSvgFeFilterPrimitive(QSvgNode *parent,
const QString &input,
33 const QString &result,
const QSvgRectF &rect);
34 void drawCommand(QPainter *, QSvgExtraStates &) override {};
35 bool shouldDrawNode(QPainter *, QSvgExtraStates &)
const override;
36 QRectF internalFastBounds(QPainter *, QSvgExtraStates &)
const override {
return QRectF(); }
37 QRectF internalBounds(QPainter *, QSvgExtraStates &)
const override {
return QRectF(); }
38 QRectF localSubRegion(
const QRectF &itemBounds,
const QRectF &filterBounds,
39 QtSvg::UnitTypes primitiveUnits, QtSvg::UnitTypes filterUnits)
const;
40 QRectF globalSubRegion(QPainter *p,
41 const QRectF &itemBounds,
const QRectF &filterBounds,
42 QtSvg::UnitTypes primitiveUnits, QtSvg::UnitTypes filterUnits)
const;
43 void clipToTransformedBounds(QImage *buffer, QPainter *p,
const QRectF &localRect)
const;
44 virtual QImage apply(
const QMap<QString, QImage> &sources,
45 QPainter *p,
const QRectF &itemBounds,
const QRectF &filterBounds,
46 QtSvg::UnitTypes primitiveUnits, QtSvg::UnitTypes filterUnits)
const = 0;
47 virtual bool requiresSourceAlpha()
const;
48 QString input()
const {
return m_input; }
49 QString result()
const {
return m_result; }
50 QSvgRectF rect()
const {
return m_rect; }
52 static const QSvgFeFilterPrimitive *castToFilterPrimitive(
const QSvgNode *node);
63 enum class ColorShiftType : quint8 {
70 typedef QGenericMatrix<5, 5, qreal> Matrix;
71 typedef QGenericMatrix<5, 1, qreal> Vector;
73 QSvgFeColorMatrix(QSvgNode *parent,
const QString &input,
const QString &result,
74 const QSvgRectF &rect, ColorShiftType type,
const Matrix &matrix);
75 Type type()
const override;
76 QImage apply(
const QMap<QString, QImage> &sources,
77 QPainter *p,
const QRectF &itemBounds,
const QRectF &filterBounds,
78 QtSvg::UnitTypes primitiveUnits, QtSvg::UnitTypes filterUnits)
const override;
91 enum class EdgeMode : quint8 {
97 QSvgFeGaussianBlur(QSvgNode *parent,
const QString &input,
const QString &result,
98 const QSvgRectF &rect, qreal stdDeviationX, qreal stdDeviationY,
100 Type type()
const override;
101 QImage apply(
const QMap<QString, QImage> &sources,
102 QPainter *p,
const QRectF &itemBounds,
const QRectF &filterBounds,
103 QtSvg::UnitTypes primitiveUnits, QtSvg::UnitTypes filterUnits)
const override;
105 qreal stdDeviationX()
const {
return m_stdDeviationX; }
106 qreal stdDeviationY()
const {
return m_stdDeviationY; }
107 EdgeMode edgeMode()
const {
return m_edgemode; }
110 qreal m_stdDeviationX;
111 qreal m_stdDeviationY;
118 QSvgFeOffset(QSvgNode *parent,
const QString &input,
const QString &result,
119 const QSvgRectF &rect, qreal dx, qreal dy);
120 Type type()
const override;
121 QImage apply(
const QMap<QString, QImage> &sources,
122 QPainter *p,
const QRectF &itemBounds,
const QRectF &filterBounds,
123 QtSvg::UnitTypes primitiveUnits, QtSvg::UnitTypes filterUnits)
const override;
125 qreal dx()
const {
return m_dx; }
126 qreal dy()
const {
return m_dy; }
136 QSvgFeMerge(QSvgNode *parent,
const QString &input,
137 const QString &result,
const QSvgRectF &rect);
138 Type type()
const override;
139 QImage apply(
const QMap<QString, QImage> &sources,
140 QPainter *p,
const QRectF &itemBounds,
const QRectF &filterBounds,
141 QtSvg::UnitTypes primitiveUnits, QtSvg::UnitTypes filterUnits)
const override;
142 bool requiresSourceAlpha()
const override;
148 QSvgFeMergeNode(QSvgNode *parent,
const QString &input,
149 const QString &result,
const QSvgRectF &rect);
150 Type type()
const override;
151 QImage apply(
const QMap<QString, QImage> &sources,
152 QPainter *p,
const QRectF &itemBounds,
const QRectF &filterBounds,
153 QtSvg::UnitTypes primitiveUnits, QtSvg::UnitTypes filterUnits)
const override;
159 enum class Operator : quint8 {
168 QSvgFeComposite(QSvgNode *parent,
const QString &input,
const QString &result,
169 const QSvgRectF &rect,
const QString &input2, Operator op,
const QVector4D &k);
170 Type type()
const override;
171 QImage apply(
const QMap<QString, QImage> &sources,
172 QPainter *p,
const QRectF &itemBounds,
const QRectF &filterBounds,
173 QtSvg::UnitTypes primitiveUnits, QtSvg::UnitTypes filterUnits)
const override;
174 bool requiresSourceAlpha()
const override;
176 QString input2()
const {
return m_input2; }
177 Operator compositionOperator()
const {
return m_operator; }
178 QVector4D k()
const {
return m_k; }
189 QSvgFeFlood(QSvgNode *parent,
const QString &input,
const QString &result,
190 const QSvgRectF &rect,
const QColor &color);
191 Type type()
const override;
192 QImage apply(
const QMap<QString, QImage> &sources,
193 QPainter *p,
const QRectF &itemBounds,
const QRectF &filterBounds,
194 QtSvg::UnitTypes primitiveUnits, QtSvg::UnitTypes filterUnits)
const override;
196 QColor color()
const {
return m_color; }
204 enum class Mode : quint8 {
211 QSvgFeBlend(QSvgNode *parent,
const QString &input,
const QString &result,
212 const QSvgRectF &rect,
const QString &input2, Mode mode);
213 Type type()
const override;
214 QImage apply(
const QMap<QString, QImage> &sources,
215 QPainter *p,
const QRectF &itemBounds,
const QRectF &filterBounds,
216 QtSvg::UnitTypes primitiveUnits, QtSvg::UnitTypes filterUnits)
const override;
217 bool requiresSourceAlpha()
const override;
219 QString input2()
const {
return m_input2; }
220 Mode mode()
const {
return m_mode; }
231 QSvgFeUnsupported(QSvgNode *parent,
const QString &input,
232 const QString &result,
const QSvgRectF &rect);
233 Type type()
const override;
234 QImage apply(
const QMap<QString, QImage> &sources,
235 QPainter *p,
const QRectF &itemBounds,
const QRectF &filterBounds,
236 QtSvg::UnitTypes primitiveUnits, QtSvg::UnitTypes filterUnits)
const override;