uiacceltk/hitchcock/coretoolkit/src/HuiFxVisualLayer.cpp
branchRCL_3
changeset 50 1801340c26a2
parent 49 c9d868f1e20c
child 51 e5af45d51884
equal deleted inserted replaced
49:c9d868f1e20c 50:1801340c26a2
   204 EXPORT_C CHuiFxVisualLayer::~CHuiFxVisualLayer()
   204 EXPORT_C CHuiFxVisualLayer::~CHuiFxVisualLayer()
   205     {
   205     {
   206 #ifdef HUIFX_TRACE    
   206 #ifdef HUIFX_TRACE    
   207     RDebug::Print(_L("CHuiFxVisualLayer::~CHuiFxVisualLayer - 0x%x "), this);
   207     RDebug::Print(_L("CHuiFxVisualLayer::~CHuiFxVisualLayer - 0x%x "), this);
   208 #endif
   208 #endif
   209     if(iRenderBuffer && iEngine)
       
   210         {
       
   211         iEngine->ReleaseRenderbuffer(iRenderBuffer);
       
   212         }
       
   213     
   209     
   214     delete iExtBitmapFile;
   210     delete iExtBitmapFile;
   215     delete iParameterManager;
   211     delete iParameterManager;
   216     iParameterManager = NULL;
   212     iParameterManager = NULL;
   217     }
   213     }
   237         {
   233         {
   238         iVisual->EffectSetOpacityAdditive( iOpacity, EFalse );
   234         iVisual->EffectSetOpacityAdditive( iOpacity, EFalse );
   239         }
   235         }
   240     return ETrue;
   236     return ETrue;
   241     }
   237     }
       
   238 
       
   239 EXPORT_C void CHuiFxVisualLayer::ReleaseAllCachedRenderTargets(CHuiFxEngine& aEngine)
       
   240     {
       
   241     if(iRenderBuffer)
       
   242         {
       
   243         aEngine.ReleaseRenderbuffer(iRenderBuffer);
       
   244         iRenderBuffer = NULL;
       
   245         }
       
   246     }
       
   247 
   242 
   248 
   243 EXPORT_C void CHuiFxVisualLayer::Draw(CHuiFxEngine& aEngine, CHuiGc& aGc, CHuiFxRenderbuffer &aTarget, CHuiFxRenderbuffer& /*aSource*/, TBool /*aHasSurface*/)
   249 EXPORT_C void CHuiFxVisualLayer::Draw(CHuiFxEngine& aEngine, CHuiGc& aGc, CHuiFxRenderbuffer &aTarget, CHuiFxRenderbuffer& /*aSource*/, TBool /*aHasSurface*/)
   244     {
   250     {
   245 #ifdef HUIFX_TRACE    
   251 #ifdef HUIFX_TRACE    
   246     RDebug::Print(_L("CHuiFxVisualLayer::Draw - 0x%x "), this);
   252     RDebug::Print(_L("CHuiFxVisualLayer::Draw - 0x%x "), this);
   250     THuiFxEngineType engineType = aEngine.EngineType();
   256     THuiFxEngineType engineType = aEngine.EngineType();
   251     TBool forceRefresh = EFalse;
   257     TBool forceRefresh = EFalse;
   252     
   258     
   253     if (iRenderBuffer && iRenderBuffer->Size() != backbufferSize)
   259     if (iRenderBuffer && iRenderBuffer->Size() != backbufferSize)
   254         {
   260         {
   255         iEngine->ReleaseRenderbuffer(iRenderBuffer);
   261         ReleaseAllCachedRenderTargets(aEngine);
   256         iRenderBuffer = NULL;
       
   257         }
   262         }
   258     
   263     
   259     if(!iRenderBuffer)
   264     if(!iRenderBuffer)
   260         {
   265         {
   261         iRenderBuffer = aEngine.AcquireRenderbuffer(backbufferSize, EFalse);
   266         iRenderBuffer = aEngine.AcquireRenderbuffer(backbufferSize, EFalse);
   262         if (!iRenderBuffer)
   267         if (!iRenderBuffer)
   263             {
   268             {
   264             return;
   269             return;
   265             }
   270             }
   266         iEngine = &aEngine;
       
   267         forceRefresh = ETrue;
   271         forceRefresh = ETrue;
   268         }
   272         }
   269     
   273     
   270     // don't update render buffer if visual is not changed or screenshot is used
   274     // don't update render buffer if visual is not changed or screenshot is used
   271     if(forceRefresh || (iVisualContentChanged && iSrcType!=EVisualSrcInput1))
   275     if(forceRefresh || (iVisualContentChanged && iSrcType!=EVisualSrcInput1))
   536 
   540 
   537 void CHuiFxVisualLayer::SetVisualContentState(TBool aChanged, TBool aOpaque)
   541 void CHuiFxVisualLayer::SetVisualContentState(TBool aChanged, TBool aOpaque)
   538     {
   542     {
   539     if( iVisualContentOpaque != aOpaque || aChanged)
   543     if( iVisualContentOpaque != aOpaque || aChanged)
   540         {
   544         {
   541         iVisualContentChanged = aChanged;
   545         iVisualContentChanged = ETrue;
   542         }
   546         }
       
   547     else
       
   548         {
       
   549         iVisualContentChanged = EFalse;
       
   550         }
       
   551     
   543     iVisualContentOpaque = aOpaque;
   552     iVisualContentOpaque = aOpaque;
   544     }
   553     }
       
   554