+ dummyImpl.RegisterVisual(visualIndex, visual);
+
+ Animation anim = dummyImpl.CreateTransition(transition);
+ DALI_TEST_CHECK(anim);
+
+ Renderer renderer = actor.GetRendererAt(0);
+ Property::Index mixColorIndex = VisualRenderer::Property::VISUAL_MIX_COLOR;
+ TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
+ glAbstraction.EnableEnableDisableCallTrace(true);
+ TraceCallStack& glEnableStack = glAbstraction.GetEnableDisableTrace();
+ std::ostringstream blendStr;
+ blendStr << std::hex << GL_BLEND;
+
+ application.SendNotification();
+ application.Render(0);
+
+ DALI_TEST_EQUALS(renderer.GetProperty<Vector3>(mixColorIndex), Vector3(Color::MAGENTA), TEST_LOCATION);
+ DALI_TEST_EQUALS(renderer.GetCurrentProperty<Vector3>(mixColorIndex), Vector3(Color::MAGENTA), TEST_LOCATION);
+ DALI_TEST_EQUALS(renderer.GetProperty<float>(DevelRenderer::Property::OPACITY), 1.0f, 0.001f, TEST_LOCATION);
+ DALI_TEST_EQUALS(renderer.GetCurrentProperty<float>(DevelRenderer::Property::OPACITY), 1.0f, 0.001f, TEST_LOCATION);
+
+ // Default state is disabled. So test if "Enabled" is not called.
+ DALI_TEST_CHECK(!glEnableStack.FindMethodAndParams("Enable", blendStr.str()));
+
+ anim.Play();
+
+ glEnableStack.Reset();
+
+ application.SendNotification();
+ application.Render(500); // Start animation
+ application.Render(500); // Halfway thru anim
+ application.SendNotification();
+
+ DALI_TEST_EQUALS(renderer.GetCurrentProperty<Vector3>(mixColorIndex), Vector3(Color::MAGENTA), TEST_LOCATION);
+ DALI_TEST_EQUALS(renderer.GetCurrentProperty<float>(DevelRenderer::Property::OPACITY), 0.5f, 0.001f, TEST_LOCATION);
+
+ DALI_TEST_CHECK(glEnableStack.FindMethodAndParams("Enable", blendStr.str()));
+
+ glEnableStack.Reset();
+
+ application.Render(500); // End of anim
+ application.SendNotification();
+
+ DALI_TEST_EQUALS(renderer.GetCurrentProperty<Vector3>(mixColorIndex), Vector3(Color::MAGENTA), TEST_LOCATION);
+ DALI_TEST_EQUALS(renderer.GetCurrentProperty<float>(DevelRenderer::Property::OPACITY), 0.0f, 0.001f, TEST_LOCATION);
+
+ // GL_BLEND should not be changed: Keep enabled
+ DALI_TEST_CHECK(!glEnableStack.FindMethodAndParams("Disable", blendStr.str()));