summaryrefslogtreecommitdiffstats
path: root/src/gui/image/qpixmap_blitter.cpp
diff options
context:
space:
mode:
authorJulien Brianceau <jbrianceau@nds.com>2012-09-10 15:02:23 +0200
committerQt by Nokia <qt-info@nokia.com>2012-09-11 12:09:47 +0200
commitaab15782e21bf0aaea7f2211278e9aa9fc78c6d7 (patch)
tree02474b7b57e926d61d69ef435887b22deb35c71c /src/gui/image/qpixmap_blitter.cpp
parent9146666c6f1b03d95fda1ff04c7df59777882974 (diff)
qpa: add non-opaque fill support
Add non-opaque fill support for qpa through new QBlittable flag "AlphaFillRectCapability" and add related implementation in DirectFB qpa platform. Change-Id: I863a270e24c96c432489099a34dc1f3a2be52280 Reviewed-by: Qt Doc Bot <qt_docbot@qt-project.org> Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Diffstat (limited to 'src/gui/image/qpixmap_blitter.cpp')
-rw-r--r--src/gui/image/qpixmap_blitter.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/gui/image/qpixmap_blitter.cpp b/src/gui/image/qpixmap_blitter.cpp
index 53e997e063..01fdd8b86a 100644
--- a/src/gui/image/qpixmap_blitter.cpp
+++ b/src/gui/image/qpixmap_blitter.cpp
@@ -130,8 +130,10 @@ int QBlittablePlatformPixmap::metric(QPaintDevice::PaintDeviceMetric metric) con
void QBlittablePlatformPixmap::fill(const QColor &color)
{
- //jlind: todo: change when blittables can support non opaque fillRects
- if (color.alpha() == 255 && blittable()->capabilities() & QBlittable::SolidRectCapability) {
+ if (blittable()->capabilities() & QBlittable::AlphaFillRectCapability) {
+ blittable()->unlock();
+ blittable()->alphaFillRect(QRectF(0,0,w,h),color,QPainter::CompositionMode_Source);
+ } else if (color.alpha() == 255 && blittable()->capabilities() & QBlittable::SolidRectCapability) {
blittable()->unlock();
blittable()->fillRect(QRectF(0,0,w,h),color);
} else {