ThorVG  v0.1
ThorVG is a platform-independent portable library for drawing vector-based scene and animation. It's an open-source software that is freely used by a variety of software platforms and applications. ThorVG provides neat and easy APIs, its library has no dependencies and keeps cheap and super compact size. It serves as the vector graphics engine for Tizen OS that powers many products.
LinearGradientfinal

A class representing the linear gradient fill of the Shape object. More...

Inheritance diagram for LinearGradient:

Public Member Functions

Result linear (float x1, float y1, float x2, float y2) noexcept
 Sets the linear gradient bounds. More...
 
Result linear (float *x1, float *y1, float *x2, float *y2) const noexcept
 Gets the linear gradient bounds. More...
 
- Public Member Functions inherited from Fill
Result colorStops (const ColorStop *colorStops, uint32_t cnt) noexcept
 Sets the parameters of the colors of the gradient and their position. More...
 
Result spread (FillSpread s) noexcept
 Sets the FillSpread value, which specifies how to fill the area outside the gradient bounds. More...
 
uint32_t colorStops (const ColorStop **colorStops) const noexcept
 Gets the parameters of the colors of the gradient, their position and number. More...
 
FillSpread spread () const noexcept
 Gets the FillSpread value of the fill. More...
 
Fillduplicate () const noexcept
 Creates a copy of the Fill object. More...
 

Static Public Member Functions

static std::unique_ptr< LinearGradientgen () noexcept
 Creates a new LinearGradient object. More...
 

Detailed Description

A class representing the linear gradient fill of the Shape object.

Besides the APIs inherited from the Fill class, it enables setting and getting the linear gradient bounds. The behavior outside the gradient bounds depends on the value specified in the spread API.

Member Function Documentation

◆ gen()

static std::unique_ptr<LinearGradient> gen ( )
staticnoexcept

Creates a new LinearGradient object.

Returns
A new LinearGradient object.

◆ linear() [1/2]

Result linear ( float  x1,
float  y1,
float  x2,
float  y2 
)
noexcept

Sets the linear gradient bounds.

The bounds of the linear gradient are defined as a surface constrained by two parallel lines crossing the given points (x1, y1) and (x2, y2), respectively. Both lines are perpendicular to the line linking (x1, y1) and (x2, y2).

Parameters
[in]x1The horizontal coordinate of the first point used to determine the gradient bounds.
[in]y1The vertical coordinate of the first point used to determine the gradient bounds.
[in]x2The horizontal coordinate of the second point used to determine the gradient bounds.
[in]y2The vertical coordinate of the second point used to determine the gradient bounds.
Returns
Result::Success when succeed, Result::InvalidArguments otherwise.

◆ linear() [2/2]

Result linear ( float *  x1,
float *  y1,
float *  x2,
float *  y2 
) const
noexcept

Gets the linear gradient bounds.

The bounds of the linear gradient are defined as a surface constrained by two parallel lines crossing the given points (x1, y1) and (x2, y2), respectively. Both lines are perpendicular to the line linking (x1, y1) and (x2, y2).

Parameters
[out]x1The horizontal coordinate of the first point used to determine the gradient bounds.
[out]y1The vertical coordinate of the first point used to determine the gradient bounds.
[out]x2The horizontal coordinate of the second point used to determine the gradient bounds.
[out]y2The vertical coordinate of the second point used to determine the gradient bounds.
Returns
Result::Success when succeed.