X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fimage-view%2Fimage-view-impl.cpp;h=aecb8592813048bb78e55f1bf80e1b51c68cb307;hb=d43575da616e1370372b1331f47dce36dc4ac145;hp=aaab3b6ca1aef6deeca9eb85ff34bbc6c9790aac;hpb=62e7c0f3e8795fc597fbaa1a76abd42fb837e536;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/controls/image-view/image-view-impl.cpp b/dali-toolkit/internal/controls/image-view/image-view-impl.cpp index aaab3b6..aecb859 100644 --- a/dali-toolkit/internal/controls/image-view/image-view-impl.cpp +++ b/dali-toolkit/internal/controls/image-view/image-view-impl.cpp @@ -35,6 +35,7 @@ BaseHandle Create() DALI_TYPE_REGISTRATION_BEGIN( Toolkit::ImageView, Toolkit::Control, Create ); DALI_PROPERTY_REGISTRATION( Toolkit, ImageView, "resourceUrl", STRING, RESOURCE_URL ) DALI_PROPERTY_REGISTRATION( Toolkit, ImageView, "image", MAP, IMAGE ) +DALI_PROPERTY_REGISTRATION( Toolkit, ImageView, "preMultipliedAlpha", BOOLEAN, PRE_MULTIPLIED_ALPHA ) DALI_ANIMATABLE_PROPERTY_REGISTRATION_WITH_DEFAULT( Toolkit, ImageView, "pixelArea", Vector4(0.f, 0.f, 1.f, 1.f), PIXEL_AREA ) DALI_TYPE_REGISTRATION_END() @@ -44,7 +45,8 @@ DALI_TYPE_REGISTRATION_END() using namespace Dali; ImageView::ImageView() -: Control( ControlBehaviour( ACTOR_BEHAVIOUR_NONE ) ) +: Control( ControlBehaviour( ACTOR_BEHAVIOUR_NONE ) ), + mPremultipledAlphaEnabled( false ) { } @@ -145,6 +147,26 @@ void ImageView::SetImage( const std::string& url, ImageDimensions size ) } } +void ImageView::EnablePreMultipliedAlpha( bool preMultipled ) +{ + mPremultipledAlphaEnabled = preMultipled; + + if( mRenderer ) + { + ControlRenderer& rendererImpl = GetImplementation( mRenderer ); + if (&typeid( rendererImpl ) == &typeid(ImageRenderer) ) + { + ImageRenderer* imageRenderer = static_cast( &rendererImpl ); + imageRenderer->EnablePreMultipliedAlpha( preMultipled ); + } + } +} + +bool ImageView::IsPreMultipliedAlphaEnabled() const +{ + return mPremultipledAlphaEnabled; +} + void ImageView::SetDepthIndex( int depthIndex ) { if( mRenderer ) @@ -266,6 +288,16 @@ void ImageView::SetProperty( BaseObject* object, Property::Index index, const Pr break; } + + case Toolkit::ImageView::Property::PRE_MULTIPLIED_ALPHA: + { + bool IsPre; + if( value.Get( IsPre ) ) + { + GetImpl(imageView).EnablePreMultipliedAlpha( IsPre ); + } + break; + } } } } @@ -308,6 +340,12 @@ Property::Value ImageView::GetProperty( BaseObject* object, Property::Index prop } break; } + + case Toolkit::ImageView::Property::PRE_MULTIPLIED_ALPHA: + { + value = impl.IsPreMultipliedAlphaEnabled(); + break; + } } }