windowing/windowserverplugins/openwfc/src/fbrenderstage.cpp
branchRCL_3
changeset 5 25f95128741d
parent 0 5d03bc08d59c
child 19 bbf46f59e123
equal deleted inserted replaced
4:15986eb6c500 5:25f95128741d
    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;