Table of Contents

Version 2.80.0

Skia m80 and Vulkan everywhere · Released July 8, 2020 · NuGet · GitHub Release

API changes · SkiaSharp API diff · HarfBuzzSharp API diff

Highlights

SkiaSharp 2.80.0 rebases on Skia m80, brings Vulkan everywhere, and adds Linux ARM, Alpine, ARM64, and WebAssembly natives. Vulkan is now available on every platform that supports it, alongside a cleaned-up GPU API. Native coverage grows to Linux ARM32/ARM64, Alpine, and Win32 ARM64, plus a first WebAssembly build. SKFont becomes the canonical text/glyph type, and several disposal and GL crashes are fixed.

Breaking Changes

None in this release.

Engine

  • Rebased on Skia m80 — The bundled engine is refreshed from a much older Skia to milestone 80, bringing years of upstream rendering and text fixes into SkiaSharp. (#986)

API Surface

  • Vulkan on every supported platform — Vulkan support is built for Win32 alongside the existing platforms, with a shared managed API so consumers can target Vulkan the same way everywhere. (#1010, #1287)
  • GPU APIs cleaned up — The GPU surface is reworked for consistency across backends and to expose the pieces callers previously had to reach around. (#1294)
  • SKFont becomes the text/glyph type — SKFont's public API is now glyph-only, and the other text types are built on top of it — the canonical shape for text work going forward. (#1299)
  • New drawing and path helpers — SKCanvas.DrawTextOnPath, SKPath.ToWinding, SKPaint.ColorF, and image snapshots with bounds fill in gaps that consumers previously had to work around. — ❤️ @ziriax (#1198, #1326, #1325, #1357)

Bug Fixes

  • GL and shader crashes fixed — A crash when no GL context is present is resolved, the correct shaders are used, and GL ES 3.x is explicitly requested when available. (#1328, #1323, #1388)
  • Text and font lifetime corrected — The text blob builder and font set are now kept alive while in use, fixing intermittent crashes during text rendering. (#1365, #1362)

Lifecycle & Internals

  • Managed/native disposal reworked — The relationship between managed wrappers and native objects is disposed correctly again, closing a class of finalizer and use-after-dispose issues. (#1344)
  • Native library loading on desktop — Desktop and .NET Framework hosts now load a specific native library rather than relying on ambient search order, and libSkiaSharp is no longer embedded inside the managed assemblies. (#1342, #1296)

Platform

  • Linux ARM, Alpine, and Win32 ARM64 natives — Ships native libraries for Linux ARM32 (armhf) and ARM64 (aarch64), Alpine, and Win32 ARM64 — SkiaSharp now runs out of the box on those targets. (#1382, #1339, #1358)
  • WebAssembly build — There is now a libSkiaSharp build for WebAssembly and a matching WASM package, laying the groundwork for browser-hosted rendering. (#1359, #1389)

HarfBuzzSharp 2.6.1.5

HarfBuzzSharp 2.6.1.5 rides along with the SkiaSharp packaging, native library, and platform coverage work — the same builds now ship for Linux ARM, Alpine, and the other new targets.

Community Contributors ❤️

Thank you to everyone who contributed to this release!

Contributor Contributions
@bender2k14 Made SkiaSharpSample the default startup project in the WPF sample solution (#1369)
@ziriax Contributed the SKCanvas.DrawTextOnPath implementation (#1198)

Preview 33 (June 30, 2020)

Preview 33 wrapped up packaging fixes and text/font lifetime fixes ahead of stable.

Full changelog

Preview 24 (June 27, 2020)

Preview 24 added Win32 ARM64 natives, image snapshots with bounds, and disposal fixes.

Full changelog

Preview 14 (June 17, 2020)

Preview 14 introduced the Alpine native libraries.

Full changelog

Preview 12 (June 11, 2020)

Preview 12 added SKPath.ToWinding, SKPaint.ColorF, and fixed a crash when no GL context is present.

Full changelog

Preview 3 (June 7, 2020)

Preview 3 was the initial v2 preview: Skia m80, Vulkan for Win32, GPU API cleanup, the SKFont refactor, and SKCanvas.DrawTextOnPath.

Full changelog