summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Olav Tvete <paul.tvete@nokia.com>2010-01-08 13:46:49 (GMT)
committerPaul Olav Tvete <paul.tvete@nokia.com>2010-01-08 13:49:15 (GMT)
commit9096336c767670b4f68d507a5116da433ecb40b0 (patch)
treec5c84859d13f5899c10bb8e4c14e80c661348647 /src
parent18c551144eeeff6a2e124fc427b2a6c973516c5c (diff)
downloadQt-9096336c767670b4f68d507a5116da433ecb40b0.zip
Qt-9096336c767670b4f68d507a5116da433ecb40b0.tar.gz
Qt-9096336c767670b4f68d507a5116da433ecb40b0.tar.bz2
Alpha channel fixes for QBlittablePixmapData
Reviewed-by: Jørgen Lind
Diffstat (limited to 'src')
-rw-r--r--src/gui/image/qpixmap_blitter.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/gui/image/qpixmap_blitter.cpp b/src/gui/image/qpixmap_blitter.cpp
index 3613211..6ab97c1 100644
--- a/src/gui/image/qpixmap_blitter.cpp
+++ b/src/gui/image/qpixmap_blitter.cpp
@@ -75,10 +75,10 @@ int QBlittablePixmapData::metric(QPaintDevice::PaintDeviceMetric metric) const
void QBlittablePixmapData::fill(const QColor &color)
{
- if (blittable()->capabilities() & QBlittable::SolidRectCapability)
- blittable()->fillRect(QRectF(0,0,w,h),color);
+ if (color.alpha() == 255 && blittable()->capabilities() & QBlittable::SolidRectCapability)
+ blittable()->fillRect(QRectF(0,0,w,h),color);
else
- blittable()->lock()->fill(color.rgb());
+ blittable()->lock()->fill(color.rgba());
}
QImage *QBlittablePixmapData::buffer()
@@ -102,6 +102,7 @@ void QBlittablePixmapData::fromImage(const QImage &image,
resize(image.width(),image.height());
QImage *thisImg = blittable()->lock();
QPainter p(thisImg);
+ p.setCompositionMode(QPainter::CompositionMode_Source);
p.drawImage(0,0,image,flags);
}