// INTERNAL HEADER
#include <dali-toolkit/internal/controls/renderers/color/color-renderer.h>
+#include <dali-toolkit/internal/controls/renderers/svg/svg-renderer.h>
namespace Dali
{
{
RendererFactoryCache::RendererFactoryCache()
+: mSvgRasterizeThread( NULL )
{
}
RendererFactoryCache::~RendererFactoryCache()
{
+ SvgRasterizeThread::TerminateThread( mSvgRasterizeThread );
}
Geometry RendererFactoryCache::GetGeometry( GeometryType type )
Property::Map quadVertexFormat;
quadVertexFormat["aPosition"] = Property::VECTOR2;
- PropertyBuffer quadVertices = PropertyBuffer::New( quadVertexFormat, 4 );
- quadVertices.SetData(quadVertexData);
+ PropertyBuffer quadVertices = PropertyBuffer::New( quadVertexFormat );
+ quadVertices.SetData( quadVertexData, 4 );
// Create the geometry object
Geometry geometry = Geometry::New();
return geometry;
}
+SvgRasterizeThread* RendererFactoryCache::GetSVGRasterizationThread()
+{
+ if( !mSvgRasterizeThread )
+ {
+ mSvgRasterizeThread = new SvgRasterizeThread( new EventThreadCallback( MakeCallback( this, &RendererFactoryCache::ApplyRasterizedSVGToSampler ) ) );
+ mSvgRasterizeThread->Start();
+ }
+ return mSvgRasterizeThread;
+}
+
+void RendererFactoryCache::ApplyRasterizedSVGToSampler()
+{
+ while( RasterizingTaskPtr task = mSvgRasterizeThread->NextCompletedTask() )
+ {
+ task->GetSvgRenderer()->ApplyRasterizedImage( task->GetPixelData() );
+ }
+}
+
} // namespace Internal
} // namespace Toolkit