uiacceltk/hitchcock/coretoolkit/src/huicanvaswspainter.cpp
changeset 14 83d2d132aa58
parent 13 8f67d927ea57
child 25 f7f1ae431f74
--- a/uiacceltk/hitchcock/coretoolkit/src/huicanvaswspainter.cpp	Fri Mar 19 09:43:21 2010 +0200
+++ b/uiacceltk/hitchcock/coretoolkit/src/huicanvaswspainter.cpp	Fri Apr 16 15:56:24 2010 +0300
@@ -131,7 +131,6 @@
     {
     if (iCanvasVisual)
         {
-        iCanvasVisual->Env().CanvasTextureCache().ReleaseAllCachedEntries(*iCanvasVisual);
         iCanvasVisual->Env().RemoveMemoryLevelObserver(this);
         }
     else
@@ -369,8 +368,8 @@
              *        
              */            
             TBool clearBeforeHandlingBuffer = iCanvasWsGc->IsRenderBufferEnabled() 
-                && (!(aUser.Flags() & EHuiVisualFlagOpaqueHint) || aUser.IsBackgroundDrawingEnabled())
-                && !isFullUpdateRegionCleared;
+                && (!(aUser.Flags() & EHuiVisualFlagOpaqueHint) || aUser.IsBackgroundDrawingEnabled());
+
                         
             // TODO: Should avoid trap, but EndActionL must always be called
             TRAPD(err, DoHandleAllBuffersL( aDisplayRect, aAction, aUser, aGc, aPos, 
@@ -661,6 +660,14 @@
                     }                
                 break;
                 }
+            case EAlfFrameOrientation:
+                {
+                TInt orientation;
+                iWsCommandBufferReader->ReadInt32L(orientation);
+                commandBuffer.iOrientation = (CHuiGc::TOrientation)orientation;
+                break;
+                }
+                           
             case EAlfSetUpdateRegion: 
                 {
                 WsSetUpdateRegionL(aIndex);
@@ -790,6 +797,13 @@
                     }
                 break;
                 }
+            case EAlfFrameOrientation:
+                {
+                TInt orientation;
+                iWsCommandBufferReader->ReadInt32L( orientation );
+                break;
+                }
+
             case EAlfSetUpdateRegion: 
                 {
                 WsSetUpdateRegionL(aIndex);                    
@@ -911,6 +925,12 @@
             case EAlfClearRect:
                 {
                 commandBuffer->SetStatusFlags(EHuiCanvasBufferContainsDrawing);
+                TRgb transpclearcolor(KRgbWhite);
+                transpclearcolor.SetAlpha(0);
+                if (iBrushColor == transpclearcolor)
+                    {
+                    commandBuffer->SetStatusFlags(EHuiCanvasBufferContainsTransparentClear);                    
+                    }
                 WsClearRectL();
                 break;
                 }
@@ -1878,6 +1898,7 @@
 	#ifdef __ALF_SYMBIAN_RWINDOW_CLEARING_BUG_WORKAROUND__
 	iTestBrushColor.SetInternal(0);
 	#endif	
+	iBrushColor.SetInternal(0);
     }
 
 void CHuiCanvasWsPainter::WsSetBrushColorL()
@@ -1889,6 +1910,7 @@
 	#ifdef __ALF_SYMBIAN_RWINDOW_CLEARING_BUG_WORKAROUND__
 	iTestBrushColor = color;    	  	                            	
 	#endif
+	iBrushColor = color;
     }
 
 void CHuiCanvasWsPainter::WsSetBrushOriginL()
@@ -2484,6 +2506,11 @@
     return result;
     }
 
+void CHuiCanvasWsPainter::ClearCapturingBufferArea(const TRect& aRect)
+    {
+    iCanvasWsGc->ClearCapturingBufferArea(aRect);
+    }
+
 TRect CHuiCanvasWsPainter::DirtyRect() const
     {
     iTempRegion.Clear();