Lines Matching full:the

4 * \brief The module provides C bindings for the ThorVG library.
5 * Please refer to src/examples/Capi.cpp to find the thorvg_capi usage examples.
7 * The thorvg_capi module allows to implement the ThorVG client and provides
8 * the following functionalities:
79 * It sets up the target buffer, which can be drawn on the screen. It stores the Tvg_Paint objects (…
87 * \warning The TvgPaint objects cannot be shared between Canvases.
110 * \brief Enumeration specifying the engine type used for the graphics backend. For multiple backend…
121 * \brief Enumeration specifying the result from the APIs.
123 * All ThorVG APIs could potentially return one of the values in the list.
124 * Please note that some APIs may additionally specify the reasons that trigger their return values.
128 … TVG_RESULT_SUCCESS = 0, ///< The value returned in case of a correct request execution.
129 …G_RESULT_INVALID_ARGUMENT, ///< The value returned in the event of a problem with the argume…
130 …TVG_RESULT_INSUFFICIENT_CONDITION, ///< The value returned in case the request cannot be processed…
131 …TVG_RESULT_FAILED_ALLOCATION, ///< The value returned in case of unsuccessful memory allocati…
132 …TVG_RESULT_MEMORY_CORRUPTION, ///< The value returned in the event of bad memory handling - e…
133 …TVG_RESULT_NOT_SUPPORTED, ///< The value returned in case of choosing unsupported engine …
134 TVG_RESULT_UNKNOWN ///< The value returned in all other cases.
139 …* \brief Enumeration indicating the method used in the composition of two objects - the target and…
145The intersection of the source and the target is determined and only the resulting pixels from the
146 … ///< The pixels of the source and the target are alpha blended. As a result, only the part…
147The pixels of the source and the complement to the target's pixels are alpha blended. As a result,…
148The source pixels are converted to grayscale (luma value) and alpha blended with the target. As a …
149The source pixels are converted to grayscale (luma value) and complement to the target's pixels ar…
153 …* @brief Enumeration indicates the method used for blending paint. Please refer to the respective …
160 …TVG_BLEND_METHOD_NORMAL = 0, ///< Perform the alpha blending(default). S if (Sa == 255), ot…
161 … Takes the RGB channel values from 0 to 255 of each pixel in the top layer and multiples them with…
162 …TVG_BLEND_METHOD_SCREEN, ///< The values of the pixels in the two layers are inverted, …
164 TVG_BLEND_METHOD_SRCOVER, ///< Replace the bottom layer with the top layer.
165 …_METHOD_DARKEN, ///< Creates a pixel that retains the smallest components of the top an…
166 TVG_BLEND_METHOD_LIGHTEN, ///< Only has the opposite action of Darken Only. max(S, D)
167 …TVG_BLEND_METHOD_COLORDODGE, ///< Divides the bottom layer by the inverted top layer. D / (…
168 …LEND_METHOD_COLORBURN, ///< Divides the inverted bottom layer by the top layer, and then i…
169 …TVG_BLEND_METHOD_HARDLIGHT, ///< The same as Overlay but with the color roles reversed. (2…
170 …TVG_BLEND_METHOD_SOFTLIGHT, ///< The same as Overlay but with applying pure black or white…
171 …TVG_BLEND_METHOD_DIFFERENCE, ///< Subtracts the bottom layer from the top layer or the othe…
172 …TVG_BLEND_METHOD_EXCLUSION, ///< The result is twice the product of the top and bottom lay…
177 …TVG_BLEND_METHOD_ADD, ///< Simply adds pixel values of one layer with the other. (S …
198 * \brief Enumeration indicating the ThorVG object type value.
200 …* ThorVG's drawing objects can return object type values, allowing you to identify the specific ty…
226 * \brief Enumeration specifying the values of the path commands accepted by TVG.
228 …* Not to be confused with the path commands from the svg path element (like M, L, Q, H and many ot…
229 * TVG interprets all of them and translates to the ones from the PathCommand values.
232 …_COMMAND_CLOSE = 0, ///< Ends the current sub-path and connects it with its initial point - corres…
233 …E_TO, ///< Sets a new initial point of the sub-path and a new current point - corresponds to M c…
234 …< Draws a line from the current point to the given point and sets a new value of the current point…
235 …from the current point to the given point using two given control points and sets a new value of t…
240 * \brief Enumeration determining the ending type of a stroke in the open sub-paths.
243The stroke is extended in both endpoints of a sub-path by a rectangle, with the width equal to the
244 …TROKE_CAP_ROUND, ///< The stroke is extended in both endpoints of a sub-path by a half circle…
245 …TVG_STROKE_CAP_BUTT ///< The stroke ends exactly at each of the two endpoints of a sub-path…
250 * \brief Enumeration specifying how to fill the area outside the gradient bounds.
253The outer corner of the joined path segments is bevelled at the join point. The triangular region …
254 …_STROKE_JOIN_ROUND, ///< The outer corner of the joined path segments is rounded. The circular…
255The outer corner of the joined path segments is spiked. The spike is created by extension beyond t…
260 * \brief Enumeration specifying how to fill the area outside the gradient bounds.
263 TVG_STROKE_FILL_PAD = 0, ///< The remaining area is filled with the closest stop color.
264 …TVG_STROKE_FILL_REFLECT, ///< The gradient pattern is reflected outside the gradient area until th…
265 …TVG_STROKE_FILL_REPEAT ///< The gradient pattern is repeated continuously beyond the gradient ar…
270 …* \brief Enumeration specifying the algorithm used to establish which parts of the shape are treat…
273the point to a location outside the shape is drawn. The intersections of the line with the path se…
274the point to a location outside the shape is drawn and its intersections with the path segments of…
286 * \brief A data structure storing the information about the color and its relative position inside
290 float offset; /**< The relative position of the color. */
291 uint8_t r; /**< The red color channel value in the range [0 ~ 255]. */
292 uint8_t g; /**< The green color channel value in the range [0 ~ 255]. */
293 uint8_t b; /**< The blue color channel value in the range [0 ~ 255]. */
294 …uint8_t a; /**< The alpha channel value in the range [0 ~ 255], where 0 is completely transpare…
312 * The elements e11, e12, e21 and e22 represent the rotation matrix, including the scaling factor.
313 …* The elements e13 and e23 determine the translation of the object along the x and y-axis, respect…
314 * The elements e31 and e32 are set to 0, e33 is set to 1.
326 * \brief A module enabling initialization and termination of the TVG engines.
337 * TVG requires the running-engine environment.
339 * You can indicate the number of threads, the count of which is designated @p threads.
340 * In the initialization step, TVG will generate/spawn the threads as set by @p threads count.
343 * tvg_engine_init(TVG_ENGINE_SW, 0); //Initialize software renderer and use the main thread only
346 * \param[in] engine_method The engine types to initialize. This is relative to the Canvas types, in…
349 * \param[in] threads The number of additional threads used to perform rendering. Zero indicates onl…
355 * \note The Initializer keeps track of the number of times it was called. Threads count is fixed at…
365 * It should be called in case of termination of the TVG client with the same engine types as were p…
373 * \param engine_method The engine types to terminate. This is relative to the Canvas types, in whic…
389 * \brief Retrieves the version of the TVG engine.
394 * \param[out] version The version of the engine in the format major.minor.micro, or a @p nullptr in…
410 … an entity responsible for drawing the target. It sets up the drawing engine and the buffer, which…
412 * \note A Canvas behavior depends on the raster engine though the final content of the buffer is ex…
413 * \warning The Paint objects belonging to one Canvas can't be shared among multiple Canvases.
422 * \brief A module for rendering the graphical elements using the software engine.
432 * \brief Enumeration specifying the methods of Memory Pool behavior policy.
437 …TVG_MEMPOOL_POLICY_INDIVIDUAL ///< Allocate designated memory pool that is used only by the curr…
442 …* \brief Enumeration specifying the methods of combining the 8-bit color channels into 32-bit colo…
445 …TVG_COLORSPACE_ABGR8888 = 0, ///< The channels are joined in the order: alpha, blue, green, red. C…
446 …TVG_COLORSPACE_ARGB8888, ///< The channels are joined in the order: alpha, red, green, blue. C…
447 …TVG_COLORSPACE_ABGR8888S, ///< The channels are joined in the order: alpha, blue, green, red. C…
448 …TVG_COLORSPACE_ARGB8888S ///< The channels are joined in the order: alpha, red, green, blue. C…
461 * //set up the canvas buffer
468 * //set up paints and add them into the canvas before drawing it
480 * \brief Sets the buffer used in the rasterization process and defines the used colorspace.
482 * For optimisation reasons TVG does not allocate memory for the output buffer on its own.
483 * The buffer of a desirable size should be allocated and owned by the caller.
485 * \param[in] canvas The Tvg_Canvas object managing the @p buffer.
486 * \param[in] buffer A pointer to the allocated memory block of the size @p stride x @p h.
487 * \param[in] stride The stride of the raster image - in most cases same value as @p w.
488 * \param[in] w The width of the raster image.
489 * \param[in] h The height of the raster image.
490 * \param[in] cs The colorspace value defining the way the 32-bits colors should be read/written.
495 * \retval TVG_RESULT_INVALID_ARGUMENTS An invalid canvas or buffer pointer passed or one of the @p …
496 * \retval TVG_RESULT_INSUFFICIENT_CONDITION if the canvas is performing rendering. Please ensure th…
497 * \retval TVG_RESULT_NOT_SUPPORTED The software engine is not supported.
499 …ing tvg_canvas_draw() - tvg_canvas_sync(). It should not be accessed while the engine is writing o…
507 * \brief Sets the software engine memory pool behavior policy.
511 * which can be reused among the canvases in order to avoid memory overhead.
514 * if it needs to guarantee the thread-safety of the internal data access.
516 * \param[in] canvas The Tvg_Canvas object of which the Memory Pool behavior is to be specified.
517 * \param[in] policy The method specifying the Memory Pool behavior. The default value is @c TVG_MEM…
521 * \retval TVG_RESULT_INSUFFICIENT_CONDITION The canvas contains some paints already.
522 * \retval TVG_RESULT_NOT_SUPPORTED The software engine is not supported.
524 * \note When @c policy is set as @c TVG_MEMPOOL_POLICY_INDIVIDUAL, the current instance of canvas u…
525 * memory data, which is not shared with others. This is necessary when the canvas is accessed…
538 * \brief Clears the canvas internal data, releases all paints stored by the canvas and destroys the
587 * \param[in] canvas The Tvg_Canvas object to be destroyed.
590 * \retval TVG_RESULT_INVALID_ARGUMENT An invalid pointer to the Tvg_Canvas object is passed.
592 * \note If the paints from the canvas should not be released, the tvg_canvas_clear() with a @c free…
593 * Please be aware that in such a case TVG is not responsible for the paints release anymore and it …
601 * \brief Inserts a drawing element into the canvas using a Tvg_Paint object.
603 * \param[in] canvas The Tvg_Canvas object managing the @p paint.
604 * \param[in] paint The Tvg_Paint object to be drawn.
606 * Only the paints pushed into the canvas will be drawing targets.
607 * They are retained by the canvas until you call tvg_canvas_clear().
610 * \retval TVG_RESULT_INVALID_ARGUMENT In case a @c nullptr is passed as the argument.
613 * \note The rendering order of the paints is the same as the order as they were pushed. Consider so…
620 * \brief Reserves a memory block where the objects pushed into a canvas are stored.
622 * If the number of Tvg_Paints to be stored in a canvas is known in advance, calling this function r…
623 * memory allocations thus improves the performance.
641 * \param[in] canvas The Tvg_Canvas object managing the reserved memory.
642 * \param[in] n The number of objects for which the memory is to be reserved.
651 * \brief Sets the total number of the paints pushed into the canvas to be zero.
652 * Tvg_Paint objects stored in the canvas are released if @p free is set to @c true, otherwise the m…
655 * \param[in] canvas The Tvg_Canvas object to be cleared.
656 * \param[in] free If @c true the memory occupied by paints is deallocated, otherwise it is not.
669 * Should be called before drawing in order to prepare paints for the rendering.
714 * \param[in] canvas The Tvg_Canvas object to be updated.
725 * \brief Updates the given Tvg_Paint object from the canvas before the rendering.
727 * If a client application using the TVG library does not update the entire canvas with tvg_canvas_u…
728 * rendering process, Tvg_Paint objects previously added to the canvas should be updated manually wi…
730 * \param[in] canvas The Tvg_Canvas object to which the @p paint belongs.
731 * \param[in] paint The Tvg_Paint object to be updated.
734 * \retval TVG_RESULT_INVALID_ARGUMENT In case a @c nullptr is passed as the argument.
742 * \brief Requests the canvas to draw the Tvg_Paint objects.
744 * All paints from the given canvas will be rasterized to the buffer.
746 * \param[in] canvas The Tvg_Canvas object containing elements to be drawn.
751 * \note Drawing can be asynchronous based on the assigned thread number. To guarantee the drawing i…
758 * \brief Guarantees that the drawing process is finished.
760 * Since the canvas rendering can be performed asynchronously, it should be called after the tvg_can…
762 * \param[in] canvas The Tvg_Canvas object containing elements which were drawn.
774 * \brief Sets the drawing region in the canvas.
776 * This function defines the rectangular area of the canvas that will be used for drawing operations.
777 * The specified viewport is used to clip the rendering output to the boundaries of the rectangle.
779 * \param[in] canvas The Tvg_Canvas object containing elements which were drawn.
780 * \param[in] x The x-coordinate of the upper-left corner of the rectangle.
781 * \param[in] y The y-coordinate of the upper-left corner of the rectangle.
782 * \param[in] w The width of the rectangle.
783 * \param[in] h The height of the rectangle.
787 * \warning It's not allowed to change the viewport during tvg_canvas_update() - tvg_canvas_sync() o…
789 * \note When resetting the target, the viewport will also be reset to the target size.
809 * \brief Releases the given Tvg_Paint object.
828 * \param[in] paint The Tvg_Paint object to be released.
833 * \warning If this function is used, tvg_canvas_clear() with the @c free argument value set to @c f…
841 * \brief Scales the given Tvg_Paint object by the given factor.
843 * \param[in] paint The Tvg_Paint object to be scaled.
844 * \param[in] factor The value of the scaling factor. The default value is 1.
856 * \brief Rotates the given Tvg_Paint by the given angle.
858 * The angle in measured clockwise from the horizontal axis.
859 * The rotational axis passes through the point on the object with zero coordinates.
861 * \param[in] paint The Tvg_Paint object to be rotated.
862 * \param[in] degree The value of the rotation angle in degrees.
874 * \brief Moves the given Tvg_Paint in a two-dimensional space.
876 * The origin of the coordinate system is in the upper-left corner of the canvas.
877 * The horizontal and vertical axes point to the right and down, respectively.
879 * \param[in] paint The Tvg_Paint object to be shifted.
880 * \param[in] x The value of the horizontal shift.
881 * \param[in] y The value of the vertical shift.
893 * \brief Transforms the given Tvg_Paint using the augmented transformation matrix.
895 * The augmented matrix of the transformation is expected to be given.
897 * \param[in] paint The Tvg_Paint object to be transformed.
898 * \param[in] m The 3x3 augmented matrix.
901 * \retval TVG_RESULT_INVALID_ARGUMENT A @c nullptr is passed as the argument.
907 * \brief Gets the matrix of the affine transformation of the given Tvg_Paint object.
909 * In case no transformation was applied, the identity matrix is returned.
911 * \param[in] paint The Tvg_Paint object of which to get the transformation matrix.
912 * \param[out] m The 3x3 augmented matrix.
915 * \retval TVG_RESULT_INVALID_ARGUMENT A @c nullptr is passed as the argument.
921 * \brief Sets the opacity of the given Tvg_Paint.
923 * \param[in] paint The Tvg_Paint object of which the opacity value is to be set.
924 * \param[in] opacity The opacity value in the range [0 ~ 255], where 0 is completely transparent an…
929 * \note Setting the opacity with this API may require multiple renderings using a composition. It i…
935 * \brief Gets the opacity of the given Tvg_Paint.
937 * \param[in] paint The Tvg_Paint object of which to get the opacity value.
938 * \param[out] opacity The opacity value in the range [0 ~ 255], where 0 is completely transparent a…
941 * \retval TVG_RESULT_INVALID_ARGUMENT In case a @c nullptr is passed as the argument.
947 * \brief Duplicates the given Tvg_Paint object.
949 * Creates a new object and sets its all properties as in the original object.
951 * \param[in] paint The Tvg_Paint object to be copied.
959 * \brief Gets the axis-aligned bounding box of the Tvg_Paint object.
961 * \param[in] paint The Tvg_Paint object of which to get the bounds.
962 * \param[out] x The x-coordinate of the upper-left corner of the object.
963 * \param[out] y The y-coordinate of the upper-left corner of the object.
964 * \param[out] w The width of the object.
965 * \param[out] h The height of the object.
966 * \param[in] transformed If @c true, the paint's transformations are taken into account in the scen…
971 * \note This is useful when you need to figure out the bounding box of the paint in the canvas spac…
972 * \note The bounding box doesn't indicate the actual drawing region. It's the smallest rectangle th…
973 * \note If @p transformed is @c true, the paint needs to be pushed into a canvas and updated before…
980 * \brief Sets the composition target object and the composition method.
982 * \param[in] paint The source object of the composition.
983 * \param[in] target The target object of the composition.
984 * \param[in] method The method used to composite the source object with the target.
987 * \retval TVG_RESULT_INVALID_ARGUMENT An invalid @p paint or @p target object or the @p method equa…
993 * \brief Gets the composition target object and the composition method.
995 * \param[in] paint The source object of the composition.
996 * \param[out] target The target object of the composition.
997 * \param[out] method The method used to composite the source object with the target.
1000 * \retval TVG_RESULT_INVALID_ARGUMENT A @c nullptr is passed as the argument.
1006 * \brief Clip the drawing region of the paint object.
1008 * This function restricts the drawing area of the paint object to the specified shape's paths.
1010 * \param[in] paint The target object of the clipping.
1011 * \param[in] clipper The shape object as the clipper.
1014 * \retval TVG_RESULT_INVALID_ARGUMENT In case a @c nullptr is passed as the argument.
1015 * \retval TVG_RESULT_NOT_SUPPORTED If the @p clipper type is not Shape.
1023 * \brief Gets the unique value of the paint instance indicating the instance type.
1025 * \param[in] paint The Tvg_Paint object of which to get the type value.
1026 * \param[out] type The unique type of the paint instance type.
1029 * \retval TVG_RESULT_INVALID_ARGUMENT In case a @c nullptr is passed as the argument.
1043 * @brief Sets the blending method for the paint object.
1045 …* The blending feature allows you to combine colors to create visually appealing effects, includin…
1046 …* its process involves the combination of colors or images from the source paint object with the d…
1047 …* The blending operation is determined by the chosen @p BlendMethod, which specifies how the color…
1049 * \param[in] paint The Tvg_Paint object of which to set the blend method.
1050 * \param[in] method The blending method to be set.
1053 * \retval TVG_RESULT_INVALID_ARGUMENT In case a @c nullptr is passed as the argument.
1067 …ee major properties: shape outline, stroking, filling. The outline in the shape is retained as the
1071 * The stroke of a shape is an optional property in case the shape needs to be represented with/with…
1072 * It's efficient since the shape path and the stroking path can be shared with each other. It's als…
1089 * \brief Resets the shape path properties.
1091 * The color, the fill and the stroke properties are retained.
1093 * \param[in] paint A Tvg_Paint pointer to the shape object.
1098 * \note The memory, where the path data is stored, is not deallocated at this stage for caching eff…
1104 * \brief Sets the initial point of the sub-path.
1106 * The value of the current point is set to the given point.
1108 * \param[in] paint A Tvg_Paint pointer to the shape object.
1109 * \param[in] x The horizontal coordinate of the initial point of the sub-path.
1110 * \param[in] y The vertical coordinate of the initial point of the sub-path.
1119 * \brief Adds a new point to the sub-path, which results in drawing a line from the current point t…
1121 * The value of the current point is set to the given end-point.
1123 * \param[in] paint A Tvg_Paint pointer to the shape object.
1124 * \param[in] x The horizontal coordinate of the end-point of the line.
1125 * \param[in] y The vertical coordinate of the end-point of the line.
1130 * \note In case this is the first command in the path, it corresponds to the tvg_shape_move_to() ca…
1136 * \brief Adds new points to the sub-path, which results in drawing a cubic Bezier curve.
1138The Bezier curve starts at the current point and ends at the given end-point (@p x, @p y). Two con…
1139 * The value of the current point is set to the given end-point.
1141 * \param[in] paint A Tvg_Paint pointer to the shape object.
1142 * \param[in] cx1 The horizontal coordinate of the 1st control point.
1143 * \param[in] cy1 The vertical coordinate of the 1st control point.
1144 * \param[in] cx2 The horizontal coordinate of the 2nd control point.
1145 * \param[in] cy2 The vertical coordinate of the 2nd control point.
1146 * \param[in] x The horizontal coordinate of the endpoint of the curve.
1147 * \param[in] y The vertical coordinate of the endpoint of the curve.
1152 * \note In case this is the first command in the path, no data from the path are rendered.
1158 * \brief Closes the current sub-path by drawing a line from the current point to the initial point …
1160 * The value of the current point is set to the initial point of the closed sub-path.
1162 * \param[in] paint A Tvg_Paint pointer to the shape object.
1167 * \note In case the sub-path does not contain any points, this function has no effect.
1173 * \brief Appends a rectangle to the path.
1175 * The rectangle with rounded corners can be achieved by setting non-zero values to @p rx and @p ry …
1176 * The @p rx and @p ry values specify the radii of the ellipse defining the rounding of the corners.
1178 * The position of the rectangle is specified by the coordinates of its upper-left corner - @p x an…
1180 * The rectangle is treated as a new sub-path - it is not connected with the previous sub-path.
1182 * The value of the current point is set to (@p x + @p rx, @p y) - in case @p rx is greater
1183 * than @p w/2 the current point is set to (@p x + @p w/2, @p y)
1185 * \param[in] paint A Tvg_Paint pointer to the shape object.
1186 * \param[in] x The horizontal coordinate of the upper-left corner of the rectangle.
1187 * \param[in] y The vertical coordinate of the upper-left corner of the rectangle.
1188 * \param[in] w The width of the rectangle.
1189 * \param[in] h The height of the rectangle.
1190 * \param[in] rx The x-axis radius of the ellipse defining the rounded corners of the rectangle.
1191 * \param[in] ry The y-axis radius of the ellipse defining the rounded corners of the rectangle.
1196 …te For @p rx and @p ry greater than or equal to the half of @p w and the half of @p h, respectivel…
1202 * \brief Appends an ellipse to the path.
1204 * The position of the ellipse is specified by the coordinates of its center - @p cx and @p cy argum…
1206 * The ellipse is treated as a new sub-path - it is not connected with the previous sub-path.
1208 * The value of the current point is set to (@p cx, @p cy - @p ry).
1210 * \param[in] paint A Tvg_Paint pointer to the shape object.
1211 * \param[in] cx The horizontal coordinate of the center of the ellipse.
1212 * \param[in] cy The vertical coordinate of the center of the ellipse.
1213 * \param[in] rx The x-axis radius of the ellipse.
1214 * \param[in] ry The y-axis radius of the ellipse.
1223 * \brief Appends a circular arc to the path.
1225 * The arc is treated as a new sub-path - it is not connected with the previous sub-path.
1226 * The current point value is set to the end-point of the arc in case @p pie is @c false, and to the
1228 * \param[in] paint A Tvg_Paint pointer to the shape object.
1229 * \param[in] cx The horizontal coordinate of the center of the arc.
1230 * \param[in] cy The vertical coordinate of the center of the arc.
1231 * \param[in] radius The radius of the arc.
1232 * \param[in] startAngle The start angle of the arc given in degrees, measured counter-clockwise fro…
1233 * \param[in] sweep The central angle of the arc given in degrees, measured counter-clockwise from @…
1234 * \param[in] pie Specifies whether to draw radii from the arc's center to both of its end-point - d…
1245 * \brief Appends a given sub-path to the path.
1247 * The current point value is set to the last point from the sub-path.
1248 * For each command from the @p cmds array, an appropriate number of points in @p pts array should b…
1249the number of points in the @p pts array is different than the number required by the @p cmds arra…
1251 * \param[in] paint A Tvg_Paint pointer to the shape object.
1252 * \param[in] cmds The array of the commands in the sub-path.
1253 * \param[in] cmdCnt The length of the @p cmds array.
1254 * \param[in] pts The array of the two-dimensional points.
1255 * \param[in] ptsCnt The length of the @p pts array.
1258 * \retval TVG_RESULT_INVALID_ARGUMENT A @c nullptr passed as the argument or @p cmdCnt or @p ptsCnt…
1264 * \brief Gets the points values of the path.
1266 * The function does not allocate any data, it operates on internal memory. There is no need to free…
1275 * //TVG approximates a circle by four Bezier curves. In the example above the coords array stores t…
1278 * \param[in] paint A Tvg_Paint pointer to the shape object.
1279 * \param[out] pts The pointer to the array of the two-dimensional points from the path.
1280 * \param[out] cnt The length of the @p pts array.
1283 * \retval TVG_RESULT_INVALID_ARGUMENT A @c nullptr passed as the argument.
1289 * \brief Gets the commands data of the path.
1291 * The function does not allocate any data. There is no need to free the @p cmds array.
1300 …pproximates a circle by four Bezier curves. In the example above the cmds array stores the command…
1303 * \param[in] paint A Tvg_Paint pointer to the shape object.
1304 * \param[out] cmds The pointer to the array of the commands from the path.
1305 * \param[out] cnt The length of the @p cmds array.
1308 * \retval TVG_RESULT_INVALID_ARGUMENT A @c nullptr passed as the argument.
1314 * \brief Sets the stroke width for all of the figures from the @p paint.
1316 * \param[in] paint A Tvg_Paint pointer to the shape object.
1317 * \param[in] width The width of the stroke. The default value is 0.
1326 * \brief Gets the shape's stroke width.
1328 * \param[in] paint A Tvg_Paint pointer to the shape object.
1329 * \param[out] width The stroke width.
1338 * \brief Sets the shape's stroke color.
1340 * \param[in] paint A Tvg_Paint pointer to the shape object.
1341 * \param[in] r The red color channel value in the range [0 ~ 255]. The default value is 0.
1342 * \param[in] g The green color channel value in the range [0 ~ 255]. The default value is 0.
1343 * \param[in] b The blue color channel value in the range [0 ~ 255]. The default value is 0.
1344 * \param[in] a The alpha channel value in the range [0 ~ 255], where 0 is completely transparent an…
1355 * \brief Gets the shape's stroke color.
1357 * \param[in] paint A Tvg_Paint pointer to the shape object.
1358 * \param[out] r The red color channel value in the range [0 ~ 255]. The default value is 0.
1359 * \param[out] g The green color channel value in the range [0 ~ 255]. The default value is 0.
1360 * \param[out] b The blue color channel value in the range [0 ~ 255]. The default value is 0.
1361 * \param[out] a The alpha channel value in the range [0 ~ 255], where 0 is completely transparent a…
1371 * \brief Sets the linear gradient fill of the stroke for all of the figures from the path.
1373 * \param[in] paint A Tvg_Paint pointer to the shape object.
1374 * \param[in] grad The linear gradient fill.
1386 * \brief Sets the radial gradient fill of the stroke for all of the figures from the path.
1388 * \param[in] paint A Tvg_Paint pointer to the shape object.
1389 * \param[in] grad The radial gradient fill.
1401 * \brief Gets the gradient fill of the shape's stroke.
1403 * The function does not allocate any memory.
1405 * \param[in] paint A Tvg_Paint pointer to the shape object.
1406 * \param[out] grad The gradient fill.
1415 * \brief Sets the shape's stroke dash pattern.
1417 * \param[in] paint A Tvg_Paint pointer to the shape object.
1418 * \param[in] dashPattern The array of consecutive pair values of the dash length and the gap length.
1419 * \param[in] cnt The size of the @p dashPattern array.
1422 …pointer passed as an argument and @p cnt > 0, the given length of the array is less than two or an…
1424 * \note To reset the stroke dash pattern, pass @c nullptr to @p dashPattern and zero to @p cnt.
1430 * \brief Gets the dash pattern of the stroke.
1432 * The function does not allocate any memory.
1434 * \param[in] paint A Tvg_Paint pointer to the shape object.
1435 * \param[out] dashPattern The array of consecutive pair values of the dash length and the gap lengt…
1436 * \param[out] cnt The size of the @p dashPattern array.
1445 * \brief Sets the cap style used for stroking the path.
1447 * The cap style specifies the shape to be used at the end of the open stroked sub-paths.
1449 * \param[in] paint A Tvg_Paint pointer to the shape object.
1450 * \param[in] cap The cap style value. The default value is @c TVG_STROKE_CAP_SQUARE.
1459 * \brief Gets the stroke cap style used for stroking the path.
1461 * \param[in] paint A Tvg_Paint pointer to the shape object.
1462 * \param[out] cap The cap style value.
1471 * \brief Sets the join style for stroked path segments.
1473 * \param[in] paint A Tvg_Paint pointer to the shape object.
1474 * \param[in] join The join style value. The default value is @c TVG_STROKE_JOIN_BEVEL.
1483 * \brief The function gets the stroke join method
1485 * \param[in] paint A Tvg_Paint pointer to the shape object.
1486 * \param[out] join The join style value.
1495 * \brief Sets the stroke miterlimit.
1497 * \param[in] paint A Tvg_Paint pointer to the shape object.
1498 …[in] miterlimit The miterlimit imposes a limit on the extent of the stroke join when the @c TVG_ST…
1509 * \brief The function gets the stroke miterlimit.
1511 * \param[in] paint A Tvg_Paint pointer to the shape object.
1512 * \param[out] miterlimit The stroke miterlimit.
1523 * \brief Sets the trim of the stroke along the defined path segment, allowing control over which pa…
1525the values of the arguments @p begin and @p end exceed the 0-1 range, they are wrapped around in a…
1527 * \param[in] paint A Tvg_Paint pointer to the shape object.
1528 * \param[in] begin Specifies the start of the segment to display along the path.
1529 * \param[in] end Specifies the end of the segment to display along the path.
1531 * Otherwise, all paths are treated as a single entity with a combined length equal to the sum of th…
1542 * \brief Sets the shape's solid color.
1544 * The parts of the shape defined as inner are colored.
1546 * \param[in] paint A Tvg_Paint pointer to the shape object.
1547 * \param[in] r The red color channel value in the range [0 ~ 255]. The default value is 0.
1548 * \param[in] g The green color channel value in the range [0 ~ 255]. The default value is 0.
1549 * \param[in] b The blue color channel value in the range [0 ~ 255]. The default value is 0.
1550 * \param[in] a The alpha channel value in the range [0 ~ 255], where 0 is completely transparent an…
1562 * \brief Gets the shape's solid color.
1564 * \param[in] paint A Tvg_Paint pointer to the shape object.
1565 * \param[out] r The red color channel value in the range [0 ~ 255]. The default value is 0.
1566 * \param[out] g The green color channel value in the range [0 ~ 255]. The default value is 0.
1567 * \param[out] b The blue color channel value in the range [0 ~ 255]. The default value is 0.
1568 * \param[out] a The alpha channel value in the range [0 ~ 255], where 0 is completely transparent a…
1577 * \brief Sets the shape's fill rule.
1579 * \param[in] paint A Tvg_Paint pointer to the shape object.
1580 * \param[in] rule The fill rule value. The default value is @c TVG_FILL_RULE_WINDING.
1589 * \brief Gets the shape's fill rule.
1591 * \param[in] paint A Tvg_Paint pointer to the shape object.
1601 * \brief Sets the rendering order of the stroke and the fill.
1603 * \param[in] paint A Tvg_Paint pointer to the shape object.
1604 …m[in] strokeFirst If @c true the stroke is rendered before the fill, otherwise the stroke is rende…
1615 * \brief Sets the linear gradient fill for all of the figures from the path.
1617 * The parts of the shape defined as inner are filled.
1633 * \param[in] paint A Tvg_Paint pointer to the shape object.
1634 * \param[in] grad The linear gradient fill.
1647 * \brief Sets the radial gradient fill for all of the figures from the path.
1649 * The parts of the shape defined as inner are filled.
1665 * \param[in] paint A Tvg_Paint pointer to the shape object.
1666 * \param[in] grad The radial gradient fill.
1679 * \brief Gets the gradient fill of the shape.
1681 * The function does not allocate any data.
1683 * \param[in] paint A Tvg_Paint pointer to the shape object.
1684 * \param[out] grad The gradient fill.
1697 * \brief A module managing the gradient fill of objects.
1699 * The module enables to set and to get the gradient colors and their arrangement inside the gradien…
1700 * to specify the gradient bounds and the gradient behavior in case the area defined by the gradient…
1701 * is smaller than the area to be filled.
1754 * \brief Sets the linear gradient bounds.
1756 * The bounds of the linear gradient are defined as a surface constrained by two parallel lines cros…
1757 * the given points (@p x1, @p y1) and (@p x2, @p y2), respectively. Both lines are perpendicular to…
1760 * \param[in] grad The Tvg_Gradient object of which bounds are to be set.
1761 * @param[in] x1 The horizontal coordinate of the first point used to determine the gradient bounds.
1762 * @param[in] y1 The vertical coordinate of the first point used to determine the gradient bounds.
1763 * @param[in] x2 The horizontal coordinate of the second point used to determine the gradient bounds.
1764 * @param[in] y2 The vertical coordinate of the second point used to determine the gradient bounds.
1769 * \note In case the first and the second points are equal, an object is filled with a single color …
1776 * \brief Gets the linear gradient bounds.
1778 * The bounds of the linear gradient are defined as a surface constrained by two parallel lines cros…
1779 * the given points (@p x1, @p y1) and (@p x2, @p y2), respectively. Both lines are perpendicular to…
1782 * \param[in] grad The Tvg_Gradient object of which to get the bounds.
1783 * \param[out] x1 The horizontal coordinate of the first point used to determine the gradient bounds.
1784 * \param[out] y1 The vertical coordinate of the first point used to determine the gradient bounds.
1785 * \param[out] x2 The horizontal coordinate of the second point used to determine the gradient bound…
1786 * \param[out] y2 The vertical coordinate of the second point used to determine the gradient bounds.
1795 * \brief Sets the radial gradient bounds.
1797 * The radial gradient bounds are defined as a circle centered in a given point (@p cx, @p cy) of a …
1799 * \param[in] grad The Tvg_Gradient object of which bounds are to be set.
1800 * \param[in] cx The horizontal coordinate of the center of the bounding circle.
1801 * \param[in] cy The vertical coordinate of the center of the bounding circle.
1802 * \param[in] radius The radius of the bounding circle.
1805 * \retval TVG_RESULT_INVALID_ARGUMENT An invalid Tvg_Gradient pointer or the @p radius value less t…
1807 * \note In case the @p radius is zero, an object is filled with a single color using the last color…
1814 * \brief The function gets radial gradient center point ant radius
1816 * \param[in] grad The Tvg_Gradient object of which bounds are to be set.
1817 * \param[out] cx The horizontal coordinate of the center of the bounding circle.
1818 * \param[out] cy The vertical coordinate of the center of the bounding circle.
1819 * \param[out] radius The radius of the bounding circle.
1828 * \brief Sets the parameters of the colors of the gradient and their position.
1830 * \param[in] grad The Tvg_Gradient object of which the color information is to be set.
1832 * \param[in] cnt The size of the @p color_stop array equal to the colors number used in the gradien…
1841 * \brief Gets the parameters of the colors of the gradient, their position and number
1843 * The function does not allocate any memory.
1845 * \param[in] grad The Tvg_Gradient object of which to get the color information.
1847 * \param[out] cnt The size of the @p color_stop array equal to the colors number used in the gradie…
1850 * \retval TVG_RESULT_INVALID_ARGUMENT A @c nullptr passed as the argument.
1856 * \brief Sets the Tvg_Stroke_Fill value, which specifies how to fill the area outside the gradient …
1858 * \param[in] grad The Tvg_Gradient object.
1859 * \param[in] spread The FillSpread value.
1868 * \brief Gets the FillSpread value of the gradient object.
1870 * \param[in] grad The Tvg_Gradient object.
1871 * \param[out] spread The FillSpread value.
1874 * \retval TVG_RESULT_INVALID_ARGUMENT A @c nullptr passed as the argument.
1880 * \brief Sets the matrix of the affine transformation for the gradient object.
1882 * The augmented matrix of the transformation is expected to be given.
1884 * \param[in] grad The Tvg_Gradient object to be transformed.
1885 * \param[in] m The 3x3 augmented matrix.
1888 * \retval TVG_RESULT_INVALID_ARGUMENT A @c nullptr is passed as the argument.
1894 * \brief Gets the matrix of the affine transformation of the gradient object.
1896 * In case no transformation was applied, the identity matrix is set.
1898 * \param[in] grad The Tvg_Gradient object of which to get the transformation matrix.
1899 * \param[out] m The 3x3 augmented matrix.
1902 * \retval TVG_RESULT_INVALID_ARGUMENT A @c nullptr is passed as the argument.
1907 * \brief Gets the unique value of the gradient instance indicating the instance type.
1909 * \param[in] grad The Tvg_Gradient object of which to get the type value.
1910 * \param[out] type The unique type of the gradient instance type.
1913 * \retval TVG_RESULT_INVALID_ARGUMENT In case a @c nullptr is passed as the argument.
1927 * \brief Duplicates the given Tvg_Gradient object.
1929 * Creates a new object and sets its all properties as in the original object.
1931 * \param[in] grad The Tvg_Gradient object to be copied.
1939 * \brief Deletes the given gradient object.
1941 * \param[in] grad The gradient object to be deleted.
1955 * \brief A module enabling to create and to load an image in one of the supported formats: svg, png…
1975 * ThorVG efficiently caches the loaded data using the specified @p path as a key.
1976 * This means that loading the same file again will not result in duplicate operations;
1977 * instead, ThorVG will reuse the previously loaded picture data.
1979 * \param[in] paint A Tvg_Paint pointer to the picture object.
1980 * \param[in] path The absolute path to the image file.
1992 * ThorVG efficiently caches the loaded data using the specified @p data address as a key
1993 * when the @p copy has @c false. This means that loading the same data again will not result in dup…
1994 * for the sharable @p data. Instead, ThorVG will reuse the previously loaded picture data.
1996 * \param[in] paint A Tvg_Paint pointer to the picture object.
1997 * \param[in] data A pointer to a memory location where the content of the picture raw data is store…
1998 * \param[in] w The width of the image @p data in pixels.
1999 * \param[in] h The height of the image @p data in pixels.
2000 * \param[in] premultiplied If @c true, the given image data is alpha-premultiplied.
2001 * \param[in] copy If @c true the data are copied into the engine local buffer, otherwise they are n…
2004 * \retval TVG_RESULT_INVALID_ARGUMENT An invalid Tvg_Paint pointer or no data are provided or the @…
2015 * ThorVG efficiently caches the loaded data using the specified @p data address as a key
2016 * when the @p copy has @c false. This means that loading the same data again will not result in dup…
2017 * for the sharable @p data. Instead, ThorVG will reuse the previously loaded picture data.
2019 * \param[in] paint A Tvg_Paint pointer to the picture object.
2020 * \param[in] data A pointer to a memory location where the content of the picture file is stored. A…
2021 * \param[in] size The size in bytes of the memory occupied by the @p data.
2022 …ttie", "png", etc. In case an empty string or an unknown type is provided, the loaders will be tri…
2023 * \param[in] copy If @c true the data are copied into the engine local buffer, otherwise they are n…
2026 * \retval TVG_RESULT_INVALID_ARGUMENT In case a @c nullptr is passed as the argument or the @p size…
2029 * \warning: It's the user responsibility to release the @p data memory if the @p copy is @c true.
2035 * \brief Resizes the picture content to the given width and height.
2037 * The picture content is resized while keeping the default size aspect ratio.
2038 * The scaling factor is established for each of dimensions and the smaller value is applied to both…
2040 * \param[in] paint A Tvg_Paint pointer to the picture object.
2041 * \param[in] w A new width of the image in pixels.
2042 * \param[in] h A new height of the image in pixels.
2051 * \brief Gets the size of the loaded picture.
2053 * \param[in] paint A Tvg_Paint pointer to the picture object.
2054 * \param[out] w A width of the image in pixels.
2055 * \param[out] h A height of the image in pixels.
2064 * \brief Retrieve a paint object from the Picture scene by its Unique ID.
2066 * This function searches for a paint object within the Picture scene that matches the provided @p i…
2068 * \param[in] paint A Tvg_Paint pointer to the picture object.
2069 * \param[in] id The Unique ID of the paint object.
2071 * \return A pointer to the paint object that matches the given identifier, or @c nullptr if no matc…
2084 * \brief A module managing the multiple paints as one group paint.
2087 * its children will be affected by the scene world.
2106 * \brief Sets the size of the container, where all the paints pushed into the scene are stored.
2108 * If the number of objects pushed into the scene is known in advance, calling the function
2109 * prevents multiple memory reallocation, thus improving the performance.
2111 * \param[in] scene A Tvg_Paint pointer to the scene object.
2112 * \param[in] size The number of objects for which the memory is to be reserved.
2122 * \brief Passes drawing elements to the scene using Tvg_Paint objects.
2124 * Only the paints pushed into the scene will be the drawn targets.
2125 * The paints are retained by the scene until the tvg_scene_clear() is called.
2126 * If you know the number of pushed objects in advance, please call tvg_scene_reserve().
2128 * \param[in] scene A Tvg_Paint pointer to the scene object.
2132 * \retval TVG_RESULT_INVALID_ARGUMENT A @c nullptr passed as the argument.
2134 * \note The rendering order of the paints is the same as the order as they were pushed. Consider so…
2142 * Tvg_Paint objects stored in the scene are released if @p free is set to @c true, otherwise the me…
2145 * \param[in] scene The scene object to be cleared.
2146 * \param[in] free If @c true the memory occupied by paints is deallocated, otherwise it is not.
2151 * \warning Please use the @p free argument only when you know how it works, otherwise it's not reco…
2182 * \brief Sets the font properties for the text.
2184 * This function allows you to define the font characteristics used for text rendering.
2185 * It sets the font name, size and optionally the style.
2187 * \param[in] paint A Tvg_Paint pointer to the text object.
2188 * \param[in] name The name of the font. This should correspond to a font available in the canvas.
2189 * \param[in] size The size of the font in points.
2190 * \param[in] style The style of the font. If empty, the default style is used. Currently only 'ital…
2193 * \retval TVG_RESULT_INVALID_ARGUMENT A \c nullptr passed as the \p paint argument.
2194 * \retval TVG_RESULT_INSUFFICIENT_CONDITION The specified \p name cannot be found.
2202 * \brief Assigns the given unicode text to be rendered.
2204 * This function sets the unicode text that will be displayed by the rendering system.
2205 * The text is set according to the specified UTF encoding method, which defaults to UTF-8.
2207 * \param[in] paint A Tvg_Paint pointer to the text object.
2208 * \param[in] text The multi-byte text encoded with utf8 string to be rendered.
2211 * \retval TVG_RESULT_INVALID_ARGUMENT A \c nullptr passed as the \p paint argument.
2219 * \brief Sets the text solid color.
2221 * \param[in] paint A Tvg_Paint pointer to the text object.
2222 * \param[in] r The red color channel value in the range [0 ~ 255]. The default value is 0.
2223 * \param[in] g The green color channel value in the range [0 ~ 255]. The default value is 0.
2224 * \param[in] b The blue color channel value in the range [0 ~ 255]. The default value is 0.
2227 * \retval TVG_RESULT_INVALID_ARGUMENT A \c nullptr passed as the \p paint argument.
2238 * \brief Sets the gradient fill for the text.
2240 * \param[in] paint A Tvg_Paint pointer to the text object.
2241 * \param[in] grad The linear or radial gradient fill
2244 * \retval TVG_RESULT_INVALID_ARGUMENT A \c nullptr passed as the \p paint argument.
2257 * ThorVG efficiently caches the loaded data using the specified \p path as a key.
2258 * This means that loading the same file again will not result in duplicate operations;
2259 * instead, ThorVG will reuse the previously loaded font data.
2261 * \param[in] path The path to the font file.
2277 * ThorVG efficiently caches the loaded font data using the specified \p name as a key.
2278 * This means that loading the same fonts again will not result in duplicate operations.
2279 * Instead, ThorVG will reuse the previously loaded font data.
2281 * \param[in] name The name under which the font will be stored and accessible (e.x. in a \p tvg_tex…
2282 * \param[in] data A pointer to a memory location where the content of the font data is stored.
2283 * \param[in] size The size in bytes of the memory occupied by the @p data.
2284 …extension of font data. In case a \c NULL or an empty "" value is provided the loader will be dete…
2285 * \param[in] copy If @c true the data are copied into the engine local buffer, otherwise they are n…
2290 * \retval TVG_RESULT_INSUFFICIENT_CONDITION When trying to unload the font data that has not been p…
2292 * \warning: It's the user responsibility to release the \p data memory.
2294 * \note To unload the font data loaded using this API, pass the proper \p name and \c nullptr as \p…
2302 * \brief Unloads the specified scalable font data that was previously loaded.
2306 * \param[in] path The path to the loaded font file.
2309 * \retval TVG_RESULT_INSUFFICIENT_CONDITION The loader is not initialized.
2311 * \note If the font data is currently in use, it will not be immediately unloaded.
2326 * The module enables to save the composed scene and/or image from a paint object.
2327 * Once it's successfully exported to a file, it can be recreated using the Picture module.
2344 * \brief Exports the given @p paint data to the given @p path
2346 * If the saver module supports any compression mechanism, it will optimize the data size.
2347 * This might affect the encoding/decoding time in some cases. You can turn off the compression
2350 * \param[in] saver The Tvg_Saver object connected with the saving task.
2351 * \param[in] paint The paint to be saved with all its associated properties.
2352 * \param[in] path A path to the file, in which the paint data is to be saved.
2356 * \retval TVG_RESULT_INVALID_ARGUMENT A @c nullptr passed as the argument.
2361 * \note Saving can be asynchronous if the assigned thread number is greater than zero. To guarantee…
2368 * \brief Guarantees that the saving task is finished.
2370 * The behavior of the Saver module works on a sync/async basis, depending on the threading setting …
2371 … to have a benefit of it, you must call tvg_saver_sync() after the tvg_saver_save() in the proper …
2374 * \param[in] saver The Tvg_Saver object connected with the saving task.
2377 * \retval TVG_RESULT_INVALID_ARGUMENT A @c nullptr passed as the argument.
2380 * \note The asynchronous tasking is dependent on the Saver module implementation.
2387 * \brief Deletes the given Tvg_Saver object.
2389 * \param[in] saver The Tvg_Saver object to be deleted.
2404 * The module supports the display and control of animation frames.
2424 * \brief Specifies the current frame in the animation.
2426 * \param[in] animation A Tvg_Animation pointer to the animation object.
2427 * \param[in] no The index of the animation frame to be displayed. The index should be less than the
2431 * \retval TVG_RESULT_INSUFFICIENT_CONDITION if the given @p no is the same as the current frame val…
2432 * \retval TVG_RESULT_NOT_SUPPORTED The picture data does not support animations.
2434 * \note For efficiency, ThorVG ignores updates to the new frame value if the difference from the cu…
2436 * Values less than 0.001 may be disregarded and may not be accurately retained by the Animati…
2447 * This function provides access to the picture instance that can be used to load animation formats,…
2448 * After setting up the picture, it can be pushed to the designated canvas, enabling control over an…
2451 * \param[in] animation A Tvg_Animation pointer to the animation object.
2455 * \warning The picture instance is owned by Animation. It should not be deleted manually.
2463 * \brief Retrieves the current frame number of the animation.
2465 * \param[in] animation A Tvg_Animation pointer to the animation object.
2466 * \param[in] no The current frame number of the animation, between 0 and totalFrame() - 1.
2480 * \brief Retrieves the total number of frames in the animation.
2482 * \param[in] animation A Tvg_Animation pointer to the animation object.
2483 * \param[in] cnt The total number of frames in the animation.
2489 * \note If the Picture is not properly configured, this function will return 0.
2497 * \brief Retrieves the duration of the animation in seconds.
2499 * \param[in] animation A Tvg_Animation pointer to the animation object.
2500 * \param[in] duration The duration of the animation in seconds.
2505 * \note If the Picture is not properly configured, this function will return 0.
2513 * \brief Specifies the playback segment of the animation.
2515 * \param[in] animation The Tvg_Animation pointer to the animation object.
2520 * \retval TVG_RESULT_INSUFFICIENT_CONDITION In case the animation is not loaded.
2521 * \retval TVG_RESULT_INVALID_ARGUMENT When the given parameters are out of range.
2529 * \brief Gets the current segment.
2531 * \param[in] animation The Tvg_Animation pointer to the animation object.
2536 * \retval TVG_RESULT_INSUFFICIENT_CONDITION In case the animation is not loaded.
2537 * \retval TVG_RESULT_INVALID_ARGUMENT When the given parameters are @c nullptr.
2545 * \brief Deletes the given Tvg_Animation object.
2547 * \param[in] animation The Tvg_Animation object to be deleted.
2562 * \brief A module for manipulation of the scene tree
2564 * This module helps to control the scene tree.
2575 * This function computes a unique identifier value based on the provided string.
2576 * You can use this to assign a unique ID to the Paint object.
2578 * \param[in] name The input string to generate the unique identifier from.
2580 * \return The generated unique identifier value.
2594 * The module enables control of advanced Lottie features.
2613 * \brief Override the lottie properties through the slot data.
2615 * \param[in] animation The Tvg_Animation object to override the property with the slot.
2616 * \param[in] slot The Lottie slot data in json, or @c nullptr to reset.
2619 * \retval TVG_RESULT_INSUFFICIENT_CONDITION In case the animation is not loaded.
2620 * \retval TVG_RESULT_INVALID_ARGUMENT When the given @p slot is invalid
2621 * \retval TVG_RESULT_NOT_SUPPORTED The Lottie Animation is not supported.
2631 * \param[in] animation The Tvg_Animation pointer to the Lottie animation object.
2632 * \param[in] marker The name of the segment marker.
2635 * \retval TVG_RESULT_INSUFFICIENT_CONDITION In case the animation is not loaded.
2636 * \retval TVG_RESULT_INVALID_ARGUMENT When the given @p marker is invalid.
2637 * \retval TVG_RESULT_NOT_SUPPORTED The Lottie Animation is not supported.
2645 * \brief Gets the marker count of the animation.
2647 * \param[in] animation The Tvg_Animation pointer to the Lottie animation object.
2648 * \param[out] cnt The count value of the markers.
2651 * \retval TVG_RESULT_INVALID_ARGUMENT In case a @c nullptr is passed as the argument.
2659 * \brief Gets the marker name by a given index.
2661 * \param[in] animation The Tvg_Animation pointer to the Lottie animation object.
2662 * \param[in] idx The index of the animation marker, starts from 0.
2663 * \param[out] name The name of marker when succeed.
2666 * \retval TVG_RESULT_INVALID_ARGUMENT In case @c nullptr is passed as the argument or @c idx is out…