ThorVG
v0.15
|
An abstract class for drawing graphical elements. More...
Public Member Functions | |
std::list< Paint * > & | paints () noexcept |
Returns the list of the paints that currently held by the Canvas. More... | |
virtual Result | push (std::unique_ptr< Paint > paint) noexcept |
Passes drawing elements to the Canvas using Paint objects. More... | |
virtual Result | clear (bool free=true) noexcept |
Clear the internal canvas resources that used for the drawing. More... | |
virtual Result | update (Paint *paint=nullptr) noexcept |
Request the canvas to update the paint objects. More... | |
virtual Result | draw () noexcept |
Requests the canvas to draw the Paint objects. More... | |
virtual Result | viewport (int32_t x, int32_t y, int32_t w, int32_t h) noexcept |
Sets the drawing region in the canvas. More... | |
virtual Result | sync () noexcept |
Guarantees that drawing task is finished. More... | |
An abstract class for drawing graphical elements.
A canvas is an entity responsible for drawing the target. It sets up the drawing engine and the buffer, which can be drawn on the screen. It also manages given Paint objects.
|
virtualnoexcept |
Clear the internal canvas resources that used for the drawing.
This API sets the total number of paints pushed into the canvas to zero. Depending on the value of the free
argument, the paints are either freed or retained. So if you need to update paint properties while maintaining the existing scene structure, you can set free
= false.
[in] | free | If true , the memory occupied by paints is deallocated, otherwise it is not. |
|
virtualnoexcept |
Requests the canvas to draw the Paint objects.
|
noexcept |
Returns the list of the paints that currently held by the Canvas.
This function provides the list of paint nodes, allowing users a direct opportunity to modify the scene tree.
Passes drawing elements to the Canvas using Paint objects.
Only pushed paints in the canvas will be drawing targets. They are retained by the canvas until you call Canvas::clear().
[in] | paint | A Paint object to be drawn. |
Result::MemoryCorruption | In case a nullptr is passed as the argument. |
|
virtualnoexcept |
Guarantees that drawing task is finished.
The Canvas rendering can be performed asynchronously. To make sure that rendering is finished, the sync() must be called after the draw() regardless of threading.
Result::InsufficientCondition | The canvas is either already in sync condition or in a damaged condition (a draw is required before syncing). |
Request the canvas to update the paint objects.
If a nullptr
is passed all paint objects retained by the Canvas are updated, otherwise only the paint to which the given paint
points.
[in] | paint | A pointer to the Paint object or nullptr . |
|
virtualnoexcept |
Sets the drawing region in the canvas.
This function defines the rectangular area of the canvas that will be used for drawing operations. The specified viewport is used to clip the rendering output to the boundaries of the rectangle.
[in] | x | The x-coordinate of the upper-left corner of the rectangle. |
[in] | y | The y-coordinate of the upper-left corner of the rectangle. |
[in] | w | The width of the rectangle. |
[in] | h | The height of the rectangle. |