summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/gui/painting/qpainter/tst_qpainter.cpp')
-rw-r--r--tests/auto/gui/painting/qpainter/tst_qpainter.cpp49
1 files changed, 48 insertions, 1 deletions
diff --git a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
index d2a4dfc3e9..6e48439944 100644
--- a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
+++ b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
@@ -157,10 +157,10 @@ private slots:
void clippedLines();
void clippedPolygon_data();
void clippedPolygon();
-
void clippedText();
void clipBoundingRect();
+ void transformedClip();
void setOpacity_data();
void setOpacity();
@@ -4589,6 +4589,53 @@ void tst_QPainter::clipBoundingRect()
}
+void tst_QPainter::transformedClip()
+{
+ QImage img(8, 4, QImage::Format_ARGB32_Premultiplied);
+ QImage img2(img.size(), img.format());
+ QRect clip(0, 0, 2, 1);
+ QTransform xf;
+ xf.translate(0.2, 0);
+ xf.scale(2.2, 1);
+ // setClipRect(QRectF)
+ {
+ img.fill(Qt::green);
+ QPainter p(&img);
+ p.setTransform(xf);
+ p.setClipRect(QRectF(clip));
+ p.fillRect(img.rect(), Qt::white);
+ }
+ // setClipRect(QRect)
+ {
+ img2.fill(Qt::green);
+ QPainter p(&img2);
+ p.setTransform(xf);
+ p.setClipRect(clip);
+ p.fillRect(img2.rect(), Qt::white);
+ QCOMPARE(img, img2);
+ }
+ // setClipRegion
+ {
+ img2.fill(Qt::green);
+ QPainter p(&img2);
+ p.setTransform(xf);
+ p.setClipRegion(QRegion(clip) + QRect(0, 3, 1, 1)); // dummy extra rect to avoid single-rect codepath
+ p.fillRect(img2.rect(), Qt::white);
+ QCOMPARE(img.copy(0, 0, 8, 2), img2.copy(0, 0, 8, 2));
+ }
+ // setClipPath
+ {
+ img2.fill(Qt::green);
+ QPainter p(&img2);
+ p.setTransform(xf);
+ QPainterPath path;
+ path.addRect(clip);
+ p.setClipPath(path);
+ p.fillRect(img2.rect(), Qt::white);
+ QCOMPARE(img, img2);
+ }
+}
+
#if defined(Q_OS_MAC)
// Only Mac supports sub pixel positions in raster engine currently
void tst_QPainter::drawText_subPixelPositionsInRaster_qtbug5053()