Update the docs and reduce diff (#979)

* Adding back some methods to reduce the breaking changes.
* Making sure to force the use of VS2017
* Update all the docs
* Keep the diff in the output
* List the exported symbols on Linux
This commit is contained in:
Matthew Leibowitz 2019-10-17 14:29:31 +02:00 коммит произвёл GitHub
Родитель 9d3d4f577f
Коммит ff7cc7823c
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
64 изменённых файлов: 1004 добавлений и 72 удалений

Просмотреть файл

@ -1,21 +1,25 @@
# dependencies
ANGLE.WindowsStore release 2.1.13
mdoc.targets release 5.7.4.9
mdoc release 5.7.4.9
mdoc.targets release 5.7.4.10
mdoc release 5.7.4.10
harfbuzz release 2.6.1
skia release m68
xunit release 2.4.1
xunit.runner.console release 2.4.1
Xamarin.Forms release 4.0.0.540366
Xamarin.Forms.Platform.WPF release 4.0.0.540366
Tizen.NET release 4.0.0
OpenTK release 3.0.1
OpenTK.GLControl release 3.0.1
MSBuild.Sdk.Extras release 1.6.65
Cake release 0.31.0
Cake release 0.35.0
GtkSharp release 3.22.24.37
GLibSharp release 3.22.24.37
AtkSharp release 3.22.24.37
# additional references used by the tooling
OpenTK.GLControl reference 1.1.2349.61993
# native sonames
libSkiaSharp soname 68.1.0
HarfBuzz soname 0.20601.0

Просмотреть файл

@ -43,6 +43,9 @@ namespace SkiaSharp
}
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeNative () =>
SkiaApi.gr_backendrendertarget_delete (Handle);

Просмотреть файл

@ -48,6 +48,9 @@ namespace SkiaSharp
}
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeNative () =>
SkiaApi.gr_backendtexture_delete (Handle);

Просмотреть файл

@ -10,6 +10,9 @@ namespace SkiaSharp
{
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
public static GRContext Create (GRBackend backend)
{
switch (backend) {

Просмотреть файл

@ -13,6 +13,9 @@ namespace SkiaSharp
{
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
public static GRGlInterface CreateDefaultInterface ()
{
// first try ANGLE, then fall back to the OpenGL-based

Просмотреть файл

@ -93,6 +93,9 @@ namespace SkiaSharp
Handle = SkiaApi.sk_managedstream_new (ctx);
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeNative ()
{
if (Interlocked.CompareExchange (ref fromNative, 0, 0) == 0)

Просмотреть файл

@ -53,6 +53,9 @@ namespace SkiaSharp
Handle = SkiaApi.sk_managedwstream_new (ctx);
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeNative ()
{
if (Interlocked.CompareExchange (ref fromNative, 0, 0) == 0)

Просмотреть файл

@ -101,6 +101,9 @@ namespace SkiaSharp
{
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeNative () =>
SkiaApi.sk_bitmap_destructor (Handle);

Просмотреть файл

@ -29,6 +29,9 @@ namespace SkiaSharp
Handle = SkiaApi.sk_canvas_new_from_bitmap (bitmap.Handle);
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeNative () =>
SkiaApi.sk_canvas_destroy (Handle);

Просмотреть файл

@ -14,6 +14,9 @@ namespace SkiaSharp
{
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeNative () =>
SkiaApi.sk_codec_destroy (Handle);

Просмотреть файл

@ -15,6 +15,9 @@ namespace SkiaSharp
{
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
public static SKColorFilter CreateBlendMode(SKColor c, SKBlendMode mode)
{
return GetObject<SKColorFilter>(SkiaApi.sk_colorfilter_new_mode(c, mode));

Просмотреть файл

@ -199,6 +199,9 @@ namespace SkiaSharp
{
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
public bool GammaIsCloseToSrgb => SkiaApi.sk_colorspace_gamma_close_to_srgb (Handle);
public bool GammaIsLinear => SkiaApi.sk_colorspace_gamma_is_linear (Handle);

Просмотреть файл

@ -47,6 +47,9 @@ namespace SkiaSharp
}
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
public int Count => SkiaApi.sk_colortable_count (Handle);
public SKPMColor[] Colors

Просмотреть файл

@ -32,6 +32,9 @@ namespace SkiaSharp
{
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
void ISKNonVirtualReferenceCounted.ReferenceNative () => SkiaApi.sk_data_ref (Handle);
void ISKNonVirtualReferenceCounted.UnreferenceNative () => SkiaApi.sk_data_unref (Handle);

Просмотреть файл

@ -16,6 +16,9 @@ namespace SkiaSharp
{
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
public void Abort () =>
SkiaApi.sk_document_abort (Handle);

Просмотреть файл

@ -62,6 +62,9 @@ namespace SkiaSharp
{
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeNative ()
{
if (Interlocked.CompareExchange (ref fromNative, 0, 0) == 0)

Просмотреть файл

@ -26,6 +26,9 @@ namespace SkiaSharp
{
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
public static SKFontManager Default => defaultManager.Value;
public int FontFamilyCount => SkiaApi.sk_fontmgr_count_families (Handle);

Просмотреть файл

@ -25,6 +25,9 @@ namespace SkiaSharp
{
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeNative () =>
SkiaApi.sk_fontstyle_delete (Handle);

Просмотреть файл

@ -17,6 +17,9 @@ namespace SkiaSharp
{
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
public int Count => SkiaApi.sk_fontstyleset_get_count (Handle);
public SKFontStyle this[int index] => GetStyle (index);

Просмотреть файл

@ -46,6 +46,9 @@ namespace SkiaSharp
frontBuffer = new byte[bufferSize];
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeManaged ()
{
if (disposeStream && stream != null) {

Просмотреть файл

@ -20,6 +20,9 @@ namespace SkiaSharp
{
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
// create brand new image
public static SKImage Create (SKImageInfo info)

Просмотреть файл

@ -15,6 +15,9 @@ namespace SkiaSharp
{
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
public static SKImageFilter CreateMatrix(SKMatrix matrix, SKFilterQuality quality, SKImageFilter input = null)
{
return GetObject<SKImageFilter>(SkiaApi.sk_imagefilter_new_matrix(ref matrix, quality, input == null ? IntPtr.Zero : input.Handle));
@ -229,6 +232,9 @@ namespace SkiaSharp
{
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeNative () =>
SkiaApi.sk_imagefilter_croprect_destructor (Handle);

Просмотреть файл

@ -52,6 +52,9 @@ namespace SkiaSharp
}
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeManaged ()
{
var childStream = child?.Target as SKManagedStream;

Просмотреть файл

@ -26,6 +26,9 @@ namespace SkiaSharp
disposeStream = disposeManagedStream;
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeManaged ()
{
if (disposeStream && stream != null) {

Просмотреть файл

@ -27,6 +27,9 @@ namespace SkiaSharp
{
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
public static float ConvertRadiusToSigma(float radius)
{
return radius > 0 ? BlurSigmaScale * radius + 0.5f : 0.0f;

Просмотреть файл

@ -491,9 +491,6 @@ typeMask = Mask.Scale | Mask.RectStaysRect
{
}
protected override void DisposeNative () =>
SkiaApi.sk_3dview_destroy (Handle);
public SK3dView ()
: this (SkiaApi.sk_3dview_new (), true)
{
@ -502,6 +499,12 @@ typeMask = Mask.Scale | Mask.RectStaysRect
}
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeNative () =>
SkiaApi.sk_3dview_destroy (Handle);
public SKMatrix Matrix {
get {
SKMatrix matrix = SKMatrix.MakeIdentity ();
@ -597,6 +600,9 @@ typeMask = Mask.Scale | Mask.RectStaysRect
{
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeNative () =>
SkiaApi.sk_matrix44_destroy (Handle);

Просмотреть файл

@ -36,6 +36,9 @@ namespace SkiaSharp
{
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
public override IntPtr Handle {
get => base.Handle;
protected set {

Просмотреть файл

@ -18,6 +18,9 @@ namespace SkiaSharp
}
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeNative () =>
SkiaApi.sk_paint_delete (Handle);

Просмотреть файл

@ -43,6 +43,9 @@ namespace SkiaSharp
}
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeNative () =>
SkiaApi.sk_path_delete (Handle);
@ -467,6 +470,9 @@ namespace SkiaSharp
this.path = path;
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeNative () =>
SkiaApi.sk_path_iter_destroy (Handle);
@ -497,6 +503,9 @@ namespace SkiaSharp
this.path = path;
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeNative () =>
SkiaApi.sk_path_rawiter_destroy (Handle);
@ -533,6 +542,9 @@ namespace SkiaSharp
return SkiaApi.sk_opbuilder_resolve (Handle, result.Handle);
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeNative () =>
SkiaApi.sk_opbuilder_destroy (Handle);
}

Просмотреть файл

@ -23,6 +23,9 @@ namespace SkiaSharp
{
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
public static SKPathEffect CreateCompose(SKPathEffect outer, SKPathEffect inner)
{
if (outer == null)

Просмотреть файл

@ -34,6 +34,9 @@ namespace SkiaSharp
}
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeNative () =>
SkiaApi.sk_pathmeasure_destroy (Handle);

Просмотреть файл

@ -10,6 +10,9 @@ namespace SkiaSharp
{
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
public uint UniqueId => SkiaApi.sk_picture_get_unique_id (Handle);
public SKRect CullRect {

Просмотреть файл

@ -18,6 +18,9 @@ namespace SkiaSharp
}
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeNative () =>
SkiaApi.sk_picture_recorder_delete (Handle);

Просмотреть файл

@ -41,6 +41,9 @@ namespace SkiaSharp
}
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeNative () =>
SkiaApi.sk_pixmap_destructor (Handle);

Просмотреть файл

@ -32,6 +32,9 @@ namespace SkiaSharp
SetPath (path);
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeNative () =>
SkiaApi.sk_region_delete (Handle);

Просмотреть файл

@ -42,6 +42,9 @@ namespace SkiaSharp
{
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeNative () =>
SkiaApi.sk_rrect_delete (Handle);

Просмотреть файл

@ -10,6 +10,9 @@ namespace SkiaSharp
{
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
public static SKShader CreateEmpty ()
{
return GetObject<SKShader> (SkiaApi.sk_shader_new_empty ());

Просмотреть файл

@ -186,6 +186,9 @@ namespace SkiaSharp
{
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeNative () =>
SkiaApi.sk_stream_destroy (Handle);
}
@ -222,6 +225,9 @@ namespace SkiaSharp
{
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeNative () =>
SkiaApi.sk_stream_asset_destroy (Handle);
}
@ -250,6 +256,9 @@ namespace SkiaSharp
}
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeNative () =>
SkiaApi.sk_filestream_destroy (Handle);
@ -314,6 +323,9 @@ namespace SkiaSharp
SetMemory (data);
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeNative () =>
SkiaApi.sk_memorystream_destroy (Handle);
@ -451,6 +463,9 @@ namespace SkiaSharp
}
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeNative () =>
SkiaApi.sk_filewstream_destroy (Handle);
@ -514,6 +529,9 @@ namespace SkiaSharp
return SkiaApi.sk_dynamicmemorywstream_write_to_stream (Handle, dst.Handle);
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeNative () =>
SkiaApi.sk_dynamicmemorywstream_destroy (Handle);
}

Просмотреть файл

@ -57,6 +57,9 @@ namespace SkiaSharp
return new SKString (str);
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeNative () =>
SkiaApi.sk_string_destructor (Handle);
}

Просмотреть файл

@ -20,6 +20,9 @@ namespace SkiaSharp
{
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
// RASTER surface
[Obsolete ("Use Create(SKImageInfo, SKSurfaceProperties) instead.")]

Просмотреть файл

@ -31,6 +31,9 @@ namespace SkiaSharp
{
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeNative () =>
SkiaApi.sk_surfaceprops_delete (Handle);

Просмотреть файл

@ -10,6 +10,9 @@ namespace SkiaSharp
{
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
void ISKNonVirtualReferenceCounted.ReferenceNative () => SkiaApi.sk_textblob_ref (Handle);
void ISKNonVirtualReferenceCounted.UnreferenceNative () => SkiaApi.sk_textblob_unref (Handle);
@ -37,6 +40,9 @@ namespace SkiaSharp
{
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeNative () =>
SkiaApi.sk_textblob_builder_delete (Handle);

Просмотреть файл

@ -34,6 +34,9 @@ namespace SkiaSharp
{
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
public static SKTypeface Default => defaultTypeface.Value;
public static SKTypeface CreateDefault ()

Просмотреть файл

@ -14,6 +14,9 @@ namespace SkiaSharp
{
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
void ISKNonVirtualReferenceCounted.ReferenceNative () => SkiaApi.sk_vertices_ref (Handle);
void ISKNonVirtualReferenceCounted.UnreferenceNative () => SkiaApi.sk_vertices_unref (Handle);

Просмотреть файл

@ -28,6 +28,9 @@ namespace SkiaSharp
Handle = SkiaApi.sk_xmlstreamwriter_new (stream.Handle);
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeNative () =>
SkiaApi.sk_xmlstreamwriter_delete (Handle);
}

Просмотреть файл

@ -30,6 +30,9 @@ namespace HarfBuzzSharp
{
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeHandler ()
{
if (Handle != IntPtr.Zero) {

Просмотреть файл

@ -351,6 +351,10 @@ namespace HarfBuzzSharp
HarfBuzzApi.hb_buffer_deserialize_glyphs (Handle, data, -1, out _, font?.Handle ?? IntPtr.Zero, format);
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeHandler ()
{
if (Handle != IntPtr.Zero) {

Просмотреть файл

@ -83,6 +83,9 @@ namespace HarfBuzzSharp
public void MakeImmutable () => HarfBuzzApi.hb_face_make_immutable (Handle);
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeHandler ()
{
if (Handle != IntPtr.Zero) {

Просмотреть файл

@ -254,6 +254,9 @@ namespace HarfBuzzSharp
Marshal.FreeCoTaskMem (shapersPtr);
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeHandler ()
{
if (Handle != IntPtr.Zero) {

Просмотреть файл

@ -182,6 +182,9 @@ namespace HarfBuzzSharp
Handle, DelegateProxies.GlyphFromNameProxy, ctx, DelegateProxies.ReleaseDelegateProxyForMulti);
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeHandler ()
{
if (Handle != IntPtr.Zero) {

Просмотреть файл

@ -112,6 +112,9 @@ namespace HarfBuzzSharp
throw new InvalidOperationException ($"{nameof (UnicodeFunctions)} is immutable and can't be changed.");
}
protected override void Dispose (bool disposing) =>
base.Dispose (disposing);
protected override void DisposeHandler ()
{
if (Handle != IntPtr.Zero) {

Просмотреть файл

@ -1,13 +1,13 @@
#addin nuget:?package=Cake.Xamarin&version=3.0.0
#addin nuget:?package=Cake.XCode&version=4.0.0
#addin nuget:?package=Cake.FileHelpers&version=3.1.0
#addin nuget:?package=SharpCompress&version=0.22.0
#addin nuget:?package=Mono.ApiTools.NuGetDiff&version=1.0.0&loaddependencies=true
#addin nuget:?package=Cake.Xamarin&version=3.0.2
#addin nuget:?package=Cake.XCode&version=4.2.0
#addin nuget:?package=Cake.FileHelpers&version=3.2.1
#addin nuget:?package=SharpCompress&version=0.24.0
#addin nuget:?package=Mono.ApiTools.NuGetDiff&version=1.1.0-preview.1&prerelease&loaddependencies=true
#addin nuget:?package=Xamarin.Nuget.Validator&version=1.1.1
#tool nuget:?package=mdoc&version=5.7.4.9
#tool nuget:?package=mdoc&version=5.7.4.10
#tool nuget:?package=xunit.runner.console&version=2.4.1
#tool nuget:?package=vswhere&version=2.5.2
#tool nuget:?package=vswhere&version=2.7.1
using System.Linq;
using System.Net.Http;
@ -495,6 +495,8 @@ Task ("Nothing");
Task ("CI")
.IsDependentOn ("externals")
.IsDependentOn ("libs")
.IsDependentOn ("nuget")
.IsDependentOn ("docs-api-diff")
.IsDependentOn ("nuget-validation")
.IsDependentOn ("tests")
.IsDependentOn ("samples");

Просмотреть файл

@ -61,7 +61,7 @@ Task ("docs-download-output")
Task ("docs-api-diff")
.Does (async () =>
{
var baseDir = "./output/api-diff";
var baseDir = "./output/nugets/api-diff";
CleanDirectories (baseDir);
var comparer = await CreateNuGetDiffAsync ();
@ -98,9 +98,6 @@ Task ("docs-api-diff")
Information ($"Diff complete of '{id}'.");
}
// clean up after working
CleanDirectories (baseDir);
});
Task ("docs-api-diff-past")
@ -186,7 +183,12 @@ Task ("docs-update-frameworks")
foreach (var (path, platform) in GetPlatformDirectories ($"{packagePath}/lib")) {
string moniker;
if (id.StartsWith ("SkiaSharp.Views") && !id.StartsWith ("SkiaSharp.Views.Forms"))
if (id.StartsWith ("SkiaSharp.Views.Forms"))
if (id != "SkiaSharp.Views.Forms")
continue;
else
moniker = $"skiasharp-views-forms-{version}";
else if (id.StartsWith ("SkiaSharp.Views"))
moniker = $"skiasharp-views-{version}";
else if (platform == null)
moniker = $"{id.ToLower ().Replace (".", "-")}-{version}";

Просмотреть файл

@ -13,6 +13,7 @@ void RunMSBuild (
MSBuild (solution, c => {
c.Configuration = CONFIGURATION;
c.Verbosity = VERBOSITY;
c.ToolVersion = MSBuildToolVersion.VS2017;
if (restoreOnly) {
c.Targets.Clear();
@ -363,12 +364,7 @@ async Task<NuGetDiff> CreateNuGetDiffAsync ()
comparer.SearchPaths.AddRange (GetReferenceSearchPaths ());
comparer.PackageCache = PACKAGE_CACHE_PATH.FullPath;
var AddDep = new Func<string, string, Task> (async (id, platform) => {
var version = GetVersion (id, "release");
var root = await comparer.ExtractCachedPackageAsync(id, version);
comparer.SearchPaths.Add(System.IO.Path.Combine(root, "lib", platform));
});
await AddDep ("OpenTK.GLControl", "NET40", "reference");
await AddDep ("OpenTK.GLControl", "NET40");
await AddDep ("Tizen.NET", "netstandard2.0");
await AddDep ("Xamarin.Forms", "netstandard2.0");
@ -377,9 +373,17 @@ async Task<NuGetDiff> CreateNuGetDiffAsync ()
await AddDep ("Xamarin.Forms", "Xamarin.Mac");
await AddDep ("Xamarin.Forms", "tizen40");
await AddDep ("Xamarin.Forms", "uap10.0");
await AddDep ("Xamarin.Forms.Platform.WPF", "net45");
await AddDep ("GtkSharp", "netstandard2.0");
await AddDep ("GLibSharp", "netstandard2.0");
await AddDep ("AtkSharp", "netstandard2.0");
return comparer;
async Task AddDep(string id, string platform, string type = "release")
{
var version = GetVersion (id, type);
var root = await comparer.ExtractCachedPackageAsync(id, version);
comparer.SearchPaths.Add(System.IO.Path.Combine(root, "lib", platform));
}
}

Просмотреть файл

@ -29,12 +29,6 @@ public bool IsImmutable { get; }
public int Length { get; }
```
Removed method:
```csharp
protected override void Dispose (bool disposing);
```
Added methods:
```csharp
@ -74,18 +68,14 @@ public Script Script { get; set; }
public UnicodeFunctions UnicodeFunctions { get; set; }
```
Removed method:
```csharp
protected override void Dispose (bool disposing);
```
Added methods:
```csharp
public void Add (uint codepoint, uint cluster);
public void AddCodepoints (System.ReadOnlySpan<int> text);
public void AddCodepoints (System.ReadOnlySpan<uint> text);
public void AddCodepoints (IntPtr text, int textLength);
public void AddCodepoints (System.ReadOnlySpan<int> text, int itemOffset, int itemLength);
public void AddCodepoints (System.ReadOnlySpan<uint> text, int itemOffset, int itemLength);
public void AddCodepoints (IntPtr text, int textLength, int itemOffset, int itemLength);
public void AddUtf16 (System.ReadOnlySpan<byte> text);
@ -96,9 +86,11 @@ public void AddUtf16 (System.ReadOnlySpan<char> text, int itemOffset, int itemLe
public void AddUtf16 (string text, int itemOffset, int itemLength);
public void AddUtf16 (IntPtr text, int textLength, int itemOffset, int itemLength);
public void AddUtf32 (System.ReadOnlySpan<byte> text);
public void AddUtf32 (System.ReadOnlySpan<int> text);
public void AddUtf32 (System.ReadOnlySpan<uint> text);
public void AddUtf32 (string text);
public void AddUtf32 (IntPtr text, int textLength);
public void AddUtf32 (System.ReadOnlySpan<int> text, int itemOffset, int itemLength);
public void AddUtf32 (System.ReadOnlySpan<uint> text, int itemOffset, int itemLength);
public void AddUtf32 (IntPtr text, int textLength, int itemOffset, int itemLength);
public void AddUtf8 (System.ReadOnlySpan<byte> text);
@ -154,12 +146,6 @@ public bool IsImmutable { get; }
public Tag[] Tables { get; }
```
Removed method:
```csharp
protected override void Dispose (bool disposing);
```
Added methods:
```csharp
@ -206,16 +192,11 @@ public Font (Font parent);
Added properties:
```csharp
public OpenTypeMetrics OpenTypeMetrics { get; }
public Font Parent { get; }
public string[] SupportedShapers { get; }
```
Removed method:
```csharp
protected override void Dispose (bool disposing);
```
Added methods:
```csharp
@ -236,7 +217,9 @@ public void SetFontFunctions (FontFunctions fontFunctions);
public void SetFontFunctions (FontFunctions fontFunctions, object fontData);
public void SetFontFunctions (FontFunctions fontFunctions, object fontData, ReleaseDelegate destroy);
public void Shape (Buffer buffer, System.Collections.Generic.IReadOnlyList<Feature> features, System.Collections.Generic.IReadOnlyList<string> shapers);
public bool TryGetGlyph (int unicode, out uint glyph);
public bool TryGetGlyph (uint unicode, out uint glyph);
public bool TryGetGlyph (int unicode, uint variationSelector, out uint glyph);
public bool TryGetGlyph (uint unicode, uint variationSelector, out uint glyph);
public bool TryGetGlyphContourPoint (uint glyph, uint pointIndex, out int x, out int y);
public bool TryGetGlyphContourPointForOrigin (uint glyph, uint pointIndex, Direction direction, out int x, out int y);
@ -246,8 +229,11 @@ public bool TryGetGlyphFromString (string s, out uint glyph);
public bool TryGetGlyphName (uint glyph, out string name);
public bool TryGetHorizontalFontExtents (out FontExtents extents);
public bool TryGetHorizontalGlyphOrigin (uint glyph, out int xOrigin, out int yOrigin);
public bool TryGetNominalGlyph (int unicode, out uint glyph);
public bool TryGetNominalGlyph (uint unicode, out uint glyph);
public bool TryGetVariationGlyph (int unicode, out uint glyph);
public bool TryGetVariationGlyph (uint unicode, out uint glyph);
public bool TryGetVariationGlyph (int unicode, uint variationSelector, out uint glyph);
public bool TryGetVariationGlyph (uint unicode, uint variationSelector, out uint glyph);
public bool TryGetVerticalFontExtents (out FontExtents extents);
public bool TryGetVerticalGlyphOrigin (uint glyph, out int xOrigin, out int yOrigin);
@ -383,6 +369,7 @@ public class FontFunctions : HarfBuzzSharp.NativeObject, System.IDisposable {
public static FontFunctions Empty { get; }
public bool IsImmutable { get; }
// methods
protected override void Dispose (bool disposing);
protected override void DisposeHandler ();
public void MakeImmutable ();
public void SetGlyphContourPointDelegate (GlyphContourPointDelegate del, ReleaseDelegate destroy);
@ -613,6 +600,56 @@ public sealed delegate NominalGlyphsDelegate : System.MulticastDelegate, System.
}
```
#### New Type: HarfBuzzSharp.OpenTypeMetrics
```csharp
public struct OpenTypeMetrics {
// constructors
public OpenTypeMetrics (IntPtr font);
// methods
public float GetVariation (OpenTypeMetricsTag metricsTag);
public int GetXVariation (OpenTypeMetricsTag metricsTag);
public int GetYVariation (OpenTypeMetricsTag metricsTag);
public bool TryGetPosition (OpenTypeMetricsTag metricsTag, out int position);
}
```
#### New Type: HarfBuzzSharp.OpenTypeMetricsTag
```csharp
[Serializable]
public enum OpenTypeMetricsTag {
CapHeight = 1668311156,
HorizontalAscender = 1751216995,
HorizontalCaretOffset = 1751347046,
HorizontalCaretRise = 1751347827,
HorizontalCaretRun = 1751347822,
HorizontalClippingAscent = 1751346273,
HorizontalClippingDescent = 1751346276,
HorizontalDescender = 1751413603,
HorizontalLineGap = 1751934832,
StrikeoutOffset = 1937011311,
StrikeoutSize = 1937011315,
SubScriptEmXOffset = 1935833199,
SubScriptEmXSize = 1935833203,
SubScriptEmYOffset = 1935833455,
SubScriptEmYSize = 1935833459,
SuperScriptEmXOffset = 1936750703,
SuperScriptEmXSize = 1936750707,
SuperScriptEmYOffset = 1936750959,
SuperScriptEmYSize = 1936750963,
UnderlineOffset = 1970168943,
UnderlineSize = 1970168947,
VerticalAscender = 1986098019,
VerticalCaretOffset = 1986228070,
VerticalCaretRise = 1986228851,
VerticalCaretRun = 1986228846,
VerticalDescender = 1986294627,
VerticalLineGap = 1986815856,
XHeight = 2020108148,
}
```
#### New Type: HarfBuzzSharp.ReleaseDelegate
```csharp
@ -934,6 +971,7 @@ public class UnicodeFunctions : HarfBuzzSharp.NativeObject, System.IDisposable {
public bool IsImmutable { get; }
public UnicodeFunctions Parent { get; }
// methods
protected override void Dispose (bool disposing);
protected override void DisposeHandler ();
public UnicodeCombiningClass GetCombiningClass (uint unicode);
public UnicodeGeneralCategory GetGeneralCategory (uint unicode);

Просмотреть файл

@ -3,7 +3,21 @@
In this directory, there are is set of sub-folders for each NuGet package - each containing a set of API diffs for each release.
* **[SkiaSharp](SkiaSharp)**
* **[SkiaSharp.Views](SkiaSharp.Views)**
* **[SkiaSharp.Views.Forms](SkiaSharp.Views.Forms)**
* **[SkiaSharp.HarfBuzz](SkiaSharp.HarfBuzz)**
* **[HarfBuzzSharp](HarfBuzzSharp)**
There are also diffs for the various views.
For **Xamarin.Forms**:
* **[SkiaSharp.Views.Forms](SkiaSharp.Views.Forms)**
* **[SkiaSharp.Views.Forms.WPF](SkiaSharp.Views.Forms.WPF)**
For **native** platforms:
* **[SkiaSharp.Views](SkiaSharp.Views)**
* **[SkiaSharp.Views.Desktop.Common](SkiaSharp.Views.Desktop.Common)**
* **[SkiaSharp.Views.Gtk2](SkiaSharp.Views.Gtk2)**
* **[SkiaSharp.Views.Gtk3](SkiaSharp.Views.Gtk3)**
* **[SkiaSharp.Views.WindowsForms](SkiaSharp.Views.WindowsForms)**
* **[SkiaSharp.Views.WPF](SkiaSharp.Views.WPF)**

Просмотреть файл

@ -0,0 +1,349 @@
# API diff: SkiaSharp.Views.Forms.dll
## SkiaSharp.Views.Forms.dll
> Assembly Version Changed: 1.68.0.0 vs 0.0.0.0
### New Namespace SkiaSharp.Views.Forms
#### New Type: SkiaSharp.Views.Forms.Extensions
```csharp
public static class Extensions {
// methods
public static Xamarin.Forms.Color ToFormsColor (this SkiaSharp.SKColor color);
public static Xamarin.Forms.Point ToFormsPoint (this SkiaSharp.SKPoint point);
public static Xamarin.Forms.Point ToFormsPoint (this SkiaSharp.SKPointI point);
public static Xamarin.Forms.Rectangle ToFormsRect (this SkiaSharp.SKRect rect);
public static Xamarin.Forms.Rectangle ToFormsRect (this SkiaSharp.SKRectI rect);
public static Xamarin.Forms.Size ToFormsSize (this SkiaSharp.SKSize size);
public static Xamarin.Forms.Size ToFormsSize (this SkiaSharp.SKSizeI size);
public static SkiaSharp.SKColor ToSKColor (this Xamarin.Forms.Color color);
public static SkiaSharp.SKPoint ToSKPoint (this Xamarin.Forms.Point point);
public static SkiaSharp.SKRect ToSKRect (this Xamarin.Forms.Rectangle rect);
public static SkiaSharp.SKSize ToSKSize (this Xamarin.Forms.Size size);
}
```
#### New Type: SkiaSharp.Views.Forms.GetPropertyValueEventArgs`1
```csharp
public class GetPropertyValueEventArgs`1 : System.EventArgs {
// constructors
public GetPropertyValueEventArgs`1 ();
// properties
public T Value { get; set; }
}
```
#### New Type: SkiaSharp.Views.Forms.ISKCanvasViewController
```csharp
public interface ISKCanvasViewController : Xamarin.Forms.IElementController, Xamarin.Forms.IViewController, Xamarin.Forms.IVisualElementController {
// events
public event System.EventHandler<SkiaSharp.Views.Forms.GetPropertyValueEventArgs<SkiaSharp.SKSize>> GetCanvasSize;
public event System.EventHandler SurfaceInvalidated;
// methods
public virtual void OnPaintSurface (SKPaintSurfaceEventArgs e);
public virtual void OnTouch (SKTouchEventArgs e);
}
```
#### New Type: SkiaSharp.Views.Forms.SKBitmapImageSource
```csharp
public sealed class SKBitmapImageSource : Xamarin.Forms.ImageSource, System.ComponentModel.INotifyPropertyChanged, Xamarin.Forms.IElementController, Xamarin.Forms.Internals.IDynamicResourceHandler, Xamarin.Forms.Internals.INameScope {
// constructors
public SKBitmapImageSource ();
// fields
public static Xamarin.Forms.BindableProperty BitmapProperty;
// properties
public SkiaSharp.SKBitmap Bitmap { get; set; }
// methods
public override System.Threading.Tasks.Task<bool> Cancel ();
protected override void OnPropertyChanged (string propertyName);
public static SKBitmapImageSource op_Implicit (SkiaSharp.SKBitmap bitmap);
public static SkiaSharp.SKBitmap op_Implicit (SKBitmapImageSource source);
}
```
#### New Type: SkiaSharp.Views.Forms.SKCanvasView
```csharp
public class SKCanvasView : Xamarin.Forms.View, ISKCanvasViewController, System.ComponentModel.INotifyPropertyChanged, Xamarin.Forms.IAnimatable, Xamarin.Forms.IElementController, Xamarin.Forms.ITabStopElement, Xamarin.Forms.IViewController, Xamarin.Forms.IVisualElementController, Xamarin.Forms.Internals.IDynamicResourceHandler, Xamarin.Forms.Internals.IGestureController, Xamarin.Forms.Internals.INameScope, Xamarin.Forms.Internals.INavigationProxy {
// constructors
public SKCanvasView ();
// fields
public static Xamarin.Forms.BindableProperty EnableTouchEventsProperty;
public static Xamarin.Forms.BindableProperty IgnorePixelScalingProperty;
// properties
public SkiaSharp.SKSize CanvasSize { get; }
public bool EnableTouchEvents { get; set; }
public bool IgnorePixelScaling { get; set; }
// events
public event System.EventHandler<SKPaintSurfaceEventArgs> PaintSurface;
public event System.EventHandler<SKTouchEventArgs> Touch;
// methods
public void InvalidateSurface ();
protected override Xamarin.Forms.SizeRequest OnMeasure (double widthConstraint, double heightConstraint);
protected virtual void OnPaintSurface (SKPaintSurfaceEventArgs e);
protected virtual void OnTouch (SKTouchEventArgs e);
}
```
#### New Type: SkiaSharp.Views.Forms.SKCanvasViewRenderer
```csharp
public class SKCanvasViewRenderer : SkiaSharp.Views.Forms.SKCanvasViewRendererBase`2[SkiaSharp.Views.Forms.SKCanvasView,SkiaSharp.Views.WPF.SKElement], System.IDisposable, Xamarin.Forms.IEffectControlProvider, Xamarin.Forms.IRegisterable, Xamarin.Forms.Platform.WPF.IVisualElementRenderer {
// constructors
public SKCanvasViewRenderer ();
}
```
#### New Type: SkiaSharp.Views.Forms.SKCanvasViewRendererBase`2
```csharp
public abstract class SKCanvasViewRendererBase`2 : Xamarin.Forms.Platform.WPF.ViewRenderer`2[TFormsView,TNativeView], System.IDisposable, Xamarin.Forms.IEffectControlProvider, Xamarin.Forms.IRegisterable, Xamarin.Forms.Platform.WPF.IVisualElementRenderer {
// constructors
protected SKCanvasViewRendererBase`2 ();
// methods
protected virtual TNativeView CreateNativeControl ();
protected override void Dispose (bool disposing);
protected override void OnElementChanged (Xamarin.Forms.Platform.WPF.ElementChangedEventArgs<TFormsView> e);
protected override void OnElementPropertyChanged (object sender, System.ComponentModel.PropertyChangedEventArgs e);
}
```
#### New Type: SkiaSharp.Views.Forms.SKGLView
```csharp
public class SKGLView : Xamarin.Forms.View, System.ComponentModel.INotifyPropertyChanged, Xamarin.Forms.IAnimatable, Xamarin.Forms.IElementController, Xamarin.Forms.ITabStopElement, Xamarin.Forms.IViewController, Xamarin.Forms.IVisualElementController, Xamarin.Forms.Internals.IDynamicResourceHandler, Xamarin.Forms.Internals.IGestureController, Xamarin.Forms.Internals.INameScope, Xamarin.Forms.Internals.INavigationProxy {
// constructors
public SKGLView ();
// fields
public static Xamarin.Forms.BindableProperty EnableTouchEventsProperty;
public static Xamarin.Forms.BindableProperty HasRenderLoopProperty;
// properties
public SkiaSharp.SKSize CanvasSize { get; }
public bool EnableTouchEvents { get; set; }
public SkiaSharp.GRContext GRContext { get; }
public bool HasRenderLoop { get; set; }
// events
public event System.EventHandler<SKPaintGLSurfaceEventArgs> PaintSurface;
public event System.EventHandler<SKTouchEventArgs> Touch;
// methods
public void InvalidateSurface ();
protected override Xamarin.Forms.SizeRequest OnMeasure (double widthConstraint, double heightConstraint);
protected virtual void OnPaintSurface (SKPaintGLSurfaceEventArgs e);
protected virtual void OnTouch (SKTouchEventArgs e);
}
```
#### New Type: SkiaSharp.Views.Forms.SKGLViewRenderer
```csharp
public class SKGLViewRenderer : SkiaSharp.Views.Forms.SKGLViewRendererBase`2[SkiaSharp.Views.Forms.SKGLView,SkiaSharp.Views.Forms.SKHostedGLControl], System.IDisposable, Xamarin.Forms.IEffectControlProvider, Xamarin.Forms.IRegisterable, Xamarin.Forms.Platform.WPF.IVisualElementRenderer {
// constructors
public SKGLViewRenderer ();
// methods
protected override void Dispose (bool disposing);
protected override void SetupRenderLoop (bool oneShot);
}
```
#### New Type: SkiaSharp.Views.Forms.SKGLViewRendererBase`2
```csharp
public abstract class SKGLViewRendererBase`2 : Xamarin.Forms.Platform.WPF.ViewRenderer`2[TFormsView,TNativeView], System.IDisposable, Xamarin.Forms.IEffectControlProvider, Xamarin.Forms.IRegisterable, Xamarin.Forms.Platform.WPF.IVisualElementRenderer {
// constructors
protected SKGLViewRendererBase`2 ();
// properties
public SkiaSharp.GRContext GRContext { get; }
// methods
protected virtual TNativeView CreateNativeControl ();
protected override void Dispose (bool disposing);
protected override void OnElementChanged (Xamarin.Forms.Platform.WPF.ElementChangedEventArgs<TFormsView> e);
protected override void OnElementPropertyChanged (object sender, System.ComponentModel.PropertyChangedEventArgs e);
protected virtual void SetupRenderLoop (bool oneShot);
}
```
#### New Type: SkiaSharp.Views.Forms.SKHostedGLControl
```csharp
public class SKHostedGLControl : System.Windows.Forms.Integration.WindowsFormsHost, System.ComponentModel.ISupportInitialize, System.IDisposable, System.Windows.IFrameworkInputElement, System.Windows.IInputElement, System.Windows.Interop.IKeyboardInputSink, System.Windows.Interop.IWin32Window, System.Windows.Markup.IQueryAmbient, System.Windows.Media.Animation.IAnimatable {
// constructors
public SKHostedGLControl ();
public SKHostedGLControl (OpenTK.Graphics.GraphicsMode mode);
public SKHostedGLControl (OpenTK.Graphics.GraphicsMode mode, int major, int minor, OpenTK.Graphics.GraphicsContextFlags flags);
// properties
public SkiaSharp.SKSize CanvasSize { get; }
public SkiaSharp.Views.Desktop.SKGLControl GLControl { get; }
public SkiaSharp.GRContext GRContext { get; }
// events
public event System.EventHandler<SkiaSharp.Views.Desktop.SKPaintGLSurfaceEventArgs> PaintSurface;
// methods
public void Initialize (SkiaSharp.Views.Desktop.SKGLControl control);
public void Invalidate ();
}
```
#### New Type: SkiaSharp.Views.Forms.SKImageImageSource
```csharp
public sealed class SKImageImageSource : Xamarin.Forms.ImageSource, System.ComponentModel.INotifyPropertyChanged, Xamarin.Forms.IElementController, Xamarin.Forms.Internals.IDynamicResourceHandler, Xamarin.Forms.Internals.INameScope {
// constructors
public SKImageImageSource ();
// fields
public static Xamarin.Forms.BindableProperty ImageProperty;
// properties
public SkiaSharp.SKImage Image { get; set; }
// methods
public override System.Threading.Tasks.Task<bool> Cancel ();
protected override void OnPropertyChanged (string propertyName);
public static SKImageImageSource op_Implicit (SkiaSharp.SKImage image);
public static SkiaSharp.SKImage op_Implicit (SKImageImageSource source);
}
```
#### New Type: SkiaSharp.Views.Forms.SKImageSourceHandler
```csharp
public sealed class SKImageSourceHandler : Xamarin.Forms.IRegisterable, Xamarin.Forms.Platform.WPF.IImageSourceHandler {
// constructors
public SKImageSourceHandler ();
// methods
public virtual System.Threading.Tasks.Task<System.Windows.Media.ImageSource> LoadImageAsync (Xamarin.Forms.ImageSource imagesource, System.Threading.CancellationToken cancelationToken);
}
```
#### New Type: SkiaSharp.Views.Forms.SKMouseButton
```csharp
[Serializable]
public enum SKMouseButton {
Left = 1,
Middle = 2,
Right = 3,
Unknown = 0,
}
```
#### New Type: SkiaSharp.Views.Forms.SKPaintGLSurfaceEventArgs
```csharp
public class SKPaintGLSurfaceEventArgs : System.EventArgs {
// constructors
public SKPaintGLSurfaceEventArgs (SkiaSharp.SKSurface surface, SkiaSharp.GRBackendRenderTarget renderTarget);
[Obsolete ("Use SKPaintGLSurfaceEventArgs(SKSurface, GRBackendRenderTarget, SKColorType, GRSurfaceOrigin) instead.")]
public SKPaintGLSurfaceEventArgs (SkiaSharp.SKSurface surface, SkiaSharp.GRBackendRenderTargetDesc renderTarget);
public SKPaintGLSurfaceEventArgs (SkiaSharp.SKSurface surface, SkiaSharp.GRBackendRenderTarget renderTarget, SkiaSharp.GRSurfaceOrigin origin, SkiaSharp.SKColorType colorType);
// properties
public SkiaSharp.GRBackendRenderTarget BackendRenderTarget { get; }
public SkiaSharp.SKColorType ColorType { get; }
public SkiaSharp.GRSurfaceOrigin Origin { get; }
[Obsolete ("Use BackendRenderTarget instead.")]
public SkiaSharp.GRBackendRenderTargetDesc RenderTarget { get; }
public SkiaSharp.SKSurface Surface { get; }
}
```
#### New Type: SkiaSharp.Views.Forms.SKPaintSurfaceEventArgs
```csharp
public class SKPaintSurfaceEventArgs : System.EventArgs {
// constructors
public SKPaintSurfaceEventArgs (SkiaSharp.SKSurface surface, SkiaSharp.SKImageInfo info);
// properties
public SkiaSharp.SKImageInfo Info { get; }
public SkiaSharp.SKSurface Surface { get; }
}
```
#### New Type: SkiaSharp.Views.Forms.SKPictureImageSource
```csharp
public sealed class SKPictureImageSource : Xamarin.Forms.ImageSource, System.ComponentModel.INotifyPropertyChanged, Xamarin.Forms.IElementController, Xamarin.Forms.Internals.IDynamicResourceHandler, Xamarin.Forms.Internals.INameScope {
// constructors
public SKPictureImageSource ();
// fields
public static Xamarin.Forms.BindableProperty DimensionsProperty;
public static Xamarin.Forms.BindableProperty PictureProperty;
// properties
public SkiaSharp.SKSizeI Dimensions { get; set; }
public SkiaSharp.SKPicture Picture { get; set; }
// methods
public override System.Threading.Tasks.Task<bool> Cancel ();
protected override void OnPropertyChanged (string propertyName);
public static SkiaSharp.SKPicture op_Explicit (SKPictureImageSource source);
}
```
#### New Type: SkiaSharp.Views.Forms.SKPixmapImageSource
```csharp
public sealed class SKPixmapImageSource : Xamarin.Forms.ImageSource, System.ComponentModel.INotifyPropertyChanged, Xamarin.Forms.IElementController, Xamarin.Forms.Internals.IDynamicResourceHandler, Xamarin.Forms.Internals.INameScope {
// constructors
public SKPixmapImageSource ();
// fields
public static Xamarin.Forms.BindableProperty PixmapProperty;
// properties
public SkiaSharp.SKPixmap Pixmap { get; set; }
// methods
public override System.Threading.Tasks.Task<bool> Cancel ();
protected override void OnPropertyChanged (string propertyName);
public static SKPixmapImageSource op_Implicit (SkiaSharp.SKPixmap pixmap);
public static SkiaSharp.SKPixmap op_Implicit (SKPixmapImageSource source);
}
```
#### New Type: SkiaSharp.Views.Forms.SKTouchAction
```csharp
[Serializable]
public enum SKTouchAction {
Cancelled = 4,
Entered = 0,
Exited = 5,
Moved = 2,
Pressed = 1,
Released = 3,
WheelChanged = 6,
}
```
#### New Type: SkiaSharp.Views.Forms.SKTouchDeviceType
```csharp
[Serializable]
public enum SKTouchDeviceType {
Mouse = 1,
Pen = 2,
Touch = 0,
}
```
#### New Type: SkiaSharp.Views.Forms.SKTouchEventArgs
```csharp
public class SKTouchEventArgs : System.EventArgs {
// constructors
public SKTouchEventArgs (long id, SKTouchAction type, SkiaSharp.SKPoint location, bool inContact);
public SKTouchEventArgs (long id, SKTouchAction type, SKMouseButton mouseButton, SKTouchDeviceType deviceType, SkiaSharp.SKPoint location, bool inContact);
public SKTouchEventArgs (long id, SKTouchAction type, SKMouseButton mouseButton, SKTouchDeviceType deviceType, SkiaSharp.SKPoint location, bool inContact, int wheelDelta);
// properties
public SKTouchAction ActionType { get; }
public SKTouchDeviceType DeviceType { get; }
public bool Handled { get; set; }
public long Id { get; }
public bool InContact { get; }
public SkiaSharp.SKPoint Location { get; }
public SKMouseButton MouseButton { get; }
public int WheelDelta { get; }
// methods
public override string ToString ();
}
```

Просмотреть файл

@ -16,6 +16,48 @@ Modified methods:
```
#### Type Changed: SkiaSharp.SKObject
Removed property:
```csharp
protected bool OwnsHandle { get; }
```
#### Type Changed: SkiaSharp.SKPath
#### Type Changed: SkiaSharp.SKPath.Iterator
Modified base type:
```diff
-SkiaSharp.SKNativeObject
+SkiaSharp.SKObject
```
#### Type Changed: SkiaSharp.SKPath.OpBuilder
Modified base type:
```diff
-SkiaSharp.SKNativeObject
+SkiaSharp.SKObject
```
#### Type Changed: SkiaSharp.SKPath.RawIterator
Modified base type:
```diff
-SkiaSharp.SKNativeObject
+SkiaSharp.SKObject
```
#### Type Changed: SkiaSharp.SKTextBlobBuilder
Modified methods:

Просмотреть файл

@ -4,11 +4,59 @@
### Namespace SkiaSharp
#### Type Changed: SkiaSharp.SKBitmap
#### Type Changed: SkiaSharp.GRBackendRenderTarget
Added method:
```csharp
protected override void DisposeNative ();
```
#### Type Changed: SkiaSharp.GRBackendTexture
Added method:
```csharp
protected override void DisposeNative ();
```
#### Type Changed: SkiaSharp.SK3dView
Added method:
```csharp
protected override void DisposeNative ();
```
#### Type Changed: SkiaSharp.SKAbstractManagedStream
Added methods:
```csharp
protected override void DisposeNative ();
protected virtual IntPtr OnDuplicate ();
protected virtual IntPtr OnFork ();
```
#### Type Changed: SkiaSharp.SKAbstractManagedWStream
Added method:
```csharp
protected override void DisposeNative ();
```
#### Type Changed: SkiaSharp.SKBitmap
Added methods:
```csharp
protected override void DisposeNative ();
public System.ReadOnlySpan<byte> GetPixelSpan ();
```
@ -18,12 +66,22 @@ public System.ReadOnlySpan<byte> GetPixelSpan ();
Added methods:
```csharp
protected override void DisposeNative ();
public void DrawDrawable (SKDrawable drawable, ref SKMatrix matrix);
public void DrawDrawable (SKDrawable drawable, SKPoint p);
public void DrawDrawable (SKDrawable drawable, float x, float y);
```
#### Type Changed: SkiaSharp.SKCodec
Added method:
```csharp
protected override void DisposeNative ();
```
#### Type Changed: SkiaSharp.SKColorSpace
Added properties:
@ -116,6 +174,51 @@ public static SKData CreateCopy (System.ReadOnlySpan<byte> bytes);
```
#### Type Changed: SkiaSharp.SKDynamicMemoryWStream
Added method:
```csharp
protected override void DisposeNative ();
```
#### Type Changed: SkiaSharp.SKFileStream
Added method:
```csharp
protected override void DisposeNative ();
```
#### Type Changed: SkiaSharp.SKFileWStream
Added method:
```csharp
protected override void DisposeNative ();
```
#### Type Changed: SkiaSharp.SKFontStyle
Added method:
```csharp
protected override void DisposeNative ();
```
#### Type Changed: SkiaSharp.SKFrontBufferedManagedStream
Added method:
```csharp
protected override void DisposeManaged ();
```
#### Type Changed: SkiaSharp.SKImage
Added methods:
@ -127,6 +230,40 @@ public static SKImage FromPixelCopy (SKImageInfo info, System.ReadOnlySpan<byte>
```
#### Type Changed: SkiaSharp.SKImageFilter
#### Type Changed: SkiaSharp.SKImageFilter.CropRect
Added method:
```csharp
protected override void DisposeNative ();
```
#### Type Changed: SkiaSharp.SKManagedStream
Added methods:
```csharp
public int CopyTo (SKWStream destination);
protected override void DisposeManaged ();
protected override IntPtr OnDuplicate ();
protected override IntPtr OnFork ();
public SKStreamAsset ToMemoryStream ();
```
#### Type Changed: SkiaSharp.SKManagedWStream
Added method:
```csharp
protected override void DisposeManaged ();
```
#### Type Changed: SkiaSharp.SKMatrix
Added constructor:
@ -136,6 +273,59 @@ public SKMatrix (float scaleX, float skewX, float transX, float skewY, float sca
```
#### Type Changed: SkiaSharp.SKMatrix44
Added method:
```csharp
protected override void DisposeNative ();
```
#### Type Changed: SkiaSharp.SKMemoryStream
Added method:
```csharp
protected override void DisposeNative ();
```
#### Type Changed: SkiaSharp.SKNativeObject
Added properties:
```csharp
protected bool IgnorePublicDispose { get; set; }
protected bool IsDisposed { get; }
protected virtual bool OwnsHandle { get; set; }
```
Added methods:
```csharp
protected void DisposeInternal ();
protected virtual void DisposeManaged ();
protected virtual void DisposeNative ();
```
#### Type Changed: SkiaSharp.SKObject
Removed property:
```csharp
protected bool OwnsHandle { get; }
```
Added methods:
```csharp
protected override void DisposeManaged ();
protected override void DisposeNative ();
```
#### Type Changed: SkiaSharp.SKPaint
Added methods:
@ -145,6 +335,7 @@ public long BreakText (IntPtr buffer, int length, float maxWidth);
public long BreakText (IntPtr buffer, int length, float maxWidth, out float measuredWidth);
public bool ContainsGlyphs (IntPtr text, IntPtr length);
public int CountGlyphs (IntPtr text, IntPtr length);
protected override void DisposeNative ();
public float[] GetGlyphWidths (IntPtr text, IntPtr length);
public float[] GetGlyphWidths (IntPtr text, IntPtr length, out SKRect[] bounds);
public ushort[] GetGlyphs (IntPtr text, IntPtr length);
@ -159,20 +350,88 @@ public void Reset ();
```
#### Type Changed: SkiaSharp.SKPictureRecorder
#### Type Changed: SkiaSharp.SKPath
Added method:
```csharp
protected override void DisposeNative ();
```
#### Type Changed: SkiaSharp.SKPath.Iterator
Modified base type:
```diff
-SkiaSharp.SKNativeObject
+SkiaSharp.SKObject
```
Added method:
```csharp
protected override void DisposeNative ();
```
#### Type Changed: SkiaSharp.SKPath.OpBuilder
Modified base type:
```diff
-SkiaSharp.SKNativeObject
+SkiaSharp.SKObject
```
Added method:
```csharp
protected override void DisposeNative ();
```
#### Type Changed: SkiaSharp.SKPath.RawIterator
Modified base type:
```diff
-SkiaSharp.SKNativeObject
+SkiaSharp.SKObject
```
Added method:
```csharp
protected override void DisposeNative ();
```
#### Type Changed: SkiaSharp.SKPathMeasure
Added method:
```csharp
protected override void DisposeNative ();
```
#### Type Changed: SkiaSharp.SKPictureRecorder
Added methods:
```csharp
protected override void DisposeNative ();
public SKDrawable EndRecordingAsDrawable ();
```
#### Type Changed: SkiaSharp.SKPixmap
Added method:
Added methods:
```csharp
protected override void DisposeNative ();
public System.ReadOnlySpan<byte> GetPixelSpan ();
```
@ -189,11 +448,31 @@ public SKRegion (SKRectI rect);
Added methods:
```csharp
protected override void Dispose (bool disposing);
protected override void DisposeNative ();
public bool Intersects (SKPath path);
public bool Op (SKPath path, SKRegionOperation op);
```
#### Type Changed: SkiaSharp.SKRoundRect
Added method:
```csharp
protected override void DisposeNative ();
```
#### Type Changed: SkiaSharp.SKSurfaceProperties
Added method:
```csharp
protected override void DisposeNative ();
```
#### Type Changed: SkiaSharp.SKSwizzle
Added methods:
@ -250,6 +529,7 @@ public SKRunBuffer AllocateRun (SKPaint font, int count, float x, float y);
public SKRunBuffer AllocateRun (SKPaint font, int count, float x, float y, int textByteCount);
public SKRunBuffer AllocateRun (SKPaint font, int count, float x, float y, SKRect? bounds);
public SKRunBuffer AllocateRun (SKPaint font, int count, float x, float y, int textByteCount, SKRect? bounds);
protected override void DisposeNative ();
```
@ -273,6 +553,15 @@ public bool TryGetTableTags (out uint[] tags);
```
#### Type Changed: SkiaSharp.SKXmlStreamWriter
Added method:
```csharp
protected override void DisposeNative ();
```
#### New Type: SkiaSharp.SKColorSpaceType
```csharp
@ -296,6 +585,7 @@ public class SKDrawable : SkiaSharp.SKObject, System.IDisposable {
public uint GenerationId { get; }
// methods
protected override void Dispose (bool disposing);
protected override void DisposeNative ();
public void Draw (SKCanvas canvas, ref SKMatrix matrix);
public void Draw (SKCanvas canvas, float x, float y);
public void NotifyDrawingChanged ();

2
docs

@ -1 +1 @@
Subproject commit 31ef21f823907fc59eceb42c1fdd760cf9c35fd1
Subproject commit 264694bd78ecf745ea1a41c15038403e996ea2de

Просмотреть файл

@ -50,6 +50,9 @@ jobs:
- bash: |
find output/native/linux -type f -name "*.so" -print0 | xargs -0 ldd -v
displayName: List the dependencies for the native binaries
- bash: |
find output/native/linux -type f -name "*.so" -print0 | xargs -0 readelf -Ws | grep GLOBAL
displayName: List the exported symbols for the native binaries
# post-build steps
- ${{ parameters.postBuildSteps }}
# publish artifacts

Просмотреть файл

@ -41,7 +41,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="mdoc" Version="5.7.4.9" PrivateAssets="All" />
<PackageReference Include="mdoc" Version="5.7.4.10" PrivateAssets="All" />
</ItemGroup>
<!--

Просмотреть файл

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Cake" version="0.34.1" />
<package id="Cake" version="0.35.0" />
</packages>