X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Fvisual-factory-impl.cpp;h=df9cbb32eba4d17f1024b060353c8971e3804b7d;hp=d7664aeed2d2ac5b85e48b4ce00aa60ecdcd7baf;hb=88b1c02f51c1f66e8c6f331006b55f7e6942a1a8;hpb=c5651d9850075a3d2d96444883ee8e23844a5f3e diff --git a/dali-toolkit/internal/visuals/visual-factory-impl.cpp b/dali-toolkit/internal/visuals/visual-factory-impl.cpp index d7664ae..df9cbb3 100644 --- a/dali-toolkit/internal/visuals/visual-factory-impl.cpp +++ b/dali-toolkit/internal/visuals/visual-factory-impl.cpp @@ -41,6 +41,7 @@ #include #include #include +#include namespace { @@ -70,7 +71,7 @@ DALI_ENUM_TO_STRING_WITH_SCOPE( Toolkit::Visual, DEBUG ) DALI_ENUM_TO_STRING_TABLE_END( VISUAL_TYPE ) const char * const VISUAL_TYPE( "visualType" ); - +const char * const BATCHING_ENABLED( "batchingEnabled" ); BaseHandle Create() { BaseHandle handle = Toolkit::VisualFactory::Get(); @@ -109,7 +110,7 @@ Toolkit::Visual::Base VisualFactory::CreateVisual( const Property::Map& property Visual::Base* visualPtr = NULL; Property::Value* typeValue = propertyMap.Find( Toolkit::Visual::Property::TYPE, VISUAL_TYPE ); - Toolkit::Visual::Type visualType = Toolkit::Visual::IMAGE; // Default to IMAGE type + Toolkit::Visual::Type visualType = Toolkit::Visual::IMAGE; // Default to IMAGE type. if( typeValue ) { Scripting::GetEnumerationProperty( *typeValue, VISUAL_TYPE_TABLE, VISUAL_TYPE_TABLE_COUNT, visualType ); @@ -135,14 +136,25 @@ Toolkit::Visual::Base VisualFactory::CreateVisual( const Property::Map& property break; } - default: // Default to Image type if unknown (check if there is a URL) case Toolkit::Visual::IMAGE: { Property::Value* imageURLValue = propertyMap.Find( Toolkit::ImageVisual::Property::URL, IMAGE_URL_NAME ); std::string imageUrl; if( imageURLValue && imageURLValue->Get( imageUrl ) ) { - if( NinePatchImage::IsNinePatchUrl( imageUrl ) ) + Property::Value* batchingEnabledValue = propertyMap.Find( Toolkit::ImageVisual::Property::BATCHING_ENABLED, BATCHING_ENABLED ); + if( batchingEnabledValue ) + { + bool batchingEnabled( false ); + batchingEnabledValue->Get( batchingEnabled ); + if( batchingEnabled ) + { + CreateAtlasManager(); + visualPtr = new BatchImageVisual( *( mFactoryCache.Get() ), *( mAtlasManager.Get() ) ); + break; + } + } + else if( NinePatchImage::IsNinePatchUrl( imageUrl ) ) { visualPtr = new NPatchVisual( *( mFactoryCache.Get() ) ); } @@ -160,13 +172,6 @@ Toolkit::Visual::Base VisualFactory::CreateVisual( const Property::Map& property } } } - else if( propertyMap.Find( Toolkit::Visual::Property::SHADER, CUSTOM_SHADER ) ) - { - // Create Image Visual if it has a shader - // TODO: This is required because of EffectsView which should be fixed - CreateAtlasManager(); - visualPtr = new ImageVisual( *( mFactoryCache.Get() ), *( mAtlasManager.Get() ) ); - } break; } @@ -187,6 +192,7 @@ Toolkit::Visual::Base VisualFactory::CreateVisual( const Property::Map& property visualPtr = new DebugVisual( *( mFactoryCache.Get() ) ); break; } + } if( visualPtr )