uiacceltk/hitchcock/coretoolkit/inc/HuiFxEngine.h
branchRCL_3
changeset 7 88b23e2e82e1
parent 3 d8a3531bc6b8
child 8 46927d61fef3
equal deleted inserted replaced
6:10534483575f 7:88b23e2e82e1
   124 	 *
   124 	 *
   125 	 * Begins new group. start collecting effects, that should be set to motion at the same 
   125 	 * Begins new group. start collecting effects, that should be set to motion at the same 
   126 	 * time.
   126 	 * time.
   127 	 */
   127 	 */
   128 	IMPORT_C void BeginGroupEffect(TInt aGroup);
   128 	IMPORT_C void BeginGroupEffect(TInt aGroup);
   129 
       
   130     
   129     
   131     IMPORT_C TInt ActiveGroupEffect();
   130     IMPORT_C TInt ActiveGroupEffect();
   132     
   131     
       
   132     IMPORT_C TBool AddEffectToGroup(TInt aGroup);
   133     /*
   133     /*
   134 	 * StartGroupEffect
   134 	 * StartGroupEffect
   135 	 *
   135 	 *
   136 	 * Starts syncronously group of effects that have the same aGroup id. 
   136 	 * Starts syncronously group of effects that have the same aGroup id. 
   137 	 */
   137 	 */
   145     
   145     
   146     void NotifyEffectEndObservers();
   146     void NotifyEffectEndObservers();
   147     
   147     
   148     IMPORT_C void SetMemoryLevel(THuiMemoryLevel aLevel);
   148     IMPORT_C void SetMemoryLevel(THuiMemoryLevel aLevel);
   149     
   149     
       
   150 	/**
       
   151 	 * Group effects wait until each effect has been drawn once. 
       
   152 	 *
       
   153 	 * Group effects are set into motion by NotifyEffectReady, when all effects in
       
   154 	 * the group have been drawn at least once.
       
   155 	 */
       
   156     void NotifyEffectReady(TInt aGroupId);
       
   157     
   150 protected:
   158 protected:
   151     IMPORT_C void AddEffectL(CHuiFxEffect* aEffect);
   159     IMPORT_C void AddEffectL(CHuiFxEffect* aEffect);
   152     IMPORT_C void RemoveEffect(CHuiFxEffect* aEffect);
   160     IMPORT_C void RemoveEffect(CHuiFxEffect* aEffect);
   153     
   161     
   154     TRequestStatus   iParserStatus;
   162     TRequestStatus   iParserStatus;
   155     TInt             iBuffersInUse;
   163     TInt             iBuffersInUse;
   156     
   164     
   157 private:
   165 private:
   158     
   166     
   159     TBool FxmlUsesInput1(CHuiFxEffect& aEffect);
   167     TBool FxmlUsesInput1(CHuiFxEffect& aEffect);
       
   168     TInt FindEffectGroup(TInt aGroup);
   160     
   169     
   161 private:
   170 private:
   162     // Render buffer management --- native implementations
   171     // Render buffer management --- native implementations
   163     virtual CHuiFxRenderbuffer* AcquireNativeRenderbuffer(const TSize& aDesiredSize) = 0;
   172     virtual CHuiFxRenderbuffer* AcquireNativeRenderbuffer(const TSize& aDesiredSize) = 0;
   164     virtual void ReleaseNativeRenderbuffer(CHuiFxRenderbuffer* aBuffer) = 0;
   173     virtual void ReleaseNativeRenderbuffer(CHuiFxRenderbuffer* aBuffer) = 0;
   187     RPointerArray<CHuiFxEffect>  iActiveEffects;
   196     RPointerArray<CHuiFxEffect>  iActiveEffects;
   188     THuiFxEngineType             iType;
   197     THuiFxEngineType             iType;
   189     TRect                        iExtRect;
   198     TRect                        iExtRect;
   190     CHuiFxEffectCache *iCache;
   199     CHuiFxEffectCache *iCache;
   191     TInt iLowGraphicsMemoryMode;
   200     TInt iLowGraphicsMemoryMode;
   192     RArray<TInt> iActiveEffectGroups;
   201     
       
   202     NONSHARABLE_STRUCT(TEffectGroupStruct)
       
   203         {
       
   204     public:
       
   205             
       
   206         TEffectGroupStruct(TInt aGroup) : iGroup(aGroup), iWaiting(0), iEndCalled(EFalse){};
       
   207 
       
   208         TInt iGroup;
       
   209         TInt iWaiting;
       
   210         TBool iEndCalled;
       
   211         };
       
   212     
       
   213 	/**
       
   214 	 * Only one simultanious effect group is supported
       
   215 	 */
       
   216     RArray<TEffectGroupStruct> iActiveEffectGroups;
   193     };
   217     };
   194 
   218 
   195 #endif /*HUIFXENGINE_H_*/
   219 #endif /*HUIFXENGINE_H_*/