#include "svg-rasterize-thread.h"
// INTERNAL INCLUDES
-#include "nanosvg/nanosvgrast.h"
-#include "svg-renderer.h"
+#include <dali-toolkit/third-party/nanosvg/nanosvgrast.h>
+#include <dali-toolkit/internal/controls/renderers/svg/svg-visual.h>
namespace Dali
{
namespace Internal
{
-RasterizingTask::RasterizingTask( SvgRenderer* svgRenderer, NSVGimage* parsedSvg, unsigned int width, unsigned int height )
-: mSvgRenderer( svgRenderer ),
+RasterizingTask::RasterizingTask( SvgVisual* svgRenderer, NSVGimage* parsedSvg, unsigned int width, unsigned int height )
+: mSvgVisual( svgRenderer ),
mParsedSvg( parsedSvg ),
mWidth( width ),
mHeight( height )
float scaleY = static_cast<float>( mHeight ) / mParsedSvg->height;
float scale = scaleX < scaleY ? scaleX : scaleY;
unsigned int bufferStride = mWidth*Pixel::GetBytesPerPixel( Pixel::RGBA8888 );
+ unsigned int bufferSize = bufferStride * mHeight;
- unsigned char* buffer = new unsigned char [bufferStride*mHeight];
+ unsigned char* buffer = new unsigned char [bufferSize];
nsvgRasterize(rasterizer, mParsedSvg, 0.f,0.f,scale,
buffer, mWidth, mHeight,
bufferStride );
- mPixelData = Dali::PixelData::New( buffer, mWidth, mHeight, Pixel::RGBA8888, Dali::PixelData::DELETE_ARRAY );
+ mPixelData = Dali::PixelData::New( buffer, bufferSize, mWidth, mHeight, Pixel::RGBA8888, Dali::PixelData::DELETE_ARRAY );
}
}
-SvgRenderer* RasterizingTask::GetSvgRenderer() const
+SvgVisual* RasterizingTask::GetSvgVisual() const
{
- return mSvgRenderer.Get();
+ return mSvgVisual.Get();
}
-PixelDataPtr RasterizingTask::GetPixelData() const
+PixelData RasterizingTask::GetPixelData() const
{
return mPixelData;
}
// Older task which waiting to rasterize and apply the svg to the same renderer is expired.
for( std::vector< RasterizingTaskPtr >::iterator it = mRasterizeTasks.begin(), endIt = mRasterizeTasks.end(); it != endIt; ++it )
{
- if( (*it) && (*it)->GetSvgRenderer() == task->GetSvgRenderer() )
+ if( (*it) && (*it)->GetSvgVisual() == task->GetSvgVisual() )
{
mRasterizeTasks.erase( it );
break;
return nextTask;
}
-void SvgRasterizeThread::RemoveTask( SvgRenderer* renderer )
+void SvgRasterizeThread::RemoveTask( SvgVisual* renderer )
{
// Lock while remove task from the queue
ConditionalWait::ScopedLock lock( mConditionalWait );
{
for( std::vector< RasterizingTaskPtr >::iterator it = mRasterizeTasks.begin(), endIt = mRasterizeTasks.end(); it != endIt; ++it )
{
- if( (*it) && (*it)->GetSvgRenderer() == renderer )
+ if( (*it) && (*it)->GetSvgVisual() == renderer )
{
mRasterizeTasks.erase( it );
break;