16 #ifndef QGSMASKPAINTDEVICE_H
17 #define QGSMASKPAINTDEVICE_H
19 #include "qgis_core.h"
22 #include <QPainterPath>
23 #include <QPaintDevice>
24 #include <QPaintEngine>
28 class QgsMaskPaintEngine:
public QPaintEngine
34 QgsMaskPaintEngine(
bool usePathStroker =
false );
36 bool begin( QPaintDevice * )
override {
return true; };
37 bool end()
override {
return true; };
38 QPaintEngine::Type type()
const override {
return QPaintEngine::User; };
39 void updateState(
const QPaintEngineState & )
override {
return; };
41 void drawPath(
const QPainterPath & )
override;
42 void drawPolygon(
const QPointF *,
int, PolygonDrawMode )
override;
43 void drawPixmap(
const QRectF &,
const QPixmap &,
const QRectF & )
override {
return; };
45 QPainterPath maskPainterPath()
const;
49 bool mUsePathStroker =
false;
50 QPainterPath mMaskPainterPath;
75 QPaintEngine *paintEngine()
const override;
77 int metric( PaintDeviceMetric metric )
const override;
82 QPainterPath maskPainterPath()
const;
86 std::unique_ptr<QgsMaskPaintEngine> mPaintEngine;
93 #endif // QGSMASKPAINTDEVICE_H