uiacceltk/hitchcock/coretoolkit/src/HuiDisplay.cpp
branchRCL_3
changeset 7 88b23e2e82e1
parent 6 10534483575f
child 8 46927d61fef3
--- a/uiacceltk/hitchcock/coretoolkit/src/HuiDisplay.cpp	Mon Mar 15 12:43:37 2010 +0200
+++ b/uiacceltk/hitchcock/coretoolkit/src/HuiDisplay.cpp	Wed Mar 31 23:03:58 2010 +0300
@@ -638,6 +638,12 @@
         return EFalse;
         }
     
+    if (!iForegroundTextureTransparency && iForegroundTexture)
+        {
+        // When we can blit foreground texture, we shouldn't need any textures in skin side.
+        iEnv.Skin().ReleaseCachedTextures();
+        }
+    
     TBool useDirtyRects = (RenderSurface().Flags() & MHuiRenderSurface::EFlagUseDirtyRects) 
     					  == MHuiRenderSurface::EFlagUseDirtyRects;
  	
@@ -851,7 +857,7 @@
         iGc->PushClip();
         iGc->Clip(dirtyRect);        
         
-        if ( iForegroundBitmapGc )
+        if ( iForegroundBitmapGc && !RosterImpl().IsVisibleContentFrozen() )
             {
             // If we are in SW rendering mode, then SW bitmap may be blended.
             // However, it's possible that nothing is drawn below, so clear
@@ -1628,6 +1634,12 @@
 EXPORT_C void CHuiDisplay::SetForegroundTextureOptions(TBool aTransparency)
     {
     iForegroundTextureTransparency = aTransparency;
+
+    if (!iForegroundTextureTransparency && iForegroundTexture)
+        {
+        // When we can blit foreground texture, we shouldn't need any textures in skin side.
+        iEnv.Skin().ReleaseCachedTextures();
+        }
     }
 
 void CHuiDisplay::UpdateForegroundTexture(const TRect& aRect)
@@ -1657,7 +1669,7 @@
 
 void CHuiDisplay::DrawForegroundTexture()
     {
-    if (iForegroundTexture)
+    if (iForegroundTexture && !RosterImpl().IsVisibleContentFrozen() )
         {
         THuiQuality originalQuality = iGc->Quality();
         if ( originalQuality != EHuiQualityFast )