Table of Contents

Version 1.68.2

Rich API additions and performance improvements · Released April 30, 2020 · NuGet · GitHub Release

Highlights

This release brings a wealth of new drawing APIs to SKCanvas, floating-point color support via SKColorF, and significant performance gains from removing all use of reflection. Structs across the library now implement IEquatable<T> with proper equality operators, and memory management has been improved with array pooling and lifetime fixes.

Breaking Changes

None in this release.

New Features

Drawing & Canvas

  • SKColorF — Added floating-point color type with overloads across the API for high-precision color workflows.
  • SKCanvas.DrawAtlas — Draw sprite atlases with per-sprite transforms and colors.
  • SKCanvas.DrawPatch — Draw Coons patches for advanced gradient meshes.
  • SKCanvas.DrawArc — Draw arcs directly on the canvas.
  • SKCanvas.DrawRoundRectDifference — Draw the difference between two rounded rectangles.

Imaging & Shaders

  • SKImage.ToRasterImage() overload — Request explicit pixel data loading when converting to a raster image.
  • SKImage.ToTextureImage — Copy a CPU-backed image to a GPU texture.
  • ToShader() extensions — Added ToShader() to SKBitmap, SKImage, and SKPicture for convenient shader creation.
  • Perlin noise shaders — Improved support for Perlin noise shader generation.

Geometry & Math

  • SKMatrix helpers — Added Concat, PreConcat, and PostConcat members for cleaner matrix composition.
  • SKRegion operations — Added "quick" reject/contains members and region iterators for faster spatial queries.

Struct Improvements

  • IEquatable<T> — All structs now implement IEquatable<T> with proper Equals, GetHashCode, and equality operators.
  • Readonly getters — All struct getters are now readonly for better performance and correctness.
  • EditorBrowsable(Never) — Obsolete members are now hidden from IntelliSense.

Views & Platform Extensions

  • GTK extensions — Added extension methods for SKRect/SKPoint/SKSize conversion and image type conversions (SKImage/SKBitmap/SKPixmapPixbuf).
  • SkiaSharp.Views.Forms.GTK — New package bringing SkiaSharp views to Xamarin.Forms on GTK.
  • Mouse wheel scrolling — Added scroll wheel support in Xamarin.Forms views. ❤️ @alexandrvslv
  • Touch device type & pressure — Added SKTouchDeviceType and touch pressure support on Android. ❤️ @mscherotter

Bug Fixes

  • Fixed passing null for image filters throwing an exception instead of being treated as no filter. ❤️ @Ziriax
  • Fixed passing null to SKPathMeasure throwing an exception. ❤️ @Ziriax
  • Fixed sampling issues with GPU-based views. ❤️ @validvoid
  • Fixed memory leak and crash in Xamarin.Forms views. ❤️ @zbyszekpy
  • Fixed several object lifetime and disposal bugs across the library.

Performance

  • Removed all use of reflection for a significant performance boost. ❤️ @Gillibald
  • Made use of array pools where possible to reduce allocations.
  • Multiple memory management improvements throughout the library.

Maintenance

  • Updated to Visual Studio 2019 and .NET Core 3.0.
  • Multi-targeting improvements. ❤️ @bender2k14
  • Updated minimum Android to v4.1 (API 16).
  • Updated Android NDK to r19c, MSVC to v14.2, and Clang to v9.0.
  • Updated ANGLE to the latest commit.
  • Updated Xamarin.Forms dependency to v4.4+.

Known Issues

  • WACK test false positive with vcruntime140_1_app.dll — this is resolved in the Windows Insider SDK.

Community Contributors ❤️

Contributor What They Did
@Ziriax Fixed null parameter handling in image filters and path measure
@Gillibald Removed all reflection usage for major performance gains
@validvoid Fixed GPU view sampling issues
@alexandrvslv Added mouse wheel scrolling support
@mscherotter Added touch device type and pressure on Android
@zbyszekpy Fixed memory leak and crash in views
@bender2k14 Multi-targeting improvements

Preview 60 (April 13, 2020)

Final preview with remaining bug fixes and stabilization before the GA release.

Full Changelog

Preview 50 (April 3, 2020)

Continued memory management improvements and additional API polish.

Full Changelog

Preview 45 (March 24, 2020)

Struct equality operators and IEquatable<T> implementation across all value types.

Full Changelog

Preview 43 (March 18, 2020)

Added ToTextureImage and expanded shader creation methods on imaging types.

Full Changelog

Preview 39 (February 27, 2020)

New canvas drawing APIs including DrawAtlas, DrawPatch, and DrawArc.

Full Changelog

Preview 29 (February 6, 2020)

SKRegion enhancements and SKMatrix helper methods.

Full Changelog

Preview 21 (January 20, 2020)

GTK view extensions and Xamarin.Forms GTK package.

Full Changelog

Preview 17 (January 11, 2020)

Initial preview with SKColorF support and reflection removal for performance.

Full Changelog