effect.SetBlurOnce(true);
effect.AddBlurStrengthAnimation(animation, AlphaFunction::BuiltinFunction::EASE_IN, TimePeriod(0, durationSeconds), 0.0f, 1.0f);
// animation will not be added but cannot check
+ animation.Clear();
DALI_TEST_EQUALS(effect.GetBlurOnce(), true, TEST_LOCATION);
+ effect.SetBlurRadius(2u);
+ effect.AddBlurStrengthAnimation(animation, AlphaFunction::BuiltinFunction::EASE_IN, TimePeriod(0, durationSeconds), 0.0f, 1.0f);
+ // animation will not be added but cannot check
+ animation.Clear();
+
END_TEST;
}
effect.SetBlurOnce(true);
effect.AddBlurOpacityAnimation(animation, AlphaFunction::BuiltinFunction::EASE_IN, TimePeriod(0, durationSeconds), 0.0f, 1.0f);
// animation will not be added but cannot check
+ animation.Clear();
DALI_TEST_EQUALS(effect.GetBlurOnce(), true, TEST_LOCATION);
+ effect.SetBlurRadius(2u);
+ effect.AddBlurOpacityAnimation(animation, AlphaFunction::BuiltinFunction::EASE_IN, TimePeriod(0, durationSeconds), 0.0f, 1.0f);
+ // animation will not be added but cannot check
+ animation.Clear();
+
END_TEST;
}
{
mBlurOnce = blurOnce;
- if(IsActivated()) // if false, no render task exists yet(nothing to do)
+ if(!mSkipBlur && IsActivated()) // if false, no render task exists yet(nothing to do)
{
if(mBlurOnce)
{
{
if(mBlurRadius != blurRadius)
{
- if(IsActivated())
+ if(!mSkipBlur && IsActivated())
{
OnDeactivate();
}
OnInitialize();
- if(IsActivated())
+ if(!mSkipBlur && IsActivated())
{
OnActivate();
}
void BackgroundBlurEffectImpl::AddBlurStrengthAnimation(Animation& animation, AlphaFunction alphaFunction, TimePeriod timePeriod, float fromValue, float toValue)
{
+ if(DALI_UNLIKELY(mSkipBlur))
+ {
+ DALI_LOG_ERROR("Blur radius is too small. Blur animation will be ignored.");
+ return;
+ }
if(mBlurOnce)
{
DALI_LOG_ERROR("This blur effect is set to render only once, so the animation will be ignored. Call SetBlurOnce(false) to render it every frame.");
void BackgroundBlurEffectImpl::AddBlurOpacityAnimation(Animation& animation, AlphaFunction alphaFunction, TimePeriod timePeriod, float fromValue, float toValue)
{
+ if(DALI_UNLIKELY(mSkipBlur))
+ {
+ DALI_LOG_ERROR("Blur radius is too small. Blur animation will be ignored.");
+ return;
+ }
if(mBlurOnce)
{
DALI_LOG_ERROR("This blur effect is set to render only once, so the animation will be ignored. Call SetBlurOnce(false) to render it every frame.");