Releases: thorvg/thorvg
ThorVG v0.15.12
This release includes several improvements and minor bug fixes:
- [Renderer] Improved thread safety during font loading. (#3306)
- [Renderer] Fixed a crash caused by extremely small stroke dash sizes. (#3332)
- [SwEngine] Resolved a crash due to out-of-bounds image access.(#3327)
- [GlEngine] Corrected the Luma Masking equation. (#3045)
- [Lottie] Added support for wiggle effect. (#1640)
- [Lottie] Improved the safety and compatibility.
- [Ttf] Improved thread safety. (#3165)
- [Svg] Added support for embedded fonts. (#1897)
Full Changelog: v0.15.11...v0.15.12
ThorVG 1.0.0-pre18
In preparation for the ThorVG 1.0.0 release, we are conducting a pre-release for ThorVG v1.0. Please carefully review the release notes, as there may be API/ABI breaks included. Also, this release includes several improvements and minor bug fixes since v1.0.0-pre17.
- [Renderer] Improved thread safety during font loading. #3306
- [Renderer] Fixed a crash caused by extremely small stroke dash sizes. #3332
- [SwEngine] Resolved a crash due to out-of-bounds image access. #3327
- [GlEngine] Corrected the Luma Masking equation. #3045
- [Lottie] Added experimental support for Interactive Lottie Expressions.
- [Lottie] Added support for Text Document Expressions. #3303
- [Lottie] Enhanced feature coverage and fixed several regression bugs from recent updates.
- [Web] Fixed broken build environments for both SW and GL backends. #3356
- [API Additions]
//C++ APIs (Experimental Ver.)
Result LottieAnimation::assign(const char* layer, uint32_t ix, const char* var, float val);
//C APIs (Experimental Ver.)
Tvg_Result tvg_lottie_animation_assign(Tvg_Animation* animation, const char* layer, uint32_t ix, const char* var, float val);
Tvg_Accessor* tvg_accessor_new();
Tvg_Result tvg_accessor_del(Tvg_Accessor* accessor);
Tvg_Result tvg_accessor_set(Tvg_Accessor* accessor, Tvg_Paint* paint, bool (*func)(Tvg_Paint* paint, void* data), void* data);
Full Changelog: v1.0-pre17...v1.0-pre18
ThorVG 1.0.0-pre17
In preparation for the ThorVG 1.0.0 release, we are conducting a pre-release for ThorVG v1.0. Please carefully review the release notes, as there may be API/ABI breaks included. Also, this release includes several improvements and minor bug fixes since v1.0.0-pre16.
- [Renderer] Added APIs to query a paint's parent.
- [Renderer] Revised the
AABBbounding box calculation to apply only to transformed shapes. - [SwEngine] Fixed incorrect
RLEcell positioning that caused rendering artifacts. #2657 - [WgEngine] Fixed a crash occurring in a clipping corner case. #3289
- [Lottie] Added support for
Text Follow Path. #2888 - [Lottie] Improved handling of carriage returns with local fonts. #3310
- [Lottie] Enhanced
Slotsfor better expression overriding. #3168 - [Lottie] Fixed minor memory leaks in the
Slotfeature. - [SVG] Fixed incorrect assignment of
<stop>elements. #3321 - [SVG] Added support for embedded fonts. #1897
- [Portability] Ensured compatibility with
C++20builds. - [Portability] Improved
WASMbuild portability by addressing thread dependency issues. - [Portability] Used the default constructor for Array to ensure compatibility with
wasm-bindgencompilation. - [C++ API Addition]
const Paint* Paint::parent() const
- [C API Addition]
const Tvg_Paint* tvg_paint_get_parent(const Tvg_Paint* paint)
- [C API Modification]
Tvg_Result tvg_paint_set_clip(Tvg_Paint* paint, Tvg_Paint* clipper)
-> Tvg_Result tvg_paint_clip(Tvg_Paint* paint, Tvg_Paint* clipper)
Full Changelog: v1.0-pre16...v1.0-pre17
ThorVG v0.15.11
This release includes several improvements and minor bug fixes:
- [Renderer] Fix potential memory leaks in font handling.
- [SwEngine] Fix potential crash when using empty clips.
- [SwEngine] Fix incorrect rle cell position causing rendering artifacts. #2657
- [SwEngine] Fix an issue with drop shadow rendering. #3146
- [SwEngine] Improve shape updates - fix disappearing stroke for updated fills. #3237
- [GlEngine/SwEngine] Fix color burn/dodge edge cases.
- [GlEngine] Enhance dashed stroke quality. #2729, #3222, #3231
- [GlEngine] Add offset support in dashed strokes. #3217, #3223, #3191
- [Lottie] Enhance dashed stroke support – any number of gaps/dashes is now supported. #3191
- [Lottie] Add basic support for embedded font data. #3184
- [Lottie] Add support for expression overriding. #3168
- [Lottie] Fix potential memory leak in slots.
- [Svg] Fix incorrect gradient element assignment. godotengine/godot#102005 (comment)
- [Ttf] Enhance fonts rendering quality – properly handle contours starting from a point outside the shape. #3268
Full Changelog: v0.15.10...v0.15.11
ThorVG 1.0.0-pre16
In preparation for the ThorVG 1.0.0 release, we are conducting a pre-release for ThorVG v1.0. Please carefully review the release notes, as there may be API/ABI breaks included. Also, this release includes several improvements and minor bug fixes since v1.0.0-pre15.
- [Renderer] Enhanced bounding box accuracy for Bézier curves.
- [Renderer] Added support for object-oriented bounding boxes. #3290
- [Renderer] Corrected an issue with fast-track stroke clipping behavior.
- [Renderer] Fixed a font caching lookup failure.
- [WgEngine] Added support for stroke clipping. #3063
- [WgEngine] Resolved memory leaks at scene effects. #3292
- [GlEngine] Added support for stroke clipping. #3063
- [Lottie] Properly addressed the justification (horizontal alignment) in the origin font text. #3266
- [Lottie] Resolved a minor memory leak in slot overriding.
- [C++ API] Revision:
Result Paint::bounds(float* x, float* y, float* w, float* h, bool transform = false) const
-> Result Paint::bounds(float* x, float* y, float* w, float* h) const
-> Result Paint::bounds(Point* pt4) const
- [C API] Revision:
Tvg_Result tvg_paint_get_bounds(const Tvg_Paint* paint, float* x, float* y, float* w, float* h, bool transformed);
-> Tvg_Result tvg_paint_get_aabb(const Tvg_Paint* paint, float* x, float* y, float* w, float* h);
-> Tvg_Result tvg_paint_get_obb(const Tvg_Paint* paint, Tvg_Point* pt4);
Full Changelog: v1.0-pre15...v1.0-pre16
ThorVG 1.0.0-pre15
In preparation for the ThorVG 1.0.0 release, we are conducting a pre-release for ThorVG v1.0. Please carefully review the release notes, as there may be API/ABI breaks included. Also, this release includes several improvements and minor bug fixes since v1.0.0-pre14.
- [Renderer] Added support for Trim Path for shape filling. #3118
- [WgEngine] Improved stroke dash rendering accuracy. #3265
- [WgEngine] Added support for
Drop Shadowpost-processing effect. #3054 - [WgEngine] Added support for color replacement post-processing effects (
Fill,Tint,Tritone). #3054 - [GlEngine] Fixed an incorrect line join issue in dashed strokes. #3231
- [Lottie] Fixed an incorrect evaluation result check for Expressions undefined conditions.
- [Lottie] Enhanced Trim Path support for shape filling. #3118
- [Lottie] Improved rendering performance by
~7%with a more precise culling mechanism. - [Lottie] Added support for the
.lotfile extension and thelottie+jsonMIME type. #3248 - [TTF] Fixed incorrect rendering by properly handling contours starting with
OFF_CURVEpoints. #3268 - [Web] Optimized default font data size by
40%usingLZSScompression. - [C++ API] Modifications:
Result Shape::strokeTrim(float begin, float end, bool simultaneous = true)
-> Result Shape::trimpath(float begin, float end, bool simultaneous = true)
- [C API] Modifications:
Tvg_Result tvg_shape_set_stroke_trim(Tvg_Paint* paint, float begin, float end, bool simultaneous)
-> Tvg_Result tvg_shape_set_trimpath(Tvg_Paint* paint, float begin, float end, bool simultaneous)
Please note that, according to the official IANA announcement, the allowed MIME type for ThorVG's picture data load APIs has been changed from lottie to lot or lottie+json. Please ensure that you use the updated MIME type name when loading Lottie data.
Full Changelog: v1.0-pre14...v1.0-pre15
ThorVG 1.0.0-pre14
In preparation for the ThorVG 1.0.0 release, we are conducting a pre-release for ThorVG v1.0. Please carefully review the release notes, as there may be API/ABI breaks included. Also, this release includes several improvements and minor bug fixes since v1.0.0-pre13.
- [Renderer] Introduced customizable designated memory allocators. (#2652)
- [Renderer] Enabled text rendering for unnamed fonts using a fallback mechanism.
- [Renderer] Fixed potential memory leaks in font handling.
- [SwEngine] Fixed an issue where stroke updates were being omitted. (#3237)
- [WgEngine] Corrected dash offset behavior for an odd number of dash/gap segments.
- [WgEngine] Introduced a vertex/index buffer pool, reducing memory usage by
14%and improving FPS by5%. (#3159) - [WgEngine] Improved shape-closing precision. (#3235)
- [WgEngine] Fixed an issue where stroke updates were being omitted in rendering.
- [GlEngine] Enhanced stroke dash drawing quality. (#2729) (#3222)
- [GlEngine] Properly supported dash drawing offset property. (#3223) (#3191)
- [GlEngine] Improved shape-closing precision. (#3235)
- [Lottie] Enabled embedded font data for basic text rendering. (#3184)
- [Lottie] Added support for local system font rendering using a default font fallback mechanism.
- [SVG] Added support for local system font rendering using a default font fallback mechanism.
- [Web] Optimized WebAssembly (WASM) binary size by applying
-Oz, reducing the binary by120KB. - [Web] Applied
DM Sansas the default font to enhance Lottie/SVG web compatibility.
Full Changelog: v1.0-pre13...v1.0-pre14
ThorVG 1.0.0-pre13
In preparation for the ThorVG 1.0.0 release, we are conducting a pre-release for ThorVG v1.0. Please carefully review the release notes, as there may be API/ABI breaks included. Also, this release includes several improvements and minor bug fixes since v1.0.0-pre12.
- [Renderer] Fixed several edge cases in
TrimPaththat previously caused incorrect rendering results. #3053 #3192 - [Renderer] Added support for path direction in Shape
RectandCircledrawing. #3179 - [SwEngine] Fixed an issue where
DropShadowwas broken when the canvas width and height were different. #3146 - [WgEngine] Improved
Gaussian Blurperformance by up to 25%. - [WgEngine] Corrected rendering of odd numbers of dashes/gaps in stroke patterns. #3205
- [Lottie] Enhanced dash stroke support, now allowing multiple dash/gap values. #3191
- [Lottie] Fixed minor memory leaks.
- [C++ API] Modifications:
Result Shape::appendRect(float x, float y, float w, float h, float rx = 0, float ry = 0)
-> Result Shape::appendRect(float x, float y, float w, float h, float rx = 0, float ry = 0, bool cw = true)
Result Shape::appendCircle(float cx, float cy, float rx, float ry)
-> Result Shape::appendCircle(float cx, float cy, float rx, float ry, bool cw = true)
- [C++ API] Removals:
Tvg_Result tvg_swcanvas_set_mempool(Tvg_Canvas* canvas, Tvg_Mempool_Policy policy)
enum Tvg_Mempool_Policy
- [C API] Modifications:
TVG_API Tvg_Result tvg_shape_append_circle(Tvg_Paint* paint, float cx, float cy, float rx, float ry)
-> TVG_API Tvg_Result tvg_shape_append_circle(Tvg_Paint* paint, float cx, float cy, float rx, float ry, bool cw)
Tvg_Result tvg_shape_append_rect(Tvg_Paint* paint, float x, float y, float w, float h, float rx, float ry)
-> Tvg_Result tvg_shape_append_rect(Tvg_Paint* paint, float x, float y, float w, float h, float rx, float ry, bool cw)
- [C API] Removals:
Tvg_Result tvg_swcanvas_set_mempool(Tvg_Canvas* canvas, Tvg_Mempool_Policy policy)
enum Tvg_Mempool_Policy
Full Changelog: v1.0-pre12...v1.0-pre13
ThorVG 1.0.0-pre12
In preparation for the ThorVG 1.0.0 release, we are conducting a pre-release for ThorVG v1.0. Please carefully review the release notes, as there may be API/ABI breaks included. Also, this release includes several improvements and minor bug fixes since v1.0.0-pre11.
- [WgEngine] Fixed a potential crash caused by exceeding stack memory limits.
- [WgEngine] Added support for the
GaussianBlurscene effect. #3054 - [Lottie] Improved effect parsing logic to prevent failures in edge cases.
- [Lottie] Enabled support for expressions in text properties.
- [Lottie] A minor optimization for internal path generations with a buffer pooling mechanism.
- [Lottie] Added support for the frame
Tweeningfeature (Experimental ver). - [Renderer] Corrected clipping inaccuracies caused by floating-point rounding in viewport calculations.
- [Renderer] Added exception handling for
ColorBurnandColorDodgeblend modes to prevent division by zero errors across render backends. - [Renderer] Improved path trimming across render backends. #2854
Full Changelog: v1.0-pre11...v1.0-pre12
ThorVG v0.15.10
This release includes several improvements and minor bug fixes:
- [Renderer] Improved scalability of effects, ensuring proper scaling for blur and drop shadow effects.
- [SwEngine] Fine-tuned blur performance with a 12% improvement.
- [GlEngine] Added proper support for Shape::strokeOrder()
- [Lottie] Improved safety in handling expressions.
- [Lottie] Revised the effect parsing logic to prevent failures in corner cases.
- [Portability] Added
cstdintheader properly for resolving the GCC15 build error. godotengine/godot#102022 (comment)
Full Changelog: v0.15.9...v0.15.10