From e0488f4a8d98fd19e3b46cb23523228322ac8739 Mon Sep 17 00:00:00 2001 From: Mira Grudzinska Date: Tue, 12 Oct 2021 14:49:31 +0200 Subject: [PATCH] capi: tvg_gradient_duplicate() added --- src/bindings/capi/thorvg_capi.h | 12 ++++++++++++ src/bindings/capi/tvgCapi.cpp | 7 +++++++ 2 files changed, 19 insertions(+) diff --git a/src/bindings/capi/thorvg_capi.h b/src/bindings/capi/thorvg_capi.h index d42e22a8..826ec774 100644 --- a/src/bindings/capi/thorvg_capi.h +++ b/src/bindings/capi/thorvg_capi.h @@ -1661,6 +1661,18 @@ TVG_EXPORT Tvg_Result tvg_gradient_set_spread(Tvg_Gradient* grad, const Tvg_Stro TVG_EXPORT Tvg_Result tvg_gradient_get_spread(Tvg_Gradient* grad, Tvg_Stroke_Fill* spread); +/*! +* \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. * diff --git a/src/bindings/capi/tvgCapi.cpp b/src/bindings/capi/tvgCapi.cpp index cb8d1f1b..54094326 100644 --- a/src/bindings/capi/tvgCapi.cpp +++ b/src/bindings/capi/tvgCapi.cpp @@ -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(grad)->duplicate(); +} + + TVG_EXPORT Tvg_Result tvg_gradient_del(Tvg_Gradient* grad) { if (!grad) return TVG_RESULT_INVALID_ARGUMENT;