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 {
51 QString result()
const {
55 static const QSvgFeFilterPrimitive *castToFilterPrimitive(
const QSvgNode *node);
68 enum class ColorShiftType : quint8 {
75 typedef QGenericMatrix<5, 5, qreal> Matrix;
76 typedef QGenericMatrix<5, 1, qreal> Vector;
78 QSvgFeColorMatrix(QSvgNode *parent,
const QString &input,
const QString &result,
79 const QSvgRectF &rect, ColorShiftType type,
const Matrix &matrix);
80 Type type()
const override;
81 QImage apply(
const QMap<QString, QImage> &sources,
82 QPainter *p,
const QRectF &itemBounds,
const QRectF &filterBounds,
83 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 m_stdDeviationX;
106 qreal m_stdDeviationY;
113 QSvgFeOffset(QSvgNode *parent,
const QString &input,
const QString &result,
114 const QSvgRectF &rect, qreal dx, qreal dy);
115 Type type()
const override;
116 QImage apply(
const QMap<QString, QImage> &sources,
117 QPainter *p,
const QRectF &itemBounds,
const QRectF &filterBounds,
118 QtSvg::UnitTypes primitiveUnits, QtSvg::UnitTypes filterUnits)
const override;
127 QSvgFeMerge(QSvgNode *parent,
const QString &input,
128 const QString &result,
const QSvgRectF &rect);
129 Type type()
const override;
130 QImage apply(
const QMap<QString, QImage> &sources,
131 QPainter *p,
const QRectF &itemBounds,
const QRectF &filterBounds,
132 QtSvg::UnitTypes primitiveUnits, QtSvg::UnitTypes filterUnits)
const override;
133 bool requiresSourceAlpha()
const override;
139 QSvgFeMergeNode(QSvgNode *parent,
const QString &input,
140 const QString &result,
const QSvgRectF &rect);
141 Type type()
const override;
142 QImage apply(
const QMap<QString, QImage> &sources,
143 QPainter *p,
const QRectF &itemBounds,
const QRectF &filterBounds,
144 QtSvg::UnitTypes primitiveUnits, QtSvg::UnitTypes filterUnits)
const override;
150 enum class Operator : quint8 {
159 QSvgFeComposite(QSvgNode *parent,
const QString &input,
const QString &result,
160 const QSvgRectF &rect,
const QString &input2, Operator op,
const QVector4D &k);
161 Type type()
const override;
162 QImage apply(
const QMap<QString, QImage> &sources,
163 QPainter *p,
const QRectF &itemBounds,
const QRectF &filterBounds,
164 QtSvg::UnitTypes primitiveUnits, QtSvg::UnitTypes filterUnits)
const override;
165 bool requiresSourceAlpha()
const override;
175 QSvgFeFlood(QSvgNode *parent,
const QString &input,
const QString &result,
176 const QSvgRectF &rect,
const QColor &color);
177 Type type()
const override;
178 QImage apply(
const QMap<QString, QImage> &sources,
179 QPainter *p,
const QRectF &itemBounds,
const QRectF &filterBounds,
180 QtSvg::UnitTypes primitiveUnits, QtSvg::UnitTypes filterUnits)
const override;
188 enum class Mode : quint8 {
195 QSvgFeBlend(QSvgNode *parent,
const QString &input,
const QString &result,
196 const QSvgRectF &rect,
const QString &input2, Mode mode);
197 Type type()
const override;
198 QImage apply(
const QMap<QString, QImage> &sources,
199 QPainter *p,
const QRectF &itemBounds,
const QRectF &filterBounds,
200 QtSvg::UnitTypes primitiveUnits, QtSvg::UnitTypes filterUnits)
const override;
201 bool requiresSourceAlpha()
const override;
211 QSvgFeUnsupported(QSvgNode *parent,
const QString &input,
212 const QString &result,
const QSvgRectF &rect);
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;