65 : QWindowSurface(widget), d_ptr(new QS60WindowSurfacePrivate) |
65 : QWindowSurface(widget), d_ptr(new QS60WindowSurfacePrivate) |
66 { |
66 { |
67 |
67 |
68 TDisplayMode mode = S60->screenDevice()->DisplayMode(); |
68 TDisplayMode mode = S60->screenDevice()->DisplayMode(); |
69 bool isOpaque = qt_widget_private(widget)->isOpaque; |
69 bool isOpaque = qt_widget_private(widget)->isOpaque; |
70 if (mode == EColor16MA && isOpaque) { |
70 if (isOpaque) { |
71 mode = EColor16MU; // Faster since 16MU -> 16MA is typically accelerated |
71 mode = EColor16MU; |
72 } else if (mode == EColor16MU && !isOpaque) { |
72 } else { |
73 if (QSysInfo::symbianVersion() >= QSysInfo::SV_SF_3) |
73 if (QSysInfo::symbianVersion() >= QSysInfo::SV_SF_3) |
74 mode = Q_SYMBIAN_ECOLOR16MAP; // Symbian^3 has hw support for ARGB32_PRE |
74 mode = Q_SYMBIAN_ECOLOR16MAP; // Symbian^3 WServ has support for ARGB32_PRE |
75 else |
75 else |
76 mode = EColor16MA; // Symbian prior to Symbian^3 sw accelerates EColor16MA |
76 mode = EColor16MA; // Symbian prior to Symbian^3 sw accelerates EColor16MA |
77 } else if (QSysInfo::symbianVersion() >= QSysInfo::SV_SF_3 && !isOpaque) { |
|
78 mode = Q_SYMBIAN_ECOLOR16MAP; // Symbian^3 has hw support for ARGB32_PRE |
|
79 } |
77 } |
80 |
78 |
81 // We create empty CFbsBitmap here -> it will be resized in setGeometry |
79 // We create empty CFbsBitmap here -> it will be resized in setGeometry |
82 CFbsBitmap *bitmap = q_check_ptr(new CFbsBitmap); // CBase derived object needs check on new |
80 CFbsBitmap *bitmap = q_check_ptr(new CFbsBitmap); // CBase derived object needs check on new |
83 qt_symbian_throwIfError( bitmap->Create( TSize(0, 0), mode ) ); |
81 qt_symbian_throwIfError( bitmap->Create( TSize(0, 0), mode ) ); |