X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Fgradient%2Fgradient-visual.cpp;h=6f50a9a77d589861a0fb473dfc0bc720139207bc;hp=e0ae085ca80f4990b3b2f383feb17f76281e3136;hb=d2265be3cc2e43a7464b27a6d611a5548313fb8e;hpb=dc998c4a0369a447f61fad4729bf3a8b9151f181 diff --git a/dali-toolkit/internal/visuals/gradient/gradient-visual.cpp b/dali-toolkit/internal/visuals/gradient/gradient-visual.cpp index e0ae085c..6f50a9a 100644 --- a/dali-toolkit/internal/visuals/gradient/gradient-visual.cpp +++ b/dali-toolkit/internal/visuals/gradient/gradient-visual.cpp @@ -222,7 +222,8 @@ GradientVisualPtr GradientVisual::New( VisualFactoryCache& factoryCache ) GradientVisual::GradientVisual( VisualFactoryCache& factoryCache ) : Visual::Base( factoryCache ), - mGradientType( LINEAR ) + mGradientType( LINEAR ), + mIsOpaque( true ) { mImpl->mFlags |= Impl::IS_PREMULTIPLIED_ALPHA; } @@ -362,6 +363,12 @@ void GradientVisual::InitializeRenderer() mImpl->mRenderer = Renderer::New( geometry, shader ); mImpl->mRenderer.SetTextures( textureSet ); + // If opaque then no need to have blending + if( mIsOpaque ) + { + mImpl->mRenderer.SetProperty( Renderer::Property::BLEND_MODE, BlendMode::OFF ); + } + mImpl->mRenderer.RegisterProperty( UNIFORM_ALIGNMENT_MATRIX_NAME, mGradientTransform ); //Register transform properties @@ -423,6 +430,10 @@ bool GradientVisual::NewGradient(Type gradientType, const Property::Map& propert { mGradient->AddStop( offsetArray[i], Vector4(color.r*color.a, color.g*color.a, color.b*color.a, color.a)); numValidStop++; + if( ! Equals( color.a, 1.0f, Math::MACHINE_EPSILON_1 ) ) + { + mIsOpaque = false; + } } } }