// EXTERNAL INCLUDES
#include <dali/integration-api/debug.h>
+#include <dali/public-api/images/image.h>
#include <dali/public-api/object/property-array.h>
#include <dali/public-api/object/type-registry.h>
#include <dali/devel-api/object/type-registry-helper.h>
DALI_LOG_ERROR( "Renderer type unknown" );
}
- return Toolkit::ControlRenderer(rendererPtr);
+ return Toolkit::ControlRenderer( rendererPtr );
+}
+
+Toolkit::ControlRenderer RendererFactory::GetControlRenderer( const Vector4& color )
+{
+ ColorRenderer* rendererPtr = new ColorRenderer();
+
+ if( !mFactoryCache )
+ {
+ mFactoryCache = new RendererFactoryCache();
+ }
+ rendererPtr->Initialize( *( mFactoryCache.Get() ) );
+
+ rendererPtr->SetColor( color );
+
+ return Toolkit::ControlRenderer( rendererPtr );
+}
+
+bool RendererFactory::ResetRenderer( Toolkit::ControlRenderer& renderer, const Vector4& color )
+{
+ ColorRenderer* rendererPtr = dynamic_cast< ColorRenderer* >( &GetImplementation( renderer ) );
+ if( rendererPtr )
+ {
+ rendererPtr->SetColor( color );
+ return false;
+ }
+ else
+ {
+ renderer = GetControlRenderer( color );
+ return true;
+ }
+}
+
+Toolkit::ControlRenderer RendererFactory::GetControlRenderer( const Image& image )
+{
+ ImageRenderer* rendererPtr = new ImageRenderer();
+ if( !mFactoryCache )
+ {
+ mFactoryCache = new RendererFactoryCache();
+ }
+ rendererPtr->Initialize( *( mFactoryCache.Get() ) );
+ rendererPtr->SetImage( image );
+
+ return Toolkit::ControlRenderer( rendererPtr );
+}
+
+bool RendererFactory::ResetRenderer( Toolkit::ControlRenderer& renderer, const Image& image )
+{
+ ImageRenderer* rendererPtr = dynamic_cast< ImageRenderer* >( &GetImplementation( renderer ) );
+ if( rendererPtr )
+ {
+ rendererPtr->SetImage( image );
+ return false;
+ }
+ else
+ {
+ renderer = GetControlRenderer( image );
+ return true;
+ }
+}
+
+Toolkit::ControlRenderer RendererFactory::GetControlRenderer( const std::string& url )
+{
+ ImageRenderer* rendererPtr = new ImageRenderer();
+ if( !mFactoryCache )
+ {
+ mFactoryCache = new RendererFactoryCache();
+ }
+ rendererPtr->Initialize( *( mFactoryCache.Get() ) );
+ rendererPtr->SetImage( url );
+
+ return Toolkit::ControlRenderer( rendererPtr );
+}
+
+bool RendererFactory::ResetRenderer( Toolkit::ControlRenderer& renderer, const std::string& url )
+{
+ ImageRenderer* rendererPtr = dynamic_cast< ImageRenderer* >( &GetImplementation( renderer ) );
+ if( rendererPtr )
+ {
+ rendererPtr->SetImage( url );
+ return false;
+ }
+ else
+ {
+ renderer = GetControlRenderer( url );
+ return true;
+ }
}
} // namespace Internal