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=f4677a7d8523bc3ebd2a877ca42821885183cf4a;hp=d7664aeed2d2ac5b85e48b4ce00aa60ecdcd7baf;hb=901499a7ec86ca342c4e0fdec62a6e4eeeee5c5f;hpb=c5651d9850075a3d2d96444883ee8e23844a5f3e diff --git a/dali-toolkit/internal/visuals/visual-factory-impl.cpp b/dali-toolkit/internal/visuals/visual-factory-impl.cpp index d7664ae..f4677a7 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 { @@ -67,9 +68,11 @@ DALI_ENUM_TO_STRING_WITH_SCOPE( Toolkit::Visual, IMAGE ) DALI_ENUM_TO_STRING_WITH_SCOPE( Toolkit::Visual, MESH ) DALI_ENUM_TO_STRING_WITH_SCOPE( Toolkit::Visual, PRIMITIVE ) DALI_ENUM_TO_STRING_WITH_SCOPE( Toolkit::Visual, DEBUG ) +DALI_ENUM_TO_STRING_WITH_SCOPE( Toolkit::Visual, BATCH_IMAGE ) DALI_ENUM_TO_STRING_TABLE_END( VISUAL_TYPE ) const char * const VISUAL_TYPE( "visualType" ); +const char * const BATCHING_ENABLED( "batchingEnabled" ); BaseHandle Create() { @@ -109,12 +112,27 @@ 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 ); } + // If the type is IMAGE, either from a default or the TYPE value in the property-map, change it to a BatchImage if required. + if( visualType == Toolkit::Visual::IMAGE ) + { + bool batchingEnabled( false ); + Property::Value* value = propertyMap.Find( Toolkit::Visual::Property::BATCHING_ENABLED, BATCHING_ENABLED ); + if( value ) + { + value->Get( batchingEnabled ); + if( batchingEnabled ) + { + visualType = Toolkit::Visual::BATCH_IMAGE; + } + } + } + switch( visualType ) { case Toolkit::Visual::BORDER: @@ -187,6 +205,13 @@ Toolkit::Visual::Base VisualFactory::CreateVisual( const Property::Map& property visualPtr = new DebugVisual( *( mFactoryCache.Get() ) ); break; } + + case Toolkit::Visual::BATCH_IMAGE: + { + CreateAtlasManager(); + visualPtr = new BatchImageVisual( *( mFactoryCache.Get() ), *( mAtlasManager.Get() ) ); + break; + } } if( visualPtr )