Table of Contents

Version 2.88.1

First 2.88 servicing release · Released August 16, 2022 · NuGet · GitHub Release

API changes · SkiaSharp API diff · HarfBuzzSharp API diff

Highlights

SkiaSharp 2.88.1 adds WinUI, Skottie, AVIF and tvOS/Tizen TFMs on top of the 2.88 native stack. The first servicing release for 2.88 refreshes bundled native libraries (libjpeg-turbo, libwebp, libexpat, zlib), splits Skottie and SceneGraph into their own packages, and rounds out the .NET 6 target matrix with WinUI, Tizen, iOS/Android/macOS TFMs for Skottie, and nullable attributes across the API.

Breaking Changes

None in this release.

API Surface

  • Skottie graduates from experimental — Skottie and SceneGraph move out of the core SkiaSharp.dll into their own packages, gain net6.0 TFMs for iOS/Android/Catalyst/macOS/tvOS/Tizen, and pick up TimeSpan overloads, nullable attributes and non-seekable stream support. — ❤️ @jeromelaban (#2091, #2119, #1987, #2126)
  • AVIF encoding — The SKEncodedImageFormat surface now exposes AVIF so images can be encoded to AVIF where the underlying decoder supports it. — ❤️ @mgood7123 (#2154)
  • WinUI support — SkiaSharp views now light up on WinUI, and the Uno WinUI target ships the missing JavaScript support file. — ❤️ @jeromelaban (#2042, #2086)
  • Writable SKDataStream and animations with a BOMSKDataStream is now writable like SKData, and animation loaders tolerate a leading byte-order mark. (#2128, #2167)
  • Nullable attributes and new TFMs on the binding — The binding project adds nullable annotations plus newer TFMs, and the net6.0-tizen TFM is added. (#2120, #2099)

Bug Fixes

  • PNG decoding regressions fixed — The bundled zlib was updated to pick up upstream decode fixes that resolved PNG loading failures. (#2045)
  • Fonts with Unicode filenames load correctly — Font loaders no longer fail when the font's file name contains Unicode characters. — ❤️ @lindexi (#2146)
  • GLView reshapes on scale changeSKGLView on macOS now reshapes when the window's backing scale factor changes so content stays crisp on scale transitions. — ❤️ @HarlanHugh (#1854)
  • Finalized locks no longer throw — Internal critical sections now check whether the lock has been finalized before entering, avoiding rare shutdown exceptions. — ❤️ @RichardD2 (#2195)
  • SKShaper honours SKPaint.TextAlignSKShaper now respects the TextAlign on the supplied SKPaint when laying out shaped text. — ❤️ @koolkdev (#1910)
  • Resize returns null on invalid boundsResize now returns null instead of asserting when called with a zero or negative dimension. (#2054)
  • Linux libc resolution — The Linux native loader uses the full library name of libc so it resolves on more distributions. (#2213)

Security

  • Bundled native libraries refreshed — libjpeg-turbo bumped to 2.1.3, libwebp to 1.2.3, and libexpat to 2.4.8 — all pull in upstream security and correctness fixes. (#2206, #2193, #2189)

Lifecycle & Internals

  • C API version incremented — The C API version was incremented to mark the surface changes in this release for downstream consumers of the native library. (#2137)

HarfBuzzSharp 2.8.2.1

HarfBuzzSharp 2.8.2.1 picks up the merged "classic" project layout, refreshed generator and the missing macOS/iOS feature implementation alongside the SkiaSharp packaging changes.

Community Contributors ❤️

Thank you to everyone who contributed to this release!

Contributor Contributions
@jeromelaban Landed the initial Skottie support, the WinUI target, and the missing Uno WinUI JavaScript support file (#1987, #2042, #2086, #2088, #2094, #2133, #2199)
@mgood7123 Exposed the AVIF image encode format (#2138, #2154, #2162)
@HarlanHugh Fixed SKGLView reshape when the macOS window's backing scale factor changes (#1854)
@koolkdev Made SKShaper honour SKPaint.TextAlign when shaping text (#1910)
@lindexi Fixed font loading for fonts whose file names contain Unicode text (#2146)
@RichardD2 Guarded the internal critical section against being entered after finalization (#2195)

Preview 108 (August 12, 2022)

Preview 108 finished the .NET 6 TFM matrix and picked up the last fixes before stable.

Full changelog

Preview 104 (August 8, 2022)

Preview 104 rolled up the native-library refreshes — libjpeg-turbo, libwebp, libexpat — and the finalized-lock guard.

Full changelog

Preview 91 (July 14, 2022)

Preview 91 added Unicode font-file support, non-seekable Skottie streams and BOM-tolerant animations, and incremented the C API.

Full changelog

Preview 79 (June 29, 2022)

Preview 79 rounded out the Skottie API with nullable attributes and TimeSpan overloads and the writable SKDataStream.

Full changelog

Preview 75 (June 26, 2022)

Preview 75 landed the SKGLView macOS reshape fix.

Full changelog

Preview 71 (June 20, 2022)

Preview 71 added the net6.0-tizen TFM and the Skottie/SceneGraph package split.

Full changelog

Preview 63 (June 8, 2022)

Preview 63 was the big cut — WinUI support, Skottie, SKShaper text alignment, and the initial nullable/TFM refresh.

Full changelog

Preview 1 (May 22, 2022)

Preview 1 opened the 2.88.1 line with documentation and CI fixes and the zlib update that resolved PNG loading.

Full changelog