+
Skip to content

Releases: thorvg/thorvg

ThorVG 1.0.0-pre23

03 Jul 15:11
Compare
Choose a tag to compare
ThorVG 1.0.0-pre23 Pre-release
Pre-release

In this release, the partial rendering feature has been added. Since this includes a major internal change along with the new functionality, a dedicated build option is provided to enable or disable it. Please check Additional Notes.

🔧 Renderer & Engines

  • [renderer] Refined condition checks to better determine when to bypass picture composition acceleration.
  • [renderer] Revised paint render update flags for more accurate conditional rendering.
  • [renderer] Enhanced dash pattern handling with support for zero-size dashes. #3205
  • [renderer] Improved radial gradient handling to conform with SVG 1.1 and address edge cases.
  • [software] Fixed a potential memory violation when drawing images partially or entirely off-screen.
  • [software] Added partial rendering support. #1747
  • [software] Fixed an AVX/NEON regression caused by double RLE span increments. #3547
  • [software] Minor clipping performance improvements via faster region access.
  • [software] Adjusted blending operations to better match intended behavior. #3072
  • [wgpu] Skipped forced texture flushes, improving rendering performance by approximately 10%.
  • [gl/es] Fixed broken clipping behavior. #3448

🌀 Lottie

  • [lottie] Fixed missing offset corners when using miter joins.
  • [lottie] Ensured proper star/polygon closure to prevent artifacts from inaccurate point comparisons.
  • [lottie] Improved blending by adding group-level support. #1944
  • [lottie] Resolved excessive memory usage at the masking feature usage.

🧩 API/ABI Changes

  • C++ API
* Result Canvas::update(Paint* paint) 
  -> Result Canvas::update()
* uint8_t Paint::unref()
  -> uint16_t Paint::ref()
* uint8_t Paint::ref()
  -> uint16_t Paint::unref()
* uint8_t Paint::refCnt()
  -> uint16_t Paint::refCnt()
  • C API
- tvg_canvas_update_paint()
* uint8_t tvg_paint_ref(...)
  -> uint16_t tvg_paint_ref(...)
* uint8_t tvg_paint_unref(...)
  -> uint16_t tvg_paint_unref(...)
* uint8_t tvg_paint_get_ref(...)
  -> uint16_t tvg_paint_get_ref(...)

✅ Additional Notes

  • [infra] Switched to using Meson-provided build summaries.
  • [infra] Added -Dpartial={true/false} Meson option to toggle partial rendering support.
  • In this release, partial rendering has been applied only to the software engine. To use partial rendering, paint objects must be retained within the canvas, and the buffer clear operation should be skipped during the draw call Result Canvas::draw(bool clear = false).

Full Changelog: v1.0-pre22...v1.0-pre23

ThorVG 1.0.0-pre22

12 Jun 15:22
Compare
Choose a tag to compare
ThorVG 1.0.0-pre22 Pre-release
Pre-release

As we move closer to the ThorVG 1.0.0 milestone, this pre-release represents another significant step toward stabilization and refinement. Please review the release notes carefully, as this version includes behavior corrections, robustness improvements, and various internal fixes across multiple modules.

🔧 Renderer & Engines

  • [software] Improved stability by addressing a potential RLE clipping memory overflow issue.
  • [software] Fixed an issue where lines were missing when a picture was rotated 90 degrees. #3452
  • [software] Improved general texture mapping performance by up to ~15%.
  • [software] Revised texture clipping logic to correctly support shapes with inner corners. #3520
  • [gl/es] Fixed a memory leak triggered by target resizing. #3210
  • [gl/es] Corrected the Canvas buffer clear behavior to properly reflect user intent.
  • [wgpu] Achieved significant performance optimization by reducing internal context-switching overhead, and improving memory efficiency with the uniform stage buffers.

🌀 Lottie

  • [lottie] Fixed a bug in pre-composition masking behavior.
  • [lottie] Corrected an issue causing inaccurate opacity when using the Repeater property.
  • [lottie] Fixed a specification mismatch when a null layer was applied to layer masking.

🧩 API/ABI Changes

  • C++ API
+ Shape* Paint::clip()
* Result Paint::clip(Paint* clipper) 
  -> Result Paint::clip(Shape* clipper)
  • C API
+ Tvg_Paint* tvg_paint_get_clip(const Tvg_Paint* paint)
* Tvg_Result tvg_paint_clip(Tvg_Paint* paint, Tvg_Paint* clipper) 
  -> Tvg_Result tvg_paint_set_clip(Tvg_Paint* paint, Tvg_Paint* clipper);

✅ Additional Notes

  • Removed all Lena resources previously used in ThorVG. #3499

Full Changelog: v1.0-pre21...v1.0-pre22

ThorVG v0.15.13

24 May 05:36
Compare
Choose a tag to compare

This release includes several improvements and minor bug fixes:

🔧 Renderer & Engines

  • [renderer] Fixed an issue with clipping updates. #3403
  • [software] Fixed a memory allocation issue for spans that could potentially cause a buffer underrun. #3461

🌀 Lottie

  • Removed an undesired Text embedded option that was unintentionally included, simplifying configuration. thorvg/thorvg.swift#6
  • Correctly handle time remapping when the value is zero.
  • Resolved incorrect point generation for polygons with rounded corners. #2629
  • Fixed a parsing issue with separately defined transform coordinates.
  • Corrected improper overrides for Text RangeSelector fill color, stroke color, and stroke width.

🖼️ SVG

  • Fixed an issue where tags were incorrectly registered under closed gradient definitions. #3469
  • Fixed clipping issues involving and nodes. #3392

🌍 Portability

  • Clarified variable scopes to improve platform compatibility. godot#105093

✅ Additional Notes

  • Improved internal safety of the loaders

Full Changelog: v0.15.12...v0.15.13

ThorVG 1.0.0-pre21

22 May 14:47
Compare
Choose a tag to compare
ThorVG 1.0.0-pre21 Pre-release
Pre-release

As we move closer to the ThorVG 1.0.0 milestone, this pre-release marks another important step toward stabilization and refinement. Please review the release notes carefully, as this version includes behavior corrections, robustness improvements, and internal fixes across modules.

🔧 Renderer & Engines

  • [renderer] Improved internal safety across rendering engines.
  • [software] Fixed memory allocation issue for spans that could cause buffer underruns. #3461

🌀 Lottie

  • Added support for firstMargin < 0 in text-follow-path scenarios, improving compatibility with advanced text layouts.
  • Removed an undesired Text embedded option that was unintentionally included, simplifying configuration. thorvg/thorvg.swift#6
  • Correctly handle time remapping when the value is zero.
  • Resolved incorrect point generation for polygons with rounded corners. #2629

🖼️ SVG

  • Fixed an issue where tags were incorrectly registered under closed gradient definitions. #3469

Full Changelog: v1.0-pre20...v1.0-pre21

ThorVG 1.0.0-pre20

08 May 14:59
Compare
Choose a tag to compare
ThorVG 1.0.0-pre20 Pre-release
Pre-release

As we move closer to the ThorVG 1.0.0 milestone, this pre-release marks a critical step toward final stabilization. Please review these release notes carefully, as API/ABI changes are included. This version also brings numerous enhancements and bug fixes since v1.0.0-pre19.

🔧 Renderer & Engines

  • [renderer] Optimized internal memory layout for improved performance. #3214
  • [renderer] Fixed an issue with clipping updates. #3403
  • [software] Improved full-opaque color accuracy when handling PNG pre-multiplication.
  • [gl/es] Added support for DropShadow effects. #3054
  • [gl/es] Enabled dynamic linking support for OpenGL/OpenGL ES. #2453
  • [wgpu] Corrected DropShadow alpha premultiplication.
  • [wgpu] Updated compatibility with wgpu_native v22. #2909
  • [wgpu] Fixed an issue with target texture updates not applying correctly.

🌀 Lottie

  • Corrected incorrect Stroke Join values for Offset Path.
  • Properly handles delimiter (\3) in Lottie Text strings.
  • Fixed a parsing issue with separately defined transform coordinates.

🖼️ SVG

  • Fixed clipping issues involving <use> and <symbol> nodes. #3392

🌍 Portability

  • Clarified variable scopes to improve platform compatibility. godot#105093
  • Fixed compilation/linking issues related to LottieAnimation destructors in thorvg_lottie.h.

🧩 API/ABI Changes

C++ API

- Result Initializer::init(uint32_t threads, CanvasEngine engine)
+ Result Initializer::init(uint32_t threads)
- Result Initializer::term(CanvasEngine engine)
+ Result Initializer::term()

C API

- Tvg_Result tvg_engine_init(Tvg_Engine engine_method, unsigned threads)
+ Tvg_Result tvg_engine_init(unsigned threads);
- Tvg_Result tvg_engine_term(Tvg_Engine engine_method)
+ Tvg_Result tvg_engine_term()

+ Tvg_Mask_Method::TVG_MASK_METHOD_ADD
+ Tvg_Mask_Method::TVG_MASK_METHOD_SUBTRACT
+ Tvg_Mask_Method::TVG_MASK_METHOD_INTERSECT
+ Tvg_Mask_Method::TVG_MASK_METHOD_DIFFERENCE
+ Tvg_Mask_Method::TVG_MASK_METHOD_LIGHTEN
+ Tvg_Mask_Method::TVG_MASK_METHOD_DARKEN

🛠️ Infrastructure

ThorVG now supports dynamic OpenGL/OpenGL ES linking and changed our build configuration to specify the opengl variants explicitly by users. To use a specific GL variant during build:

# For OpenGL
meson setup build -Dengines="gl"

# For OpenGL ES
meson setup build -Dengines="gl" -Dextra="opengl_es"

✅ Additional Notes

Several minor bugs and regressions were also resolved as part of this release.

Full Changelog: v1.0-pre19...v1.0-pre20

ThorVG 1.0.0-pre19

10 Apr 13:28
Compare
Choose a tag to compare
ThorVG 1.0.0-pre19 Pre-release
Pre-release

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-pre18.

  • [Lottie] Added support for wiggle and temporalWiggle expressions. #1640
  • [Lottie] Fixed incorrect Stroke Join and Cap value assignments.
  • [Lottie] Corrected improper overrides for Text RangeSelector fill color, stroke color, and stroke width.
  • [Lottie] Introduced support for Custom Layer Effects. #3115
  • [Lottie] Resolved a regression issue affecting Inverse Matte handling during main development. #3375 #3380 #3381 #3382
  • [Lottie] Improved stability for Follow TextPath functionality.
  • [Renderer] Enhanced thread safety for better stability.
  • [Renderer] Fixed incorrect AABB (Axis-Aligned Bounding Box) calculations for transformed scenes.
  • [GlEngine] Added support for Gaussian Blur as a post-processing effect. #3054
  • [GlEngine] Added support for Fill, Tint, and Tritone post-processing effects. #3054

Please note that ThorVG renamed tool executables with the tvg prefix for preventing name collision. #3367

Full Changelog: v1.0-pre18...v1.0-pre19

ThorVG v0.15.12

03 Apr 23:29
Compare
Choose a tag to compare

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

27 Mar 16:52
Compare
Choose a tag to compare
ThorVG 1.0.0-pre18 Pre-release
Pre-release

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

20 Mar 14:29
Compare
Choose a tag to compare
ThorVG 1.0.0-pre17 Pre-release
Pre-release

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 AABB bounding box calculation to apply only to transformed shapes.
  • [SwEngine] Fixed incorrect RLE cell 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 Slots for better expression overriding. #3168
  • [Lottie] Fixed minor memory leaks in the Slot feature.
  • [SVG] Fixed incorrect assignment of <stop> elements. #3321
  • [SVG] Added support for embedded fonts. #1897
  • [Portability] Ensured compatibility with C++20 builds.
  • [Portability] Improved WASM build portability by addressing thread dependency issues.
  • [Portability] Used the default constructor for Array to ensure compatibility with wasm-bindgen compilation.
  • [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

12 Mar 20:44
Compare
Choose a tag to compare

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

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载