uiacceltk/hitchcock/coretoolkit/src/HuiCanvasTextureCache.cpp
changeset 21 6ce30188c5bf
parent 19 f5bac0badc7e
child 29 ac3859d43844
equal deleted inserted replaced
19:f5bac0badc7e 21:6ce30188c5bf
  3268     cachedEntry = iCachedRenderBuffers.FindInOrder(iSearchedRenderBufferImageEntry, RenderBufferOrderFunc);
  3268     cachedEntry = iCachedRenderBuffers.FindInOrder(iSearchedRenderBufferImageEntry, RenderBufferOrderFunc);
  3269     
  3269     
  3270     if (cachedEntry == KErrNotFound)
  3270     if (cachedEntry == KErrNotFound)
  3271         {
  3271         {
  3272         // Try first getting reused render buffer
  3272         // Try first getting reused render buffer
  3273         newRenderBufferEntry = ReUseReleasedRenderBuffer(aSizeHint);
  3273         newRenderBufferEntry = ReUseReleasedRenderBufferL(aSizeHint);
  3274 
  3274 
  3275         // Create new entry object if needed
  3275         // Create new entry object if needed
  3276         if (!newRenderBufferEntry)
  3276         if (!newRenderBufferEntry)
  3277             {
  3277             {
  3278             newRenderBufferEntry = new (ELeave) CHuiCanvasRenderBufferImage;             
  3278             newRenderBufferEntry = new (ELeave) CHuiCanvasRenderBufferImage;             
  3373 
  3373 
  3374 // ---------------------------------------------------------------------------
  3374 // ---------------------------------------------------------------------------
  3375 // 
  3375 // 
  3376 // ---------------------------------------------------------------------------
  3376 // ---------------------------------------------------------------------------
  3377 //
  3377 //
  3378 CHuiCanvasRenderBufferImage* CHuiCanvasTextureCache::ReUseReleasedRenderBuffer(TSize aSizeHint)
  3378 CHuiCanvasRenderBufferImage* CHuiCanvasTextureCache::ReUseReleasedRenderBufferL(TSize aSizeHint)
  3379     {
  3379     {
  3380     if (aSizeHint == TSize(0,0))
  3380     if (aSizeHint == TSize(0,0))
  3381         {
  3381         {
  3382         return NULL;
  3382         return NULL;
  3383         }
  3383         }
  3390             iCachedRenderBuffers[i]->iCanvasRenderBuffer->Size() == aSizeHint)
  3390             iCachedRenderBuffers[i]->iCanvasRenderBuffer->Size() == aSizeHint)
  3391             {
  3391             {
  3392             // Remove from array and return instance to caller
  3392             // Remove from array and return instance to caller
  3393             CHuiCanvasRenderBufferImage* reusedEntry = iCachedRenderBuffers[i];        
  3393             CHuiCanvasRenderBufferImage* reusedEntry = iCachedRenderBuffers[i];        
  3394             iCachedRenderBuffers.Remove(i);
  3394             iCachedRenderBuffers.Remove(i);
       
  3395             
       
  3396             if (reusedEntry->iCanvasRenderBuffer && reusedEntry->iCanvasRenderBuffer->IsInitialized())
       
  3397                 {
       
  3398                 reusedEntry->iCanvasRenderBuffer->InitializeL(aSizeHint, ETrue);
       
  3399                 }
       
  3400             
  3395             return reusedEntry;
  3401             return reusedEntry;
  3396             }
  3402             }
  3397         }         
  3403         }         
  3398 
  3404 
  3399     return NULL;
  3405     return NULL;