ThorVG 1.0.0-pre27
Pre-release
Pre-release
The ThorVG canvas and text features have been significantly enhanced, with new support for text outlines, alignment, and picture origin.
Rendering engines (CPU, GL/ES, WGPU) have received performance and stability improvements, while Lottie support is now more robust with refactored slots and better expression handling.
๐ง Core
- Revised the ThorVG canvas interface for greater flexibility and improved efficiency. #3116
- Introduced support for rendering text outlines. #3397
- Added support for horizontal and vertical text alignment. #3397
- Enabled setting the origin point for picture elements. #1506
๐ Engines
- [cpu] Resolved performance regressions introduced in v1.0-pre26.
- [cpu] Improved memory efficiency when handling stroke and fill operations.
- [gl/es] Implemented comprehensive scene-level blending support, including HSL-based blend modes. #3072
- [wgpu] Addressed rendering issues where fill and stroke data were sometimes omitted. #3716
- [wgpu/gl/es] Enhanced bounding box calculations for stroked paths. #3725
โจLottie
- Simplified and standardized slot handling with reusable interfaces. #2591 #3099
- Corrected evaluation of the "value" property in Lottie expressions. #3693
- Various fixes to improve overall runtime stability.
๐ ๏ธ Portability
- Corrected directory path parsing issues that prevented Lottie resources from loading properly on MSYS2. #3542
๐งฉ API Updates
- C++ API
+ Result Text::outline(float width, uint8_t r, uint8_t g, uint8_t b)
+ Result Text::align(float x, float y)
+ Result Text::layout(float w, float h)
+ Result Picture::origin(float x, float y)
+ Result Picture::origin(float* x, float* y)
- C API
+ Tvg_Result tvg_text_set_outline(Tvg_Paint* paint, float width, uint8_t r, uint8_t g, uint8_t b)
+ Tvg_Result tvg_text_align(Tvg_Paint* paint, float x, float y)
+ Tvg_Result tvg_text_layout(Tvg_Paint* paint, float w, float h)
+ Tvg_Result tvg_picture_set_origin(Tvg_Paint* picture, float x, float y)
+ Tvg_Result tvg_picture_get_origin(Tvg_Paint* picture, float* x, float* y)
* Tvg_Result tvg_text_set_fill_color() -> Tvg_Result tvg_text_set_color()
โ Additional Notes
- PR #3695 This change may break backward compatibility in cases where stricter failure checks were previously expected or relied upon.
Full Changelog: v1.0-pre26...v1.0-pre27