ThorVG
v0.5
|
An abstract class for drawing graphical elements. More...
Public Member Functions | |
Result | reserve (uint32_t n) noexcept |
Sets the size of the container, where all the paints pushed into the Canvas are stored. 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 |
Sets the total number of the paints pushed into the canvas to be zero. Depending on the value of the free argument, the paints are freed or not. More... | |
virtual Result | update (Paint *paint=nullptr) noexcept |
Request the canvas to update the paint objects. More... | |
virtual Result | draw () noexcept |
Request the canvas to draw the Paint objects. 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 |
Sets the total number of the paints pushed into the canvas to be zero. Depending on the value of the free
argument, the paints are freed or not.
[in] | free | If true , the memory occupied by paints is deallocated, otherwise it is not. |
free
argument only when you know how it works, otherwise it's not recommended.
|
virtualnoexcept |
Request the canvas to draw the Paint objects.
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(). If you know the number of the pushed objects in the advance, please call Canvas::reserve().
[in] | paint | A Paint object to be drawn. |
Result::Success | When succeed. |
Result::MemoryCorruption | In case a nullptr is passed as the argument. |
Result::InsufficientCondition | An internal error. |
|
noexcept |
Sets the size of the container, where all the paints pushed into the Canvas are stored.
If the number of objects pushed into the Canvas is known in advance, calling the function prevents multiple memory reallocation, thus improving the performance.
[in] | n | The number of objects for which the memory is to be reserved. |
|
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.
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 . |