22QgsMaskPaintEngine::QgsMaskPaintEngine(
bool usePathStroker )
23 : QPaintEngine( QPaintEngine::AllFeatures )
24 , mUsePathStroker( usePathStroker )
28QPainterPath QgsMaskPaintEngine::maskPainterPath()
const
30 return mMaskPainterPath;
33void QgsMaskPaintEngine::drawPath(
const QPainterPath &path )
35 QPainterPath realPath = path;
36 if ( mUsePathStroker )
38 QPen pen = painter()->pen();
39 QPainterPathStroker stroker( pen );
40 QPainterPath strokedPath = stroker.createStroke( path );
41 realPath = strokedPath;
44 const QTransform transform = painter()->combinedTransform();
45 mMaskPainterPath.addPath( transform.map( realPath ) );
48void QgsMaskPaintEngine::drawPolygon(
const QPointF *points,
int numPoints, QPaintEngine::PolygonDrawMode mode )
53 polygon.reserve( numPoints );
54 for (
int i = 0; i < numPoints; ++i )
57 const QTransform transform = painter()->transform();
58 mMaskPainterPath.addPolygon( transform.map( polygon ) );
65 mPaintEngine = std::make_unique<QgsMaskPaintEngine>( usePathStroker );
70 return mPaintEngine.get();
80 val =
static_cast< int >( mPaintEngine->maskPainterPath().boundingRect().width() );
83 val =
static_cast< int >( mPaintEngine->maskPainterPath().boundingRect().height() );
105 case PdmDevicePixelRatio:
108 case PdmDevicePixelRatioScaled:
109 val =
static_cast< int >( 1 * QPaintDevice::devicePixelRatioFScale() );
113 qWarning(
"QPicture::metric: Invalid metric command" );
120 return mPaintEngine->maskPainterPath();
Q_DECL_DEPRECATED QgsMaskPaintDevice(bool usePathStroker=false)
Q_DECL_DEPRECATED QPainterPath maskPainterPath() const
Returns the mask painter path painted on this paint device.
int metric(PaintDeviceMetric metric) const override
QPaintEngine * paintEngine() const override
static int qtDefaultDpiY()
Returns the default Qt vertical DPI.
static int qtDefaultDpiX()
Returns the default Qt horizontal DPI.