effects/contrast: Round device coordinates when creating geometry

Since normal geometry is now rounded, we need to make sure to round
anything that should match that geometry, otherwise we risk things
peeking out of the normal geometry.

BUG: 464526


(cherry picked from commit edbbe996d33d17ae8020fb06611141586fd1e7bb)
icc-effect-5.27.2
Arjen Hiemstra 2023-02-20 12:41:18 +01:00 committed by Vlad Zahorodnii
parent e25b182830
commit c3f88fed62
1 changed files with 4 additions and 4 deletions

View File

@ -313,10 +313,10 @@ void ContrastEffect::uploadRegion(QVector2D *&map, const QRegion &region, qreal
Q_ASSERT(map);
for (const QRect &r : region) {
const auto deviceRect = scaledRect(r, scale);
const QVector2D topLeft(deviceRect.x(), deviceRect.y());
const QVector2D topRight(deviceRect.x() + deviceRect.width(), deviceRect.y());
const QVector2D bottomLeft(deviceRect.x(), deviceRect.y() + deviceRect.height());
const QVector2D bottomRight(deviceRect.x() + deviceRect.width(), deviceRect.y() + deviceRect.height());
const QVector2D topLeft = roundVector(QVector2D(deviceRect.x(), deviceRect.y()));
const QVector2D topRight = roundVector(QVector2D(deviceRect.x() + deviceRect.width(), deviceRect.y()));
const QVector2D bottomLeft = roundVector(QVector2D(deviceRect.x(), deviceRect.y() + deviceRect.height()));
const QVector2D bottomRight = roundVector(QVector2D(deviceRect.x() + deviceRect.width(), deviceRect.y() + deviceRect.height()));
// First triangle
*(map++) = topRight;