Changed UtcFrustumNearCullP and UtcFrustumFarCullP to explicitly set the position... 89/44689/1
authorChu Hoang <c.hoang@samsung.com>
Fri, 24 Jul 2015 15:22:40 +0000 (16:22 +0100)
committerChu Hoang <c.hoang@samsung.com>
Fri, 24 Jul 2015 15:22:40 +0000 (16:22 +0100)
Refactored and cleaned up utc-Dali-Internal-FrustumCulling tests.

Change-Id: I5fa7fd85b6cc0866749733d3c13af1202b5cb4a3

automated-tests/src/dali-internal/utc-Dali-Internal-FrustumCulling.cpp

index e3053e1..7a4d674 100644 (file)
@@ -88,66 +88,87 @@ Geometry CreateGeometry()
   return texturedQuadGeometry;
 }
 
-int UtcFrustumCullN(void)
+Actor CreateMeshActorToStage( TestApplication& application, Vector3 parentOrigin = ParentOrigin::CENTER, Vector3 anchorPoint = AnchorPoint::CENTER, Shader::ShaderHints shaderHints = Shader::HINT_NONE )
 {
-  TestApplication application;
-  TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
-  TraceCallStack& drawTrace = glAbstraction.GetDrawTrace();
-  drawTrace.Enable(true);
-
   PixelBuffer* pixelBuffer = new PixelBuffer[ 4 ];
   BufferImage image = BufferImage::New( pixelBuffer, 1, 1 );
 
   Geometry geometry = CreateGeometry();
-  Material material = Material::New( Shader::New( VERTEX_SHADER, FRAGMENT_SHADER ) );
+  Material material = Material::New( Shader::New( VERTEX_SHADER, FRAGMENT_SHADER, shaderHints ) );
   Sampler sampler = Sampler::New( image, "sTexture" );
   material.AddSampler( sampler );
   Renderer renderer = Renderer::New( geometry, material );
 
   Actor meshActor = Actor::New();
   meshActor.AddRenderer( renderer );
-  meshActor.SetSize( Vector3( 400.0f, 400.0f, 0.1f) );
-  drawTrace.Reset();
-
-  meshActor.SetParentOrigin( ParentOrigin::CENTER );
-  meshActor.SetAnchorPoint( AnchorPoint::CENTER );
+  meshActor.SetSize( Vector3( 400.0f, 400.0f, 0.1f ) );
+  meshActor.SetParentOrigin( parentOrigin );
+  meshActor.SetAnchorPoint( anchorPoint );
   Stage::GetCurrent().Add( meshActor );
 
   application.SendNotification();
-  application.Render(16);
-  DALI_TEST_CHECK( drawTrace.FindMethod( "DrawElements" ) );
-  END_TEST;
+  application.Render( 16 );
+
+  return meshActor;
 }
 
-int UtcFrustumLeftCullP(void)
+bool GetCameraDepths( TestApplication& application, float& nearPlane, float& farPlane, float& cameraDepth )
+{
+  RenderTaskList renderTasks = Stage::GetCurrent().GetRenderTaskList();
+  CameraActor cameraActor;
+  for( unsigned int i = 0; i < renderTasks.GetTaskCount(); ++i )
+  {
+    RenderTask task = renderTasks.GetTask( i );
+    cameraActor = task.GetCameraActor();
+    if( cameraActor )
+    {
+      break;
+    }
+  }
+  if( cameraActor )
+  {
+    application.SendNotification();
+    application.Render( 16 );
+
+    nearPlane = cameraActor.GetNearClippingPlane();
+    farPlane = cameraActor.GetFarClippingPlane();
+    cameraDepth = cameraActor.GetCurrentPosition().z;
+  }
+
+  return !!cameraActor;
+}
+
+int UtcFrustumCullN(void)
 {
   TestApplication application;
   TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
   TraceCallStack& drawTrace = glAbstraction.GetDrawTrace();
-  drawTrace.Enable(true);
+  drawTrace.Enable( true );
 
-  PixelBuffer* pixelBuffer = new PixelBuffer[ 4 ];
-  BufferImage image = BufferImage::New( pixelBuffer, 1, 1 );
-
-  Geometry geometry = CreateGeometry();
-  Material material = Material::New( Shader::New( VERTEX_SHADER, FRAGMENT_SHADER ) );
-  Sampler sampler = Sampler::New( image, "sTexture" );
-  material.AddSampler( sampler );
-  Renderer renderer = Renderer::New( geometry, material );
+  CreateMeshActorToStage( application );
 
-  Actor meshActor = Actor::New();
-  meshActor.AddRenderer( renderer );
-  meshActor.SetSize( Vector3( 400.0f, 400.0f, 0.1f) );
   drawTrace.Reset();
+  application.SendNotification();
+  application.Render( 16 );
 
-  float offset = -0.01f;
+  DALI_TEST_CHECK( drawTrace.FindMethod( "DrawElements" ) );
 
-  meshActor.SetParentOrigin( Vector3( offset, 0.5f, 0.5f ) );
-  meshActor.SetAnchorPoint( AnchorPoint::CENTER_RIGHT );
-  Stage::GetCurrent().Add( meshActor );
+  END_TEST;
+}
+
+int UtcFrustumLeftCullP(void)
+{
+  TestApplication application;
+  TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
+  TraceCallStack& drawTrace = glAbstraction.GetDrawTrace();
+  drawTrace.Enable( true );
+
+  float offset = -0.01f;
+  Actor meshActor = CreateMeshActorToStage( application, Vector3( offset, 0.5f, 0.5f ), AnchorPoint::CENTER_RIGHT );
 
+  drawTrace.Reset();
   application.SendNotification();
-  application.Render(16);
+  application.Render( 16 );
 
   // This will be box culled
   DALI_TEST_CHECK( !drawTrace.FindMethod( "DrawElements" ) );
@@ -155,11 +176,12 @@ int UtcFrustumLeftCullP(void)
   float radius = meshActor.GetTargetSize().Length() * 0.5f;
   Vector2 stageSize = Stage::GetCurrent().GetSize();
 
-  drawTrace.Reset();
-  meshActor.SetParentOrigin( Vector3( -radius/stageSize.width + offset, 0.5f, 0.5f ) );
+  meshActor.SetParentOrigin( Vector3( -radius / stageSize.width + offset, 0.5f, 0.5f ) );
   meshActor.SetAnchorPoint( AnchorPoint::CENTER );
+
+  drawTrace.Reset();
   application.SendNotification();
-  application.Render(16);
+  application.Render( 16 );
 
   // This will be sphere culled
   DALI_TEST_CHECK( !drawTrace.FindMethod( "DrawElements" ) );
@@ -167,35 +189,38 @@ int UtcFrustumLeftCullP(void)
   END_TEST;
 }
 
-int UtcFrustumRightCullP(void)
+int UtcFrustumLeftCullN(void)
 {
   TestApplication application;
   TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
   TraceCallStack& drawTrace = glAbstraction.GetDrawTrace();
-  drawTrace.Enable(true);
+  drawTrace.Enable( true );
 
-  PixelBuffer* pixelBuffer = new PixelBuffer[ 4 ];
-  BufferImage image = BufferImage::New( pixelBuffer, 1, 1 );
-
-  Geometry geometry = CreateGeometry();
-  Material material = Material::New( Shader::New( VERTEX_SHADER, FRAGMENT_SHADER ) );
-  Sampler sampler = Sampler::New( image, "sTexture" );
-  material.AddSampler( sampler );
-  Renderer renderer = Renderer::New( geometry, material );
+  float offset = 0.01f;
+  Actor meshActor = CreateMeshActorToStage( application, Vector3( offset, 0.5f, 0.5f ), AnchorPoint::CENTER_RIGHT );
 
-  Actor meshActor = Actor::New();
-  meshActor.AddRenderer( renderer );
-  meshActor.SetSize( Vector3( 400.0f, 400.0f, 0.1f) );
   drawTrace.Reset();
+  application.SendNotification();
+  application.Render( 16 );
 
-  float offset = 1.01f;
+  DALI_TEST_CHECK( drawTrace.FindMethod( "DrawElements" ) );
 
-  meshActor.SetParentOrigin( Vector3( offset, 0.5f, 0.5f ) );
-  meshActor.SetAnchorPoint( AnchorPoint::CENTER_LEFT );
-  Stage::GetCurrent().Add( meshActor );
+  END_TEST;
+}
+
+int UtcFrustumRightCullP(void)
+{
+  TestApplication application;
+  TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
+  TraceCallStack& drawTrace = glAbstraction.GetDrawTrace();
+  drawTrace.Enable( true );
+
+  float offset = 1.01f;
+  Actor meshActor = CreateMeshActorToStage( application, Vector3( offset, 0.5f, 0.5f ), AnchorPoint::CENTER_LEFT );
 
+  drawTrace.Reset();
   application.SendNotification();
-  application.Render(16);
+  application.Render( 16 );
 
   // This will be box culled
   DALI_TEST_CHECK( !drawTrace.FindMethod( "DrawElements" ) );
@@ -203,11 +228,12 @@ int UtcFrustumRightCullP(void)
   float radius = meshActor.GetTargetSize().Length() * 0.5f;
   Vector2 stageSize = Stage::GetCurrent().GetSize();
 
-  drawTrace.Reset();
-  meshActor.SetParentOrigin( Vector3( radius/stageSize.width + offset, 0.5f, 0.5f ) );
+  meshActor.SetParentOrigin( Vector3( radius / stageSize.width + offset, 0.5f, 0.5f ) );
   meshActor.SetAnchorPoint( AnchorPoint::CENTER );
+
+  drawTrace.Reset();
   application.SendNotification();
-  application.Render(16);
+  application.Render( 16 );
 
   // This will be sphere culled
   DALI_TEST_CHECK( !drawTrace.FindMethod( "DrawElements" ) );
@@ -215,35 +241,38 @@ int UtcFrustumRightCullP(void)
   END_TEST;
 }
 
-int UtcFrustumTopCullP(void)
+int UtcFrustumRightCullN(void)
 {
   TestApplication application;
   TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
   TraceCallStack& drawTrace = glAbstraction.GetDrawTrace();
-  drawTrace.Enable(true);
+  drawTrace.Enable( true );
 
-  PixelBuffer* pixelBuffer = new PixelBuffer[ 4 ];
-  BufferImage image = BufferImage::New( pixelBuffer, 1, 1 );
-
-  Geometry geometry = CreateGeometry();
-  Material material = Material::New( Shader::New( VERTEX_SHADER, FRAGMENT_SHADER ) );
-  Sampler sampler = Sampler::New( image, "sTexture" );
-  material.AddSampler( sampler );
-  Renderer renderer = Renderer::New( geometry, material );
+  float offset = 0.99f;
+  Actor meshActor = CreateMeshActorToStage( application, Vector3( offset, 0.5f, 0.5f ), AnchorPoint::CENTER_LEFT );
 
-  Actor meshActor = Actor::New();
-  meshActor.AddRenderer( renderer );
-  meshActor.SetSize( Vector3( 400.0f, 400.0f, 0.1f) );
   drawTrace.Reset();
+  application.SendNotification();
+  application.Render( 16 );
 
-  float offset = -0.01f;
+  DALI_TEST_CHECK( drawTrace.FindMethod( "DrawElements" ) );
 
-  meshActor.SetParentOrigin( Vector3( 0.5f, offset, 0.5f ) );
-  meshActor.SetAnchorPoint( AnchorPoint::BOTTOM_CENTER );
-  Stage::GetCurrent().Add( meshActor );
+  END_TEST;
+}
+
+int UtcFrustumTopCullP(void)
+{
+  TestApplication application;
+  TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
+  TraceCallStack& drawTrace = glAbstraction.GetDrawTrace();
+  drawTrace.Enable( true );
+
+  float offset = -0.01f;
+  Actor meshActor = CreateMeshActorToStage( application, Vector3( 0.5f, offset, 0.5f ), AnchorPoint::BOTTOM_CENTER );
 
+  drawTrace.Reset();
   application.SendNotification();
-  application.Render(16);
+  application.Render( 16 );
 
   // This will be box culled
   DALI_TEST_CHECK( !drawTrace.FindMethod( "DrawElements" ) );
@@ -251,11 +280,12 @@ int UtcFrustumTopCullP(void)
   float radius = meshActor.GetTargetSize().Length() * 0.5f;
   Vector2 stageSize = Stage::GetCurrent().GetSize();
 
-  drawTrace.Reset();
-  meshActor.SetParentOrigin( Vector3( 0.5f, -radius/stageSize.width + offset, 0.5f ) );
+  meshActor.SetParentOrigin( Vector3( 0.5f, -radius / stageSize.width + offset, 0.5f ) );
   meshActor.SetAnchorPoint( AnchorPoint::CENTER );
+
+  drawTrace.Reset();
   application.SendNotification();
-  application.Render(16);
+  application.Render( 16 );
 
   // This will be sphere culled
   DALI_TEST_CHECK( !drawTrace.FindMethod( "DrawElements" ) );
@@ -263,35 +293,39 @@ int UtcFrustumTopCullP(void)
   END_TEST;
 }
 
-int UtcFrustumBottomCullP(void)
+int UtcFrustumTopCullN(void)
 {
   TestApplication application;
   TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
   TraceCallStack& drawTrace = glAbstraction.GetDrawTrace();
-  drawTrace.Enable(true);
+  drawTrace.Enable( true );
 
-  PixelBuffer* pixelBuffer = new PixelBuffer[ 4 ];
-  BufferImage image = BufferImage::New( pixelBuffer, 1, 1 );
+  float offset = 0.01f;
+  Actor meshActor = CreateMeshActorToStage( application, Vector3( 0.5f, offset, 0.5f ), AnchorPoint::BOTTOM_CENTER );
 
-  Geometry geometry = CreateGeometry();
-  Material material = Material::New( Shader::New( VERTEX_SHADER, FRAGMENT_SHADER ) );
-  Sampler sampler = Sampler::New( image, "sTexture" );
-  material.AddSampler( sampler );
-  Renderer renderer = Renderer::New( geometry, material );
-
-  Actor meshActor = Actor::New();
-  meshActor.AddRenderer( renderer );
-  meshActor.SetSize( Vector3( 400.0f, 400.0f, 0.1f) );
   drawTrace.Reset();
+  application.SendNotification();
+  application.Render( 16 );
 
-  float offset = 1.01f;
+  // This will be box culled
+  DALI_TEST_CHECK( drawTrace.FindMethod( "DrawElements" ) );
 
-  meshActor.SetParentOrigin( Vector3( 0.5f, offset, 0.5f ) );
-  meshActor.SetAnchorPoint( AnchorPoint::TOP_CENTER );
-  Stage::GetCurrent().Add( meshActor );
+  END_TEST;
+}
+
+int UtcFrustumBottomCullP(void)
+{
+  TestApplication application;
+  TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
+  TraceCallStack& drawTrace = glAbstraction.GetDrawTrace();
+  drawTrace.Enable( true );
 
+  float offset = 1.01f;
+  Actor meshActor = CreateMeshActorToStage( application, Vector3( 0.5f, offset, 0.5f ), AnchorPoint::TOP_CENTER );
+
+  drawTrace.Reset();
   application.SendNotification();
-  application.Render(16);
+  application.Render( 16 );
 
   // This will be box culled
   DALI_TEST_CHECK( !drawTrace.FindMethod( "DrawElements" ) );
@@ -299,11 +333,12 @@ int UtcFrustumBottomCullP(void)
   float radius = meshActor.GetTargetSize().Length() * 0.5f;
   Vector2 stageSize = Stage::GetCurrent().GetSize();
 
-  drawTrace.Reset();
-  meshActor.SetParentOrigin( Vector3( 0.5f, radius/stageSize.width + offset, 0.5f ) );
+  meshActor.SetParentOrigin( Vector3( 0.5f, radius / stageSize.width + offset, 0.5f ) );
   meshActor.SetAnchorPoint( AnchorPoint::CENTER );
+
+  drawTrace.Reset();
   application.SendNotification();
-  application.Render(16);
+  application.Render( 16 );
 
   // This will be sphere culled
   DALI_TEST_CHECK( !drawTrace.FindMethod( "DrawElements" ) );
@@ -311,36 +346,87 @@ int UtcFrustumBottomCullP(void)
   END_TEST;
 }
 
+int UtcFrustumBottomCullN(void)
+{
+  TestApplication application;
+  TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
+  TraceCallStack& drawTrace = glAbstraction.GetDrawTrace();
+  drawTrace.Enable( true );
+
+  float offset = 0.99f;
+  Actor meshActor = CreateMeshActorToStage( application, Vector3( 0.5f, offset, 0.5f ), AnchorPoint::TOP_CENTER );
+
+  drawTrace.Reset();
+  application.SendNotification();
+  application.Render( 16 );
+
+  DALI_TEST_CHECK( drawTrace.FindMethod( "DrawElements" ) );
+
+  END_TEST;
+}
+
 int UtcFrustumNearCullP(void)
 {
   TestApplication application;
   TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
   TraceCallStack& drawTrace = glAbstraction.GetDrawTrace();
-  drawTrace.Enable(true);
+  drawTrace.Enable( true );
 
-  PixelBuffer* pixelBuffer = new PixelBuffer[ 4 ];
-  BufferImage image = BufferImage::New( pixelBuffer, 1, 1 );
+  float nearPlane, farPlane, cameraDepth;
+  DALI_TEST_CHECK( GetCameraDepths( application, nearPlane, farPlane, cameraDepth ) );
 
-  Geometry geometry = CreateGeometry();
-  Material material = Material::New( Shader::New( VERTEX_SHADER, FRAGMENT_SHADER ) );
-  Sampler sampler = Sampler::New( image, "sTexture" );
-  material.AddSampler( sampler );
-  Renderer renderer = Renderer::New( geometry, material );
+  Actor meshActor = CreateMeshActorToStage( application );
+  Vector3 meshPosition = meshActor.GetCurrentPosition();
+
+  float radius = meshActor.GetTargetSize().Length() * 0.5f;
+  float offset = ( meshActor.GetTargetSize().z + radius ) * 0.5f; //midpoint between AABB and sphere
+  meshPosition.z = cameraDepth - nearPlane +  offset;
+  meshActor.SetPosition( meshPosition );
 
-  Actor meshActor = Actor::New();
-  meshActor.AddRenderer( renderer );
-  meshActor.SetSize( Vector3( 400.0f, 400.0f, 0.1f) );
   drawTrace.Reset();
+  application.SendNotification();
+  application.Render( 16 );
 
-  meshActor.SetParentOrigin( Vector3( 0.5f, 0.5f, 7.0f ) );
-  meshActor.SetAnchorPoint( AnchorPoint::CENTER );
-  Stage::GetCurrent().Add( meshActor );
+  // This will be box culled
+  DALI_TEST_CHECK( !drawTrace.FindMethod( "DrawElements" ) );
 
+  offset = radius + 0.1f;
+  meshPosition.z = cameraDepth - nearPlane + offset;
+  meshActor.SetPosition( meshPosition );
+
+  drawTrace.Reset();
   application.SendNotification();
-  application.Render(16);
+  application.Render( 16 );
 
   // This will be sphere culled
   DALI_TEST_CHECK( !drawTrace.FindMethod( "DrawElements" ) );
+
+  END_TEST;
+}
+
+int UtcFrustumNearCullN(void)
+{
+  TestApplication application;
+  TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
+  TraceCallStack& drawTrace = glAbstraction.GetDrawTrace();
+  drawTrace.Enable( true );
+
+  float nearPlane, farPlane, cameraDepth;
+  DALI_TEST_CHECK( GetCameraDepths( application, nearPlane, farPlane, cameraDepth ) );
+
+  Actor meshActor = CreateMeshActorToStage( application );
+  Vector3 meshPosition = meshActor.GetCurrentPosition();
+
+  float offset = meshActor.GetTargetSize().z - 0.1f;
+  meshPosition.z = cameraDepth - nearPlane + offset;
+  meshActor.SetPosition( meshPosition );
+
+  drawTrace.Reset();
+  application.SendNotification();
+  application.Render( 16 );
+
+  DALI_TEST_CHECK( drawTrace.FindMethod( "DrawElements" ) );
+
   END_TEST;
 }
 
@@ -349,63 +435,82 @@ int UtcFrustumFarCullP(void)
   TestApplication application;
   TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
   TraceCallStack& drawTrace = glAbstraction.GetDrawTrace();
-  drawTrace.Enable(true);
+  drawTrace.Enable( true );
 
-  PixelBuffer* pixelBuffer = new PixelBuffer[ 4 ];
-  BufferImage image = BufferImage::New( pixelBuffer, 1, 1 );
+  float nearPlane, farPlane, cameraDepth;
+  DALI_TEST_CHECK( GetCameraDepths( application, nearPlane, farPlane, cameraDepth ) );
 
-  Geometry geometry = CreateGeometry();
-  Material material = Material::New( Shader::New( VERTEX_SHADER, FRAGMENT_SHADER ) );
-  Sampler sampler = Sampler::New( image, "sTexture" );
-  material.AddSampler( sampler );
-  Renderer renderer = Renderer::New( geometry, material );
+  Actor meshActor = CreateMeshActorToStage( application );
+  Vector3 meshPosition = meshActor.GetCurrentPosition();
+
+  float radius = meshActor.GetTargetSize().Length() * 0.5f;
+  float offset = ( meshActor.GetTargetSize().z + radius ) * 0.5f; //midpoint between AABB and sphere
+
+  meshPosition.z = cameraDepth - farPlane - offset;
+  meshActor.SetPosition( meshPosition );
 
-  Actor meshActor = Actor::New();
-  meshActor.AddRenderer( renderer );
-  meshActor.SetSize( Vector3( 400.0f, 400.0f, 0.1f) );
   drawTrace.Reset();
+  application.SendNotification();
+  application.Render( 16 );
 
-  meshActor.SetParentOrigin( Vector3( 0.5f, 0.5f, -7.0f ) );
-  meshActor.SetAnchorPoint( AnchorPoint::CENTER );
-  Stage::GetCurrent().Add( meshActor );
+  // This will be box culled
+  DALI_TEST_CHECK( !drawTrace.FindMethod( "DrawElements" ) );
 
+  offset = radius + 0.1f;
+  meshPosition.z = cameraDepth - farPlane - offset;
+  meshActor.SetPosition( meshPosition );
+
+  drawTrace.Reset();
   application.SendNotification();
-  application.Render(16);
+  application.Render( 16 );
 
   // This will be sphere culled
   DALI_TEST_CHECK( !drawTrace.FindMethod( "DrawElements" ) );
+
   END_TEST;
 }
 
-int UtcFrustumCullDisabledP(void)
+int UtcFrustumFarCullN(void)
 {
-    TestApplication application;
+  TestApplication application;
   TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
   TraceCallStack& drawTrace = glAbstraction.GetDrawTrace();
-  drawTrace.Enable(true);
+  drawTrace.Enable( true );
 
-  PixelBuffer* pixelBuffer = new PixelBuffer[ 4 ];
-  BufferImage image = BufferImage::New( pixelBuffer, 1, 1 );
+  float nearPlane, farPlane, cameraDepth;
+  DALI_TEST_CHECK( GetCameraDepths( application, nearPlane, farPlane, cameraDepth ) );
 
-  Geometry geometry = CreateGeometry();
-  Material material = Material::New( Shader::New( VERTEX_SHADER, FRAGMENT_SHADER, Shader::HINT_MODIFIES_GEOMETRY ) );
-  Sampler sampler = Sampler::New( image, "sTexture" );
-  material.AddSampler( sampler );
-  Renderer renderer = Renderer::New( geometry, material );
+  Actor meshActor = CreateMeshActorToStage( application );
+  Vector3 meshPosition = meshActor.GetCurrentPosition();
+
+  float offset = meshActor.GetTargetSize().z - 0.1f;
+  meshPosition.z = cameraDepth - farPlane - offset;
+  meshActor.SetPosition( meshPosition );
 
-  Actor meshActor = Actor::New();
-  meshActor.AddRenderer( renderer );
-  meshActor.SetSize( Vector3( 400.0f, 400.0f, 0.1f) );
   drawTrace.Reset();
+  application.SendNotification();
+  application.Render( 16 );
 
-  meshActor.SetParentOrigin( ParentOrigin::CENTER );
-  meshActor.SetAnchorPoint( AnchorPoint::CENTER );
-  Stage::GetCurrent().Add( meshActor );
+  DALI_TEST_CHECK( drawTrace.FindMethod( "DrawElements" ) );
+
+  END_TEST;
+}
 
+int UtcFrustumCullDisabledP(void)
+{
+  TestApplication application;
+  TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
+  TraceCallStack& drawTrace = glAbstraction.GetDrawTrace();
+  drawTrace.Enable( true );
+
+  CreateMeshActorToStage( application, Vector3( 7.0f, 0.5f, 0.5f ), AnchorPoint::CENTER, Shader::HINT_MODIFIES_GEOMETRY );
+
+  drawTrace.Reset();
   application.SendNotification();
-  application.Render(16);
+  application.Render( 16 );
 
   // This should not be culled
   DALI_TEST_CHECK( drawTrace.FindMethod( "DrawElements" ) );
+
   END_TEST;
 }