From 9b4769076f96238eac2adc88d39ac53294a5d8a7 Mon Sep 17 00:00:00 2001 From: Patryk Kaczmarek Date: Tue, 26 Jan 2021 04:57:56 +0100 Subject: [PATCH] Capi: Composite Method binding --- inc/thorvg_capi.h | 17 +++++++++++++++++ src/bindings/capi/tvgCapi.cpp | 5 +++++ 2 files changed, 22 insertions(+) diff --git a/inc/thorvg_capi.h b/inc/thorvg_capi.h index 59d2df66..4c98d946 100644 --- a/inc/thorvg_capi.h +++ b/inc/thorvg_capi.h @@ -105,6 +105,12 @@ typedef enum { TVG_FILL_RULE_EVEN_ODD } Tvg_Fill_Rule; +typedef enum { + TVG_COMPOSITE_METHOD_NONE = 0, + TVG_COMPOSITE_METHOD_CLIP_PATH, + TVG_COMPOSITE_METHOD_ALPHA_MASK +} Tvg_Composite_Method; + typedef struct { float x, y; @@ -572,6 +578,17 @@ TVG_EXPORT Tvg_Paint* tvg_paint_duplicate(Tvg_Paint* paint); */ TVG_EXPORT Tvg_Result tvg_paint_get_bounds(const Tvg_Paint* paint, float* x, float* y, float* w, float* h); +/*! +* \fn TVG_EXPORT Tvg_Result tvg_paint_set_composite_method(const Tvg_Paint* paint, Tvg_Composite_Method method) +* \brief The function set composition method +* \param[in] paint Tvg_Paint pointer +* \param[in] method Tvg_Composite_Method used composite method +* \return Tvg_Result return value +* - TVG_RESULT_SUCCESS: if ok. +* - TVG_RESULT_INVALID_PARAMETERS: if paint is invalid +*/ +TVG_EXPORT Tvg_Result tvg_paint_set_composite_method(const Tvg_Paint* paint, Tvg_Composite_Method method); + /************************************************************************/ /* Shape API */ /************************************************************************/ diff --git a/src/bindings/capi/tvgCapi.cpp b/src/bindings/capi/tvgCapi.cpp index bc98c71a..a75fcf91 100644 --- a/src/bindings/capi/tvgCapi.cpp +++ b/src/bindings/capi/tvgCapi.cpp @@ -191,6 +191,11 @@ TVG_EXPORT Tvg_Result tvg_paint_get_bounds(const Tvg_Paint* paint, float* x, flo return (Tvg_Result) reinterpret_cast(paint)->bounds(x, y, w, h); } +TVG_EXPORT Tvg_Result tvg_paint_set_composite_method(const Tvg_Paint* paint, Tvg_Composite_Method method) +{ + if (!paint) return TVG_RESULT_INVALID_ARGUMENT; + return (Tvg_Result) reinterpret_cast(paint)->composite(unique_ptr((Paint*)(paint)), (CompositeMethod)method); +} /************************************************************************/ /* Shape API */