--- 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