Version 1.68.1
Memory reliability and .NET Core 3.0 support · Released November 22, 2019 · NuGet · GitHub Release
Highlights
This release focuses on memory reliability, fixing several issues with managed-native interop and
static instance lifetimes. It also brings performance improvements via Clang on Win32, new
Span<T> overloads across SkiaSharp and HarfBuzzSharp, and a significant expansion of the
HarfBuzz binding surface.
Breaking Changes
None in this release.
New Features
Memory & Interop
- Managed-native delegate interop overhaul — Removed intermediate dictionary for delegate interop, improving performance and reliability.
- Clang on Win32 — Switched native builds to Clang for improved performance on Windows.
New APIs
SKDrawablebindings — Full bindings for the Skia drawable type. ❤️ @charlenni (#940)SKColorSpaceAPIs — Added colorspace creation and management APIs.SKRunBuffer/SKHorizontalRunBuffer/SKPositionedRunBuffer— New run buffer types forSKTextBlobandSKTextBlobBuilder.SKShaderfromSKPicture— Create shaders directly from recorded pictures. ❤️ @alexandrvslv- Additional
SKRegionmembers — Expanded region operations. ❤️ @vexx32x - Additional
SKPaintandSKMatrixmembers — More paint and matrix helpers. ❤️ @MarchingCube Span<T>overloads — AddedSpan<T>alternatives alongside existingbyte[]andIntPtroverloads.
Packages & Platform Support
SkiaSharp.NativeAssets.Linux.NoDependencies— New NuGet package for Linux environments withoutlibfontconfig.- View packages split —
SkiaSharp.Viewssplit into dedicated packages:SkiaSharp.Views.WPF,SkiaSharp.Views.WindowsForms,SkiaSharp.Views.Gtk3,SkiaSharp.Views.Gtk2, andSkiaSharp.Views.Desktop.Common. - GTK# 3 support — New
SKDrawingAreawidget for GTK# 3 applications.
Xamarin.Forms
- WPF support — Initial WPF backend via
SkiaSharp.Views.Forms.WPF. - Updated to Xamarin.Forms v4.x — Compatibility with the latest Forms release.
- Mouse wheel support —
SKCanvasViewandSKGLViewnow handle mouse wheel events. ❤️ @charlenni
HarfBuzz
- Updated to HarfBuzz 2.6.1 — Major version bump with new APIs. ❤️ @Gillibald
- Expanded HarfBuzz bindings — Many new APIs for a more complete binding surface. ❤️ @Gillibald
Span<T>overloads for HarfBuzzSharp — Consistent with SkiaSharp's new span support. ❤️ @Gillibald
Bug Fixes
- Fixed several issues with static instances of native objects being accidentally destroyed.
- Fixed several invalid memory operations in managed-native interop.
- Fixed
SKDocumentunderlying stream being destroyed prematurely. - Fixed typeface managed stream not being released correctly.
- Fixed incorrect native library version in Full Framework Xamarin.Mac.
- Fixed Android emulator rendering incorrect colors. ❤️ @inforithmics
- Fixed
System.Drawing.BitmaptoSKPixmapconversion. ❤️ @Odirb - Improved
SKSwapChainPanelstability on UWP.
Maintenance
- P/Invoke layer is now generated along with structs and enums.
- Documentation moved to the SkiaSharp-API-docs repository.
- Build improvements. ❤️ @danien
- Documentation improvements. ❤️ @HankiDesign
Community Contributors ❤️
| Contributor | What They Did |
|---|---|
| @charlenni | SKDrawable bindings, mouse wheel support in Forms |
| @Gillibald | HarfBuzz 2.6.1 upgrade, expanded APIs, Span<T> overloads |
| @vexx32x | Additional SKRegion members |
| @MarchingCube | Additional SKPaint and SKMatrix members |
| @alexandrvslv | SKShader from SKPicture |
| @inforithmics | Android emulator color fix |
| @Odirb | System.Drawing.Bitmap conversion fix |
| @danien | Build improvements |
| @HankiDesign | Documentation improvements |
Preview Builds
Six preview builds (147, 153, 165, 169, 170, 172) were published between September and November 2019 leading up to this stable release.