mirror of
https://github.com/thorvg/thorvg.git
synced 2025-07-28 17:15:57 +00:00
capi: gradient transformation apis added
This commit is contained in:
parent
8cfe4ef708
commit
d25a285b4c
2 changed files with 47 additions and 0 deletions
|
@ -1693,6 +1693,37 @@ 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);
|
TVG_EXPORT Tvg_Result tvg_gradient_get_spread(Tvg_Gradient* grad, Tvg_Stroke_Fill* spread);
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Sets the matrix of the affine transformation for the gradient object. (BETA_API)
|
||||||
|
*
|
||||||
|
* The augmented matrix of the transformation is expected to be given.
|
||||||
|
*
|
||||||
|
* \param[in] grad The Tvg_Gradient object to be transformed.
|
||||||
|
* \param[in] 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.
|
||||||
|
* \retval TVG_RESULT_FAILED_ALLOCATION An internal error with a memory allocation.
|
||||||
|
*/
|
||||||
|
TVG_EXPORT Tvg_Result tvg_gradient_set_transform(Tvg_Gradient* grad, const Tvg_Matrix* m);
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Gets the matrix of the affine transformation of the gradient object. (BETA_API)
|
||||||
|
*
|
||||||
|
* In case no transformation was applied, the identity matrix is set.
|
||||||
|
*
|
||||||
|
* \param[in] grad The Tvg_Gradient 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_gradient_get_transform(const Tvg_Gradient* grad, Tvg_Matrix* m);
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Duplicates the given Tvg_Gradient object.
|
* \brief Duplicates the given Tvg_Gradient object.
|
||||||
*
|
*
|
||||||
|
|
|
@ -170,6 +170,7 @@ TVG_EXPORT Tvg_Result tvg_paint_transform(Tvg_Paint* paint, const Tvg_Matrix* m)
|
||||||
return (Tvg_Result) reinterpret_cast<Paint*>(paint)->transform(*(reinterpret_cast<const Matrix*>(m)));
|
return (Tvg_Result) reinterpret_cast<Paint*>(paint)->transform(*(reinterpret_cast<const Matrix*>(m)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TVG_EXPORT Tvg_Result tvg_paint_get_transform(Tvg_Paint* paint, Tvg_Matrix* m)
|
TVG_EXPORT Tvg_Result tvg_paint_get_transform(Tvg_Paint* paint, Tvg_Matrix* m)
|
||||||
{
|
{
|
||||||
if (!paint || !m) return TVG_RESULT_INVALID_ARGUMENT;
|
if (!paint || !m) return TVG_RESULT_INVALID_ARGUMENT;
|
||||||
|
@ -597,6 +598,21 @@ TVG_EXPORT Tvg_Result tvg_gradient_get_spread(Tvg_Gradient* grad, Tvg_Stroke_Fil
|
||||||
return TVG_RESULT_SUCCESS;
|
return TVG_RESULT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
TVG_EXPORT Tvg_Result tvg_gradient_set_transform(Tvg_Gradient* grad, const Tvg_Matrix* m)
|
||||||
|
{
|
||||||
|
if (!grad || !m) return TVG_RESULT_INVALID_ARGUMENT;
|
||||||
|
return (Tvg_Result) reinterpret_cast<Fill*>(grad)->transform(*(reinterpret_cast<const Matrix*>(m)));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
TVG_EXPORT Tvg_Result tvg_gradient_get_transform(const Tvg_Gradient* grad, Tvg_Matrix* m)
|
||||||
|
{
|
||||||
|
if (!grad || !m) return TVG_RESULT_INVALID_ARGUMENT;
|
||||||
|
*reinterpret_cast<Matrix*>(m) = reinterpret_cast<Fill*>(const_cast<Tvg_Gradient*>(grad))->transform();
|
||||||
|
return TVG_RESULT_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
/* Scene API */
|
/* Scene API */
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
|
|
Loading…
Add table
Reference in a new issue