--- a/uiacceltk/hitchcock/coretoolkit/src/HuiFxEffect.cpp Mon Feb 22 17:57:49 2010 +0200
+++ b/uiacceltk/hitchcock/coretoolkit/src/HuiFxEffect.cpp Fri Mar 12 15:47:04 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();