-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 );
- }
-}
-