17 #include <graphics/wsscreendevice.h> |
17 #include <graphics/wsscreendevice.h> |
18 #include "panic.h" |
18 #include "panic.h" |
19 #include <graphics/wsdisplaycontrol.h> |
19 #include <graphics/wsdisplaycontrol.h> |
20 #include "displaypolicy.h" |
20 #include "displaypolicy.h" |
21 #include "utils.h" |
21 #include "utils.h" |
|
22 #include <graphics/sgutils.h> |
22 |
23 |
23 #if defined(__WINS__) && defined(_DEBUG) |
24 #if defined(__WINS__) && defined(_DEBUG) |
24 #define DEBUGOSB iRenderTarget->UpdateDebugWin(); |
25 #define DEBUGOSB iRenderTarget->UpdateDebugWin(); |
25 #else |
26 #else |
26 #define DEBUGOSB |
27 #define DEBUGOSB |
152 TPtrC flickerBufferModeName; |
153 TPtrC flickerBufferModeName; |
153 TDisplayMode displayMode = ENone; |
154 TDisplayMode displayMode = ENone; |
154 if (iniFile->FindVar(iNextScreenDevice->ScreenNumber(), KFlickerBufferMode, flickerBufferModeName)) |
155 if (iniFile->FindVar(iNextScreenDevice->ScreenNumber(), KFlickerBufferMode, flickerBufferModeName)) |
155 displayMode = ParseDisplayMode(flickerBufferModeName); |
156 displayMode = ParseDisplayMode(flickerBufferModeName); |
156 if (displayMode == ENone) |
157 if (displayMode == ENone) |
157 displayMode = iNextScreenDevice->DisplayMode(); |
158 { |
|
159 // Display render stage MWsScreenDevice::DisplayMode now reports the supported screendriver display mode in 32bpp. |
|
160 // It is necessary in order to maintain BC with 3rd party apps and DSA framework. |
|
161 // The reported display mode may be different from the actual UI surface pixel format, so flicker buffer |
|
162 // must not rely on DisplayMode() to determine pixel format for its rendering target. |
|
163 // |
|
164 MWsUiBuffer* uiBuf = aNextStage->ObjectInterface<MWsUiBuffer>(); |
|
165 if (uiBuf) |
|
166 { |
|
167 displayMode = SgUtils::PixelFormatToDisplayMode(uiBuf->PixelFormat()); |
|
168 } |
|
169 } |
158 STD_ASSERT_DEBUG(displayMode!=ENone, EPluginPanicNoDisplayModeFound); |
170 STD_ASSERT_DEBUG(displayMode!=ENone, EPluginPanicNoDisplayModeFound); |
159 |
171 |
160 const TUint32 usage = ESgUsageDirectGdiTarget | ESgUsageWindowGcSource; |
172 const TUint32 usage = ESgUsageDirectGdiTarget | ESgUsageWindowGcSource; |
161 const TSgCpuAccess cpuAccess = ESgCpuAccessReadWrite; |
173 const TSgCpuAccess cpuAccess = ESgCpuAccessReadWrite; |
162 TSize size; |
174 TSize size; |