SkiaSharp is a cross-platform 2D graphics API for .NET platforms based on Google's Skia Graphics Library. It provides a comprehensive 2D API that can be used across mobile, server and desktop models to render images.
MIT License
4.14k
stars
522
forks
source link
[release/2.x] Add some new overloads for better compat #2810
In SkiaSharp 3.x, the overloads no longer take the SKImageFilter.CropRect and instead use a plain SKRect.
This PR adds a bunch of overloads into the 2.x series that are present in 3.x - notably the SKImageFilter.CropRect to SKRect as well as some others. CreateShader is also new and really CreatePaint is a CreateShader under the hood in C++.
Instead of a single overload with all the default parameters, the new overloads avoid defaults so we can not require nullable structs as well as not use the CropRect class if the crop rect is not in use.
After this PR lands, libraries that want to be compatible with 3.x will need to:
Switch to the SKRect overloads
Switch to CreateShader
Switch to ReadOnlySpan overloads
Recompile to get C# to pick the correct overloads if default parameters are used
Description of Change
In SkiaSharp 3.x, the overloads no longer take the
SKImageFilter.CropRect
and instead use a plainSKRect
.This PR adds a bunch of overloads into the 2.x series that are present in 3.x - notably the
SKImageFilter.CropRect
toSKRect
as well as some others.CreateShader
is also new and reallyCreatePaint
is aCreateShader
under the hood in C++.For the variations of
CreateMatrix
with the differentin
overloads, I will add this back into 3.x using the mechanism in https://github.com/mono/SkiaSharp/pull/2789Instead of a single overload with all the default parameters, the new overloads avoid defaults so we can not require nullable structs as well as not use the
CropRect
class if the crop rect is not in use.After this PR lands, libraries that want to be compatible with 3.x will need to:
SKRect
overloadsCreateShader
ReadOnlySpan
overloadsBugs Fixed
API Changes
None.
Behavioral Changes
None.
Required skia PR
None.
PR Checklist