diff options
author | Samuel Rødal <sroedal@trolltech.com> | 2009-08-26 08:29:11 (GMT) |
---|---|---|
committer | Samuel Rødal <sroedal@trolltech.com> | 2009-08-26 08:39:56 (GMT) |
commit | e692a4044e161c46e6b145d2f3874a0b7b929b4d (patch) | |
tree | 4876e38b250d32398a118d71504d5ef018859b68 | |
parent | 4806174aeff4d7c600f6be20649153bf0e997953 (diff) | |
download | Qt-e692a4044e161c46e6b145d2f3874a0b7b929b4d.zip Qt-e692a4044e161c46e6b145d2f3874a0b7b929b4d.tar.gz Qt-e692a4044e161c46e6b145d2f3874a0b7b929b4d.tar.bz2 |
Fixed clipping bug in GL 2 paint engine (visible in arthur demos).
QVectorPath::hints() is not a strict bit field, and thus can not be
anded with RectangleHint. Instead, QVectorPath::shape() should be
directly compared with RectangleHint to check if the vector path is a
rectangle or not. In this case the first four points of a regular
painter path were treated as a rectangle with dire consequences.
Reviewed-by: Tom
-rw-r--r-- | src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp index 2901c1e..136a078 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp @@ -1499,7 +1499,7 @@ void QGL2PaintEngineEx::clip(const QVectorPath &path, Qt::ClipOperation op) if (op == Qt::ReplaceClip && !d->hasClipOperations()) op = Qt::IntersectClip; - if (!path.isEmpty() && op == Qt::IntersectClip && (path.hints() & QVectorPath::RectangleHint)) { + if (!path.isEmpty() && op == Qt::IntersectClip && (path.shape() == QVectorPath::RectangleHint)) { const QPointF* const points = reinterpret_cast<const QPointF*>(path.points()); QRectF rect(points[0], points[2]); |