Remove RenderableActor 15/43715/5
authorAdeel Kazmi <adeel.kazmi@samsung.com>
Mon, 13 Jul 2015 11:17:31 +0000 (12:17 +0100)
committerAdeel Kazmi <adeel.kazmi@samsung.com>
Mon, 13 Jul 2015 13:01:17 +0000 (14:01 +0100)
Change-Id: Ie92dea9a3301ba3e6226a097684689ab0e04d561

27 files changed:
automated-tests/src/dali-devel/CMakeLists.txt
automated-tests/src/dali-devel/utc-Dali-CullFace.cpp [new file with mode: 0644]
automated-tests/src/dali/utc-Dali-ImageActor.cpp
automated-tests/src/dali/utc-Dali-RenderableActor.cpp [deleted file]
dali/devel-api/file.list
dali/devel-api/rendering/cull-face.cpp [new file with mode: 0644]
dali/devel-api/rendering/cull-face.h [new file with mode: 0644]
dali/internal/common/type-abstraction-enums.h
dali/internal/event/actor-attachments/image-attachment-impl.h
dali/internal/event/actor-attachments/renderable-attachment-impl.h
dali/internal/event/actors/image-actor-impl.cpp
dali/internal/event/actors/image-actor-impl.h
dali/internal/event/actors/renderable-actor-impl.cpp [deleted file]
dali/internal/event/actors/renderable-actor-impl.h [deleted file]
dali/internal/event/events/hit-test-algorithm-impl.cpp
dali/internal/event/events/hover-event-processor.cpp
dali/internal/event/events/touch-event-processor.cpp
dali/internal/file.list
dali/internal/render/gl-resources/context.h
dali/internal/update/node-attachments/scene-graph-renderable-attachment.cpp
dali/internal/update/rendering/scene-graph-material.h
dali/public-api/actors/image-actor.cpp
dali/public-api/actors/image-actor.h
dali/public-api/actors/renderable-actor.cpp [deleted file]
dali/public-api/actors/renderable-actor.h [deleted file]
dali/public-api/dali-core.h
dali/public-api/file.list

index bb60af1..72d7fc5 100644 (file)
@@ -10,6 +10,7 @@ SET(TC_SOURCES
         utc-Dali-Atlas.cpp
         utc-Dali-Context.cpp
         utc-Dali-Constrainer.cpp
+        utc-Dali-CullFace.cpp
         utc-Dali-DistanceField.cpp
         utc-Dali-Geometry.cpp
         utc-Dali-Hash.cpp
diff --git a/automated-tests/src/dali-devel/utc-Dali-CullFace.cpp b/automated-tests/src/dali-devel/utc-Dali-CullFace.cpp
new file mode 100644 (file)
index 0000000..5d980fe
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <stdlib.h>
+#include <dali/public-api/dali-core.h>
+#include <dali/devel-api/rendering/cull-face.h>
+#include <dali-test-suite-utils.h>
+
+using namespace Dali;
+
+void cull_face_test_startup(void)
+{
+  test_return_value = TET_UNDEF;
+}
+
+void cull_face_test_cleanup(void)
+{
+  test_return_value = TET_PASS;
+}
+
+int UtcDaliSetGetCullFaceP(void)
+{
+  TestApplication application;
+
+  ImageActor imageActor = ImageActor::New();
+
+  DALI_TEST_CHECK( CullNone == GetCullFace( imageActor ) );
+
+  SetCullFace( imageActor, CullBack );
+
+  DALI_TEST_CHECK( CullBack == GetCullFace( imageActor ) );
+
+  END_TEST;
+}
+
+int UtcDaliSetCullFaceN(void)
+{
+  TestApplication application;
+
+  try
+  {
+    ImageActor imageActor;
+    SetCullFace( imageActor, CullBack );
+    DALI_TEST_CHECK( false ); // Should not reach here.
+  }
+  catch( ... )
+  {
+    DALI_TEST_CHECK( true ); // Should throw
+  }
+  END_TEST;
+}
+
+int UtcDaliGetCullFaceN(void)
+{
+  TestApplication application;
+
+  try
+  {
+    ImageActor imageActor;
+    CullFaceMode mode = GetCullFace( imageActor );
+    (void) mode;
+    DALI_TEST_CHECK( false ); // Should not reach here.
+  }
+  catch( ... )
+  {
+    DALI_TEST_CHECK( true ); // Should throw
+  }
+  END_TEST;
+}
index 3174a2a..ad80792 100644 (file)
@@ -1087,3 +1087,567 @@ int UtcDaliImageActorGetNaturalSize(void)
 
   END_TEST;
 }
+
+int UtcDaliImageActorGetSortModifier(void)
+{
+  TestApplication application;
+
+  tet_infoline("Testing Dali::ImageActor::GetSortModifier()");
+
+  ImageActor actor = ImageActor::New();
+  Stage::GetCurrent().Add(actor);
+
+  DALI_TEST_EQUALS(actor.GetSortModifier(), 0.0f, TEST_LOCATION);
+
+  Stage::GetCurrent().Remove(actor);
+  END_TEST;
+}
+
+int UtcDaliImageActorSetGetBlendMode(void)
+{
+  TestApplication application;
+
+  tet_infoline("Testing Dali::ImageActor::SetBlendMode() / Dali::ImageActor::GetBlendMode()");
+
+  ImageActor actor = ImageActor::New();
+
+  actor.SetBlendMode( BlendingMode::OFF );
+  DALI_TEST_CHECK( BlendingMode::OFF == actor.GetBlendMode() );
+
+  actor.SetBlendMode( BlendingMode::AUTO );
+  DALI_TEST_CHECK( BlendingMode::AUTO == actor.GetBlendMode() );
+
+  actor.SetBlendMode( BlendingMode::ON );
+  DALI_TEST_CHECK( BlendingMode::ON == actor.GetBlendMode() );
+  END_TEST;
+}
+
+int UtcDaliImageActorSetGetBlendFunc(void)
+{
+  TestApplication application;
+  TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
+
+  tet_infoline("Testing Dali::ImageActor::UtcDaliImageActorSetGetBlendFunc()");
+
+  BufferImage img = BufferImage::New( 1,1 );
+  ImageActor actor = ImageActor::New( img );
+  Stage::GetCurrent().Add( actor );
+  application.SendNotification();
+  application.Render();
+
+  // Test the defaults as documented int blending.h
+  {
+    BlendingFactor::Type srcFactorRgb( BlendingFactor::ZERO );
+    BlendingFactor::Type destFactorRgb( BlendingFactor::ZERO );
+    BlendingFactor::Type srcFactorAlpha( BlendingFactor::ZERO );
+    BlendingFactor::Type destFactorAlpha( BlendingFactor::ZERO );
+    actor.GetBlendFunc( srcFactorRgb, destFactorRgb, srcFactorAlpha, destFactorAlpha );
+    DALI_TEST_EQUALS( BlendingFactor::SRC_ALPHA,           srcFactorRgb,    TEST_LOCATION );
+    DALI_TEST_EQUALS( BlendingFactor::ONE_MINUS_SRC_ALPHA, destFactorRgb,   TEST_LOCATION );
+    DALI_TEST_EQUALS( BlendingFactor::ONE,                 srcFactorAlpha,  TEST_LOCATION );
+    DALI_TEST_EQUALS( BlendingFactor::ONE_MINUS_SRC_ALPHA, destFactorAlpha, TEST_LOCATION );
+  }
+
+  // Set to non-default values
+  actor.SetBlendFunc( BlendingFactor::ONE_MINUS_SRC_COLOR, BlendingFactor::SRC_ALPHA_SATURATE, BlendingFactor::ONE_MINUS_SRC_COLOR, BlendingFactor::SRC_ALPHA_SATURATE );
+
+  // Test that Set was successful
+  {
+    BlendingFactor::Type srcFactorRgb( BlendingFactor::ZERO );
+    BlendingFactor::Type destFactorRgb( BlendingFactor::ZERO );
+    BlendingFactor::Type srcFactorAlpha( BlendingFactor::ZERO );
+    BlendingFactor::Type destFactorAlpha( BlendingFactor::ZERO );
+    actor.GetBlendFunc( srcFactorRgb, destFactorRgb, srcFactorAlpha, destFactorAlpha );
+    DALI_TEST_EQUALS( BlendingFactor::ONE_MINUS_SRC_COLOR, srcFactorRgb,    TEST_LOCATION );
+    DALI_TEST_EQUALS( BlendingFactor::SRC_ALPHA_SATURATE,  destFactorRgb,   TEST_LOCATION );
+    DALI_TEST_EQUALS( BlendingFactor::ONE_MINUS_SRC_COLOR, srcFactorAlpha,  TEST_LOCATION );
+    DALI_TEST_EQUALS( BlendingFactor::SRC_ALPHA_SATURATE,  destFactorAlpha, TEST_LOCATION );
+  }
+
+  // Render & check GL commands
+  application.SendNotification();
+  application.Render();
+  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 );
+
+  // Set using separate alpha settings
+  actor.SetBlendFunc( BlendingFactor::CONSTANT_COLOR, BlendingFactor::ONE_MINUS_CONSTANT_COLOR,
+                      BlendingFactor::CONSTANT_ALPHA, BlendingFactor::ONE_MINUS_CONSTANT_ALPHA );
+
+  // Test that Set was successful
+  {
+    BlendingFactor::Type srcFactorRgb( BlendingFactor::ZERO );
+    BlendingFactor::Type destFactorRgb( BlendingFactor::ZERO );
+    BlendingFactor::Type srcFactorAlpha( BlendingFactor::ZERO );
+    BlendingFactor::Type destFactorAlpha( BlendingFactor::ZERO );
+    actor.GetBlendFunc( srcFactorRgb, destFactorRgb, srcFactorAlpha, destFactorAlpha );
+    DALI_TEST_EQUALS( BlendingFactor::CONSTANT_COLOR,            srcFactorRgb,    TEST_LOCATION );
+    DALI_TEST_EQUALS( BlendingFactor::ONE_MINUS_CONSTANT_COLOR,  destFactorRgb,   TEST_LOCATION );
+    DALI_TEST_EQUALS( BlendingFactor::CONSTANT_ALPHA,            srcFactorAlpha,  TEST_LOCATION );
+    DALI_TEST_EQUALS( BlendingFactor::ONE_MINUS_CONSTANT_ALPHA,  destFactorAlpha, TEST_LOCATION );
+  }
+
+  // Render & check GL commands
+  application.SendNotification();
+  application.Render();
+  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;
+}
+
+int UtcDaliImageActorSetGetAlpha(void)
+{
+  TestApplication application;
+
+  tet_infoline("Testing Dali::ImageActor::SetGetAlpha()");
+
+  BufferImage img = BufferImage::New( 1,1 );
+  ImageActor actor = ImageActor::New( img );
+  Stage::GetCurrent().Add( actor );
+  application.SendNotification();
+  application.Render();
+
+  // use the image alpha on actor
+  actor.SetBlendMode(BlendingMode::ON);
+
+  // Test that Set was successful
+  DALI_TEST_EQUALS( BlendingMode::ON, actor.GetBlendMode(), TEST_LOCATION );
+
+  // Now test that it can be set to false
+  actor.SetBlendMode(BlendingMode::OFF);
+  DALI_TEST_EQUALS(BlendingMode::OFF, actor.GetBlendMode(), TEST_LOCATION );
+  END_TEST;
+}
+
+int UtcDaliImageActorSetGetFilterModes(void)
+{
+  TestApplication application;
+
+  tet_infoline("Testing Dali::ImageActor::SetFilterMode() / Dali::ImageActor::GetFilterMode()");
+
+  ImageActor actor = ImageActor::New();
+
+  FilterMode::Type minifyFilter = FilterMode::NEAREST;
+  FilterMode::Type magnifyFilter = FilterMode::NEAREST;
+
+  // Default test
+  actor.GetFilterMode( minifyFilter, magnifyFilter );
+  DALI_TEST_CHECK( FilterMode::DEFAULT == minifyFilter );
+  DALI_TEST_CHECK( FilterMode::DEFAULT == magnifyFilter );
+
+  // Default/Default
+  actor.SetFilterMode( FilterMode::DEFAULT, FilterMode::DEFAULT );
+  actor.GetFilterMode( minifyFilter, magnifyFilter );
+  DALI_TEST_CHECK( FilterMode::DEFAULT == minifyFilter );
+  DALI_TEST_CHECK( FilterMode::DEFAULT == magnifyFilter );
+
+  // Nearest/Nearest
+  actor.SetFilterMode( FilterMode::NEAREST, FilterMode::NEAREST );
+  actor.GetFilterMode( minifyFilter, magnifyFilter );
+  DALI_TEST_CHECK( FilterMode::NEAREST == minifyFilter );
+  DALI_TEST_CHECK( FilterMode::NEAREST == magnifyFilter );
+
+  // Linear/Linear
+  actor.SetFilterMode( FilterMode::LINEAR, FilterMode::LINEAR );
+  actor.GetFilterMode( minifyFilter, magnifyFilter );
+  DALI_TEST_CHECK( FilterMode::LINEAR == minifyFilter );
+  DALI_TEST_CHECK( FilterMode::LINEAR == magnifyFilter );
+
+  // Nearest/Linear
+  actor.SetFilterMode( FilterMode::NEAREST, FilterMode::LINEAR );
+  actor.GetFilterMode( minifyFilter, magnifyFilter );
+  DALI_TEST_CHECK( FilterMode::NEAREST == minifyFilter );
+  DALI_TEST_CHECK( FilterMode::LINEAR == magnifyFilter );
+
+  // Linear/Nearest
+  actor.SetFilterMode( FilterMode::LINEAR, FilterMode::NEAREST );
+  actor.GetFilterMode( minifyFilter, magnifyFilter );
+  DALI_TEST_CHECK( FilterMode::LINEAR == minifyFilter );
+  DALI_TEST_CHECK( FilterMode::NEAREST == magnifyFilter );
+
+  END_TEST;
+}
+
+int UtcDaliImageActorSetFilterMode(void)
+{
+  TestApplication application;
+
+  tet_infoline("Testing Dali::ImageActor::SetFilterMode()");
+
+  BufferImage img = BufferImage::New( 1,1 );
+  ImageActor actor = ImageActor::New( img );
+
+  actor.SetSize(100.0f, 100.0f);
+  actor.SetParentOrigin(ParentOrigin::CENTER);
+  actor.SetAnchorPoint(AnchorPoint::CENTER);
+
+  Stage::GetCurrent().Add(actor);
+
+  /**************************************************************/
+
+  // Default/Default
+  TraceCallStack& texParameterTrace = application.GetGlAbstraction().GetTexParameterTrace();
+  texParameterTrace.Reset();
+  texParameterTrace.Enable( true );
+
+  actor.SetFilterMode( FilterMode::DEFAULT, FilterMode::DEFAULT );
+
+  // Flush the queue and render once
+  application.SendNotification();
+  application.Render();
+
+  texParameterTrace.Enable( false );
+
+  std::stringstream out;
+
+  // Verify actor gl state
+
+  // There are two calls to TexParameteri when the texture is first created
+  // Texture mag filter is not called as the first time set it uses the system default
+  DALI_TEST_EQUALS( texParameterTrace.CountMethod( "TexParameteri" ), 3, TEST_LOCATION);
+
+  out.str("");
+  out << GL_TEXTURE_2D << ", " << GL_TEXTURE_MIN_FILTER << ", " << GL_LINEAR;
+  DALI_TEST_EQUALS( texParameterTrace.TestMethodAndParams(2, "TexParameteri", out.str()), true, TEST_LOCATION);
+
+  /**************************************************************/
+
+  // Default/Default
+  texParameterTrace = application.GetGlAbstraction().GetTexParameterTrace();
+  texParameterTrace.Reset();
+  texParameterTrace.Enable( true );
+
+  actor.SetFilterMode( FilterMode::DEFAULT, FilterMode::DEFAULT );
+
+  // Flush the queue and render once
+  application.SendNotification();
+  application.Render();
+
+  texParameterTrace.Enable( false );
+
+  // Verify actor gl state
+
+  // Should not make any calls when settings are the same
+  DALI_TEST_EQUALS( texParameterTrace.CountMethod( "TexParameteri" ), 0, TEST_LOCATION);
+
+  /**************************************************************/
+
+  // Nearest/Nearest
+  texParameterTrace.Reset();
+  texParameterTrace.Enable( true );
+
+  actor.SetFilterMode( FilterMode::NEAREST, FilterMode::NEAREST );
+
+  // Flush the queue and render once
+  application.SendNotification();
+  application.Render();
+
+  texParameterTrace.Enable( false );
+
+  // Verify actor gl state
+  DALI_TEST_EQUALS( texParameterTrace.CountMethod( "TexParameteri" ), 2, TEST_LOCATION);
+
+  out.str("");
+  out << GL_TEXTURE_2D << ", " << GL_TEXTURE_MIN_FILTER << ", " << GL_NEAREST;
+  DALI_TEST_EQUALS( texParameterTrace.TestMethodAndParams(0, "TexParameteri", out.str()), true, TEST_LOCATION);
+
+  out.str("");
+  out << GL_TEXTURE_2D << ", " << GL_TEXTURE_MAG_FILTER << ", " << GL_NEAREST;
+  DALI_TEST_EQUALS( texParameterTrace.TestMethodAndParams(1, "TexParameteri", out.str()), true, TEST_LOCATION);
+
+  /**************************************************************/
+
+  // Linear/Linear
+  texParameterTrace.Reset();
+  texParameterTrace.Enable( true );
+
+  actor.SetFilterMode( FilterMode::LINEAR, FilterMode::LINEAR );
+
+  // Flush the queue and render once
+  application.SendNotification();
+  application.Render();
+
+  texParameterTrace.Enable( false );
+
+  // Verify actor gl state
+  DALI_TEST_EQUALS( texParameterTrace.CountMethod( "TexParameteri" ), 2, TEST_LOCATION);
+
+  out.str("");
+  out << GL_TEXTURE_2D << ", " << GL_TEXTURE_MIN_FILTER << ", " << GL_LINEAR;
+  DALI_TEST_EQUALS( texParameterTrace.TestMethodAndParams(0, "TexParameteri", out.str()), true, TEST_LOCATION);
+
+  out.str("");
+  out << GL_TEXTURE_2D << ", " << GL_TEXTURE_MAG_FILTER << ", " << GL_LINEAR;
+  DALI_TEST_EQUALS( texParameterTrace.TestMethodAndParams(1, "TexParameteri", out.str()), true, TEST_LOCATION);
+
+
+  /**************************************************************/
+
+  // Nearest/Linear
+  texParameterTrace.Reset();
+  texParameterTrace.Enable( true );
+
+  actor.SetFilterMode( FilterMode::NEAREST, FilterMode::LINEAR );
+
+  // Flush the queue and render once
+  application.SendNotification();
+  application.Render();
+
+  texParameterTrace.Enable( false );
+
+  // Verify actor gl state
+  DALI_TEST_EQUALS( texParameterTrace.CountMethod( "TexParameteri" ), 1, TEST_LOCATION);
+
+  out.str("");
+  out << GL_TEXTURE_2D << ", " << GL_TEXTURE_MIN_FILTER << ", " << GL_NEAREST;
+  DALI_TEST_EQUALS( texParameterTrace.TestMethodAndParams(0, "TexParameteri", out.str()), true, TEST_LOCATION);
+
+  /**************************************************************/
+
+  // Default/Default
+  texParameterTrace.Reset();
+  texParameterTrace.Enable( true );
+
+  actor.SetFilterMode( FilterMode::DEFAULT, FilterMode::DEFAULT );
+
+  // Flush the queue and render once
+  application.SendNotification();
+  application.Render();
+
+  texParameterTrace.Enable( false );
+
+  // Verify actor gl state
+  DALI_TEST_EQUALS( texParameterTrace.CountMethod( "TexParameteri" ), 1, TEST_LOCATION);
+
+  out.str("");
+  out << GL_TEXTURE_2D << ", " << GL_TEXTURE_MIN_FILTER << ", " << GL_LINEAR;
+  DALI_TEST_EQUALS( texParameterTrace.TestMethodAndParams(0, "TexParameteri", out.str()), true, TEST_LOCATION);
+
+  /**************************************************************/
+
+  // None/None
+  texParameterTrace.Reset();
+  texParameterTrace.Enable( true );
+
+  actor.SetFilterMode( FilterMode::NONE, FilterMode::NONE );
+
+  // Flush the queue and render once
+  application.SendNotification();
+  application.Render();
+
+  texParameterTrace.Enable( false );
+
+  // Verify actor gl state
+  DALI_TEST_EQUALS( texParameterTrace.CountMethod( "TexParameteri" ), 1, TEST_LOCATION);
+
+  out.str("");
+  out << GL_TEXTURE_2D << ", " << GL_TEXTURE_MIN_FILTER << ", " << GL_NEAREST_MIPMAP_LINEAR;
+  DALI_TEST_EQUALS( texParameterTrace.TestMethodAndParams(0, "TexParameteri", out.str()), true, TEST_LOCATION);
+
+  /**************************************************************/
+
+  Stage::GetCurrent().Remove(actor);
+
+  END_TEST;
+}
+
+int UtcDaliImageActorSetShaderEffect(void)
+{
+  TestApplication application;
+  BufferImage img = BufferImage::New( 1,1 );
+  ImageActor actor = ImageActor::New( img );
+  Stage::GetCurrent().Add( actor );
+
+  // flush the queue and render once
+  application.SendNotification();
+  application.Render();
+  GLuint lastShaderCompiledBefore = application.GetGlAbstraction().GetLastShaderCompiled();
+
+  application.GetGlAbstraction().EnableShaderCallTrace( true );
+
+  const std::string vertexShader = "UtcDaliImageActorSetShaderEffect-VertexSource";
+  const std::string fragmentShader = "UtcDaliImageActorSetShaderEffect-FragmentSource";
+  ShaderEffect effect = ShaderEffect::New(vertexShader, fragmentShader );
+  DALI_TEST_CHECK( effect != actor.GetShaderEffect() );
+
+  actor.SetShaderEffect( effect );
+  DALI_TEST_CHECK( effect == actor.GetShaderEffect() );
+
+  // flush the queue and render once
+  application.SendNotification();
+  application.Render();
+
+  GLuint lastShaderCompiledAfter = application.GetGlAbstraction().GetLastShaderCompiled();
+  DALI_TEST_EQUALS( lastShaderCompiledAfter, lastShaderCompiledBefore + 2, TEST_LOCATION );
+
+  std::string actualVertexShader = application.GetGlAbstraction().GetShaderSource( lastShaderCompiledBefore + 1 );
+  DALI_TEST_EQUALS( vertexShader,
+                    actualVertexShader.substr( actualVertexShader.length() - vertexShader.length() ), TEST_LOCATION );
+  std::string actualFragmentShader = application.GetGlAbstraction().GetShaderSource( lastShaderCompiledBefore + 2 );
+  DALI_TEST_EQUALS( fragmentShader,
+                    actualFragmentShader.substr( actualFragmentShader.length() - fragmentShader.length() ), TEST_LOCATION );
+
+  END_TEST;
+}
+
+int UtcDaliImageActorGetShaderEffect(void)
+{
+  TestApplication application;
+  ImageActor actor = ImageActor::New();
+
+  ShaderEffect effect = ShaderEffect::New("UtcDaliImageActorGetShaderEffect-VertexSource", "UtcDaliImageActorGetShaderEffect-FragmentSource" );
+  actor.SetShaderEffect(effect);
+
+  DALI_TEST_CHECK(effect == actor.GetShaderEffect());
+  END_TEST;
+}
+
+int UtcDaliImageActorRemoveShaderEffect01(void)
+{
+  TestApplication application;
+  ImageActor actor = ImageActor::New();
+
+  ShaderEffect defaultEffect = actor.GetShaderEffect();
+
+  ShaderEffect effect = ShaderEffect::New("UtcDaliImageActorRemoveShaderEffect-VertexSource", "UtcDaliImageActorRemoveShaderEffect-FragmentSource" );
+  actor.SetShaderEffect(effect);
+
+  DALI_TEST_CHECK(effect == actor.GetShaderEffect());
+
+  actor.RemoveShaderEffect();
+
+  DALI_TEST_CHECK(defaultEffect == actor.GetShaderEffect());
+  END_TEST;
+}
+
+int UtcDaliImageActorRemoveShaderEffect02(void)
+{
+  TestApplication application;
+  ImageActor actor = ImageActor::New();
+
+  ShaderEffect defaultEffect = actor.GetShaderEffect();
+
+  actor.RemoveShaderEffect();
+
+  DALI_TEST_CHECK(defaultEffect == actor.GetShaderEffect());
+  END_TEST;
+}
+
+int UtcDaliSetShaderEffectRecursively(void)
+{
+  TestApplication application;
+  /**
+   * create a tree
+   *                 actor1
+   *           actor2       actor4
+   *       actor3 imageactor1
+   * imageactor2
+   */
+  BufferImage img = BufferImage::New( 1,1 );
+  ImageActor actor1 = ImageActor::New( img );
+  Actor actor2 = Actor::New();
+  actor1.Add( actor2 );
+  Actor actor3 = Actor::New();
+  actor2.Add( actor3 );
+  ImageActor imageactor1 = ImageActor::New( img );
+  actor2.Add( imageactor1 );
+  ImageActor imageactor2 = ImageActor::New( img );
+  actor3.Add( imageactor2 );
+  Actor actor4 = Actor::New();
+  actor1.Add( actor4 );
+  Stage::GetCurrent().Add( actor1 );
+
+  // flush the queue and render once
+  application.SendNotification();
+  application.Render();
+  GLuint lastShaderCompiledBefore = application.GetGlAbstraction().GetLastShaderCompiled();
+
+  application.GetGlAbstraction().EnableShaderCallTrace( true );
+
+  const std::string vertexShader = "UtcDaliImageActorSetShaderEffect-VertexSource";
+  const std::string fragmentShader = "UtcDaliImageActorSetShaderEffect-FragmentSource";
+  // test with empty effect
+  ShaderEffect effect;
+  SetShaderEffectRecursively( actor1, effect );
+
+  effect = ShaderEffect::New(vertexShader, fragmentShader );
+
+  DALI_TEST_CHECK( effect != actor1.GetShaderEffect() );
+  DALI_TEST_CHECK( effect != imageactor1.GetShaderEffect() );
+  DALI_TEST_CHECK( effect != imageactor2.GetShaderEffect() );
+
+  SetShaderEffectRecursively( actor1, effect );
+  DALI_TEST_CHECK( effect == imageactor1.GetShaderEffect() );
+  DALI_TEST_CHECK( effect == imageactor2.GetShaderEffect() );
+
+  // flush the queue and render once
+  application.SendNotification();
+  application.Render();
+
+  GLuint lastShaderCompiledAfter = application.GetGlAbstraction().GetLastShaderCompiled();
+  DALI_TEST_EQUALS( lastShaderCompiledAfter, lastShaderCompiledBefore + 2, TEST_LOCATION );
+
+  std::string actualVertexShader = application.GetGlAbstraction().GetShaderSource( lastShaderCompiledBefore + 1 );
+  DALI_TEST_EQUALS( vertexShader,
+                    actualVertexShader.substr( actualVertexShader.length() - vertexShader.length() ), TEST_LOCATION );
+  std::string actualFragmentShader = application.GetGlAbstraction().GetShaderSource( lastShaderCompiledBefore + 2 );
+  DALI_TEST_EQUALS( fragmentShader,
+                    actualFragmentShader.substr( actualFragmentShader.length() - fragmentShader.length() ), TEST_LOCATION );
+
+  // remove from one that does not have shader
+  RemoveShaderEffectRecursively( actor4 );
+
+  // remove partially
+  RemoveShaderEffectRecursively( actor3 );
+  DALI_TEST_CHECK( effect == imageactor1.GetShaderEffect() );
+  DALI_TEST_CHECK( effect != imageactor2.GetShaderEffect() );
+
+  // test with empty actor just to check it does not crash
+  Actor empty;
+  SetShaderEffectRecursively( empty, effect );
+  RemoveShaderEffectRecursively( empty );
+
+  // test with actor with no children just to check it does not crash
+  Actor loner = Actor::New();
+  Stage::GetCurrent().Add( loner );
+  SetShaderEffectRecursively( loner, effect );
+  RemoveShaderEffectRecursively( loner );
+
+  END_TEST;
+}
+
+int UtcDaliImageActorTestClearCache(void)
+{
+  // Testing the framebuffer state caching in frame-buffer-state-caching.cpp
+  TestApplication application;
+
+  tet_infoline("Testing Dali::ImageActor::ClearCache()");
+
+  BufferImage img = BufferImage::New( 1,1 );
+  ImageActor actor = ImageActor::New( img );
+
+  actor.SetParentOrigin(ParentOrigin::CENTER);
+  actor.SetAnchorPoint(AnchorPoint::CENTER);
+
+  Stage::GetCurrent().Add(actor);
+
+  /**************************************************************/
+  // Flush the queue and render once
+  application.SendNotification();
+  application.Render();
+
+  // There should be a single call to Clear
+  DALI_TEST_EQUALS( application.GetGlAbstraction().GetClearCountCalled() , 1u, TEST_LOCATION );
+
+  // the last set clear mask should be COLOR, DEPTH & STENCIL which occurs at the start of each frame
+  GLbitfield mask = application.GetGlAbstraction().GetLastClearMask();
+  DALI_TEST_CHECK( mask & GL_DEPTH_BUFFER_BIT );
+  DALI_TEST_CHECK( mask & GL_STENCIL_BUFFER_BIT );
+  DALI_TEST_CHECK( mask & GL_COLOR_BUFFER_BIT );
+
+  END_TEST;
+}
diff --git a/automated-tests/src/dali/utc-Dali-RenderableActor.cpp b/automated-tests/src/dali/utc-Dali-RenderableActor.cpp
deleted file mode 100644 (file)
index 25ebaf9..0000000
+++ /dev/null
@@ -1,1000 +0,0 @@
-/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-#include <iostream>
-
-#include <stdlib.h>
-#include <dali/public-api/dali-core.h>
-#include <dali/integration-api/events/touch-event-integ.h>
-#include <dali-test-suite-utils.h>
-
-using namespace Dali;
-
-void renderable_actor_startup(void)
-{
-  test_return_value = TET_UNDEF;
-}
-
-void renderable_actor_cleanup(void)
-{
-  test_return_value = TET_PASS;
-}
-
-namespace
-{
-
-static bool gIsActor1SortModifierCorrect;
-static bool gIsActor2SortModifierCorrect;
-const float gActor1SortModifierValue = 96.0f;
-const float gActor2SortModifierValue = 53.0f;
-
-static float TestSortFunction(const Vector3& position, float sortModifier)
-{
-  if ( fabs(sortModifier - gActor1SortModifierValue) < 0.01)
-    gIsActor1SortModifierCorrect = true;
-
-  if ( fabs(sortModifier - gActor2SortModifierValue) < 0.01)
-    gIsActor2SortModifierCorrect = true;
-
-  return 0.0f;
-}
-
-} // anon namespace
-
-int UtcDaliRenderableActorDownCast(void)
-{
-  TestApplication application;
-
-  tet_infoline("Testing Dali::RenderableActor::DownCast()");
-
-  ImageActor imageActor = ImageActor::New();
-
-  Actor anActor = Actor::New();
-  anActor.Add( imageActor );
-
-  Actor child = anActor.GetChildAt(0);
-  RenderableActor renderableActor = RenderableActor::DownCast( child );
-  DALI_TEST_CHECK( renderableActor );
-
-  renderableActor.Reset();
-  DALI_TEST_CHECK( !renderableActor );
-
-  renderableActor = DownCast< RenderableActor >( child );
-  DALI_TEST_CHECK( renderableActor );
-
-  renderableActor = DownCast< RenderableActor >( anActor );
-  DALI_TEST_CHECK( !renderableActor );
-
-  Actor unInitialzedActor;
-  renderableActor = RenderableActor::DownCast( unInitialzedActor );
-  DALI_TEST_CHECK( !renderableActor );
-
-  renderableActor = DownCast< RenderableActor >( unInitialzedActor );
-  DALI_TEST_CHECK( !renderableActor );
-  END_TEST;
-}
-
-int UtcDaliRenderableActorSetSortModifier(void)
-{
-  TestApplication application;
-
-  tet_infoline("Testing Dali::RenderableActor::SetSortModifier()");
-
-  float val = -500.0f;
-
-  ImageActor actor = ImageActor::New();
-  Stage::GetCurrent().Add(actor);
-
-  actor.SetSortModifier( val );
-
-  float returnValue = actor.GetSortModifier();
-
-  //Verify through actor api
-  DALI_TEST_EQUALS(returnValue, val, TEST_LOCATION);
-
-  Stage::GetCurrent().Remove(actor);
-
-
-  //Verify through layer SetSortFunction
-  gIsActor1SortModifierCorrect = false;
-  gIsActor2SortModifierCorrect = false;
-  BufferImage img = BufferImage::New( 1,1 );
-  // create two transparent actors so there is something to sort
-  ImageActor actor1 = ImageActor::New( img );
-  ImageActor actor2 = ImageActor::New( img );
-  actor1.SetSize(1,1);
-  actor1.SetPosition( 0, 0, 0);
-  actor1.SetSortModifier( gActor1SortModifierValue );
-  actor1.SetColor( Vector4(1, 1, 1, 0.5f ) ); // 50% transparent
-  actor2.SetSize(1,1);
-  actor2.SetPosition( 0, 0, 1);
-  actor2.SetSortModifier( gActor2SortModifierValue );
-  actor2.SetColor( Vector4(1, 1, 1, 0.5f ) ); // 50% transparent
-
-  // add to stage
-   Stage::GetCurrent().Add( actor1 );
-   Stage::GetCurrent().Add( actor2 );
-
-   Layer root = Stage::GetCurrent().GetLayer( 0 );
-   root.SetSortFunction( TestSortFunction );
-
-   // flush the queue and render once
-   application.SendNotification();
-   application.Render();
-
-   DALI_TEST_CHECK( gIsActor1SortModifierCorrect && gIsActor2SortModifierCorrect );
-   END_TEST;
-
-}
-
-int UtcDaliRenderableActorGetSortModifier(void)
-{
-  TestApplication application;
-
-  tet_infoline("Testing Dali::RenderableActor::GetSortModifier()");
-
-  ImageActor actor = ImageActor::New();
-  Stage::GetCurrent().Add(actor);
-
-  DALI_TEST_EQUALS(actor.GetSortModifier(), 0.0f, TEST_LOCATION);
-
-  Stage::GetCurrent().Remove(actor);
-  END_TEST;
-}
-
-int UtcDaliRenderableActorSetGetBlendMode(void)
-{
-  TestApplication application;
-
-  tet_infoline("Testing Dali::RenderableActor::SetBlendMode() / Dali::RenderableActor::GetBlendMode()");
-
-  ImageActor actor = ImageActor::New();
-
-  actor.SetBlendMode( BlendingMode::OFF );
-  DALI_TEST_CHECK( BlendingMode::OFF == actor.GetBlendMode() );
-
-  actor.SetBlendMode( BlendingMode::AUTO );
-  DALI_TEST_CHECK( BlendingMode::AUTO == actor.GetBlendMode() );
-
-  actor.SetBlendMode( BlendingMode::ON );
-  DALI_TEST_CHECK( BlendingMode::ON == actor.GetBlendMode() );
-  END_TEST;
-}
-
-int UtcDaliRenderableActorSetCullFace(void)
-{
-  TestApplication application;
-
-  tet_infoline("Testing Dali::RenderableActor::SetCullFace()");
-
-  BufferImage img = BufferImage::New( 1,1 );
-  ImageActor actor = ImageActor::New( img );
-  ImageActor actor2 = ImageActor::New( img );
-
-  actor.SetSize(100.0f, 100.0f);
-  actor.SetParentOrigin(ParentOrigin::CENTER);
-  actor.SetAnchorPoint(AnchorPoint::CENTER);
-
-  actor2.SetSize(100.0f, 100.0f);
-  actor2.SetParentOrigin(ParentOrigin::CENTER);
-  actor2.SetAnchorPoint(AnchorPoint::CENTER);
-
-  Stage::GetCurrent().Add(actor);
-  Stage::GetCurrent().Add(actor2);
-
-  //Verify whether the correct GL calls are made when actor is face culled in front and back, and
-  // face culling is disabled for actor2
-  TraceCallStack& cullFaceTrace = application.GetGlAbstraction().GetCullFaceTrace();
-  cullFaceTrace.Enable(true);
-  actor.SetCullFace( CullFrontAndBack );
-
-  // flush the queue and render once
-  application.SendNotification();
-  application.Render();
-
-  cullFaceTrace.Enable(false);
-  std::stringstream out;
-
-  //Verify actor gl state
-  out.str("");
-  out << GL_BLEND;
-  DALI_TEST_EQUALS( cullFaceTrace.TestMethodAndParams(0, "Enable", out.str()), true, TEST_LOCATION);
-
-  out.str("");
-  out << GL_CULL_FACE;
-  DALI_TEST_EQUALS( cullFaceTrace.TestMethodAndParams(1, "Enable", out.str()), true, TEST_LOCATION);
-
-  out.str("");
-  out << GL_FRONT_AND_BACK;
-  DALI_TEST_EQUALS( cullFaceTrace.TestMethodAndParams(2, "CullFace", out.str()), true, TEST_LOCATION);
-
-  //Verify actor2 gl state
-  out.str("");
-  out << GL_CULL_FACE;
-  DALI_TEST_EQUALS( cullFaceTrace.TestMethodAndParams(3, "Disable", out.str()), true, TEST_LOCATION);
-
-  //Verify state through the actor api
-  DALI_TEST_CHECK( CullFrontAndBack == actor.GetCullFace() );
-  DALI_TEST_CHECK( CullNone == actor2.GetCullFace() );
-
-  /**************************************************************/
-
-  //Verify whether the correct GL calls are made when actor2 is face culled in the front
-  cullFaceTrace.Reset();
-  cullFaceTrace.Enable(true);
-  actor2.SetCullFace( CullFront );
-
-  // flush the queue and render once
-  application.SendNotification();
-  application.Render();
-
-  cullFaceTrace.Enable(false);
-
-  //Verify actor gl state
-  out.str("");
-  out << GL_CULL_FACE;
-  DALI_TEST_EQUALS( cullFaceTrace.TestMethodAndParams(0, "Enable", out.str()), true, TEST_LOCATION);
-
-  out.str("");
-  out << GL_FRONT_AND_BACK;
-  DALI_TEST_EQUALS( cullFaceTrace.TestMethodAndParams(1, "CullFace", out.str()), true, TEST_LOCATION);
-
-  //Verify actor2 gl state
-  out.str("");
-  out << GL_CULL_FACE;
-  DALI_TEST_EQUALS( cullFaceTrace.TestMethodAndParams(2, "Enable", out.str()), true, TEST_LOCATION);
-
-  out.str("");
-  out << GL_FRONT;
-  DALI_TEST_EQUALS( cullFaceTrace.TestMethodAndParams(3, "CullFace", out.str()), true, TEST_LOCATION);
-
-  //Verify state through the actor api
-  DALI_TEST_CHECK( CullFrontAndBack == actor.GetCullFace() );
-  DALI_TEST_CHECK( CullFront == actor2.GetCullFace() );
-
-  /**************************************************************/
-  //Verify whether the correct GL calls are made when face culling is disabled for both actors
-  cullFaceTrace.Reset();
-  cullFaceTrace.Enable(true);
-  actor.SetCullFace( CullNone );
-  actor2.SetCullFace( CullNone );
-
-  // flush the queue and render once
-  application.SendNotification();
-  application.Render();
-
-  cullFaceTrace.Enable(false);
-
-  out.str("");
-  out << GL_CULL_FACE;
-  DALI_TEST_EQUALS( cullFaceTrace.TestMethodAndParams(0, "Disable", out.str()), true, TEST_LOCATION);
-
-  //Verify state through the actor api
-  DALI_TEST_CHECK( CullNone == actor.GetCullFace() );
-  DALI_TEST_CHECK( CullNone == actor2.GetCullFace() );
-
-  Stage::GetCurrent().Remove(actor);
-  Stage::GetCurrent().Remove(actor2);
-  END_TEST;
-}
-
-int UtcDaliRenderableActorGetCullFace(void)
-{
-  TestApplication application;
-
-  tet_infoline("Testing Dali::RenderableActor::GetCullFace()");
-
-  ImageActor imageActor = ImageActor::New();
-
-  DALI_TEST_CHECK( CullNone == imageActor.GetCullFace() );
-
-  imageActor.SetCullFace( CullBack );
-
-  DALI_TEST_CHECK( CullBack == imageActor.GetCullFace() );
-
-  END_TEST;
-}
-
-int UtcDaliRenderableActorSetGetBlendFunc(void)
-{
-  TestApplication application;
-  TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
-
-  tet_infoline("Testing Dali::RenderableActor::UtcDaliRenderableActorSetGetBlendFunc()");
-
-  BufferImage img = BufferImage::New( 1,1 );
-  ImageActor actor = ImageActor::New( img );
-  Stage::GetCurrent().Add( actor );
-  application.SendNotification();
-  application.Render();
-
-  // Test the defaults as documented int blending.h
-  {
-    BlendingFactor::Type srcFactorRgb( BlendingFactor::ZERO );
-    BlendingFactor::Type destFactorRgb( BlendingFactor::ZERO );
-    BlendingFactor::Type srcFactorAlpha( BlendingFactor::ZERO );
-    BlendingFactor::Type destFactorAlpha( BlendingFactor::ZERO );
-    actor.GetBlendFunc( srcFactorRgb, destFactorRgb, srcFactorAlpha, destFactorAlpha );
-    DALI_TEST_EQUALS( BlendingFactor::SRC_ALPHA,           srcFactorRgb,    TEST_LOCATION );
-    DALI_TEST_EQUALS( BlendingFactor::ONE_MINUS_SRC_ALPHA, destFactorRgb,   TEST_LOCATION );
-    DALI_TEST_EQUALS( BlendingFactor::ONE,                 srcFactorAlpha,  TEST_LOCATION );
-    DALI_TEST_EQUALS( BlendingFactor::ONE_MINUS_SRC_ALPHA, destFactorAlpha, TEST_LOCATION );
-  }
-
-  // Set to non-default values
-  actor.SetBlendFunc( BlendingFactor::ONE_MINUS_SRC_COLOR, BlendingFactor::SRC_ALPHA_SATURATE, BlendingFactor::ONE_MINUS_SRC_COLOR, BlendingFactor::SRC_ALPHA_SATURATE );
-
-  // Test that Set was successful
-  {
-    BlendingFactor::Type srcFactorRgb( BlendingFactor::ZERO );
-    BlendingFactor::Type destFactorRgb( BlendingFactor::ZERO );
-    BlendingFactor::Type srcFactorAlpha( BlendingFactor::ZERO );
-    BlendingFactor::Type destFactorAlpha( BlendingFactor::ZERO );
-    actor.GetBlendFunc( srcFactorRgb, destFactorRgb, srcFactorAlpha, destFactorAlpha );
-    DALI_TEST_EQUALS( BlendingFactor::ONE_MINUS_SRC_COLOR, srcFactorRgb,    TEST_LOCATION );
-    DALI_TEST_EQUALS( BlendingFactor::SRC_ALPHA_SATURATE,  destFactorRgb,   TEST_LOCATION );
-    DALI_TEST_EQUALS( BlendingFactor::ONE_MINUS_SRC_COLOR, srcFactorAlpha,  TEST_LOCATION );
-    DALI_TEST_EQUALS( BlendingFactor::SRC_ALPHA_SATURATE,  destFactorAlpha, TEST_LOCATION );
-  }
-
-  // Render & check GL commands
-  application.SendNotification();
-  application.Render();
-  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 );
-
-  // Set using separate alpha settings
-  actor.SetBlendFunc( BlendingFactor::CONSTANT_COLOR, BlendingFactor::ONE_MINUS_CONSTANT_COLOR,
-                      BlendingFactor::CONSTANT_ALPHA, BlendingFactor::ONE_MINUS_CONSTANT_ALPHA );
-
-  // Test that Set was successful
-  {
-    BlendingFactor::Type srcFactorRgb( BlendingFactor::ZERO );
-    BlendingFactor::Type destFactorRgb( BlendingFactor::ZERO );
-    BlendingFactor::Type srcFactorAlpha( BlendingFactor::ZERO );
-    BlendingFactor::Type destFactorAlpha( BlendingFactor::ZERO );
-    actor.GetBlendFunc( srcFactorRgb, destFactorRgb, srcFactorAlpha, destFactorAlpha );
-    DALI_TEST_EQUALS( BlendingFactor::CONSTANT_COLOR,            srcFactorRgb,    TEST_LOCATION );
-    DALI_TEST_EQUALS( BlendingFactor::ONE_MINUS_CONSTANT_COLOR,  destFactorRgb,   TEST_LOCATION );
-    DALI_TEST_EQUALS( BlendingFactor::CONSTANT_ALPHA,            srcFactorAlpha,  TEST_LOCATION );
-    DALI_TEST_EQUALS( BlendingFactor::ONE_MINUS_CONSTANT_ALPHA,  destFactorAlpha, TEST_LOCATION );
-  }
-
-  // Render & check GL commands
-  application.SendNotification();
-  application.Render();
-  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;
-}
-
-int UtcDaliRenderableActorSetGetAlpha(void)
-{
-  TestApplication application;
-
-  tet_infoline("Testing Dali::RenderableActor::SetGetAlpha()");
-
-  BufferImage img = BufferImage::New( 1,1 );
-  ImageActor actor = ImageActor::New( img );
-  Stage::GetCurrent().Add( actor );
-  application.SendNotification();
-  application.Render();
-
-  // use the image alpha on actor
-  actor.SetBlendMode(BlendingMode::ON);
-
-  // Test that Set was successful
-  DALI_TEST_EQUALS( BlendingMode::ON, actor.GetBlendMode(), TEST_LOCATION );
-
-  // Now test that it can be set to false
-  actor.SetBlendMode(BlendingMode::OFF);
-  DALI_TEST_EQUALS(BlendingMode::OFF, actor.GetBlendMode(), TEST_LOCATION );
-  END_TEST;
-}
-
-int UtcDaliRenderableActorCreateDestroy(void)
-{
-  tet_infoline("Testing Dali::RenderableActor::CreateDestroy()");
-  RenderableActor* ractor = new RenderableActor;
-  RenderableActor ractor2( *ractor );
-  DALI_TEST_CHECK( ractor );
-  delete ractor;
-  END_TEST;
-}
-
-int UtcDaliRenderableActorSetGetFilterModes(void)
-{
-  TestApplication application;
-
-  tet_infoline("Testing Dali::RenderableActor::SetFilterMode() / Dali::RenderableActor::GetFilterMode()");
-
-  ImageActor actor = ImageActor::New();
-
-  FilterMode::Type minifyFilter = FilterMode::NEAREST;
-  FilterMode::Type magnifyFilter = FilterMode::NEAREST;
-
-  // Default test
-  actor.GetFilterMode( minifyFilter, magnifyFilter );
-  DALI_TEST_CHECK( FilterMode::DEFAULT == minifyFilter );
-  DALI_TEST_CHECK( FilterMode::DEFAULT == magnifyFilter );
-
-  // Default/Default
-  actor.SetFilterMode( FilterMode::DEFAULT, FilterMode::DEFAULT );
-  actor.GetFilterMode( minifyFilter, magnifyFilter );
-  DALI_TEST_CHECK( FilterMode::DEFAULT == minifyFilter );
-  DALI_TEST_CHECK( FilterMode::DEFAULT == magnifyFilter );
-
-  // Nearest/Nearest
-  actor.SetFilterMode( FilterMode::NEAREST, FilterMode::NEAREST );
-  actor.GetFilterMode( minifyFilter, magnifyFilter );
-  DALI_TEST_CHECK( FilterMode::NEAREST == minifyFilter );
-  DALI_TEST_CHECK( FilterMode::NEAREST == magnifyFilter );
-
-  // Linear/Linear
-  actor.SetFilterMode( FilterMode::LINEAR, FilterMode::LINEAR );
-  actor.GetFilterMode( minifyFilter, magnifyFilter );
-  DALI_TEST_CHECK( FilterMode::LINEAR == minifyFilter );
-  DALI_TEST_CHECK( FilterMode::LINEAR == magnifyFilter );
-
-  // Nearest/Linear
-  actor.SetFilterMode( FilterMode::NEAREST, FilterMode::LINEAR );
-  actor.GetFilterMode( minifyFilter, magnifyFilter );
-  DALI_TEST_CHECK( FilterMode::NEAREST == minifyFilter );
-  DALI_TEST_CHECK( FilterMode::LINEAR == magnifyFilter );
-
-  // Linear/Nearest
-  actor.SetFilterMode( FilterMode::LINEAR, FilterMode::NEAREST );
-  actor.GetFilterMode( minifyFilter, magnifyFilter );
-  DALI_TEST_CHECK( FilterMode::LINEAR == minifyFilter );
-  DALI_TEST_CHECK( FilterMode::NEAREST == magnifyFilter );
-
-  END_TEST;
-}
-
-int UtcDaliRenderableActorSetFilterMode(void)
-{
-  TestApplication application;
-
-  tet_infoline("Testing Dali::RenderableActor::SetFilterMode()");
-
-  BufferImage img = BufferImage::New( 1,1 );
-  ImageActor actor = ImageActor::New( img );
-
-  actor.SetSize(100.0f, 100.0f);
-  actor.SetParentOrigin(ParentOrigin::CENTER);
-  actor.SetAnchorPoint(AnchorPoint::CENTER);
-
-  Stage::GetCurrent().Add(actor);
-
-  /**************************************************************/
-
-  // Default/Default
-  TraceCallStack& texParameterTrace = application.GetGlAbstraction().GetTexParameterTrace();
-  texParameterTrace.Reset();
-  texParameterTrace.Enable( true );
-
-  actor.SetFilterMode( FilterMode::DEFAULT, FilterMode::DEFAULT );
-
-  // Flush the queue and render once
-  application.SendNotification();
-  application.Render();
-
-  texParameterTrace.Enable( false );
-
-  std::stringstream out;
-
-  // Verify actor gl state
-
-  // There are two calls to TexParameteri when the texture is first created
-  // Texture mag filter is not called as the first time set it uses the system default
-  DALI_TEST_EQUALS( texParameterTrace.CountMethod( "TexParameteri" ), 3, TEST_LOCATION);
-
-  out.str("");
-  out << GL_TEXTURE_2D << ", " << GL_TEXTURE_MIN_FILTER << ", " << GL_LINEAR;
-  DALI_TEST_EQUALS( texParameterTrace.TestMethodAndParams(2, "TexParameteri", out.str()), true, TEST_LOCATION);
-
-  /**************************************************************/
-
-  // Default/Default
-  texParameterTrace = application.GetGlAbstraction().GetTexParameterTrace();
-  texParameterTrace.Reset();
-  texParameterTrace.Enable( true );
-
-  actor.SetFilterMode( FilterMode::DEFAULT, FilterMode::DEFAULT );
-
-  // Flush the queue and render once
-  application.SendNotification();
-  application.Render();
-
-  texParameterTrace.Enable( false );
-
-  // Verify actor gl state
-
-  // Should not make any calls when settings are the same
-  DALI_TEST_EQUALS( texParameterTrace.CountMethod( "TexParameteri" ), 0, TEST_LOCATION);
-
-  /**************************************************************/
-
-  // Nearest/Nearest
-  texParameterTrace.Reset();
-  texParameterTrace.Enable( true );
-
-  actor.SetFilterMode( FilterMode::NEAREST, FilterMode::NEAREST );
-
-  // Flush the queue and render once
-  application.SendNotification();
-  application.Render();
-
-  texParameterTrace.Enable( false );
-
-  // Verify actor gl state
-  DALI_TEST_EQUALS( texParameterTrace.CountMethod( "TexParameteri" ), 2, TEST_LOCATION);
-
-  out.str("");
-  out << GL_TEXTURE_2D << ", " << GL_TEXTURE_MIN_FILTER << ", " << GL_NEAREST;
-  DALI_TEST_EQUALS( texParameterTrace.TestMethodAndParams(0, "TexParameteri", out.str()), true, TEST_LOCATION);
-
-  out.str("");
-  out << GL_TEXTURE_2D << ", " << GL_TEXTURE_MAG_FILTER << ", " << GL_NEAREST;
-  DALI_TEST_EQUALS( texParameterTrace.TestMethodAndParams(1, "TexParameteri", out.str()), true, TEST_LOCATION);
-
-  /**************************************************************/
-
-  // Linear/Linear
-  texParameterTrace.Reset();
-  texParameterTrace.Enable( true );
-
-  actor.SetFilterMode( FilterMode::LINEAR, FilterMode::LINEAR );
-
-  // Flush the queue and render once
-  application.SendNotification();
-  application.Render();
-
-  texParameterTrace.Enable( false );
-
-  // Verify actor gl state
-  DALI_TEST_EQUALS( texParameterTrace.CountMethod( "TexParameteri" ), 2, TEST_LOCATION);
-
-  out.str("");
-  out << GL_TEXTURE_2D << ", " << GL_TEXTURE_MIN_FILTER << ", " << GL_LINEAR;
-  DALI_TEST_EQUALS( texParameterTrace.TestMethodAndParams(0, "TexParameteri", out.str()), true, TEST_LOCATION);
-
-  out.str("");
-  out << GL_TEXTURE_2D << ", " << GL_TEXTURE_MAG_FILTER << ", " << GL_LINEAR;
-  DALI_TEST_EQUALS( texParameterTrace.TestMethodAndParams(1, "TexParameteri", out.str()), true, TEST_LOCATION);
-
-
-  /**************************************************************/
-
-  // Nearest/Linear
-  texParameterTrace.Reset();
-  texParameterTrace.Enable( true );
-
-  actor.SetFilterMode( FilterMode::NEAREST, FilterMode::LINEAR );
-
-  // Flush the queue and render once
-  application.SendNotification();
-  application.Render();
-
-  texParameterTrace.Enable( false );
-
-  // Verify actor gl state
-  DALI_TEST_EQUALS( texParameterTrace.CountMethod( "TexParameteri" ), 1, TEST_LOCATION);
-
-  out.str("");
-  out << GL_TEXTURE_2D << ", " << GL_TEXTURE_MIN_FILTER << ", " << GL_NEAREST;
-  DALI_TEST_EQUALS( texParameterTrace.TestMethodAndParams(0, "TexParameteri", out.str()), true, TEST_LOCATION);
-
-  /**************************************************************/
-
-  // Default/Default
-  texParameterTrace.Reset();
-  texParameterTrace.Enable( true );
-
-  actor.SetFilterMode( FilterMode::DEFAULT, FilterMode::DEFAULT );
-
-  // Flush the queue and render once
-  application.SendNotification();
-  application.Render();
-
-  texParameterTrace.Enable( false );
-
-  // Verify actor gl state
-  DALI_TEST_EQUALS( texParameterTrace.CountMethod( "TexParameteri" ), 1, TEST_LOCATION);
-
-  out.str("");
-  out << GL_TEXTURE_2D << ", " << GL_TEXTURE_MIN_FILTER << ", " << GL_LINEAR;
-  DALI_TEST_EQUALS( texParameterTrace.TestMethodAndParams(0, "TexParameteri", out.str()), true, TEST_LOCATION);
-
-  /**************************************************************/
-
-  // None/None
-  texParameterTrace.Reset();
-  texParameterTrace.Enable( true );
-
-  actor.SetFilterMode( FilterMode::NONE, FilterMode::NONE );
-
-  // Flush the queue and render once
-  application.SendNotification();
-  application.Render();
-
-  texParameterTrace.Enable( false );
-
-  // Verify actor gl state
-  DALI_TEST_EQUALS( texParameterTrace.CountMethod( "TexParameteri" ), 1, TEST_LOCATION);
-
-  out.str("");
-  out << GL_TEXTURE_2D << ", " << GL_TEXTURE_MIN_FILTER << ", " << GL_NEAREST_MIPMAP_LINEAR;
-  DALI_TEST_EQUALS( texParameterTrace.TestMethodAndParams(0, "TexParameteri", out.str()), true, TEST_LOCATION);
-
-  /**************************************************************/
-
-  Stage::GetCurrent().Remove(actor);
-
-  END_TEST;
-}
-
-int UtcDaliRenderableActorSetShaderEffect(void)
-{
-  TestApplication application;
-  BufferImage img = BufferImage::New( 1,1 );
-  ImageActor actor = ImageActor::New( img );
-  Stage::GetCurrent().Add( actor );
-
-  // flush the queue and render once
-  application.SendNotification();
-  application.Render();
-  GLuint lastShaderCompiledBefore = application.GetGlAbstraction().GetLastShaderCompiled();
-
-  application.GetGlAbstraction().EnableShaderCallTrace( true );
-
-  const std::string vertexShader = "UtcDaliRenderableActorSetShaderEffect-VertexSource";
-  const std::string fragmentShader = "UtcDaliRenderableActorSetShaderEffect-FragmentSource";
-  ShaderEffect effect = ShaderEffect::New(vertexShader, fragmentShader );
-  DALI_TEST_CHECK( effect != actor.GetShaderEffect() );
-
-  actor.SetShaderEffect( effect );
-  DALI_TEST_CHECK( effect == actor.GetShaderEffect() );
-
-  // flush the queue and render once
-  application.SendNotification();
-  application.Render();
-
-  GLuint lastShaderCompiledAfter = application.GetGlAbstraction().GetLastShaderCompiled();
-  DALI_TEST_EQUALS( lastShaderCompiledAfter, lastShaderCompiledBefore + 2, TEST_LOCATION );
-
-  std::string actualVertexShader = application.GetGlAbstraction().GetShaderSource( lastShaderCompiledBefore + 1 );
-  DALI_TEST_EQUALS( vertexShader,
-                    actualVertexShader.substr( actualVertexShader.length() - vertexShader.length() ), TEST_LOCATION );
-  std::string actualFragmentShader = application.GetGlAbstraction().GetShaderSource( lastShaderCompiledBefore + 2 );
-  DALI_TEST_EQUALS( fragmentShader,
-                    actualFragmentShader.substr( actualFragmentShader.length() - fragmentShader.length() ), TEST_LOCATION );
-
-  END_TEST;
-}
-
-int UtcDaliRenderableActorGetShaderEffect(void)
-{
-  TestApplication application;
-  ImageActor actor = ImageActor::New();
-
-  ShaderEffect effect = ShaderEffect::New("UtcDaliRenderableActorGetShaderEffect-VertexSource", "UtcDaliRenderableActorGetShaderEffect-FragmentSource" );
-  actor.SetShaderEffect(effect);
-
-  DALI_TEST_CHECK(effect == actor.GetShaderEffect());
-  END_TEST;
-}
-
-int UtcDaliRenderableActorRemoveShaderEffect01(void)
-{
-  TestApplication application;
-  ImageActor actor = ImageActor::New();
-
-  ShaderEffect defaultEffect = actor.GetShaderEffect();
-
-  ShaderEffect effect = ShaderEffect::New("UtcDaliRenderableActorRemoveShaderEffect-VertexSource", "UtcDaliRenderableActorRemoveShaderEffect-FragmentSource" );
-  actor.SetShaderEffect(effect);
-
-  DALI_TEST_CHECK(effect == actor.GetShaderEffect());
-
-  actor.RemoveShaderEffect();
-
-  DALI_TEST_CHECK(defaultEffect == actor.GetShaderEffect());
-  END_TEST;
-}
-
-int UtcDaliRenderableActorRemoveShaderEffect02(void)
-{
-  TestApplication application;
-  ImageActor actor = ImageActor::New();
-
-  ShaderEffect defaultEffect = actor.GetShaderEffect();
-
-  actor.RemoveShaderEffect();
-
-  DALI_TEST_CHECK(defaultEffect == actor.GetShaderEffect());
-  END_TEST;
-}
-
-int UtcDaliSetShaderEffectRecursively(void)
-{
-  TestApplication application;
-  /**
-   * create a tree
-   *                 actor1
-   *           actor2       actor4
-   *       actor3 imageactor1
-   * imageactor2
-   */
-  BufferImage img = BufferImage::New( 1,1 );
-  ImageActor actor1 = ImageActor::New( img );
-  Actor actor2 = Actor::New();
-  actor1.Add( actor2 );
-  Actor actor3 = Actor::New();
-  actor2.Add( actor3 );
-  ImageActor imageactor1 = ImageActor::New( img );
-  actor2.Add( imageactor1 );
-  ImageActor imageactor2 = ImageActor::New( img );
-  actor3.Add( imageactor2 );
-  Actor actor4 = Actor::New();
-  actor1.Add( actor4 );
-  Stage::GetCurrent().Add( actor1 );
-
-  // flush the queue and render once
-  application.SendNotification();
-  application.Render();
-  GLuint lastShaderCompiledBefore = application.GetGlAbstraction().GetLastShaderCompiled();
-
-  application.GetGlAbstraction().EnableShaderCallTrace( true );
-
-  const std::string vertexShader = "UtcDaliRenderableActorSetShaderEffect-VertexSource";
-  const std::string fragmentShader = "UtcDaliRenderableActorSetShaderEffect-FragmentSource";
-  // test with empty effect
-  ShaderEffect effect;
-  SetShaderEffectRecursively( actor1, effect );
-
-  effect = ShaderEffect::New(vertexShader, fragmentShader );
-
-  DALI_TEST_CHECK( effect != actor1.GetShaderEffect() );
-  DALI_TEST_CHECK( effect != imageactor1.GetShaderEffect() );
-  DALI_TEST_CHECK( effect != imageactor2.GetShaderEffect() );
-
-  SetShaderEffectRecursively( actor1, effect );
-  DALI_TEST_CHECK( effect == imageactor1.GetShaderEffect() );
-  DALI_TEST_CHECK( effect == imageactor2.GetShaderEffect() );
-
-  // flush the queue and render once
-  application.SendNotification();
-  application.Render();
-
-  GLuint lastShaderCompiledAfter = application.GetGlAbstraction().GetLastShaderCompiled();
-  DALI_TEST_EQUALS( lastShaderCompiledAfter, lastShaderCompiledBefore + 2, TEST_LOCATION );
-
-  std::string actualVertexShader = application.GetGlAbstraction().GetShaderSource( lastShaderCompiledBefore + 1 );
-  DALI_TEST_EQUALS( vertexShader,
-                    actualVertexShader.substr( actualVertexShader.length() - vertexShader.length() ), TEST_LOCATION );
-  std::string actualFragmentShader = application.GetGlAbstraction().GetShaderSource( lastShaderCompiledBefore + 2 );
-  DALI_TEST_EQUALS( fragmentShader,
-                    actualFragmentShader.substr( actualFragmentShader.length() - fragmentShader.length() ), TEST_LOCATION );
-
-  // remove from one that does not have shader
-  RemoveShaderEffectRecursively( actor4 );
-
-  // remove partially
-  RemoveShaderEffectRecursively( actor3 );
-  DALI_TEST_CHECK( effect == imageactor1.GetShaderEffect() );
-  DALI_TEST_CHECK( effect != imageactor2.GetShaderEffect() );
-
-  // test with empty actor just to check it does not crash
-  Actor empty;
-  SetShaderEffectRecursively( empty, effect );
-  RemoveShaderEffectRecursively( empty );
-
-  // test with actor with no children just to check it does not crash
-  Actor loner = Actor::New();
-  Stage::GetCurrent().Add( loner );
-  SetShaderEffectRecursively( loner, effect );
-  RemoveShaderEffectRecursively( loner );
-
-  END_TEST;
-}
-
-int UtcDaliRenderableActorTestClearCache01(void)
-{
-  // Testing the framebuffer state caching in frame-buffer-state-caching.cpp
-  TestApplication application;
-
-  tet_infoline("Testing Dali::RenderableActor::ClearCache01()");
-
-  BufferImage img = BufferImage::New( 1,1 );
-  ImageActor actor = ImageActor::New( img );
-
-  actor.SetParentOrigin(ParentOrigin::CENTER);
-  actor.SetAnchorPoint(AnchorPoint::CENTER);
-
-  Stage::GetCurrent().Add(actor);
-
-  /**************************************************************/
-  // Flush the queue and render once
-  application.SendNotification();
-  application.Render();
-
-  // There should be a single call to Clear
-  DALI_TEST_EQUALS( application.GetGlAbstraction().GetClearCountCalled() , 1u, TEST_LOCATION );
-
-  // the last set clear mask should be COLOR, DEPTH & STENCIL which occurs at the start of each frame
-  GLbitfield mask = application.GetGlAbstraction().GetLastClearMask();
-  DALI_TEST_CHECK( mask & GL_DEPTH_BUFFER_BIT );
-  DALI_TEST_CHECK( mask & GL_STENCIL_BUFFER_BIT );
-  DALI_TEST_CHECK( mask & GL_COLOR_BUFFER_BIT );
-
-  END_TEST;
-}
-
-int UtcDaliRenderableActorTestClearCache02(void)
-{
-  // Testing the framebuffer state caching in frame-buffer-state-caching.cpp
-  TestApplication application;
-
-  tet_infoline("Testing Dali::RenderableActor::ClearCache02()");
-
-  // use RGB so alpha is disabled and the actors are drawn opaque
-  BufferImage img = BufferImage::New( 10,10 ,Pixel::RGB888 );
-
-  // Without caching DALi perform clears in the following places
-  // Root
-  // | glClear #1 ( everything at start of frame )
-  // |
-  // |
-  // | glClear #2 ( start of layer with opaque actors )
-  // | ----> Layer1
-  // |     -> Actor 1 ( opaque )
-  // |     -> Actor 2 ( opaque )
-  // |
-  // |
-  // | glClear  #3 ( start of layer with opaque actors )
-  // |----> Layer 2
-  // |     -> Actor 3 ( opaque )
-  // |     -> Actor 4 ( opaque )
-  //
-  // With caching enabled glClear should only be called twice, at points #1 and #3.
-  // At #1 with depth, color and stencil cleared
-  // At #3 with depth cleared
-  // #2 is not required because the buffer has already been cleared at #1
-
-  Layer layer1 = Layer::New();
-  layer1.Add( ImageActor::New( img ) );
-  layer1.Add( ImageActor::New( img ) );
-
-  Layer layer2 = Layer::New();
-  layer2.Add( ImageActor::New( img ) );
-  layer2.Add( ImageActor::New( img ) );
-
-  Stage::GetCurrent().Add( layer1 );
-  Stage::GetCurrent().Add( layer2 );
-
-  /**************************************************************/
-
-  // Flush the queue and render once
-  application.SendNotification();
-  application.Render();
-
-  // There should be a 2 calls to Clear
-  DALI_TEST_EQUALS( application.GetGlAbstraction().GetClearCountCalled() , 2u, TEST_LOCATION );
-
-  // the last set clear mask should be  DEPTH & STENCIL & COLOR
-  GLbitfield mask = application.GetGlAbstraction().GetLastClearMask();
-
-  tet_printf(" clear count = %d \n",  application.GetGlAbstraction().GetClearCountCalled() );
-
-  // The last clear should just be DEPTH BUFFER, not color and stencil which were cleared at the start of the frame
-  DALI_TEST_CHECK( mask & GL_DEPTH_BUFFER_BIT );
-  DALI_TEST_CHECK( ! ( mask & GL_COLOR_BUFFER_BIT ) );
-  DALI_TEST_CHECK( ! ( mask & GL_STENCIL_BUFFER_BIT ) );
-
-  END_TEST;
-}
-
-int UtcDaliRenderableActorTestClearCache03(void)
-{
-  // Testing the framebuffer state caching in frame-buffer-state-caching.cpp
-  TestApplication application;
-
-  tet_infoline("Testing Dali::RenderableActor::ClearCache03()");
-
-  // use RGB so alpha is disabled and the actors are drawn opaque
-  BufferImage img = BufferImage::New( 10,10 ,Pixel::RGB888 );
-
-  // Without caching DALi perform clears in the following places
-  // Root
-  // | 1-## glClear ( COLOR, DEPTH, STENCIL )
-  // |
-  // | ----> Layer1
-  // |     2-##  glClear  ( STENCIL )
-  // |     -> Actor 1 ( stencil )
-  // |     3-##  glClear  ( DEPTH )
-  // |     -> Actor 2 ( opaque )  // need 2 opaque actors to bypass optimisation of turning off depth test
-  // |     -> Actor 3 ( opaque )
-  // |
-  // |
-  // |----> Layer 2
-  // |     4-##  glClear  ( STENCIL )
-  // |     -> Actor 4 ( stencil )
-  // |     5-##  glClear  ( DEPTH )
-  // |     -> Actor 5 ( opaque )  // need 2 opaque actors to bypass optimisation of turning off depth test
-  // |     -> Actor 6 ( opaque )
-  //
-  // With caching enabled glClear will not be called at ## 2 and ## 3 ( because those buffers are already clear).
-  //
-  // @TODO Add further optimisation to look-ahead in the render-list to see if
-  // When performing STENCIL clear, check if there another layer after it.
-  // If there is, combine the STENCIL with a DEPTH clear.
-  //
-
-  Layer layer1 = Layer::New();
-  ImageActor actor1 =  ImageActor::New( img );
-  ImageActor actor2 =  ImageActor::New( img );
-  ImageActor actor3 =  ImageActor::New( img );
-
-  actor2.SetDrawMode( DrawMode::STENCIL );
-
-  layer1.Add( actor1 );
-  layer1.Add( actor2 );
-  layer1.Add( actor3 );
-
-  Layer layer2 = Layer::New();
-  ImageActor actor4 =  ImageActor::New( img );
-  ImageActor actor5 =  ImageActor::New( img );
-  ImageActor actor6 =  ImageActor::New( img );
-
-  actor4.SetDrawMode( DrawMode::STENCIL );
-
-  layer2.Add( actor4 );
-  layer2.Add( actor5 );
-  layer2.Add( actor6 );
-
-  Stage::GetCurrent().Add( layer1 );
-  Stage::GetCurrent().Add( layer2 );
-
-
-  /**************************************************************/
-
-  // Flush the queue and render once
-  application.SendNotification();
-  application.Render();
-
-  // There should be a 3 calls to Clear ( one for everything, one for stencil, one for depth buffer).
-  DALI_TEST_EQUALS( application.GetGlAbstraction().GetClearCountCalled() , 3u, TEST_LOCATION );
-
-  // the last set clear mask should be  DEPTH & STENCIL & COLOR
-  GLbitfield mask = application.GetGlAbstraction().GetLastClearMask();
-
-  tet_printf(" clear count = %d \n",  application.GetGlAbstraction().GetClearCountCalled() );
-  tet_printf(" clear mask  = %x \n",  mask);
-
-  // The last clear should just be DEPTH BUFFER and stencil
-  DALI_TEST_CHECK(  !( mask & GL_COLOR_BUFFER_BIT ) );
-  DALI_TEST_CHECK(  !( mask & GL_STENCIL_BUFFER_BIT ) );
-  DALI_TEST_CHECK(  mask & GL_DEPTH_BUFFER_BIT );
-
-
-  END_TEST;
-}
index c2e681d..bae25e7 100644 (file)
@@ -8,6 +8,7 @@ devel_api_src_files = \
   $(devel_api_src_dir)/images/atlas.cpp \
   $(devel_api_src_dir)/images/distance-field.cpp \
   $(devel_api_src_dir)/object/property-buffer.cpp \
+  $(devel_api_src_dir)/rendering/cull-face.cpp \
   $(devel_api_src_dir)/rendering/geometry.cpp \
   $(devel_api_src_dir)/rendering/material.cpp \
   $(devel_api_src_dir)/rendering/renderer.cpp \
@@ -39,6 +40,7 @@ devel_api_core_object_header_files = \
   $(devel_api_src_dir)/object/type-registry-helper.h
 
 devel_api_core_rendering_header_files = \
+  $(devel_api_src_dir)/rendering/cull-face.h \
   $(devel_api_src_dir)/rendering/geometry.h \
   $(devel_api_src_dir)/rendering/material.h \
   $(devel_api_src_dir)/rendering/renderer.h \
diff --git a/dali/devel-api/rendering/cull-face.cpp b/dali/devel-api/rendering/cull-face.cpp
new file mode 100644 (file)
index 0000000..4f1cc99
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+// HEADER
+#include <dali/devel-api/rendering/cull-face.h>
+
+// INTERNAL INCLUDES
+#include <dali/internal/event/actors/image-actor-impl.h>
+
+namespace Dali
+{
+
+void SetCullFace( ImageActor actor, CullFaceMode mode )
+{
+  GetImplementation( actor ).SetCullFace( mode );
+}
+
+CullFaceMode GetCullFace( ImageActor actor )
+{
+  return GetImplementation( actor ).GetCullFace();
+}
+
+} //namespace Dali
diff --git a/dali/devel-api/rendering/cull-face.h b/dali/devel-api/rendering/cull-face.h
new file mode 100644 (file)
index 0000000..84aa9e3
--- /dev/null
@@ -0,0 +1,58 @@
+#ifndef DALI_CULL_FACE_H
+#define DALI_CULL_FACE_H
+
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+// INTERNAL INCLUDES
+#include <dali/public-api/common/dali-common.h>
+
+namespace Dali
+{
+
+/**
+ * @brief Face culling modes.
+ */
+enum CullFaceMode
+{
+  CullNone,                 ///< Face culling disabled
+  CullFront,                ///< Cull front facing polygons
+  CullBack,                 ///< Cull back facing polygons
+  CullFrontAndBack          ///< Cull front and back facing polygons
+};
+
+class ImageActor;
+
+/**
+ * @brief Set the face-culling mode for an image-actor.
+ *
+ * @param[in] actor The image-actor to set the cull-face on.
+ * @param[in] mode The culling mode.
+ */
+DALI_IMPORT_API void SetCullFace( ImageActor actor, CullFaceMode mode);
+
+/**
+ * @brief Retrieve the face-culling mode for an image-actor.
+ *
+ * @param[in] actor The image-actor whose cull-face is required.
+ * @return mode The culling mode.
+ */
+DALI_IMPORT_API CullFaceMode GetCullFace( ImageActor actor );
+
+} //namespace Dali
+
+#endif // DALI_CULL_FACE_H
index 0aa1ed3..465220b 100644 (file)
  *
  */
 
-
-//PUBLIC INCLUDES
-#include <dali/public-api/actors/renderable-actor.h>
+// INTERNAL INCLUDES
 #include <dali/public-api/actors/blending.h>
 #include <dali/public-api/shader-effects/shader-effect.h>
-
-// INTERNAL INCLUDES
+#include <dali/devel-api/rendering/cull-face.h>
 #include <dali/internal/common/type-abstraction.h>
 #include <dali/internal/event/effects/shader-declarations.h>
 
index cb240dd..0d7a7a0 100644 (file)
@@ -21,6 +21,7 @@
 // INTERNAL INCLUDES
 #include <dali/public-api/actors/image-actor.h>
 #include <dali/public-api/actors/blending.h>
+#include <dali/devel-api/rendering/cull-face.h>
 #include <dali/internal/common/blending-options.h>
 #include <dali/internal/common/image-sampler.h>
 #include <dali/internal/event/actor-attachments/actor-attachment-declarations.h>
index 9d1a10d..87d51d9 100644 (file)
@@ -19,7 +19,6 @@
  */
 
 // INTERNAL INCLUDES
-#include <dali/public-api/actors/renderable-actor.h>
 #include <dali/internal/event/actor-attachments/actor-attachment-impl.h>
 
 namespace Dali
index f81952b..5c6b028 100644 (file)
@@ -53,7 +53,7 @@ BaseHandle Create()
   return Dali::ImageActor::New();
 }
 
-TypeRegistration mType( typeid( Dali::ImageActor ), typeid( Dali::RenderableActor ), Create );
+TypeRegistration mType( typeid( Dali::ImageActor ), typeid( Dali::Actor ), Create );
 
 ImageActor::Style StyleEnum(const std::string &s)
 {
@@ -197,7 +197,7 @@ RenderableAttachment& ImageActor::GetRenderableAttachment() const
 }
 
 ImageActor::ImageActor()
-: RenderableActor()
+: Actor( Actor::RENDERABLE )
 {
 }
 
@@ -244,12 +244,12 @@ void ImageActor::OnStageDisconnectionInternal()
 
 unsigned int ImageActor::GetDefaultPropertyCount() const
 {
-  return RenderableActor::GetDefaultPropertyCount() + DEFAULT_PROPERTY_COUNT;
+  return Actor::GetDefaultPropertyCount() + DEFAULT_PROPERTY_COUNT;
 }
 
 void ImageActor::GetDefaultPropertyIndices( Property::IndexContainer& indices ) const
 {
-  RenderableActor::GetDefaultPropertyIndices( indices ); // RenderableActor class properties
+  Actor::GetDefaultPropertyIndices( indices ); // Actor class properties
 
   indices.Reserve( indices.Size() + DEFAULT_PROPERTY_COUNT );
 
@@ -264,7 +264,7 @@ bool ImageActor::IsDefaultPropertyWritable( Property::Index index ) const
 {
   if( index < DEFAULT_ACTOR_PROPERTY_MAX_COUNT )
   {
-    return RenderableActor::IsDefaultPropertyWritable(index);
+    return Actor::IsDefaultPropertyWritable(index);
   }
 
   index -= DEFAULT_DERIVED_ACTOR_PROPERTY_START_INDEX;
@@ -280,7 +280,7 @@ bool ImageActor::IsDefaultPropertyAnimatable( Property::Index index ) const
 {
   if( index < DEFAULT_ACTOR_PROPERTY_MAX_COUNT )
   {
-    return RenderableActor::IsDefaultPropertyAnimatable( index );
+    return Actor::IsDefaultPropertyAnimatable( index );
   }
 
   index -= DEFAULT_DERIVED_ACTOR_PROPERTY_START_INDEX;
@@ -296,7 +296,7 @@ bool ImageActor::IsDefaultPropertyAConstraintInput( Property::Index index ) cons
 {
   if( index < DEFAULT_ACTOR_PROPERTY_MAX_COUNT )
   {
-    return RenderableActor::IsDefaultPropertyAConstraintInput( index );
+    return Actor::IsDefaultPropertyAConstraintInput( index );
   }
 
   index -= DEFAULT_DERIVED_ACTOR_PROPERTY_START_INDEX;
@@ -312,7 +312,7 @@ Property::Type ImageActor::GetDefaultPropertyType( Property::Index index ) const
 {
   if( index < DEFAULT_ACTOR_PROPERTY_MAX_COUNT )
   {
-    return RenderableActor::GetDefaultPropertyType( index );
+    return Actor::GetDefaultPropertyType( index );
   }
 
   index -= DEFAULT_DERIVED_ACTOR_PROPERTY_START_INDEX;
@@ -329,7 +329,7 @@ const char* ImageActor::GetDefaultPropertyName( Property::Index index ) const
 {
   if( index < DEFAULT_ACTOR_PROPERTY_MAX_COUNT)
   {
-    return RenderableActor::GetDefaultPropertyName(index);
+    return Actor::GetDefaultPropertyName(index);
   }
 
   index -= DEFAULT_DERIVED_ACTOR_PROPERTY_START_INDEX;
@@ -360,7 +360,7 @@ Property::Index ImageActor::GetDefaultPropertyIndex(const std::string& name) con
   // If not found, check in base class
   if( Property::INVALID_INDEX == index )
   {
-    index = RenderableActor::GetDefaultPropertyIndex( name );
+    index = Actor::GetDefaultPropertyIndex( name );
   }
   return index;
 }
@@ -369,7 +369,7 @@ void ImageActor::SetDefaultProperty( Property::Index index, const Property::Valu
 {
   if( index < DEFAULT_ACTOR_PROPERTY_MAX_COUNT )
   {
-    RenderableActor::SetDefaultProperty( index, propertyValue );
+    Actor::SetDefaultProperty( index, propertyValue );
   }
   else
   {
@@ -419,7 +419,7 @@ Property::Value ImageActor::GetDefaultProperty( Property::Index index ) const
   Property::Value ret;
   if( index < DEFAULT_ACTOR_PROPERTY_MAX_COUNT )
   {
-    ret = RenderableActor::GetDefaultProperty( index );
+    ret = Actor::GetDefaultProperty( index );
   }
   else
   {
index ae8c9dd..785216e 100644 (file)
@@ -21,8 +21,9 @@
 // INTERNAL INCLUDES
 #include <dali/public-api/object/ref-object.h>
 #include <dali/public-api/actors/image-actor.h>
+#include <dali/devel-api/rendering/cull-face.h>
 #include <dali/internal/event/actors/actor-declarations.h>
-#include <dali/internal/event/actors/renderable-actor-impl.h>
+#include <dali/internal/event/actors/actor-impl.h>
 #include <dali/internal/event/actor-attachments/image-attachment-impl.h>
 #include <dali/internal/event/animation/animation-impl.h>
 #include <dali/internal/event/images/nine-patch-image-impl.h>
@@ -48,7 +49,7 @@ class Image;
  * mImageAttachment's member object. The first one points to the Image object that is going to
  * be displayed next, the second one to the Image that is currently being displayed.
  */
-class ImageActor : public RenderableActor
+class ImageActor : public Actor
 {
 public:
 
diff --git a/dali/internal/event/actors/renderable-actor-impl.cpp b/dali/internal/event/actors/renderable-actor-impl.cpp
deleted file mode 100644 (file)
index 9eec34a..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-// CLASS HEADER
-#include <dali/internal/event/actors/renderable-actor-impl.h>
-
-// INTERNAL INCLUDES
-#include <dali/public-api/object/type-registry.h>
-
-#include <dali/internal/event/actor-attachments/renderable-attachment-impl.h>
-
-namespace // unnamed namespace
-{
-
-using namespace Dali;
-
-/*
- * This may look like a no-op but maintains TypeRegistry chain of classes.
- * ie if a child actor declares its base as RenderableActor, RenderableActor must exist
- * in TypeRegistry otherwise it doesnt know that child is related to Actor.
- */
-BaseHandle Create()
-{
-  return BaseHandle();
-}
-
-TypeRegistration mType( typeid(Dali::RenderableActor), typeid(Dali::Actor), Create );
-
-} // unnamed namespace
-
-namespace Dali
-{
-
-namespace Internal
-{
-
-RenderableActor::RenderableActor()
-: Actor( Actor::RENDERABLE )
-{
-}
-
-RenderableActor::~RenderableActor()
-{
-}
-
-
-} // namespace Internal
-
-} // namespace Dali
diff --git a/dali/internal/event/actors/renderable-actor-impl.h b/dali/internal/event/actors/renderable-actor-impl.h
deleted file mode 100644 (file)
index b6b038a..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-#ifndef __DALI_INTERNAL_RENDERABLE_ACTOR_H__
-#define __DALI_INTERNAL_RENDERABLE_ACTOR_H__
-
-/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-// INTERNAL INCLUDES
-#include <dali/public-api/actors/renderable-actor.h>
-#include <dali/public-api/common/dali-common.h>
-#include <dali/internal/event/actors/actor-impl.h>
-#include <dali/internal/event/effects/shader-declarations.h>
-
-namespace Dali
-{
-
-namespace Internal
-{
-
-class RenderableAttachment;
-
-/**
- * An abstract base class for renderable actors
- */
-class RenderableActor : public Actor
-{
-protected:
-  /**
-   * Protected constructor; only derived classes are instantiatable.
-   */
-  RenderableActor();
-
-  /**
-   * A reference counted object may only be deleted by calling Unreference()
-   */
-  virtual ~RenderableActor();
-
-private:
-
-  /**
-   * @return a reference to the renderable attachment
-   */
-  virtual RenderableAttachment& GetRenderableAttachment() const = 0;
-
-  // Undefined
-  RenderableActor(const RenderableActor&);
-  // Undefined
-  RenderableActor& operator=(const RenderableActor& rhs);
-
-};
-
-} // namespace Internal
-
-// Helpers for public-api forwarding methods
-
-inline Internal::RenderableActor& GetImplementation(Dali::RenderableActor& renderable)
-{
-  DALI_ASSERT_ALWAYS( renderable && "RenderableActor handle is empty" );
-
-  BaseObject& handle = renderable.GetBaseObject();
-
-  return static_cast<Internal::RenderableActor&>(handle);
-}
-
-inline const Internal::RenderableActor& GetImplementation(const Dali::RenderableActor& renderable)
-{
-  DALI_ASSERT_ALWAYS(renderable && "RenderableActor handle is empty" );
-
-  const BaseObject& handle = renderable.GetBaseObject();
-
-  return static_cast<const Internal::RenderableActor&>(handle);
-}
-
-} // namespace Dali
-
-#endif // __DALI_INTERNAL_RENDERABLE_ACTOR_H__
index ab52bb5..9d2f4ab 100644 (file)
@@ -28,7 +28,6 @@
 #include <dali/internal/event/actors/image-actor-impl.h>
 #include <dali/internal/event/actors/layer-impl.h>
 #include <dali/internal/event/actors/layer-list.h>
-#include <dali/internal/event/actors/renderable-actor-impl.h>
 #include <dali/internal/event/common/system-overlay-impl.h>
 #include <dali/internal/event/common/stage-impl.h>
 #include <dali/internal/event/common/projection.h>
index ba02688..c4d5440 100644 (file)
@@ -23,7 +23,6 @@
 #endif
 
 // INTERNAL INCLUDES
-#include <dali/public-api/actors/renderable-actor.h>
 #include <dali/public-api/math/vector2.h>
 #include <dali/integration-api/debug.h>
 #include <dali/integration-api/events/hover-event-integ.h>
index aa6299f..0e58e54 100644 (file)
@@ -23,7 +23,6 @@
 #endif
 
 // INTERNAL INCLUDES
-#include <dali/public-api/actors/renderable-actor.h>
 #include <dali/public-api/math/vector2.h>
 #include <dali/public-api/signals/callback.h>
 #include <dali/integration-api/debug.h>
index 3587766..f8b00b2 100644 (file)
@@ -20,7 +20,6 @@ internal_src_files = \
   $(internal_src_dir)/event/actors/layer-impl.cpp \
   $(internal_src_dir)/event/actors/layer-list.cpp \
   $(internal_src_dir)/event/actors/camera-actor-impl.cpp \
-  $(internal_src_dir)/event/actors/renderable-actor-impl.cpp \
   $(internal_src_dir)/event/animation/animation-impl.cpp \
   $(internal_src_dir)/event/animation/animation-playlist.cpp \
   $(internal_src_dir)/event/animation/constrainer.cpp \
index af9715c..4821bfa 100644 (file)
  */
 
 // INTERNAL INCLUDES
-#include <dali/public-api/actors/renderable-actor.h>
 #include <dali/public-api/common/dali-vector.h>
 #include <dali/public-api/common/dali-common.h>
 #include <dali/public-api/math/rect.h>
 #include <dali/public-api/math/vector4.h>
+#include <dali/devel-api/rendering/cull-face.h>
 #include <dali/integration-api/debug.h>
 #include <dali/integration-api/gl-abstraction.h>
 #include <dali/integration-api/gl-defines.h>
index 28a7f62..a27e960 100644 (file)
@@ -20,7 +20,7 @@
 
 // INTERNAL INCLUDES
 #include <dali/integration-api/resource-declarations.h>
-#include <dali/public-api/actors/renderable-actor.h>
+#include <dali/public-api/actors/image-actor.h>
 #include <dali/internal/update/manager/prepare-render-instructions.h>
 #include <dali/internal/update/nodes/node.h>
 #include <dali/internal/update/resources/resource-manager.h>
@@ -45,7 +45,7 @@ RenderableAttachment::RenderableAttachment( bool usesGeometryScaling )
   mShader( NULL ),
   mTrackedResources(),
   mSortModifier( 0.0f ),
-  mBlendingMode( Dali::RenderableActor::DEFAULT_BLENDING_MODE ),
+  mBlendingMode( Dali::ImageActor::DEFAULT_BLENDING_MODE ),
   mUsesGeometryScaling( usesGeometryScaling ),
   mScaleForSizeDirty( true ),
   mUseBlend( false ),
index e4af877..5befeb4 100644 (file)
@@ -17,7 +17,7 @@
  * limitations under the License.
  */
 
-#include <dali/public-api/actors/renderable-actor.h> // For CullFaceMode
+#include <dali/public-api/actors/image-actor.h> // For CullFaceMode
 #include <dali/internal/common/buffer-index.h>
 #include <dali/internal/common/blending-options.h>
 #include <dali/internal/event/common/event-thread-services.h>
index da3cf18..d93f0ba 100644 (file)
@@ -27,6 +27,8 @@
 namespace Dali
 {
 
+const BlendingMode::Type ImageActor::DEFAULT_BLENDING_MODE = BlendingMode::AUTO;
+
 ImageActor::ImageActor()
 {
 }
@@ -64,7 +66,7 @@ ImageActor::~ImageActor()
 }
 
 ImageActor::ImageActor(const ImageActor& copy)
-: RenderableActor(copy)
+: Actor(copy)
 {
 }
 
@@ -130,16 +132,6 @@ float ImageActor::GetSortModifier() const
   return GetImplementation(*this).GetSortModifier();
 }
 
-void ImageActor::SetCullFace(const CullFaceMode mode)
-{
-  GetImplementation(*this).SetCullFace(mode);
-}
-
-CullFaceMode ImageActor::GetCullFace() const
-{
-  return GetImplementation(*this).GetCullFace();
-}
-
 void ImageActor::SetBlendMode( BlendingMode::Type mode )
 {
   GetImplementation(*this).SetBlendMode( mode );
@@ -221,7 +213,7 @@ void ImageActor::RemoveShaderEffect()
 
 
 ImageActor::ImageActor(Internal::ImageActor* internal)
-: RenderableActor(internal)
+: Actor(internal)
 {
 }
 
index 158f9fb..136cb8a 100644 (file)
 #include <string>
 
 // INTERNAL INCLUDES
-#include <dali/public-api/actors/renderable-actor.h>
+#include <dali/public-api/actors/actor.h>
 #include <dali/public-api/math/rect.h>
 #include <dali/public-api/images/image.h>
+#include <dali/public-api/shader-effects/shader-effect.h>
+#include <dali/public-api/actors/blending.h>
+#include <dali/public-api/actors/sampling.h>
 
 namespace Dali
 {
@@ -39,7 +42,7 @@ class ImageActor;
  *
  * Allows the developer to add an actor to stage which displays the content of an Image object.
  *
- * By default CullFaceMode is set to CullNone to enable the ImageActor to be viewed from all angles.
+ * By default ImageActor can be viewed from all angles.
  *
  * If an ImageActor is created without setting size, then the actor takes the size of the image -
  * this is the natural size.
@@ -56,7 +59,7 @@ class ImageActor;
  * Clearing the pixel area on an Image actor with a set size will cause the actor to show the
  * whole image again, but will not change the image size.
  */
-class DALI_IMPORT_API ImageActor : public RenderableActor
+class DALI_IMPORT_API ImageActor : public Actor
 {
 public:
 
@@ -150,6 +153,8 @@ public:
    */
   typedef Rect<int> PixelArea;
 
+  static const BlendingMode::Type DEFAULT_BLENDING_MODE; ///< default value is BlendingMode::AUTO
+
   /**
    * @brief Create an uninitialized ImageActor handle.
    *
@@ -318,20 +323,6 @@ public:
   float GetSortModifier() const;
 
   /**
-   * @brief Set the face-culling mode for this actor.
-   *
-   * @param[in] mode The culling mode.
-   */
-  void SetCullFace(CullFaceMode mode);
-
-  /**
-   * @brief Retrieve the face-culling mode for this actor.
-   *
-   * @return mode The culling mode.
-   */
-  CullFaceMode GetCullFace() const;
-
-  /**
    * @brief Sets the blending mode.
    *
    * Possible values are: BlendingMode::OFF, BlendingMode::AUTO and BlendingMode::ON. Default is BlendingMode::AUTO.
diff --git a/dali/public-api/actors/renderable-actor.cpp b/dali/public-api/actors/renderable-actor.cpp
deleted file mode 100644 (file)
index f35decb..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-// CLASS HEADER
-#include <dali/public-api/actors/renderable-actor.h>
-
-// INTERNAL INCLUDES
-#include <dali/internal/event/actors/renderable-actor-impl.h>
-#include <dali/internal/event/effects/shader-effect-impl.h>
-
-namespace Dali
-{
-
-const BlendingMode::Type RenderableActor::DEFAULT_BLENDING_MODE = BlendingMode::AUTO;
-
-RenderableActor::RenderableActor()
-{
-}
-
-RenderableActor RenderableActor::DownCast( BaseHandle handle )
-{
-  return RenderableActor( dynamic_cast<Dali::Internal::RenderableActor*>(handle.GetObjectPtr()) );
-}
-
-RenderableActor::~RenderableActor()
-{
-}
-
-RenderableActor::RenderableActor(const RenderableActor& copy)
-: Actor(copy)
-{
-}
-
-RenderableActor& RenderableActor::operator=(const RenderableActor& rhs)
-{
-  BaseHandle::operator=(rhs);
-  return *this;
-}
-
-
-RenderableActor::RenderableActor(Internal::RenderableActor* internal)
-: Actor(internal)
-{
-}
-
-
-} // namespace Dali
diff --git a/dali/public-api/actors/renderable-actor.h b/dali/public-api/actors/renderable-actor.h
deleted file mode 100644 (file)
index 45ae0d7..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-#ifndef __DALI_RENDERABLE_ACTOR_H__
-#define __DALI_RENDERABLE_ACTOR_H__
-
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-
-// INTERNAL INCLUDES
-#include <dali/public-api/actors/actor.h>
-#include <dali/public-api/shader-effects/shader-effect.h>
-#include <dali/public-api/actors/blending.h>
-#include <dali/public-api/actors/sampling.h>
-
-namespace Dali
-{
-namespace Internal DALI_INTERNAL
-{
-class RenderableActor;
-}
-
-/**
- * @brief Face culling modes.
- */
-enum CullFaceMode
-{
-  CullNone,                 ///< Face culling disabled
-  CullFront,                ///< Cull front facing polygons
-  CullBack,                 ///< Cull back facing polygons
-  CullFrontAndBack          ///< Cull front and back facing polygons
-};
-
-
-
-/**
- * @brief A base class for renderable actors.
- */
-class DALI_IMPORT_API RenderableActor : public Actor
-{
-public:
-
-  static const BlendingMode::Type DEFAULT_BLENDING_MODE; ///< default value is BlendingMode::AUTO
-
-  /**
-   * @brief Create an uninitialized actor.
-   *
-   * Calling member functions with an uninitialized Dali::Object is not allowed.
-   */
-  RenderableActor();
-
-  /**
-   * @brief Downcast an Object handle to RenderableActor.
-   *
-   * If handle points to a RenderableActor the
-   * downcast produces valid handle. If not the returned handle is left uninitialized.
-   * @param[in] handle to An object
-   * @return handle to a RenderableActor or an uninitialized handle
-   */
-  static RenderableActor DownCast( BaseHandle handle );
-
-  /**
-   * @brief Destructor
-   *
-   * This is non-virtual since derived Handle types must not contain data or virtual methods.
-   */
-  ~RenderableActor();
-
-  /**
-   * @brief Copy constructor
-   *
-   * @param [in] copy The actor to copy.
-   */
-  RenderableActor(const RenderableActor& copy);
-
-  /**
-   * @brief Assignment operator
-   *
-   * @param [in] rhs The actor to copy.
-   */
-  RenderableActor& operator=(const RenderableActor& rhs);
-
-public: // Not intended for application developers
-
-  /**
-   * @brief This constructor is used by Dali New() methods
-   *
-   * @param [in] actor A pointer to a newly allocated Dali resource
-   */
-  explicit DALI_INTERNAL RenderableActor(Internal::RenderableActor* actor);
-};
-
-
-} // namespace Dali
-
-#endif // __DALI_RENDERABLE_ACTOR_H__
index 8af7eac..046654a 100644 (file)
@@ -27,7 +27,6 @@
 #include <dali/public-api/actors/draw-mode.h>
 #include <dali/public-api/actors/image-actor.h>
 #include <dali/public-api/actors/layer.h>
-#include <dali/public-api/actors/renderable-actor.h>
 #include <dali/public-api/actors/sampling.h>
 
 #include <dali/public-api/animation/alpha-function.h>
index c541bd2..4cdf643 100644 (file)
@@ -10,7 +10,6 @@ public_api_src_files = \
   $(public_api_src_dir)/actors/custom-actor-impl.cpp \
   $(public_api_src_dir)/actors/image-actor.cpp \
   $(public_api_src_dir)/actors/layer.cpp \
-  $(public_api_src_dir)/actors/renderable-actor.cpp \
   $(public_api_src_dir)/animation/animation.cpp \
   $(public_api_src_dir)/animation/alpha-function.cpp \
   $(public_api_src_dir)/animation/constraint.cpp \
@@ -101,7 +100,6 @@ public_api_core_actors_header_files =  \
   $(public_api_src_dir)/actors/draw-mode.h \
   $(public_api_src_dir)/actors/image-actor.h \
   $(public_api_src_dir)/actors/layer.h \
-  $(public_api_src_dir)/actors/renderable-actor.h \
   $(public_api_src_dir)/actors/sampling.h
 
 public_api_core_animation_header_files = \