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.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
index a9ac18144e..3562bc63f4 100644
--- a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
+++ b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
@@ -300,6 +300,9 @@ private slots:
void QTBUG56252();
+ void blendNullRGB32();
+ void toRGB64();
+
private:
void fillData();
void setPenColor(QPainter& p);
@@ -5151,6 +5154,39 @@ void tst_QPainter::QTBUG56252()
// If no crash or illegal memory read, all is fine
}
+void tst_QPainter::blendNullRGB32()
+{
+ quint32 data[16] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+
+ QImage nullImage((const uchar*)data, 16, 1, QImage::Format_RGB32);
+ QImage image(16, 1, QImage::Format_RGB32);
+ image.fill(Qt::white);
+
+ QPainter paint(&image);
+ paint.setCompositionMode(QPainter::CompositionMode_Source);
+ paint.setOpacity(0.5);
+ paint.drawImage(0, 0, nullImage);
+ paint.end();
+
+ for (int i=0; i < image.width(); ++i)
+ QVERIFY(image.pixel(i,0) != 0xffffffff);
+}
+
+void tst_QPainter::toRGB64()
+{
+ QImage dst(10, 1, QImage::Format_BGR30);
+ QImage src(10, 1, QImage::Format_RGB16);
+ src.fill(Qt::white);
+
+ QPainter paint(&dst);
+ paint.drawImage(0, 0, src);
+ paint.end();
+
+ for (int i=0; i < dst.width(); ++i) {
+ QVERIFY(dst.pixelColor(i,0) == QColor(Qt::white));
+ }
+}
+
QTEST_MAIN(tst_QPainter)
#include "tst_qpainter.moc"