capi: tvg_gradient_duplicate() added
authorMira Grudzinska <m.grudzinska@samsung.com>
Tue, 12 Oct 2021 12:49:31 +0000 (14:49 +0200)
committerJunsuChoi <jsuya.choi@samsung.com>
Fri, 15 Oct 2021 00:42:27 +0000 (09:42 +0900)
src/bindings/capi/thorvg_capi.h
src/bindings/capi/tvgCapi.cpp

index d42e22a..826ec77 100644 (file)
@@ -1662,6 +1662,18 @@ TVG_EXPORT Tvg_Result tvg_gradient_get_spread(Tvg_Gradient* grad, Tvg_Stroke_Fil
 
 
 /*!
+* \brief Duplicates the given Tvg_Gradient object.
+*
+* Creates a new object and sets its all properties as in the original object.
+*
+* \param[in] grad The Tvg_Gradient object to be copied.
+*
+* \return A copied Tvg_Gradient object if succeed, @c nullptr otherwise.
+*/
+TVG_EXPORT Tvg_Gradient* tvg_gradient_duplicate(Tvg_Gradient* grad);
+
+
+/*!
 * \brief Deletes the given gradient object.
 *
 * \param[in] grad The gradient object to be deleted.
index cb8d1f1..5409432 100644 (file)
@@ -515,6 +515,13 @@ TVG_EXPORT Tvg_Gradient* tvg_radial_gradient_new()
 }
 
 
+TVG_EXPORT Tvg_Gradient* tvg_gradient_duplicate(Tvg_Gradient* grad)
+{
+    if (!grad) return nullptr;
+    return (Tvg_Gradient*) reinterpret_cast<Fill*>(grad)->duplicate();
+}
+
+
 TVG_EXPORT Tvg_Result tvg_gradient_del(Tvg_Gradient* grad)
 {
     if (!grad) return TVG_RESULT_INVALID_ARGUMENT;