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()toSKBitmap,SKImage, andSKPicturefor convenient shader creation. - Perlin noise shaders — Improved support for Perlin noise shader generation.
Geometry & Math
- SKMatrix helpers — Added
Concat,PreConcat, andPostConcatmembers 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 properEquals,GetHashCode, and equality operators. - Readonly getters — All struct getters are now
readonlyfor better performance and correctness. - EditorBrowsable(Never) — Obsolete members are now hidden from IntelliSense.
Views & Platform Extensions
- GTK extensions — Added extension methods for
SKRect/SKPoint/SKSizeconversion and image type conversions (SKImage/SKBitmap/SKPixmap↔Pixbuf). - 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
SKTouchDeviceTypeand touch pressure support on Android. ❤️ @mscherotter
Bug Fixes
- Fixed passing
nullfor image filters throwing an exception instead of being treated as no filter. ❤️ @Ziriax - Fixed passing
nulltoSKPathMeasurethrowing 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 |
Links
Preview 60 (April 13, 2020)
Final preview with remaining bug fixes and stabilization before the GA release.
Preview 50 (April 3, 2020)
Continued memory management improvements and additional API polish.
Preview 45 (March 24, 2020)
Struct equality operators and IEquatable<T> implementation across all value types.
Preview 43 (March 18, 2020)
Added ToTextureImage and expanded shader creation methods on imaging types.
Preview 39 (February 27, 2020)
New canvas drawing APIs including DrawAtlas, DrawPatch, and DrawArc.
Preview 29 (February 6, 2020)
SKRegion enhancements and SKMatrix helper methods.
Preview 21 (January 20, 2020)
GTK view extensions and Xamarin.Forms GTK package.
Preview 17 (January 11, 2020)
Initial preview with SKColorF support and reflection removal for performance.