* limitations under the License.
*/
-#include <map>
+// INTERNAL INCLUDES
+#include "svg/svg-rasterize-thread.h"
// EXTERNAL INCLUDES
+#include <dali/public-api/math/uint-16-pair.h>
#include <dali/public-api/object/ref-object.h>
#include <dali/devel-api/rendering/geometry.h>
#include <dali/devel-api/rendering/shader.h>
{
COLOR_SHADER,
BORDER_SHADER,
+ BORDER_SHADER_ANTI_ALIASING,
GRADIENT_SHADER_LINEAR_USER_SPACE,
GRADIENT_SHADER_LINEAR_BOUNDING_BOX,
GRADIENT_SHADER_RADIAL_USER_SPACE,
*/
static Geometry CreateQuadGeometry();
+ /**
+ * Create the grid geometry.
+ * @param[in] gridSize The size of the grid.
+ * @return The created grid geometry.
+ */
+ static Geometry CreateGridGeometry( Uint16Pair gridSize );
+
public:
/**
* @brief Cleans the renderer cache by removing the renderer from the cache based on the given key if there are no longer any references to it
*
* @param[in] key The key used for caching
+ *
+ * @return True if the renderer is no longer used anywhere, false otherwise
+ */
+ bool CleanRendererCache( const std::string& key );
+
+ /**
+ * @brief Cache the debug renderer
+ */
+ void CacheDebugRenderer( Renderer& renderer );
+
+ /**
+ * @brief Request the debug renderer;
*/
- void CleanRendererCache( const std::string& key );
+ Renderer GetDebugRenderer();
+
+ /**
+ * Get the SVG rasterization thread.
+ * @return A pointer pointing to the SVG rasterization thread.
+ */
+ SvgRasterizeThread* GetSVGRasterizationThread();
+
+private: // for svg rasterization thread
+
+ /**
+ * Applies the rasterized image to material
+ */
+ void ApplyRasterizedSVGToSampler();
protected:
int FindRenderer( const std::string& key ) const;
private:
- // ToDo: test whether using the WeakHandle could improve the performance
- // With WeakHandle, the resource would be released automatically when no control is using it
-
Geometry mGeometry[GEOMETRY_TYPE_MAX+1];
Shader mShader[SHADER_TYPE_MAX+1];
HashVector mRendererHashes;
CachedRenderers mRenderers;
+
+ Renderer mDebugRenderer;
+
+ SvgRasterizeThread* mSvgRasterizeThread;
};
} // namespace Internal