/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2017 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.
#include <dali-toolkit/dali-toolkit.h>
#include <dali-toolkit/devel-api/shader-effects/alpha-discard-effect.h>
-#include <dali-toolkit/devel-api/shader-effects/bendy-effect.h>
-#include <dali-toolkit/devel-api/shader-effects/blind-effect.h>
-#include <dali-toolkit/devel-api/shader-effects/bouncing-effect.h>
-#include <dali-toolkit/devel-api/shader-effects/carousel-effect.h>
-#include <dali-toolkit/devel-api/shader-effects/displacement-effect.h>
#include <dali-toolkit/devel-api/shader-effects/dissolve-effect.h>
-#include <dali-toolkit/devel-api/shader-effects/dissolve-local-effect.h>
#include <dali-toolkit/devel-api/shader-effects/distance-field-effect.h>
#include <dali-toolkit/devel-api/shader-effects/image-region-effect.h>
-#include <dali-toolkit/devel-api/shader-effects/iris-effect.h>
-#include <dali-toolkit/devel-api/shader-effects/mask-effect.h>
-#include <dali-toolkit/devel-api/shader-effects/mirror-effect.h>
#include <dali-toolkit/devel-api/shader-effects/motion-blur-effect.h>
#include <dali-toolkit/devel-api/shader-effects/motion-stretch-effect.h>
-#include <dali-toolkit/devel-api/shader-effects/nine-patch-mask-effect.h>
-#include <dali-toolkit/devel-api/shader-effects/overlay-effect.h>
-#include <dali-toolkit/devel-api/shader-effects/quadratic-bezier.h>
-#include <dali-toolkit/devel-api/shader-effects/ripple-effect.h>
-#include <dali-toolkit/devel-api/shader-effects/ripple2d-effect.h>
-#include <dali-toolkit/devel-api/shader-effects/shear-effect.h>
-#include <dali-toolkit/devel-api/shader-effects/soft-button-effect.h>
-#include <dali-toolkit/devel-api/shader-effects/spot-effect.h>
-#include <dali-toolkit/devel-api/shader-effects/square-dissolve-effect.h>
-#include <dali-toolkit/devel-api/shader-effects/swirl-effect.h>
using namespace Dali;
+using namespace Dali::Toolkit;
int UtcDaliCreateAlphaDiscardEffect(void)
{
ToolkitTestApplication application;
- ShaderEffect effect = Toolkit::CreateAlphaDiscardEffect();
- DALI_TEST_CHECK( effect );
+ Property::Map effect = Toolkit::CreateAlphaDiscardEffect();
+ DALI_TEST_CHECK( !effect.Empty() );
- END_TEST;
-}
+ Property::Value* customShaderValue = effect.Find( Toolkit::Visual::Property::SHADER );
+ DALI_TEST_CHECK( customShaderValue );
-int UtcDaliCreateBendyEffect(void)
-{
- ToolkitTestApplication application;
+ Property::Map customShader;
+ DALI_TEST_CHECK( customShaderValue->Get( customShader ) );
- ShaderEffect effect = Toolkit::CreateBendyEffect();
- DALI_TEST_CHECK( effect );
+ Property::Value* vertexShaderValue = customShader.Find( Visual::Shader::Property::VERTEX_SHADER );
+ DALI_TEST_CHECK( !vertexShaderValue );
- END_TEST;
-}
+ Property::Value* fragmentShaderValue = customShader.Find( Visual::Shader::Property::FRAGMENT_SHADER );
+ DALI_TEST_CHECK( fragmentShaderValue );
-int UtcDaliCreateBlindEffect(void)
-{
- ToolkitTestApplication application;
-
- ShaderEffect effect = Toolkit::CreateBlindEffect();
- DALI_TEST_CHECK( effect );
-
- END_TEST;
-}
-
-int UtcDaliCreateBouncingEffect(void)
-{
- ToolkitTestApplication application;
+ std::string fragmentShader;
+ DALI_TEST_CHECK( fragmentShaderValue->Get( fragmentShader ) );
+ DALI_TEST_CHECK( !fragmentShader.empty() );
- Vector4 color(1.0f,1.0f,1.0f,1.0f);
+ Property::Value* gridXValue = customShader.Find( Visual::Shader::Property::SUBDIVIDE_GRID_X );
+ DALI_TEST_CHECK( !gridXValue );
- ShaderEffect effect = Toolkit::CreateBouncingEffect(color);
- DALI_TEST_CHECK( effect );
+ Property::Value* gridYValue = customShader.Find( Visual::Shader::Property::SUBDIVIDE_GRID_Y );
+ DALI_TEST_CHECK( !gridYValue );
- Property::Value value = effect.GetProperty( effect.GetPropertyIndex("uAssignedColor"));
- DALI_TEST_EQUALS( value.Get<Vector4>(), color, TEST_LOCATION );
+ Property::Value* hintsValue = customShader.Find( Visual::Shader::Property::HINTS );
+ DALI_TEST_CHECK( !hintsValue );
END_TEST;
}
-int UtcDaliCreateCarouselEffect(void)
+int UtcDaliCreateDissolveEffect( bool highPrecision )
{
ToolkitTestApplication application;
- ShaderEffect effect = Toolkit::CreateCarouselEffect();
- DALI_TEST_CHECK( effect );
+ Property::Map effect = Toolkit::CreateDissolveEffect( highPrecision );
+ DALI_TEST_CHECK( !effect.Empty() );
- END_TEST;
-}
+ Property::Value* customShaderValue = effect.Find( Toolkit::Visual::Property::SHADER );
+ DALI_TEST_CHECK( customShaderValue );
-int UtcDaliCreateDisplacementEffectDisplaced(void)
-{
- ToolkitTestApplication application;
-
- ShaderEffect effect = Toolkit::CreateDisplacementEffect(Toolkit::DISPLACEMENT_EFFECT_DISPLACED);
- DALI_TEST_CHECK( effect );
-
- END_TEST;
-}
+ Property::Map customShader;
+ DALI_TEST_CHECK( customShaderValue->Get( customShader ) );
-int UtcDaliCreateDisplacementEffectFixed(void)
-{
- ToolkitTestApplication application;
+ Property::Value* vertexShaderValue = customShader.Find( Visual::Shader::Property::VERTEX_SHADER );
+ DALI_TEST_CHECK( vertexShaderValue );
- ShaderEffect effect = Toolkit::CreateDisplacementEffect(Toolkit::DISPLACEMENT_EFFECT_FIXED);
- DALI_TEST_CHECK( effect );
+ std::string vertexShader;
+ DALI_TEST_CHECK( vertexShaderValue->Get( vertexShader ) );
+ DALI_TEST_CHECK( !vertexShader.empty() );
- END_TEST;
-}
+ Property::Value* fragmentShaderValue = customShader.Find( Visual::Shader::Property::FRAGMENT_SHADER );
+ DALI_TEST_CHECK( fragmentShaderValue );
-int UtcDaliCreateDissolveEffect(void)
-{
- ToolkitTestApplication application;
+ std::string fragmentShader;
+ DALI_TEST_CHECK( fragmentShaderValue->Get( fragmentShader ) );
+ DALI_TEST_CHECK( !fragmentShader.empty() );
- ShaderEffect effect = Toolkit::CreateDissolveEffect();
- DALI_TEST_CHECK( effect );
+ Property::Value* gridXValue = customShader.Find( Visual::Shader::Property::SUBDIVIDE_GRID_X );
+ DALI_TEST_CHECK( gridXValue );
- END_TEST;
-}
+ int gridX = 0;
+ DALI_TEST_CHECK( gridXValue->Get( gridX ) );
+ DALI_TEST_CHECK( gridX > 1 );
-int UtcDaliCreateDissolveEffectMediumPrecision(void)
-{
- ToolkitTestApplication application;
+ Property::Value* gridYValue = customShader.Find( Visual::Shader::Property::SUBDIVIDE_GRID_Y );
+ DALI_TEST_CHECK( gridYValue );
- ShaderEffect effect = Toolkit::CreateDissolveEffect(false);
- DALI_TEST_CHECK( effect );
+ int gridY = 0;
+ DALI_TEST_CHECK( gridYValue->Get( gridY ) );
+ DALI_TEST_CHECK( gridY > 1 );
- END_TEST;
-}
+ Property::Value* hintsValue = customShader.Find( Visual::Shader::Property::HINTS );
+ DALI_TEST_CHECK( hintsValue );
-int UtcDaliCreateDissolveLocalEffect(void)
-{
- ToolkitTestApplication application;
+ int hints;;
+ DALI_TEST_CHECK( hintsValue->Get( hints ) );
+ DALI_TEST_CHECK( hints == Shader::Hint::OUTPUT_IS_TRANSPARENT );
- ShaderEffect effect = Toolkit::CreateDissolveLocalEffect(0);
- DALI_TEST_CHECK( effect );
+ 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 UtcDaliCreateDistanceFieldEffect(void)
+int UtcDaliCreateDissolveEffectHighPrecision(void)
{
- ToolkitTestApplication application;
-
- ShaderEffect effect = Toolkit::CreateDistanceFieldEffect();
- DALI_TEST_CHECK( effect );
-
- END_TEST;
+ return UtcDaliCreateDissolveEffect(true);
}
-int UtcDaliCreateImageRegionEffect(void)
+int UtcDaliCreateDissolveEffectMediumPrecision(void)
{
- ToolkitTestApplication application;
-
- ShaderEffect effect = Toolkit::CreateImageRegionEffect();
- DALI_TEST_CHECK( effect );
-
- END_TEST;
+ return UtcDaliCreateDissolveEffect(false);
}
-int UtcDaliCreateIrisEffect(void)
+int UtcDaliCreateDissolveEffect(void)
{
ToolkitTestApplication application;
- ShaderEffect effect = Toolkit::CreateIrisEffect();
- DALI_TEST_CHECK( effect );
-
- END_TEST;
-}
+ Property::Map effect = Toolkit::CreateDistanceFieldEffect();
+ DALI_TEST_CHECK( !effect.Empty() );
-int UtcDaliCreateMaskEffect(void)
-{
- ToolkitTestApplication application;
+ Property::Value* customShaderValue = effect.Find( Toolkit::Visual::Property::SHADER );
+ DALI_TEST_CHECK( customShaderValue );
- BufferImage image = CreateBufferImage();
- ShaderEffect effect = Toolkit::CreateMaskEffect(image);
- DALI_TEST_CHECK( effect );
-
- END_TEST;
-}
+ Property::Map customShader;
+ DALI_TEST_CHECK( customShaderValue->Get( customShader ) );
-int UtcDaliCreateMirrorEffect(void)
-{
- ToolkitTestApplication application;
+ Property::Value* vertexShaderValue = customShader.Find( Visual::Shader::Property::VERTEX_SHADER );
+ DALI_TEST_CHECK( !vertexShaderValue );
- BufferImage image = CreateBufferImage();
- ShaderEffect effect = Toolkit::CreateMirrorEffect();
- DALI_TEST_CHECK( effect );
+ Property::Value* fragmentShaderValue = customShader.Find( Visual::Shader::Property::FRAGMENT_SHADER );
+ DALI_TEST_CHECK( fragmentShaderValue );
- END_TEST;
-}
+ std::string fragmentShader;
+ DALI_TEST_CHECK( fragmentShaderValue->Get( fragmentShader ) );
+ DALI_TEST_CHECK( !fragmentShader.empty() );
-int UtcDaliCreateMotionBlurEffect(void)
-{
- ToolkitTestApplication application;
+ Property::Value* gridXValue = customShader.Find( Visual::Shader::Property::SUBDIVIDE_GRID_X );
+ DALI_TEST_CHECK( !gridXValue );
- unsigned int sampleCount(4);
- ShaderEffect effect = Toolkit::CreateMotionBlurEffect(sampleCount);
- DALI_TEST_CHECK( effect );
+ Property::Value* hintsValue = customShader.Find( Visual::Shader::Property::HINTS );
+ DALI_TEST_CHECK( hintsValue );
- Property::Value value = effect.GetProperty( effect.GetPropertyIndex("uNumSamples"));
- DALI_TEST_EQUALS( value.Get<float>(), (float)sampleCount, TEST_LOCATION );
+ int hints;;
+ DALI_TEST_CHECK( hintsValue->Get( hints ) );
+ DALI_TEST_CHECK( hints == Shader::Hint::OUTPUT_IS_TRANSPARENT );
END_TEST;
}
-int UtcDaliCreateMotionStretchEffect(void)
+int UtcDaliCreateImageRegionEffect(void)
{
ToolkitTestApplication application;
- ShaderEffect effect = Toolkit::CreateMotionStretchEffect();
- DALI_TEST_CHECK( effect );
+ Property::Map effect = Toolkit::CreateImageRegionEffect();
+ DALI_TEST_CHECK( !effect.Empty() );
- END_TEST;
-}
+ Property::Value* customShaderValue = effect.Find( Toolkit::Visual::Property::SHADER );
+ DALI_TEST_CHECK( customShaderValue );
-int UtcDaliCreateOverlayEffect(void)
-{
- ToolkitTestApplication application;
+ Property::Map customShader;
+ DALI_TEST_CHECK( customShaderValue->Get( customShader ) );
- BufferImage image = CreateBufferImage();
- ShaderEffect effect = Toolkit::CreateOverlayEffect(image);
- DALI_TEST_CHECK( effect );
+ Property::Value* vertexShaderValue = customShader.Find( Visual::Shader::Property::VERTEX_SHADER );
+ DALI_TEST_CHECK( vertexShaderValue );
- END_TEST;
-}
+ std::string vertexShader;
+ DALI_TEST_CHECK( vertexShaderValue->Get( vertexShader ) );
+ DALI_TEST_CHECK( !vertexShader.empty() );
-int UtcDaliCreateQuadraticBezier(void)
-{
- ToolkitTestApplication application;
+ Property::Value* fragmentShaderValue = customShader.Find( Visual::Shader::Property::FRAGMENT_SHADER );
+ DALI_TEST_CHECK( !fragmentShaderValue );
- ShaderEffect effect = Toolkit::CreateQuadraticBezier(3,false);
- DALI_TEST_CHECK( effect );
+ Property::Value* gridXValue = customShader.Find( Visual::Shader::Property::SUBDIVIDE_GRID_X );
+ DALI_TEST_CHECK( !gridXValue );
- END_TEST;
-}
-
-int UtcDaliCreateQuadraticBezierFilled(void)
-{
- ToolkitTestApplication application;
+ Property::Value* gridYValue = customShader.Find( Visual::Shader::Property::SUBDIVIDE_GRID_Y );
+ DALI_TEST_CHECK( !gridYValue );
- ShaderEffect effect = Toolkit::CreateQuadraticBezier(3,true);
- DALI_TEST_CHECK( effect );
+ Property::Value* hintsValue = customShader.Find( Visual::Shader::Property::HINTS );
+ DALI_TEST_CHECK( !hintsValue );
END_TEST;
}
-int UtcDaliCreateRipple2DEffect(void)
+int UtcDaliCreateMotionBlurEffect(void)
{
ToolkitTestApplication application;
- ShaderEffect effect = Toolkit::CreateRipple2DEffect();
- DALI_TEST_CHECK( effect );
+ Property::Map effect = Toolkit::CreateMotionBlurEffect();
+ DALI_TEST_CHECK( !effect.Empty() );
- END_TEST;
-}
+ Property::Value* customShaderValue = effect.Find( Toolkit::Visual::Property::SHADER );
+ DALI_TEST_CHECK( customShaderValue );
-int UtcDaliCreateRippleEffect(void)
-{
- ToolkitTestApplication application;
+ Property::Map customShader;
+ DALI_TEST_CHECK( customShaderValue->Get( customShader ) );
- ShaderEffect effect = Toolkit::CreateRippleEffect();
- DALI_TEST_CHECK( effect );
+ Property::Value* vertexShaderValue = customShader.Find( Visual::Shader::Property::VERTEX_SHADER );
+ DALI_TEST_CHECK( vertexShaderValue );
- END_TEST;
-}
+ std::string vertexShader;
+ DALI_TEST_CHECK( vertexShaderValue->Get( vertexShader ) );
+ DALI_TEST_CHECK( !vertexShader.empty() );
-int UtcDaliCreateShearEffect(void)
-{
- ToolkitTestApplication application;
+ Property::Value* fragmentShaderValue = customShader.Find( Visual::Shader::Property::FRAGMENT_SHADER );
+ DALI_TEST_CHECK( fragmentShaderValue );
- ShaderEffect effect = Toolkit::CreateShearEffect();
- DALI_TEST_CHECK( effect );
+ std::string fragmentShader;
+ DALI_TEST_CHECK( fragmentShaderValue->Get( fragmentShader ) );
+ DALI_TEST_CHECK( !fragmentShader.empty() );
- END_TEST;
-}
+ Property::Value* gridXValue = customShader.Find( Visual::Shader::Property::SUBDIVIDE_GRID_X );
+ DALI_TEST_CHECK( gridXValue );
-int UtcDaliSoftButtonEffectElliptical(void)
-{
- ToolkitTestApplication application;
+ int gridX = 0;
+ DALI_TEST_CHECK( gridXValue->Get( gridX ) );
+ DALI_TEST_CHECK( gridX > 1 );
- ShaderEffect effect = Toolkit::CreateSoftButtonEffect(Toolkit::SOFT_BUTTON_ELLIPTICAL);
- DALI_TEST_CHECK( effect );
+ Property::Value* gridYValue = customShader.Find( Visual::Shader::Property::SUBDIVIDE_GRID_Y );
+ DALI_TEST_CHECK( gridYValue );
- END_TEST;
-}
+ int gridY = 0;
+ DALI_TEST_CHECK( gridYValue->Get( gridY ) );
+ DALI_TEST_CHECK( gridY > 1 );
-int UtcDaliSoftButtonEffectRectangular(void)
-{
- ToolkitTestApplication application;
+ Property::Value* hintsValue = customShader.Find( Visual::Shader::Property::HINTS );
+ DALI_TEST_CHECK( hintsValue );
- ShaderEffect effect = Toolkit::CreateSoftButtonEffect(Toolkit::SOFT_BUTTON_RECTANGULAR);
- DALI_TEST_CHECK( effect );
+ int hints;;
+ DALI_TEST_CHECK( hintsValue->Get( hints ) );
+ DALI_TEST_CHECK( hints == Shader::Hint::OUTPUT_IS_TRANSPARENT );
+
+ 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;
}
-int UtcDaliSoftButtonEffectFixed(void)
+int UtcDaliCreateMotionStretchEffect(void)
{
ToolkitTestApplication application;
- ShaderEffect effect = Toolkit::CreateSoftButtonEffect(Toolkit::SOFT_BUTTON_FIXED);
- DALI_TEST_CHECK( effect );
+ Property::Map effect = Toolkit::CreateMotionStretchEffect();
+ DALI_TEST_CHECK( !effect.Empty() );
- END_TEST;
-}
+ Property::Value* customShaderValue = effect.Find( Toolkit::Visual::Property::SHADER );
+ DALI_TEST_CHECK( customShaderValue );
-int UtcDaliCreateSpotEffect(void)
-{
- ToolkitTestApplication application;
+ Property::Map customShader;
+ DALI_TEST_CHECK( customShaderValue->Get( customShader ) );
- ShaderEffect effect = Toolkit::CreateSpotEffect();
- DALI_TEST_CHECK( effect );
+ Property::Value* vertexShaderValue = customShader.Find( Visual::Shader::Property::VERTEX_SHADER );
+ DALI_TEST_CHECK( vertexShaderValue );
- END_TEST;
-}
+ std::string vertexShader;
+ DALI_TEST_CHECK( vertexShaderValue->Get( vertexShader ) );
+ DALI_TEST_CHECK( !vertexShader.empty() );
-int UtcDaliCreateSquareDissolveEffect(void)
-{
- ToolkitTestApplication application;
+ Property::Value* fragmentShaderValue = customShader.Find( Visual::Shader::Property::FRAGMENT_SHADER );
+ DALI_TEST_CHECK( fragmentShaderValue );
- ShaderEffect effect = Toolkit::CreateSquareDissolveEffect();
- DALI_TEST_CHECK( effect );
+ std::string fragmentShader;
+ DALI_TEST_CHECK( fragmentShaderValue->Get( fragmentShader ) );
+ DALI_TEST_CHECK( !fragmentShader.empty() );
- END_TEST;
-}
+ Property::Value* gridXValue = customShader.Find( Visual::Shader::Property::SUBDIVIDE_GRID_X );
+ DALI_TEST_CHECK( gridXValue );
-int UtcDaliSwirlEffect(void)
-{
- ToolkitTestApplication application;
+ int gridX = 0;
+ DALI_TEST_CHECK( gridXValue->Get( gridX ) );
+ DALI_TEST_CHECK( gridX > 1 );
- ShaderEffect effect = Toolkit::CreateSwirlEffect(false);
- DALI_TEST_CHECK( effect );
+ Property::Value* gridYValue = customShader.Find( Visual::Shader::Property::SUBDIVIDE_GRID_Y );
+ DALI_TEST_CHECK( gridYValue );
- END_TEST;
-}
+ int gridY = 0;
+ DALI_TEST_CHECK( gridYValue->Get( gridY ) );
+ DALI_TEST_CHECK( gridY > 1 );
-int UtcDaliSwirlEffectWrap(void)
-{
- ToolkitTestApplication application;
+ Property::Value* hintsValue = customShader.Find( Visual::Shader::Property::HINTS );
+ DALI_TEST_CHECK( hintsValue );
+
+ int hints;;
+ DALI_TEST_CHECK( hintsValue->Get( hints ) );
+ DALI_TEST_CHECK( hints == Shader::Hint::OUTPUT_IS_TRANSPARENT );
- ShaderEffect effect = Toolkit::CreateSwirlEffect(true);
- DALI_TEST_CHECK( effect );
+ 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;
}