Skip to content

Releases: thorvg/thorvg

ThorVG v0.3.2

02 Aug 07:12

Choose a tag to compare

This release contains the following bug fixes.

  • Prevent a Svg corruption by skipping parsing If the d attribute of SVG path is not parsed through.
  • Fix a broken visualization of SVG occured by the race condition on arc processing.
  • Preventing a double application of the opacity that occurred the incorrect color density.
  • Allow SVG to support both Clip Path and Masking
  • Allow SVG to handle defs tags without any corruption even if it's specified multiple times.

ThorVG v0.3.1

10 Jul 15:09

Choose a tag to compare

This release contains the following bug fixes.

  • Fix Svg memory leak when improper stop tag is used.
  • Fix Svg dead loop on non digit char in stroke dash array.
  • Fix Svg to set the higher priority of style attributes.
  • Fix Svg to support the percentage unit of the dash-array.
  • Fix Svg to properly recognize <defs> elements through a whole svg file.
  • Fix Svg to prevent gradient memory leak.
  • Fix Picture to return the proper image size from picture::size()
  • Fix Composition memory leak from the Sw raster engine.
  • Correct Linear Gradient to allow zero size linear
  • Correct Sw raster engine to interpolate opacity values between gradient stops.
  • Correct Sw raster engine to blend the gradient fill color using the correct range of alpha (256 -> 255).

ThorVG v0.3.0

03 Jul 03:20

Choose a tag to compare

After one month, we're pleased to release a new version of ThorVG!

In this release, we introduced Unit-Test Suites(using Catch2 Framework) for library robustness. Also we revised examples to satisfy the ThorVG coding standards. While collaborating with the Godot Engine team, we improved ThorVG compatibility issues with MSVC. Lastly, we improved the SVG loader to support wider SVG specs. Note that, though the TVG binary format Loader is newly introduced in this release, it's still an unstable feature.

Here list notes major enhancements & bug fixes since v0.2.0.

  • Fix the crash in SVG when viewbox attributes were not specified.
  • Fix wrong thread indexing of TaskScheduler.
  • Fix wrong gradient filling of svg if the gradient unit uses user space.
  • Fix a crash case of SwCanvas when the width and stride of its target buffer are not matched.
  • Fix to support the stroke gradient of SVG.
  • Fix Svg gradient to update take into account a stroke and a fill.
  • Fix SVG a crash when stroke-dasharray attribute is not none.
  • Fix SVG to parsing color correctly when format is "rgb(rrr, ggg, bbb)"
  • Fix Scene to return FailedAllocation if it really failed at memory allocation.
  • Fix Svg to support Radial Gradient Transformation.
  • Fix Svg xml parser to check end of string properly.
  • Fix SVG to prevent invalid heap-memory access & memory leak cases.
  • Fix SVG to parse ColorStop offset properly if different value numbers and percentages are applied.
  • Fix Svg to handle exceptional Colorstop values if its range is less than 0 or over 1.
  • Fix Scene a memory leak scenario after scene->clear(true).
  • Fix all compile errors from broken MSVC compatibilities.
  • Fix wrong Gradient calculations for REPEAT spread value in Sw Renderer.
  • Fix broken Composition rendering that occurs wrong opacity blending.
  • Fix Svg loader drop in the infinite loop when size has 'em' unit.
  • Fix Svg loader drop in the infinite loop when elements have circular dependency.
  • Fix Svg memory leak when a svg has multiple tags.
  • Fix Svg loader to calculate gradient value units by the global percentage.
  • Fix Svg Arc drawing bug in a corner case.
  • Return the false case properly for SwCanvas by handling exception cases more strictly.
  • Improve stability of the Canvas Engine for handling exception cases more strictly.
  • Improve SVG to support 'stroke-opacity', 'fill-opacity'
  • Improve Shape::stroke() to allow reset values. (See documentation)
  • More stabilized Svg2Png tool from memory violation.

Here is a new official APIs:

  • Result load(const char* data, uint32_t size, bool copy = false) noexcept;

Be aware that a few BETA APIs have been added.
Though some of them are working, we recommend you to avoid using them because they could be modified or removed in the next version.

  • Result Picture::Paint(std::unique_ptr paint) noexcept;
  • CompositeMethod Paint::composite(const Paint** target) const noexcept;
  • Tvg_Result tvg_picture_load_data(Tvg_Paint* paint, const char *data, uint32_t size);

Lastly, special thanks to dedicated contributors:

@hermet
@JSUYA
@mihashco
@mgrudzinska
@mmaciola
@fire
@qarmin

ThorVG v0.2.3

26 Jun 07:24

Choose a tag to compare

This release contains the following bug fixes.

  • Fix Svg to support Radial Gradient Transformation.
  • Fix Svg xml parser to check end of string properly.
  • Fix SVG to prevent invalid heap-memory access & memory leak cases.
  • Fix SVG to parse ColorStop offset properly if different value numbers and percentages are applied.
  • Fix Svg to handle exceptional Colorstop values if its range is less 0 or over 1.
  • Fix Scene a memory leak scenario after scene->clear(true).
  • Fix all compile errors from broken MSVC compatibilities.
  • Fix wrong Gradient calculations for REPEAT spread value in Sw Renderer.
  • More stabilize Svg2Png tool from memory violation.

ThorVG v0.2.2

20 Jun 03:58

Choose a tag to compare

This release contains the following bug fixes.

  • Fix Svg gradient to update take into account a stroke and a fill.
  • Fix SVG a crash when stroke-dasharray attribute is not none.
  • Fix SVG to parsing color correctly when format is "rgb(rrr, ggg, bbb)"
  • Fix Scene to return FailedAllocation if it really failed at memory allocation.

ThorVG v0.2.1

13 Jun 14:17

Choose a tag to compare

This release contains the following bug fixes.

  • Fix the crash in SVG when viewbox attributes were no specified.
  • Fix wrong thread indexing of TaskScheduler.
  • Return the false case properly for SwCanvas by handling exception cases more strictly.
  • Fix wrong gradient filling of svg if the gradient unit uses user space.
  • Fix a crash case of SwCanvas when the width and stride of its target buffer are not matched.
  • Fix to support the stroke gradient of SVG.
  • Improve stability of the Canvas Engine for handling exception cases more strictly.

ThorVG v0.2.0

06 Jun 08:58

Choose a tag to compare

After one month, we're pleased to release a new version of ThorVG!

This page notes major updates of the release since v0.1.0

  • Corrected & enhanced SVG Loader log messages.
  • Improved pixel color precision by enhanced alpha blending computation.
  • Fixed a potential memory leak after Canvas::clear().
  • Removed "const" syntax from Paint::composite() API which was wrongly appended.
  • Optimized sw raster engine.
  • Corrected Initializer:init() to return FailedAllocation properly when memory fails.
  • Fixed a crash at invalid arguments of gradient.
  • Fix an incorrect gradient masking that is not applied at a corner case.
  • Fix a wrong size of bounding box of scene when the scene is placed in the negative coordinates space.
  • Fix a tvg initializer reference counting unpaired problem when termination is called more than initialization.
  • Fix a Svg viewbox clipping issue when svg picture is transformed outside of the viewbox.
  • Fix a missing anti-aliasing issue when dash-stroke of shape is enabled.
  • Fix svg loader memory leak if svg style composition url is used.

Here are new official APIs:

  • Result Scene::clear(bool free = true) noexcept;

Be aware that a few BETA APIs have been added.
Though some of them are working, we recommend you to avoid using them because they could be modified or removed in the next version.

  • Result SwCanvas::mempool(MempoolPolicy policy) noexcept;
  • Matrix Paint::transform() noexcept;

Lastly, special thanks to dedicated contributors:

@hermet
@JSUYA
@mihashco
@mgrudzinska

ThorVG v0.1.2

29 May 03:32

Choose a tag to compare

This release contains the following bug fixes.

  • Fix an incorrect gradient masking that is not applied at a corner case.
  • Fix a wrong size of bounding box of scene when the scene is placed in the negative coordinates space.
  • Fix a tvg initializer reference counting unpaired problem when termination is called more than initialization.
  • Fix a Svg viewbox clipping issue when svg picture is transformed outside of the viewbox.
  • Fix a missing anti-aliasing issue when dash-stroke of shape is enabled.

ThorVG v0.1.1

17 May 08:36

Choose a tag to compare

This release contains the following bug fixes.

  • Fix svg loader memory leak if svg style composition url is used.

ThorVG v0.1.0

01 May 05:32

Choose a tag to compare

After developed ThorVG 1 year, we're pleased to release the first version of ThorVG!

ThorVG supports APIs under the standard c++ convention,
here are major features what ThorVG provides in this version.

Shapes: Line, Arc, Curve, Path
Filling: Solid, Linear, Radial Gradient
Scene Graph & Affine Transformation (translation, rotation, scale)
Stroking: Width, Join, Cap, Dash
Composition: Alpha Blending, Masking(Alpha/Inverse Alpha), Path Clipping
Pictures: SVG, PNG, RAW Bitmap
Canvas: decent SW rasterizer
Task Scheduler: Asynchronous tasking based on threading pool

Be aware that there are few BETA APIs, since they are still under the development.
Though some of them are working, we recommend you to avoid using them because they could be modified in the next version.

Here are the BETA APIs:

A whole set of ThorVG CAPIs
A whole set of GlCanvas
const uint32_t* Scene::data()
Result Scene::clear()
Result Picture::viewbox(float* x, float* y, float* w, float* h)
Result Picture::load(uint32_t* data, uint32_t w, uint32_t h, bool copy)

Lastly, special thanks to dedicated contributors:

@hermet
@JSUYA
@kimcinoo
@MathewP1
@mihashco
@mgrudzinska
@patrykka
@smohantty