132 TBool& aFullscreenCovered, |
132 TBool& aFullscreenCovered, |
133 TRect& aFullscreen, |
133 TRect& aFullscreen, |
134 CAlfScreen* aScreen, |
134 CAlfScreen* aScreen, |
135 TBool& aSubtreeVisible, |
135 TBool& aSubtreeVisible, |
136 TBool& aHasVisualsWithLayers, |
136 TBool& aHasVisualsWithLayers, |
137 TBool aChildCanBeOpaque ); |
137 TBool aChildCanBeOpaque, TBool aOnlyForEmbeddedAlfApp = EFalse ); |
138 |
138 |
139 /** |
139 /** |
140 * Updates layer visibilities. |
140 * Updates layer visibilities. |
141 */ |
141 */ |
142 void HandleLayerVisibility( |
142 void HandleLayerVisibility( |
209 */ |
209 */ |
210 void HandleGfxStopEvent( TBool aClientRequest ); |
210 void HandleGfxStopEvent( TBool aClientRequest ); |
211 |
211 |
212 void EnableSwRenderingL(TBool aEnable = ETrue); |
212 void EnableSwRenderingL(TBool aEnable = ETrue); |
213 TBool PrepareSwRenderingTarget( CAlfScreen* aScreen ); |
213 TBool PrepareSwRenderingTarget( CAlfScreen* aScreen ); |
|
214 void InitializeSwRenderingTarget(CFbsBitmap* aBitmap); |
214 |
215 |
215 /** |
216 /** |
216 * Sets memory level. |
217 * Sets memory level. |
217 * @param aMemoryLevel memory level. |
218 * @param aMemoryLevel memory level. |
218 */ |
219 */ |
259 |
260 |
260 /** |
261 /** |
261 * Sets HuiControlGroup as Alf application window group |
262 * Sets HuiControlGroup as Alf application window group |
262 */ |
263 */ |
263 void SetWindowGroupAsAlfApp(TInt aId); |
264 void SetWindowGroupAsAlfApp(TInt aId); |
|
265 |
|
266 /** |
|
267 * removes Alf application window group tag |
|
268 */ |
|
269 void RemoveWindowGroupAsAlfApp(TInt aId); |
264 |
270 |
265 // From MHuiSynchronizationObserver |
271 // From MHuiSynchronizationObserver |
266 void Synchronized(TInt aId); |
272 void Synchronized(TInt aId); |
267 |
273 |
268 /* |
274 /* |
269 * HandleGfxEndFullScreenTimeout |
275 * GfxTriggerEndFullScreen |
270 * |
276 * |
271 * GfxTransEffect API gives EndFullScreen events too late. Thus there is a two stage process for triggering |
277 * GfxTransEffect API gives EndFullScreen events too late. Thus there is a two stage process for triggering |
272 * the EndFullScreen effect after BeginFullScreen event arrived. |
278 * the EndFullScreen effect after BeginFullScreen event arrived. |
273 * |
279 * |
274 * For application start effects we give N milliseconds timeout for application to finish drawing after |
280 */ |
275 * the first drawing has arrived. If after N milliseconds application has not drawn 75% of the screen, it |
281 void GfxTriggerEndFullScreen(CFullScreenEffectState* aFullScreenEffectData); |
276 * gets another N milliseconds. Most cases, the first N milliseconds is enough. |
282 |
277 */ |
283 /* |
278 void HandleGfxEndFullScreenTimeout(CFullScreenEffectState* aFullScreenEffectData); |
284 * GfxTriggerEffectWhenFullScreenDrawn |
|
285 * |
|
286 * Goes through the given CHuiControl (group which is supposed to show the effect). |
|
287 * Triggers the effect, if drawing buffers in group cover the whole screen in the |
|
288 * current orientation. |
|
289 * |
|
290 * @param aToGroup Group to be analyzed |
|
291 */ |
|
292 TBool GfxTriggerEffectWhenFullScreenDrawn(CHuiControlGroup* aToGroup = NULL); |
279 |
293 |
280 // Experimental |
294 // Experimental |
281 TBool IsFullScreenDrawn( TInt aOrientation); |
295 TBool IsFullScreenDrawn( TInt aOrientation); |
282 |
296 |
283 void LayoutSwitchStart(); |
297 void LayoutSwitchStart(); |
284 void LayoutSwitchComplete(); |
298 void LayoutSwitchComplete(); |
|
299 |
|
300 RAlfBridgerClient* BridgerClient(); |
285 |
301 |
286 private: |
302 private: |
287 |
303 |
288 |
304 |
289 CAlfBridge( CAlfStreamerBridge** aHost ); |
305 CAlfBridge( CAlfStreamerBridge** aHost ); |
331 */ |
347 */ |
332 void RemoveEffectFromApp(TInt aSecureId, TInt aWgId = -1 ); |
348 void RemoveEffectFromApp(TInt aSecureId, TInt aWgId = -1 ); |
333 |
349 |
334 // component effect handling |
350 // component effect handling |
335 void HandleGfxControlEffectsL( TAlfBridgerData data ); |
351 void HandleGfxControlEffectsL( TAlfBridgerData data ); |
336 |
352 |
|
353 /** |
|
354 * StoreLayoutIfRequiredByEffectL |
|
355 * |
|
356 * @param aNeededStoredLayout Returns ETrue, if storing is required. Otherwise EFalse. |
|
357 * |
|
358 * @return ETrue If storing was required and could be done. |
|
359 * OR storing was not required. |
|
360 */ |
|
361 TBool StoreLayoutIfRequiredByEffectL(CHuiLayout* aLayout, CFullScreenEffectState& aEvent, TBool& aNeededStoredLayout); |
|
362 |
337 /** |
363 /** |
338 * Handles begin and end fullscreen events |
364 * Handles begin and end fullscreen events |
339 */ |
365 */ |
340 TBool HandleGfxEventL(CFullScreenEffectState& aEvent, CHuiLayout* aToLayout, CHuiLayout *aFromLayout); |
366 TBool HandleGfxEventL(CFullScreenEffectState& aEvent, CHuiLayout* aToLayout, CHuiLayout *aFromLayout); |
341 |
367 |
760 TBool IsFadedByParent( CHuiCanvasVisual& aVisual ); |
786 TBool IsFadedByParent( CHuiCanvasVisual& aVisual ); |
761 TBool IsNearestParentEffectFade( CHuiCanvasVisual& aVisual ); |
787 TBool IsNearestParentEffectFade( CHuiCanvasVisual& aVisual ); |
762 TBool HasActivePaintedAreas( CHuiCanvasVisual& aVisual, TBool aIncludeChildren ); |
788 TBool HasActivePaintedAreas( CHuiCanvasVisual& aVisual, TBool aIncludeChildren ); |
763 TBool HasActiveFadedChildren( CHuiCanvasVisual& aVisual ); |
789 TBool HasActiveFadedChildren( CHuiCanvasVisual& aVisual ); |
764 |
790 |
|
791 /* |
|
792 * This is for updating all the layout that are created to correspond the window server window groups. |
|
793 * This should be called immediately when layout switch happens. Layout extents must be update then otherwise |
|
794 * visibility calculations will clip to old sizes. |
|
795 */ |
|
796 void UpdateRootVisualsToFullscreen(); |
|
797 |
765 private: |
798 private: |
766 |
799 |
767 RPointerArray<CAlfScreen> iAlfScreens; |
800 RPointerArray<CAlfScreen> iAlfScreens; |
768 void SetCursorTimerL(TUint aTime = 0, CHuiVisual* aCursor = 0); |
801 void SetCursorTimerL(TUint aTime = 0, CHuiVisual* aCursor = 0); |
769 TBool IsAlfOriginatedWindow(CHuiCanvasVisual& aVisual); |
802 TBool IsAlfOriginatedWindow(CHuiCanvasVisual& aVisual); |
952 mutable RRegionBuf<KAlfBridgeRegionGranularity> iTempVisualRegion; |
985 mutable RRegionBuf<KAlfBridgeRegionGranularity> iTempVisualRegion; |
953 mutable RRegionBuf<KAlfBridgeRegionGranularity> iTempIntersectingRegion; |
986 mutable RRegionBuf<KAlfBridgeRegionGranularity> iTempIntersectingRegion; |
954 mutable RRegionBuf<KAlfBridgeRegionGranularity> iTempRegion; |
987 mutable RRegionBuf<KAlfBridgeRegionGranularity> iTempRegion; |
955 TBool iBgSurfaceFound; |
988 TBool iBgSurfaceFound; |
956 TBool iInLowMemMode; |
989 TBool iInLowMemMode; |
|
990 TBool iLayoutSwitchInProgress; |
957 |
991 |
958 TBool iHomeScreenWallpaperWindowFound; |
992 TBool iHomeScreenWallpaperWindowFound; |
959 TBool iBgAnimHidden; |
993 TBool iBgAnimHidden; |
960 |
994 |
961 CAlfLayoutSwitchEffectCoordinator* iLayoutSwitchEffectCoordinator; |
995 CAlfLayoutSwitchEffectCoordinator* iLayoutSwitchEffectCoordinator; |
966 TBool iLowMemoryMode; |
1000 TBool iLowMemoryMode; |
967 THuiMemoryLevel iCurrentMemoryLevel; |
1001 THuiMemoryLevel iCurrentMemoryLevel; |
968 |
1002 |
969 TInt iIdForEAlfDSSynchronizeOp; |
1003 TInt iIdForEAlfDSSynchronizeOp; |
970 TInt iIdForLayoutSwitchFrameSync; |
1004 TInt iIdForLayoutSwitchFrameSync; |
|
1005 |
|
1006 RArray<TInt> iAlfNativeClientsWgIds; |
971 |
1007 |
972 #ifdef ALF_DEBUG_PRINT_WINDOWGROUP_ORDER |
1008 #ifdef ALF_DEBUG_PRINT_WINDOWGROUP_ORDER |
973 TInt activevisualcount; |
1009 TInt activevisualcount; |
974 TInt passivevisualcount; |
1010 TInt passivevisualcount; |
975 #endif |
1011 #endif |