Skip to content

Latest commit

 

History

History
278 lines (227 loc) · 9.15 KB

CHANGELOG.md

File metadata and controls

278 lines (227 loc) · 9.15 KB

Change Log

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

0.11.4 - 2024-02-04

Fixed

  • Path::compute_tight_bounds calculation. Thanks to @qbcbyb

0.11.3 - 2023-12-03

Added

  • Path::compute_tight_bounds

0.11.2 - 2023-10-01

Changed

  • MSRV bumped to stable, because of the flate2 crate.

Fixed

  • Transform::is_valid was treating 1/4096 as zero. We need a higher precision.
  • Build failure on AVX2 with --no-default-features. Thanks to @linkmauve

0.11.1 - 2023-06-17

Changed

  • MSRV bumped to 1.60, because of the log crate.

Fixed

  • LineJoin::MiterClip handling with small miter_limit. Thanks to @torokati44

0.11.0 - 2023-06-08

Added

Changed

  • Rect::inset and Rect::outset are no longer require a mutable self. Thanks to @wezm

0.10.0 - 2023-05-27

Added

  • PathBuilder::push_path
  • NonZeroRect
  • Size
  • Rect::transform
  • Rect::bbox_transform
  • Transform::from_bbox
  • Transform::is_valid
  • Transform::get_scale
  • Transform::pre_rotate
  • Transform::post_rotate
  • Transform::pre_rotate_at
  • Transform::post_rotate_at
  • Transform::map_point

Changed

  • ColorU8 and PremultipliedColorU8 are stored as [u8; 4] instead of u32. This fixes potential alignment issues and make the code easier to understand. Thanks to @e00E
  • PathBuilder::push_rect accepts Rect and not f32 numbers now.

Removed

  • tiny_skia_path::ScreenIntRect. It become private.
  • Path::is_empty. Path cannot be empty by design.

Removed

  • ColorU8::get and PremultipliedColorU8::get. Use the getters instead.

0.9.1 - 2023-05-17

Added

  • Reexport tiny_skia_path::PathStroker in tiny-skia.

0.9.0 - 2023-04-23

Added

  • Mask::from_vec
  • Mask::from_pixmap to convert Pixmap into Mask by extracting alpha or luminance.
  • Mask::width
  • Mask::height
  • Mask::data
  • Mask::data_mut
  • Mask::fill_path
  • Mask::decode_png
  • Mask::load_png
  • Mask::encode_png
  • Mask::save_png
  • Mask::invert
  • MaskType
  • Pixmap::apply_mask

Changed

  • Rename ClipMask into Mask.
  • Mask is closer to a 8bit (A8) Pixmap now, rather than being its own thing.
  • Mask::new requires width and height arguments now.
  • Drawing on Mask using Mask::fill_path uses our SIMD pipeline now instead of a scalar code that should make it a bit faster.
  • Painting API no longer returns Option<()>, but simply adds a warning to the log.
  • Paint::anti_alias is set to true by default.

Removed

  • Mask::set_path. Use Mask::fill_path instead.
  • Mask::default(). Mask cannot be empty anymore.

0.8.4 - 2023-04-22

Added

  • Implement PartialEq for Paint and subtypes. Thanks to @hecrj

Changed

  • MSRV bumped to 1.57, mainly because of the png crate.

Fixed

  • ClipMasks larger than 8191x8191 pixels. Previously, the creation of a large mask via ClipMask::set_path would have created an empty mask.

0.8.3 - 2023-02-05

Fixed

  • Performance regression, probably due to LLVM update in Rust. Thanks to @mostafa-khaled775
  • Big-endian targets support. Thanks to @ids1024

0.8.2 - 2022-10-22

Added

  • Pixmap::from_vec.

Fixed

  • Increase Conic to Quad conversion precision. This allows us to produce nicer round caps. Previously, they were not as round as needed.

0.8.1 - 2022-08-29

Fixed

  • Conditional compilation of FasterMinMax on fallback platforms. Thanks to @CryZe

0.8.0 - 2022-08-27

Added

  • AArch64 Neon SIMD support. Up to 3x faster on Apple M1. Thanks to @CryZe

Changed

  • FiniteF32, NormalizedF32 and NonZeroPositiveF32 types have been moved to the strict-num crate.
  • Rename NormalizedF32::from_u8 into NormalizedF32::new_u8.
  • Rename NormalizedF32::new_bounded into NormalizedF32::new_clamped.
  • Use explicit SIMD intrinsic instead of relying on safe_arch.
  • MSRV bumped to 1.51

0.7.0 - 2022-07-03

Added

  • tiny-skia-path dependency that can be used independently from tiny-skia. It contains the tiny-skia Bezier path implementation, including stroking and dashing. As well as all the geometry primitives (like Point and Rect).

Changed

  • When disabling the std feature, one have to enable no-std-float feature instead of libm now.

0.6.6 - 2022-06-23

Fixed

  • Panic in Rect::round and Rect::round_out. Thanks to @Wardenfar

0.6.5 - 2022-06-10

Fixed

  • Minimum arrayref version.

0.6.4 - 2022-06-04

Fixed

  • Panic during non-aliased hairline stroking at the bottom edge of an image.

0.6.3 - 2022-02-01

Fixed

  • SourceOver blend mode must not be optimized to Source when ClipPath is present.

0.6.2 - 2021-12-30

Fixed

  • ClipMask::intersect_path alpha multiplying.

0.6.1 - 2021-08-28

Added

  • Support rendering on pixmaps larger than 8191x8191 pixels. From now, Pixmap is limited only by the amount of memory caller has.
  • Transform::map_points
  • PathBuilder::push_oval

0.6.0 - 2021-08-21

Added

  • WASM simd128 support. Thanks to @CryZe

Changed

  • Transform::post_scale no longer requires &mut self.
  • Update png crate.

0.5.1 - 2021-03-07

Fixed

  • Color memset optimizations should be ignored when clip mask is present.
  • ClipMask::intersect_path logic.

0.5.0 - 2021-03-06

Added

  • ClipMask::intersect_path
  • no_std support. Thanks to @CryZe

Changed

  • Reduce Transform strictness. It's no longer guarantee to have only finite values, therefore we don't have to check each operation.

Removed

  • Canvas. Call Pixmap/PixmapMut drawing methods directly.

0.4.2 - 2021-01-23

Fixed

  • Panic during path filling with anti-aliasing because of incorrect edges processing.

0.4.1 - 2021-01-19

Fixed

  • Endless loop during stroke dashing.

0.4.0 - 2021-01-02

Changed

  • Remove almost all unsafe. No performance changes.

0.3.0 - 2020-12-20

Added

  • PixmapRef and PixmapMut, that can be created from Pixmap or from raw data.
  • Canvas::set_clip_mask, Canvas::get_clip_mask, Canvas::take_clip_mask.

Changed

  • Canvas no longer owns a Pixmap.
  • Canvas::draw_pixmap and Pattern::new accept PixmapRef instead of &Pixmap now.
  • Improve clipping performance.
  • The internal ClipMask type become public.

Fixed

  • Panic when path is drawn slightly past the Pixmap bounds.

Removed

  • Canvas::new

0.2.0 - 2020-11-16

Changed

  • Port to Rust.

0.1.0 - 2020-07-04

Added

  • Bindings to a stripped down Skia fork.