diff options
author | Julien Brianceau <jbrianceau@nds.com> | 2012-09-10 15:02:23 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-09-11 12:09:47 +0200 |
commit | aab15782e21bf0aaea7f2211278e9aa9fc78c6d7 (patch) | |
tree | 02474b7b57e926d61d69ef435887b22deb35c71c /src/gui/image/qpixmap_blitter.cpp | |
parent | 9146666c6f1b03d95fda1ff04c7df59777882974 (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.cpp | 6 |
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 { |