Removed GeometryType from ShaderEffect and ShaderSubType
[platform/core/uifw/dali-core.git] / automated-tests / src / dali / utc-Dali-ShaderEffect.cpp
index a340d56..7fc9b8e 100644 (file)
@@ -44,10 +44,6 @@ static const char* FragmentSource =
 "This is a custom fragment shader\n"
 "made on purpose to look nothing like a normal fragment shader inside dali\n";
 
-static const char* FragmentSourceUsingExtensions =
-"This is a custom fragment shader using extensions\n"
-"made on purpose to look nothing like a normal fragment shader inside dali\n";
-
 const int GETSOURCE_BUFFER_SIZE = 0x10000;
 
 
@@ -58,9 +54,9 @@ struct TestConstraintToVector3
   {
   }
 
-  Vector3 operator()(const Vector3& current)
+  void operator()( Vector3& current, const PropertyInputContainer& /* inputs */ )
   {
-    return mTarget;
+    current = mTarget;
   }
 
   Vector3 mTarget;
@@ -72,10 +68,9 @@ struct TestConstraintFromPositionToVector3
   {
   }
 
-  Vector3 operator()(const Vector3& current, const PropertyInput& position)
+  void operator()( Vector3& current, const PropertyInputContainer& inputs )
   {
-
-    return position.GetVector3();
+    current = inputs[0]->GetVector3();
   }
 };
 
@@ -86,37 +81,14 @@ struct TestConstraintToVector3Double
   {
   }
 
-  Vector3 operator()(const Vector3& current)
+  void operator()( Vector3& current, const PropertyInputContainer& /* inputs */ )
   {
-    return mTarget * 2.0f;
+    current = mTarget * 2.0f;
   }
 
   Vector3 mTarget;
 };
 
-class ShaderEffectExtension : public ShaderEffect::Extension {};
-
-
-class TestExtension : public ShaderEffect::Extension
-{
-public:
-  TestExtension( bool& deleted )
-  : mDeleted(deleted)
-  {
-    mDeleted = false;
-  }
-  ~TestExtension()
-  {
-    mDeleted = true;
-  }
-  bool IsAlive() const
-  {
-    return !mDeleted;
-  }
-private:
-  bool& mDeleted;
-};
-
 static const char* TestImageFilename = "icon_wrt.png";
 
 Integration::Bitmap* CreateBitmap( unsigned int imageHeight, unsigned int imageWidth, unsigned int initialColor )
@@ -163,104 +135,16 @@ int UtcDaliShaderEffectMethodNew02(void)
   END_TEST;
 }
 
-int UtcDaliShaderEffectMethodNew03(void)
-{
-  TestApplication application;
-
-  ShaderEffect effect = ShaderEffect::New( VertexSource, FragmentSource, VertexSource, FragmentSource, ShaderEffect::HINT_NONE );
-  DALI_TEST_CHECK(effect);
-  END_TEST;
-}
-
-int UtcDaliShaderEffectMethodNew04(void)
-{
-  TestApplication application;
-  tet_infoline("Testing prefixed version of Dali::ShaderEffect::New()");
-
-  std::string fragmentShaderPrefix = "#define TEST_FS 1\n#extension GL_OES_standard_derivatives : enable";
-  std::string vertexShaderPrefix = "#define TEST_VS 1";
-
-  try
-  {
-    // Call render to compile default shaders.
-    application.SendNotification();
-    application.Render();
-    application.Render();
-    application.Render();
-
-    GLuint lastShaderCompiledBefore = application.GetGlAbstraction().GetLastShaderCompiled();
-    ShaderEffect effect = ShaderEffect::NewWithPrefix( vertexShaderPrefix, VertexSource,
-                                                       fragmentShaderPrefix, FragmentSourceUsingExtensions,
-                                                       GEOMETRY_TYPE_IMAGE, ShaderEffect::HINT_NONE );
-
-    BufferImage image = CreateBufferImage();
-    ImageActor actor = ImageActor::New( image );
-    actor.SetSize( 100.0f, 100.0f );
-    actor.SetName("TestImageFilenameActor");
-    actor.SetShaderEffect(effect);
-    Stage::GetCurrent().Add(actor);
-
-    application.SendNotification();
-    application.Render();
-    GLuint lastShaderCompiledAfter = application.GetGlAbstraction().GetLastShaderCompiled();
-    bool testResult = false;
-
-    // we should have compiled 2 shaders.
-    DALI_TEST_EQUALS( lastShaderCompiledAfter, lastShaderCompiledBefore + 2, TEST_LOCATION );
-
-    char testVertexSourceResult[GETSOURCE_BUFFER_SIZE];
-    char testFragmentSourceResult[GETSOURCE_BUFFER_SIZE];
-
-     // we are interested in the first two.
-    GLuint vertexShaderId = lastShaderCompiledBefore + 1;
-    GLuint fragmentShaderId = lastShaderCompiledBefore + 2;
-
-    GLsizei lengthVertexResult;
-    GLsizei lengthFragmentResult;
-
-    application.GetGlAbstraction().GetShaderSource(vertexShaderId, GETSOURCE_BUFFER_SIZE, &lengthVertexResult, testVertexSourceResult);
-    application.GetGlAbstraction().GetShaderSource(fragmentShaderId, GETSOURCE_BUFFER_SIZE, &lengthFragmentResult, testFragmentSourceResult);
-
-    int vertexShaderHasPrefix = strncmp(testVertexSourceResult, "#define ", strlen("#define "));
-    int fragmentShaderHasPrefix = strncmp(testFragmentSourceResult, "#define ", strlen("#define "));
-    testResult = (vertexShaderHasPrefix == 0) && (fragmentShaderHasPrefix == 0);
-
-    DALI_TEST_CHECK(testResult);
-  }
-  catch(Dali::DaliException& e)
-  {
-    DALI_TEST_PRINT_ASSERT( e );
-    tet_result( TET_FAIL );
-  }
-  END_TEST;
-}
-
 int UtcDaliShaderEffectMethodNew05(void)
 {
   TestApplication application;
 
   // heap constructor / destructor
   DefaultFunctionCoverage<ShaderEffect> shaderEffect;
-  DefaultFunctionCoverage<ShaderEffectExtension> shaderEffectExtension;
-
-  END_TEST;
-}
-
-int UtcDaliShaderEffectMethodNew06(void)
-{
-  TestApplication application;
-  tet_infoline("Testing Dali::ShaderEffect::New() with shader sources for different geometry types");
 
-  ShaderEffect effect = ShaderEffect::New( "imageVertexShader", "imageFragmentShader",
-                                           "textVertexShader", "textFragmentShader",
-                                           "texturedMeshVertexShader", "texturedMeshFragmentShader",
-                                           "meshVertexShader", "meshFragmentShader",
-                                           ShaderEffect::HINT_NONE );
-  DALI_TEST_CHECK(effect);
   END_TEST;
 }
 
-
 int UtcDaliShaderEffectMethodDownCast(void)
 {
   TestApplication application;
@@ -642,10 +526,8 @@ int UtcDaliShaderEffectMethodApplyConstraint(void)
       application.GetGlAbstraction().CheckUniformValue(
           "uVec3", Vector3( 1.0f, 2.0f, 3.0f ) ) );
 
-  Constraint constraint = Constraint::New<Vector3>( uVecProperty,
-                                                    TestConstraintToVector3(Vector3(4.0f, 9.0f, 16.0f)) );
-
-  effect.ApplyConstraint(constraint);
+  Constraint constraint = Constraint::New<Vector3>( effect, uVecProperty, TestConstraintToVector3(Vector3(4.0f, 9.0f, 16.0f)) );
+  constraint.Apply();
 
   application.SendNotification();
   application.Render();
@@ -681,11 +563,9 @@ int UtcDaliShaderEffectMethodApplyConstraintFromActor(void)
 
   Property::Index uVecProperty = effect.GetPropertyIndex("uVec3");
 
-  Constraint constraint = Constraint::New<Vector3>( uVecProperty,
-                                                    Source(actor, Actor::POSITION),
-                                                    TestConstraintFromPositionToVector3() );
-
-  effect.ApplyConstraint(constraint);
+  Constraint constraint = Constraint::New<Vector3>( effect, uVecProperty, TestConstraintFromPositionToVector3() );
+  constraint.AddSource( Source( actor, Actor::Property::POSITION ) );
+  constraint.Apply();
 
   application.SendNotification();
   application.Render();
@@ -721,16 +601,12 @@ int UtcDaliShaderEffectMethodApplyConstraintFromActor2(void)
 
   Property::Index uVecProperty = effect.GetPropertyIndex("uVec3");
 
-  Constraint shaderConstraint = Constraint::New<Vector3>( uVecProperty,
-                                                    Source(actor, Actor::POSITION),
-                                                    TestConstraintFromPositionToVector3() );
+  Constraint shaderConstraint = Constraint::New<Vector3>( effect, uVecProperty, TestConstraintFromPositionToVector3() );
+  shaderConstraint.AddSource( Source(actor, Actor::Property::POSITION) );
+  shaderConstraint.Apply();
 
-  effect.ApplyConstraint(shaderConstraint);
-
-  Constraint actorConstraint = Constraint::New<Vector3>( Actor::POSITION,
-                                                         TestConstraintToVector3Double(targetPosition) );
-
-  actor.ApplyConstraint(actorConstraint);
+  Constraint actorConstraint = Constraint::New<Vector3>( actor, Actor::Property::POSITION, TestConstraintToVector3Double(targetPosition) );
+  actorConstraint.Apply();
 
   application.SendNotification();
   application.Render();
@@ -742,78 +618,6 @@ int UtcDaliShaderEffectMethodApplyConstraintFromActor2(void)
   END_TEST;
 }
 
-int UtcDaliShaderEffectMethodApplyConstraintCallback(void)
-{
-  // Test whether Shader's uniform can be constrained to a stationary constraint.
-  TestApplication application;
-
-  ShaderEffect effect = ShaderEffect::New( VertexSource, FragmentSource );
-  DALI_TEST_CHECK( effect );
-
-  BufferImage image = CreateBufferImage();
-
-  effect.SetUniform( "uVec3", Vector3( 1.0f, 2.0f, 3.0f ) );
-
-  ImageActor actor = ImageActor::New( image );
-  actor.SetSize( 100.0f, 100.0f );
-  actor.SetName("TestImageFilenameActor");
-  actor.SetShaderEffect(effect);
-  Stage::GetCurrent().Add(actor);
-
-  Property::Index uVecProperty = effect.GetPropertyIndex("uVec3");
-
-  application.SendNotification();
-  application.Render();
-
-  // Test effects of SetUniform...
-  DALI_TEST_CHECK(
-      application.GetGlAbstraction().CheckUniformValue(
-          "uVec3", Vector3( 1.0f, 2.0f, 3.0f ) ) );
-
-  Constraint constraint = Constraint::New<Vector3>( uVecProperty,
-                                                    TestConstraintToVector3(Vector3(4.0f, 9.0f, 16.0f)) );
-
-  constraint.SetApplyTime( 10.0f );
-
-  bool constraintCheck( false );
-  ConstraintAppliedCheck appliedCheck( constraintCheck );
-
-  // We should receive the "Applied" signal after 10 seconds
-  ActiveConstraint active = effect.ApplyConstraint(constraint);
-  active.AppliedSignal().Connect( &application, appliedCheck );
-
-  application.SendNotification();
-  application.Render(static_cast<unsigned int>(1000.0f)); // 1 elapsed second
-
-  // Check signal has not fired
-  application.SendNotification();
-  appliedCheck.CheckSignalNotReceived();
-
-  application.Render(static_cast<unsigned int>(4000.0f)); // 5 elapsed seconds
-
-  // Check signal has not fired
-  application.SendNotification();
-  appliedCheck.CheckSignalNotReceived();
-
-  application.Render(static_cast<unsigned int>(5000.0f - 1.0f)); // <10 elapsed seconds
-
-  // Check signal has not fired
-  application.SendNotification();
-  appliedCheck.CheckSignalNotReceived();
-
-  application.Render(static_cast<unsigned int>(2.0f)); // >10 elapsed seconds
-
-  // Signal should have fired
-  application.SendNotification();
-  appliedCheck.CheckSignalReceived();
-
-  // Test effects of Constraint.
-  DALI_TEST_CHECK(
-      application.GetGlAbstraction().CheckUniformValue(
-          "uVec3", Vector3( 4.0f, 9.0f, 16.0f ) ) );
-  END_TEST;
-}
-
 int UtcDaliShaderEffectMethodRemoveConstraints(void)
 {
   // Test if constrains can be removed before they are ever applyed.
@@ -842,10 +646,8 @@ int UtcDaliShaderEffectMethodRemoveConstraints(void)
       application.GetGlAbstraction().CheckUniformValue(
           "uVec3", Vector3( 1.0f, 2.0f, 3.0f ) ) );
 
-  Constraint constraint = Constraint::New<Vector3>( uVecProperty,
-                                                    TestConstraintToVector3(Vector3(4.0f, 9.0f, 16.0f)) );
-
-  effect.ApplyConstraint(constraint);
+  Constraint constraint = Constraint::New<Vector3>( effect, uVecProperty, TestConstraintToVector3(Vector3(4.0f, 9.0f, 16.0f)) );
+  constraint.Apply();
 
   // Remove the constraints
   effect.RemoveConstraints();
@@ -888,10 +690,8 @@ int UtcDaliShaderEffectMethodRemoveConstraints2(void)
       application.GetGlAbstraction().CheckUniformValue(
           "uVec3", Vector3( 1.0f, 2.0f, 3.0f ) ) );
 
-  Constraint constraint = Constraint::New<Vector3>( uVecProperty,
-                                                    TestConstraintToVector3(Vector3(4.0f, 9.0f, 16.0f)) );
-
-  effect.ApplyConstraint(constraint);
+  Constraint constraint = Constraint::New<Vector3>( effect, uVecProperty, TestConstraintToVector3(Vector3(4.0f, 9.0f, 16.0f)) );
+  constraint.Apply();
 
   application.SendNotification();
   application.Render();
@@ -910,91 +710,6 @@ int UtcDaliShaderEffectMethodRemoveConstraints2(void)
   END_TEST;
 }
 
-int UtcDaliShaderEffectMethodCreateExtension(void)
-{
-  // Test creation of a shader extension
-  TestApplication aplication;
-
-  bool deleted;
-  {
-    ShaderEffect effect = ShaderEffect::New( VertexSource, FragmentSource );
-    DALI_TEST_CHECK( effect );
-
-    TestExtension* extension = new TestExtension ( deleted );
-
-    effect.AttachExtension( extension );
-
-    DALI_TEST_CHECK( static_cast<TestExtension&>(effect.GetExtension()).IsAlive() );
-  }
-
-  DALI_TEST_CHECK( deleted );
-  END_TEST;
-}
-
-int UtcDaliShaderEffectMethodCreateExtension2(void)
-{
-  // Test creation of a shader extension
-  bool deleted;
-  {
-    TestApplication application;
-
-    ShaderEffect effect = ShaderEffect::New( VertexSource, FragmentSource );
-    DALI_TEST_CHECK( effect );
-
-    BufferImage image = CreateBufferImage();
-
-    effect.SetUniform( "uFloat", 1.0f );
-
-    ImageActor actor = ImageActor::New( image );
-    actor.SetSize( 100.0f, 100.0f );
-    actor.SetName("TestImageFilenameActor");
-    actor.SetShaderEffect(effect);
-    Stage::GetCurrent().Add(actor);
-
-    application.SendNotification();
-    application.Render();
-
-    TestExtension* extension = new TestExtension ( deleted );
-
-    effect.AttachExtension( extension );
-
-    const ShaderEffect& constEffect(effect);
-    const TestExtension& ext( static_cast<const TestExtension&>(constEffect.GetExtension()) );
-
-    DALI_TEST_CHECK( ext.IsAlive() );
-  }
-
-  DALI_TEST_CHECK( deleted );
-  END_TEST;
-}
-
-int UtcDaliShaderEffectMethodNoExtension(void)
-{
-  TestApplication application;
-
-  ShaderEffect effect;
-
-  try
-  {
-    ShaderEffect effect = ShaderEffect::New( VertexSource, FragmentSource );
-    DALI_TEST_CHECK( effect );
-
-    // Don't attach extension
-    ShaderEffect::Extension& extension = effect.GetExtension();
-    (void) extension;
-
-    DALI_TEST_CHECK( false );
-  }
-  catch (Dali::DaliException& e)
-  {
-    // Tests that a negative test of an assertion succeeds
-    DALI_TEST_PRINT_ASSERT( e );
-    DALI_TEST_CHECK( !effect );
-  }
-  END_TEST;
-}
-
-
 int UtcDaliShaderEffectPropertyIndices(void)
 {
   TestApplication application;
@@ -1002,8 +717,8 @@ int UtcDaliShaderEffectPropertyIndices(void)
 
   Property::IndexContainer indices;
   effect.GetPropertyIndices( indices );
-  DALI_TEST_CHECK( ! indices.empty() );
-  DALI_TEST_EQUALS( indices.size(), effect.GetPropertyCount(), TEST_LOCATION );
+  DALI_TEST_CHECK( indices.Size() );
+  DALI_TEST_EQUALS( indices.Size(), effect.GetPropertyCount(), TEST_LOCATION );
   END_TEST;
 }
 
@@ -1086,8 +801,6 @@ int UtcDaliShaderEffectFromProperties01(void)
   programMap.SetValue("vertex-prefix", vertexShaderPrefix);
   programMap.SetValue("fragment-prefix", fragmentShaderPrefix);
 
-  programMap.SetValue("geometry-type", "GEOMETRY_TYPE_IMAGE");
-
   effect.SetProperty(effect.GetPropertyIndex("program"), programMap);
 
   Property::Value imageMap = Property::Value(Property::MAP);
@@ -1132,10 +845,8 @@ int UtcDaliShaderEffectFromProperties01(void)
 
 int UtcDaliShaderEffectFromProperties02(void)
 {
-  try
-  {
-    TestApplication application;
-    tet_infoline("UtcDaliShaderEffectFromProperties02()");
+  TestApplication application;
+  tet_infoline("UtcDaliShaderEffectFromProperties02()");
 
     // Call render to compile default shaders.
     application.SendNotification();
@@ -1154,18 +865,8 @@ int UtcDaliShaderEffectFromProperties02(void)
     programMap.SetValue("vertex",   std::string(VertexSource));
     programMap.SetValue("fragment", std::string(FragmentSource));
 
-    // programMap.SetValue("geometry-type", "GEOMETRY_TYPE_IMAGE");
-    // dont set by value
-    programMap.SetValue("geometry-type", GeometryType( GEOMETRY_TYPE_IMAGE ));
-
-    effect.SetProperty(effect.GetPropertyIndex("program"), programMap);
+  effect.SetProperty(effect.GetPropertyIndex("program"), programMap);
 
-    tet_result( TET_FAIL );
-  }
-  catch(Dali::DaliException& e)
-  {
-    DALI_TEST_PRINT_ASSERT( e );
-  }
   END_TEST;
 }