Add support for Animation::EndAction::BakeFinal to builder
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / builder / builder-animations.cpp
index 82a0669..454a686 100644 (file)
@@ -164,10 +164,6 @@ Animation CreateAnimation( const TreeNode& child, const Replacement& constant, D
   {
     animation.SetDuration( *duration );
   }
-  else
-  {
-    animation.SetDuration( durationSum );
-  }
 
   if( OptionalBoolean looping = constant.IsBoolean(  IsChild(child, "loop" ) ) )
   {
@@ -184,6 +180,10 @@ Animation CreateAnimation( const TreeNode& child, const Replacement& constant, D
     {
       animation.SetEndAction( Animation::Discard );
     }
+    else if("BAKE_FINAL" == *endAction)
+    {
+      animation.SetEndAction( Animation::BakeFinal );
+    }
   }
 
   if( OptionalString endAction = constant.IsString(  IsChild(child, "destroy-action" ) ) )
@@ -196,6 +196,10 @@ Animation CreateAnimation( const TreeNode& child, const Replacement& constant, D
     {
       animation.SetDestroyAction( Animation::Discard );
     }
+    else if("BAKE_FINAL" == *endAction)
+    {
+      animation.SetDestroyAction( Animation::BakeFinal );
+    }
   }
 
   OptionalChild propertiesNode = IsChild(child, "properties" );
@@ -354,6 +358,11 @@ Animation CreateAnimation( const TreeNode& child, const Replacement& constant, D
     }
   }
 
+  if( !duration )
+  {
+    animation.SetDuration( durationSum );
+  }
+
   return animation;
 }