mono / SkiaSharp

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

Closed mattleibow closed 1 month ago

mattleibow commented 1 month ago

Description of Change

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++.

For the variations of CreateMatrix with the different in overloads, I will add this back into 3.x using the mechanism in https://github.com/mono/SkiaSharp/pull/2789

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:

Bugs Fixed

API Changes

None.

Behavioral Changes

None.

Required skia PR

None.

PR Checklist