diff -r 15bf7259bb7c -r 8f67d927ea57 uiacceltk/hitchcock/coretoolkit/src/HuiFxEffect.cpp --- a/uiacceltk/hitchcock/coretoolkit/src/HuiFxEffect.cpp Tue Feb 02 07:56:43 2010 +0200 +++ b/uiacceltk/hitchcock/coretoolkit/src/HuiFxEffect.cpp Fri Mar 19 09:43:21 2010 +0200 @@ -238,6 +238,12 @@ { iRoot->EnableMargin(EFalse); } + + // Check if surface pixels are to be used for this effect in all layers. + if (EffectFlags() & KHuiFxEnableBackgroundInAllLayers) + { + iRoot->SetAlwaysReadSurfacePixels(ETrue); + } iRoot->SetTargetRect(targetArea); iRoot->SetSourceRect(targetArea); @@ -257,8 +263,15 @@ // Background has not been disabled with a effect specific flag TBool enableBackground = IsAppliedToBackground() && (!aOpaque || iRoot->IsMarginEnabled()) && !(EffectFlags() & KHuiFxDisableBackground); + if (EffectFlags() & KHuiFxEnableBackgroundInAllLayers) + { + enableBackground = ETrue; + } + + TBool useFrozenBackground = (EffectFlags() & KHuiFxFrozenBackground); + // Check if cache is up-to date or does it need to be refreshed - TBool cachedRenderTargetNeedsRefresh = (iRoot->Changed() || aRefreshCachedRenderTarget || enableBackground); + TBool cachedRenderTargetNeedsRefresh = (iRoot->Changed() || aRefreshCachedRenderTarget || (enableBackground && !useFrozenBackground)); // Try to apply also margins, we cannot just use aDisplayRect directly TRect targetRect = iRoot->VisualRect();