Fix setScaledClipRect autotest for reading SVG format
Since setScaledClipRect will actually render only the necessary parts, there may be insignificant differences in rounding/anitaliasing compared to rendering the whole image first and then clipping. Hence this autotest case would always fail. But that would not happen in CI, since it tests qtbase without the qtsvg module, and then the SVG tests are skipped. (For some reason, one ran into this in wayland testing and made an exception for that, but obviously this failure has nothing to do with wayland). Work around the issue by converting the rendered images to 4 bpc format, so the differences in the least significant bits get truncated away. Fixes: QTBUG-100917 Task-number: QTBUG-81044 Change-Id: I1c14e98af22d0ae22a751960b69e692c7a38399b Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit 458ec4cb5442315c2c923ba78faf45fdd729a109) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
7e476f5c48
commit
e3e655744a
@ -487,8 +487,11 @@ void tst_QImageReader::setScaledClipRect()
|
||||
QImageReader originalReader(prefix + fileName);
|
||||
originalReader.setScaledSize(QSize(300, 300));
|
||||
QImage originalImage = originalReader.read();
|
||||
if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive) && format.contains("svg"))
|
||||
QEXPECT_FAIL("", "This fails on Wayland, see QTBUG-100917.", Abort);
|
||||
if (format.contains("svg")) {
|
||||
// rendering of subrect may yield slight rounding differences, truncate them away
|
||||
image.convertTo(QImage::Format_RGB444);
|
||||
originalImage.convertTo(QImage::Format_RGB444);
|
||||
}
|
||||
QCOMPARE(originalImage.copy(newRect), image);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user