--- a/uiacceltk/hitchcock/coretoolkit/src/HuiFxVisualLayer.cpp Thu Jul 15 19:40:07 2010 +0300
+++ b/uiacceltk/hitchcock/coretoolkit/src/HuiFxVisualLayer.cpp Thu Aug 19 10:48:02 2010 +0300
@@ -206,10 +206,6 @@
#ifdef HUIFX_TRACE
RDebug::Print(_L("CHuiFxVisualLayer::~CHuiFxVisualLayer - 0x%x "), this);
#endif
- if(iRenderBuffer && iEngine)
- {
- iEngine->ReleaseRenderbuffer(iRenderBuffer);
- }
delete iExtBitmapFile;
delete iParameterManager;
@@ -240,6 +236,16 @@
return ETrue;
}
+EXPORT_C void CHuiFxVisualLayer::ReleaseAllCachedRenderTargets(CHuiFxEngine& aEngine)
+ {
+ if(iRenderBuffer)
+ {
+ aEngine.ReleaseRenderbuffer(iRenderBuffer);
+ iRenderBuffer = NULL;
+ }
+ }
+
+
EXPORT_C void CHuiFxVisualLayer::Draw(CHuiFxEngine& aEngine, CHuiGc& aGc, CHuiFxRenderbuffer &aTarget, CHuiFxRenderbuffer& /*aSource*/, TBool /*aHasSurface*/)
{
#ifdef HUIFX_TRACE
@@ -252,8 +258,7 @@
if (iRenderBuffer && iRenderBuffer->Size() != backbufferSize)
{
- iEngine->ReleaseRenderbuffer(iRenderBuffer);
- iRenderBuffer = NULL;
+ ReleaseAllCachedRenderTargets(aEngine);
}
if(!iRenderBuffer)
@@ -263,7 +268,6 @@
{
return;
}
- iEngine = &aEngine;
forceRefresh = ETrue;
}
@@ -538,7 +542,13 @@
{
if( iVisualContentOpaque != aOpaque || aChanged)
{
- iVisualContentChanged = aChanged;
+ iVisualContentChanged = ETrue;
}
+ else
+ {
+ iVisualContentChanged = EFalse;
+ }
+
iVisualContentOpaque = aOpaque;
}
+