uiacceltk/hitchcock/ServerCore/Inc/alfbridge.h
changeset 19 f5bac0badc7e
parent 14 83d2d132aa58
child 21 6ce30188c5bf
equal deleted inserted replaced
14:83d2d132aa58 19:f5bac0badc7e
   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