From: Paul Wisbey Date: Wed, 3 Aug 2016 16:00:27 +0000 (-0700) Subject: Merge "Geometry Batching" into devel/master X-Git-Tag: dali_1.2.0~4 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=901499a7ec86ca342c4e0fdec62a6e4eeeee5c5f;hp=-c Merge "Geometry Batching" into devel/master --- 901499a7ec86ca342c4e0fdec62a6e4eeeee5c5f diff --combined dali-toolkit/internal/visuals/visual-factory-impl.cpp index d7664ae,2c79c27..f4677a7 --- a/dali-toolkit/internal/visuals/visual-factory-impl.cpp +++ b/dali-toolkit/internal/visuals/visual-factory-impl.cpp @@@ -41,6 -41,7 +41,7 @@@ #include #include #include + #include namespace { @@@ -67,9 -68,11 +68,11 @@@ DALI_ENUM_TO_STRING_WITH_SCOPE( Toolkit 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 +112,27 @@@ Toolkit::Visual::Base VisualFactory::Cr 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 +205,13 @@@ visualPtr = new DebugVisual( *( mFactoryCache.Get() ) ); break; } + + case Toolkit::Visual::BATCH_IMAGE: + { + CreateAtlasManager(); + visualPtr = new BatchImageVisual( *( mFactoryCache.Get() ), *( mAtlasManager.Get() ) ); + break; + } } if( visualPtr ) @@@ -196,7 -221,7 +221,7 @@@ } else { - DALI_LOG_ERROR( "Renderer type unknown" ); + DALI_LOG_ERROR( "Renderer type unknown\n" ); } return Toolkit::Visual::Base( visualPtr );