uiacceltk/hitchcock/coretoolkit/src/HuiFxEngine.cpp
changeset 13 8f67d927ea57
parent 0 15bf7259bb7c
child 19 f5bac0badc7e
--- a/uiacceltk/hitchcock/coretoolkit/src/HuiFxEngine.cpp	Tue Feb 02 07:56:43 2010 +0200
+++ b/uiacceltk/hitchcock/coretoolkit/src/HuiFxEngine.cpp	Fri Mar 19 09:43:21 2010 +0200
@@ -77,6 +77,26 @@
     return EFalse;
 #endif
     }
+
+TBool CHuiFxEngine::FxmlUsesInput1(CHuiFxEffect& aEffect)
+    {
+    RArray<THuiFxVisualSrcType> array;
+    aEffect.FxmlVisualInputs(array);
+ 
+    TInt c = array.Count();
+    for(TInt i = 0; i<c; i++)
+        {
+        THuiFxVisualSrcType val = array[i];
+        if (val == EVisualSrcInput1)
+            {
+            array.Close();
+            return ETrue;
+            }
+        }
+    array.Close();
+    return EFalse;    
+    }
+
     
 EXPORT_C void CHuiFxEngine::RegisterEffectL(const TDesC &aFileName)
     {
@@ -150,7 +170,6 @@
 #ifdef HUIFX_EFFECTCACHE_ENABLED
     CHuiFxEffectCacheEffectNode *node = new (ELeave) CHuiFxEffectCacheEffectNode(aFileName, aEffect, aVisual, &iExtRect, this);
     node->SetEffectEndObserver( aEffectEndObserver, aHandle );
-    aFlags |= KHuiFxDelayRunUntilFirstFrameHasBeenDrawn;
     node->SetEffectFlags( aFlags );
     CleanupStack::PushL(node);
     iCache->FindOrCreateL(node); // takes ownership
@@ -206,7 +225,6 @@
 		aFlags |= KHuiFxWaitGroupSyncronization;
 		node->SetEffectGroup(aGroup);
     	}
-    aFlags |= KHuiFxDelayRunUntilFirstFrameHasBeenDrawn;
     node->SetEffectFlags( aFlags );
     
     CleanupStack::PushL(node);
@@ -347,6 +365,12 @@
             CHuiDisplay* display = &CHuiStatic::Env().PrimaryDisplay(); 
             return display->VisibleArea().Size().iHeight; // was DefaultRenderbuffer()->Size().iHeight
             }
+        case EReferencePointDisplayHeightMinusVisualTop:
+            {
+            CHuiDisplay* display = &CHuiStatic::Env().PrimaryDisplay(); 
+            TReal32 height = display->VisibleArea().Size().iHeight; // was DefaultRenderbuffer()->Size().iHeight
+            return height;
+            }
         default:
             break;
         }
@@ -566,6 +590,11 @@
 
 TBool CHuiFxEngine::HasActiveEffects() const
     {
+	// Don't report active effects if in SW-rendering mode
+    if(iLowGraphicsMemoryMode) // != Normal
+        {
+        return EFalse;
+        }
     return iActiveEffects.Count() > 0;
     }