uiacceltk/hitchcock/coretoolkit/src/HuiFxVisualLayer.cpp
branchRCL_3
changeset 18 1801340c26a2
parent 17 c9d868f1e20c
child 19 e5af45d51884
--- 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;
     }
+