uiacceltk/hitchcock/coretoolkit/src/HuiCanvasTextureCache.cpp
branchRCL_3
changeset 3 d8a3531bc6b8
parent 0 15bf7259bb7c
child 5 433cbbb6a04b
equal deleted inserted replaced
0:15bf7259bb7c 3:d8a3531bc6b8
   283     iFont = NULL;
   283     iFont = NULL;
   284     }
   284     }
   285 
   285 
   286 CHuiCanvasTextImage::~CHuiCanvasTextImage()
   286 CHuiCanvasTextImage::~CHuiCanvasTextImage()
   287     {
   287     {
       
   288     delete iText;
       
   289     iText = NULL;
   288     }
   290     }
   289 
   291 
   290 TBool CHuiCanvasTextImage::UseColorModulation() const
   292 TBool CHuiCanvasTextImage::UseColorModulation() const
   291     {
   293     {
   292     return iUseColorModulation; 
   294     return iUseColorModulation; 
  2189     iSearchedGraphicImageEntry->iInvertedMask = aCachedImageParams.iInvertedMask;
  2191     iSearchedGraphicImageEntry->iInvertedMask = aCachedImageParams.iInvertedMask;
  2190     iSearchedGraphicImageEntry->iMaskOriginPoint = aCachedImageParams.iMaskOriginPoint;
  2192     iSearchedGraphicImageEntry->iMaskOriginPoint = aCachedImageParams.iMaskOriginPoint;
  2191     iSearchedGraphicImageEntry->iBitmapTouchCount = KHuiInitialBitmapTouchCount;
  2193     iSearchedGraphicImageEntry->iBitmapTouchCount = KHuiInitialBitmapTouchCount;
  2192     iSearchedGraphicImageEntry->iMaskTouchCount = KHuiInitialBitmapTouchCount;
  2194     iSearchedGraphicImageEntry->iMaskTouchCount = KHuiInitialBitmapTouchCount;
  2193     iSearchedGraphicImageEntry->iGcParams = aCachedImageParams.iGcParams;
  2195     iSearchedGraphicImageEntry->iGcParams = aCachedImageParams.iGcParams;
       
  2196     iSearchedGraphicImageEntry->iCache = this;
  2194     
  2197     
  2195     cachedEntry = iCachedImages.FindInOrder(iSearchedGraphicImageEntry, ImageOrderFunc);
  2198     cachedEntry = iCachedImages.FindInOrder(iSearchedGraphicImageEntry, ImageOrderFunc);
  2196     if (cachedEntry == KErrNotFound)
  2199     if (cachedEntry == KErrNotFound)
  2197         {
  2200         {
  2198         User::Leave(KErrNotFound);
  2201         User::Leave(KErrNotFound);
  2217     TInt cachedEntry = KErrNotFound;
  2220     TInt cachedEntry = KErrNotFound;
  2218         
  2221         
  2219     iSearchedGraphicImageEntry->Reset();
  2222     iSearchedGraphicImageEntry->Reset();
  2220     iSearchedGraphicImageEntry->iGcParams = aGcParams;
  2223     iSearchedGraphicImageEntry->iGcParams = aGcParams;
  2221     iSearchedGraphicImageEntry->iImageSize = aImageSize;
  2224     iSearchedGraphicImageEntry->iImageSize = aImageSize;
       
  2225     iSearchedGraphicImageEntry->iCache = this;
  2222     
  2226     
  2223     
  2227     
  2224     for (TInt i=0; i<aCachedImageParams.Count();i++)
  2228     for (TInt i=0; i<aCachedImageParams.Count();i++)
  2225         {
  2229         {
  2226         THuiCachedBitmap cachedBitmap;
  2230         THuiCachedBitmap cachedBitmap;
  2292     iSearchedGraphicImageEntry->iInvertedMask = aCachedImageParams.iInvertedMask;
  2296     iSearchedGraphicImageEntry->iInvertedMask = aCachedImageParams.iInvertedMask;
  2293     iSearchedGraphicImageEntry->iMaskOriginPoint = aCachedImageParams.iMaskOriginPoint;
  2297     iSearchedGraphicImageEntry->iMaskOriginPoint = aCachedImageParams.iMaskOriginPoint;
  2294     iSearchedGraphicImageEntry->iBitmapTouchCount = KHuiInitialBitmapTouchCount;
  2298     iSearchedGraphicImageEntry->iBitmapTouchCount = KHuiInitialBitmapTouchCount;
  2295     iSearchedGraphicImageEntry->iMaskTouchCount = KHuiInitialBitmapTouchCount;
  2299     iSearchedGraphicImageEntry->iMaskTouchCount = KHuiInitialBitmapTouchCount;
  2296     iSearchedGraphicImageEntry->iGcParams = aCachedImageParams.iGcParams;
  2300     iSearchedGraphicImageEntry->iGcParams = aCachedImageParams.iGcParams;
       
  2301     iSearchedGraphicImageEntry->iCache = this;
  2297     
  2302     
  2298     cachedEntry = iCachedImages.FindInOrder(iSearchedGraphicImageEntry, ImageOrderFunc);
  2303     cachedEntry = iCachedImages.FindInOrder(iSearchedGraphicImageEntry, ImageOrderFunc);
  2299     if (cachedEntry == KErrNotFound)
  2304     if (cachedEntry == KErrNotFound)
  2300         {
  2305         {
  2301         // Create new entry object
  2306         // Create new entry object
  2302         CHuiCanvasGraphicImage* newEntry = new (ELeave) CHuiCanvasGraphicImage; 
  2307         CHuiCanvasGraphicImage* newEntry = new (ELeave) CHuiCanvasGraphicImage; 
  2303         CleanupStack::PushL(newEntry);                    
  2308         CleanupStack::PushL(newEntry);
  2304         
  2309         
  2305         newEntry->CopyAttributes(*iSearchedGraphicImageEntry);
  2310         newEntry->CopyAttributes(*iSearchedGraphicImageEntry);
  2306         
  2311         
  2307         // Create new accelerated image
  2312         // Create new accelerated image
  2308         CHuiTexture* newtexture = CreateRecycledTextureL();
  2313         CHuiTexture* newtexture = CreateRecycledTextureL();
  2309         newEntry->iTexture = newtexture;        
  2314         newEntry->iTexture = newtexture;        
  2310 
  2315 
  2311         User::LeaveIfError(iCachedImages.InsertInOrder(newEntry, ImageOrderFunc));
  2316         User::LeaveIfError(iCachedImages.InsertInOrder(newEntry, ImageOrderFunc));
  2312         cachedEntry = iCachedImages.FindInOrder(newEntry, ImageOrderFunc);
  2317         cachedEntry = iCachedImages.FindInOrder(newEntry, ImageOrderFunc);
  2313         CleanupStack::Pop(newEntry);
  2318         CleanupStack::Pop(newEntry);
  2314         needUpdate = ETrue;            
  2319         needUpdate = ETrue;
  2315         }
  2320         }
  2316     else
  2321     else
  2317         {
  2322         {
  2318         // Check if needs to be updated by checking active users list
  2323         // Check if needs to be updated by checking active users list
  2319         if (!iCachedImages[cachedEntry]->IsUser(aUser))
  2324         if (!iCachedImages[cachedEntry]->IsUser(aUser))