X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Fimage%2Fbatch-image-visual.cpp;h=2aba159e504bc111506f4dfdb80bb802ae6511c4;hb=8c0b17fb124c735b31c441873da4d7ffc4b15eb5;hp=8eca47e3308885aa9756292ad639f6274657dca0;hpb=901499a7ec86ca342c4e0fdec62a6e4eeeee5c5f;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/visuals/image/batch-image-visual.cpp b/dali-toolkit/internal/visuals/image/batch-image-visual.cpp index 8eca47e..2aba159 100644 --- a/dali-toolkit/internal/visuals/image/batch-image-visual.cpp +++ b/dali-toolkit/internal/visuals/image/batch-image-visual.cpp @@ -27,12 +27,11 @@ #include #include #include -#include #include // INTERNAL HEADER -#include #include +#include #include #include #include @@ -87,12 +86,16 @@ const char* FRAGMENT_SHADER = DALI_COMPOSE_SHADER( }\n ); -} //unnamed namespace +} // unnamed namespace -BatchImageVisual::BatchImageVisual( VisualFactoryCache& factoryCache, ImageAtlasManager& atlasManager ) - : Visual::Base( factoryCache ), - mAtlasManager( atlasManager ), - mDesiredSize() +BatchImageVisualPtr BatchImageVisual::New( VisualFactoryCache& factoryCache ) +{ + return new BatchImageVisual( factoryCache ); +} + +BatchImageVisual::BatchImageVisual( VisualFactoryCache& factoryCache ) +: Visual::Base( factoryCache ), + mDesiredSize() { } @@ -100,24 +103,24 @@ BatchImageVisual::~BatchImageVisual() { } -void BatchImageVisual::DoInitialize( Actor& actor, const Property::Map& propertyMap ) +void BatchImageVisual::DoSetProperties( const Property::Map& propertyMap ) { std::string oldImageUrl = mImageUrl; - Property::Value* imageURLValue = propertyMap.Find( Dali::Toolkit::BatchImageVisual::Property::URL, Dali::Toolkit::Internal::IMAGE_URL_NAME ); + Property::Value* imageURLValue = propertyMap.Find( Dali::Toolkit::ImageVisual::Property::URL, Dali::Toolkit::Internal::IMAGE_URL_NAME ); if( imageURLValue ) { imageURLValue->Get( mImageUrl ); int desiredWidth = 0; - Property::Value* desiredWidthValue = propertyMap.Find( Dali::Toolkit::BatchImageVisual::Property::DESIRED_WIDTH, DESIRED_WIDTH ); + Property::Value* desiredWidthValue = propertyMap.Find( Dali::Toolkit::ImageVisual::Property::DESIRED_WIDTH, DESIRED_WIDTH ); if( desiredWidthValue ) { desiredWidthValue->Get( desiredWidth ); } int desiredHeight = 0; - Property::Value* desiredHeightValue = propertyMap.Find( Dali::Toolkit::BatchImageVisual::Property::DESIRED_HEIGHT, DESIRED_HEIGHT ); + Property::Value* desiredHeightValue = propertyMap.Find( Dali::Toolkit::ImageVisual::Property::DESIRED_HEIGHT, DESIRED_HEIGHT ); if( desiredHeightValue ) { desiredHeightValue->Get( desiredHeight ); @@ -125,25 +128,6 @@ void BatchImageVisual::DoInitialize( Actor& actor, const Property::Map& property mDesiredSize = ImageDimensions( desiredWidth, desiredHeight ); } - - // Remove old renderer if exit. - if( mImpl->mRenderer ) - { - if( actor ) // Remove old renderer from actor. - { - actor.RemoveRenderer( mImpl->mRenderer ); - } - if( !oldImageUrl.empty() ) // Clean old renderer from cache. - { - CleanCache( oldImageUrl ); - } - } - - // If actor is on stage, create new renderer and apply to actor. - if( actor && actor.OnStage() ) - { - SetOnStage( actor ); - } } void BatchImageVisual::SetSize( const Vector2& size ) @@ -170,11 +154,6 @@ void BatchImageVisual::GetNaturalSize( Vector2& naturalSize ) const naturalSize = Vector2::ZERO; } -void BatchImageVisual::SetClipRect( const Rect& clipRect ) -{ - Visual::Base::SetClipRect( clipRect ); -} - void BatchImageVisual::InitializeRenderer( const std::string& imageUrl ) { if( imageUrl.empty() ) @@ -192,7 +171,7 @@ void BatchImageVisual::InitializeRenderer( const std::string& imageUrl ) { if( !mImpl->mRenderer ) { - TextureSet textureSet = mAtlasManager.Add( + TextureSet textureSet = mFactoryCache.GetAtlasManager()->Add( mAtlasRect, imageUrl, mDesiredSize ); @@ -234,6 +213,8 @@ void BatchImageVisual::DoSetOnStage( Actor& actor ) } // Turn batching on, to send message it must be on stage mImpl->mRenderer.SetProperty( Dali::Renderer::Property::BATCHING_ENABLED, true ); + + actor.AddRenderer( mImpl->mRenderer ); } void BatchImageVisual::DoSetOffStage( Actor& actor ) @@ -254,16 +235,28 @@ void BatchImageVisual::DoSetOffStage( Actor& actor ) void BatchImageVisual::DoCreatePropertyMap( Property::Map& map ) const { map.Clear(); - map.Insert( Toolkit::Visual::Property::TYPE, Toolkit::Visual::BATCH_IMAGE ); + map.Insert( Toolkit::VisualProperty::TYPE, Toolkit::Visual::IMAGE ); if( !mImageUrl.empty() ) { - map.Insert( Toolkit::BatchImageVisual::Property::URL, mImageUrl ); - map.Insert( Toolkit::BatchImageVisual::Property::DESIRED_WIDTH, mDesiredSize.GetWidth() ); - map.Insert( Toolkit::BatchImageVisual::Property::DESIRED_HEIGHT, mDesiredSize.GetHeight() ); + map.Insert( Toolkit::ImageVisual::Property::URL, mImageUrl ); + map.Insert( Toolkit::ImageVisual::Property::BATCHING_ENABLED, true ); + map.Insert( Toolkit::ImageVisual::Property::DESIRED_WIDTH, mDesiredSize.GetWidth() ); + map.Insert( Toolkit::ImageVisual::Property::DESIRED_HEIGHT, mDesiredSize.GetHeight() ); } } +void BatchImageVisual::DoSetProperty( Dali::Property::Index index, const Dali::Property::Value& propertyValue ) +{ + // TODO +} + +Dali::Property::Value BatchImageVisual::DoGetProperty( Dali::Property::Index index ) +{ + // TODO + return Dali::Property::Value(); +} + Shader BatchImageVisual::GetBatchShader( VisualFactoryCache& factoryCache ) { Shader shader = factoryCache.GetShader( VisualFactoryCache::BATCH_IMAGE_SHADER ); @@ -281,7 +274,7 @@ void BatchImageVisual::CleanCache(const std::string& url) mImpl->mRenderer.Reset(); if( mFactoryCache.CleanRendererCache( url ) ) { - mAtlasManager.Remove( textureSet, mAtlasRect ); + mFactoryCache.GetAtlasManager()->Remove( textureSet, mAtlasRect ); } }