From b29915712327aba04a196a346c2513627686892c Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Thu, 3 Jun 2021 21:01:54 +0900 Subject: [PATCH] capi: add tvg_paint_get_transform() api. --- src/bindings/capi/thorvg_capi.h | 13 +++++++++++++ src/bindings/capi/tvgCapi.cpp | 7 +++++++ 2 files changed, 20 insertions(+) diff --git a/src/bindings/capi/thorvg_capi.h b/src/bindings/capi/thorvg_capi.h index a2a184d3..01a72b32 100644 --- a/src/bindings/capi/thorvg_capi.h +++ b/src/bindings/capi/thorvg_capi.h @@ -721,6 +721,19 @@ TVG_EXPORT Tvg_Result tvg_paint_translate(Tvg_Paint* paint, float x, float y); TVG_EXPORT Tvg_Result tvg_paint_transform(Tvg_Paint* paint, const Tvg_Matrix* m); +/*! +* \brief Gets the matrix of the affine transformation of the given Tvg_Paint object. +* +* \param[in] paint The Tvg_Paint object of which to get the transformation matrix. +* \param[out] m The 3x3 augmented matrix. +* +* \return Tvg_Result enumeration. +* \retval TVG_RESULT_SUCCESS Succeed. +* \retval TVG_RESULT_INVALID_ARGUMENT A @c nullptr is passed as the argument. +*/ +TVG_EXPORT Tvg_Result tvg_paint_get_transform(Tvg_Paint* paint, Tvg_Matrix* m); + + /*! * \brief Sets the opacity of the given Tvg_Paint. * diff --git a/src/bindings/capi/tvgCapi.cpp b/src/bindings/capi/tvgCapi.cpp index 8815569a..06fbf27a 100644 --- a/src/bindings/capi/tvgCapi.cpp +++ b/src/bindings/capi/tvgCapi.cpp @@ -161,6 +161,13 @@ TVG_EXPORT Tvg_Result tvg_paint_transform(Tvg_Paint* paint, const Tvg_Matrix* m) return (Tvg_Result) reinterpret_cast(paint)->transform(*(reinterpret_cast(m))); } +TVG_EXPORT Tvg_Result tvg_paint_get_transform(Tvg_Paint* paint, Tvg_Matrix* m) +{ + if (!paint || !m) return TVG_RESULT_INVALID_ARGUMENT; + *reinterpret_cast(m) = reinterpret_cast(paint)->transform(); + return TVG_RESULT_SUCCESS; +} + TVG_EXPORT Tvg_Paint* tvg_paint_duplicate(Tvg_Paint* paint) {