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