X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-ShaderEffects.cpp;h=5c2d497eac08b23fb9fa6b380256a9dd25444319;hp=62f368dd48871e3d97c23840b4f9ced71f66bcc1;hb=c125573992c196f15ece50589ae80efed63c8870;hpb=4eb683ee97fc0d8a7278b50252a467b843f869df diff --git a/automated-tests/src/dali-toolkit/utc-Dali-ShaderEffects.cpp b/automated-tests/src/dali-toolkit/utc-Dali-ShaderEffects.cpp index 62f368d..5c2d497 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-ShaderEffects.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-ShaderEffects.cpp @@ -20,14 +20,64 @@ #include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + using namespace Dali; int UtcDaliCreateAlphaDiscardEffect(void) { ToolkitTestApplication application; - ShaderEffect effect = Toolkit::CreateAlphaDiscardEffect(); - DALI_TEST_CHECK( effect ); + Property::Map effect = Toolkit::CreateAlphaDiscardEffect(); + DALI_TEST_CHECK( !effect.Empty() ); + + Property::Value* customShaderValue = effect.Find( "shader" ); + DALI_TEST_CHECK( customShaderValue ); + + Property::Map customShader; + DALI_TEST_CHECK( customShaderValue->Get( customShader ) ); + + Property::Value* vertexShaderValue = customShader.Find( "vertexShader" ); + DALI_TEST_CHECK( !vertexShaderValue ); + + Property::Value* fragmentShaderValue = customShader.Find( "fragmentShader" ); + DALI_TEST_CHECK( fragmentShaderValue ); + + std::string fragmentShader; + DALI_TEST_CHECK( fragmentShaderValue->Get( fragmentShader ) ); + DALI_TEST_CHECK( !fragmentShader.empty() ); + + Property::Value* gridXValue = customShader.Find( "subdivideGridX" ); + DALI_TEST_CHECK( !gridXValue ); + + Property::Value* gridYValue = customShader.Find( "subdivideGridY" ); + DALI_TEST_CHECK( !gridYValue ); + + Property::Value* hintsValue = customShader.Find( "hints" ); + DALI_TEST_CHECK( !hintsValue ); END_TEST; } @@ -97,24 +147,69 @@ int UtcDaliCreateDisplacementEffectFixed(void) END_TEST; } -int UtcDaliCreateDissolveEffect(void) +int UtcDaliCreateDissolveEffect( bool highPrecision ) { ToolkitTestApplication application; - ShaderEffect effect = Toolkit::CreateDissolveEffect(); - DALI_TEST_CHECK( effect ); + Property::Map effect = Toolkit::CreateDissolveEffect( highPrecision ); + DALI_TEST_CHECK( !effect.Empty() ); + + Property::Value* customShaderValue = effect.Find( "shader" ); + DALI_TEST_CHECK( customShaderValue ); + + Property::Map customShader; + DALI_TEST_CHECK( customShaderValue->Get( customShader ) ); + + Property::Value* vertexShaderValue = customShader.Find( "vertexShader" ); + DALI_TEST_CHECK( vertexShaderValue ); + + std::string vertexShader; + DALI_TEST_CHECK( vertexShaderValue->Get( vertexShader ) ); + DALI_TEST_CHECK( !vertexShader.empty() ); + + Property::Value* fragmentShaderValue = customShader.Find( "fragmentShader" ); + DALI_TEST_CHECK( fragmentShaderValue ); + + std::string fragmentShader; + DALI_TEST_CHECK( fragmentShaderValue->Get( fragmentShader ) ); + DALI_TEST_CHECK( !fragmentShader.empty() ); + + Property::Value* gridXValue = customShader.Find( "subdivideGridX" ); + DALI_TEST_CHECK( gridXValue ); + + int gridX = 0; + DALI_TEST_CHECK( gridXValue->Get( gridX ) ); + DALI_TEST_CHECK( gridX > 1 ); + + Property::Value* gridYValue = customShader.Find( "subdivideGridY" ); + DALI_TEST_CHECK( gridYValue ); + + int gridY = 0; + DALI_TEST_CHECK( gridYValue->Get( gridY ) ); + DALI_TEST_CHECK( gridY > 1 ); + + Property::Value* hintsValue = customShader.Find( "hints" ); + DALI_TEST_CHECK( hintsValue ); + + std::string hints; + DALI_TEST_CHECK( hintsValue->Get( hints ) ); + DALI_TEST_CHECK( hints == "outputIsTransparent" ); + + Actor actor = Actor::New(); + Toolkit::DissolveEffectSetCentralLine( actor, Vector2::ONE, Vector2::ONE, 0.0f ); + DALI_TEST_CHECK( actor.GetPropertyIndex( "uPercentage" ) != Property::INVALID_INDEX ); END_TEST; } -int UtcDaliCreateDissolveEffectMediumPrecision(void) +int UtcDaliCreateDissolveEffectHighPrecision(void) { - ToolkitTestApplication application; - - ShaderEffect effect = Toolkit::CreateDissolveEffect(false); - DALI_TEST_CHECK( effect ); + return UtcDaliCreateDissolveEffect(true); +} - END_TEST; +int UtcDaliCreateDissolveEffectMediumPrecision(void) +{ + return UtcDaliCreateDissolveEffect(false); } int UtcDaliCreateDissolveLocalEffect(void) @@ -127,12 +222,38 @@ int UtcDaliCreateDissolveLocalEffect(void) END_TEST; } -int UtcDaliCreateDistanceFieldEffect(void) +int UtcDaliCreateDissolveEffect(void) { ToolkitTestApplication application; - ShaderEffect effect = Toolkit::CreateDistanceFieldEffect(); - DALI_TEST_CHECK( effect ); + Property::Map effect = Toolkit::CreateDistanceFieldEffect(); + DALI_TEST_CHECK( !effect.Empty() ); + + Property::Value* customShaderValue = effect.Find( "shader" ); + DALI_TEST_CHECK( customShaderValue ); + + Property::Map customShader; + DALI_TEST_CHECK( customShaderValue->Get( customShader ) ); + + Property::Value* vertexShaderValue = customShader.Find( "vertexShader" ); + DALI_TEST_CHECK( !vertexShaderValue ); + + Property::Value* fragmentShaderValue = customShader.Find( "fragmentShader" ); + DALI_TEST_CHECK( fragmentShaderValue ); + + std::string fragmentShader; + DALI_TEST_CHECK( fragmentShaderValue->Get( fragmentShader ) ); + DALI_TEST_CHECK( !fragmentShader.empty() ); + + Property::Value* gridXValue = customShader.Find( "subdivideGridX" ); + DALI_TEST_CHECK( !gridXValue ); + + Property::Value* hintsValue = customShader.Find( "hints" ); + DALI_TEST_CHECK( hintsValue ); + + std::string hints; + DALI_TEST_CHECK( hintsValue->Get( hints ) ); + DALI_TEST_CHECK( hints == "outputIsTransparent" ); END_TEST; } @@ -141,8 +262,33 @@ int UtcDaliCreateImageRegionEffect(void) { ToolkitTestApplication application; - ShaderEffect effect = Toolkit::CreateImageRegionEffect(); - DALI_TEST_CHECK( effect ); + Property::Map effect = Toolkit::CreateImageRegionEffect(); + DALI_TEST_CHECK( !effect.Empty() ); + + Property::Value* customShaderValue = effect.Find( "shader" ); + DALI_TEST_CHECK( customShaderValue ); + + Property::Map customShader; + DALI_TEST_CHECK( customShaderValue->Get( customShader ) ); + + Property::Value* vertexShaderValue = customShader.Find( "vertexShader" ); + DALI_TEST_CHECK( vertexShaderValue ); + + std::string vertexShader; + DALI_TEST_CHECK( vertexShaderValue->Get( vertexShader ) ); + DALI_TEST_CHECK( !vertexShader.empty() ); + + Property::Value* fragmentShaderValue = customShader.Find( "fragmentShader" ); + DALI_TEST_CHECK( !fragmentShaderValue ); + + Property::Value* gridXValue = customShader.Find( "subdivideGridX" ); + DALI_TEST_CHECK( !gridXValue ); + + Property::Value* gridYValue = customShader.Find( "subdivideGridY" ); + DALI_TEST_CHECK( !gridYValue ); + + Property::Value* hintsValue = customShader.Find( "hints" ); + DALI_TEST_CHECK( !hintsValue ); END_TEST; } @@ -183,12 +329,61 @@ int UtcDaliCreateMotionBlurEffect(void) { ToolkitTestApplication application; - unsigned int sampleCount(4); - ShaderEffect effect = Toolkit::CreateMotionBlurEffect(sampleCount); - DALI_TEST_CHECK( effect ); + Property::Map effect = Toolkit::CreateMotionBlurEffect(); + DALI_TEST_CHECK( !effect.Empty() ); + + Property::Value* customShaderValue = effect.Find( "shader" ); + DALI_TEST_CHECK( customShaderValue ); + + Property::Map customShader; + DALI_TEST_CHECK( customShaderValue->Get( customShader ) ); + + Property::Value* vertexShaderValue = customShader.Find( "vertexShader" ); + DALI_TEST_CHECK( vertexShaderValue ); + + std::string vertexShader; + DALI_TEST_CHECK( vertexShaderValue->Get( vertexShader ) ); + DALI_TEST_CHECK( !vertexShader.empty() ); + + Property::Value* fragmentShaderValue = customShader.Find( "fragmentShader" ); + DALI_TEST_CHECK( fragmentShaderValue ); + + std::string fragmentShader; + DALI_TEST_CHECK( fragmentShaderValue->Get( fragmentShader ) ); + DALI_TEST_CHECK( !fragmentShader.empty() ); + + Property::Value* gridXValue = customShader.Find( "subdivideGridX" ); + DALI_TEST_CHECK( gridXValue ); - Property::Value value = effect.GetProperty( effect.GetPropertyIndex("uNumSamples")); - DALI_TEST_EQUALS( value.Get(), (float)sampleCount, TEST_LOCATION ); + int gridX = 0; + DALI_TEST_CHECK( gridXValue->Get( gridX ) ); + DALI_TEST_CHECK( gridX > 1 ); + + Property::Value* gridYValue = customShader.Find( "subdivideGridY" ); + DALI_TEST_CHECK( gridYValue ); + + int gridY = 0; + DALI_TEST_CHECK( gridYValue->Get( gridY ) ); + DALI_TEST_CHECK( gridY > 1 ); + + Property::Value* hintsValue = customShader.Find( "hints" ); + DALI_TEST_CHECK( hintsValue ); + + std::string hints; + DALI_TEST_CHECK( hintsValue->Get( hints ) ); + DALI_TEST_CHECK( hints == "outputIsTransparent" ); + + unsigned int sampleCount( 4 ); + Actor actor = Actor::New(); + Toolkit::SetMotionBlurProperties( actor, sampleCount ); + DALI_TEST_CHECK( actor.GetPropertyIndex( "uBlurTexCoordScale" ) != Property::INVALID_INDEX ); + DALI_TEST_CHECK( actor.GetPropertyIndex( "uGeometryStretchFactor" ) != Property::INVALID_INDEX ); + DALI_TEST_CHECK( actor.GetPropertyIndex( "uSpeedScalingFactor" ) != Property::INVALID_INDEX ); + DALI_TEST_CHECK( actor.GetPropertyIndex( "uObjectFadeStart" ) != Property::INVALID_INDEX ); + DALI_TEST_CHECK( actor.GetPropertyIndex( "uObjectFadeEnd" ) != Property::INVALID_INDEX ); + DALI_TEST_CHECK( actor.GetPropertyIndex( "uAlphaScale" ) != Property::INVALID_INDEX ); + DALI_TEST_CHECK( actor.GetPropertyIndex( "uNumSamples" ) != Property::INVALID_INDEX ); + DALI_TEST_CHECK( actor.GetPropertyIndex( "uModelLastFrame" ) != Property::INVALID_INDEX ); END_TEST; } @@ -197,8 +392,58 @@ int UtcDaliCreateMotionStretchEffect(void) { ToolkitTestApplication application; - ShaderEffect effect = Toolkit::CreateMotionStretchEffect(); - DALI_TEST_CHECK( effect ); + Property::Map effect = Toolkit::CreateMotionStretchEffect(); + DALI_TEST_CHECK( !effect.Empty() ); + + Property::Value* customShaderValue = effect.Find( "shader" ); + DALI_TEST_CHECK( customShaderValue ); + + Property::Map customShader; + DALI_TEST_CHECK( customShaderValue->Get( customShader ) ); + + Property::Value* vertexShaderValue = customShader.Find( "vertexShader" ); + DALI_TEST_CHECK( vertexShaderValue ); + + std::string vertexShader; + DALI_TEST_CHECK( vertexShaderValue->Get( vertexShader ) ); + DALI_TEST_CHECK( !vertexShader.empty() ); + + Property::Value* fragmentShaderValue = customShader.Find( "fragmentShader" ); + DALI_TEST_CHECK( fragmentShaderValue ); + + std::string fragmentShader; + DALI_TEST_CHECK( fragmentShaderValue->Get( fragmentShader ) ); + DALI_TEST_CHECK( !fragmentShader.empty() ); + + Property::Value* gridXValue = customShader.Find( "subdivideGridX" ); + DALI_TEST_CHECK( gridXValue ); + + int gridX = 0; + DALI_TEST_CHECK( gridXValue->Get( gridX ) ); + DALI_TEST_CHECK( gridX > 1 ); + + Property::Value* gridYValue = customShader.Find( "subdivideGridY" ); + DALI_TEST_CHECK( gridYValue ); + + int gridY = 0; + DALI_TEST_CHECK( gridYValue->Get( gridY ) ); + DALI_TEST_CHECK( gridY > 1 ); + + Property::Value* hintsValue = customShader.Find( "hints" ); + DALI_TEST_CHECK( hintsValue ); + + std::string hints; + DALI_TEST_CHECK( hintsValue->Get( hints ) ); + DALI_TEST_CHECK( hints == "outputIsTransparent" ); + + Actor actor = Actor::New(); + Toolkit::SetMotionStretchProperties( actor ); + DALI_TEST_CHECK( actor.GetPropertyIndex( "uGeometryStretchFactor" ) != Property::INVALID_INDEX ); + DALI_TEST_CHECK( actor.GetPropertyIndex( "uSpeedScalingFactor" ) != Property::INVALID_INDEX ); + DALI_TEST_CHECK( actor.GetPropertyIndex( "uObjectFadeStart" ) != Property::INVALID_INDEX ); + DALI_TEST_CHECK( actor.GetPropertyIndex( "uObjectFadeEnd" ) != Property::INVALID_INDEX ); + DALI_TEST_CHECK( actor.GetPropertyIndex( "uAlphaScale" ) != Property::INVALID_INDEX ); + DALI_TEST_CHECK( actor.GetPropertyIndex( "uModelLastFrame" ) != Property::INVALID_INDEX ); END_TEST; }