diff options
author | Jani Hautakangas <ext-jani.hautakangas@nokia.com> | 2010-08-06 10:18:24 (GMT) |
---|---|---|
committer | Jani Hautakangas <ext-jani.hautakangas@nokia.com> | 2010-08-06 10:43:05 (GMT) |
commit | 0210bbbd7bf8254be5f7f19f524068cd39fc34c2 (patch) | |
tree | 1f1389af46ace62b9632ee4814c01e602cdeeb09 /src/gui/painting/qwindowsurface_s60.cpp | |
parent | 339270016bd8805b081f0b4ff550906a6bcfec5b (diff) | |
download | Qt-0210bbbd7bf8254be5f7f19f524068cd39fc34c2.zip Qt-0210bbbd7bf8254be5f7f19f524068cd39fc34c2.tar.gz Qt-0210bbbd7bf8254be5f7f19f524068cd39fc34c2.tar.bz2 |
Use ARGB32 premultiplied backing store format in Symbian^3
raster paint engine for translucent windows.
Task-number: QTBUG-12710
Reviewed-by: Jason Barron
Diffstat (limited to 'src/gui/painting/qwindowsurface_s60.cpp')
-rw-r--r-- | src/gui/painting/qwindowsurface_s60.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/gui/painting/qwindowsurface_s60.cpp b/src/gui/painting/qwindowsurface_s60.cpp index 477bd93..8bac1f5 100644 --- a/src/gui/painting/qwindowsurface_s60.cpp +++ b/src/gui/painting/qwindowsurface_s60.cpp @@ -67,10 +67,14 @@ QS60WindowSurface::QS60WindowSurface(QWidget* widget) TDisplayMode mode = S60->screenDevice()->DisplayMode(); bool isOpaque = qt_widget_private(widget)->isOpaque; - if (mode == EColor16MA && isOpaque) - mode = EColor16MU; // Faster since 16MU -> 16MA is typically accelerated - else if (mode == EColor16MU && !isOpaque) - mode = EColor16MA; // Try for transparency anyway + if (isOpaque) { + mode = EColor16MU; + } else { + if (QSysInfo::symbianVersion() >= QSysInfo::SV_SF_3) + mode = Q_SYMBIAN_ECOLOR16MAP; // Symbian^3 WServ has support for ARGB32_PRE + else + mode = EColor16MA; // Symbian prior to Symbian^3 sw accelerates EColor16MA + } // We create empty CFbsBitmap here -> it will be resized in setGeometry CFbsBitmap *bitmap = q_check_ptr(new CFbsBitmap); // CBase derived object needs check on new |