#include <dali/internal/update/controllers/scene-controller-impl.h>
// INTERNAL INCLUDES
+#include <dali/internal/render/renderers/scene-graph-image-renderer.h>
namespace Dali
{
SceneControllerImpl::~SceneControllerImpl()
{
+ // Clean-up renderers
+ const unsigned int count( mRendererPool.Count() );
+ for( unsigned int i=0; i<count; ++i )
+ {
+ ImageRenderer* renderer = mRendererPool[i];
+ delete renderer;
+ }
+}
+
+ImageRenderer* SceneControllerImpl::NewImageRenderer( NodeDataProvider& dataProvider )
+{
+ ImageRenderer* renderer( NULL );
+
+ if( 0 == mRendererPool.Count() )
+ {
+ renderer = ImageRenderer::New( dataProvider );
+ }
+ else
+ {
+ renderer = mRendererPool[ mRendererPool.Count() - 1 ];
+
+ mRendererPool.Erase( mRendererPool.End() - 1 );
+ }
+
+ return renderer;
+}
+
+void SceneControllerImpl::FreeImageRenderer( ImageRenderer& renderer )
+{
+ mRendererPool.PushBack( &renderer );
}
} // namespace SceneGraph