X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Frenderers%2Fsvg%2Fsvg-rasterize-thread.cpp;h=1f5054b8d5026c4c6f8d50d9824a5c9f31c87e47;hb=refs%2Fchanges%2F60%2F81060%2F11;hp=a2c1ad77635807e55b742324c038d47d328b6511;hpb=23ceb4d9eef323cddf0c0f6d13f3a02226926911;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/controls/renderers/svg/svg-rasterize-thread.cpp b/dali-toolkit/internal/controls/renderers/svg/svg-rasterize-thread.cpp index a2c1ad7..1f5054b 100644 --- a/dali-toolkit/internal/controls/renderers/svg/svg-rasterize-thread.cpp +++ b/dali-toolkit/internal/controls/renderers/svg/svg-rasterize-thread.cpp @@ -19,8 +19,8 @@ #include "svg-rasterize-thread.h" // INTERNAL INCLUDES -#include "nanosvg/nanosvgrast.h" -#include "svg-renderer.h" +#include +#include namespace Dali { @@ -31,8 +31,8 @@ namespace Toolkit 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 ) @@ -47,19 +47,20 @@ void RasterizingTask::Rasterize( NSVGrasterizer* rasterizer ) float scaleY = static_cast( 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(); } PixelData RasterizingTask::GetPixelData() const @@ -109,7 +110,7 @@ void SvgRasterizeThread::AddTask( RasterizingTaskPtr task ) // 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; @@ -143,7 +144,7 @@ RasterizingTaskPtr SvgRasterizeThread::NextCompletedTask() return nextTask; } -void SvgRasterizeThread::RemoveTask( SvgRenderer* renderer ) +void SvgRasterizeThread::RemoveTask( SvgVisual* renderer ) { // Lock while remove task from the queue ConditionalWait::ScopedLock lock( mConditionalWait ); @@ -151,7 +152,7 @@ void SvgRasterizeThread::RemoveTask( SvgRenderer* renderer ) { 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;