X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Fsvg%2Fsvg-rasterize-thread.h;h=11fa03f48f581b56eca83e43cab4d23393deb3e6;hp=f30c45949e4a58a1b2855ea972b94faa1c6f51c0;hb=5cefe49bcc101e10e8a10acb546d8ea2587cad31;hpb=fedd5ae8da46cd798f730fd07c942df853e055dd diff --git a/dali-toolkit/internal/visuals/svg/svg-rasterize-thread.h b/dali-toolkit/internal/visuals/svg/svg-rasterize-thread.h index f30c459..11fa03f 100644 --- a/dali-toolkit/internal/visuals/svg/svg-rasterize-thread.h +++ b/dali-toolkit/internal/visuals/svg/svg-rasterize-thread.h @@ -2,7 +2,7 @@ #define DALI_TOOLKIT_SVG_RASTERIZE_THREAD_H /* - * Copyright (c) 2019 Samsung Electronics Co., Ltd. + * Copyright (c) 2020 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,12 +22,12 @@ #include #include #include -#include #include #include #include #include #include +#include struct NSVGimage; struct NSVGrasterizer; @@ -65,16 +65,21 @@ public: * @param[in] parsedSvg The parsed svg for rasterizing. * Note, after the task is added to the worker thread, the worker thread takes over the ownership. * When the image is to be deleted, delete it in the worker thread by calling SvgRasterizeThread::DeleteImage( parsedSvg ). + * @param[in] url The URL to svg resource to use. * @param[in] width The rasterization width. * @param[in] height The rasterization height. */ - RasterizingTask( SvgVisual* svgRenderer, NSVGimage* parsedSvg, unsigned int width, unsigned int height ); + RasterizingTask( SvgVisual* svgRenderer, NSVGimage* parsedSvg, const VisualUrl& url, float dpi, unsigned int width, unsigned int height ); /** - * Do the rasterization with the given rasterizer. - *@param[in] rasterizer The rasterizer that rasterize the SVG to a buffer image + * Destructor. + */ + ~RasterizingTask() override; + + /** + * Do the rasterization with the mRasterizer. */ - void Rasterize( NSVGrasterizer* rasterizer ); + void Rasterize( ); /** * Get the svg visual @@ -87,8 +92,18 @@ public: */ PixelData GetPixelData() const; -private: + /** + * Get the parsed data. + * @return parsed image data. + */ + NSVGimage* GetParsedImage() const; + /** + * Load svg file + */ + void Load(); + +private: // Undefined RasterizingTask( const RasterizingTask& task ); @@ -96,14 +111,16 @@ private: RasterizingTask& operator=( const RasterizingTask& task ); private: - SvgVisualPtr mSvgVisual; - PixelData mPixelData; + SvgVisualPtr mSvgVisual; NSVGimage* mParsedSvg; + VisualUrl mUrl; + PixelData mPixelData; + float mDpi; unsigned int mWidth; unsigned int mHeight; + NSVGrasterizer* mRasterizer; }; - /** * The worker thread for SVG rasterization. */ @@ -176,7 +193,7 @@ protected: /** * Destructor. */ - virtual ~SvgRasterizeThread(); + ~SvgRasterizeThread() override; /** @@ -203,7 +220,6 @@ private: Dali::Mutex mMutex; EventThreadCallback* mTrigger; - NSVGrasterizer* mRasterizer; bool mIsThreadWaiting; };