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.dllinto their own packages, gainnet6.0TFMs for iOS/Android/Catalyst/macOS/tvOS/Tizen, and pick upTimeSpanoverloads, nullable attributes and non-seekable stream support. — ❤️ @jeromelaban (#2091, #2119, #1987, #2126) - AVIF encoding — The
SKEncodedImageFormatsurface 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 BOM —
SKDataStreamis now writable likeSKData, 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-tizenTFM 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 change —
SKGLViewon 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.TextAlign —
SKShapernow respects theTextAlignon the suppliedSKPaintwhen laying out shaped text. — ❤️ @koolkdev (#1910) - Resize returns null on invalid bounds —
Resizenow returnsnullinstead 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.
Preview 104 (August 8, 2022)
Preview 104 rolled up the native-library refreshes — libjpeg-turbo, libwebp, libexpat — and the finalized-lock guard.
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.
Preview 79 (June 29, 2022)
Preview 79 rounded out the Skottie API with nullable attributes and TimeSpan overloads and the writable SKDataStream.
Preview 75 (June 26, 2022)
Preview 75 landed the SKGLView macOS reshape fix.
Preview 71 (June 20, 2022)
Preview 71 added the net6.0-tizen TFM and the Skottie/SceneGraph package split.
Preview 63 (June 8, 2022)
Preview 63 was the big cut — WinUI support, Skottie, SKShaper text alignment, and the initial nullable/TFM refresh.
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.