Make blend for the opaque renderer when advanced blend equation is applied.
[platform/core/uifw/dali-core.git] / automated-tests / src / dali / utc-Dali-Renderer.cpp
index 300767a..564ca27 100644 (file)
 
 // EXTERNAL INCLUDES
 #include <dali/devel-api/actors/actor-devel.h>
+#include <dali/devel-api/common/stage.h>
 #include <dali/devel-api/rendering/renderer-devel.h>
-
-#include <dali/public-api/dali-core.h>
-#include <dali/devel-api/images/texture-set-image.h>
 #include <dali/integration-api/render-task-list-integ.h>
+#include <dali/public-api/dali-core.h>
+#include <dali/devel-api/common/capabilities.h>
 #include <cstdio>
 #include <string>
 
 // INTERNAL INCLUDES
 #include <dali-test-suite-utils.h>
-#include <test-trace-call-stack.h>
 #include <mesh-builder.h>
+#include <test-trace-call-stack.h>
 
 using namespace Dali;
 
 namespace // unnamed namespace
 {
+const BlendFactor::Type DEFAULT_BLEND_FACTOR_SRC_RGB(BlendFactor::SRC_ALPHA);
+const BlendFactor::Type DEFAULT_BLEND_FACTOR_DEST_RGB(BlendFactor::ONE_MINUS_SRC_ALPHA);
+const BlendFactor::Type DEFAULT_BLEND_FACTOR_SRC_ALPHA(BlendFactor::ONE);
+const BlendFactor::Type DEFAULT_BLEND_FACTOR_DEST_ALPHA(BlendFactor::ONE_MINUS_SRC_ALPHA);
 
-const BlendFactor::Type   DEFAULT_BLEND_FACTOR_SRC_RGB(    BlendFactor::SRC_ALPHA );
-const BlendFactor::Type   DEFAULT_BLEND_FACTOR_DEST_RGB(   BlendFactor::ONE_MINUS_SRC_ALPHA );
-const BlendFactor::Type   DEFAULT_BLEND_FACTOR_SRC_ALPHA(  BlendFactor::ONE );
-const BlendFactor::Type   DEFAULT_BLEND_FACTOR_DEST_ALPHA( BlendFactor::ONE_MINUS_SRC_ALPHA );
-
-const BlendEquation::Type DEFAULT_BLEND_EQUATION_RGB(      BlendEquation::ADD );
-const BlendEquation::Type DEFAULT_BLEND_EQUATION_ALPHA(    BlendEquation::ADD );
+const BlendEquation::Type DEFAULT_BLEND_EQUATION_RGB(BlendEquation::ADD);
+const BlendEquation::Type DEFAULT_BLEND_EQUATION_ALPHA(BlendEquation::ADD);
 
 /**
  * @brief Get GL stencil test enumeration value as a string.
@@ -65,7 +64,7 @@ std::string GetDepthTestString(void)
   return stream.str();
 }
 
-void ResetDebugAndFlush( TestApplication& application, TraceCallStack& glEnableDisableStack, TraceCallStack& glStencilFunctionStack )
+void ResetDebugAndFlush(TestApplication& application, TraceCallStack& glEnableDisableStack, TraceCallStack& glStencilFunctionStack)
 {
   glEnableDisableStack.Reset();
   glStencilFunctionStack.Reset();
@@ -73,7 +72,7 @@ void ResetDebugAndFlush( TestApplication& application, TraceCallStack& glEnableD
   application.Render();
 }
 
-void TestConstraintNoBlue( Vector4& current, const PropertyInputContainer& inputs )
+void TestConstraintNoBlue(Vector4& current, const PropertyInputContainer& inputs)
 {
   current.b = 0.0f;
 }
@@ -95,18 +94,18 @@ int UtcDaliRendererNew01(void)
   TestApplication application;
 
   Geometry geometry = CreateQuadGeometry();
-  Shader shader = CreateShader();
+  Shader   shader   = CreateShader();
   Renderer renderer = Renderer::New(geometry, shader);
 
-  DALI_TEST_EQUALS( (bool)renderer, true, TEST_LOCATION );
+  DALI_TEST_EQUALS((bool)renderer, true, TEST_LOCATION);
   END_TEST;
 }
 
 int UtcDaliRendererNew02(void)
 {
   TestApplication application;
-  Renderer renderer;
-  DALI_TEST_EQUALS( (bool)renderer, false, TEST_LOCATION );
+  Renderer        renderer;
+  DALI_TEST_EQUALS((bool)renderer, false, TEST_LOCATION);
   END_TEST;
 }
 
@@ -115,11 +114,11 @@ int UtcDaliRendererCopyConstructor(void)
   TestApplication application;
 
   Geometry geometry = CreateQuadGeometry();
-  Shader shader = CreateShader();
+  Shader   shader   = CreateShader();
   Renderer renderer = Renderer::New(geometry, shader);
 
-  Renderer rendererCopy( renderer );
-  DALI_TEST_EQUALS( (bool)rendererCopy, true, TEST_LOCATION );
+  Renderer rendererCopy(renderer);
+  DALI_TEST_EQUALS((bool)rendererCopy, true, TEST_LOCATION);
 
   END_TEST;
 }
@@ -129,14 +128,65 @@ int UtcDaliRendererAssignmentOperator(void)
   TestApplication application;
 
   Geometry geometry = CreateQuadGeometry();
-  Shader shader = CreateShader();
+  Shader   shader   = CreateShader();
   Renderer renderer = Renderer::New(geometry, shader);
 
   Renderer renderer2;
-  DALI_TEST_EQUALS( (bool)renderer2, false, TEST_LOCATION );
+  DALI_TEST_EQUALS((bool)renderer2, false, TEST_LOCATION);
 
   renderer2 = renderer;
-  DALI_TEST_EQUALS( (bool)renderer2, true, TEST_LOCATION );
+  DALI_TEST_EQUALS((bool)renderer2, true, TEST_LOCATION);
+  END_TEST;
+}
+
+int UtcDaliRendererMoveConstructor(void)
+{
+  TestApplication application;
+
+  Geometry geometry = CreateQuadGeometry();
+  Shader   shader   = Shader::New("vertexSrc", "fragmentSrc");
+  Renderer renderer = Renderer::New(geometry, shader);
+  DALI_TEST_CHECK(renderer);
+  DALI_TEST_EQUALS(1, renderer.GetBaseObject().ReferenceCount(), TEST_LOCATION);
+  DALI_TEST_EQUALS(renderer.GetProperty<Vector4>(Renderer::Property::BLEND_COLOR), Color::TRANSPARENT, TEST_LOCATION);
+
+  renderer.SetProperty(Renderer::Property::BLEND_COLOR, Color::MAGENTA);
+  application.SendNotification();
+  application.Render();
+  DALI_TEST_EQUALS(renderer.GetProperty<Vector4>(Renderer::Property::BLEND_COLOR), Color::MAGENTA, TEST_LOCATION);
+
+  Renderer move = std::move(renderer);
+  DALI_TEST_CHECK(move);
+  DALI_TEST_EQUALS(1, move.GetBaseObject().ReferenceCount(), TEST_LOCATION);
+  DALI_TEST_EQUALS(move.GetProperty<Vector4>(Renderer::Property::BLEND_COLOR), Color::MAGENTA, TEST_LOCATION);
+  DALI_TEST_CHECK(!renderer);
+
+  END_TEST;
+}
+
+int UtcDaliRendererMoveAssignment(void)
+{
+  TestApplication application;
+
+  Geometry geometry = CreateQuadGeometry();
+  Shader   shader   = Shader::New("vertexSrc", "fragmentSrc");
+  Renderer renderer = Renderer::New(geometry, shader);
+  DALI_TEST_CHECK(renderer);
+  DALI_TEST_EQUALS(1, renderer.GetBaseObject().ReferenceCount(), TEST_LOCATION);
+  DALI_TEST_EQUALS(renderer.GetProperty<Vector4>(Renderer::Property::BLEND_COLOR), Color::TRANSPARENT, TEST_LOCATION);
+
+  renderer.SetProperty(Renderer::Property::BLEND_COLOR, Color::MAGENTA);
+  application.SendNotification();
+  application.Render();
+  DALI_TEST_EQUALS(renderer.GetProperty<Vector4>(Renderer::Property::BLEND_COLOR), Color::MAGENTA, TEST_LOCATION);
+
+  Renderer move;
+  move = std::move(renderer);
+  DALI_TEST_CHECK(move);
+  DALI_TEST_EQUALS(1, move.GetBaseObject().ReferenceCount(), TEST_LOCATION);
+  DALI_TEST_EQUALS(move.GetProperty<Vector4>(Renderer::Property::BLEND_COLOR), Color::MAGENTA, TEST_LOCATION);
+  DALI_TEST_CHECK(!renderer);
+
   END_TEST;
 }
 
@@ -145,12 +195,12 @@ int UtcDaliRendererDownCast01(void)
   TestApplication application;
 
   Geometry geometry = CreateQuadGeometry();
-  Shader shader = CreateShader();
+  Shader   shader   = CreateShader();
   Renderer renderer = Renderer::New(geometry, shader);
 
   BaseHandle handle(renderer);
-  Renderer renderer2 = Renderer::DownCast(handle);
-  DALI_TEST_EQUALS( (bool)renderer2, true, TEST_LOCATION );
+  Renderer   renderer2 = Renderer::DownCast(handle);
+  DALI_TEST_EQUALS((bool)renderer2, true, TEST_LOCATION);
   END_TEST;
 }
 
@@ -158,28 +208,28 @@ int UtcDaliRendererDownCast02(void)
 {
   TestApplication application;
 
-  Handle handle = Handle::New(); // Create a custom object
+  Handle   handle   = Handle::New(); // Create a custom object
   Renderer renderer = Renderer::DownCast(handle);
-  DALI_TEST_EQUALS( (bool)renderer, false, TEST_LOCATION );
+  DALI_TEST_EQUALS((bool)renderer, false, TEST_LOCATION);
   END_TEST;
 }
 
 // using a template to auto deduce the parameter types
-template< typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8>
-void TEST_RENDERER_PROPERTY( P1 renderer, P2 stringName, P3 type, P4 isWriteable, P5 isAnimateable, P6 isConstraintInput, P7 enumName, P8 LOCATION )
+template<typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7, typename P8>
+void TEST_RENDERER_PROPERTY(P1 renderer, P2 stringName, P3 type, P4 isWriteable, P5 isAnimateable, P6 isConstraintInput, P7 enumName, P8 LOCATION)
 {
-  DALI_TEST_EQUALS( renderer.GetPropertyName( enumName ), stringName, LOCATION );
-  DALI_TEST_EQUALS( renderer.GetPropertyIndex( stringName ), static_cast<Property::Index>(enumName), LOCATION );
-  DALI_TEST_EQUALS( renderer.GetPropertyType( enumName ), type, LOCATION );
-  DALI_TEST_EQUALS( renderer.IsPropertyWritable( enumName ), isWriteable, LOCATION );
-  DALI_TEST_EQUALS( renderer.IsPropertyAnimatable( enumName ), isAnimateable, LOCATION );
-  DALI_TEST_EQUALS( renderer.IsPropertyAConstraintInput( enumName ), isConstraintInput, LOCATION );
+  DALI_TEST_EQUALS(renderer.GetPropertyName(enumName), stringName, LOCATION);
+  DALI_TEST_EQUALS(renderer.GetPropertyIndex(stringName), static_cast<Property::Index>(enumName), LOCATION);
+  DALI_TEST_EQUALS(renderer.GetPropertyType(enumName), type, LOCATION);
+  DALI_TEST_EQUALS(renderer.IsPropertyWritable(enumName), isWriteable, LOCATION);
+  DALI_TEST_EQUALS(renderer.IsPropertyAnimatable(enumName), isAnimateable, LOCATION);
+  DALI_TEST_EQUALS(renderer.IsPropertyAConstraintInput(enumName), isConstraintInput, LOCATION);
 }
 
 int UtcDaliRendererDefaultProperties(void)
 {
   TestApplication application;
-/* from renderer-impl.cpp
+  /* from renderer-impl.cpp
   DALI_PROPERTY( "depthIndex",                      INTEGER,   true, false,  false, Dali::Renderer::Property::DEPTH_INDEX )
   DALI_PROPERTY( "faceCullingMode",                 INTEGER,   true, false,  false, Dali::Renderer::Property::FACE_CULLING_MODE )
   DALI_PROPERTY( "blendMode",                       INTEGER,   true, false,  false, Dali::Renderer::Property::BLEND_MODE )
@@ -206,39 +256,41 @@ int UtcDaliRendererDefaultProperties(void)
   DALI_PROPERTY( "stencilOperationOnZPass",         INTEGER,   true, false,  false, Dali::Renderer::Property::STENCIL_OPERATION_ON_Z_PASS )
   DALI_PROPERTY( "opacity",                         FLOAT,     true, true,   true,  Dali::DevelRenderer::Property::OPACITY )
   DALI_PROPERTY( "renderingBehavior",               INTEGER,   true, false,  false, Dali::DevelRenderer::Property::RENDERING_BEHAVIOR )
+  DALI_PROPERTY( "blendEquation",                   INTEGER,   true, false,  false, Dali::DevelRenderer::Property::BLEND_EQUATION )
 */
 
   Geometry geometry = CreateQuadGeometry();
-  Shader shader = CreateShader();
+  Shader   shader   = CreateShader();
   Renderer renderer = Renderer::New(geometry, shader);
-  DALI_TEST_EQUALS( renderer.GetPropertyCount(), 26, TEST_LOCATION );
-
-  TEST_RENDERER_PROPERTY( renderer, "depthIndex",              Property::INTEGER, true, false, false, Renderer::Property::DEPTH_INDEX, TEST_LOCATION );
-  TEST_RENDERER_PROPERTY( renderer, "faceCullingMode",         Property::INTEGER, true, false, false, Renderer::Property::FACE_CULLING_MODE, TEST_LOCATION  );
-  TEST_RENDERER_PROPERTY( renderer, "blendMode",               Property::INTEGER, true, false, false, Renderer::Property::BLEND_MODE, TEST_LOCATION  );
-  TEST_RENDERER_PROPERTY( renderer, "blendEquationRgb",        Property::INTEGER, true, false, false, Renderer::Property::BLEND_EQUATION_RGB, TEST_LOCATION  );
-  TEST_RENDERER_PROPERTY( renderer, "blendEquationAlpha",      Property::INTEGER, true, false, false, Renderer::Property::BLEND_EQUATION_ALPHA, TEST_LOCATION  );
-  TEST_RENDERER_PROPERTY( renderer, "blendFactorSrcRgb",       Property::INTEGER, true, false, false, Renderer::Property::BLEND_FACTOR_SRC_RGB, TEST_LOCATION  );
-  TEST_RENDERER_PROPERTY( renderer, "blendFactorDestRgb",      Property::INTEGER, true, false, false, Renderer::Property::BLEND_FACTOR_DEST_RGB, TEST_LOCATION  );
-  TEST_RENDERER_PROPERTY( renderer, "blendFactorSrcAlpha",     Property::INTEGER, true, false, false, Renderer::Property::BLEND_FACTOR_SRC_ALPHA, TEST_LOCATION  );
-  TEST_RENDERER_PROPERTY( renderer, "blendFactorDestAlpha",    Property::INTEGER, true, false, false, Renderer::Property::BLEND_FACTOR_DEST_ALPHA, TEST_LOCATION  );
-  TEST_RENDERER_PROPERTY( renderer, "blendColor",              Property::VECTOR4, true, false, false, Renderer::Property::BLEND_COLOR, TEST_LOCATION  );
-  TEST_RENDERER_PROPERTY( renderer, "blendPreMultipliedAlpha", Property::BOOLEAN, true, false, false, Renderer::Property::BLEND_PRE_MULTIPLIED_ALPHA, TEST_LOCATION  );
-  TEST_RENDERER_PROPERTY( renderer, "indexRangeFirst",         Property::INTEGER, true, false, false, Renderer::Property::INDEX_RANGE_FIRST, TEST_LOCATION  );
-  TEST_RENDERER_PROPERTY( renderer, "indexRangeCount",         Property::INTEGER, true, false, false, Renderer::Property::INDEX_RANGE_COUNT, TEST_LOCATION  );
-  TEST_RENDERER_PROPERTY( renderer, "depthWriteMode",          Property::INTEGER, true, false, false, Renderer::Property::DEPTH_WRITE_MODE, TEST_LOCATION  );
-  TEST_RENDERER_PROPERTY( renderer, "depthFunction",           Property::INTEGER, true, false, false, Renderer::Property::DEPTH_FUNCTION, TEST_LOCATION  );
-  TEST_RENDERER_PROPERTY( renderer, "depthTestMode",           Property::INTEGER, true, false, false, Renderer::Property::DEPTH_TEST_MODE, TEST_LOCATION  );
-  TEST_RENDERER_PROPERTY( renderer, "renderMode",              Property::INTEGER, true, false, false, Renderer::Property::RENDER_MODE, TEST_LOCATION  );
-  TEST_RENDERER_PROPERTY( renderer, "stencilFunction",         Property::INTEGER, true, false, false, Renderer::Property::STENCIL_FUNCTION, TEST_LOCATION  );
-  TEST_RENDERER_PROPERTY( renderer, "stencilFunctionMask",     Property::INTEGER, true, false, false, Renderer::Property::STENCIL_FUNCTION_MASK, TEST_LOCATION  );
-  TEST_RENDERER_PROPERTY( renderer, "stencilFunctionReference",Property::INTEGER, true, false, false, Renderer::Property::STENCIL_FUNCTION_REFERENCE, TEST_LOCATION  );
-  TEST_RENDERER_PROPERTY( renderer, "stencilMask",             Property::INTEGER, true, false, false, Renderer::Property::STENCIL_MASK, TEST_LOCATION  );
-  TEST_RENDERER_PROPERTY( renderer, "stencilOperationOnFail",  Property::INTEGER, true, false, false, Renderer::Property::STENCIL_OPERATION_ON_FAIL, TEST_LOCATION  );
-  TEST_RENDERER_PROPERTY( renderer, "stencilOperationOnZFail", Property::INTEGER, true, false, false, Renderer::Property::STENCIL_OPERATION_ON_Z_FAIL, TEST_LOCATION  );
-  TEST_RENDERER_PROPERTY( renderer, "stencilOperationOnZPass", Property::INTEGER, true, false, false, Renderer::Property::STENCIL_OPERATION_ON_Z_PASS, TEST_LOCATION  );
-  TEST_RENDERER_PROPERTY( renderer, "opacity",                 Property::FLOAT,   true, true,  true,  DevelRenderer::Property::OPACITY, TEST_LOCATION  );
-  TEST_RENDERER_PROPERTY( renderer, "renderingBehavior",       Property::INTEGER, true, false, false, DevelRenderer::Property::RENDERING_BEHAVIOR, TEST_LOCATION );
+  DALI_TEST_EQUALS(renderer.GetPropertyCount(), 27, TEST_LOCATION);
+
+  TEST_RENDERER_PROPERTY(renderer, "depthIndex", Property::INTEGER, true, false, false, Renderer::Property::DEPTH_INDEX, TEST_LOCATION);
+  TEST_RENDERER_PROPERTY(renderer, "faceCullingMode", Property::INTEGER, true, false, false, Renderer::Property::FACE_CULLING_MODE, TEST_LOCATION);
+  TEST_RENDERER_PROPERTY(renderer, "blendMode", Property::INTEGER, true, false, false, Renderer::Property::BLEND_MODE, TEST_LOCATION);
+  TEST_RENDERER_PROPERTY(renderer, "blendEquationRgb", Property::INTEGER, true, false, false, Renderer::Property::BLEND_EQUATION_RGB, TEST_LOCATION);
+  TEST_RENDERER_PROPERTY(renderer, "blendEquationAlpha", Property::INTEGER, true, false, false, Renderer::Property::BLEND_EQUATION_ALPHA, TEST_LOCATION);
+  TEST_RENDERER_PROPERTY(renderer, "blendFactorSrcRgb", Property::INTEGER, true, false, false, Renderer::Property::BLEND_FACTOR_SRC_RGB, TEST_LOCATION);
+  TEST_RENDERER_PROPERTY(renderer, "blendFactorDestRgb", Property::INTEGER, true, false, false, Renderer::Property::BLEND_FACTOR_DEST_RGB, TEST_LOCATION);
+  TEST_RENDERER_PROPERTY(renderer, "blendFactorSrcAlpha", Property::INTEGER, true, false, false, Renderer::Property::BLEND_FACTOR_SRC_ALPHA, TEST_LOCATION);
+  TEST_RENDERER_PROPERTY(renderer, "blendFactorDestAlpha", Property::INTEGER, true, false, false, Renderer::Property::BLEND_FACTOR_DEST_ALPHA, TEST_LOCATION);
+  TEST_RENDERER_PROPERTY(renderer, "blendColor", Property::VECTOR4, true, false, false, Renderer::Property::BLEND_COLOR, TEST_LOCATION);
+  TEST_RENDERER_PROPERTY(renderer, "blendPreMultipliedAlpha", Property::BOOLEAN, true, false, false, Renderer::Property::BLEND_PRE_MULTIPLIED_ALPHA, TEST_LOCATION);
+  TEST_RENDERER_PROPERTY(renderer, "indexRangeFirst", Property::INTEGER, true, false, false, Renderer::Property::INDEX_RANGE_FIRST, TEST_LOCATION);
+  TEST_RENDERER_PROPERTY(renderer, "indexRangeCount", Property::INTEGER, true, false, false, Renderer::Property::INDEX_RANGE_COUNT, TEST_LOCATION);
+  TEST_RENDERER_PROPERTY(renderer, "depthWriteMode", Property::INTEGER, true, false, false, Renderer::Property::DEPTH_WRITE_MODE, TEST_LOCATION);
+  TEST_RENDERER_PROPERTY(renderer, "depthFunction", Property::INTEGER, true, false, false, Renderer::Property::DEPTH_FUNCTION, TEST_LOCATION);
+  TEST_RENDERER_PROPERTY(renderer, "depthTestMode", Property::INTEGER, true, false, false, Renderer::Property::DEPTH_TEST_MODE, TEST_LOCATION);
+  TEST_RENDERER_PROPERTY(renderer, "renderMode", Property::INTEGER, true, false, false, Renderer::Property::RENDER_MODE, TEST_LOCATION);
+  TEST_RENDERER_PROPERTY(renderer, "stencilFunction", Property::INTEGER, true, false, false, Renderer::Property::STENCIL_FUNCTION, TEST_LOCATION);
+  TEST_RENDERER_PROPERTY(renderer, "stencilFunctionMask", Property::INTEGER, true, false, false, Renderer::Property::STENCIL_FUNCTION_MASK, TEST_LOCATION);
+  TEST_RENDERER_PROPERTY(renderer, "stencilFunctionReference", Property::INTEGER, true, false, false, Renderer::Property::STENCIL_FUNCTION_REFERENCE, TEST_LOCATION);
+  TEST_RENDERER_PROPERTY(renderer, "stencilMask", Property::INTEGER, true, false, false, Renderer::Property::STENCIL_MASK, TEST_LOCATION);
+  TEST_RENDERER_PROPERTY(renderer, "stencilOperationOnFail", Property::INTEGER, true, false, false, Renderer::Property::STENCIL_OPERATION_ON_FAIL, TEST_LOCATION);
+  TEST_RENDERER_PROPERTY(renderer, "stencilOperationOnZFail", Property::INTEGER, true, false, false, Renderer::Property::STENCIL_OPERATION_ON_Z_FAIL, TEST_LOCATION);
+  TEST_RENDERER_PROPERTY(renderer, "stencilOperationOnZPass", Property::INTEGER, true, false, false, Renderer::Property::STENCIL_OPERATION_ON_Z_PASS, TEST_LOCATION);
+  TEST_RENDERER_PROPERTY(renderer, "opacity", Property::FLOAT, true, true, true, DevelRenderer::Property::OPACITY, TEST_LOCATION);
+  TEST_RENDERER_PROPERTY(renderer, "renderingBehavior", Property::INTEGER, true, false, false, DevelRenderer::Property::RENDERING_BEHAVIOR, TEST_LOCATION);
+  TEST_RENDERER_PROPERTY(renderer, "blendEquation", Property::INTEGER, true, false, false, DevelRenderer::Property::BLEND_EQUATION, TEST_LOCATION);
 
   END_TEST;
 }
@@ -246,28 +298,28 @@ int UtcDaliRendererDefaultProperties(void)
 int UtcDaliRendererSetGetGeometry(void)
 {
   TestApplication application;
-  tet_infoline( "Test SetGeometry, GetGeometry" );
+  tet_infoline("Test SetGeometry, GetGeometry");
 
   Geometry geometry1 = CreateQuadGeometry();
   Geometry geometry2 = CreateQuadGeometry();
 
-  Shader shader = CreateShader();
+  Shader   shader   = CreateShader();
   Renderer renderer = Renderer::New(geometry1, shader);
-  Actor actor = Actor::New();
+  Actor    actor    = Actor::New();
   actor.AddRenderer(renderer);
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  Stage::GetCurrent().Add(actor);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  application.GetScene().Add(actor);
 
   application.SendNotification();
   application.Render(0);
-  DALI_TEST_EQUALS( renderer.GetGeometry(), geometry1, TEST_LOCATION );
+  DALI_TEST_EQUALS(renderer.GetGeometry(), geometry1, TEST_LOCATION);
 
   // Set geometry2 to the renderer
-  renderer.SetGeometry( geometry2 );
+  renderer.SetGeometry(geometry2);
 
   application.SendNotification();
   application.Render(0);
-  DALI_TEST_EQUALS( renderer.GetGeometry(), geometry2, TEST_LOCATION );
+  DALI_TEST_EQUALS(renderer.GetGeometry(), geometry2, TEST_LOCATION);
 
   END_TEST;
 }
@@ -275,23 +327,23 @@ int UtcDaliRendererSetGetGeometry(void)
 int UtcDaliRendererSetGetShader(void)
 {
   TestApplication application;
-  tet_infoline( "Test SetShader, GetShader" );
+  tet_infoline("Test SetShader, GetShader");
 
   TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
   glAbstraction.EnableCullFaceCallTrace(true);
 
   Shader shader1 = CreateShader();
-  shader1.RegisterProperty( "uFadeColor", Color::RED );
+  shader1.RegisterProperty("uFadeColor", Color::RED);
 
   Shader shader2 = CreateShader();
-  shader2.RegisterProperty( "uFadeColor", Color::GREEN );
+  shader2.RegisterProperty("uFadeColor", Color::GREEN);
 
   Geometry geometry = CreateQuadGeometry();
   Renderer renderer = Renderer::New(geometry, shader1);
-  Actor actor = Actor::New();
+  Actor    actor    = Actor::New();
   actor.AddRenderer(renderer);
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  Stage::GetCurrent().Add(actor);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  application.GetScene().Add(actor);
 
   TestGlAbstraction& gl = application.GetGlAbstraction();
   application.SendNotification();
@@ -299,22 +351,22 @@ int UtcDaliRendererSetGetShader(void)
 
   // Expect that the first shaders's fade color property is accessed
   Vector4 actualValue(Vector4::ZERO);
-  DALI_TEST_CHECK( gl.GetUniformValue<Vector4>( "uFadeColor", actualValue ) );
-  DALI_TEST_EQUALS( actualValue, Color::RED, TEST_LOCATION );
+  DALI_TEST_CHECK(gl.GetUniformValue<Vector4>("uFadeColor", actualValue));
+  DALI_TEST_EQUALS(actualValue, Color::RED, TEST_LOCATION);
 
-  DALI_TEST_EQUALS( renderer.GetShader(), shader1, TEST_LOCATION );
+  DALI_TEST_EQUALS(renderer.GetShader(), shader1, TEST_LOCATION);
 
   // set the second shader to the renderer
-  renderer.SetShader( shader2 );
+  renderer.SetShader(shader2);
 
   application.SendNotification();
   application.Render(0);
 
   // Expect that the second shader's fade color property is accessed
-  DALI_TEST_CHECK( gl.GetUniformValue<Vector4>( "uFadeColor", actualValue ) );
-  DALI_TEST_EQUALS( actualValue, Color::GREEN, TEST_LOCATION );
+  DALI_TEST_CHECK(gl.GetUniformValue<Vector4>("uFadeColor", actualValue));
+  DALI_TEST_EQUALS(actualValue, Color::GREEN, TEST_LOCATION);
 
-  DALI_TEST_EQUALS( renderer.GetShader(), shader2, TEST_LOCATION );
+  DALI_TEST_EQUALS(renderer.GetShader(), shader2, TEST_LOCATION);
 
   END_TEST;
 }
@@ -325,35 +377,35 @@ int UtcDaliRendererSetGetDepthIndex(void)
 
   tet_infoline("Test SetDepthIndex, GetDepthIndex");
 
-  Shader shader = CreateShader();
+  Shader   shader   = CreateShader();
   Geometry geometry = CreateQuadGeometry();
   Renderer renderer = Renderer::New(geometry, shader);
-  Actor actor = Actor::New();
+  Actor    actor    = Actor::New();
   actor.AddRenderer(renderer);
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  Stage::GetCurrent().Add(actor);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  application.GetScene().Add(actor);
 
   application.SendNotification();
   application.Render(0);
-  DALI_TEST_EQUALS( renderer.GetProperty<int>(Renderer::Property::DEPTH_INDEX), 0, TEST_LOCATION );
+  DALI_TEST_EQUALS(renderer.GetProperty<int>(Renderer::Property::DEPTH_INDEX), 0, TEST_LOCATION);
 
-  renderer.SetProperty( Renderer::Property::DEPTH_INDEX, 1 );
+  renderer.SetProperty(Renderer::Property::DEPTH_INDEX, 1);
 
-  DALI_TEST_EQUALS( renderer.GetProperty<int>(Renderer::Property::DEPTH_INDEX), 1, TEST_LOCATION );
-  DALI_TEST_EQUALS( renderer.GetCurrentProperty<int>(Renderer::Property::DEPTH_INDEX), 0, TEST_LOCATION );
+  DALI_TEST_EQUALS(renderer.GetProperty<int>(Renderer::Property::DEPTH_INDEX), 1, TEST_LOCATION);
+  DALI_TEST_EQUALS(renderer.GetCurrentProperty<int>(Renderer::Property::DEPTH_INDEX), 0, TEST_LOCATION);
 
   application.SendNotification();
   application.Render(0);
-  DALI_TEST_EQUALS( renderer.GetCurrentProperty<int>(Renderer::Property::DEPTH_INDEX), 1, TEST_LOCATION );
+  DALI_TEST_EQUALS(renderer.GetCurrentProperty<int>(Renderer::Property::DEPTH_INDEX), 1, TEST_LOCATION);
 
-  renderer.SetProperty( Renderer::Property::DEPTH_INDEX, 10 );
+  renderer.SetProperty(Renderer::Property::DEPTH_INDEX, 10);
 
-  DALI_TEST_EQUALS( renderer.GetProperty<int>(Renderer::Property::DEPTH_INDEX), 10, TEST_LOCATION );
-  DALI_TEST_EQUALS( renderer.GetCurrentProperty<int>(Renderer::Property::DEPTH_INDEX), 1, TEST_LOCATION );
+  DALI_TEST_EQUALS(renderer.GetProperty<int>(Renderer::Property::DEPTH_INDEX), 10, TEST_LOCATION);
+  DALI_TEST_EQUALS(renderer.GetCurrentProperty<int>(Renderer::Property::DEPTH_INDEX), 1, TEST_LOCATION);
 
   application.SendNotification();
   application.Render(0);
-  DALI_TEST_EQUALS( renderer.GetCurrentProperty<int>(Renderer::Property::DEPTH_INDEX), 10, TEST_LOCATION );
+  DALI_TEST_EQUALS(renderer.GetCurrentProperty<int>(Renderer::Property::DEPTH_INDEX), 10, TEST_LOCATION);
 
   END_TEST;
 }
@@ -364,79 +416,79 @@ int UtcDaliRendererSetGetFaceCullingMode(void)
 
   tet_infoline("Test SetFaceCullingMode(cullingMode)");
   Geometry geometry = CreateQuadGeometry();
-  Shader shader = CreateShader();
-  Renderer renderer = Renderer::New( geometry, shader );
+  Shader   shader   = CreateShader();
+  Renderer renderer = Renderer::New(geometry, shader);
 
   Actor actor = Actor::New();
   actor.AddRenderer(renderer);
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  Stage::GetCurrent().Add(actor);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  application.GetScene().Add(actor);
 
   // By default, none of the faces should be culled
-  unsigned int cullFace = renderer.GetProperty<int>( Renderer::Property::FACE_CULLING_MODE );
-  DALI_TEST_CHECK( static_cast< FaceCullingMode::Type >( cullFace ) == FaceCullingMode::NONE );
+  unsigned int cullFace = renderer.GetProperty<int>(Renderer::Property::FACE_CULLING_MODE);
+  DALI_TEST_CHECK(static_cast<FaceCullingMode::Type>(cullFace) == FaceCullingMode::NONE);
 
-  TestGlAbstraction& gl = application.GetGlAbstraction();
-  TraceCallStack& cullFaceStack = gl.GetCullFaceTrace();
+  TestGlAbstraction& gl            = application.GetGlAbstraction();
+  TraceCallStack&    cullFaceStack = gl.GetCullFaceTrace();
   gl.EnableCullFaceCallTrace(true);
 
   {
     cullFaceStack.Reset();
-    renderer.SetProperty( Renderer::Property::FACE_CULLING_MODE, FaceCullingMode::FRONT_AND_BACK );
+    renderer.SetProperty(Renderer::Property::FACE_CULLING_MODE, FaceCullingMode::FRONT_AND_BACK);
     application.SendNotification();
     application.Render();
 
-    DALI_TEST_EQUALS( cullFaceStack.CountMethod( "CullFace" ), 1, TEST_LOCATION );
+    DALI_TEST_EQUALS(cullFaceStack.CountMethod("CullFace"), 1, TEST_LOCATION);
 
     std::ostringstream cullModeString;
     cullModeString << GL_FRONT_AND_BACK;
 
-    DALI_TEST_CHECK( cullFaceStack.FindMethodAndParams( "CullFace", cullModeString.str() ) );
-    cullFace = renderer.GetProperty<int>( Renderer::Property::FACE_CULLING_MODE );
-    DALI_TEST_CHECK( static_cast< FaceCullingMode::Type >( cullFace ) == FaceCullingMode::FRONT_AND_BACK );
+    DALI_TEST_CHECK(cullFaceStack.FindMethodAndParams("CullFace", cullModeString.str()));
+    cullFace = renderer.GetProperty<int>(Renderer::Property::FACE_CULLING_MODE);
+    DALI_TEST_CHECK(static_cast<FaceCullingMode::Type>(cullFace) == FaceCullingMode::FRONT_AND_BACK);
   }
 
   {
     cullFaceStack.Reset();
-    renderer.SetProperty( Renderer::Property::FACE_CULLING_MODE, FaceCullingMode::BACK );
+    renderer.SetProperty(Renderer::Property::FACE_CULLING_MODE, FaceCullingMode::BACK);
     application.SendNotification();
     application.Render();
 
-    DALI_TEST_EQUALS( cullFaceStack.CountMethod( "CullFace" ), 1, TEST_LOCATION );
+    DALI_TEST_EQUALS(cullFaceStack.CountMethod("CullFace"), 1, TEST_LOCATION);
 
     std::ostringstream cullModeString;
     cullModeString << GL_BACK;
 
-    DALI_TEST_CHECK( cullFaceStack.FindMethodAndParams( "CullFace", cullModeString.str() ) );
-    cullFace = renderer.GetProperty<int>( Renderer::Property::FACE_CULLING_MODE );
-    DALI_TEST_CHECK( static_cast< FaceCullingMode::Type >( cullFace ) == FaceCullingMode::BACK );
+    DALI_TEST_CHECK(cullFaceStack.FindMethodAndParams("CullFace", cullModeString.str()));
+    cullFace = renderer.GetProperty<int>(Renderer::Property::FACE_CULLING_MODE);
+    DALI_TEST_CHECK(static_cast<FaceCullingMode::Type>(cullFace) == FaceCullingMode::BACK);
   }
 
   {
     cullFaceStack.Reset();
-    renderer.SetProperty( Renderer::Property::FACE_CULLING_MODE, FaceCullingMode::FRONT );
+    renderer.SetProperty(Renderer::Property::FACE_CULLING_MODE, FaceCullingMode::FRONT);
     application.SendNotification();
     application.Render();
 
-    DALI_TEST_EQUALS( cullFaceStack.CountMethod( "CullFace" ), 1, TEST_LOCATION );
+    DALI_TEST_EQUALS(cullFaceStack.CountMethod("CullFace"), 1, TEST_LOCATION);
 
     std::ostringstream cullModeString;
     cullModeString << GL_FRONT;
 
-    DALI_TEST_CHECK( cullFaceStack.FindMethodAndParams( "CullFace", cullModeString.str() ) );
-    cullFace = renderer.GetProperty<int>( Renderer::Property::FACE_CULLING_MODE );
-    DALI_TEST_CHECK( static_cast< FaceCullingMode::Type >( cullFace ) == FaceCullingMode::FRONT );
+    DALI_TEST_CHECK(cullFaceStack.FindMethodAndParams("CullFace", cullModeString.str()));
+    cullFace = renderer.GetProperty<int>(Renderer::Property::FACE_CULLING_MODE);
+    DALI_TEST_CHECK(static_cast<FaceCullingMode::Type>(cullFace) == FaceCullingMode::FRONT);
   }
 
   {
     cullFaceStack.Reset();
-    renderer.SetProperty( Renderer::Property::FACE_CULLING_MODE, FaceCullingMode::NONE );
+    renderer.SetProperty(Renderer::Property::FACE_CULLING_MODE, FaceCullingMode::NONE);
     application.SendNotification();
     application.Render();
 
-    DALI_TEST_EQUALS( cullFaceStack.CountMethod( "CullFace" ), 0, TEST_LOCATION );
-    cullFace = renderer.GetProperty<int>( Renderer::Property::FACE_CULLING_MODE );
-    DALI_TEST_CHECK( static_cast< FaceCullingMode::Type >( cullFace ) == FaceCullingMode::NONE );
+    DALI_TEST_EQUALS(cullFaceStack.CountMethod("CullFace"), 0, TEST_LOCATION);
+    cullFace = renderer.GetProperty<int>(Renderer::Property::FACE_CULLING_MODE);
+    DALI_TEST_CHECK(static_cast<FaceCullingMode::Type>(cullFace) == FaceCullingMode::NONE);
   }
 
   END_TEST;
@@ -449,41 +501,41 @@ int UtcDaliRendererBlendOptions01(void)
   tet_infoline("Test BLEND_FACTOR properties ");
 
   Geometry geometry = CreateQuadGeometry();
-  Shader shader = CreateShader();
-  Renderer renderer = Renderer::New( geometry, shader );
+  Shader   shader   = CreateShader();
+  Renderer renderer = Renderer::New(geometry, shader);
 
   Actor actor = Actor::New();
   // set a transparent actor color so that blending is enabled
-  actor.SetProperty( Actor::Property::OPACITY, 0.5f );
+  actor.SetProperty(Actor::Property::OPACITY, 0.5f);
   actor.AddRenderer(renderer);
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  Stage::GetCurrent().Add(actor);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  application.GetScene().Add(actor);
 
-  renderer.SetProperty( Renderer::Property::BLEND_FACTOR_SRC_RGB,    BlendFactor::ONE_MINUS_SRC_COLOR );
-  renderer.SetProperty( Renderer::Property::BLEND_FACTOR_DEST_RGB,   BlendFactor::SRC_ALPHA_SATURATE  );
-  renderer.SetProperty( Renderer::Property::BLEND_FACTOR_SRC_ALPHA,  BlendFactor::ONE_MINUS_SRC_COLOR );
-  renderer.SetProperty( Renderer::Property::BLEND_FACTOR_DEST_ALPHA, BlendFactor::SRC_ALPHA_SATURATE  );
+  renderer.SetProperty(Renderer::Property::BLEND_FACTOR_SRC_RGB, BlendFactor::ONE_MINUS_SRC_COLOR);
+  renderer.SetProperty(Renderer::Property::BLEND_FACTOR_DEST_RGB, BlendFactor::SRC_ALPHA_SATURATE);
+  renderer.SetProperty(Renderer::Property::BLEND_FACTOR_SRC_ALPHA, BlendFactor::ONE_MINUS_SRC_COLOR);
+  renderer.SetProperty(Renderer::Property::BLEND_FACTOR_DEST_ALPHA, BlendFactor::SRC_ALPHA_SATURATE);
 
   // Test that Set was successful:
-  int srcFactorRgb    = renderer.GetProperty<int>( Renderer::Property::BLEND_FACTOR_SRC_RGB );
-  int destFactorRgb   = renderer.GetProperty<int>( Renderer::Property::BLEND_FACTOR_DEST_RGB );
-  int srcFactorAlpha  = renderer.GetProperty<int>( Renderer::Property::BLEND_FACTOR_SRC_ALPHA );
-  int destFactorAlpha = renderer.GetProperty<int>( Renderer::Property::BLEND_FACTOR_DEST_ALPHA );
+  int srcFactorRgb    = renderer.GetProperty<int>(Renderer::Property::BLEND_FACTOR_SRC_RGB);
+  int destFactorRgb   = renderer.GetProperty<int>(Renderer::Property::BLEND_FACTOR_DEST_RGB);
+  int srcFactorAlpha  = renderer.GetProperty<int>(Renderer::Property::BLEND_FACTOR_SRC_ALPHA);
+  int destFactorAlpha = renderer.GetProperty<int>(Renderer::Property::BLEND_FACTOR_DEST_ALPHA);
 
-  DALI_TEST_EQUALS( (int)BlendFactor::ONE_MINUS_SRC_COLOR, srcFactorRgb,    TEST_LOCATION );
-  DALI_TEST_EQUALS( (int)BlendFactor::SRC_ALPHA_SATURATE,  destFactorRgb,   TEST_LOCATION );
-  DALI_TEST_EQUALS( (int)BlendFactor::ONE_MINUS_SRC_COLOR, srcFactorAlpha,  TEST_LOCATION );
-  DALI_TEST_EQUALS( (int)BlendFactor::SRC_ALPHA_SATURATE,  destFactorAlpha, TEST_LOCATION );
+  DALI_TEST_EQUALS((int)BlendFactor::ONE_MINUS_SRC_COLOR, srcFactorRgb, TEST_LOCATION);
+  DALI_TEST_EQUALS((int)BlendFactor::SRC_ALPHA_SATURATE, destFactorRgb, TEST_LOCATION);
+  DALI_TEST_EQUALS((int)BlendFactor::ONE_MINUS_SRC_COLOR, srcFactorAlpha, TEST_LOCATION);
+  DALI_TEST_EQUALS((int)BlendFactor::SRC_ALPHA_SATURATE, destFactorAlpha, TEST_LOCATION);
 
   application.SendNotification();
   application.Render();
 
   TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
 
-  DALI_TEST_EQUALS( (GLenum)GL_ONE_MINUS_SRC_COLOR, glAbstraction.GetLastBlendFuncSrcRgb(),   TEST_LOCATION );
-  DALI_TEST_EQUALS( (GLenum)GL_SRC_ALPHA_SATURATE,  glAbstraction.GetLastBlendFuncDstRgb(),   TEST_LOCATION );
-  DALI_TEST_EQUALS( (GLenum)GL_ONE_MINUS_SRC_COLOR, glAbstraction.GetLastBlendFuncSrcAlpha(), TEST_LOCATION );
-  DALI_TEST_EQUALS( (GLenum)GL_SRC_ALPHA_SATURATE,  glAbstraction.GetLastBlendFuncDstAlpha(), TEST_LOCATION );
+  DALI_TEST_EQUALS((GLenum)GL_ONE_MINUS_SRC_COLOR, glAbstraction.GetLastBlendFuncSrcRgb(), TEST_LOCATION);
+  DALI_TEST_EQUALS((GLenum)GL_SRC_ALPHA_SATURATE, glAbstraction.GetLastBlendFuncDstRgb(), TEST_LOCATION);
+  DALI_TEST_EQUALS((GLenum)GL_ONE_MINUS_SRC_COLOR, glAbstraction.GetLastBlendFuncSrcAlpha(), TEST_LOCATION);
+  DALI_TEST_EQUALS((GLenum)GL_SRC_ALPHA_SATURATE, glAbstraction.GetLastBlendFuncDstAlpha(), TEST_LOCATION);
 
   END_TEST;
 }
@@ -495,41 +547,41 @@ int UtcDaliRendererBlendOptions02(void)
   tet_infoline("Test BLEND_FACTOR properties ");
 
   Geometry geometry = CreateQuadGeometry();
-  Shader shader = CreateShader();
-  Renderer renderer = Renderer::New( geometry, shader );
+  Shader   shader   = CreateShader();
+  Renderer renderer = Renderer::New(geometry, shader);
 
   Actor actor = Actor::New();
-  actor.SetProperty( Actor::Property::OPACITY, 0.5f ); // enable blending
+  actor.SetProperty(Actor::Property::OPACITY, 0.5f); // enable blending
   actor.AddRenderer(renderer);
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  Stage::GetCurrent().Add(actor);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  application.GetScene().Add(actor);
 
-  renderer.SetProperty( Renderer::Property::BLEND_FACTOR_SRC_RGB,    BlendFactor::CONSTANT_COLOR );
-  renderer.SetProperty( Renderer::Property::BLEND_FACTOR_DEST_RGB,   BlendFactor::ONE_MINUS_CONSTANT_COLOR );
-  renderer.SetProperty( Renderer::Property::BLEND_FACTOR_SRC_ALPHA,  BlendFactor::CONSTANT_ALPHA );
-  renderer.SetProperty( Renderer::Property::BLEND_FACTOR_DEST_ALPHA, BlendFactor::ONE_MINUS_CONSTANT_ALPHA  );
+  renderer.SetProperty(Renderer::Property::BLEND_FACTOR_SRC_RGB, BlendFactor::CONSTANT_COLOR);
+  renderer.SetProperty(Renderer::Property::BLEND_FACTOR_DEST_RGB, BlendFactor::ONE_MINUS_CONSTANT_COLOR);
+  renderer.SetProperty(Renderer::Property::BLEND_FACTOR_SRC_ALPHA, BlendFactor::CONSTANT_ALPHA);
+  renderer.SetProperty(Renderer::Property::BLEND_FACTOR_DEST_ALPHA, BlendFactor::ONE_MINUS_CONSTANT_ALPHA);
 
   // Test that Set was successful:
   {
-    int srcFactorRgb    = renderer.GetProperty<int>( Renderer::Property::BLEND_FACTOR_SRC_RGB );
-    int destFactorRgb   = renderer.GetProperty<int>( Renderer::Property::BLEND_FACTOR_DEST_RGB );
-    int srcFactorAlpha  = renderer.GetProperty<int>( Renderer::Property::BLEND_FACTOR_SRC_ALPHA );
-    int destFactorAlpha = renderer.GetProperty<int>( Renderer::Property::BLEND_FACTOR_DEST_ALPHA );
-
-    DALI_TEST_EQUALS( (int)BlendFactor::CONSTANT_COLOR,            srcFactorRgb,    TEST_LOCATION );
-    DALI_TEST_EQUALS( (int)BlendFactor::ONE_MINUS_CONSTANT_COLOR,  destFactorRgb,   TEST_LOCATION );
-    DALI_TEST_EQUALS( (int)BlendFactor::CONSTANT_ALPHA,            srcFactorAlpha,  TEST_LOCATION );
-    DALI_TEST_EQUALS( (int)BlendFactor::ONE_MINUS_CONSTANT_ALPHA,  destFactorAlpha, TEST_LOCATION );
+    int srcFactorRgb    = renderer.GetProperty<int>(Renderer::Property::BLEND_FACTOR_SRC_RGB);
+    int destFactorRgb   = renderer.GetProperty<int>(Renderer::Property::BLEND_FACTOR_DEST_RGB);
+    int srcFactorAlpha  = renderer.GetProperty<int>(Renderer::Property::BLEND_FACTOR_SRC_ALPHA);
+    int destFactorAlpha = renderer.GetProperty<int>(Renderer::Property::BLEND_FACTOR_DEST_ALPHA);
+
+    DALI_TEST_EQUALS((int)BlendFactor::CONSTANT_COLOR, srcFactorRgb, TEST_LOCATION);
+    DALI_TEST_EQUALS((int)BlendFactor::ONE_MINUS_CONSTANT_COLOR, destFactorRgb, TEST_LOCATION);
+    DALI_TEST_EQUALS((int)BlendFactor::CONSTANT_ALPHA, srcFactorAlpha, TEST_LOCATION);
+    DALI_TEST_EQUALS((int)BlendFactor::ONE_MINUS_CONSTANT_ALPHA, destFactorAlpha, TEST_LOCATION);
   }
 
   application.SendNotification();
   application.Render();
 
   TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
-  DALI_TEST_EQUALS( (GLenum)GL_CONSTANT_COLOR,           glAbstraction.GetLastBlendFuncSrcRgb(),   TEST_LOCATION );
-  DALI_TEST_EQUALS( (GLenum)GL_ONE_MINUS_CONSTANT_COLOR, glAbstraction.GetLastBlendFuncDstRgb(),   TEST_LOCATION );
-  DALI_TEST_EQUALS( (GLenum)GL_CONSTANT_ALPHA,           glAbstraction.GetLastBlendFuncSrcAlpha(), TEST_LOCATION );
-  DALI_TEST_EQUALS( (GLenum)GL_ONE_MINUS_CONSTANT_ALPHA, glAbstraction.GetLastBlendFuncDstAlpha(), TEST_LOCATION );
+  DALI_TEST_EQUALS((GLenum)GL_CONSTANT_COLOR, glAbstraction.GetLastBlendFuncSrcRgb(), TEST_LOCATION);
+  DALI_TEST_EQUALS((GLenum)GL_ONE_MINUS_CONSTANT_COLOR, glAbstraction.GetLastBlendFuncDstRgb(), TEST_LOCATION);
+  DALI_TEST_EQUALS((GLenum)GL_CONSTANT_ALPHA, glAbstraction.GetLastBlendFuncSrcAlpha(), TEST_LOCATION);
+  DALI_TEST_EQUALS((GLenum)GL_ONE_MINUS_CONSTANT_ALPHA, glAbstraction.GetLastBlendFuncDstAlpha(), TEST_LOCATION);
 
   END_TEST;
 }
@@ -541,20 +593,20 @@ int UtcDaliRendererBlendOptions03(void)
   tet_infoline("Test GetBlendEquation() defaults ");
 
   Geometry geometry = CreateQuadGeometry();
-  Shader shader = CreateShader();
-  Renderer renderer = Renderer::New( geometry, shader );
+  Shader   shader   = CreateShader();
+  Renderer renderer = Renderer::New(geometry, shader);
 
   Actor actor = Actor::New();
   actor.AddRenderer(renderer);
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  Stage::GetCurrent().Add(actor);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  application.GetScene().Add(actor);
 
   // Test the defaults as documented in blending.h
-  int equationRgb   = renderer.GetProperty<int>( Renderer::Property::BLEND_EQUATION_RGB );
-  int equationAlpha = renderer.GetProperty<int>( Renderer::Property::BLEND_EQUATION_ALPHA );
+  int equationRgb   = renderer.GetProperty<int>(Renderer::Property::BLEND_EQUATION_RGB);
+  int equationAlpha = renderer.GetProperty<int>(Renderer::Property::BLEND_EQUATION_ALPHA);
 
-  DALI_TEST_EQUALS( (int)BlendEquation::ADD, equationRgb,   TEST_LOCATION );
-  DALI_TEST_EQUALS( (int)BlendEquation::ADD, equationAlpha, TEST_LOCATION );
+  DALI_TEST_EQUALS((int)BlendEquation::ADD, equationRgb, TEST_LOCATION);
+  DALI_TEST_EQUALS((int)BlendEquation::ADD, equationAlpha, TEST_LOCATION);
 
   END_TEST;
 }
@@ -566,31 +618,31 @@ int UtcDaliRendererBlendOptions04(void)
   tet_infoline("Test SetBlendEquation() ");
 
   Geometry geometry = CreateQuadGeometry();
-  Shader shader = CreateShader();
-  Renderer renderer = Renderer::New( geometry, shader );
+  Shader   shader   = CreateShader();
+  Renderer renderer = Renderer::New(geometry, shader);
 
   Actor actor = Actor::New();
-  actor.SetProperty( Actor::Property::OPACITY, 0.1f );
+  actor.SetProperty(Actor::Property::OPACITY, 0.1f);
   actor.AddRenderer(renderer);
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  Stage::GetCurrent().Add(actor);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  application.GetScene().Add(actor);
 
   // Test the single blending equation setting
   {
-    renderer.SetProperty( Renderer::Property::BLEND_EQUATION_RGB, BlendEquation::REVERSE_SUBTRACT );
-    int equationRgb = renderer.GetProperty<int>( Renderer::Property::BLEND_EQUATION_RGB );
-    DALI_TEST_EQUALS( (int)BlendEquation::REVERSE_SUBTRACT, equationRgb, TEST_LOCATION );
+    renderer.SetProperty(Renderer::Property::BLEND_EQUATION_RGB, BlendEquation::REVERSE_SUBTRACT);
+    int equationRgb = renderer.GetProperty<int>(Renderer::Property::BLEND_EQUATION_RGB);
+    DALI_TEST_EQUALS((int)BlendEquation::REVERSE_SUBTRACT, equationRgb, TEST_LOCATION);
   }
 
-  renderer.SetProperty( Renderer::Property::BLEND_EQUATION_RGB,   BlendEquation::REVERSE_SUBTRACT );
-  renderer.SetProperty( Renderer::Property::BLEND_EQUATION_ALPHA, BlendEquation::REVERSE_SUBTRACT );
+  renderer.SetProperty(Renderer::Property::BLEND_EQUATION_RGB, BlendEquation::REVERSE_SUBTRACT);
+  renderer.SetProperty(Renderer::Property::BLEND_EQUATION_ALPHA, BlendEquation::REVERSE_SUBTRACT);
 
   // Test that Set was successful
   {
-    int equationRgb   = renderer.GetProperty<int>( Renderer::Property::BLEND_EQUATION_RGB );
-    int equationAlpha = renderer.GetProperty<int>( Renderer::Property::BLEND_EQUATION_ALPHA );
-    DALI_TEST_EQUALS( (int)BlendEquation::REVERSE_SUBTRACT, equationRgb, TEST_LOCATION );
-    DALI_TEST_EQUALS( (int)BlendEquation::REVERSE_SUBTRACT, equationAlpha, TEST_LOCATION );
+    int equationRgb   = renderer.GetProperty<int>(Renderer::Property::BLEND_EQUATION_RGB);
+    int equationAlpha = renderer.GetProperty<int>(Renderer::Property::BLEND_EQUATION_ALPHA);
+    DALI_TEST_EQUALS((int)BlendEquation::REVERSE_SUBTRACT, equationRgb, TEST_LOCATION);
+    DALI_TEST_EQUALS((int)BlendEquation::REVERSE_SUBTRACT, equationAlpha, TEST_LOCATION);
   }
 
   // Render & check GL commands
@@ -598,29 +650,150 @@ int UtcDaliRendererBlendOptions04(void)
   application.Render();
 
   TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
-  DALI_TEST_EQUALS( (GLenum)GL_FUNC_REVERSE_SUBTRACT, glAbstraction.GetLastBlendEquationRgb(),   TEST_LOCATION );
-  DALI_TEST_EQUALS( (GLenum)GL_FUNC_REVERSE_SUBTRACT, glAbstraction.GetLastBlendEquationAlpha(), TEST_LOCATION );
+  DALI_TEST_EQUALS((GLenum)GL_FUNC_REVERSE_SUBTRACT, glAbstraction.GetLastBlendEquationRgb(), TEST_LOCATION);
+  DALI_TEST_EQUALS((GLenum)GL_FUNC_REVERSE_SUBTRACT, glAbstraction.GetLastBlendEquationAlpha(), TEST_LOCATION);
 
   END_TEST;
 }
 
-int UtcDaliRendererSetBlendMode01(void)
+int UtcDaliRendererBlendOptions05(void)
 {
   TestApplication application;
 
-  tet_infoline("Test setting the blend mode to on with an opaque color renders with blending enabled");
+  tet_infoline("Test SetAdvancedBlendEquation ");
 
   Geometry geometry = CreateQuadGeometry();
   Shader shader = CreateShader();
   Renderer renderer = Renderer::New( geometry, shader );
 
   Actor actor = Actor::New();
-  actor.SetProperty( Actor::Property::OPACITY, 0.98f );
+  actor.SetProperty(Actor::Property::OPACITY, 0.1f);
+
   actor.AddRenderer(renderer);
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  Stage::GetCurrent().Add(actor);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400, 400));
+  application.GetScene().Add(actor);
+
+  if( Dali::Capabilities::IsBlendEquationSupported( DevelBlendEquation::MAX ) )
+  {
+    renderer.SetProperty( DevelRenderer::Property::BLEND_EQUATION, DevelBlendEquation::MAX );
+    int equationRgb = renderer.GetProperty<int>( DevelRenderer::Property::BLEND_EQUATION );
+    DALI_TEST_EQUALS( (int)DevelBlendEquation::MAX, equationRgb, TEST_LOCATION );
+  }
+
+  if( Dali::Capabilities::IsBlendEquationSupported( DevelBlendEquation::SCREEN ) )
+  {
+    renderer.SetProperty( Renderer::Property::BLEND_PRE_MULTIPLIED_ALPHA, true );
+    renderer.SetProperty( DevelRenderer::Property::BLEND_EQUATION, DevelBlendEquation::SCREEN );
+    int equation = renderer.GetProperty<int>( DevelRenderer::Property::BLEND_EQUATION );
+
+    DALI_TEST_EQUALS( (int)DevelBlendEquation::SCREEN, equation, TEST_LOCATION );
+    DALI_TEST_EQUALS( DevelRenderer::IsAdvancedBlendEquationApplied( renderer ), true, TEST_LOCATION );
+
+    application.SendNotification();
+    application.Render();
+  }
+
+  if( Dali::Capabilities::IsBlendEquationSupported( DevelBlendEquation::SCREEN ) &&
+      Dali::Capabilities::IsBlendEquationSupported( DevelBlendEquation::MULTIPLY ) )
+  {
+    renderer.SetProperty( DevelRenderer::Property::BLEND_EQUATION, DevelBlendEquation::ADD );
+    renderer.SetProperty( Renderer::Property::BLEND_PRE_MULTIPLIED_ALPHA, true );
+    renderer.SetProperty( DevelRenderer::Property::BLEND_EQUATION_RGB, DevelBlendEquation::SCREEN );
+    renderer.SetProperty( DevelRenderer::Property::BLEND_EQUATION_ALPHA, DevelBlendEquation::MULTIPLY );
+    int equationRgb = renderer.GetProperty<int>( DevelRenderer::Property::BLEND_EQUATION_RGB );
+    int equationAlpha = renderer.GetProperty<int>( DevelRenderer::Property::BLEND_EQUATION_ALPHA );
+
+    DALI_TEST_EQUALS( (int)DevelBlendEquation::ADD, equationRgb, TEST_LOCATION );
+    DALI_TEST_EQUALS( (int)DevelBlendEquation::ADD, equationAlpha, TEST_LOCATION );
+    DALI_TEST_EQUALS( DevelRenderer::IsAdvancedBlendEquationApplied( renderer ), false, TEST_LOCATION );
+
+    application.SendNotification();
+    application.Render();
+  }
+
+  tet_infoline("Error Checking\n");
+  if( Dali::Capabilities::IsBlendEquationSupported( DevelBlendEquation::MULTIPLY ) &&
+      Dali::Capabilities::IsBlendEquationSupported( DevelBlendEquation::SCREEN ) &&
+      Dali::Capabilities::IsBlendEquationSupported( DevelBlendEquation::OVERLAY ) &&
+      Dali::Capabilities::IsBlendEquationSupported( DevelBlendEquation::DARKEN ) &&
+      Dali::Capabilities::IsBlendEquationSupported( DevelBlendEquation::LIGHTEN ) &&
+      Dali::Capabilities::IsBlendEquationSupported( DevelBlendEquation::COLOR_DODGE ) &&
+      Dali::Capabilities::IsBlendEquationSupported( DevelBlendEquation::COLOR_BURN ) &&
+      Dali::Capabilities::IsBlendEquationSupported( DevelBlendEquation::HARD_LIGHT ) &&
+      Dali::Capabilities::IsBlendEquationSupported( DevelBlendEquation::SOFT_LIGHT ) &&
+      Dali::Capabilities::IsBlendEquationSupported( DevelBlendEquation::DIFFERENCE ) &&
+      Dali::Capabilities::IsBlendEquationSupported( DevelBlendEquation::EXCLUSION ) &&
+      Dali::Capabilities::IsBlendEquationSupported( DevelBlendEquation::HUE ) &&
+      Dali::Capabilities::IsBlendEquationSupported( DevelBlendEquation::SATURATION ) &&
+      Dali::Capabilities::IsBlendEquationSupported( DevelBlendEquation::COLOR ) &&
+      Dali::Capabilities::IsBlendEquationSupported( DevelBlendEquation::LUMINOSITY ) )
+  {
+    renderer.SetProperty( DevelRenderer::Property::BLEND_EQUATION, DevelBlendEquation::MULTIPLY );
+    DALI_TEST_EQUALS( (int)DevelBlendEquation::MULTIPLY, renderer.GetProperty<int>( DevelRenderer::Property::BLEND_EQUATION ), TEST_LOCATION );
+
+    renderer.SetProperty( DevelRenderer::Property::BLEND_EQUATION, DevelBlendEquation::SCREEN );
+    DALI_TEST_EQUALS( (int)DevelBlendEquation::SCREEN, renderer.GetProperty<int>( DevelRenderer::Property::BLEND_EQUATION ), TEST_LOCATION );
+
+    renderer.SetProperty( DevelRenderer::Property::BLEND_EQUATION, DevelBlendEquation::OVERLAY );
+    DALI_TEST_EQUALS( (int)DevelBlendEquation::OVERLAY, renderer.GetProperty<int>( DevelRenderer::Property::BLEND_EQUATION ), TEST_LOCATION );
+
+    renderer.SetProperty( DevelRenderer::Property::BLEND_EQUATION, DevelBlendEquation::DARKEN );
+    DALI_TEST_EQUALS( (int)DevelBlendEquation::DARKEN, renderer.GetProperty<int>( DevelRenderer::Property::BLEND_EQUATION ), TEST_LOCATION );
+
+    renderer.SetProperty( DevelRenderer::Property::BLEND_EQUATION, DevelBlendEquation::LIGHTEN );
+    DALI_TEST_EQUALS( (int)DevelBlendEquation::LIGHTEN, renderer.GetProperty<int>( DevelRenderer::Property::BLEND_EQUATION ), TEST_LOCATION );
+
+    renderer.SetProperty( DevelRenderer::Property::BLEND_EQUATION, DevelBlendEquation::COLOR_DODGE );
+    DALI_TEST_EQUALS( (int)DevelBlendEquation::COLOR_DODGE, renderer.GetProperty<int>( DevelRenderer::Property::BLEND_EQUATION ), TEST_LOCATION );
+
+    renderer.SetProperty( DevelRenderer::Property::BLEND_EQUATION, DevelBlendEquation::COLOR_BURN );
+    DALI_TEST_EQUALS( (int)DevelBlendEquation::COLOR_BURN, renderer.GetProperty<int>( DevelRenderer::Property::BLEND_EQUATION ), TEST_LOCATION );
+
+    renderer.SetProperty( DevelRenderer::Property::BLEND_EQUATION, DevelBlendEquation::HARD_LIGHT );
+    DALI_TEST_EQUALS( (int)DevelBlendEquation::HARD_LIGHT, renderer.GetProperty<int>( DevelRenderer::Property::BLEND_EQUATION ), TEST_LOCATION );
+
+    renderer.SetProperty( DevelRenderer::Property::BLEND_EQUATION, DevelBlendEquation::SOFT_LIGHT );
+    DALI_TEST_EQUALS( (int)DevelBlendEquation::SOFT_LIGHT, renderer.GetProperty<int>( DevelRenderer::Property::BLEND_EQUATION ), TEST_LOCATION );
+
+    renderer.SetProperty( DevelRenderer::Property::BLEND_EQUATION, DevelBlendEquation::DIFFERENCE );
+    DALI_TEST_EQUALS( (int)DevelBlendEquation::DIFFERENCE, renderer.GetProperty<int>( DevelRenderer::Property::BLEND_EQUATION ), TEST_LOCATION );
 
-  renderer.SetProperty( Renderer::Property::BLEND_MODE, BlendMode::ON);
+    renderer.SetProperty( DevelRenderer::Property::BLEND_EQUATION, DevelBlendEquation::EXCLUSION );
+    DALI_TEST_EQUALS( (int)DevelBlendEquation::EXCLUSION, renderer.GetProperty<int>( DevelRenderer::Property::BLEND_EQUATION ), TEST_LOCATION );
+
+    renderer.SetProperty( DevelRenderer::Property::BLEND_EQUATION, DevelBlendEquation::HUE );
+    DALI_TEST_EQUALS( (int)DevelBlendEquation::HUE, renderer.GetProperty<int>( DevelRenderer::Property::BLEND_EQUATION ), TEST_LOCATION );
+
+    renderer.SetProperty( DevelRenderer::Property::BLEND_EQUATION, DevelBlendEquation::SATURATION );
+    DALI_TEST_EQUALS( (int)DevelBlendEquation::SATURATION, renderer.GetProperty<int>( DevelRenderer::Property::BLEND_EQUATION ), TEST_LOCATION );
+
+    renderer.SetProperty( DevelRenderer::Property::BLEND_EQUATION, DevelBlendEquation::COLOR );
+    DALI_TEST_EQUALS( (int)DevelBlendEquation::COLOR, renderer.GetProperty<int>( DevelRenderer::Property::BLEND_EQUATION ), TEST_LOCATION );
+
+    renderer.SetProperty( DevelRenderer::Property::BLEND_EQUATION, DevelBlendEquation::LUMINOSITY );
+    DALI_TEST_EQUALS( (int)DevelBlendEquation::LUMINOSITY, renderer.GetProperty<int>( DevelRenderer::Property::BLEND_EQUATION ), TEST_LOCATION );
+  }
+
+  END_TEST;
+}
+
+int UtcDaliRendererSetBlendMode01(void)
+{
+  TestApplication application;
+
+  tet_infoline("Test setting the blend mode to on with an opaque color renders with blending enabled");
+
+  Geometry geometry = CreateQuadGeometry();
+  Shader   shader   = CreateShader();
+  Renderer renderer = Renderer::New(geometry, shader);
+
+  Actor actor = Actor::New();
+  actor.SetProperty(Actor::Property::OPACITY, 0.98f);
+  actor.AddRenderer(renderer);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  application.GetScene().Add(actor);
+
+  renderer.SetProperty(Renderer::Property::BLEND_MODE, BlendMode::ON);
 
   TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
   glAbstraction.EnableEnableDisableCallTrace(true);
@@ -628,10 +801,10 @@ int UtcDaliRendererSetBlendMode01(void)
   application.SendNotification();
   application.Render();
 
-  TraceCallStack& glEnableStack = glAbstraction.GetEnableDisableTrace();
+  TraceCallStack&    glEnableStack = glAbstraction.GetEnableDisableTrace();
   std::ostringstream blendStr;
   blendStr << GL_BLEND;
-  DALI_TEST_CHECK( glEnableStack.FindMethodAndParams( "Enable", blendStr.str().c_str() ) );
+  DALI_TEST_CHECK(glEnableStack.FindMethodAndParams("Enable", blendStr.str().c_str()));
 
   END_TEST;
 }
@@ -643,30 +816,30 @@ int UtcDaliRendererSetBlendMode01b(void)
   tet_infoline("Test setting the blend mode to on with an transparent color renders with blending enabled");
 
   Geometry geometry = CreateQuadGeometry();
-  Shader shader = CreateShader();
-  Renderer renderer = Renderer::New( geometry, shader );
+  Shader   shader   = CreateShader();
+  Renderer renderer = Renderer::New(geometry, shader);
 
   Actor actor = Actor::New();
-  actor.SetProperty( Actor::Property::OPACITY, 0.0f );
+  actor.SetProperty(Actor::Property::OPACITY, 0.0f);
   actor.AddRenderer(renderer);
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  Stage::GetCurrent().Add(actor);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  application.GetScene().Add(actor);
 
-  renderer.SetProperty( Renderer::Property::BLEND_MODE, BlendMode::ON);
+  renderer.SetProperty(Renderer::Property::BLEND_MODE, BlendMode::ON);
 
   TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
   glAbstraction.EnableEnableDisableCallTrace(true);
-  glAbstraction.EnableDrawCallTrace( true );
+  glAbstraction.EnableDrawCallTrace(true);
 
   application.SendNotification();
   application.Render();
 
-  TraceCallStack& glEnableStack = glAbstraction.GetEnableDisableTrace();
+  TraceCallStack&    glEnableStack = glAbstraction.GetEnableDisableTrace();
   std::ostringstream blendStr;
   blendStr << GL_BLEND;
-  DALI_TEST_CHECK( !glEnableStack.FindMethod( "Enable" ) );
+  DALI_TEST_CHECK(!glEnableStack.FindMethod("Enable"));
 
-  DALI_TEST_CHECK( !glAbstraction.GetDrawTrace().FindMethod( "DrawElements" ) );
+  DALI_TEST_CHECK(!glAbstraction.GetDrawTrace().FindMethod("DrawElements"));
 
   END_TEST;
 }
@@ -678,16 +851,16 @@ int UtcDaliRendererSetBlendMode02(void)
   tet_infoline("Test setting the blend mode to off with a transparent color renders with blending disabled (and not enabled)");
 
   Geometry geometry = CreateQuadGeometry();
-  Shader shader = CreateShader();
-  Renderer renderer = Renderer::New( geometry, shader );
+  Shader   shader   = CreateShader();
+  Renderer renderer = Renderer::New(geometry, shader);
 
   Actor actor = Actor::New();
-  actor.SetProperty( Actor::Property::OPACITY, 0.15f );
+  actor.SetProperty(Actor::Property::OPACITY, 0.15f);
   actor.AddRenderer(renderer);
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  Stage::GetCurrent().Add(actor);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  application.GetScene().Add(actor);
 
-  renderer.SetProperty( Renderer::Property::BLEND_MODE, BlendMode::OFF);
+  renderer.SetProperty(Renderer::Property::BLEND_MODE, BlendMode::OFF);
 
   TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
   glAbstraction.EnableEnableDisableCallTrace(true);
@@ -695,10 +868,10 @@ int UtcDaliRendererSetBlendMode02(void)
   application.SendNotification();
   application.Render();
 
-  TraceCallStack& glEnableStack = glAbstraction.GetEnableDisableTrace();
+  TraceCallStack&    glEnableStack = glAbstraction.GetEnableDisableTrace();
   std::ostringstream blendStr;
   blendStr << GL_BLEND;
-  DALI_TEST_CHECK( ! glEnableStack.FindMethodAndParams( "Enable", blendStr.str().c_str() ) );
+  DALI_TEST_CHECK(!glEnableStack.FindMethodAndParams("Enable", blendStr.str().c_str()));
 
   END_TEST;
 }
@@ -710,16 +883,16 @@ int UtcDaliRendererSetBlendMode03(void)
   tet_infoline("Test setting the blend mode to auto with a transparent color renders with blending enabled");
 
   Geometry geometry = CreateQuadGeometry();
-  Shader shader = CreateShader();
-  Renderer renderer = Renderer::New( geometry, shader );
+  Shader   shader   = CreateShader();
+  Renderer renderer = Renderer::New(geometry, shader);
 
   Actor actor = Actor::New();
-  actor.SetProperty( Actor::Property::OPACITY, 0.75f );
+  actor.SetProperty(Actor::Property::OPACITY, 0.75f);
   actor.AddRenderer(renderer);
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  Stage::GetCurrent().Add(actor);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  application.GetScene().Add(actor);
 
-  renderer.SetProperty( Renderer::Property::BLEND_MODE, BlendMode::AUTO);
+  renderer.SetProperty(Renderer::Property::BLEND_MODE, BlendMode::AUTO);
 
   TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
   glAbstraction.EnableEnableDisableCallTrace(true);
@@ -727,10 +900,10 @@ int UtcDaliRendererSetBlendMode03(void)
   application.SendNotification();
   application.Render();
 
-  TraceCallStack& glEnableStack = glAbstraction.GetEnableDisableTrace();
+  TraceCallStack&    glEnableStack = glAbstraction.GetEnableDisableTrace();
   std::ostringstream blendStr;
   blendStr << GL_BLEND;
-  DALI_TEST_CHECK( glEnableStack.FindMethodAndParams( "Enable", blendStr.str().c_str() ) );
+  DALI_TEST_CHECK(glEnableStack.FindMethodAndParams("Enable", blendStr.str().c_str()));
 
   END_TEST;
 }
@@ -742,15 +915,15 @@ int UtcDaliRendererSetBlendMode04(void)
   tet_infoline("Test setting the blend mode to auto with an opaque color renders with blending disabled");
 
   Geometry geometry = CreateQuadGeometry();
-  Shader shader = CreateShader();
-  Renderer renderer = Renderer::New( geometry, shader );
+  Shader   shader   = CreateShader();
+  Renderer renderer = Renderer::New(geometry, shader);
 
   Actor actor = Actor::New();
   actor.AddRenderer(renderer);
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  Stage::GetCurrent().Add(actor);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  application.GetScene().Add(actor);
 
-  renderer.SetProperty( Renderer::Property::BLEND_MODE, BlendMode::AUTO);
+  renderer.SetProperty(Renderer::Property::BLEND_MODE, BlendMode::AUTO);
 
   TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
   glAbstraction.EnableEnableDisableCallTrace(true);
@@ -758,10 +931,10 @@ int UtcDaliRendererSetBlendMode04(void)
   application.SendNotification();
   application.Render();
 
-  TraceCallStack& glEnableStack = glAbstraction.GetEnableDisableTrace();
+  TraceCallStack&    glEnableStack = glAbstraction.GetEnableDisableTrace();
   std::ostringstream blendStr;
   blendStr << GL_BLEND;
-  DALI_TEST_CHECK( ! glEnableStack.FindMethodAndParams( "Enable", blendStr.str().c_str() ) );
+  DALI_TEST_CHECK(!glEnableStack.FindMethodAndParams("Enable", blendStr.str().c_str()));
 
   END_TEST;
 }
@@ -773,16 +946,16 @@ int UtcDaliRendererSetBlendMode04b(void)
   tet_infoline("Test setting the blend mode to auto with a transparent actor color renders with blending enabled");
 
   Geometry geometry = CreateQuadGeometry();
-  Shader shader = CreateShader();
-  Renderer renderer = Renderer::New( geometry, shader );
+  Shader   shader   = CreateShader();
+  Renderer renderer = Renderer::New(geometry, shader);
 
   Actor actor = Actor::New();
   actor.AddRenderer(renderer);
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  actor.SetProperty( Actor::Property::COLOR, Vector4(1.0f, 0.0f, 1.0f, 0.5f) );
-  Stage::GetCurrent().Add(actor);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  actor.SetProperty(Actor::Property::COLOR, Vector4(1.0f, 0.0f, 1.0f, 0.5f));
+  application.GetScene().Add(actor);
 
-  renderer.SetProperty( Renderer::Property::BLEND_MODE, BlendMode::AUTO);
+  renderer.SetProperty(Renderer::Property::BLEND_MODE, BlendMode::AUTO);
 
   TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
   glAbstraction.EnableEnableDisableCallTrace(true);
@@ -790,10 +963,10 @@ int UtcDaliRendererSetBlendMode04b(void)
   application.SendNotification();
   application.Render();
 
-  TraceCallStack& glEnableStack = glAbstraction.GetEnableDisableTrace();
+  TraceCallStack&    glEnableStack = glAbstraction.GetEnableDisableTrace();
   std::ostringstream blendStr;
   blendStr << GL_BLEND;
-  DALI_TEST_CHECK( glEnableStack.FindMethodAndParams( "Enable", blendStr.str().c_str() ) );
+  DALI_TEST_CHECK(glEnableStack.FindMethodAndParams("Enable", blendStr.str().c_str()));
 
   END_TEST;
 }
@@ -805,16 +978,16 @@ int UtcDaliRendererSetBlendMode04c(void)
   tet_infoline("Test setting the blend mode to auto with an opaque opaque actor color renders with blending disabled");
 
   Geometry geometry = CreateQuadGeometry();
-  Shader shader = CreateShader();
-  Renderer renderer = Renderer::New( geometry, shader );
+  Shader   shader   = CreateShader();
+  Renderer renderer = Renderer::New(geometry, shader);
 
   Actor actor = Actor::New();
   actor.AddRenderer(renderer);
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  actor.SetProperty( Actor::Property::COLOR, Color::MAGENTA );
-  Stage::GetCurrent().Add(actor);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  actor.SetProperty(Actor::Property::COLOR, Color::MAGENTA);
+  application.GetScene().Add(actor);
 
-  renderer.SetProperty( Renderer::Property::BLEND_MODE, BlendMode::AUTO);
+  renderer.SetProperty(Renderer::Property::BLEND_MODE, BlendMode::AUTO);
 
   TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
   glAbstraction.EnableEnableDisableCallTrace(true);
@@ -822,10 +995,10 @@ int UtcDaliRendererSetBlendMode04c(void)
   application.SendNotification();
   application.Render();
 
-  TraceCallStack& glEnableStack = glAbstraction.GetEnableDisableTrace();
+  TraceCallStack&    glEnableStack = glAbstraction.GetEnableDisableTrace();
   std::ostringstream blendStr;
   blendStr << GL_BLEND;
-  DALI_TEST_CHECK( ! glEnableStack.FindMethodAndParams( "Enable", blendStr.str().c_str() ) );
+  DALI_TEST_CHECK(!glEnableStack.FindMethodAndParams("Enable", blendStr.str().c_str()));
 
   END_TEST;
 }
@@ -837,19 +1010,19 @@ int UtcDaliRendererSetBlendMode05(void)
   tet_infoline("Test setting the blend mode to auto with an opaque color and an image with an alpha channel renders with blending enabled");
 
   Geometry geometry = CreateQuadGeometry();
-  Texture image = Texture::New(TextureType::TEXTURE_2D, Pixel::RGBA8888, 40, 40);
+  Texture  image    = Texture::New(TextureType::TEXTURE_2D, Pixel::RGBA8888, 40, 40);
 
-  Shader shader = CreateShader();
-  TextureSet textureSet = CreateTextureSet( image );
-  Renderer renderer = Renderer::New( geometry, shader );
-  renderer.SetTextures( textureSet );
+  Shader     shader     = CreateShader();
+  TextureSet textureSet = CreateTextureSet(image);
+  Renderer   renderer   = Renderer::New(geometry, shader);
+  renderer.SetTextures(textureSet);
 
   Actor actor = Actor::New();
   actor.AddRenderer(renderer);
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  Stage::GetCurrent().Add(actor);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  application.GetScene().Add(actor);
 
-  renderer.SetProperty( Renderer::Property::BLEND_MODE, BlendMode::AUTO);
+  renderer.SetProperty(Renderer::Property::BLEND_MODE, BlendMode::AUTO);
 
   TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
   glAbstraction.EnableEnableDisableCallTrace(true);
@@ -857,10 +1030,10 @@ int UtcDaliRendererSetBlendMode05(void)
   application.SendNotification();
   application.Render();
 
-  TraceCallStack& glEnableStack = glAbstraction.GetEnableDisableTrace();
+  TraceCallStack&    glEnableStack = glAbstraction.GetEnableDisableTrace();
   std::ostringstream blendStr;
   blendStr << GL_BLEND;
-  DALI_TEST_CHECK( glEnableStack.FindMethodAndParams( "Enable", blendStr.str().c_str() ) );
+  DALI_TEST_CHECK(glEnableStack.FindMethodAndParams("Enable", blendStr.str().c_str()));
 
   END_TEST;
 }
@@ -871,16 +1044,16 @@ int UtcDaliRendererSetBlendMode06(void)
   tet_infoline("Test setting the blend mode to auto with an opaque color and an image without an alpha channel and a shader with the hint OUTPUT_IS_TRANSPARENT renders with blending enabled");
 
   Geometry geometry = CreateQuadGeometry();
-  Shader shader = Shader::New( "vertexSrc", "fragmentSrc", Shader::Hint::OUTPUT_IS_TRANSPARENT );
+  Shader   shader   = Shader::New("vertexSrc", "fragmentSrc", Shader::Hint::OUTPUT_IS_TRANSPARENT);
 
-  Renderer renderer = Renderer::New( geometry, shader );
+  Renderer renderer = Renderer::New(geometry, shader);
 
   Actor actor = Actor::New();
   actor.AddRenderer(renderer);
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  Stage::GetCurrent().Add(actor);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  application.GetScene().Add(actor);
 
-  renderer.SetProperty( Renderer::Property::BLEND_MODE, BlendMode::AUTO);
+  renderer.SetProperty(Renderer::Property::BLEND_MODE, BlendMode::AUTO);
 
   TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
   glAbstraction.EnableEnableDisableCallTrace(true);
@@ -888,10 +1061,10 @@ int UtcDaliRendererSetBlendMode06(void)
   application.SendNotification();
   application.Render();
 
-  TraceCallStack& glEnableStack = glAbstraction.GetEnableDisableTrace();
+  TraceCallStack&    glEnableStack = glAbstraction.GetEnableDisableTrace();
   std::ostringstream blendStr;
   blendStr << GL_BLEND;
-  DALI_TEST_CHECK( glEnableStack.FindMethodAndParams( "Enable", blendStr.str().c_str() ) );
+  DALI_TEST_CHECK(glEnableStack.FindMethodAndParams("Enable", blendStr.str().c_str()));
 
   END_TEST;
 }
@@ -902,19 +1075,19 @@ int UtcDaliRendererSetBlendMode07(void)
   tet_infoline("Test setting the blend mode to auto with an opaque color and an image without an alpha channel and a shader with the hint OUTPUT_IS_OPAQUE renders with blending disabled");
 
   Geometry geometry = CreateQuadGeometry();
-  Shader shader = Shader::New( "vertexSrc", "fragmentSrc" );
+  Shader   shader   = Shader::New("vertexSrc", "fragmentSrc");
 
-  Texture image = Texture::New(TextureType::TEXTURE_2D, Pixel::RGB888, 50, 50);
-  TextureSet textureSet = CreateTextureSet( image );
-  Renderer renderer = Renderer::New( geometry, shader );
-  renderer.SetTextures( textureSet );
+  Texture    image      = Texture::New(TextureType::TEXTURE_2D, Pixel::RGB888, 50, 50);
+  TextureSet textureSet = CreateTextureSet(image);
+  Renderer   renderer   = Renderer::New(geometry, shader);
+  renderer.SetTextures(textureSet);
 
   Actor actor = Actor::New();
   actor.AddRenderer(renderer);
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  Stage::GetCurrent().Add(actor);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  application.GetScene().Add(actor);
 
-  renderer.SetProperty( Renderer::Property::BLEND_MODE, BlendMode::AUTO);
+  renderer.SetProperty(Renderer::Property::BLEND_MODE, BlendMode::AUTO);
 
   TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
   glAbstraction.EnableEnableDisableCallTrace(true);
@@ -923,7 +1096,81 @@ int UtcDaliRendererSetBlendMode07(void)
   application.Render();
 
   TraceCallStack& glEnableStack = glAbstraction.GetEnableDisableTrace();
-  DALI_TEST_CHECK( ! glEnableStack.FindMethodAndParams( "Enable", "GL_BLEND" ) );
+  DALI_TEST_CHECK(!glEnableStack.FindMethodAndParams("Enable", "GL_BLEND"));
+
+  END_TEST;
+}
+
+int UtcDaliRendererSetBlendMode08(void)
+{
+  TestApplication application;
+
+  tet_infoline("Test setting the blend mode to auto with opaque color and Advanced Blend Equation.");
+
+  if( Dali::Capabilities::IsBlendEquationSupported( DevelBlendEquation::SCREEN ) )
+  {
+    Geometry geometry = CreateQuadGeometry();
+    Shader   shader   = CreateShader();
+    Renderer renderer = Renderer::New(geometry, shader);
+
+    Actor actor = Actor::New();
+    actor.SetProperty(Actor::Property::OPACITY, 1.0f);
+    actor.AddRenderer(renderer);
+    actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+    application.GetScene().Add(actor);
+
+    renderer.SetProperty(Renderer::Property::BLEND_MODE, BlendMode::AUTO);
+    renderer.SetProperty( Renderer::Property::BLEND_PRE_MULTIPLIED_ALPHA, true );
+    renderer.SetProperty( DevelRenderer::Property::BLEND_EQUATION, DevelBlendEquation::SCREEN );
+
+    TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
+    glAbstraction.EnableEnableDisableCallTrace(true);
+
+    application.SendNotification();
+    application.Render();
+
+    TraceCallStack&    glEnableStack = glAbstraction.GetEnableDisableTrace();
+    std::ostringstream blendStr;
+    blendStr << GL_BLEND;
+    DALI_TEST_CHECK(glEnableStack.FindMethodAndParams("Enable", blendStr.str().c_str()));
+  }
+
+  END_TEST;
+}
+
+int UtcDaliRendererSetBlendMode08b(void)
+{
+  TestApplication application;
+
+  tet_infoline("Test setting the blend mode to off with opaque color and Advanced Blend Equation.");
+
+  if( Dali::Capabilities::IsBlendEquationSupported( DevelBlendEquation::SCREEN ) )
+  {
+    Geometry geometry = CreateQuadGeometry();
+    Shader   shader   = CreateShader();
+    Renderer renderer = Renderer::New(geometry, shader);
+
+    Actor actor = Actor::New();
+    actor.SetProperty(Actor::Property::OPACITY, 1.0f);
+    actor.AddRenderer(renderer);
+    actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+    application.GetScene().Add(actor);
+
+    renderer.SetProperty(Renderer::Property::BLEND_MODE, BlendMode::OFF);
+    renderer.SetProperty( Renderer::Property::BLEND_PRE_MULTIPLIED_ALPHA, true );
+    renderer.SetProperty( DevelRenderer::Property::BLEND_EQUATION, DevelBlendEquation::SCREEN );
+
+    TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
+    glAbstraction.EnableEnableDisableCallTrace(true);
+
+    application.SendNotification();
+    application.Render();
+
+    TraceCallStack&    glEnableStack = glAbstraction.GetEnableDisableTrace();
+    std::ostringstream blendStr;
+    blendStr << GL_BLEND;
+    DALI_TEST_CHECK(!glEnableStack.FindMethodAndParams("Enable", blendStr.str().c_str()));
+  }
 
   END_TEST;
 }
@@ -935,22 +1182,22 @@ int UtcDaliRendererGetBlendMode(void)
   tet_infoline("Test GetBlendMode()");
 
   Geometry geometry = CreateQuadGeometry();
-  Shader shader = Shader::New( "vertexSrc", "fragmentSrc" );
-  Renderer renderer = Renderer::New( geometry, shader );
+  Shader   shader   = Shader::New("vertexSrc", "fragmentSrc");
+  Renderer renderer = Renderer::New(geometry, shader);
 
   // default value
-  unsigned int mode = renderer.GetProperty<int>( Renderer::Property::BLEND_MODE );
-  DALI_TEST_EQUALS( static_cast< BlendMode::Type >( mode ), BlendMode::AUTO, TEST_LOCATION );
+  unsigned int mode = renderer.GetProperty<int>(Renderer::Property::BLEND_MODE);
+  DALI_TEST_EQUALS(static_cast<BlendMode::Type>(mode), BlendMode::AUTO, TEST_LOCATION);
 
   // ON
-  renderer.SetProperty( Renderer::Property::BLEND_MODE, BlendMode::ON );
-  mode = renderer.GetProperty<int>( Renderer::Property::BLEND_MODE );
-  DALI_TEST_EQUALS( static_cast< BlendMode::Type >( mode ), BlendMode::ON, TEST_LOCATION );
+  renderer.SetProperty(Renderer::Property::BLEND_MODE, BlendMode::ON);
+  mode = renderer.GetProperty<int>(Renderer::Property::BLEND_MODE);
+  DALI_TEST_EQUALS(static_cast<BlendMode::Type>(mode), BlendMode::ON, TEST_LOCATION);
 
   // OFF
-  renderer.SetProperty( Renderer::Property::BLEND_MODE, BlendMode::OFF );
-  mode = renderer.GetProperty<int>( Renderer::Property::BLEND_MODE );
-  DALI_TEST_EQUALS( static_cast< BlendMode::Type >( mode ), BlendMode::OFF, TEST_LOCATION );
+  renderer.SetProperty(Renderer::Property::BLEND_MODE, BlendMode::OFF);
+  mode = renderer.GetProperty<int>(Renderer::Property::BLEND_MODE);
+  DALI_TEST_EQUALS(static_cast<BlendMode::Type>(mode), BlendMode::OFF, TEST_LOCATION);
 
   END_TEST;
 }
@@ -961,46 +1208,46 @@ int UtcDaliRendererSetBlendColor(void)
 
   tet_infoline("Test SetBlendColor(color)");
 
-  Geometry geometry = CreateQuadGeometry();
-  Shader shader = Shader::New( "vertexSrc", "fragmentSrc" );
+  Geometry   geometry   = CreateQuadGeometry();
+  Shader     shader     = Shader::New("vertexSrc", "fragmentSrc");
   TextureSet textureSet = TextureSet::New();
-  Texture image = Texture::New(TextureType::TEXTURE_2D, Pixel::RGBA8888, 50, 50);
+  Texture    image      = Texture::New(TextureType::TEXTURE_2D, Pixel::RGBA8888, 50, 50);
   textureSet.SetTexture(0u, image);
-  Renderer renderer = Renderer::New( geometry, shader );
-  renderer.SetTextures( textureSet );
+  Renderer renderer = Renderer::New(geometry, shader);
+  renderer.SetTextures(textureSet);
 
   Actor actor = Actor::New();
   actor.AddRenderer(renderer);
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  Stage::GetCurrent().Add(actor);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  application.GetScene().Add(actor);
 
   TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
 
-  renderer.SetProperty( Renderer::Property::BLEND_COLOR, Color::TRANSPARENT );
+  renderer.SetProperty(Renderer::Property::BLEND_COLOR, Color::TRANSPARENT);
 
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( renderer.GetProperty< Vector4 >(Renderer::Property::BLEND_COLOR), Color::TRANSPARENT, TEST_LOCATION );
-  DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector4 >(Renderer::Property::BLEND_COLOR), Color::TRANSPARENT, TEST_LOCATION );
-  DALI_TEST_EQUALS( glAbstraction.GetLastBlendColor(), Color::TRANSPARENT, TEST_LOCATION );
+  DALI_TEST_EQUALS(renderer.GetProperty<Vector4>(Renderer::Property::BLEND_COLOR), Color::TRANSPARENT, TEST_LOCATION);
+  DALI_TEST_EQUALS(renderer.GetCurrentProperty<Vector4>(Renderer::Property::BLEND_COLOR), Color::TRANSPARENT, TEST_LOCATION);
+  DALI_TEST_EQUALS(glAbstraction.GetLastBlendColor(), Color::TRANSPARENT, TEST_LOCATION);
 
-  renderer.SetProperty( Renderer::Property::BLEND_COLOR, Color::MAGENTA );
+  renderer.SetProperty(Renderer::Property::BLEND_COLOR, Color::MAGENTA);
 
-  DALI_TEST_EQUALS( renderer.GetProperty< Vector4 >(Renderer::Property::BLEND_COLOR), Color::MAGENTA, TEST_LOCATION );
-  DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector4 >(Renderer::Property::BLEND_COLOR), Color::TRANSPARENT, TEST_LOCATION );
+  DALI_TEST_EQUALS(renderer.GetProperty<Vector4>(Renderer::Property::BLEND_COLOR), Color::MAGENTA, TEST_LOCATION);
+  DALI_TEST_EQUALS(renderer.GetCurrentProperty<Vector4>(Renderer::Property::BLEND_COLOR), Color::TRANSPARENT, TEST_LOCATION);
 
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector4 >(Renderer::Property::BLEND_COLOR), Color::MAGENTA, TEST_LOCATION );
-  DALI_TEST_EQUALS( glAbstraction.GetLastBlendColor(), Color::MAGENTA, TEST_LOCATION );
+  DALI_TEST_EQUALS(renderer.GetCurrentProperty<Vector4>(Renderer::Property::BLEND_COLOR), Color::MAGENTA, TEST_LOCATION);
+  DALI_TEST_EQUALS(glAbstraction.GetLastBlendColor(), Color::MAGENTA, TEST_LOCATION);
 
-  Vector4 color( 0.1f, 0.2f, 0.3f, 0.4f );
-  renderer.SetProperty( Renderer::Property::BLEND_COLOR, color );
+  Vector4 color(0.1f, 0.2f, 0.3f, 0.4f);
+  renderer.SetProperty(Renderer::Property::BLEND_COLOR, color);
   application.SendNotification();
   application.Render();
-  DALI_TEST_EQUALS( glAbstraction.GetLastBlendColor(), color, TEST_LOCATION );
+  DALI_TEST_EQUALS(glAbstraction.GetLastBlendColor(), color, TEST_LOCATION);
 
   END_TEST;
 }
@@ -1012,21 +1259,21 @@ int UtcDaliRendererGetBlendColor(void)
   tet_infoline("Test GetBlendColor()");
 
   Geometry geometry = CreateQuadGeometry();
-  Shader shader = Shader::New( "vertexSrc", "fragmentSrc" );
-  Renderer renderer = Renderer::New( geometry, shader );
+  Shader   shader   = Shader::New("vertexSrc", "fragmentSrc");
+  Renderer renderer = Renderer::New(geometry, shader);
 
-  DALI_TEST_EQUALS( renderer.GetProperty<Vector4>( Renderer::Property::BLEND_COLOR ), Color::TRANSPARENT, TEST_LOCATION );
+  DALI_TEST_EQUALS(renderer.GetProperty<Vector4>(Renderer::Property::BLEND_COLOR), Color::TRANSPARENT, TEST_LOCATION);
 
-  renderer.SetProperty( Renderer::Property::BLEND_COLOR, Color::MAGENTA );
+  renderer.SetProperty(Renderer::Property::BLEND_COLOR, Color::MAGENTA);
   application.SendNotification();
   application.Render();
-  DALI_TEST_EQUALS( renderer.GetProperty<Vector4>( Renderer::Property::BLEND_COLOR ), Color::MAGENTA, TEST_LOCATION );
+  DALI_TEST_EQUALS(renderer.GetProperty<Vector4>(Renderer::Property::BLEND_COLOR), Color::MAGENTA, TEST_LOCATION);
 
-  Vector4 color( 0.1f, 0.2f, 0.3f, 0.4f );
-  renderer.SetProperty( Renderer::Property::BLEND_COLOR, color );
+  Vector4 color(0.1f, 0.2f, 0.3f, 0.4f);
+  renderer.SetProperty(Renderer::Property::BLEND_COLOR, color);
   application.SendNotification();
   application.Render();
-  DALI_TEST_EQUALS( renderer.GetProperty<Vector4>( Renderer::Property::BLEND_COLOR ), color, TEST_LOCATION );
+  DALI_TEST_EQUALS(renderer.GetProperty<Vector4>(Renderer::Property::BLEND_COLOR), color, TEST_LOCATION);
 
   END_TEST;
 }
@@ -1038,91 +1285,91 @@ int UtcDaliRendererPreMultipledAlpha(void)
   tet_infoline("Test BLEND_PRE_MULTIPLIED_ALPHA property");
 
   Geometry geometry = CreateQuadGeometry();
-  Shader shader = Shader::New( "vertexSrc", "fragmentSrc" );
-  Renderer renderer = Renderer::New( geometry, shader );
+  Shader   shader   = Shader::New("vertexSrc", "fragmentSrc");
+  Renderer renderer = Renderer::New(geometry, shader);
 
   Actor actor = Actor::New();
   actor.AddRenderer(renderer);
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  actor.SetProperty( Actor::Property::COLOR, Vector4(1.0f, 0.0f, 1.0f, 0.5f) );
-  Stage::GetCurrent().Add(actor);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  actor.SetProperty(Actor::Property::COLOR, Vector4(1.0f, 0.0f, 1.0f, 0.5f));
+  application.GetScene().Add(actor);
 
-  Property::Value value = renderer.GetProperty( Renderer::Property::BLEND_PRE_MULTIPLIED_ALPHA );
-  bool preMultipliedAlpha;
-  DALI_TEST_CHECK( value.Get( preMultipliedAlpha ) );
-  DALI_TEST_CHECK( !preMultipliedAlpha );
+  Property::Value value = renderer.GetProperty(Renderer::Property::BLEND_PRE_MULTIPLIED_ALPHA);
+  bool            preMultipliedAlpha;
+  DALI_TEST_CHECK(value.Get(preMultipliedAlpha));
+  DALI_TEST_CHECK(!preMultipliedAlpha);
 
-  int srcFactorRgb    = renderer.GetProperty<int>( Renderer::Property::BLEND_FACTOR_SRC_RGB );
-  int destFactorRgb   = renderer.GetProperty<int>( Renderer::Property::BLEND_FACTOR_DEST_RGB );
-  int srcFactorAlpha  = renderer.GetProperty<int>( Renderer::Property::BLEND_FACTOR_SRC_ALPHA );
-  int destFactorAlpha = renderer.GetProperty<int>( Renderer::Property::BLEND_FACTOR_DEST_ALPHA );
+  int srcFactorRgb    = renderer.GetProperty<int>(Renderer::Property::BLEND_FACTOR_SRC_RGB);
+  int destFactorRgb   = renderer.GetProperty<int>(Renderer::Property::BLEND_FACTOR_DEST_RGB);
+  int srcFactorAlpha  = renderer.GetProperty<int>(Renderer::Property::BLEND_FACTOR_SRC_ALPHA);
+  int destFactorAlpha = renderer.GetProperty<int>(Renderer::Property::BLEND_FACTOR_DEST_ALPHA);
 
-  DALI_TEST_EQUALS( (int)DEFAULT_BLEND_FACTOR_SRC_RGB,    srcFactorRgb,    TEST_LOCATION );
-  DALI_TEST_EQUALS( (int)DEFAULT_BLEND_FACTOR_DEST_RGB,   destFactorRgb,   TEST_LOCATION );
-  DALI_TEST_EQUALS( (int)DEFAULT_BLEND_FACTOR_SRC_ALPHA,  srcFactorAlpha,  TEST_LOCATION );
-  DALI_TEST_EQUALS( (int)DEFAULT_BLEND_FACTOR_DEST_ALPHA, destFactorAlpha, TEST_LOCATION );
+  DALI_TEST_EQUALS((int)DEFAULT_BLEND_FACTOR_SRC_RGB, srcFactorRgb, TEST_LOCATION);
+  DALI_TEST_EQUALS((int)DEFAULT_BLEND_FACTOR_DEST_RGB, destFactorRgb, TEST_LOCATION);
+  DALI_TEST_EQUALS((int)DEFAULT_BLEND_FACTOR_SRC_ALPHA, srcFactorAlpha, TEST_LOCATION);
+  DALI_TEST_EQUALS((int)DEFAULT_BLEND_FACTOR_DEST_ALPHA, destFactorAlpha, TEST_LOCATION);
 
   application.SendNotification();
   application.Render();
 
-  Vector4 actualValue(Vector4::ZERO);
+  Vector4            actualValue(Vector4::ZERO);
   TestGlAbstraction& gl = application.GetGlAbstraction();
-  DALI_TEST_CHECK( gl.GetUniformValue<Vector4>( "uColor", actualValue ) );
-  DALI_TEST_EQUALS( actualValue, Vector4(1.0f, 0.0f, 1.0f, 0.5f), TEST_LOCATION );
+  DALI_TEST_CHECK(gl.GetUniformValue<Vector4>("uColor", actualValue));
+  DALI_TEST_EQUALS(actualValue, Vector4(1.0f, 0.0f, 1.0f, 0.5f), TEST_LOCATION);
 
   // Enable pre-multiplied alpha
-  renderer.SetProperty( Renderer::Property::BLEND_PRE_MULTIPLIED_ALPHA, true );
+  renderer.SetProperty(Renderer::Property::BLEND_PRE_MULTIPLIED_ALPHA, true);
 
   application.SendNotification();
   application.Render();
 
-  value = renderer.GetProperty( Renderer::Property::BLEND_PRE_MULTIPLIED_ALPHA );
-  DALI_TEST_CHECK( value.Get( preMultipliedAlpha ) );
-  DALI_TEST_CHECK( preMultipliedAlpha );
+  value = renderer.GetProperty(Renderer::Property::BLEND_PRE_MULTIPLIED_ALPHA);
+  DALI_TEST_CHECK(value.Get(preMultipliedAlpha));
+  DALI_TEST_CHECK(preMultipliedAlpha);
 
-  value = renderer.GetCurrentProperty( Renderer::Property::BLEND_PRE_MULTIPLIED_ALPHA );
-  DALI_TEST_CHECK( value.Get( preMultipliedAlpha ) );
-  DALI_TEST_CHECK( preMultipliedAlpha );
+  value = renderer.GetCurrentProperty(Renderer::Property::BLEND_PRE_MULTIPLIED_ALPHA);
+  DALI_TEST_CHECK(value.Get(preMultipliedAlpha));
+  DALI_TEST_CHECK(preMultipliedAlpha);
 
-  srcFactorRgb    = renderer.GetProperty<int>( Renderer::Property::BLEND_FACTOR_SRC_RGB );
-  destFactorRgb   = renderer.GetProperty<int>( Renderer::Property::BLEND_FACTOR_DEST_RGB );
-  srcFactorAlpha  = renderer.GetProperty<int>( Renderer::Property::BLEND_FACTOR_SRC_ALPHA );
-  destFactorAlpha = renderer.GetProperty<int>( Renderer::Property::BLEND_FACTOR_DEST_ALPHA );
+  srcFactorRgb    = renderer.GetProperty<int>(Renderer::Property::BLEND_FACTOR_SRC_RGB);
+  destFactorRgb   = renderer.GetProperty<int>(Renderer::Property::BLEND_FACTOR_DEST_RGB);
+  srcFactorAlpha  = renderer.GetProperty<int>(Renderer::Property::BLEND_FACTOR_SRC_ALPHA);
+  destFactorAlpha = renderer.GetProperty<int>(Renderer::Property::BLEND_FACTOR_DEST_ALPHA);
 
-  DALI_TEST_EQUALS( (int)BlendFactor::ONE,                 srcFactorRgb,    TEST_LOCATION );
-  DALI_TEST_EQUALS( (int)BlendFactor::ONE_MINUS_SRC_ALPHA, destFactorRgb,   TEST_LOCATION );
-  DALI_TEST_EQUALS( (int)BlendFactor::ONE,                 srcFactorAlpha,  TEST_LOCATION );
-  DALI_TEST_EQUALS( (int)BlendFactor::ONE_MINUS_SRC_ALPHA, destFactorAlpha, TEST_LOCATION );
+  DALI_TEST_EQUALS((int)BlendFactor::ONE, srcFactorRgb, TEST_LOCATION);
+  DALI_TEST_EQUALS((int)BlendFactor::ONE_MINUS_SRC_ALPHA, destFactorRgb, TEST_LOCATION);
+  DALI_TEST_EQUALS((int)BlendFactor::ONE, srcFactorAlpha, TEST_LOCATION);
+  DALI_TEST_EQUALS((int)BlendFactor::ONE_MINUS_SRC_ALPHA, destFactorAlpha, TEST_LOCATION);
 
-  DALI_TEST_CHECK( gl.GetUniformValue<Vector4>( "uColor", actualValue ) );
-  DALI_TEST_EQUALS( actualValue, Vector4(0.5f, 0.0f, 0.5f, 0.5f), TEST_LOCATION );
+  DALI_TEST_CHECK(gl.GetUniformValue<Vector4>("uColor", actualValue));
+  DALI_TEST_EQUALS(actualValue, Vector4(0.5f, 0.0f, 0.5f, 0.5f), TEST_LOCATION);
 
   // Disable pre-multiplied alpha again
-  renderer.SetProperty( Renderer::Property::BLEND_PRE_MULTIPLIED_ALPHA, false );
+  renderer.SetProperty(Renderer::Property::BLEND_PRE_MULTIPLIED_ALPHA, false);
 
   application.SendNotification();
   application.Render();
 
-  value = renderer.GetProperty( Renderer::Property::BLEND_PRE_MULTIPLIED_ALPHA );
-  DALI_TEST_CHECK( value.Get( preMultipliedAlpha ) );
-  DALI_TEST_CHECK( !preMultipliedAlpha );
+  value = renderer.GetProperty(Renderer::Property::BLEND_PRE_MULTIPLIED_ALPHA);
+  DALI_TEST_CHECK(value.Get(preMultipliedAlpha));
+  DALI_TEST_CHECK(!preMultipliedAlpha);
 
-  value = renderer.GetCurrentProperty( Renderer::Property::BLEND_PRE_MULTIPLIED_ALPHA );
-  DALI_TEST_CHECK( value.Get( preMultipliedAlpha ) );
-  DALI_TEST_CHECK( !preMultipliedAlpha );
+  value = renderer.GetCurrentProperty(Renderer::Property::BLEND_PRE_MULTIPLIED_ALPHA);
+  DALI_TEST_CHECK(value.Get(preMultipliedAlpha));
+  DALI_TEST_CHECK(!preMultipliedAlpha);
 
-  srcFactorRgb    = renderer.GetProperty<int>( Renderer::Property::BLEND_FACTOR_SRC_RGB );
-  destFactorRgb   = renderer.GetProperty<int>( Renderer::Property::BLEND_FACTOR_DEST_RGB );
-  srcFactorAlpha  = renderer.GetProperty<int>( Renderer::Property::BLEND_FACTOR_SRC_ALPHA );
-  destFactorAlpha = renderer.GetProperty<int>( Renderer::Property::BLEND_FACTOR_DEST_ALPHA );
+  srcFactorRgb    = renderer.GetProperty<int>(Renderer::Property::BLEND_FACTOR_SRC_RGB);
+  destFactorRgb   = renderer.GetProperty<int>(Renderer::Property::BLEND_FACTOR_DEST_RGB);
+  srcFactorAlpha  = renderer.GetProperty<int>(Renderer::Property::BLEND_FACTOR_SRC_ALPHA);
+  destFactorAlpha = renderer.GetProperty<int>(Renderer::Property::BLEND_FACTOR_DEST_ALPHA);
 
-  DALI_TEST_EQUALS( (int)BlendFactor::SRC_ALPHA,           srcFactorRgb,    TEST_LOCATION );
-  DALI_TEST_EQUALS( (int)BlendFactor::ONE_MINUS_SRC_ALPHA, destFactorRgb,   TEST_LOCATION );
-  DALI_TEST_EQUALS( (int)BlendFactor::ONE,                 srcFactorAlpha,  TEST_LOCATION );
-  DALI_TEST_EQUALS( (int)BlendFactor::ONE_MINUS_SRC_ALPHA, destFactorAlpha, TEST_LOCATION );
+  DALI_TEST_EQUALS((int)BlendFactor::SRC_ALPHA, srcFactorRgb, TEST_LOCATION);
+  DALI_TEST_EQUALS((int)BlendFactor::ONE_MINUS_SRC_ALPHA, destFactorRgb, TEST_LOCATION);
+  DALI_TEST_EQUALS((int)BlendFactor::ONE, srcFactorAlpha, TEST_LOCATION);
+  DALI_TEST_EQUALS((int)BlendFactor::ONE_MINUS_SRC_ALPHA, destFactorAlpha, TEST_LOCATION);
 
-  DALI_TEST_CHECK( gl.GetUniformValue<Vector4>( "uColor", actualValue ) );
-  DALI_TEST_EQUALS( actualValue, Vector4( 1.0f, 0.0f, 1.0f, 0.5f ), TEST_LOCATION );
+  DALI_TEST_CHECK(gl.GetUniformValue<Vector4>("uColor", actualValue));
+  DALI_TEST_EQUALS(actualValue, Vector4(1.0f, 0.0f, 1.0f, 0.5f), TEST_LOCATION);
 
   END_TEST;
 }
@@ -1133,38 +1380,38 @@ int UtcDaliRendererConstraint01(void)
 
   tet_infoline("Test that a non-uniform renderer property can be constrained");
 
-  Shader shader = Shader::New("VertexSource", "FragmentSource");
+  Shader   shader   = Shader::New("VertexSource", "FragmentSource");
   Geometry geometry = CreateQuadGeometry();
-  Renderer renderer = Renderer::New( geometry, shader );
+  Renderer renderer = Renderer::New(geometry, shader);
 
   Actor actor = Actor::New();
   actor.AddRenderer(renderer);
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  Stage::GetCurrent().Add(actor);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  application.GetScene().Add(actor);
 
-  Vector4 initialColor = Color::WHITE;
-  Property::Index colorIndex = renderer.RegisterProperty( "uFadeColor", initialColor );
+  Vector4         initialColor = Color::WHITE;
+  Property::Index colorIndex   = renderer.RegisterProperty("uFadeColor", initialColor);
 
   application.SendNotification();
   application.Render(0);
-  DALI_TEST_EQUALS( renderer.GetProperty<Vector4>(colorIndex), initialColor, TEST_LOCATION );
+  DALI_TEST_EQUALS(renderer.GetProperty<Vector4>(colorIndex), initialColor, TEST_LOCATION);
 
   // Apply constraint
-  Constraint constraint = Constraint::New<Vector4>( renderer, colorIndex, TestConstraintNoBlue );
+  Constraint constraint = Constraint::New<Vector4>(renderer, colorIndex, TestConstraintNoBlue);
   constraint.Apply();
   application.SendNotification();
   application.Render(0);
 
   // Expect no blue component in either buffer - yellow
-  DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector4 >( colorIndex ), Color::YELLOW, TEST_LOCATION );
+  DALI_TEST_EQUALS(renderer.GetCurrentProperty<Vector4>(colorIndex), Color::YELLOW, TEST_LOCATION);
   application.Render(0);
-  DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector4 >( colorIndex ), Color::YELLOW, TEST_LOCATION );
+  DALI_TEST_EQUALS(renderer.GetCurrentProperty<Vector4>(colorIndex), Color::YELLOW, TEST_LOCATION);
 
   renderer.RemoveConstraints();
-  renderer.SetProperty(colorIndex, Color::WHITE );
+  renderer.SetProperty(colorIndex, Color::WHITE);
   application.SendNotification();
   application.Render(0);
-  DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector4 >( colorIndex ), Color::WHITE, TEST_LOCATION );
+  DALI_TEST_EQUALS(renderer.GetCurrentProperty<Vector4>(colorIndex), Color::WHITE, TEST_LOCATION);
 
   END_TEST;
 }
@@ -1175,19 +1422,19 @@ int UtcDaliRendererConstraint02(void)
 
   tet_infoline("Test that a uniform map renderer property can be constrained");
 
-  Shader shader = Shader::New("VertexSource", "FragmentSource");
+  Shader   shader   = Shader::New("VertexSource", "FragmentSource");
   Geometry geometry = CreateQuadGeometry();
-  Renderer renderer = Renderer::New( geometry, shader );
+  Renderer renderer = Renderer::New(geometry, shader);
 
   Actor actor = Actor::New();
   actor.AddRenderer(renderer);
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  Stage::GetCurrent().Add(actor);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  application.GetScene().Add(actor);
   application.SendNotification();
   application.Render(0);
 
-  Vector4 initialColor = Color::WHITE;
-  Property::Index colorIndex = renderer.RegisterProperty( "uFadeColor", initialColor );
+  Vector4         initialColor = Color::WHITE;
+  Property::Index colorIndex   = renderer.RegisterProperty("uFadeColor", initialColor);
 
   TestGlAbstraction& gl = application.GetGlAbstraction();
 
@@ -1195,30 +1442,30 @@ int UtcDaliRendererConstraint02(void)
   application.Render(0);
 
   Vector4 actualValue(Vector4::ZERO);
-  DALI_TEST_CHECK( gl.GetUniformValue<Vector4>( "uFadeColor", actualValue ) );
-  DALI_TEST_EQUALS( actualValue, initialColor, TEST_LOCATION );
+  DALI_TEST_CHECK(gl.GetUniformValue<Vector4>("uFadeColor", actualValue));
+  DALI_TEST_EQUALS(actualValue, initialColor, TEST_LOCATION);
 
   // Apply constraint
-  Constraint constraint = Constraint::New<Vector4>( renderer, colorIndex, TestConstraintNoBlue );
+  Constraint constraint = Constraint::New<Vector4>(renderer, colorIndex, TestConstraintNoBlue);
   constraint.Apply();
   application.SendNotification();
   application.Render(0);
 
-   // Expect no blue component in either buffer - yellow
-  DALI_TEST_CHECK( gl.GetUniformValue<Vector4>( "uFadeColor", actualValue ) );
-  DALI_TEST_EQUALS( actualValue, Color::YELLOW, TEST_LOCATION );
+  // Expect no blue component in either buffer - yellow
+  DALI_TEST_CHECK(gl.GetUniformValue<Vector4>("uFadeColor", actualValue));
+  DALI_TEST_EQUALS(actualValue, Color::YELLOW, TEST_LOCATION);
 
   application.Render(0);
-  DALI_TEST_CHECK( gl.GetUniformValue<Vector4>( "uFadeColor", actualValue ) );
-  DALI_TEST_EQUALS( actualValue, Color::YELLOW, TEST_LOCATION );
+  DALI_TEST_CHECK(gl.GetUniformValue<Vector4>("uFadeColor", actualValue));
+  DALI_TEST_EQUALS(actualValue, Color::YELLOW, TEST_LOCATION);
 
   renderer.RemoveConstraints();
-  renderer.SetProperty(colorIndex, Color::WHITE );
+  renderer.SetProperty(colorIndex, Color::WHITE);
   application.SendNotification();
   application.Render(0);
 
-  DALI_TEST_CHECK( gl.GetUniformValue<Vector4>( "uFadeColor", actualValue ) );
-  DALI_TEST_EQUALS( actualValue, Color::WHITE, TEST_LOCATION );
+  DALI_TEST_CHECK(gl.GetUniformValue<Vector4>("uFadeColor", actualValue));
+  DALI_TEST_EQUALS(actualValue, Color::WHITE, TEST_LOCATION);
 
   END_TEST;
 }
@@ -1229,37 +1476,37 @@ int UtcDaliRendererAnimatedProperty01(void)
 
   tet_infoline("Test that a non-uniform renderer property can be animated");
 
-  Shader shader = Shader::New("VertexSource", "FragmentSource");
+  Shader   shader   = Shader::New("VertexSource", "FragmentSource");
   Geometry geometry = CreateQuadGeometry();
-  Renderer renderer = Renderer::New( geometry, shader );
+  Renderer renderer = Renderer::New(geometry, shader);
 
   Actor actor = Actor::New();
   actor.AddRenderer(renderer);
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  Stage::GetCurrent().Add(actor);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  application.GetScene().Add(actor);
 
-  Vector4 initialColor = Color::WHITE;
-  Property::Index colorIndex = renderer.RegisterProperty( "uFadeColor", initialColor );
+  Vector4         initialColor = Color::WHITE;
+  Property::Index colorIndex   = renderer.RegisterProperty("uFadeColor", initialColor);
 
   application.SendNotification();
   application.Render(0);
-  DALI_TEST_EQUALS( renderer.GetProperty<Vector4>(colorIndex), initialColor, TEST_LOCATION );
+  DALI_TEST_EQUALS(renderer.GetProperty<Vector4>(colorIndex), initialColor, TEST_LOCATION);
 
-  Animation  animation = Animation::New(1.0f);
+  Animation animation = Animation::New(1.0f);
   KeyFrames keyFrames = KeyFrames::New();
   keyFrames.Add(0.0f, initialColor);
   keyFrames.Add(1.0f, Color::TRANSPARENT);
-  animation.AnimateBetween( Property( renderer, colorIndex ), keyFrames );
+  animation.AnimateBetween(Property(renderer, colorIndex), keyFrames);
   animation.Play();
 
   application.SendNotification();
   application.Render(500);
 
-  DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector4 >( colorIndex ), Color::WHITE * 0.5f, TEST_LOCATION );
+  DALI_TEST_EQUALS(renderer.GetCurrentProperty<Vector4>(colorIndex), Color::WHITE * 0.5f, TEST_LOCATION);
 
   application.Render(500);
 
-  DALI_TEST_EQUALS( renderer.GetCurrentProperty< Vector4 >( colorIndex ), Color::TRANSPARENT, TEST_LOCATION );
+  DALI_TEST_EQUALS(renderer.GetCurrentProperty<Vector4>(colorIndex), Color::TRANSPARENT, TEST_LOCATION);
 
   END_TEST;
 }
@@ -1270,19 +1517,19 @@ int UtcDaliRendererAnimatedProperty02(void)
 
   tet_infoline("Test that a uniform map renderer property can be animated");
 
-  Shader shader = Shader::New("VertexSource", "FragmentSource");
+  Shader   shader   = Shader::New("VertexSource", "FragmentSource");
   Geometry geometry = CreateQuadGeometry();
-  Renderer renderer = Renderer::New( geometry, shader );
+  Renderer renderer = Renderer::New(geometry, shader);
 
   Actor actor = Actor::New();
   actor.AddRenderer(renderer);
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  Stage::GetCurrent().Add(actor);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  application.GetScene().Add(actor);
   application.SendNotification();
   application.Render(0);
 
-  Vector4 initialColor = Color::WHITE;
-  Property::Index colorIndex = renderer.RegisterProperty( "uFadeColor", initialColor );
+  Vector4         initialColor = Color::WHITE;
+  Property::Index colorIndex   = renderer.RegisterProperty("uFadeColor", initialColor);
 
   TestGlAbstraction& gl = application.GetGlAbstraction();
 
@@ -1290,25 +1537,25 @@ int UtcDaliRendererAnimatedProperty02(void)
   application.Render(0);
 
   Vector4 actualValue(Vector4::ZERO);
-  DALI_TEST_CHECK( gl.GetUniformValue<Vector4>( "uFadeColor", actualValue ) );
-  DALI_TEST_EQUALS( actualValue, initialColor, TEST_LOCATION );
+  DALI_TEST_CHECK(gl.GetUniformValue<Vector4>("uFadeColor", actualValue));
+  DALI_TEST_EQUALS(actualValue, initialColor, TEST_LOCATION);
 
-  Animation  animation = Animation::New(1.0f);
+  Animation animation = Animation::New(1.0f);
   KeyFrames keyFrames = KeyFrames::New();
   keyFrames.Add(0.0f, initialColor);
   keyFrames.Add(1.0f, Color::TRANSPARENT);
-  animation.AnimateBetween( Property( renderer, colorIndex ), keyFrames );
+  animation.AnimateBetween(Property(renderer, colorIndex), keyFrames);
   animation.Play();
 
   application.SendNotification();
   application.Render(500);
 
-  DALI_TEST_CHECK( gl.GetUniformValue<Vector4>( "uFadeColor", actualValue ) );
-  DALI_TEST_EQUALS( actualValue, Color::WHITE * 0.5f, TEST_LOCATION );
+  DALI_TEST_CHECK(gl.GetUniformValue<Vector4>("uFadeColor", actualValue));
+  DALI_TEST_EQUALS(actualValue, Color::WHITE * 0.5f, TEST_LOCATION);
 
   application.Render(500);
-  DALI_TEST_CHECK( gl.GetUniformValue<Vector4>( "uFadeColor", actualValue ) );
-  DALI_TEST_EQUALS( actualValue, Color::TRANSPARENT, TEST_LOCATION );
+  DALI_TEST_CHECK(gl.GetUniformValue<Vector4>("uFadeColor", actualValue));
+  DALI_TEST_EQUALS(actualValue, Color::TRANSPARENT, TEST_LOCATION);
 
   END_TEST;
 }
@@ -1321,23 +1568,23 @@ int UtcDaliRendererUniformMapPrecendence01(void)
 
   Texture image = Texture::New(TextureType::TEXTURE_2D, Pixel::RGBA8888, 64, 64);
 
-  Shader shader = Shader::New("VertexSource", "FragmentSource");
-  TextureSet textureSet = CreateTextureSet( image );
+  Shader     shader     = Shader::New("VertexSource", "FragmentSource");
+  TextureSet textureSet = CreateTextureSet(image);
 
   Geometry geometry = CreateQuadGeometry();
-  Renderer renderer = Renderer::New( geometry, shader );
-  renderer.SetTextures( textureSet );
+  Renderer renderer = Renderer::New(geometry, shader);
+  renderer.SetTextures(textureSet);
 
   Actor actor = Actor::New();
   actor.AddRenderer(renderer);
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  Stage::GetCurrent().Add(actor);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  application.GetScene().Add(actor);
   application.SendNotification();
   application.Render(0);
 
-  renderer.RegisterProperty( "uFadeColor", Color::RED );
-  actor.RegisterProperty( "uFadeColor", Color::GREEN );
-  Property::Index shaderFadeColorIndex = shader.RegisterProperty( "uFadeColor", Color::MAGENTA );
+  renderer.RegisterProperty("uFadeColor", Color::RED);
+  actor.RegisterProperty("uFadeColor", Color::GREEN);
+  Property::Index shaderFadeColorIndex = shader.RegisterProperty("uFadeColor", Color::MAGENTA);
 
   TestGlAbstraction& gl = application.GetGlAbstraction();
 
@@ -1346,26 +1593,26 @@ int UtcDaliRendererUniformMapPrecendence01(void)
 
   // Expect that the actor's fade color property is accessed
   Vector4 actualValue(Vector4::ZERO);
-  DALI_TEST_CHECK( gl.GetUniformValue<Vector4>( "uFadeColor", actualValue ) );
-  DALI_TEST_EQUALS( actualValue, Color::GREEN, TEST_LOCATION );
+  DALI_TEST_CHECK(gl.GetUniformValue<Vector4>("uFadeColor", actualValue));
+  DALI_TEST_EQUALS(actualValue, Color::GREEN, TEST_LOCATION);
 
   // Animate shader's fade color property. Should be no change to uniform
-  Animation  animation = Animation::New(1.0f);
+  Animation animation = Animation::New(1.0f);
   KeyFrames keyFrames = KeyFrames::New();
   keyFrames.Add(0.0f, Color::WHITE);
   keyFrames.Add(1.0f, Color::TRANSPARENT);
-  animation.AnimateBetween( Property( shader, shaderFadeColorIndex ), keyFrames );
+  animation.AnimateBetween(Property(shader, shaderFadeColorIndex), keyFrames);
   animation.Play();
 
   application.SendNotification();
   application.Render(500);
 
-  DALI_TEST_CHECK( gl.GetUniformValue<Vector4>( "uFadeColor", actualValue ) );
-  DALI_TEST_EQUALS( actualValue, Color::GREEN, TEST_LOCATION );
+  DALI_TEST_CHECK(gl.GetUniformValue<Vector4>("uFadeColor", actualValue));
+  DALI_TEST_EQUALS(actualValue, Color::GREEN, TEST_LOCATION);
 
   application.Render(500);
-  DALI_TEST_CHECK( gl.GetUniformValue<Vector4>( "uFadeColor", actualValue ) );
-  DALI_TEST_EQUALS( actualValue, Color::GREEN, TEST_LOCATION );
+  DALI_TEST_CHECK(gl.GetUniformValue<Vector4>("uFadeColor", actualValue));
+  DALI_TEST_EQUALS(actualValue, Color::GREEN, TEST_LOCATION);
 
   END_TEST;
 }
@@ -1378,23 +1625,23 @@ int UtcDaliRendererUniformMapPrecendence02(void)
 
   Texture image = Texture::New(TextureType::TEXTURE_2D, Pixel::RGBA8888, 64, 64);
 
-  Shader shader = Shader::New("VertexSource", "FragmentSource");
-  TextureSet textureSet = CreateTextureSet( image );
+  Shader     shader     = Shader::New("VertexSource", "FragmentSource");
+  TextureSet textureSet = CreateTextureSet(image);
 
   Geometry geometry = CreateQuadGeometry();
-  Renderer renderer = Renderer::New( geometry, shader );
-  renderer.SetTextures( textureSet );
+  Renderer renderer = Renderer::New(geometry, shader);
+  renderer.SetTextures(textureSet);
 
   Actor actor = Actor::New();
   actor.AddRenderer(renderer);
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  Stage::GetCurrent().Add(actor);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  application.GetScene().Add(actor);
   application.SendNotification();
   application.Render(0);
 
   // Don't add property / uniform map to renderer
-  actor.RegisterProperty( "uFadeColor", Color::GREEN );
-  Property::Index shaderFadeColorIndex = shader.RegisterProperty( "uFadeColor", Color::BLUE );
+  actor.RegisterProperty("uFadeColor", Color::GREEN);
+  Property::Index shaderFadeColorIndex = shader.RegisterProperty("uFadeColor", Color::BLUE);
 
   TestGlAbstraction& gl = application.GetGlAbstraction();
 
@@ -1403,31 +1650,30 @@ int UtcDaliRendererUniformMapPrecendence02(void)
 
   // Expect that the actor's fade color property is accessed
   Vector4 actualValue(Vector4::ZERO);
-  DALI_TEST_CHECK( gl.GetUniformValue<Vector4>( "uFadeColor", actualValue ) );
-  DALI_TEST_EQUALS( actualValue, Color::GREEN, TEST_LOCATION );
+  DALI_TEST_CHECK(gl.GetUniformValue<Vector4>("uFadeColor", actualValue));
+  DALI_TEST_EQUALS(actualValue, Color::GREEN, TEST_LOCATION);
 
   // Animate texture set's fade color property. Should be no change to uniform
-  Animation  animation = Animation::New(1.0f);
+  Animation animation = Animation::New(1.0f);
   KeyFrames keyFrames = KeyFrames::New();
   keyFrames.Add(0.0f, Color::WHITE);
   keyFrames.Add(1.0f, Color::TRANSPARENT);
-  animation.AnimateBetween( Property( shader, shaderFadeColorIndex ), keyFrames );
+  animation.AnimateBetween(Property(shader, shaderFadeColorIndex), keyFrames);
   animation.Play();
 
   application.SendNotification();
   application.Render(500);
 
-  DALI_TEST_CHECK( gl.GetUniformValue<Vector4>( "uFadeColor", actualValue ) );
-  DALI_TEST_EQUALS( actualValue, Color::GREEN, TEST_LOCATION );
+  DALI_TEST_CHECK(gl.GetUniformValue<Vector4>("uFadeColor", actualValue));
+  DALI_TEST_EQUALS(actualValue, Color::GREEN, TEST_LOCATION);
 
   application.Render(500);
-  DALI_TEST_CHECK( gl.GetUniformValue<Vector4>( "uFadeColor", actualValue ) );
-  DALI_TEST_EQUALS( actualValue, Color::GREEN, TEST_LOCATION );
+  DALI_TEST_CHECK(gl.GetUniformValue<Vector4>("uFadeColor", actualValue));
+  DALI_TEST_EQUALS(actualValue, Color::GREEN, TEST_LOCATION);
 
   END_TEST;
 }
 
-
 int UtcDaliRendererUniformMapPrecendence03(void)
 {
   TestApplication application;
@@ -1436,22 +1682,22 @@ int UtcDaliRendererUniformMapPrecendence03(void)
 
   Texture image = Texture::New(TextureType::TEXTURE_2D, Pixel::RGBA8888, 64, 64);
 
-  Shader shader = Shader::New("VertexSource", "FragmentSource");
-  TextureSet textureSet = CreateTextureSet( image );
+  Shader     shader     = Shader::New("VertexSource", "FragmentSource");
+  TextureSet textureSet = CreateTextureSet(image);
 
   Geometry geometry = CreateQuadGeometry();
-  Renderer renderer = Renderer::New( geometry, shader );
-  renderer.SetTextures( textureSet );
+  Renderer renderer = Renderer::New(geometry, shader);
+  renderer.SetTextures(textureSet);
 
   Actor actor = Actor::New();
   actor.AddRenderer(renderer);
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  Stage::GetCurrent().Add(actor);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  application.GetScene().Add(actor);
   application.SendNotification();
   application.Render(0);
 
   // Don't add property / uniform map to renderer or actor
-  shader.RegisterProperty( "uFadeColor", Color::BLACK );
+  shader.RegisterProperty("uFadeColor", Color::BLACK);
 
   TestGlAbstraction& gl = application.GetGlAbstraction();
 
@@ -1460,8 +1706,8 @@ int UtcDaliRendererUniformMapPrecendence03(void)
 
   // Expect that the shader's fade color property is accessed
   Vector4 actualValue(Vector4::ZERO);
-  DALI_TEST_CHECK( gl.GetUniformValue<Vector4>( "uFadeColor", actualValue ) );
-  DALI_TEST_EQUALS( actualValue, Color::BLACK, TEST_LOCATION );
+  DALI_TEST_CHECK(gl.GetUniformValue<Vector4>("uFadeColor", actualValue));
+  DALI_TEST_EQUALS(actualValue, Color::BLACK, TEST_LOCATION);
 
   END_TEST;
 }
@@ -1474,23 +1720,23 @@ int UtcDaliRendererUniformMapMultipleUniforms01(void)
 
   Texture image = Texture::New(TextureType::TEXTURE_2D, Pixel::RGBA8888, 64, 64);
 
-  Shader shader = Shader::New("VertexSource", "FragmentSource");
-  TextureSet textureSet = CreateTextureSet( image );
+  Shader     shader     = Shader::New("VertexSource", "FragmentSource");
+  TextureSet textureSet = CreateTextureSet(image);
 
   Geometry geometry = CreateQuadGeometry();
-  Renderer renderer = Renderer::New( geometry, shader );
-  renderer.SetTextures( textureSet );
+  Renderer renderer = Renderer::New(geometry, shader);
+  renderer.SetTextures(textureSet);
 
   Actor actor = Actor::New();
   actor.AddRenderer(renderer);
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  Stage::GetCurrent().Add(actor);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  application.GetScene().Add(actor);
   application.SendNotification();
   application.Render(0);
 
-  renderer.RegisterProperty( "uUniform1", Color::RED );
-  actor.RegisterProperty( "uUniform2", Color::GREEN );
-  shader.RegisterProperty( "uUniform3", Color::MAGENTA );
+  renderer.RegisterProperty("uUniform1", Color::RED);
+  actor.RegisterProperty("uUniform2", Color::GREEN);
+  shader.RegisterProperty("uUniform3", Color::MAGENTA);
 
   TestGlAbstraction& gl = application.GetGlAbstraction();
 
@@ -1499,16 +1745,16 @@ int UtcDaliRendererUniformMapMultipleUniforms01(void)
 
   // Expect that each of the object's uniforms are set
   Vector4 uniform1Value(Vector4::ZERO);
-  DALI_TEST_CHECK( gl.GetUniformValue<Vector4>( "uUniform1", uniform1Value ) );
-  DALI_TEST_EQUALS( uniform1Value, Color::RED, TEST_LOCATION );
+  DALI_TEST_CHECK(gl.GetUniformValue<Vector4>("uUniform1", uniform1Value));
+  DALI_TEST_EQUALS(uniform1Value, Color::RED, TEST_LOCATION);
 
   Vector4 uniform2Value(Vector4::ZERO);
-  DALI_TEST_CHECK( gl.GetUniformValue<Vector4>( "uUniform2", uniform2Value ) );
-  DALI_TEST_EQUALS( uniform2Value, Color::GREEN, TEST_LOCATION );
+  DALI_TEST_CHECK(gl.GetUniformValue<Vector4>("uUniform2", uniform2Value));
+  DALI_TEST_EQUALS(uniform2Value, Color::GREEN, TEST_LOCATION);
 
   Vector4 uniform3Value(Vector4::ZERO);
-  DALI_TEST_CHECK( gl.GetUniformValue<Vector4>( "uUniform3", uniform3Value ) );
-  DALI_TEST_EQUALS( uniform3Value, Color::MAGENTA, TEST_LOCATION );
+  DALI_TEST_CHECK(gl.GetUniformValue<Vector4>("uUniform3", uniform3Value));
+  DALI_TEST_EQUALS(uniform3Value, Color::MAGENTA, TEST_LOCATION);
 
   END_TEST;
 }
@@ -1521,28 +1767,28 @@ int UtcDaliRendererUniformMapMultipleUniforms02(void)
 
   Texture image = Texture::New(TextureType::TEXTURE_2D, Pixel::RGBA8888, 64, 64);
 
-  Shader shader = Shader::New("VertexSource", "FragmentSource");
-  TextureSet textureSet = CreateTextureSet( image );
+  Shader     shader     = Shader::New("VertexSource", "FragmentSource");
+  TextureSet textureSet = CreateTextureSet(image);
 
   Geometry geometry = CreateQuadGeometry();
-  Renderer renderer = Renderer::New( geometry, shader );
-  renderer.SetTextures( textureSet );
+  Renderer renderer = Renderer::New(geometry, shader);
+  renderer.SetTextures(textureSet);
 
   Actor actor = Actor::New();
   actor.AddRenderer(renderer);
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  Stage::GetCurrent().Add(actor);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  application.GetScene().Add(actor);
   application.SendNotification();
   application.Render(0);
 
   Property::Value value1(Color::RED);
-  renderer.RegisterProperty( "uFadeColor", value1 );
+  renderer.RegisterProperty("uFadeColor", value1);
 
   Property::Value value2(1.0f);
-  actor.RegisterProperty( "uFadeProgress", value2 );
+  actor.RegisterProperty("uFadeProgress", value2);
 
   Property::Value value3(Matrix3::IDENTITY);
-  shader.RegisterProperty( "uANormalMatrix", value3 );
+  shader.RegisterProperty("uANormalMatrix", value3);
 
   TestGlAbstraction& gl = application.GetGlAbstraction();
 
@@ -1551,43 +1797,41 @@ int UtcDaliRendererUniformMapMultipleUniforms02(void)
 
   // Expect that each of the object's uniforms are set
   Vector4 uniform1Value(Vector4::ZERO);
-  DALI_TEST_CHECK( gl.GetUniformValue<Vector4>( "uFadeColor", uniform1Value ) );
-  DALI_TEST_EQUALS( uniform1Value, value1.Get<Vector4>(), TEST_LOCATION );
+  DALI_TEST_CHECK(gl.GetUniformValue<Vector4>("uFadeColor", uniform1Value));
+  DALI_TEST_EQUALS(uniform1Value, value1.Get<Vector4>(), TEST_LOCATION);
 
   float uniform2Value(0.0f);
-  DALI_TEST_CHECK( gl.GetUniformValue<float>( "uFadeProgress", uniform2Value ) );
-  DALI_TEST_EQUALS( uniform2Value, value2.Get<float>(), TEST_LOCATION );
+  DALI_TEST_CHECK(gl.GetUniformValue<float>("uFadeProgress", uniform2Value));
+  DALI_TEST_EQUALS(uniform2Value, value2.Get<float>(), TEST_LOCATION);
 
   Matrix3 uniform3Value;
-  DALI_TEST_CHECK( gl.GetUniformValue<Matrix3>( "uANormalMatrix", uniform3Value ) );
-  DALI_TEST_EQUALS( uniform3Value, value3.Get<Matrix3>(), TEST_LOCATION );
+  DALI_TEST_CHECK(gl.GetUniformValue<Matrix3>("uANormalMatrix", uniform3Value));
+  DALI_TEST_EQUALS(uniform3Value, value3.Get<Matrix3>(), TEST_LOCATION);
 
   END_TEST;
 }
 
-
-Renderer CreateRenderer( Actor actor, Geometry geometry, Shader shader, int depthIndex )
+Renderer CreateRenderer(Actor actor, Geometry geometry, Shader shader, int depthIndex)
 {
-  Texture image0 = Texture::New(TextureType::TEXTURE_2D, Pixel::RGB888, 64, 64);
-  TextureSet textureSet0 = CreateTextureSet( image0 );
-  Renderer renderer0 = Renderer::New( geometry, shader );
-  renderer0.SetTextures( textureSet0 );
-  renderer0.SetProperty( Renderer::Property::DEPTH_INDEX, depthIndex );
+  Texture    image0      = Texture::New(TextureType::TEXTURE_2D, Pixel::RGB888, 64, 64);
+  TextureSet textureSet0 = CreateTextureSet(image0);
+  Renderer   renderer0   = Renderer::New(geometry, shader);
+  renderer0.SetTextures(textureSet0);
+  renderer0.SetProperty(Renderer::Property::DEPTH_INDEX, depthIndex);
   actor.AddRenderer(renderer0);
   return renderer0;
 }
 
-
-Actor CreateActor( Actor parent, int siblingOrder, const char* location )
+Actor CreateActor(Actor parent, int siblingOrder, const char* location)
 {
   Actor actor = Actor::New();
-  actor.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::CENTER);
-  actor.SetProperty( Actor::Property::PARENT_ORIGIN,AnchorPoint::CENTER);
-  actor.SetProperty( Actor::Property::POSITION, Vector2(0.0f,0.0f));
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) );
+  actor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
+  actor.SetProperty(Actor::Property::PARENT_ORIGIN, AnchorPoint::CENTER);
+  actor.SetProperty(Actor::Property::POSITION, Vector2(0.0f, 0.0f));
+  actor.SetProperty(Actor::Property::SIZE, Vector2(100.0f, 100.0f));
   parent.Add(actor);
-  actor.SetProperty( Dali::DevelActor::Property::SIBLING_ORDER, siblingOrder );
-  DALI_TEST_EQUALS( actor.GetProperty<int>( Dali::DevelActor::Property::SIBLING_ORDER), siblingOrder, TEST_INNER_LOCATION(location) );
+  actor.SetProperty(Dali::DevelActor::Property::SIBLING_ORDER, siblingOrder);
+  DALI_TEST_EQUALS(actor.GetProperty<int>(Dali::DevelActor::Property::SIBLING_ORDER), siblingOrder, TEST_INNER_LOCATION(location));
 
   return actor;
 }
@@ -1597,22 +1841,22 @@ int UtcDaliRendererRenderOrder2DLayer(void)
   TestApplication application;
   tet_infoline("Test the rendering order in a 2D layer is correct");
 
-  Shader shader = Shader::New("VertexSource", "FragmentSource");
+  Shader   shader   = Shader::New("VertexSource", "FragmentSource");
   Geometry geometry = CreateQuadGeometry();
 
-  Actor root = Stage::GetCurrent().GetRootLayer();
+  Actor root = application.GetScene().GetRootLayer();
 
-  Actor actor0 = CreateActor( root, 0, TEST_LOCATION );
-  Renderer renderer0 = CreateRenderer( actor0, geometry, shader, 0 );
+  Actor    actor0    = CreateActor(root, 0, TEST_LOCATION);
+  Renderer renderer0 = CreateRenderer(actor0, geometry, shader, 0);
 
-  Actor actor1 = CreateActor( root, 0, TEST_LOCATION );
-  Renderer renderer1 = CreateRenderer( actor1, geometry, shader, 0 );
+  Actor    actor1    = CreateActor(root, 0, TEST_LOCATION);
+  Renderer renderer1 = CreateRenderer(actor1, geometry, shader, 0);
 
-  Actor actor2 = CreateActor( root, 0, TEST_LOCATION );
-  Renderer renderer2 = CreateRenderer( actor2, geometry, shader, 0 );
+  Actor    actor2    = CreateActor(root, 0, TEST_LOCATION);
+  Renderer renderer2 = CreateRenderer(actor2, geometry, shader, 0);
 
-  Actor actor3 = CreateActor( root, 0, TEST_LOCATION );
-  Renderer renderer3 = CreateRenderer( actor3, geometry, shader, 0 );
+  Actor    actor3    = CreateActor(root, 0, TEST_LOCATION);
+  Renderer renderer3 = CreateRenderer(actor3, geometry, shader, 0);
 
   application.SendNotification();
   application.Render(0);
@@ -1645,21 +1889,21 @@ int UtcDaliRendererRenderOrder2DLayer(void)
   application.Render(0);
 
   int textureBindIndex[4];
-  for( unsigned int i(0); i<4; ++i )
+  for(unsigned int i(0); i < 4; ++i)
   {
     std::stringstream params;
-    params << GL_TEXTURE_2D<<", "<<i+1;
-    textureBindIndex[i] = gl.GetTextureTrace().FindIndexFromMethodAndParams("BindTexture", params.str() );
+    params << GL_TEXTURE_2D << ", " << i + 1;
+    textureBindIndex[i] = gl.GetTextureTrace().FindIndexFromMethodAndParams("BindTexture", params.str());
   }
 
   //Check that actor1 has been rendered after actor2
-  DALI_TEST_GREATER( textureBindIndex[1], textureBindIndex[2], TEST_LOCATION );
+  DALI_TEST_GREATER(textureBindIndex[1], textureBindIndex[2], TEST_LOCATION);
 
   //Check that actor0 has been rendered after actor1
-  DALI_TEST_GREATER( textureBindIndex[0], textureBindIndex[1], TEST_LOCATION );
+  DALI_TEST_GREATER(textureBindIndex[0], textureBindIndex[1], TEST_LOCATION);
 
   //Check that actor3 has been rendered after actor0
-  DALI_TEST_GREATER( textureBindIndex[3], textureBindIndex[0], TEST_LOCATION );
+  DALI_TEST_GREATER(textureBindIndex[3], textureBindIndex[0], TEST_LOCATION);
 
   END_TEST;
 }
@@ -1689,19 +1933,19 @@ int UtcDaliRendererRenderOrder2DLayerMultipleRenderers(void)
    *  Expected rendering order: renderer1 - renderer2 - renderer0 - renderer5 - renderer4 - renderer3
    */
 
-  Shader shader = Shader::New("VertexSource", "FragmentSource");
+  Shader   shader   = Shader::New("VertexSource", "FragmentSource");
   Geometry geometry = CreateQuadGeometry();
 
-  Actor root = Stage::GetCurrent().GetRootLayer();
+  Actor root = application.GetScene().GetRootLayer();
 
-  Actor actor0 = CreateActor( root, 0, TEST_LOCATION );
-  Actor actor1 = CreateActor( actor0, 0, TEST_LOCATION );
-  Renderer renderer0 = CreateRenderer( actor0, geometry, shader, 2 );
-  Renderer renderer1 = CreateRenderer( actor0, geometry, shader, 0 );
-  Renderer renderer2 = CreateRenderer( actor0, geometry, shader, 1 );
-  Renderer renderer3 = CreateRenderer( actor1, geometry, shader, 1 );
-  Renderer renderer4 = CreateRenderer( actor1, geometry, shader, 0 );
-  Renderer renderer5 = CreateRenderer( actor1, geometry, shader, -1 );
+  Actor    actor0    = CreateActor(root, 0, TEST_LOCATION);
+  Actor    actor1    = CreateActor(actor0, 0, TEST_LOCATION);
+  Renderer renderer0 = CreateRenderer(actor0, geometry, shader, 2);
+  Renderer renderer1 = CreateRenderer(actor0, geometry, shader, 0);
+  Renderer renderer2 = CreateRenderer(actor0, geometry, shader, 1);
+  Renderer renderer3 = CreateRenderer(actor1, geometry, shader, 1);
+  Renderer renderer4 = CreateRenderer(actor1, geometry, shader, 0);
+  Renderer renderer5 = CreateRenderer(actor1, geometry, shader, -1);
 
   application.SendNotification();
   application.Render(0);
@@ -1712,32 +1956,31 @@ int UtcDaliRendererRenderOrder2DLayerMultipleRenderers(void)
   application.Render(0);
 
   int textureBindIndex[6];
-  for( unsigned int i(0); i<6; ++i )
+  for(unsigned int i(0); i < 6; ++i)
   {
     std::stringstream params;
-    params << GL_TEXTURE_2D<<", "<<i+1;
-    textureBindIndex[i] = gl.GetTextureTrace().FindIndexFromMethodAndParams("BindTexture", params.str() );
+    params << GL_TEXTURE_2D << ", " << i + 1;
+    textureBindIndex[i] = gl.GetTextureTrace().FindIndexFromMethodAndParams("BindTexture", params.str());
   }
 
   //Check that renderer3 has been rendered after renderer4
-  DALI_TEST_GREATER( textureBindIndex[3], textureBindIndex[4], TEST_LOCATION );
+  DALI_TEST_GREATER(textureBindIndex[3], textureBindIndex[4], TEST_LOCATION);
 
   //Check that renderer0 has been rendered after renderer2
-  DALI_TEST_GREATER( textureBindIndex[4], textureBindIndex[5], TEST_LOCATION );
+  DALI_TEST_GREATER(textureBindIndex[4], textureBindIndex[5], TEST_LOCATION);
 
   //Check that renderer5 has been rendered after renderer2
-  DALI_TEST_GREATER( textureBindIndex[5], textureBindIndex[0], TEST_LOCATION );
+  DALI_TEST_GREATER(textureBindIndex[5], textureBindIndex[0], TEST_LOCATION);
 
   //Check that renderer0 has been rendered after renderer2
-  DALI_TEST_GREATER( textureBindIndex[0], textureBindIndex[2], TEST_LOCATION );
+  DALI_TEST_GREATER(textureBindIndex[0], textureBindIndex[2], TEST_LOCATION);
 
   //Check that renderer2 has been rendered after renderer1
-  DALI_TEST_GREATER( textureBindIndex[2], textureBindIndex[1], TEST_LOCATION );
+  DALI_TEST_GREATER(textureBindIndex[2], textureBindIndex[1], TEST_LOCATION);
 
   END_TEST;
 }
 
-
 int UtcDaliRendererRenderOrder2DLayerSiblingOrder(void)
 {
   TestApplication application;
@@ -1778,19 +2021,19 @@ int UtcDaliRendererRenderOrder2DLayerSiblingOrder(void)
    *  Expected rendering order: renderer2 - renderer3 - renderer4 - renderer1 - renderer0 - renderer5
    */
 
-  Shader shader = Shader::New("VertexSource", "FragmentSource");
+  Shader   shader   = Shader::New("VertexSource", "FragmentSource");
   Geometry geometry = CreateQuadGeometry();
-  Actor root = Stage::GetCurrent().GetRootLayer();
-  Actor actor0 = CreateActor( root,   1, TEST_LOCATION );
-  Actor actor1 = CreateActor( root,   0, TEST_LOCATION );
-  Actor actor2 = CreateActor( actor0, 0, TEST_LOCATION );
+  Actor    root     = application.GetScene().GetRootLayer();
+  Actor    actor0   = CreateActor(root, 1, TEST_LOCATION);
+  Actor    actor1   = CreateActor(root, 0, TEST_LOCATION);
+  Actor    actor2   = CreateActor(actor0, 0, TEST_LOCATION);
 
-  Renderer renderer0 = CreateRenderer( actor0, geometry, shader, 2 );
-  Renderer renderer1 = CreateRenderer( actor0, geometry, shader, 0 );
-  Renderer renderer2 = CreateRenderer( actor1, geometry, shader, 0 );
-  Renderer renderer3 = CreateRenderer( actor1, geometry, shader, 1 );
-  Renderer renderer4 = CreateRenderer( actor1, geometry, shader, 2 );
-  Renderer renderer5 = CreateRenderer( actor2, geometry, shader, -1 );
+  Renderer renderer0 = CreateRenderer(actor0, geometry, shader, 2);
+  Renderer renderer1 = CreateRenderer(actor0, geometry, shader, 0);
+  Renderer renderer2 = CreateRenderer(actor1, geometry, shader, 0);
+  Renderer renderer3 = CreateRenderer(actor1, geometry, shader, 1);
+  Renderer renderer4 = CreateRenderer(actor1, geometry, shader, 2);
+  Renderer renderer5 = CreateRenderer(actor2, geometry, shader, -1);
 
   application.SendNotification();
   application.Render();
@@ -1801,41 +2044,41 @@ int UtcDaliRendererRenderOrder2DLayerSiblingOrder(void)
   application.Render(0);
 
   int textureBindIndex[6];
-  for( unsigned int i(0); i<6; ++i )
+  for(unsigned int i(0); i < 6; ++i)
   {
     std::stringstream params;
-    params << GL_TEXTURE_2D<<", "<<i+1;
-    textureBindIndex[i] = gl.GetTextureTrace().FindIndexFromMethodAndParams("BindTexture", params.str() );
+    params << GL_TEXTURE_2D << ", " << i + 1;
+    textureBindIndex[i] = gl.GetTextureTrace().FindIndexFromMethodAndParams("BindTexture", params.str());
   }
 
-  DALI_TEST_EQUALS( textureBindIndex[2], 0, TEST_LOCATION );
-  DALI_TEST_EQUALS( textureBindIndex[3], 1, TEST_LOCATION );
-  DALI_TEST_EQUALS( textureBindIndex[4], 2, TEST_LOCATION );
-  DALI_TEST_EQUALS( textureBindIndex[1], 3, TEST_LOCATION );
-  DALI_TEST_EQUALS( textureBindIndex[0], 4, TEST_LOCATION );
-  DALI_TEST_EQUALS( textureBindIndex[5], 5, TEST_LOCATION );
+  DALI_TEST_EQUALS(textureBindIndex[2], 0, TEST_LOCATION);
+  DALI_TEST_EQUALS(textureBindIndex[3], 1, TEST_LOCATION);
+  DALI_TEST_EQUALS(textureBindIndex[4], 2, TEST_LOCATION);
+  DALI_TEST_EQUALS(textureBindIndex[1], 3, TEST_LOCATION);
+  DALI_TEST_EQUALS(textureBindIndex[0], 4, TEST_LOCATION);
+  DALI_TEST_EQUALS(textureBindIndex[5], 5, TEST_LOCATION);
 
   // Change sibling order of actor1
   // New Expected rendering order: renderer1 - renderer0 - renderer 5 - renderer2 - renderer3 - renderer4
-  actor1.SetProperty( Dali::DevelActor::Property::SIBLING_ORDER, 2 );
+  actor1.SetProperty(Dali::DevelActor::Property::SIBLING_ORDER, 2);
 
   gl.GetTextureTrace().Reset();
   application.SendNotification();
   application.Render(0);
 
-  for( unsigned int i(0); i<6; ++i )
+  for(unsigned int i(0); i < 6; ++i)
   {
     std::stringstream params;
-    params << GL_TEXTURE_2D<<", "<<i+1;
-    textureBindIndex[i] = gl.GetTextureTrace().FindIndexFromMethodAndParams("BindTexture", params.str() );
+    params << GL_TEXTURE_2D << ", " << i + 1;
+    textureBindIndex[i] = gl.GetTextureTrace().FindIndexFromMethodAndParams("BindTexture", params.str());
   }
 
-  DALI_TEST_EQUALS( textureBindIndex[1], 0, TEST_LOCATION );
-  DALI_TEST_EQUALS( textureBindIndex[0], 1, TEST_LOCATION );
-  DALI_TEST_EQUALS( textureBindIndex[5], 2, TEST_LOCATION );
-  DALI_TEST_EQUALS( textureBindIndex[2], 3, TEST_LOCATION );
-  DALI_TEST_EQUALS( textureBindIndex[3], 4, TEST_LOCATION );
-  DALI_TEST_EQUALS( textureBindIndex[4], 5, TEST_LOCATION );
+  DALI_TEST_EQUALS(textureBindIndex[1], 0, TEST_LOCATION);
+  DALI_TEST_EQUALS(textureBindIndex[0], 1, TEST_LOCATION);
+  DALI_TEST_EQUALS(textureBindIndex[5], 2, TEST_LOCATION);
+  DALI_TEST_EQUALS(textureBindIndex[2], 3, TEST_LOCATION);
+  DALI_TEST_EQUALS(textureBindIndex[3], 4, TEST_LOCATION);
+  DALI_TEST_EQUALS(textureBindIndex[4], 5, TEST_LOCATION);
 
   END_TEST;
 }
@@ -1845,9 +2088,9 @@ int UtcDaliRendererRenderOrder2DLayerOverlay(void)
   TestApplication application;
   tet_infoline("Test the rendering order in a 2D layer is correct for overlays");
 
-  Shader shader = Shader::New("VertexSource", "FragmentSource");
+  Shader   shader   = Shader::New("VertexSource", "FragmentSource");
   Geometry geometry = CreateQuadGeometry();
-  Actor root = Stage::GetCurrent().GetRootLayer();
+  Actor    root     = application.GetScene().GetRootLayer();
 
   /*
    * Create the following hierarchy:
@@ -1870,23 +2113,23 @@ int UtcDaliRendererRenderOrder2DLayerOverlay(void)
    *  Expected rendering order : actor2 - actor4 - actor1 - actor0 - actor3
    */
 
-  Actor actor0 = CreateActor( root, 0, TEST_LOCATION );
-  actor0.SetProperty( Actor::Property::DRAW_MODE, DrawMode::OVERLAY_2D );
-  Renderer renderer0 = CreateRenderer( actor0, geometry, shader, 0 );
+  Actor actor0 = CreateActor(root, 0, TEST_LOCATION);
+  actor0.SetProperty(Actor::Property::DRAW_MODE, DrawMode::OVERLAY_2D);
+  Renderer renderer0 = CreateRenderer(actor0, geometry, shader, 0);
 
-  Actor actor1 = CreateActor( root, 0, TEST_LOCATION );
-  actor1.SetProperty( Actor::Property::DRAW_MODE, DrawMode::OVERLAY_2D );
-  Renderer renderer1 = CreateRenderer( actor1, geometry, shader, 0 );
+  Actor actor1 = CreateActor(root, 0, TEST_LOCATION);
+  actor1.SetProperty(Actor::Property::DRAW_MODE, DrawMode::OVERLAY_2D);
+  Renderer renderer1 = CreateRenderer(actor1, geometry, shader, 0);
 
-  Actor actor2 = CreateActor( root, 0, TEST_LOCATION );
-  Renderer renderer2 = CreateRenderer( actor2, geometry, shader, 0 );
+  Actor    actor2    = CreateActor(root, 0, TEST_LOCATION);
+  Renderer renderer2 = CreateRenderer(actor2, geometry, shader, 0);
 
-  Actor actor3 = CreateActor( root, 0, TEST_LOCATION );
-  actor3.SetProperty( Actor::Property::DRAW_MODE, DrawMode::OVERLAY_2D );
-  Renderer renderer3 = CreateRenderer( actor3, geometry, shader, 0 );
+  Actor actor3 = CreateActor(root, 0, TEST_LOCATION);
+  actor3.SetProperty(Actor::Property::DRAW_MODE, DrawMode::OVERLAY_2D);
+  Renderer renderer3 = CreateRenderer(actor3, geometry, shader, 0);
 
-  Actor actor4 = CreateActor( root, 0, TEST_LOCATION );
-  Renderer renderer4 = CreateRenderer( actor4, geometry, shader, 0 );
+  Actor    actor4    = CreateActor(root, 0, TEST_LOCATION);
+  Renderer renderer4 = CreateRenderer(actor4, geometry, shader, 0);
 
   application.SendNotification();
   application.Render(0);
@@ -1902,24 +2145,24 @@ int UtcDaliRendererRenderOrder2DLayerOverlay(void)
   application.Render(0);
 
   int textureBindIndex[5];
-  for( unsigned int i(0); i<5; ++i )
+  for(unsigned int i(0); i < 5; ++i)
   {
     std::stringstream params;
-    params << GL_TEXTURE_2D<<", "<<i+1;
-    textureBindIndex[i] = gl.GetTextureTrace().FindIndexFromMethodAndParams("BindTexture", params.str() );
+    params << GL_TEXTURE_2D << ", " << i + 1;
+    textureBindIndex[i] = gl.GetTextureTrace().FindIndexFromMethodAndParams("BindTexture", params.str());
   }
 
   //Check that actor4 has been rendered after actor2
-  DALI_TEST_GREATER( textureBindIndex[4], textureBindIndex[2], TEST_LOCATION );
+  DALI_TEST_GREATER(textureBindIndex[4], textureBindIndex[2], TEST_LOCATION);
 
   //Check that actor1 has been rendered after actor4
-  DALI_TEST_GREATER( textureBindIndex[1], textureBindIndex[4], TEST_LOCATION );
+  DALI_TEST_GREATER(textureBindIndex[1], textureBindIndex[4], TEST_LOCATION);
 
   //Check that actor0 has been rendered after actor1
-  DALI_TEST_GREATER( textureBindIndex[0], textureBindIndex[1], TEST_LOCATION );
+  DALI_TEST_GREATER(textureBindIndex[0], textureBindIndex[1], TEST_LOCATION);
 
   //Check that actor3 has been rendered after actor0
-  DALI_TEST_GREATER( textureBindIndex[3], textureBindIndex[0], TEST_LOCATION );
+  DALI_TEST_GREATER(textureBindIndex[3], textureBindIndex[0], TEST_LOCATION);
 
   END_TEST;
 }
@@ -1927,38 +2170,50 @@ int UtcDaliRendererRenderOrder2DLayerOverlay(void)
 int UtcDaliRendererSetIndexRange(void)
 {
   std::string
-      vertexShader(
-        "attribute vec2 aPosition;\n"
-        "void main()\n"
-        "{\n"
-        "  gl_Position = aPosition;\n"
-        "}"
-        ),
-      fragmentShader(
-        "void main()\n"
-        "{\n"
-        "  gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0)\n"
-        "}\n"
-        );
+    vertexShader(
+      "attribute vec2 aPosition;\n"
+      "void main()\n"
+      "{\n"
+      "  gl_Position = aPosition;\n"
+      "}"),
+    fragmentShader(
+      "void main()\n"
+      "{\n"
+      "  gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0)\n"
+      "}\n");
 
   TestApplication application;
   tet_infoline("Test setting the range of indices to draw");
 
   TestGlAbstraction& gl = application.GetGlAbstraction();
-  gl.EnableDrawCallTrace( true );
+  gl.EnableDrawCallTrace(true);
 
   Actor actor = Actor::New();
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) );
+  actor.SetProperty(Actor::Property::SIZE, Vector2(100.0f, 100.0f));
 
   // create geometry
   Geometry geometry = Geometry::New();
-  geometry.SetType( Geometry::LINE_LOOP );
+  geometry.SetType(Geometry::LINE_LOOP);
 
   // --------------------------------------------------------------------------
   // index buffer
-  unsigned short indices[] = { 0, 2, 4, 6, 8, // offset = 0, count = 5
-                         0, 1, 2, 3, 4, 5, 6, 7, 8, 9, // offset = 5, count = 10
-                         1, 3, 5, 7, 9, 1 }; // offset = 15,  count = 6 // line strip
+  unsigned short indices[] = {0, 2, 4, 6, 8, // offset = 0, count = 5
+                              0,
+                              1,
+                              2,
+                              3,
+                              4,
+                              5,
+                              6,
+                              7,
+                              8,
+                              9, // offset = 5, count = 10
+                              1,
+                              3,
+                              5,
+                              7,
+                              9,
+                              1}; // offset = 15,  count = 6 // line strip
 
   // --------------------------------------------------------------------------
   // vertex buffer
@@ -1967,108 +2222,112 @@ int UtcDaliRendererSetIndexRange(void)
     Vector2 position;
   };
   Vertex shapes[] =
-  {
-    // pentagon                   // star
-    { Vector2(  0.0f,   1.00f) }, { Vector2(  0.0f,  -1.00f) },
-    { Vector2( -0.95f,  0.31f) }, { Vector2(  0.59f,  0.81f) },
-    { Vector2( -0.59f, -0.81f) }, { Vector2( -0.95f, -0.31f) },
-    { Vector2(  0.59f, -0.81f) }, { Vector2(  0.95f, -0.31f) },
-    { Vector2(  0.95f,  0.31f) }, { Vector2( -0.59f,  0.81f) },
-  };
+    {
+      // pentagon                   // star
+      {Vector2(0.0f, 1.00f)},
+      {Vector2(0.0f, -1.00f)},
+      {Vector2(-0.95f, 0.31f)},
+      {Vector2(0.59f, 0.81f)},
+      {Vector2(-0.59f, -0.81f)},
+      {Vector2(-0.95f, -0.31f)},
+      {Vector2(0.59f, -0.81f)},
+      {Vector2(0.95f, -0.31f)},
+      {Vector2(0.95f, 0.31f)},
+      {Vector2(-0.59f, 0.81f)},
+    };
   Property::Map vertexFormat;
   vertexFormat["aPosition"] = Property::VECTOR2;
-  PropertyBuffer vertexBuffer = PropertyBuffer::New( vertexFormat );
-  vertexBuffer.SetData( shapes, sizeof(shapes)/sizeof(shapes[0]));
+  VertexBuffer vertexBuffer = VertexBuffer::New(vertexFormat);
+  vertexBuffer.SetData(shapes, sizeof(shapes) / sizeof(shapes[0]));
 
   // --------------------------------------------------------------------------
-  geometry.SetIndexBuffer( indices, sizeof(indices)/sizeof(indices[0]) );
-  geometry.AddVertexBuffer( vertexBuffer );
+  geometry.SetIndexBuffer(indices, sizeof(indices) / sizeof(indices[0]));
+  geometry.AddVertexBuffer(vertexBuffer);
 
   // create shader
-  Shader shader = Shader::New( vertexShader,fragmentShader );
-  Renderer renderer = Renderer::New( geometry, shader );
-  actor.AddRenderer( renderer );
+  Shader   shader   = Shader::New(vertexShader, fragmentShader);
+  Renderer renderer = Renderer::New(geometry, shader);
+  actor.AddRenderer(renderer);
 
-  Stage stage = Stage::GetCurrent();
-  stage.Add( actor );
+  Integration::Scene scene = application.GetScene();
+  scene.Add(actor);
 
-  char buffer[ 128 ];
+  char buffer[128];
 
   // LINE_LOOP, first 0, count 5
   {
-    renderer.SetIndexRange( 0, 5 );
+    renderer.SetIndexRange(0, 5);
     application.SendNotification();
     application.Render();
 
-    Property::Value value = renderer.GetProperty( Renderer::Property::INDEX_RANGE_FIRST );
-    int convertedValue;
-    DALI_TEST_CHECK( value.Get( convertedValue ) );
-    DALI_TEST_CHECK( convertedValue == 0 );
+    Property::Value value = renderer.GetProperty(Renderer::Property::INDEX_RANGE_FIRST);
+    int             convertedValue;
+    DALI_TEST_CHECK(value.Get(convertedValue));
+    DALI_TEST_CHECK(convertedValue == 0);
 
-    value = renderer.GetCurrentProperty( Renderer::Property::INDEX_RANGE_FIRST );
-    DALI_TEST_CHECK( value.Get( convertedValue ) );
-    DALI_TEST_CHECK( convertedValue == 0 );
+    value = renderer.GetCurrentProperty(Renderer::Property::INDEX_RANGE_FIRST);
+    DALI_TEST_CHECK(value.Get(convertedValue));
+    DALI_TEST_CHECK(convertedValue == 0);
 
-    value = renderer.GetProperty( Renderer::Property::INDEX_RANGE_COUNT );
-    DALI_TEST_CHECK( value.Get( convertedValue ) );
-    DALI_TEST_CHECK( convertedValue == 5 );
+    value = renderer.GetProperty(Renderer::Property::INDEX_RANGE_COUNT);
+    DALI_TEST_CHECK(value.Get(convertedValue));
+    DALI_TEST_CHECK(convertedValue == 5);
 
-    value = renderer.GetCurrentProperty( Renderer::Property::INDEX_RANGE_COUNT );
-    DALI_TEST_CHECK( value.Get( convertedValue ) );
-    DALI_TEST_CHECK( convertedValue == 5 );
+    value = renderer.GetCurrentProperty(Renderer::Property::INDEX_RANGE_COUNT);
+    DALI_TEST_CHECK(value.Get(convertedValue));
+    DALI_TEST_CHECK(convertedValue == 5);
 
-    sprintf( buffer, "%u, 5, %u, indices", GL_LINE_LOOP, GL_UNSIGNED_SHORT );
-    bool result = gl.GetDrawTrace().FindMethodAndParams( "DrawElements" , buffer );
-    DALI_TEST_CHECK( result );
+    sprintf(buffer, "%u, 5, %u, indices", GL_LINE_LOOP, GL_UNSIGNED_SHORT);
+    bool result = gl.GetDrawTrace().FindMethodAndParams("DrawElements", buffer);
+    DALI_TEST_CHECK(result);
   }
 
   // LINE_LOOP, first 5, count 10
   {
-    renderer.SetIndexRange( 5, 10 );
-    sprintf( buffer, "%u, 10, %u, indices", GL_LINE_LOOP, GL_UNSIGNED_SHORT );
+    renderer.SetIndexRange(5, 10);
+    sprintf(buffer, "%u, 10, %u, indices", GL_LINE_LOOP, GL_UNSIGNED_SHORT);
     application.SendNotification();
     application.Render();
-    bool result = gl.GetDrawTrace().FindMethodAndParams( "DrawElements" , buffer );
-    DALI_TEST_CHECK( result );
+    bool result = gl.GetDrawTrace().FindMethodAndParams("DrawElements", buffer);
+    DALI_TEST_CHECK(result);
   }
 
   // LINE_STRIP, first 15, count 6
   {
-    renderer.SetIndexRange( 15, 6 );
-    geometry.SetType( Geometry::LINE_STRIP );
-    sprintf( buffer, "%u, 6, %u, indices", GL_LINE_STRIP, GL_UNSIGNED_SHORT );
+    renderer.SetIndexRange(15, 6);
+    geometry.SetType(Geometry::LINE_STRIP);
+    sprintf(buffer, "%u, 6, %u, indices", GL_LINE_STRIP, GL_UNSIGNED_SHORT);
     application.SendNotification();
     application.Render();
-    bool result = gl.GetDrawTrace().FindMethodAndParams( "DrawElements" , buffer );
-    DALI_TEST_CHECK( result );
+    bool result = gl.GetDrawTrace().FindMethodAndParams("DrawElements", buffer);
+    DALI_TEST_CHECK(result);
   }
 
   // Index out of bounds
   {
-    renderer.SetIndexRange( 15, 30 );
-    geometry.SetType( Geometry::LINE_STRIP );
-    sprintf( buffer, "%u, 6, %u, indices", GL_LINE_STRIP, GL_UNSIGNED_SHORT );
+    renderer.SetIndexRange(15, 30);
+    geometry.SetType(Geometry::LINE_STRIP);
+    sprintf(buffer, "%u, 6, %u, indices", GL_LINE_STRIP, GL_UNSIGNED_SHORT);
     application.SendNotification();
     application.Render();
-    bool result = gl.GetDrawTrace().FindMethodAndParams( "DrawElements" , buffer );
-    DALI_TEST_CHECK( result );
+    bool result = gl.GetDrawTrace().FindMethodAndParams("DrawElements", buffer);
+    DALI_TEST_CHECK(result);
   }
 
   // drawing whole buffer starting from 15 ( last valid primitive )
   {
-    renderer.SetIndexRange( 15, 0 );
-    geometry.SetType( Geometry::LINE_STRIP );
-    sprintf( buffer, "%u, 6, %u, indices", GL_LINE_STRIP, GL_UNSIGNED_SHORT );
+    renderer.SetIndexRange(15, 0);
+    geometry.SetType(Geometry::LINE_STRIP);
+    sprintf(buffer, "%u, 6, %u, indices", GL_LINE_STRIP, GL_UNSIGNED_SHORT);
     application.SendNotification();
     application.Render();
-    bool result = gl.GetDrawTrace().FindMethodAndParams( "DrawElements" , buffer );
-    DALI_TEST_CHECK( result );
+    bool result = gl.GetDrawTrace().FindMethodAndParams("DrawElements", buffer);
+    DALI_TEST_CHECK(result);
   }
 
   END_TEST;
 }
 
-
 int UtcDaliRendererSetDepthFunction(void)
 {
   TestApplication application;
@@ -2076,15 +2335,15 @@ int UtcDaliRendererSetDepthFunction(void)
   tet_infoline("Test setting the depth function");
 
   Geometry geometry = CreateQuadGeometry();
-  Shader shader = CreateShader();
-  Renderer renderer = Renderer::New( geometry, shader );
+  Shader   shader   = CreateShader();
+  Renderer renderer = Renderer::New(geometry, shader);
 
   Actor actor = Actor::New();
   actor.AddRenderer(renderer);
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  Stage stage = Stage::GetCurrent();
-  stage.GetRootLayer().SetProperty( Layer::Property::BEHAVIOR, Layer::LAYER_3D );
-  stage.Add(actor);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  Integration::Scene scene = application.GetScene();
+  scene.GetRootLayer().SetProperty(Layer::Property::BEHAVIOR, Layer::LAYER_3D);
+  scene.Add(actor);
 
   TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
   glAbstraction.EnableEnableDisableCallTrace(true);
@@ -2098,22 +2357,22 @@ int UtcDaliRendererSetDepthFunction(void)
 
   //GL_NEVER
   {
-    renderer.SetProperty( Renderer::Property::DEPTH_FUNCTION, DepthFunction::NEVER);
+    renderer.SetProperty(Renderer::Property::DEPTH_FUNCTION, DepthFunction::NEVER);
 
     glEnableDisableStack.Reset();
     glDepthFunctionStack.Reset();
     application.SendNotification();
     application.Render();
 
-    DALI_TEST_CHECK( glEnableDisableStack.FindMethodAndParams( "Enable", depthTestStr.str().c_str() ) );
+    DALI_TEST_CHECK(glEnableDisableStack.FindMethodAndParams("Enable", depthTestStr.str().c_str()));
     std::ostringstream depthFunctionStr;
     depthFunctionStr << GL_NEVER;
-    DALI_TEST_CHECK( glDepthFunctionStack.FindMethodAndParams( "DepthFunc", depthFunctionStr.str().c_str() ) );
+    DALI_TEST_CHECK(glDepthFunctionStack.FindMethodAndParams("DepthFunc", depthFunctionStr.str().c_str()));
   }
 
   //GL_ALWAYS
   {
-    renderer.SetProperty( Renderer::Property::DEPTH_FUNCTION, DepthFunction::ALWAYS);
+    renderer.SetProperty(Renderer::Property::DEPTH_FUNCTION, DepthFunction::ALWAYS);
 
     glDepthFunctionStack.Reset();
     application.SendNotification();
@@ -2121,12 +2380,12 @@ int UtcDaliRendererSetDepthFunction(void)
 
     std::ostringstream depthFunctionStr;
     depthFunctionStr << GL_ALWAYS;
-    DALI_TEST_CHECK( glDepthFunctionStack.FindMethodAndParams( "DepthFunc", depthFunctionStr.str().c_str() ) );
+    DALI_TEST_CHECK(glDepthFunctionStack.FindMethodAndParams("DepthFunc", depthFunctionStr.str().c_str()));
   }
 
   //GL_LESS
   {
-    renderer.SetProperty( Renderer::Property::DEPTH_FUNCTION, DepthFunction::LESS);
+    renderer.SetProperty(Renderer::Property::DEPTH_FUNCTION, DepthFunction::LESS);
 
     glDepthFunctionStack.Reset();
     application.SendNotification();
@@ -2134,12 +2393,12 @@ int UtcDaliRendererSetDepthFunction(void)
 
     std::ostringstream depthFunctionStr;
     depthFunctionStr << GL_LESS;
-    DALI_TEST_CHECK( glDepthFunctionStack.FindMethodAndParams( "DepthFunc", depthFunctionStr.str().c_str() ) );
+    DALI_TEST_CHECK(glDepthFunctionStack.FindMethodAndParams("DepthFunc", depthFunctionStr.str().c_str()));
   }
 
   //GL_GREATER
   {
-    renderer.SetProperty( Renderer::Property::DEPTH_FUNCTION, DepthFunction::GREATER);
+    renderer.SetProperty(Renderer::Property::DEPTH_FUNCTION, DepthFunction::GREATER);
 
     glDepthFunctionStack.Reset();
     application.SendNotification();
@@ -2147,12 +2406,12 @@ int UtcDaliRendererSetDepthFunction(void)
 
     std::ostringstream depthFunctionStr;
     depthFunctionStr << GL_GREATER;
-    DALI_TEST_CHECK( glDepthFunctionStack.FindMethodAndParams( "DepthFunc", depthFunctionStr.str().c_str() ) );
+    DALI_TEST_CHECK(glDepthFunctionStack.FindMethodAndParams("DepthFunc", depthFunctionStr.str().c_str()));
   }
 
   //GL_EQUAL
   {
-    renderer.SetProperty( Renderer::Property::DEPTH_FUNCTION, DepthFunction::EQUAL);
+    renderer.SetProperty(Renderer::Property::DEPTH_FUNCTION, DepthFunction::EQUAL);
 
     glDepthFunctionStack.Reset();
     application.SendNotification();
@@ -2160,12 +2419,12 @@ int UtcDaliRendererSetDepthFunction(void)
 
     std::ostringstream depthFunctionStr;
     depthFunctionStr << GL_EQUAL;
-    DALI_TEST_CHECK( glDepthFunctionStack.FindMethodAndParams( "DepthFunc", depthFunctionStr.str().c_str() ) );
+    DALI_TEST_CHECK(glDepthFunctionStack.FindMethodAndParams("DepthFunc", depthFunctionStr.str().c_str()));
   }
 
   //GL_NOTEQUAL
   {
-    renderer.SetProperty( Renderer::Property::DEPTH_FUNCTION, DepthFunction::NOT_EQUAL);
+    renderer.SetProperty(Renderer::Property::DEPTH_FUNCTION, DepthFunction::NOT_EQUAL);
 
     glDepthFunctionStack.Reset();
     application.SendNotification();
@@ -2173,12 +2432,12 @@ int UtcDaliRendererSetDepthFunction(void)
 
     std::ostringstream depthFunctionStr;
     depthFunctionStr << GL_NOTEQUAL;
-    DALI_TEST_CHECK( glDepthFunctionStack.FindMethodAndParams( "DepthFunc", depthFunctionStr.str().c_str() ) );
+    DALI_TEST_CHECK(glDepthFunctionStack.FindMethodAndParams("DepthFunc", depthFunctionStr.str().c_str()));
   }
 
   //GL_LEQUAL
   {
-    renderer.SetProperty( Renderer::Property::DEPTH_FUNCTION, DepthFunction::LESS_EQUAL);
+    renderer.SetProperty(Renderer::Property::DEPTH_FUNCTION, DepthFunction::LESS_EQUAL);
 
     glDepthFunctionStack.Reset();
     application.SendNotification();
@@ -2186,12 +2445,12 @@ int UtcDaliRendererSetDepthFunction(void)
 
     std::ostringstream depthFunctionStr;
     depthFunctionStr << GL_LEQUAL;
-    DALI_TEST_CHECK( glDepthFunctionStack.FindMethodAndParams( "DepthFunc", depthFunctionStr.str().c_str() ) );
+    DALI_TEST_CHECK(glDepthFunctionStack.FindMethodAndParams("DepthFunc", depthFunctionStr.str().c_str()));
   }
 
   //GL_GEQUAL
   {
-    renderer.SetProperty( Renderer::Property::DEPTH_FUNCTION, DepthFunction::GREATER_EQUAL);
+    renderer.SetProperty(Renderer::Property::DEPTH_FUNCTION, DepthFunction::GREATER_EQUAL);
 
     glDepthFunctionStack.Reset();
     application.SendNotification();
@@ -2199,7 +2458,7 @@ int UtcDaliRendererSetDepthFunction(void)
 
     std::ostringstream depthFunctionStr;
     depthFunctionStr << GL_GEQUAL;
-    DALI_TEST_CHECK( glDepthFunctionStack.FindMethodAndParams( "DepthFunc", depthFunctionStr.str().c_str() ) );
+    DALI_TEST_CHECK(glDepthFunctionStack.FindMethodAndParams("DepthFunc", depthFunctionStr.str().c_str()));
   }
 
   END_TEST;
@@ -2214,86 +2473,101 @@ int UtcDaliRendererSetDepthFunction(void)
  *  - Set a different value via string.
  *  - Check it was set.
  */
-template< typename T >
-void CheckEnumerationProperty( TestApplication& application, Renderer& renderer, Property::Index propertyIndex, T initialValue, T firstCheckEnumeration, T secondCheckEnumeration, std::string secondCheckString )
+template<typename T>
+void CheckEnumerationProperty(TestApplication& application, Renderer& renderer, Property::Index propertyIndex, T initialValue, T firstCheckEnumeration, T secondCheckEnumeration, std::string secondCheckString)
 {
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_CHECK( renderer.GetProperty<int>( propertyIndex ) == static_cast<int>( initialValue ) );
-  DALI_TEST_CHECK( renderer.GetCurrentProperty< int >( propertyIndex ) == static_cast<int>( initialValue ) );
-  renderer.SetProperty( propertyIndex, firstCheckEnumeration );
-  DALI_TEST_CHECK( renderer.GetProperty<int>( propertyIndex ) == static_cast<int>( firstCheckEnumeration ) );
-  DALI_TEST_CHECK( renderer.GetCurrentProperty< int >( propertyIndex ) != static_cast<int>( firstCheckEnumeration ) );
+  DALI_TEST_CHECK(renderer.GetProperty<int>(propertyIndex) == static_cast<int>(initialValue));
+  DALI_TEST_CHECK(renderer.GetCurrentProperty<int>(propertyIndex) == static_cast<int>(initialValue));
+  renderer.SetProperty(propertyIndex, firstCheckEnumeration);
+  DALI_TEST_CHECK(renderer.GetProperty<int>(propertyIndex) == static_cast<int>(firstCheckEnumeration));
+  DALI_TEST_CHECK(renderer.GetCurrentProperty<int>(propertyIndex) != static_cast<int>(firstCheckEnumeration));
 
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_CHECK( renderer.GetProperty<int>( propertyIndex ) == static_cast<int>( firstCheckEnumeration ) );
-  DALI_TEST_CHECK( renderer.GetCurrentProperty< int >( propertyIndex ) == static_cast<int>( firstCheckEnumeration ) );
+  DALI_TEST_CHECK(renderer.GetProperty<int>(propertyIndex) == static_cast<int>(firstCheckEnumeration));
+  DALI_TEST_CHECK(renderer.GetCurrentProperty<int>(propertyIndex) == static_cast<int>(firstCheckEnumeration));
 
-  renderer.SetProperty( propertyIndex, secondCheckString );
-  DALI_TEST_CHECK( renderer.GetProperty<int>( propertyIndex ) == static_cast<int>( secondCheckEnumeration ) );
-  DALI_TEST_CHECK( renderer.GetCurrentProperty< int >( propertyIndex ) != static_cast<int>( secondCheckEnumeration ) );
+  renderer.SetProperty(propertyIndex, secondCheckString);
+  DALI_TEST_CHECK(renderer.GetProperty<int>(propertyIndex) == static_cast<int>(secondCheckEnumeration));
+  DALI_TEST_CHECK(renderer.GetCurrentProperty<int>(propertyIndex) != static_cast<int>(secondCheckEnumeration));
 
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_CHECK( renderer.GetProperty<int>( propertyIndex ) == static_cast<int>( secondCheckEnumeration ) );
-  DALI_TEST_CHECK( renderer.GetCurrentProperty< int >( propertyIndex ) == static_cast<int>( secondCheckEnumeration ) );
+  DALI_TEST_CHECK(renderer.GetProperty<int>(propertyIndex) == static_cast<int>(secondCheckEnumeration));
+  DALI_TEST_CHECK(renderer.GetCurrentProperty<int>(propertyIndex) == static_cast<int>(secondCheckEnumeration));
 }
 
 int UtcDaliRendererEnumProperties(void)
 {
   TestApplication application;
-  tet_infoline( "Test Renderer enumeration properties can be set with both integer and string values" );
+  tet_infoline("Test Renderer enumeration properties can be set with both integer and string values");
 
   Geometry geometry = CreateQuadGeometry();
-  Shader shader = CreateShader();
-  Renderer renderer = Renderer::New( geometry, shader );
+  Shader   shader   = CreateShader();
+  Renderer renderer = Renderer::New(geometry, shader);
 
   Actor actor = Actor::New();
   actor.AddRenderer(renderer);
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  Stage::GetCurrent().Add(actor);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  application.GetScene().Add(actor);
 
   /*
    * Here we use a templatized function to perform several checks on each enumeration property.
    * @see CheckEnumerationProperty for details of the checks performed.
    */
 
-  CheckEnumerationProperty< FaceCullingMode::Type >( application, renderer, Renderer::Property::FACE_CULLING_MODE, FaceCullingMode::NONE, FaceCullingMode::FRONT, FaceCullingMode::BACK, "BACK" );
-  CheckEnumerationProperty< BlendMode::Type >( application, renderer, Renderer::Property::BLEND_MODE, BlendMode::AUTO, BlendMode::OFF, BlendMode::ON, "ON" );
-  CheckEnumerationProperty< BlendEquation::Type >( application, renderer, Renderer::Property::BLEND_EQUATION_RGB, BlendEquation::ADD, BlendEquation::SUBTRACT, BlendEquation::REVERSE_SUBTRACT, "REVERSE_SUBTRACT" );
-  CheckEnumerationProperty< BlendEquation::Type >( application, renderer, Renderer::Property::BLEND_EQUATION_ALPHA, BlendEquation::ADD, BlendEquation::SUBTRACT, BlendEquation::REVERSE_SUBTRACT, "REVERSE_SUBTRACT" );
-  CheckEnumerationProperty< BlendFactor::Type >( application, renderer, Renderer::Property::BLEND_FACTOR_SRC_RGB, BlendFactor::SRC_ALPHA, BlendFactor::ONE, BlendFactor::SRC_COLOR, "SRC_COLOR" );
-  CheckEnumerationProperty< BlendFactor::Type >( application, renderer, Renderer::Property::BLEND_FACTOR_DEST_RGB, BlendFactor::ONE_MINUS_SRC_ALPHA, BlendFactor::ONE, BlendFactor::SRC_COLOR, "SRC_COLOR" );
-  CheckEnumerationProperty< BlendFactor::Type >( application, renderer, Renderer::Property::BLEND_FACTOR_SRC_ALPHA, BlendFactor::ONE, BlendFactor::ONE_MINUS_SRC_ALPHA, BlendFactor::SRC_COLOR, "SRC_COLOR" );
-  CheckEnumerationProperty< BlendFactor::Type >( application, renderer, Renderer::Property::BLEND_FACTOR_DEST_ALPHA, BlendFactor::ONE_MINUS_SRC_ALPHA, BlendFactor::ONE, BlendFactor::SRC_COLOR, "SRC_COLOR" );
-  CheckEnumerationProperty< DepthWriteMode::Type >( application, renderer, Renderer::Property::DEPTH_WRITE_MODE, DepthWriteMode::AUTO, DepthWriteMode::OFF, DepthWriteMode::ON, "ON" );
-  CheckEnumerationProperty< DepthFunction::Type >( application, renderer, Renderer::Property::DEPTH_FUNCTION, DepthFunction::LESS, DepthFunction::ALWAYS, DepthFunction::GREATER, "GREATER" );
-  CheckEnumerationProperty< DepthTestMode::Type >( application, renderer, Renderer::Property::DEPTH_TEST_MODE, DepthTestMode::AUTO, DepthTestMode::OFF, DepthTestMode::ON, "ON" );
-  CheckEnumerationProperty< StencilFunction::Type >( application, renderer, Renderer::Property::STENCIL_FUNCTION, StencilFunction::ALWAYS, StencilFunction::LESS, StencilFunction::EQUAL, "EQUAL" );
-  CheckEnumerationProperty< RenderMode::Type >( application, renderer, Renderer::Property::RENDER_MODE, RenderMode::AUTO, RenderMode::NONE, RenderMode::STENCIL, "STENCIL" );
-  CheckEnumerationProperty< StencilOperation::Type >( application, renderer, Renderer::Property::STENCIL_OPERATION_ON_FAIL, StencilOperation::KEEP, StencilOperation::REPLACE, StencilOperation::INCREMENT, "INCREMENT" );
-  CheckEnumerationProperty< StencilOperation::Type >( application, renderer, Renderer::Property::STENCIL_OPERATION_ON_Z_FAIL, StencilOperation::KEEP, StencilOperation::REPLACE, StencilOperation::INCREMENT, "INCREMENT" );
-  CheckEnumerationProperty< StencilOperation::Type >( application, renderer, Renderer::Property::STENCIL_OPERATION_ON_Z_PASS, StencilOperation::KEEP, StencilOperation::REPLACE, StencilOperation::INCREMENT, "INCREMENT" );
+  CheckEnumerationProperty<FaceCullingMode::Type>(application, renderer, Renderer::Property::FACE_CULLING_MODE, FaceCullingMode::NONE, FaceCullingMode::FRONT, FaceCullingMode::BACK, "BACK");
+  CheckEnumerationProperty<BlendMode::Type>(application, renderer, Renderer::Property::BLEND_MODE, BlendMode::AUTO, BlendMode::OFF, BlendMode::ON, "ON");
+  CheckEnumerationProperty<BlendEquation::Type>(application, renderer, Renderer::Property::BLEND_EQUATION_RGB, BlendEquation::ADD, BlendEquation::SUBTRACT, BlendEquation::REVERSE_SUBTRACT, "REVERSE_SUBTRACT");
+  CheckEnumerationProperty<BlendEquation::Type>(application, renderer, Renderer::Property::BLEND_EQUATION_ALPHA, BlendEquation::ADD, BlendEquation::SUBTRACT, BlendEquation::REVERSE_SUBTRACT, "REVERSE_SUBTRACT");
+  CheckEnumerationProperty<BlendFactor::Type>(application, renderer, Renderer::Property::BLEND_FACTOR_SRC_RGB, BlendFactor::SRC_ALPHA, BlendFactor::ONE, BlendFactor::SRC_COLOR, "SRC_COLOR");
+  CheckEnumerationProperty<BlendFactor::Type>(application, renderer, Renderer::Property::BLEND_FACTOR_DEST_RGB, BlendFactor::ONE_MINUS_SRC_ALPHA, BlendFactor::ONE, BlendFactor::SRC_COLOR, "SRC_COLOR");
+  CheckEnumerationProperty<BlendFactor::Type>(application, renderer, Renderer::Property::BLEND_FACTOR_SRC_ALPHA, BlendFactor::ONE, BlendFactor::ONE_MINUS_SRC_ALPHA, BlendFactor::SRC_COLOR, "SRC_COLOR");
+  CheckEnumerationProperty<BlendFactor::Type>(application, renderer, Renderer::Property::BLEND_FACTOR_DEST_ALPHA, BlendFactor::ONE_MINUS_SRC_ALPHA, BlendFactor::ONE, BlendFactor::SRC_COLOR, "SRC_COLOR");
+  CheckEnumerationProperty<DepthWriteMode::Type>(application, renderer, Renderer::Property::DEPTH_WRITE_MODE, DepthWriteMode::AUTO, DepthWriteMode::OFF, DepthWriteMode::ON, "ON");
+  CheckEnumerationProperty<DepthFunction::Type>(application, renderer, Renderer::Property::DEPTH_FUNCTION, DepthFunction::LESS, DepthFunction::ALWAYS, DepthFunction::GREATER, "GREATER");
+  CheckEnumerationProperty<DepthTestMode::Type>(application, renderer, Renderer::Property::DEPTH_TEST_MODE, DepthTestMode::AUTO, DepthTestMode::OFF, DepthTestMode::ON, "ON");
+  CheckEnumerationProperty<StencilFunction::Type>(application, renderer, Renderer::Property::STENCIL_FUNCTION, StencilFunction::ALWAYS, StencilFunction::LESS, StencilFunction::EQUAL, "EQUAL");
+  CheckEnumerationProperty<RenderMode::Type>(application, renderer, Renderer::Property::RENDER_MODE, RenderMode::AUTO, RenderMode::NONE, RenderMode::STENCIL, "STENCIL");
+  CheckEnumerationProperty<StencilOperation::Type>(application, renderer, Renderer::Property::STENCIL_OPERATION_ON_FAIL, StencilOperation::KEEP, StencilOperation::REPLACE, StencilOperation::INCREMENT, "INCREMENT");
+  CheckEnumerationProperty<StencilOperation::Type>(application, renderer, Renderer::Property::STENCIL_OPERATION_ON_Z_FAIL, StencilOperation::KEEP, StencilOperation::REPLACE, StencilOperation::INCREMENT, "INCREMENT");
+  CheckEnumerationProperty<StencilOperation::Type>(application, renderer, Renderer::Property::STENCIL_OPERATION_ON_Z_PASS, StencilOperation::KEEP, StencilOperation::REPLACE, StencilOperation::INCREMENT, "INCREMENT");
+
+  if( Dali::Capabilities::IsBlendEquationSupported( DevelBlendEquation::MAX ) &&
+      Dali::Capabilities::IsBlendEquationSupported( DevelBlendEquation::MIN ) )
+  {
+    application.SendNotification();
+    application.Render();
+    CheckEnumerationProperty< DevelBlendEquation::Type >( application, renderer, DevelRenderer::Property::BLEND_EQUATION, DevelBlendEquation::REVERSE_SUBTRACT, DevelBlendEquation::MAX, DevelBlendEquation::MIN, "MIN" );
+  }
+
+  if( Dali::Capabilities::IsBlendEquationSupported( DevelBlendEquation::SCREEN ) )
+  {
+    application.SendNotification();
+    application.Render();
+    CheckEnumerationProperty< DevelBlendEquation::Type >( application, renderer, DevelRenderer::Property::BLEND_EQUATION, DevelBlendEquation::MIN, DevelBlendEquation::MULTIPLY, DevelBlendEquation::SCREEN, "SCREEN" );
+  }
 
   END_TEST;
 }
 
-Renderer RendererTestFixture( TestApplication& application )
+Renderer RendererTestFixture(TestApplication& application)
 {
   Geometry geometry = CreateQuadGeometry();
-  Shader shader = CreateShader();
-  Renderer renderer = Renderer::New( geometry, shader );
+  Shader   shader   = CreateShader();
+  Renderer renderer = Renderer::New(geometry, shader);
 
   Actor actor = Actor::New();
-  actor.AddRenderer( renderer );
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  Stage stage = Stage::GetCurrent();
-  stage.GetRootLayer().SetProperty( Layer::Property::BEHAVIOR, Layer::LAYER_3D );
-  stage.Add( actor );
+  actor.AddRenderer(renderer);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  Integration::Scene scene = application.GetScene();
+  scene.GetRootLayer().SetProperty(Layer::Property::BEHAVIOR, Layer::LAYER_3D);
+  scene.Add(actor);
 
   return renderer;
 }
@@ -2303,9 +2577,9 @@ int UtcDaliRendererSetDepthTestMode(void)
   TestApplication application;
   tet_infoline("Test setting the DepthTestMode");
 
-  Renderer renderer = RendererTestFixture( application );
+  Renderer           renderer      = RendererTestFixture(application);
   TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
-  glAbstraction.EnableEnableDisableCallTrace( true );
+  glAbstraction.EnableEnableDisableCallTrace(true);
   TraceCallStack& glEnableDisableStack = glAbstraction.GetEnableDisableTrace();
 
   glEnableDisableStack.Reset();
@@ -2313,52 +2587,52 @@ int UtcDaliRendererSetDepthTestMode(void)
   application.Render();
 
   // Check depth-test is enabled by default.
-  DALI_TEST_CHECK( glEnableDisableStack.FindMethodAndParams( "Enable", GetDepthTestString() ) );
-  DALI_TEST_CHECK( !glEnableDisableStack.FindMethodAndParams( "Disable", GetDepthTestString() ) );
+  DALI_TEST_CHECK(glEnableDisableStack.FindMethodAndParams("Enable", GetDepthTestString()));
+  DALI_TEST_CHECK(!glEnableDisableStack.FindMethodAndParams("Disable", GetDepthTestString()));
 
   // Turn off depth-testing. We want to check if the depth buffer has been disabled, so we need to turn off depth-write as well for this case.
-  renderer.SetProperty( Renderer::Property::DEPTH_TEST_MODE, DepthTestMode::OFF );
-  renderer.SetProperty( Renderer::Property::DEPTH_WRITE_MODE, DepthWriteMode::OFF );
+  renderer.SetProperty(Renderer::Property::DEPTH_TEST_MODE, DepthTestMode::OFF);
+  renderer.SetProperty(Renderer::Property::DEPTH_WRITE_MODE, DepthWriteMode::OFF);
 
   glEnableDisableStack.Reset();
   application.SendNotification();
   application.Render();
 
   // Check the depth buffer was disabled.
-  DALI_TEST_CHECK( glEnableDisableStack.FindMethodAndParams( "Disable", GetDepthTestString() ) );
+  DALI_TEST_CHECK(glEnableDisableStack.FindMethodAndParams("Disable", GetDepthTestString()));
 
   // Turn on automatic mode depth-testing.
   // Layer behavior is currently set to LAYER_3D so AUTO should enable depth-testing.
-  renderer.SetProperty( Renderer::Property::DEPTH_TEST_MODE, DepthTestMode::AUTO );
+  renderer.SetProperty(Renderer::Property::DEPTH_TEST_MODE, DepthTestMode::AUTO);
 
   glEnableDisableStack.Reset();
   application.SendNotification();
   application.Render();
 
   // Check depth-test is now enabled.
-  DALI_TEST_CHECK( glEnableDisableStack.FindMethodAndParams( "Enable", GetDepthTestString() ) );
-  DALI_TEST_CHECK( !glEnableDisableStack.FindMethodAndParams( "Disable", GetDepthTestString() ) );
+  DALI_TEST_CHECK(glEnableDisableStack.FindMethodAndParams("Enable", GetDepthTestString()));
+  DALI_TEST_CHECK(!glEnableDisableStack.FindMethodAndParams("Disable", GetDepthTestString()));
 
   // Change the layer behavior to LAYER_UI.
   // Note this will also disable depth testing for the layer by default, we test this first.
-  Stage::GetCurrent().GetRootLayer().SetProperty( Layer::Property::BEHAVIOR, Layer::LAYER_UI );
+  application.GetScene().GetRootLayer().SetProperty(Layer::Property::BEHAVIOR, Layer::LAYER_UI);
 
   glEnableDisableStack.Reset();
   application.SendNotification();
   application.Render();
 
   // Check depth-test is disabled.
-  DALI_TEST_CHECK( glEnableDisableStack.FindMethodAndParams( "Disable", GetDepthTestString() ) );
+  DALI_TEST_CHECK(glEnableDisableStack.FindMethodAndParams("Disable", GetDepthTestString()));
 
   // Turn the layer depth-test flag back on, and confirm that depth testing is now on.
-  Stage::GetCurrent().GetRootLayer().SetProperty(Layer::Property::DEPTH_TEST, true );
+  application.GetScene().GetRootLayer().SetProperty(Layer::Property::DEPTH_TEST, true);
 
   glEnableDisableStack.Reset();
   application.SendNotification();
   application.Render();
 
   // Check depth-test is *still* disabled.
-  DALI_TEST_CHECK( glEnableDisableStack.FindMethodAndParams( "Enable", GetDepthTestString() ) );
+  DALI_TEST_CHECK(glEnableDisableStack.FindMethodAndParams("Enable", GetDepthTestString()));
 
   END_TEST;
 }
@@ -2368,43 +2642,43 @@ int UtcDaliRendererSetDepthWriteMode(void)
   TestApplication application;
   tet_infoline("Test setting the DepthWriteMode");
 
-  Renderer renderer = RendererTestFixture( application );
+  Renderer           renderer      = RendererTestFixture(application);
   TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
 
   application.SendNotification();
   application.Render();
 
   // Check the default depth-write status first.
-  DALI_TEST_CHECK( glAbstraction.GetLastDepthMask() );
+  DALI_TEST_CHECK(glAbstraction.GetLastDepthMask());
 
   // Turn off depth-writing.
-  renderer.SetProperty( Renderer::Property::DEPTH_WRITE_MODE, DepthWriteMode::OFF );
+  renderer.SetProperty(Renderer::Property::DEPTH_WRITE_MODE, DepthWriteMode::OFF);
 
   application.SendNotification();
   application.Render();
 
   // Check depth-write is now disabled.
-  DALI_TEST_CHECK( !glAbstraction.GetLastDepthMask() );
+  DALI_TEST_CHECK(!glAbstraction.GetLastDepthMask());
 
   // Test the AUTO mode for depth-writing.
   // As our renderer is opaque, depth-testing should be enabled.
-  renderer.SetProperty( Renderer::Property::DEPTH_WRITE_MODE, DepthWriteMode::AUTO );
+  renderer.SetProperty(Renderer::Property::DEPTH_WRITE_MODE, DepthWriteMode::AUTO);
 
   application.SendNotification();
   application.Render();
 
   // Check depth-write is now enabled.
-  DALI_TEST_CHECK( glAbstraction.GetLastDepthMask() );
+  DALI_TEST_CHECK(glAbstraction.GetLastDepthMask());
 
   // Now make the renderer be treated as translucent by enabling blending.
   // The AUTO depth-write mode should turn depth-write off in this scenario.
-  renderer.SetProperty( Renderer::Property::BLEND_MODE, BlendMode::ON );
+  renderer.SetProperty(Renderer::Property::BLEND_MODE, BlendMode::ON);
 
   application.SendNotification();
   application.Render();
 
   // Check depth-write is now disabled.
-  DALI_TEST_CHECK( !glAbstraction.GetLastDepthMask() );
+  DALI_TEST_CHECK(!glAbstraction.GetLastDepthMask());
 
   END_TEST;
 }
@@ -2414,23 +2688,23 @@ int UtcDaliRendererCheckStencilDefaults(void)
   TestApplication application;
   tet_infoline("Test the stencil defaults");
 
-  Renderer renderer = RendererTestFixture( application );
+  Renderer           renderer      = RendererTestFixture(application);
   TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
-  glAbstraction.EnableEnableDisableCallTrace( true );
-  glAbstraction.EnableStencilFunctionCallTrace( true );
-  TraceCallStack& glEnableDisableStack = glAbstraction.GetEnableDisableTrace();
+  glAbstraction.EnableEnableDisableCallTrace(true);
+  glAbstraction.EnableStencilFunctionCallTrace(true);
+  TraceCallStack& glEnableDisableStack   = glAbstraction.GetEnableDisableTrace();
   TraceCallStack& glStencilFunctionStack = glAbstraction.GetStencilFunctionTrace();
 
-  ResetDebugAndFlush( application, glEnableDisableStack, glStencilFunctionStack );
+  ResetDebugAndFlush(application, glEnableDisableStack, glStencilFunctionStack);
 
   // Check the defaults:
-  DALI_TEST_EQUALS<int>( static_cast<int>( renderer.GetProperty( Renderer::Property::STENCIL_FUNCTION ).Get<int>() ), static_cast<int>( StencilFunction::ALWAYS ), TEST_LOCATION );
-  DALI_TEST_EQUALS<int>( static_cast<int>( renderer.GetProperty( Renderer::Property::STENCIL_FUNCTION_MASK ).Get<int>() ), 0xFF, TEST_LOCATION );
-  DALI_TEST_EQUALS<int>( static_cast<int>( renderer.GetProperty( Renderer::Property::STENCIL_FUNCTION_REFERENCE ).Get<int>() ), 0x00, TEST_LOCATION );
-  DALI_TEST_EQUALS<int>( static_cast<int>( renderer.GetProperty( Renderer::Property::STENCIL_MASK ).Get<int>() ), 0xFF, TEST_LOCATION );
-  DALI_TEST_EQUALS<int>( static_cast<int>( renderer.GetProperty( Renderer::Property::STENCIL_OPERATION_ON_FAIL ).Get<int>() ), static_cast<int>( StencilOperation::KEEP ), TEST_LOCATION );
-  DALI_TEST_EQUALS<int>( static_cast<int>( renderer.GetProperty( Renderer::Property::STENCIL_OPERATION_ON_Z_FAIL ).Get<int>() ), static_cast<int>( StencilOperation::KEEP ), TEST_LOCATION );
-  DALI_TEST_EQUALS<int>( static_cast<int>( renderer.GetProperty( Renderer::Property::STENCIL_OPERATION_ON_Z_PASS ).Get<int>() ), static_cast<int>( StencilOperation::KEEP ), TEST_LOCATION );
+  DALI_TEST_EQUALS<int>(static_cast<int>(renderer.GetProperty(Renderer::Property::STENCIL_FUNCTION).Get<int>()), static_cast<int>(StencilFunction::ALWAYS), TEST_LOCATION);
+  DALI_TEST_EQUALS<int>(static_cast<int>(renderer.GetProperty(Renderer::Property::STENCIL_FUNCTION_MASK).Get<int>()), 0xFF, TEST_LOCATION);
+  DALI_TEST_EQUALS<int>(static_cast<int>(renderer.GetProperty(Renderer::Property::STENCIL_FUNCTION_REFERENCE).Get<int>()), 0x00, TEST_LOCATION);
+  DALI_TEST_EQUALS<int>(static_cast<int>(renderer.GetProperty(Renderer::Property::STENCIL_MASK).Get<int>()), 0xFF, TEST_LOCATION);
+  DALI_TEST_EQUALS<int>(static_cast<int>(renderer.GetProperty(Renderer::Property::STENCIL_OPERATION_ON_FAIL).Get<int>()), static_cast<int>(StencilOperation::KEEP), TEST_LOCATION);
+  DALI_TEST_EQUALS<int>(static_cast<int>(renderer.GetProperty(Renderer::Property::STENCIL_OPERATION_ON_Z_FAIL).Get<int>()), static_cast<int>(StencilOperation::KEEP), TEST_LOCATION);
+  DALI_TEST_EQUALS<int>(static_cast<int>(renderer.GetProperty(Renderer::Property::STENCIL_OPERATION_ON_Z_PASS).Get<int>()), static_cast<int>(StencilOperation::KEEP), TEST_LOCATION);
 
   END_TEST;
 }
@@ -2440,72 +2714,72 @@ int UtcDaliRendererSetRenderModeToUseStencilBuffer(void)
   TestApplication application;
   tet_infoline("Test setting the RenderMode to use the stencil buffer");
 
-  Renderer renderer = RendererTestFixture( application );
+  Renderer           renderer      = RendererTestFixture(application);
   TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
-  glAbstraction.EnableEnableDisableCallTrace( true );
-  glAbstraction.EnableStencilFunctionCallTrace( true );
-  TraceCallStack& glEnableDisableStack = glAbstraction.GetEnableDisableTrace();
+  glAbstraction.EnableEnableDisableCallTrace(true);
+  glAbstraction.EnableStencilFunctionCallTrace(true);
+  TraceCallStack& glEnableDisableStack   = glAbstraction.GetEnableDisableTrace();
   TraceCallStack& glStencilFunctionStack = glAbstraction.GetStencilFunctionTrace();
 
   // Set the StencilFunction to something other than the default, to confirm it is set as a property,
   // but NO GL call has been made while the RenderMode is set to not use the stencil buffer.
-  renderer.SetProperty( Renderer::Property::RENDER_MODE, RenderMode::NONE );
-  ResetDebugAndFlush( application, glEnableDisableStack, glStencilFunctionStack );
+  renderer.SetProperty(Renderer::Property::RENDER_MODE, RenderMode::NONE);
+  ResetDebugAndFlush(application, glEnableDisableStack, glStencilFunctionStack);
 
-  renderer.SetProperty( Renderer::Property::STENCIL_FUNCTION, StencilFunction::NEVER );
-  DALI_TEST_EQUALS<int>( static_cast<int>( renderer.GetProperty( Renderer::Property::STENCIL_FUNCTION ).Get<int>() ), static_cast<int>( StencilFunction::NEVER ), TEST_LOCATION );
+  renderer.SetProperty(Renderer::Property::STENCIL_FUNCTION, StencilFunction::NEVER);
+  DALI_TEST_EQUALS<int>(static_cast<int>(renderer.GetProperty(Renderer::Property::STENCIL_FUNCTION).Get<int>()), static_cast<int>(StencilFunction::NEVER), TEST_LOCATION);
 
-  ResetDebugAndFlush( application, glEnableDisableStack, glStencilFunctionStack );
-  std::string methodString( "StencilFunc" );
-  DALI_TEST_CHECK( !glStencilFunctionStack.FindMethod( methodString ) );
+  ResetDebugAndFlush(application, glEnableDisableStack, glStencilFunctionStack);
+  std::string methodString("StencilFunc");
+  DALI_TEST_CHECK(!glStencilFunctionStack.FindMethod(methodString));
 
   // Test the other RenderModes that will not enable the stencil buffer.
-  renderer.SetProperty( Renderer::Property::RENDER_MODE, RenderMode::AUTO );
-  ResetDebugAndFlush( application, glEnableDisableStack, glStencilFunctionStack );
-  DALI_TEST_CHECK( !glStencilFunctionStack.FindMethod( methodString ) );
+  renderer.SetProperty(Renderer::Property::RENDER_MODE, RenderMode::AUTO);
+  ResetDebugAndFlush(application, glEnableDisableStack, glStencilFunctionStack);
+  DALI_TEST_CHECK(!glStencilFunctionStack.FindMethod(methodString));
 
-  renderer.SetProperty( Renderer::Property::RENDER_MODE, RenderMode::COLOR );
-  ResetDebugAndFlush( application, glEnableDisableStack, glStencilFunctionStack );
-  DALI_TEST_CHECK( !glStencilFunctionStack.FindMethod( methodString ) );
+  renderer.SetProperty(Renderer::Property::RENDER_MODE, RenderMode::COLOR);
+  ResetDebugAndFlush(application, glEnableDisableStack, glStencilFunctionStack);
+  DALI_TEST_CHECK(!glStencilFunctionStack.FindMethod(methodString));
 
   // Now set the RenderMode to modes that will use the stencil buffer, and check the StencilFunction has changed.
-  renderer.SetProperty( Renderer::Property::RENDER_MODE, RenderMode::STENCIL );
-  ResetDebugAndFlush( application, glEnableDisableStack, glStencilFunctionStack );
+  renderer.SetProperty(Renderer::Property::RENDER_MODE, RenderMode::STENCIL);
+  ResetDebugAndFlush(application, glEnableDisableStack, glStencilFunctionStack);
 
-  DALI_TEST_CHECK( glEnableDisableStack.FindMethodAndParams( "Enable", GetStencilTestString() ) );
-  DALI_TEST_CHECK( glStencilFunctionStack.FindMethod( methodString ) );
+  DALI_TEST_CHECK(glEnableDisableStack.FindMethodAndParams("Enable", GetStencilTestString()));
+  DALI_TEST_CHECK(glStencilFunctionStack.FindMethod(methodString));
 
   // Test the COLOR_STENCIL RenderMode as it also enables the stencil buffer.
   // First set a mode to turn off the stencil buffer, so the enable is required.
-  renderer.SetProperty( Renderer::Property::RENDER_MODE, RenderMode::COLOR );
-  ResetDebugAndFlush( application, glEnableDisableStack, glStencilFunctionStack );
-  renderer.SetProperty( Renderer::Property::RENDER_MODE, RenderMode::COLOR_STENCIL );
+  renderer.SetProperty(Renderer::Property::RENDER_MODE, RenderMode::COLOR);
+  ResetDebugAndFlush(application, glEnableDisableStack, glStencilFunctionStack);
+  renderer.SetProperty(Renderer::Property::RENDER_MODE, RenderMode::COLOR_STENCIL);
   // Set a different stencil function as the last one is cached.
-  renderer.SetProperty( Renderer::Property::STENCIL_FUNCTION, StencilFunction::ALWAYS );
-  ResetDebugAndFlush( application, glEnableDisableStack, glStencilFunctionStack );
+  renderer.SetProperty(Renderer::Property::STENCIL_FUNCTION, StencilFunction::ALWAYS);
+  ResetDebugAndFlush(application, glEnableDisableStack, glStencilFunctionStack);
 
-  DALI_TEST_CHECK( glEnableDisableStack.FindMethodAndParams( "Enable", GetStencilTestString() ) );
-  DALI_TEST_CHECK( glStencilFunctionStack.FindMethod( methodString ) );
+  DALI_TEST_CHECK(glEnableDisableStack.FindMethodAndParams("Enable", GetStencilTestString()));
+  DALI_TEST_CHECK(glStencilFunctionStack.FindMethod(methodString));
 
   END_TEST;
 }
 
 // Helper function for the SetRenderModeToUseColorBuffer test.
-void CheckRenderModeColorMask( TestApplication& application, Renderer& renderer, RenderMode::Type renderMode, bool expectedValue )
+void CheckRenderModeColorMask(TestApplication& application, Renderer& renderer, RenderMode::Type renderMode, bool expectedValue)
 {
   // Set the RenderMode property to a value that should not allow color buffer writes.
-  renderer.SetProperty( Renderer::Property::RENDER_MODE, renderMode );
+  renderer.SetProperty(Renderer::Property::RENDER_MODE, renderMode);
   application.SendNotification();
   application.Render();
 
   // Check if ColorMask has been called, and that the values are correct.
-  TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
-  const TestGlAbstraction::ColorMaskParams& colorMaskParams( glAbstraction.GetColorMaskParams() );
+  TestGlAbstraction&                        glAbstraction = application.GetGlAbstraction();
+  const TestGlAbstraction::ColorMaskParams& colorMaskParams(glAbstraction.GetColorMaskParams());
 
-  DALI_TEST_EQUALS<bool>( colorMaskParams.red,   expectedValue, TEST_LOCATION );
-  DALI_TEST_EQUALS<bool>( colorMaskParams.green, expectedValue, TEST_LOCATION );
-  DALI_TEST_EQUALS<bool>( colorMaskParams.blue,  expectedValue, TEST_LOCATION );
-  DALI_TEST_EQUALS<bool>( colorMaskParams.alpha, expectedValue, TEST_LOCATION );
+  DALI_TEST_EQUALS<bool>(colorMaskParams.red, expectedValue, TEST_LOCATION);
+  DALI_TEST_EQUALS<bool>(colorMaskParams.green, expectedValue, TEST_LOCATION);
+  DALI_TEST_EQUALS<bool>(colorMaskParams.blue, expectedValue, TEST_LOCATION);
+  DALI_TEST_EQUALS<bool>(colorMaskParams.alpha, expectedValue, TEST_LOCATION);
 }
 
 int UtcDaliRendererSetRenderModeToUseColorBuffer(void)
@@ -2513,15 +2787,15 @@ int UtcDaliRendererSetRenderModeToUseColorBuffer(void)
   TestApplication application;
   tet_infoline("Test setting the RenderMode to use the color buffer");
 
-  Renderer renderer = RendererTestFixture( application );
+  Renderer renderer = RendererTestFixture(application);
 
   // Set the RenderMode property to a value that should not allow color buffer writes.
   // Then check if ColorMask has been called, and that the values are correct.
-  CheckRenderModeColorMask( application, renderer, RenderMode::AUTO, true );
-  CheckRenderModeColorMask( application, renderer, RenderMode::NONE, false );
-  CheckRenderModeColorMask( application, renderer, RenderMode::COLOR, true );
-  CheckRenderModeColorMask( application, renderer, RenderMode::STENCIL, false );
-  CheckRenderModeColorMask( application, renderer, RenderMode::COLOR_STENCIL, true );
+  CheckRenderModeColorMask(application, renderer, RenderMode::AUTO, true);
+  CheckRenderModeColorMask(application, renderer, RenderMode::NONE, false);
+  CheckRenderModeColorMask(application, renderer, RenderMode::COLOR, true);
+  CheckRenderModeColorMask(application, renderer, RenderMode::STENCIL, false);
+  CheckRenderModeColorMask(application, renderer, RenderMode::COLOR_STENCIL, true);
 
   END_TEST;
 }
@@ -2531,31 +2805,31 @@ int UtcDaliRendererSetStencilFunction(void)
   TestApplication application;
   tet_infoline("Test setting the StencilFunction");
 
-  Renderer renderer = RendererTestFixture( application );
+  Renderer           renderer      = RendererTestFixture(application);
   TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
-  glAbstraction.EnableEnableDisableCallTrace( true );
-  glAbstraction.EnableStencilFunctionCallTrace( true );
-  TraceCallStack& glEnableDisableStack = glAbstraction.GetEnableDisableTrace();
+  glAbstraction.EnableEnableDisableCallTrace(true);
+  glAbstraction.EnableStencilFunctionCallTrace(true);
+  TraceCallStack& glEnableDisableStack   = glAbstraction.GetEnableDisableTrace();
   TraceCallStack& glStencilFunctionStack = glAbstraction.GetStencilFunctionTrace();
 
   // RenderMode must use the stencil for StencilFunction to operate.
-  renderer.SetProperty( Renderer::Property::RENDER_MODE, RenderMode::STENCIL );
-  ResetDebugAndFlush( application, glEnableDisableStack, glStencilFunctionStack );
+  renderer.SetProperty(Renderer::Property::RENDER_MODE, RenderMode::STENCIL);
+  ResetDebugAndFlush(application, glEnableDisableStack, glStencilFunctionStack);
 
   /*
    * Lookup table for testing StencilFunction.
    * Note: This MUST be in the same order as the Dali::StencilFunction enum.
    */
   const int StencilFunctionLookupTable[] = {
-      GL_NEVER,
-      GL_LESS,
-      GL_EQUAL,
-      GL_LEQUAL,
-      GL_GREATER,
-      GL_NOTEQUAL,
-      GL_GEQUAL,
-      GL_ALWAYS
-  }; const int StencilFunctionLookupTableCount = sizeof( StencilFunctionLookupTable ) / sizeof( StencilFunctionLookupTable[0] );
+    GL_NEVER,
+    GL_LESS,
+    GL_EQUAL,
+    GL_LEQUAL,
+    GL_GREATER,
+    GL_NOTEQUAL,
+    GL_GEQUAL,
+    GL_ALWAYS};
+  const int StencilFunctionLookupTableCount = sizeof(StencilFunctionLookupTable) / sizeof(StencilFunctionLookupTable[0]);
 
   /*
    * Loop through all types of StencilFunction, checking:
@@ -2564,58 +2838,57 @@ int UtcDaliRendererSetStencilFunction(void)
    *  - Checks the correct parameters to "glStencilFunc" were used
    */
   std::string nonChangingParameters = "0, 255";
-  std::string methodString( "StencilFunc" );
-  for( int i = 0; i < StencilFunctionLookupTableCount; ++i )
+  std::string methodString("StencilFunc");
+  for(int i = 0; i < StencilFunctionLookupTableCount; ++i)
   {
     // Set the property.
-    renderer.SetProperty( Renderer::Property::STENCIL_FUNCTION, static_cast<Dali::StencilFunction::Type>( i ) );
+    renderer.SetProperty(Renderer::Property::STENCIL_FUNCTION, static_cast<Dali::StencilFunction::Type>(i));
 
     // Check GetProperty returns the same value.
-    DALI_TEST_EQUALS<int>( static_cast<int>( renderer.GetProperty( Renderer::Property::STENCIL_FUNCTION ).Get<int>() ), i, TEST_LOCATION );
+    DALI_TEST_EQUALS<int>(static_cast<int>(renderer.GetProperty(Renderer::Property::STENCIL_FUNCTION).Get<int>()), i, TEST_LOCATION);
 
     // Reset the trace debug.
-    ResetDebugAndFlush( application, glEnableDisableStack, glStencilFunctionStack );
+    ResetDebugAndFlush(application, glEnableDisableStack, glStencilFunctionStack);
 
     // Check the function is called and the parameters are correct.
     std::stringstream parameterStream;
-    parameterStream << StencilFunctionLookupTable[ i ] << ", " << nonChangingParameters;
+    parameterStream << StencilFunctionLookupTable[i] << ", " << nonChangingParameters;
 
-    DALI_TEST_CHECK( glStencilFunctionStack.FindMethodAndParams( methodString, parameterStream.str() ) );
+    DALI_TEST_CHECK(glStencilFunctionStack.FindMethodAndParams(methodString, parameterStream.str()));
   }
 
   // Change the Function Reference only and check the behavior is correct:
   // 170 is 0xaa in hex / 10101010 in binary (every other bit set).
   int testValueReference = 170;
-  renderer.SetProperty( Renderer::Property::STENCIL_FUNCTION_REFERENCE, testValueReference );
+  renderer.SetProperty(Renderer::Property::STENCIL_FUNCTION_REFERENCE, testValueReference);
 
-  DALI_TEST_EQUALS<int>( static_cast<int>( renderer.GetProperty( Renderer::Property::STENCIL_FUNCTION_REFERENCE ).Get<int>() ), testValueReference, TEST_LOCATION );
+  DALI_TEST_EQUALS<int>(static_cast<int>(renderer.GetProperty(Renderer::Property::STENCIL_FUNCTION_REFERENCE).Get<int>()), testValueReference, TEST_LOCATION);
 
-  ResetDebugAndFlush( application, glEnableDisableStack, glStencilFunctionStack );
+  ResetDebugAndFlush(application, glEnableDisableStack, glStencilFunctionStack);
 
-  DALI_TEST_EQUALS<int>( static_cast<int>( renderer.GetCurrentProperty( Renderer::Property::STENCIL_FUNCTION_REFERENCE ).Get<int>() ), testValueReference, TEST_LOCATION );
+  DALI_TEST_EQUALS<int>(static_cast<int>(renderer.GetCurrentProperty(Renderer::Property::STENCIL_FUNCTION_REFERENCE).Get<int>()), testValueReference, TEST_LOCATION);
 
   std::stringstream parameterStream;
-  parameterStream << StencilFunctionLookupTable[ StencilOperation::DECREMENT_WRAP ] << ", " << testValueReference << ", 255";
-
-  DALI_TEST_CHECK( glStencilFunctionStack.FindMethodAndParams( methodString, parameterStream.str() ) );
+  parameterStream << StencilFunctionLookupTable[StencilOperation::DECREMENT_WRAP] << ", " << testValueReference << ", 255";
 
+  DALI_TEST_CHECK(glStencilFunctionStack.FindMethodAndParams(methodString, parameterStream.str()));
 
   // Change the Function Mask only and check the behavior is correct:
   // 85 is 0x55 in hex / 01010101 in binary (every other bit set).
   int testValueMask = 85;
-  renderer.SetProperty( Renderer::Property::STENCIL_FUNCTION_MASK, testValueMask );
+  renderer.SetProperty(Renderer::Property::STENCIL_FUNCTION_MASK, testValueMask);
 
-  DALI_TEST_EQUALS<int>( static_cast<int>( renderer.GetProperty( Renderer::Property::STENCIL_FUNCTION_MASK ).Get<int>() ), testValueMask, TEST_LOCATION );
+  DALI_TEST_EQUALS<int>(static_cast<int>(renderer.GetProperty(Renderer::Property::STENCIL_FUNCTION_MASK).Get<int>()), testValueMask, TEST_LOCATION);
 
-  ResetDebugAndFlush( application, glEnableDisableStack, glStencilFunctionStack );
+  ResetDebugAndFlush(application, glEnableDisableStack, glStencilFunctionStack);
 
-  DALI_TEST_EQUALS<int>( static_cast<int>( renderer.GetCurrentProperty( Renderer::Property::STENCIL_FUNCTION_MASK ).Get<int>() ), testValueMask, TEST_LOCATION );
+  DALI_TEST_EQUALS<int>(static_cast<int>(renderer.GetCurrentProperty(Renderer::Property::STENCIL_FUNCTION_MASK).Get<int>()), testValueMask, TEST_LOCATION);
 
   // Clear the stringstream.
-  parameterStream.str( std::string() );
-  parameterStream << StencilFunctionLookupTable[ StencilOperation::DECREMENT_WRAP ] << ", " << testValueReference << ", " << testValueMask;
+  parameterStream.str(std::string());
+  parameterStream << StencilFunctionLookupTable[StencilOperation::DECREMENT_WRAP] << ", " << testValueReference << ", " << testValueMask;
 
-  DALI_TEST_CHECK( glStencilFunctionStack.FindMethodAndParams( methodString, parameterStream.str() ) );
+  DALI_TEST_CHECK(glStencilFunctionStack.FindMethodAndParams(methodString, parameterStream.str()));
 
   END_TEST;
 }
@@ -2625,15 +2898,15 @@ int UtcDaliRendererSetStencilOperation(void)
   TestApplication application;
   tet_infoline("Test setting the StencilOperation");
 
-  Renderer renderer = RendererTestFixture( application );
+  Renderer           renderer      = RendererTestFixture(application);
   TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
-  glAbstraction.EnableEnableDisableCallTrace( true );
-  glAbstraction.EnableStencilFunctionCallTrace( true );
-  TraceCallStack& glEnableDisableStack = glAbstraction.GetEnableDisableTrace();
+  glAbstraction.EnableEnableDisableCallTrace(true);
+  glAbstraction.EnableStencilFunctionCallTrace(true);
+  TraceCallStack& glEnableDisableStack   = glAbstraction.GetEnableDisableTrace();
   TraceCallStack& glStencilFunctionStack = glAbstraction.GetStencilFunctionTrace();
 
   // RenderMode must use the stencil for StencilOperation to operate.
-  renderer.SetProperty( Renderer::Property::RENDER_MODE, RenderMode::STENCIL );
+  renderer.SetProperty(Renderer::Property::RENDER_MODE, RenderMode::STENCIL);
 
   /*
    * Lookup table for testing StencilOperation.
@@ -2647,18 +2920,18 @@ int UtcDaliRendererSetStencilOperation(void)
     GL_DECR,
     GL_INVERT,
     GL_INCR_WRAP,
-    GL_DECR_WRAP
-  }; const int StencilOperationLookupTableCount = sizeof( StencilOperationLookupTable ) / sizeof( StencilOperationLookupTable[0] );
+    GL_DECR_WRAP};
+  const int StencilOperationLookupTableCount = sizeof(StencilOperationLookupTable) / sizeof(StencilOperationLookupTable[0]);
 
   // Set all 3 StencilOperation properties to a default.
-  renderer.SetProperty( Renderer::Property::STENCIL_OPERATION_ON_FAIL, StencilOperation::KEEP );
-  renderer.SetProperty( Renderer::Property::STENCIL_OPERATION_ON_Z_FAIL, StencilOperation::ZERO );
-  renderer.SetProperty( Renderer::Property::STENCIL_OPERATION_ON_Z_PASS, StencilOperation::ZERO );
+  renderer.SetProperty(Renderer::Property::STENCIL_OPERATION_ON_FAIL, StencilOperation::KEEP);
+  renderer.SetProperty(Renderer::Property::STENCIL_OPERATION_ON_Z_FAIL, StencilOperation::ZERO);
+  renderer.SetProperty(Renderer::Property::STENCIL_OPERATION_ON_Z_PASS, StencilOperation::ZERO);
 
   // Set our expected parameter list to the equivalent result.
-  int parameters[] = { StencilOperationLookupTable[ StencilOperation::ZERO ], StencilOperationLookupTable[ StencilOperation::ZERO ], StencilOperationLookupTable[ StencilOperation::ZERO ] };
+  int parameters[] = {StencilOperationLookupTable[StencilOperation::ZERO], StencilOperationLookupTable[StencilOperation::ZERO], StencilOperationLookupTable[StencilOperation::ZERO]};
 
-  ResetDebugAndFlush( application, glEnableDisableStack, glStencilFunctionStack );
+  ResetDebugAndFlush(application, glEnableDisableStack, glStencilFunctionStack);
 
   /*
    * Loop through all types of StencilOperation, checking:
@@ -2667,47 +2940,47 @@ int UtcDaliRendererSetStencilOperation(void)
    *  - Checks the correct parameters to "glStencilFunc" were used
    *  - Checks the above for all 3 parameter placements of StencilOperation ( OnFail, OnZFail, OnPass )
    */
-  std::string methodString( "StencilOp" );
+  std::string methodString("StencilOp");
 
-  for( int i = 0; i < StencilOperationLookupTableCount; ++i )
+  for(int i = 0; i < StencilOperationLookupTableCount; ++i)
   {
-    for( int j = 0; j < StencilOperationLookupTableCount; ++j )
+    for(int j = 0; j < StencilOperationLookupTableCount; ++j)
     {
-      for( int k = 0; k < StencilOperationLookupTableCount; ++k )
+      for(int k = 0; k < StencilOperationLookupTableCount; ++k)
       {
         // Set the property (outer loop causes all 3 different properties to be set separately).
-        renderer.SetProperty( Renderer::Property::STENCIL_OPERATION_ON_FAIL, static_cast<Dali::StencilFunction::Type>( i ) );
-        renderer.SetProperty( Renderer::Property::STENCIL_OPERATION_ON_Z_FAIL, static_cast<Dali::StencilFunction::Type>( j ) );
-        renderer.SetProperty( Renderer::Property::STENCIL_OPERATION_ON_Z_PASS, static_cast<Dali::StencilFunction::Type>( k ) );
+        renderer.SetProperty(Renderer::Property::STENCIL_OPERATION_ON_FAIL, static_cast<Dali::StencilFunction::Type>(i));
+        renderer.SetProperty(Renderer::Property::STENCIL_OPERATION_ON_Z_FAIL, static_cast<Dali::StencilFunction::Type>(j));
+        renderer.SetProperty(Renderer::Property::STENCIL_OPERATION_ON_Z_PASS, static_cast<Dali::StencilFunction::Type>(k));
 
         // Check GetProperty returns the same value.
-        DALI_TEST_EQUALS<int>( static_cast<int>( renderer.GetProperty( Renderer::Property::STENCIL_OPERATION_ON_FAIL ).Get<int>() ), i, TEST_LOCATION );
-        DALI_TEST_EQUALS<int>( static_cast<int>( renderer.GetProperty( Renderer::Property::STENCIL_OPERATION_ON_Z_FAIL ).Get<int>() ), j, TEST_LOCATION );
-        DALI_TEST_EQUALS<int>( static_cast<int>( renderer.GetProperty( Renderer::Property::STENCIL_OPERATION_ON_Z_PASS ).Get<int>() ), k, TEST_LOCATION );
+        DALI_TEST_EQUALS<int>(static_cast<int>(renderer.GetProperty(Renderer::Property::STENCIL_OPERATION_ON_FAIL).Get<int>()), i, TEST_LOCATION);
+        DALI_TEST_EQUALS<int>(static_cast<int>(renderer.GetProperty(Renderer::Property::STENCIL_OPERATION_ON_Z_FAIL).Get<int>()), j, TEST_LOCATION);
+        DALI_TEST_EQUALS<int>(static_cast<int>(renderer.GetProperty(Renderer::Property::STENCIL_OPERATION_ON_Z_PASS).Get<int>()), k, TEST_LOCATION);
 
         // Reset the trace debug.
-        ResetDebugAndFlush( application, glEnableDisableStack, glStencilFunctionStack );
+        ResetDebugAndFlush(application, glEnableDisableStack, glStencilFunctionStack);
 
         // Check the function is called and the parameters are correct.
         // Set the expected parameter value at its correct index (only)
-        parameters[ 0u ] = StencilOperationLookupTable[ i ];
-        parameters[ 1u ] = StencilOperationLookupTable[ j ];
-        parameters[ 2u ] = StencilOperationLookupTable[ k ];
+        parameters[0u] = StencilOperationLookupTable[i];
+        parameters[1u] = StencilOperationLookupTable[j];
+        parameters[2u] = StencilOperationLookupTable[k];
 
         // Build the parameter list.
         std::stringstream parameterStream;
-        for( int parameterBuild = 0; parameterBuild < 3; ++parameterBuild )
+        for(int parameterBuild = 0; parameterBuild < 3; ++parameterBuild)
         {
-          parameterStream << parameters[ parameterBuild ];
+          parameterStream << parameters[parameterBuild];
           // Comma-separate the parameters.
-          if( parameterBuild < 2 )
+          if(parameterBuild < 2)
           {
             parameterStream << ", ";
           }
         }
 
         // Check the function was called and the parameters were correct.
-        DALI_TEST_CHECK( glStencilFunctionStack.FindMethodAndParams( methodString, parameterStream.str() ) );
+        DALI_TEST_CHECK(glStencilFunctionStack.FindMethodAndParams(methodString, parameterStream.str()));
       }
     }
   }
@@ -2720,46 +2993,46 @@ int UtcDaliRendererSetStencilMask(void)
   TestApplication application;
   tet_infoline("Test setting the StencilMask");
 
-  Renderer renderer = RendererTestFixture( application );
+  Renderer           renderer      = RendererTestFixture(application);
   TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
-  glAbstraction.EnableEnableDisableCallTrace( true );
-  glAbstraction.EnableStencilFunctionCallTrace( true );
-  TraceCallStack& glEnableDisableStack = glAbstraction.GetEnableDisableTrace();
+  glAbstraction.EnableEnableDisableCallTrace(true);
+  glAbstraction.EnableStencilFunctionCallTrace(true);
+  TraceCallStack& glEnableDisableStack   = glAbstraction.GetEnableDisableTrace();
   TraceCallStack& glStencilFunctionStack = glAbstraction.GetStencilFunctionTrace();
 
   // RenderMode must use the stencil for StencilMask to operate.
-  renderer.SetProperty( Renderer::Property::RENDER_MODE, RenderMode::STENCIL );
+  renderer.SetProperty(Renderer::Property::RENDER_MODE, RenderMode::STENCIL);
 
   // Set the StencilMask property to a value.
-  renderer.SetProperty( Renderer::Property::STENCIL_MASK, 0x00 );
+  renderer.SetProperty(Renderer::Property::STENCIL_MASK, 0x00);
 
   // Check GetProperty returns the same value.
-  DALI_TEST_EQUALS<int>( static_cast<int>( renderer.GetProperty( Renderer::Property::STENCIL_MASK ).Get<int>() ), 0x00, TEST_LOCATION );
+  DALI_TEST_EQUALS<int>(static_cast<int>(renderer.GetProperty(Renderer::Property::STENCIL_MASK).Get<int>()), 0x00, TEST_LOCATION);
 
-  ResetDebugAndFlush( application, glEnableDisableStack, glStencilFunctionStack );
+  ResetDebugAndFlush(application, glEnableDisableStack, glStencilFunctionStack);
 
-  DALI_TEST_EQUALS<int>( static_cast<int>( renderer.GetCurrentProperty( Renderer::Property::STENCIL_MASK ).Get<int>() ), 0x00, TEST_LOCATION );
+  DALI_TEST_EQUALS<int>(static_cast<int>(renderer.GetCurrentProperty(Renderer::Property::STENCIL_MASK).Get<int>()), 0x00, TEST_LOCATION);
 
-  std::string methodString( "StencilMask" );
+  std::string methodString("StencilMask");
   std::string parameterString = "0";
 
   // Check the function was called and the parameters were correct.
-  DALI_TEST_CHECK( glStencilFunctionStack.FindMethodAndParams( methodString, parameterString ) );
+  DALI_TEST_CHECK(glStencilFunctionStack.FindMethodAndParams(methodString, parameterString));
 
   // Set the StencilMask property to another value to ensure it has changed.
-  renderer.SetProperty( Renderer::Property::STENCIL_MASK, 0xFF );
+  renderer.SetProperty(Renderer::Property::STENCIL_MASK, 0xFF);
 
   // Check GetProperty returns the same value.
-  DALI_TEST_EQUALS<int>( static_cast<int>( renderer.GetProperty( Renderer::Property::STENCIL_MASK ).Get<int>() ), 0xFF, TEST_LOCATION );
+  DALI_TEST_EQUALS<int>(static_cast<int>(renderer.GetProperty(Renderer::Property::STENCIL_MASK).Get<int>()), 0xFF, TEST_LOCATION);
 
-  ResetDebugAndFlush( application, glEnableDisableStack, glStencilFunctionStack );
+  ResetDebugAndFlush(application, glEnableDisableStack, glStencilFunctionStack);
 
-  DALI_TEST_EQUALS<int>( static_cast<int>( renderer.GetCurrentProperty( Renderer::Property::STENCIL_MASK ).Get<int>() ), 0xFF, TEST_LOCATION );
+  DALI_TEST_EQUALS<int>(static_cast<int>(renderer.GetCurrentProperty(Renderer::Property::STENCIL_MASK).Get<int>()), 0xFF, TEST_LOCATION);
 
   parameterString = "255";
 
   // Check the function was called and the parameters were correct.
-  DALI_TEST_CHECK( glStencilFunctionStack.FindMethodAndParams( methodString, parameterString ) );
+  DALI_TEST_CHECK(glStencilFunctionStack.FindMethodAndParams(methodString, parameterString));
 
   END_TEST;
 }
@@ -2771,25 +3044,25 @@ int UtcDaliRendererWrongNumberOfTextures(void)
 
   //Create a TextureSet with 4 textures (One more texture in the texture set than active samplers)
   //@note Shaders in the test suit have 3 active samplers. See TestGlAbstraction::GetActiveUniform()
-  Texture texture = Texture::New( TextureType::TEXTURE_2D, Pixel::RGBA8888, 64u, 64u );
+  Texture    texture    = Texture::New(TextureType::TEXTURE_2D, Pixel::RGBA8888, 64u, 64u);
   TextureSet textureSet = CreateTextureSet();
-  textureSet.SetTexture(0, texture );
-  textureSet.SetTexture(1, texture );
-  textureSet.SetTexture(2, texture );
-  textureSet.SetTexture(3, texture );
-  Shader shader = Shader::New("VertexSource", "FragmentSource");
+  textureSet.SetTexture(0, texture);
+  textureSet.SetTexture(1, texture);
+  textureSet.SetTexture(2, texture);
+  textureSet.SetTexture(3, texture);
+  Shader   shader   = Shader::New("VertexSource", "FragmentSource");
   Geometry geometry = CreateQuadGeometry();
-  Renderer renderer = Renderer::New( geometry, shader );
-  renderer.SetTextures( textureSet );
+  Renderer renderer = Renderer::New(geometry, shader);
+  renderer.SetTextures(textureSet);
 
-  Actor actor= Actor::New();
+  Actor actor = Actor::New();
   actor.AddRenderer(renderer);
-  actor.SetProperty( Actor::Property::POSITION, Vector2(0.0f,0.0f));
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 100.0f, 100.0f ) );
-  Stage::GetCurrent().Add(actor);
+  actor.SetProperty(Actor::Property::POSITION, Vector2(0.0f, 0.0f));
+  actor.SetProperty(Actor::Property::SIZE, Vector2(100.0f, 100.0f));
+  application.GetScene().Add(actor);
 
-  TestGlAbstraction& gl = application.GetGlAbstraction();
-  TraceCallStack& drawTrace = gl.GetDrawTrace();
+  TestGlAbstraction& gl        = application.GetGlAbstraction();
+  TraceCallStack&    drawTrace = gl.GetDrawTrace();
   drawTrace.Reset();
   drawTrace.Enable(true);
 
@@ -2797,19 +3070,19 @@ int UtcDaliRendererWrongNumberOfTextures(void)
   application.Render(0);
 
   //Test we do the drawcall when TextureSet has more textures than there are active samplers in the shader
-  DALI_TEST_EQUALS( drawTrace.CountMethod("DrawElements"), 1, TEST_LOCATION );
+  DALI_TEST_EQUALS(drawTrace.CountMethod("DrawElements"), 1, TEST_LOCATION);
 
   //Create a TextureSet with 1 texture (two more active samplers than texture in the texture set)
   //@note Shaders in the test suit have 3 active samplers. See TestGlAbstraction::GetActiveUniform()
   textureSet = CreateTextureSet();
-  renderer.SetTextures( textureSet );
-  textureSet.SetTexture(0, texture );
+  renderer.SetTextures(textureSet);
+  textureSet.SetTexture(0, texture);
   drawTrace.Reset();
   application.SendNotification();
   application.Render(0);
 
   //Test we do the drawcall when TextureSet has less textures than there are active samplers in the shader.
-  DALI_TEST_EQUALS( drawTrace.CountMethod("DrawElements"), 1, TEST_LOCATION );
+  DALI_TEST_EQUALS(drawTrace.CountMethod("DrawElements"), 1, TEST_LOCATION);
 
   END_TEST;
 }
@@ -2818,46 +3091,46 @@ int UtcDaliRendererOpacity(void)
 {
   TestApplication application;
 
-  tet_infoline( "Test OPACITY property" );
+  tet_infoline("Test OPACITY property");
 
   Geometry geometry = CreateQuadGeometry();
-  Shader shader = Shader::New( "vertexSrc", "fragmentSrc" );
-  Renderer renderer = Renderer::New( geometry, shader );
+  Shader   shader   = Shader::New("vertexSrc", "fragmentSrc");
+  Renderer renderer = Renderer::New(geometry, shader);
 
   Actor actor = Actor::New();
-  actor.AddRenderer( renderer );
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  actor.SetProperty( Actor::Property::COLOR, Vector4( 1.0f, 0.0f, 1.0f, 1.0f ) );
-  Stage::GetCurrent().Add( actor );
+  actor.AddRenderer(renderer);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  actor.SetProperty(Actor::Property::COLOR, Vector4(1.0f, 0.0f, 1.0f, 1.0f));
+  application.GetScene().Add(actor);
 
-  Property::Value value = renderer.GetProperty( DevelRenderer::Property::OPACITY );
-  float opacity;
-  DALI_TEST_CHECK( value.Get( opacity ) );
-  DALI_TEST_EQUALS( opacity, 1.0f, Dali::Math::MACHINE_EPSILON_1, TEST_LOCATION );
+  Property::Value value = renderer.GetProperty(DevelRenderer::Property::OPACITY);
+  float           opacity;
+  DALI_TEST_CHECK(value.Get(opacity));
+  DALI_TEST_EQUALS(opacity, 1.0f, Dali::Math::MACHINE_EPSILON_1, TEST_LOCATION);
 
   application.SendNotification();
   application.Render();
 
-  Vector4 actualValue;
+  Vector4            actualValue;
   TestGlAbstraction& gl = application.GetGlAbstraction();
-  DALI_TEST_CHECK( gl.GetUniformValue< Vector4 >( "uColor", actualValue ) );
-  DALI_TEST_EQUALS( actualValue.a, 1.0f, Dali::Math::MACHINE_EPSILON_1, TEST_LOCATION );
+  DALI_TEST_CHECK(gl.GetUniformValue<Vector4>("uColor", actualValue));
+  DALI_TEST_EQUALS(actualValue.a, 1.0f, Dali::Math::MACHINE_EPSILON_1, TEST_LOCATION);
 
-  renderer.SetProperty( DevelRenderer::Property::OPACITY, 0.5f );
+  renderer.SetProperty(DevelRenderer::Property::OPACITY, 0.5f);
 
   application.SendNotification();
   application.Render();
 
-  value = renderer.GetProperty( DevelRenderer::Property::OPACITY );
-  DALI_TEST_CHECK( value.Get( opacity ) );
-  DALI_TEST_EQUALS( opacity, 0.5f, Dali::Math::MACHINE_EPSILON_1, TEST_LOCATION );
+  value = renderer.GetProperty(DevelRenderer::Property::OPACITY);
+  DALI_TEST_CHECK(value.Get(opacity));
+  DALI_TEST_EQUALS(opacity, 0.5f, Dali::Math::MACHINE_EPSILON_1, TEST_LOCATION);
 
-  value = renderer.GetCurrentProperty( DevelRenderer::Property::OPACITY );
-  DALI_TEST_CHECK( value.Get( opacity ) );
-  DALI_TEST_EQUALS( opacity, 0.5f, Dali::Math::MACHINE_EPSILON_1, TEST_LOCATION );
+  value = renderer.GetCurrentProperty(DevelRenderer::Property::OPACITY);
+  DALI_TEST_CHECK(value.Get(opacity));
+  DALI_TEST_EQUALS(opacity, 0.5f, Dali::Math::MACHINE_EPSILON_1, TEST_LOCATION);
 
-  DALI_TEST_CHECK( gl.GetUniformValue< Vector4 >( "uColor", actualValue ) );
-  DALI_TEST_EQUALS( actualValue.a, 0.5f, Dali::Math::MACHINE_EPSILON_1, TEST_LOCATION );
+  DALI_TEST_CHECK(gl.GetUniformValue<Vector4>("uColor", actualValue));
+  DALI_TEST_EQUALS(actualValue.a, 0.5f, Dali::Math::MACHINE_EPSILON_1, TEST_LOCATION);
 
   END_TEST;
 }
@@ -2866,51 +3139,51 @@ int UtcDaliRendererOpacityAnimation(void)
 {
   TestApplication application;
 
-  tet_infoline( "Test OPACITY property animation" );
+  tet_infoline("Test OPACITY property animation");
 
   Geometry geometry = CreateQuadGeometry();
-  Shader shader = Shader::New( "vertexSrc", "fragmentSrc" );
-  Renderer renderer = Renderer::New( geometry, shader );
+  Shader   shader   = Shader::New("vertexSrc", "fragmentSrc");
+  Renderer renderer = Renderer::New(geometry, shader);
 
   Actor actor = Actor::New();
-  actor.AddRenderer( renderer );
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  actor.SetProperty( Actor::Property::COLOR, Vector4( 1.0f, 0.0f, 1.0f, 1.0f ) );
-  Stage::GetCurrent().Add( actor );
+  actor.AddRenderer(renderer);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  actor.SetProperty(Actor::Property::COLOR, Vector4(1.0f, 0.0f, 1.0f, 1.0f));
+  application.GetScene().Add(actor);
 
   application.SendNotification();
   application.Render(0);
 
-  Property::Value value = renderer.GetProperty( DevelRenderer::Property::OPACITY );
-  float opacity;
-  DALI_TEST_CHECK( value.Get( opacity ) );
-  DALI_TEST_EQUALS( opacity, 1.0f, Dali::Math::MACHINE_EPSILON_1, TEST_LOCATION );
+  Property::Value value = renderer.GetProperty(DevelRenderer::Property::OPACITY);
+  float           opacity;
+  DALI_TEST_CHECK(value.Get(opacity));
+  DALI_TEST_EQUALS(opacity, 1.0f, Dali::Math::MACHINE_EPSILON_1, TEST_LOCATION);
 
-  Animation animation = Animation::New( 1.0f );
-  animation.AnimateTo( Property( renderer, DevelRenderer::Property::OPACITY ), 0.0f );
+  Animation animation = Animation::New(1.0f);
+  animation.AnimateTo(Property(renderer, DevelRenderer::Property::OPACITY), 0.0f);
   animation.Play();
 
   application.SendNotification();
-  application.Render( 1000 );
+  application.Render(1000);
 
-  value = renderer.GetProperty( DevelRenderer::Property::OPACITY );
-  DALI_TEST_CHECK( value.Get( opacity ) );
-  DALI_TEST_EQUALS( opacity, 0.0f, Dali::Math::MACHINE_EPSILON_1, TEST_LOCATION );
+  value = renderer.GetProperty(DevelRenderer::Property::OPACITY);
+  DALI_TEST_CHECK(value.Get(opacity));
+  DALI_TEST_EQUALS(opacity, 0.0f, Dali::Math::MACHINE_EPSILON_1, TEST_LOCATION);
 
   // Need to clear the animation before setting the property as the animation value is baked and will override any previous setters
   animation.Clear();
-  renderer.SetProperty( DevelRenderer::Property::OPACITY, 0.1f );
+  renderer.SetProperty(DevelRenderer::Property::OPACITY, 0.1f);
 
-  animation.AnimateBy( Property( renderer, DevelRenderer::Property::OPACITY ), 0.5f );
+  animation.AnimateBy(Property(renderer, DevelRenderer::Property::OPACITY), 0.5f);
   animation.Play();
 
   application.SendNotification();
-  application.Render( 1000 );
+  application.Render(1000);
 
-  value = renderer.GetProperty( DevelRenderer::Property::OPACITY );
-  DALI_TEST_CHECK( value.Get( opacity ) );
-  DALI_TEST_EQUALS( opacity, 0.6f, Dali::Math::MACHINE_EPSILON_1, TEST_LOCATION );
-  DALI_TEST_EQUALS( opacity, renderer.GetCurrentProperty( DevelRenderer::Property::OPACITY ).Get< float >(), Dali::Math::MACHINE_EPSILON_1, TEST_LOCATION );
+  value = renderer.GetProperty(DevelRenderer::Property::OPACITY);
+  DALI_TEST_CHECK(value.Get(opacity));
+  DALI_TEST_EQUALS(opacity, 0.6f, Dali::Math::MACHINE_EPSILON_1, TEST_LOCATION);
+  DALI_TEST_EQUALS(opacity, renderer.GetCurrentProperty(DevelRenderer::Property::OPACITY).Get<float>(), Dali::Math::MACHINE_EPSILON_1, TEST_LOCATION);
 
   END_TEST;
 }
@@ -2919,25 +3192,25 @@ int UtcDaliRendererInvalidProperty(void)
 {
   TestApplication application;
 
-  tet_infoline( "Test invalid property" );
+  tet_infoline("Test invalid property");
 
   Geometry geometry = CreateQuadGeometry();
-  Shader shader = Shader::New( "vertexSrc", "fragmentSrc" );
-  Renderer renderer = Renderer::New( geometry, shader );
+  Shader   shader   = Shader::New("vertexSrc", "fragmentSrc");
+  Renderer renderer = Renderer::New(geometry, shader);
 
   Actor actor = Actor::New();
-  actor.AddRenderer( renderer );
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  Stage::GetCurrent().Add( actor );
+  actor.AddRenderer(renderer);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  application.GetScene().Add(actor);
 
   application.SendNotification();
   application.Render(0);
 
-  Property::Value value = renderer.GetProperty( Renderer::Property::DEPTH_INDEX + 100 );
-  DALI_TEST_CHECK( value.GetType() == Property::Type::NONE );
+  Property::Value value = renderer.GetProperty(Renderer::Property::DEPTH_INDEX + 100);
+  DALI_TEST_CHECK(value.GetType() == Property::Type::NONE);
 
-  value = renderer.GetCurrentProperty( Renderer::Property::DEPTH_INDEX + 100 );
-  DALI_TEST_CHECK( value.GetType() == Property::Type::NONE );
+  value = renderer.GetCurrentProperty(Renderer::Property::DEPTH_INDEX + 100);
+  DALI_TEST_CHECK(value.GetType() == Property::Type::NONE);
 
   END_TEST;
 }
@@ -2946,35 +3219,35 @@ int UtcDaliRendererRenderingBehavior(void)
 {
   TestApplication application;
 
-  tet_infoline( "Test RENDERING_BEHAVIOR property" );
+  tet_infoline("Test RENDERING_BEHAVIOR property");
 
   Geometry geometry = CreateQuadGeometry();
-  Shader shader = Shader::New( "vertexSrc", "fragmentSrc" );
-  Renderer renderer = Renderer::New( geometry, shader );
+  Shader   shader   = Shader::New("vertexSrc", "fragmentSrc");
+  Renderer renderer = Renderer::New(geometry, shader);
 
   Actor actor = Actor::New();
-  actor.AddRenderer( renderer );
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  actor.SetProperty( Actor::Property::COLOR, Vector4( 1.0f, 0.0f, 1.0f, 1.0f ) );
-  Stage::GetCurrent().Add( actor );
+  actor.AddRenderer(renderer);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  actor.SetProperty(Actor::Property::COLOR, Vector4(1.0f, 0.0f, 1.0f, 1.0f));
+  application.GetScene().Add(actor);
 
-  Property::Value value = renderer.GetProperty( DevelRenderer::Property::RENDERING_BEHAVIOR );
-  int renderingBehavior;
-  DALI_TEST_CHECK( value.Get( renderingBehavior ) );
-  DALI_TEST_EQUALS( static_cast< DevelRenderer::Rendering::Type >( renderingBehavior ), DevelRenderer::Rendering::IF_REQUIRED, TEST_LOCATION );
+  Property::Value value = renderer.GetProperty(DevelRenderer::Property::RENDERING_BEHAVIOR);
+  int             renderingBehavior;
+  DALI_TEST_CHECK(value.Get(renderingBehavior));
+  DALI_TEST_EQUALS(static_cast<DevelRenderer::Rendering::Type>(renderingBehavior), DevelRenderer::Rendering::IF_REQUIRED, TEST_LOCATION);
 
   application.SendNotification();
   application.Render();
 
   uint32_t updateStatus = application.GetUpdateStatus();
 
-  DALI_TEST_CHECK( !( updateStatus & Integration::KeepUpdating::STAGE_KEEP_RENDERING ) );
+  DALI_TEST_CHECK(!(updateStatus & Integration::KeepUpdating::STAGE_KEEP_RENDERING));
 
-  renderer.SetProperty( DevelRenderer::Property::RENDERING_BEHAVIOR, DevelRenderer::Rendering::CONTINUOUSLY );
+  renderer.SetProperty(DevelRenderer::Property::RENDERING_BEHAVIOR, DevelRenderer::Rendering::CONTINUOUSLY);
 
-  value = renderer.GetProperty( DevelRenderer::Property::RENDERING_BEHAVIOR );
-  DALI_TEST_CHECK( value.Get( renderingBehavior ) );
-  DALI_TEST_EQUALS( static_cast< DevelRenderer::Rendering::Type >( renderingBehavior ), DevelRenderer::Rendering::CONTINUOUSLY, TEST_LOCATION );
+  value = renderer.GetProperty(DevelRenderer::Property::RENDERING_BEHAVIOR);
+  DALI_TEST_CHECK(value.Get(renderingBehavior));
+  DALI_TEST_EQUALS(static_cast<DevelRenderer::Rendering::Type>(renderingBehavior), DevelRenderer::Rendering::CONTINUOUSLY, TEST_LOCATION);
 
   // Render and check the update status
   application.SendNotification();
@@ -2982,11 +3255,11 @@ int UtcDaliRendererRenderingBehavior(void)
 
   updateStatus = application.GetUpdateStatus();
 
-  DALI_TEST_CHECK( updateStatus & Integration::KeepUpdating::STAGE_KEEP_RENDERING );
+  DALI_TEST_CHECK(updateStatus & Integration::KeepUpdating::STAGE_KEEP_RENDERING);
 
-  value = renderer.GetCurrentProperty( DevelRenderer::Property::RENDERING_BEHAVIOR );
-  DALI_TEST_CHECK( value.Get( renderingBehavior ) );
-  DALI_TEST_EQUALS( static_cast< DevelRenderer::Rendering::Type >( renderingBehavior ), DevelRenderer::Rendering::CONTINUOUSLY, TEST_LOCATION );
+  value = renderer.GetCurrentProperty(DevelRenderer::Property::RENDERING_BEHAVIOR);
+  DALI_TEST_CHECK(value.Get(renderingBehavior));
+  DALI_TEST_EQUALS(static_cast<DevelRenderer::Rendering::Type>(renderingBehavior), DevelRenderer::Rendering::CONTINUOUSLY, TEST_LOCATION);
 
   // Render again and check the update status
   application.SendNotification();
@@ -2994,10 +3267,10 @@ int UtcDaliRendererRenderingBehavior(void)
 
   updateStatus = application.GetUpdateStatus();
 
-  DALI_TEST_CHECK( updateStatus & Integration::KeepUpdating::STAGE_KEEP_RENDERING );
+  DALI_TEST_CHECK(updateStatus & Integration::KeepUpdating::STAGE_KEEP_RENDERING);
 
   // Change rendering behavior
-  renderer.SetProperty( DevelRenderer::Property::RENDERING_BEHAVIOR, DevelRenderer::Rendering::IF_REQUIRED );
+  renderer.SetProperty(DevelRenderer::Property::RENDERING_BEHAVIOR, DevelRenderer::Rendering::IF_REQUIRED);
 
   // Render and check the update status
   application.SendNotification();
@@ -3005,7 +3278,7 @@ int UtcDaliRendererRenderingBehavior(void)
 
   updateStatus = application.GetUpdateStatus();
 
-  DALI_TEST_CHECK( !( updateStatus & Integration::KeepUpdating::STAGE_KEEP_RENDERING ) );
+  DALI_TEST_CHECK(!(updateStatus & Integration::KeepUpdating::STAGE_KEEP_RENDERING));
 
   END_TEST;
 }
@@ -3014,27 +3287,27 @@ int UtcDaliRendererRegenerateUniformMap(void)
 {
   TestApplication application;
 
-  tet_infoline( "Test regenerating uniform map when attaching renderer to the node" );
+  tet_infoline("Test regenerating uniform map when attaching renderer to the node");
 
   Geometry geometry = CreateQuadGeometry();
-  Shader shader = Shader::New( "vertexSrc", "fragmentSrc" );
-  Renderer renderer = Renderer::New( geometry, shader );
+  Shader   shader   = Shader::New("vertexSrc", "fragmentSrc");
+  Renderer renderer = Renderer::New(geometry, shader);
 
   Actor actor = Actor::New();
-  actor.AddRenderer( renderer );
-  actor.SetProperty( Actor::Property::SIZE, Vector2( 400.0f, 400.0f ) );
-  actor.SetProperty( Actor::Property::COLOR, Vector4( 1.0f, 0.0f, 1.0f, 1.0f ) );
-  Stage::GetCurrent().Add( actor );
+  actor.AddRenderer(renderer);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  actor.SetProperty(Actor::Property::COLOR, Vector4(1.0f, 0.0f, 1.0f, 1.0f));
+  application.GetScene().Add(actor);
 
   application.SendNotification();
   application.Render();
 
-  actor.RemoveRenderer( renderer );
-  shader = Shader::New( "vertexSrc", "fragmentSrc" );
-  shader.RegisterProperty( "opacity", 0.5f );
-  renderer.SetShader( shader );
+  actor.RemoveRenderer(renderer);
+  shader = Shader::New("vertexSrc", "fragmentSrc");
+  shader.RegisterProperty("opacity", 0.5f);
+  renderer.SetShader(shader);
 
-  Stage::GetCurrent().KeepRendering( 1.0f );
+  Stage::GetCurrent().KeepRendering(1.0f);
 
   // Update for several frames
   application.SendNotification();
@@ -3047,13 +3320,172 @@ int UtcDaliRendererRegenerateUniformMap(void)
   application.Render();
 
   // Add Renderer
-  actor.AddRenderer( renderer );
+  actor.AddRenderer(renderer);
   application.SendNotification();
   application.Render();
 
   // Nothing to test here, the test must not crash
   auto updateStatus = application.GetUpdateStatus();
-  DALI_TEST_CHECK( updateStatus & Integration::KeepUpdating::STAGE_KEEP_RENDERING );
+  DALI_TEST_CHECK(updateStatus & Integration::KeepUpdating::STAGE_KEEP_RENDERING);
+
+  END_TEST;
+}
+
+int UtcDaliRendererAddDrawCommands(void)
+{
+  TestApplication application;
+
+  tet_infoline("Test adding draw commands to the renderer");
+
+  TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
+  glAbstraction.EnableEnableDisableCallTrace(true);
+
+  Geometry geometry = CreateQuadGeometry();
+  Shader   shader   = Shader::New("vertexSrc", "fragmentSrc");
+  Renderer renderer = Renderer::New(geometry, shader);
+
+  renderer.SetProperty(Renderer::Property::BLEND_MODE, Dali::BlendMode::ON);
+  Actor actor = Actor::New();
+  actor.AddRenderer(renderer);
+  actor.SetProperty(Actor::Property::SIZE, Vector2(400.0f, 400.0f));
+  actor.SetProperty(Actor::Property::COLOR, Vector4(1.0f, 0.0f, 1.0f, 1.0f));
+  application.GetScene().Add(actor);
+
+  // Expect delivering a single draw call
+  auto& drawTrace = glAbstraction.GetDrawTrace();
+  drawTrace.Reset();
+  drawTrace.Enable(true);
+  application.SendNotification();
+  application.Render();
+
+  DALI_TEST_EQUALS(drawTrace.CountMethod("DrawElements"), 1, TEST_LOCATION);
+
+  auto drawCommand1         = DevelRenderer::DrawCommand{};
+  drawCommand1.drawType     = DevelRenderer::DrawType::INDEXED;
+  drawCommand1.firstIndex   = 0;
+  drawCommand1.elementCount = 2;
+  drawCommand1.queue        = DevelRenderer::RENDER_QUEUE_OPAQUE;
+
+  auto drawCommand2         = DevelRenderer::DrawCommand{};
+  drawCommand2.drawType     = DevelRenderer::DrawType::INDEXED;
+  drawCommand2.firstIndex   = 2;
+  drawCommand2.elementCount = 2;
+  drawCommand2.queue        = DevelRenderer::RENDER_QUEUE_TRANSPARENT;
+
+  auto drawCommand3         = DevelRenderer::DrawCommand{};
+  drawCommand3.drawType     = DevelRenderer::DrawType::ARRAY;
+  drawCommand3.firstIndex   = 2;
+  drawCommand3.elementCount = 2;
+  drawCommand3.queue        = DevelRenderer::RENDER_QUEUE_OPAQUE;
+
+  DevelRenderer::AddDrawCommand(renderer, drawCommand1);
+  DevelRenderer::AddDrawCommand(renderer, drawCommand2);
+  DevelRenderer::AddDrawCommand(renderer, drawCommand3);
+
+  drawTrace.Reset();
+  drawTrace.Enable(true);
+  application.SendNotification();
+  application.Render();
+
+  DALI_TEST_EQUALS(drawTrace.CountMethod("DrawElements"), 3, TEST_LOCATION);
+
+  END_TEST;
+}
+int UtcDaliRendererSetGeometryNegative(void)
+{
+  TestApplication application;
+  Dali::Renderer  instance;
+  try
+  {
+    Dali::Geometry arg1;
+    instance.SetGeometry(arg1);
+    DALI_TEST_CHECK(false); // Should not get here
+  }
+  catch(...)
+  {
+    DALI_TEST_CHECK(true); // We expect an assert
+  }
+  END_TEST;
+}
+
+int UtcDaliRendererSetTexturesNegative(void)
+{
+  TestApplication application;
+  Dali::Renderer  instance;
+  try
+  {
+    Dali::TextureSet arg1;
+    instance.SetTextures(arg1);
+    DALI_TEST_CHECK(false); // Should not get here
+  }
+  catch(...)
+  {
+    DALI_TEST_CHECK(true); // We expect an assert
+  }
+  END_TEST;
+}
+
+int UtcDaliRendererSetShaderNegative(void)
+{
+  TestApplication application;
+  Dali::Renderer  instance;
+  try
+  {
+    Dali::Shader arg1;
+    instance.SetShader(arg1);
+    DALI_TEST_CHECK(false); // Should not get here
+  }
+  catch(...)
+  {
+    DALI_TEST_CHECK(true); // We expect an assert
+  }
+  END_TEST;
+}
+
+int UtcDaliRendererGetGeometryNegative(void)
+{
+  TestApplication application;
+  Dali::Renderer  instance;
+  try
+  {
+    instance.GetGeometry();
+    DALI_TEST_CHECK(false); // Should not get here
+  }
+  catch(...)
+  {
+    DALI_TEST_CHECK(true); // We expect an assert
+  }
+  END_TEST;
+}
+
+int UtcDaliRendererGetTexturesNegative(void)
+{
+  TestApplication application;
+  Dali::Renderer  instance;
+  try
+  {
+    instance.GetTextures();
+    DALI_TEST_CHECK(false); // Should not get here
+  }
+  catch(...)
+  {
+    DALI_TEST_CHECK(true); // We expect an assert
+  }
+  END_TEST;
+}
 
+int UtcDaliRendererGetShaderNegative(void)
+{
+  TestApplication application;
+  Dali::Renderer  instance;
+  try
+  {
+    instance.GetShader();
+    DALI_TEST_CHECK(false); // Should not get here
+  }
+  catch(...)
+  {
+    DALI_TEST_CHECK(true); // We expect an assert
+  }
   END_TEST;
 }