uiacceltk/hitchcock/coretoolkit/src/HuiCanvasTextureCache.cpp
branchRCL_3
changeset 11 46927d61fef3
parent 10 88b23e2e82e1
child 17 3ac8bf5c5014
--- a/uiacceltk/hitchcock/coretoolkit/src/HuiCanvasTextureCache.cpp	Wed Mar 31 23:03:58 2010 +0300
+++ b/uiacceltk/hitchcock/coretoolkit/src/HuiCanvasTextureCache.cpp	Wed Apr 14 16:53:50 2010 +0300
@@ -3170,7 +3170,7 @@
 
     for(TInt i=entries.Count() - 1; i >= 0; i--)
         {
-        if (iCachedRenderBuffers[i]->iCanvasRenderBuffer)
+        if (entries[i]->iCanvasRenderBuffer)
             {        
             TSize renderBufferSize = entries[i]->iCanvasRenderBuffer->Size();    
             totalUnusedRenderBufferBytes += renderBufferSize.iWidth * renderBufferSize.iHeight * KHuiCanvasRenderBufferEstimatedBpp/8.f;
@@ -3473,6 +3473,25 @@
             delete entry;            
             }                    
         }
+    else if(iMemoryLevel <= EHuiMemoryLevelReduced)
+        {
+        // free all the caches but allow using renderbuffers
+        #ifdef HUI_DEBUG_PRINT_PERFORMANCE_INTERVAL
+        RDebug::Print(_L("-- CHuiCanvasTextureCache::SetMemoryLevel: Enabling recuded memory state"));
+        RDebug::Print(_L("-- CHuiCanvasTextureCache::SetMemoryLevel: Caching of textures disabled but renderbuffers enabled"));
+        #endif
+        // Set cache sizes to minimum
+        iMaxTextureMemoryInKBytes = 0;
+        iMaxRenderBufferMemoryInKBytes = 0;
+        
+        // Set flags to make sure we check all entries
+        iHasReleasedTexts = ETrue;
+        iHasReleasedImages = ETrue;
+        iHasReleasedRenderBuffers = ETrue;
+        
+        // Delete released cached entries
+        DeleteAllReleasedEntries(EFalse);
+        }
     else
         {
         #ifdef HUI_DEBUG_PRINT_PERFORMANCE_INTERVAL