return GetImplementation(*this).AddDrawable(drawable);
}
+bool CanvasRenderer::DrawableGroup::RemoveDrawable(Drawable drawable)
+{
+ return GetImplementation(*this).RemoveDrawable(drawable);
+}
+
bool CanvasRenderer::DrawableGroup::RemoveAllDrawables()
{
return GetImplementation(*this).RemoveAllDrawables();
bool AddDrawable(Drawable& drawable);
/**
+ * @brief Remove drawable object to the DrawableGroup.
+ * This method is similar to deregistration. Freeing memory is not concerned for drawables being removed.
+ * @param[in] drawable the drawable object.
+ * @return Returns True when it's successful. False otherwise.
+ */
+ bool RemoveDrawable(Drawable drawable);
+
+ /**
* @brief Remove all drawable objects added to the DrawableGroup.
* @return Returns True when it's successful. False otherwise.
*/
return false;
}
+bool DrawableGroup::RemoveDrawable(Dali::CanvasRenderer::Drawable drawable)
+{
+ return false;
+}
+
bool DrawableGroup::RemoveAllDrawables()
{
return false;
virtual bool AddDrawable(Dali::CanvasRenderer::Drawable& drawable);
/**
+ * @copydoc Dali::CanvasRenderer::DrawableGroup::RemoveDrawable()
+ */
+ virtual bool RemoveDrawable(Dali::CanvasRenderer::Drawable drawable);
+
+ /**
* @copydoc Dali::CanvasRenderer::DrawableGroup::RemoveAllDrawables()
*/
virtual bool RemoveAllDrawables();
return false;
}
+bool DrawableGroupGeneric::RemoveDrawable(Dali::CanvasRenderer::Drawable drawable)
+{
+ return false;
+}
+
bool DrawableGroupGeneric::RemoveAllDrawables()
{
return false;
bool AddDrawable(Dali::CanvasRenderer::Drawable& drawable) override;
/**
+ * @copydoc Dali::CanvasRenderer::DrawableGroup::RemoveDrawable()
+ */
+ bool RemoveDrawable(Dali::CanvasRenderer::Drawable drawable) override;
+
+ /**
* @copydoc Dali::CanvasRenderer::DrawableGroup::RemoveAllDrawables()
*/
bool RemoveAllDrawables() override;
#endif
}
+bool DrawableGroupTizen::RemoveDrawable(Dali::CanvasRenderer::Drawable drawable)
+{
+#ifdef THORVG_SUPPORT
+ DrawableGroup::DrawableVector::iterator it = std::find(mDrawables.begin(), mDrawables.end(), drawable);
+ if(it != mDrawables.end())
+ {
+ Internal::Adaptor::Drawable& drawableImpl = Dali::GetImplementation(*it);
+ drawableImpl.SetAdded(false);
+
+ mDrawables.erase(it);
+
+ Drawable::SetChanged(true);
+
+ return true;
+ }
+
+#endif
+ return false;
+}
+
bool DrawableGroupTizen::RemoveAllDrawables()
{
#ifdef THORVG_SUPPORT
bool AddDrawable(Dali::CanvasRenderer::Drawable& drawable) override;
/**
+ * @copydoc Dali::CanvasRenderer::DrawableGroup::RemoveDrawable()
+ */
+ bool RemoveDrawable(Dali::CanvasRenderer::Drawable drawable) override;
+
+ /**
* @copydoc Dali::CanvasRenderer::DrawableGroup::RemoveAllDrawables()
*/
bool RemoveAllDrawables() override;
#endif
}
+bool DrawableGroupUbuntu::RemoveDrawable(Dali::CanvasRenderer::Drawable drawable)
+{
+#ifdef THORVG_SUPPORT
+ DrawableGroup::DrawableVector::iterator it = std::find(mDrawables.begin(), mDrawables.end(), drawable);
+ if(it != mDrawables.end())
+ {
+ Internal::Adaptor::Drawable& drawableImpl = Dali::GetImplementation(*it);
+ drawableImpl.SetAdded(false);
+
+ mDrawables.erase(it);
+
+ Drawable::SetChanged(true);
+
+ return true;
+ }
+
+#endif
+ return false;
+}
+
bool DrawableGroupUbuntu::RemoveAllDrawables()
{
#ifdef THORVG_SUPPORT
bool AddDrawable(Dali::CanvasRenderer::Drawable& drawable) override;
/**
+ * @copydoc Dali::CanvasRenderer::DrawableGroup::RemoveDrawable()
+ */
+ bool RemoveDrawable(Dali::CanvasRenderer::Drawable drawable) override;
+
+ /**
* @copydoc Dali::CanvasRenderer::DrawableGroup::RemoveAllDrawables()
*/
bool RemoveAllDrawables() override;