This commit addresses an issue where paints lost their
composition context when drawings occurred without any updates.
Now, paints will consistently retain the composition context,
ensuring accurate rendering.
Issue: https://github.com/thorvg/thorvg/issues/2058
Previously, the logic was set to halt rendering when any part of the paints,
particularly bitmap-based images, failed to render.
This update modifies the behavior to continue drawing the scene,
allowing for the successful rendering of other elements.
issue: https://github.com/thorvg/thorvg/issues/1951
dispose of the resources at the end of the paint deletion.
This will help retain the resources of the retained paints
and reuse them after reconstructing the next scene.
Get rid of the polymorphism function table,
use the switch directly instead.
We profiled, both binary & performance is better than before.
Tested on a local machine (single thread):
- Lottie: 2ms improved
- Binary: -0.5kb
This correction ensures a consistent use of 'ref' and 'unref' for paints to release memory properly.
The memory leak occurred when a picture was not pushed to a valid canvas.
This issue was reported by the unit-test memory sanitizer.