equal
deleted
inserted
replaced
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 |