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