diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2010-06-23 05:40:45 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2010-06-23 05:40:45 (GMT) |
commit | eaf886318568bfbd9aa1722586264c8fdf90df12 (patch) | |
tree | 143c5dda8b9a2228c5c20c43cfc341625a561e12 /src/gui/painting | |
parent | 25da7da1b5b454eae0b8080a97fd4a37d688aa54 (diff) | |
parent | 08e2216a5157c5de30a65674051b08df6f2a1bf6 (diff) | |
download | Qt-eaf886318568bfbd9aa1722586264c8fdf90df12.zip Qt-eaf886318568bfbd9aa1722586264c8fdf90df12.tar.gz Qt-eaf886318568bfbd9aa1722586264c8fdf90df12.tar.bz2 |
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2:
Fixed crash in the fast blend functions for raster
Diffstat (limited to 'src/gui/painting')
-rw-r--r-- | src/gui/painting/qpaintengine_raster.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/gui/painting/qpaintengine_raster.cpp b/src/gui/painting/qpaintengine_raster.cpp index a212718..94e5cbc 100644 --- a/src/gui/painting/qpaintengine_raster.cpp +++ b/src/gui/painting/qpaintengine_raster.cpp @@ -2688,7 +2688,11 @@ void QRasterPaintEngine::drawImage(const QRectF &r, const QImage &img, const QRe if (s->matrix.type() > QTransform::TxTranslate || stretch_sr) { - if (s->flags.fast_images) { + QRectF targetBounds = s->matrix.mapRect(r); + bool exceedsPrecision = targetBounds.width() > 0xffff + || targetBounds.height() > 0xffff; + + if (s->flags.fast_images && !exceedsPrecision) { if (s->matrix.type() > QTransform::TxScale) { SrcOverTransformFunc func = qTransformFunctions[d->rasterBuffer->format][img.format()]; if (func && (!clip || clip->hasRectClip)) { |