Version 2.88.1
Skottie and servicing release · Released August 17, 2022 · NuGet · GitHub Release
API changes · SkiaSharp API diff · HarfBuzzSharp 2.8.2.1
Highlights
SkiaSharp 2.88.1 adds a substantial new animation story with Skottie, expands WinUI and Tizen support on newer target frameworks, and refreshes several native dependencies. It also fixes a range of real-world issues across Alpine Linux, Unicode font loading, Apple scaling behavior, and browser-hosted scenarios.
Breaking Changes
- Skottie and SceneGraph moved out of the core assembly — Applications using those APIs should make sure the matching packages are referenced explicitly instead of expecting everything to ship in
SkiaSharp.dll. (#2091)
New Features
Animation & Text
- Basic Skottie support — Introduces the first Skottie bindings, then rounds them out with nullable annotations,
TimeSpanoverloads, writableSKDataStream, and support for non-seekable streams. ❤️ @jeromelaban (#1987, #2119, #2128, #2126) - Better text shaping controls —
SKShapernow respectsSKPaint.TextAlign. ❤️ @koolkdev (#1910) - AVIF encode support — Exposes AVIF as an image encode format. ❤️ @mgood7123 (#2154)
Platform
- WinUI and Uno support — Adds WinUI support and keeps Uno generation aligned on supported targets, with follow-up generation fixes for Xamarin targets. (#2042, #2098, #2199)
- More modern target frameworks — Adds
net6.0-tizenand expands Skottie package TFMs across Apple, Android, tvOS, Mac Catalyst, and Tizen. (#2099, #2133) - Updated WebAssembly toolchain — Adds emscripten 3.1.7 support. ❤️ @jeromelaban (#2094)
Bug Fixes
- Unicode font names load correctly — Fixes font loading when the font name contains Unicode characters. ❤️ @lindexi (#2146)
- Apple view scaling updates — Reshapes
SKGLViewcorrectly whenWindow.BackingScaleFactorchanges. ❤️ @HarlanHugh (#1854) - Alpine and libc loading reliability — Fixes Alpine builds and prefers the full libc library name where required. (#2168, #2192, #2213)
- Safer native lock cleanup — Checks whether the lock has already been finalized before entering or leaving the critical section. ❤️ @RichardD2 (#2195)
- Animation and imaging fixes — Adds BOM handling for animation loading and fixes PNG loading by updating zlib. (#2167, #2045)
Native Dependencies
- Refreshed native libraries — Updates zlib, libjpeg-turbo, libwebp, and libexpat to newer servicing releases. (#2045, #2206, #2193, #2189)
Platform Support
| Platform | What's New |
|---|---|
| 🍎 Apple | Better scaling updates and broader Skottie TFMs |
| 🪟 Windows | WinUI support and safer native critical-section cleanup |
| 🐧 Linux | Alpine and libc loading fixes |
| 🌐 WebAssembly | emscripten 3.1.7 support |
| 🤖 Android / 📺 Tizen | Expanded target framework coverage for Skottie and core packages |
Community Contributors ❤️
| Contributor | What They Did |
|---|---|
| @jeromelaban | Added core Skottie support, WinUI work, broader TFMs, and emscripten 3.1.7 support |
| @koolkdev | Made SKShaper respect SKPaint.TextAlign |
| @lindexi | Fixed Unicode font loading |
| @RichardD2 | Hardened critical-section finalization handling |
| @HarlanHugh | Fixed SKGLView backing-scale reshape behavior |
| @mgood7123 | Exposed AVIF encoding support |
Links
Preview 108 (August 12, 2022)
Made configuration APIs public and refined libc probing on affected platforms.
Preview 104 (August 8, 2022)
Fixed Unicode font loading, completed a missing macios feature, refreshed native dependencies, and improved Alpine builds.
Preview 91 (July 14, 2022)
Added BOM handling for animations, exposed AVIF encoding, and continued Alpine servicing.
Preview 79 (June 29, 2022)
Expanded Skottie TFMs and made SKDataStream writable like SKData.
Preview 75 (June 26, 2022)
Improved Skottie handling for non-seekable streams and fixed SKGLView backing-scale updates.
Preview 71 (June 20, 2022)
Added nullable annotations and TimeSpan overloads for Skottie while broadening target framework support.
Preview 63 (June 8, 2022)
Introduced Skottie, WinUI, net6.0-tizen, emscripten 3.1.7 support, and several package-structure improvements.
Preview 1 (May 22, 2022)
Started the 2.88.1 servicing train with a PNG-loading fix via an updated zlib.