X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Frenderers%2Frenderer-factory-impl.cpp;h=6cb0aa083ce8aeca2da2f7e0e2f9ec73a8414de5;hb=28658e9b0c89fced72173c582b9c5635e07bd6f1;hp=fb62e8ce4ae87e94ee2142ba4fa7d8aa96409be3;hpb=3d485e1b28628f0c6e1c5489c2dc31a65ac7ec52;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/controls/renderers/renderer-factory-impl.cpp b/dali-toolkit/internal/controls/renderers/renderer-factory-impl.cpp index fb62e8c..6cb0aa0 100644 --- a/dali-toolkit/internal/controls/renderers/renderer-factory-impl.cpp +++ b/dali-toolkit/internal/controls/renderers/renderer-factory-impl.cpp @@ -32,6 +32,7 @@ #include #include #include +#include #include #include #include @@ -82,7 +83,7 @@ RendererFactory::RendererType RendererFactory::GetRendererType( const Property:: std::string typeValue ; if( type && type->Get( typeValue )) { - if( typeValue == COLOR_RENDERER ) + if( typeValue == COLOR_RENDERER ) { rendererType = COLOR; } @@ -90,14 +91,18 @@ RendererFactory::RendererType RendererFactory::GetRendererType( const Property:: { rendererType = BORDER; } - else if( typeValue == GRADIENT_RENDERER ) + else if( typeValue == GRADIENT_RENDERER ) { rendererType = GRADIENT; } - else if( typeValue == IMAGE_RENDERER ) + else if( typeValue == IMAGE_RENDERER ) { rendererType = IMAGE; } + else if( typeValue == MESH_RENDERER ) + { + rendererType = MESH; + } } // check the url if exist, to decide the renderer type @@ -125,7 +130,7 @@ RendererFactory::RendererType RendererFactory::GetRendererType( const Property:: return rendererType; } -Toolkit::ControlRenderer RendererFactory::GetControlRenderer( const Property::Map& propertyMap ) +Toolkit::ControlRenderer RendererFactory::CreateControlRenderer( const Property::Map& propertyMap ) { ControlRenderer* rendererPtr = NULL; @@ -177,6 +182,11 @@ Toolkit::ControlRenderer RendererFactory::GetControlRenderer( const Property::Ma rendererPtr = new SvgRenderer( *( mFactoryCache.Get() ), *( mAtlasManager.Get() ) ); break; } + case MESH: + { + rendererPtr = new MeshRenderer( *( mFactoryCache.Get() ) ); + break; + } case UNDEFINED: default: { @@ -197,72 +207,7 @@ Toolkit::ControlRenderer RendererFactory::GetControlRenderer( const Property::Ma return Toolkit::ControlRenderer( rendererPtr ); } -Toolkit::ControlRenderer RendererFactory::GetControlRenderer( const Vector4& color ) -{ - if( !mFactoryCache ) - { - mFactoryCache = new RendererFactoryCache(); - } - - if( mDebugEnabled ) - { - return Toolkit::ControlRenderer( new DebugRenderer( *( mFactoryCache.Get() ) ) ); - } - - ColorRenderer* rendererPtr = new ColorRenderer( *( mFactoryCache.Get() ) ); - rendererPtr->SetColor( color ); - - return Toolkit::ControlRenderer( rendererPtr ); -} - -void RendererFactory::ResetRenderer( Toolkit::ControlRenderer& renderer, Actor& actor, const Vector4& color ) -{ - if( mDebugEnabled && renderer ) - { - return; - } - - if( renderer ) - { - ColorRenderer* rendererPtr = dynamic_cast< ColorRenderer* >( &GetImplementation( renderer ) ); - if( rendererPtr ) - { - rendererPtr->SetColor( color ); - return; - } - - renderer.RemoveAndReset( actor ); - } - - renderer = GetControlRenderer( color ); - if( actor && actor.OnStage() ) - { - renderer.SetOnStage( actor ); - } -} - -Toolkit::ControlRenderer RendererFactory::GetControlRenderer( float borderSize, const Vector4& borderColor, bool antiAliasing ) -{ - if( !mFactoryCache ) - { - mFactoryCache = new RendererFactoryCache(); - } - - if( mDebugEnabled ) - { - return Toolkit::ControlRenderer( new DebugRenderer( *( mFactoryCache.Get() ) ) ); - } - - BorderRenderer* rendererPtr = new BorderRenderer( *mFactoryCache.Get() ); - - rendererPtr->SetBorderSize( borderSize ); - rendererPtr->SetBorderColor( borderColor ); - rendererPtr->RequireAntiAliasing( antiAliasing ); - - return Toolkit::ControlRenderer( rendererPtr ); -} - -Toolkit::ControlRenderer RendererFactory::GetControlRenderer( const Image& image ) +Toolkit::ControlRenderer RendererFactory::CreateControlRenderer( const Image& image ) { if( !mFactoryCache ) { @@ -293,53 +238,7 @@ Toolkit::ControlRenderer RendererFactory::GetControlRenderer( const Image& image } } -void RendererFactory::ResetRenderer( Toolkit::ControlRenderer& renderer, Actor& actor, const Image& image ) -{ - if( mDebugEnabled && renderer ) - { - return; - } - - if( renderer ) - { - if( ! image ) - { - // If the image is empty, then reset the renderer and return - renderer.RemoveAndReset( actor ); - return; - } - - NinePatchImage npatchImage = NinePatchImage::DownCast( image ); - if( npatchImage ) - { - NPatchRenderer* rendererPtr = dynamic_cast< NPatchRenderer* >( &GetImplementation( renderer ) ); - if( rendererPtr ) - { - rendererPtr->SetImage( npatchImage ); - return; - } - } - else - { - ImageRenderer* rendererPtr = dynamic_cast< ImageRenderer* >( &GetImplementation( renderer ) ); - if( rendererPtr ) - { - rendererPtr->SetImage( actor, image ); - return; - } - } - - renderer.RemoveAndReset( actor ); - } - - renderer = GetControlRenderer( image ); - if( actor && actor.OnStage() ) - { - renderer.SetOnStage( actor ); - } -} - -Toolkit::ControlRenderer RendererFactory::GetControlRenderer( const std::string& url, ImageDimensions size ) +Toolkit::ControlRenderer RendererFactory::CreateControlRenderer( const std::string& url, ImageDimensions size ) { if( !mFactoryCache ) { @@ -376,95 +275,6 @@ Toolkit::ControlRenderer RendererFactory::GetControlRenderer( const std::string& } } -void RendererFactory::ResetRenderer( Toolkit::ControlRenderer& renderer, Actor& actor, const std::string& url, ImageDimensions size ) -{ - if( mDebugEnabled && renderer ) - { - return; - } - - if( renderer ) - { - if( url.empty() ) - { - // If the URL is empty, then reset the renderer and return - renderer.RemoveAndReset( actor ); - return; - } - else if( NinePatchImage::IsNinePatchUrl( url ) ) - { - NPatchRenderer* rendererPtr = dynamic_cast< NPatchRenderer* >( &GetImplementation( renderer ) ); - if( rendererPtr ) - { - rendererPtr->SetImage( url ); - return; - } - } - else if( SvgRenderer::IsSvgUrl( url ) ) - { - SvgRenderer* rendererPtr = dynamic_cast< SvgRenderer* >( &GetImplementation( renderer ) ); - if( rendererPtr ) - { - rendererPtr->SetImage( url, size ); - return; - } - } - else - { - ImageRenderer* rendererPtr = dynamic_cast< ImageRenderer* >( &GetImplementation( renderer ) ); - if( rendererPtr ) - { - rendererPtr->SetImage( actor, url, size ); - return; - } - } - - renderer.RemoveAndReset( actor ); - } - - renderer = GetControlRenderer( url, size ); - if( actor && actor.OnStage() ) - { - renderer.SetOnStage( actor ); - } -} - -void RendererFactory::ResetRenderer( Toolkit::ControlRenderer& renderer, Actor& actor, const Property::Map& propertyMap ) -{ - if( mDebugEnabled && renderer ) - { - return; - } - - if( renderer ) - { - ControlRenderer& controlRenderer = GetImplementation( renderer ); - - RendererType type = GetRendererType( propertyMap ); - - //If there's no renderer type specified or if there hasn't been a renderer type change then we can reuse the renderer - if( type == UNDEFINED || - ( type == IMAGE && typeid( controlRenderer ) == typeid( ImageRenderer ) ) || - ( type == N_PATCH && typeid( controlRenderer ) == typeid( NPatchRenderer ) ) || - ( type == COLOR && typeid( controlRenderer ) == typeid( ColorRenderer ) )|| - ( type == GRADIENT && typeid( controlRenderer ) == typeid( GradientRenderer ) ) || - ( type == BORDER && typeid( controlRenderer ) == typeid( BorderRenderer ) ) || - ( type == SVG && typeid( controlRenderer ) == typeid( SvgRenderer ) ) ) - { - controlRenderer.Initialize( actor, propertyMap ); - return; - } - - renderer.RemoveAndReset( actor ); - } - - renderer = GetControlRenderer( propertyMap ); - if( renderer && actor && actor.OnStage() ) - { - renderer.SetOnStage( actor ); - } -} - Image RendererFactory::GetBrokenRendererImage() { return ResourceImage::New( BROKEN_RENDERER_IMAGE_URL ); @@ -485,4 +295,3 @@ void RendererFactory::CreateAtlasManager() } // namespace Toolkit } // namespace Dali -