summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui
diff options
context:
space:
mode:
authorEskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>2014-09-19 10:25:05 +0200
committerEskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>2014-09-20 10:54:02 +0200
commit6e4dc7073a195a73d9002e48dc4e27eb6b354d1e (patch)
tree92bb3e7c84a03a36ca85aefc60f12f71dad8d8a5 /tests/auto/gui
parentbbacf3d79d5067c4f9351400b5c1e0028cd093a5 (diff)
Fix default implementations of raster ops
In the list of default implementations, the raster ops added in ae0ddb8c729c105a5b4f32a4f6765af8fe546333 were all offset by one composition mode because of a duplicate entry in the array. The effect would be, e.g. that using the NotDestination operator would resolve to the Set operator instead. Most users will probably not have experienced this since any of the asm-based functions will be preferred. [ChangeLog][Painting] Fixed some very rare cases of mismatched raster modes in QPainter. Change-Id: Ia242b54c78acbe1c89d9b4ecd10936564ec134b2 Task-number: QTBUG-41413 Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Diffstat (limited to 'tests/auto/gui')
-rw-r--r--tests/auto/gui/painting/qpainter/tst_qpainter.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
index 5af5b1a269..0675a6cf9d 100644
--- a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
+++ b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
@@ -296,6 +296,8 @@ private slots:
void blendARGBonRGB_data();
void blendARGBonRGB();
+ void RasterOp_NotDestination();
+
private:
void fillData();
void setPenColor(QPainter& p);
@@ -4803,6 +4805,21 @@ void tst_QPainter::cosmeticStrokerClipping()
QCOMPARE(old, image);
}
+void tst_QPainter::RasterOp_NotDestination()
+{
+ QImage image(3, 3, QImage::Format_RGB32);
+ image.fill(Qt::red);
+
+ {
+ QPainter p(&image);
+ p.setCompositionMode(QPainter::RasterOp_NotDestination);
+ p.fillRect(image.rect(), Qt::black);
+ }
+
+ uint pixel = image.pixel(1, 1);
+ QCOMPARE(pixel, 0xff00ffff);
+}
+
QTEST_MAIN(tst_QPainter)
#include "tst_qpainter.moc"