diff --git a/VERSIONS.txt b/VERSIONS.txt index ac8e78b4e..f3c8a1adf 100644 --- a/VERSIONS.txt +++ b/VERSIONS.txt @@ -25,10 +25,7 @@ Uno.UI release 3.7.6 Microsoft.ProjectReunion release 0.8.0 Microsoft.ProjectReunion.Foundation release 0.8.0 Microsoft.ProjectReunion.WinUI release 0.8.0 -Microsoft.Maui.Core release 6.0.100-preview.5.794 -Microsoft.Maui.Controls release 6.0.100-preview.5.794 -Microsoft.Maui.Controls.Compatibility release 6.0.100-preview.5.794 -Microsoft.Maui.Controls.Compatibility.Android.FormsViewGroup release 6.0.100-preview.5.794 +Microsoft.Maui.Graphics release 6.0.100-preview.5.246 Microsoft.Windows.SDK.NET.Ref release 10.0.18362.15 # additional references used by the tooling diff --git a/binding/HarfBuzzSharp/nuget/build/android/HarfBuzzSharp.targets b/binding/HarfBuzzSharp/nuget/build/android/HarfBuzzSharp.targets index f41ecfc01..33ebb029d 100644 --- a/binding/HarfBuzzSharp/nuget/build/android/HarfBuzzSharp.targets +++ b/binding/HarfBuzzSharp/nuget/build/android/HarfBuzzSharp.targets @@ -1,23 +1,4 @@ - - - - <_FixedResolvedFileToPublish - Include="@(ResolvedFileToPublish)" - Condition=" - '%(ResolvedFileToPublish.AssetType)' == 'native' and - '%(ResolvedFileToPublish.Filename)' == 'libHarfBuzzSharp' and - '%(ResolvedFileToPublish.Extension)' == '.so' and - '%(ResolvedFileToPublish.NuGetPackageId)' != '' and - '%(ResolvedFileToPublish.RuntimeIdentifier)' == '' and - '%(ResolvedFileToPublish.PathInPackage)' != '' " /> - - $([System.Text.RegularExpressions.Regex]::Match('%(_FixedResolvedFileToPublish.PathInPackage)', 'runtimes/([^/]+)/native/.*').Groups[1].Value) - - <_FixedResolvedFileToPublish Remove="@(_FixedResolvedFileToPublish)" /> - - - \ No newline at end of file diff --git a/binding/SkiaSharp/nuget/build/android/SkiaSharp.targets b/binding/SkiaSharp/nuget/build/android/SkiaSharp.targets index f5ee39239..33ebb029d 100644 --- a/binding/SkiaSharp/nuget/build/android/SkiaSharp.targets +++ b/binding/SkiaSharp/nuget/build/android/SkiaSharp.targets @@ -1,23 +1,4 @@ - - - - <_FixedResolvedFileToPublish - Include="@(ResolvedFileToPublish)" - Condition=" - '%(ResolvedFileToPublish.AssetType)' == 'native' and - '%(ResolvedFileToPublish.Filename)' == 'libSkiaSharp' and - '%(ResolvedFileToPublish.Extension)' == '.so' and - '%(ResolvedFileToPublish.NuGetPackageId)' != '' and - '%(ResolvedFileToPublish.RuntimeIdentifier)' == '' and - '%(ResolvedFileToPublish.PathInPackage)' != '' " /> - - $([System.Text.RegularExpressions.Regex]::Match('%(_FixedResolvedFileToPublish.PathInPackage)', 'runtimes/([^/]+)/native/.*').Groups[1].Value) - - <_FixedResolvedFileToPublish Remove="@(_FixedResolvedFileToPublish)" /> - - - \ No newline at end of file diff --git a/build.cake b/build.cake index 75330d9c5..a924a7b71 100644 --- a/build.cake +++ b/build.cake @@ -58,7 +58,7 @@ var PREVIEW_NUGET_SUFFIX = string.IsNullOrEmpty (BUILD_NUMBER) ? $"{PREVIEW_LABEL}" : $"{PREVIEW_LABEL}.{BUILD_NUMBER}"; -var PREVIEW_FEED_URL = "https://pkgs.dev.azure.com/xamarin/public/_packaging/SkiaSharp/nuget/v3/index.json"; +var PREVIEW_FEED_URL = Argument ("previewFeed", "https://pkgs.dev.azure.com/xamarin/public/_packaging/SkiaSharp/nuget/v3/index.json"); var TRACKED_NUGETS = new Dictionary { { "SkiaSharp", new Version (1, 57, 0) }, @@ -88,7 +88,6 @@ var TRACKED_NUGETS = new Dictionary { }; var PREVIEW_ONLY_NUGETS = new List { - "SkiaSharp.Views.WinUI", "SkiaSharp.Views.Maui.Core", "SkiaSharp.Views.Maui.Controls", "SkiaSharp.Views.Maui.Controls.Compatibility", @@ -138,7 +137,17 @@ Task ("libs") platform = ".Linux"; } } - RunMSBuild ($"./source/SkiaSharpSource{platform}.sln"); + + var net6 = $"./source/SkiaSharpSource{platform}-net6.slnf"; + var netfx = $"./source/SkiaSharpSource{platform}-netfx.slnf"; + if (FileExists (net6) || FileExists (netfx)) { + if (FileExists (net6)) + RunMSBuild (net6, properties: new Dictionary { { "BuildingForNet6", "true" } }); + if (FileExists (netfx)) + RunMSBuild (netfx, properties: new Dictionary { { "BuildingForNet6", "false" } }); + } else { + RunMSBuild ($"./source/SkiaSharpSource{platform}.sln"); + } // assemble the mdoc docs EnsureDirectoryExists ("./output/docs/mdoc/"); @@ -730,6 +739,7 @@ Task ("nuget-special") } if (GetFiles ("./output/nugets/*.nupkg").Count > 0) { specials[$"_NuGets"] = $"nugets"; + specials[$"_NuGetsPreview"] = $"nugets"; } foreach (var pair in specials) { diff --git a/cake/UpdateDocs.cake b/cake/UpdateDocs.cake index dfa3a6570..c9ed28302 100644 --- a/cake/UpdateDocs.cake +++ b/cake/UpdateDocs.cake @@ -44,10 +44,14 @@ Task ("docs-download-output") CleanDirectories ("./output"); await DownloadPackageAsync ("_nugets", OUTPUT_NUGETS_PATH); + await DownloadPackageAsync ("_nugetspreview", OUTPUT_NUGETS_PATH); foreach (var id in TRACKED_NUGETS.Keys) { var version = GetVersion (id); - var name = $"{id}.{version}.nupkg"; + var localNugetVersion = PREVIEW_ONLY_NUGETS.Contains(id) + ? $"{version}-{PREVIEW_NUGET_SUFFIX}" + : version; + var name = $"{id}.{localNugetVersion}.nupkg"; CleanDirectories ($"./output/{id}"); Unzip ($"{OUTPUT_NUGETS_PATH}/{name}", $"./output/{id}/nuget"); } @@ -70,9 +74,10 @@ Task ("docs-api-diff") comparer.SaveAssemblyApiInfo = true; comparer.SaveAssemblyMarkdownDiff = true; - // some libraries depend on SkiaSharp + // some parts of SkiaSharp depend on other parts comparer.SearchPaths.Add($"./output/SkiaSharp/nuget/lib/netstandard2.0"); - comparer.SearchPaths.Add($"./output/SkiaSharp.Views.Maui.Core/nuget/lib/netstandard2.0"); + foreach (var dir in GetDirectories($"./output/SkiaSharp.Views.Maui.Core/nuget/lib/*")) + comparer.SearchPaths.Add(dir.FullPath); var filter = new NuGetVersions.Filter { IncludePrerelease = NUGET_DIFF_PRERELEASE diff --git a/cake/UtilsManaged.cake b/cake/UtilsManaged.cake index 9dcd967dd..709333841 100644 --- a/cake/UtilsManaged.cake +++ b/cake/UtilsManaged.cake @@ -214,9 +214,12 @@ string[] GetDotNetPacksSearchPaths() var latestSdk = (DirectoryPath)(last.Substring(start, last.Length - start - 1)); var dotnetRoot = latestSdk.Combine(".."); - var packs = GetDirectories(dotnetRoot.Combine("packs").FullPath + "/*.Ref"); + foreach(var pack in GetDirectories(dotnetRoot.Combine("packs").FullPath + "/*.Ref.*")) { + var latestPath = GetDirectories(pack.FullPath + "/*").Last(); + refs.AddRange(GetDirectories(latestPath.FullPath + "/ref/net*").Select(d => d.FullPath)); + } - foreach(var pack in packs) { + foreach(var pack in GetDirectories(dotnetRoot.Combine("packs").FullPath + "/*.Ref")) { var latestPath = GetDirectories(pack.FullPath + "/*").Last(); refs.AddRange(GetDirectories(latestPath.FullPath + "/ref/net*").Select(d => d.FullPath)); } @@ -253,22 +256,8 @@ async Task CreateNuGetDiffAsync() await AddDep("Uno.UI", "UAP"); await AddDep("Microsoft.ProjectReunion.Foundation", "net5.0-windows"); await AddDep("Microsoft.ProjectReunion.WinUI", "net5.0-windows10.0.18362.0"); + await AddDep("Microsoft.Maui.Graphics", "netstandard2.0"); await AddDep("Microsoft.Windows.SDK.NET.Ref", ""); - await AddDep("Microsoft.Maui.Core", "net6.0-android30.0"); - await AddDep("Microsoft.Maui.Core", "net6.0-ios13.6"); - await AddDep("Microsoft.Maui.Core", "net6.0-maccatalyst13.5"); - await AddDep("Microsoft.Maui.Core", "net6.0-windows10.0.18362"); - await AddDep("Microsoft.Maui.Core", "netstandard2.0"); - await AddDep("Microsoft.Maui.Controls", "net6.0-android30.0"); - await AddDep("Microsoft.Maui.Controls", "net6.0-ios13.6"); - await AddDep("Microsoft.Maui.Controls", "net6.0-maccatalyst13.5"); - await AddDep("Microsoft.Maui.Controls", "net6.0-windows10.0.18362"); - await AddDep("Microsoft.Maui.Controls", "netstandard2.0"); - await AddDep("Microsoft.Maui.Controls.Compatibility", "net6.0-android30.0"); - await AddDep("Microsoft.Maui.Controls.Compatibility", "net6.0-ios13.6"); - await AddDep("Microsoft.Maui.Controls.Compatibility", "net6.0-maccatalyst13.5"); - await AddDep("Microsoft.Maui.Controls.Compatibility", "net6.0-windows10.0.18362"); - await AddDep("Microsoft.Maui.Controls.Compatibility.Android.FormsViewGroup", "net6.0-android30.0"); await AddDep("OpenTK.GLControl", "NET40", "reference"); await AddDep("Xamarin.Forms", "Xamarin.iOS10", "reference"); diff --git a/cake/msbuild.cake b/cake/msbuild.cake index 8e9948445..48684e3ba 100644 --- a/cake/msbuild.cake +++ b/cake/msbuild.cake @@ -5,6 +5,9 @@ DirectoryPath OUTPUT_SPECIAL_NUGETS_PATH = MakeAbsolute(ROOT_PATH.Combine("outpu var NUGETS_SOURCES = new [] { OUTPUT_NUGETS_PATH.FullPath, "https://api.nuget.org/v3/index.json", + "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json", + "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json", + "https://pkgs.dev.azure.com/azure-public/vside/_packaging/xamarin-impl/nuget/v3/index.json", "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" }; diff --git a/changelogs/SkiaSharp.HarfBuzz/2.88.0/SkiaSharp.HarfBuzz.md b/changelogs/SkiaSharp.HarfBuzz/2.88.0/SkiaSharp.HarfBuzz.md new file mode 100644 index 000000000..adcfa0e26 --- /dev/null +++ b/changelogs/SkiaSharp.HarfBuzz/2.88.0/SkiaSharp.HarfBuzz.md @@ -0,0 +1,6 @@ +# API diff: SkiaSharp.HarfBuzz.dll + +## SkiaSharp.HarfBuzz.dll + +> Assembly Version Changed: 2.88.0.0 vs 2.80.0.0 + diff --git a/changelogs/SkiaSharp.Views.Desktop.Common/2.88.0/SkiaSharp.Views.Desktop.Common.md b/changelogs/SkiaSharp.Views.Desktop.Common/2.88.0/SkiaSharp.Views.Desktop.Common.md new file mode 100644 index 000000000..1aecff62f --- /dev/null +++ b/changelogs/SkiaSharp.Views.Desktop.Common/2.88.0/SkiaSharp.Views.Desktop.Common.md @@ -0,0 +1,24 @@ +# API diff: SkiaSharp.Views.Desktop.Common.dll + +## SkiaSharp.Views.Desktop.Common.dll + +> Assembly Version Changed: 2.88.0.0 vs 2.80.0.0 + +### Namespace SkiaSharp.Views.Desktop + +#### Type Changed: SkiaSharp.Views.Desktop.Extensions + +Added methods: + +```csharp +public static System.Drawing.Bitmap ToBitmap (this SkiaSharp.SKBitmap skiaBitmap); +public static System.Drawing.Bitmap ToBitmap (this SkiaSharp.SKImage skiaImage); +public static System.Drawing.Bitmap ToBitmap (this SkiaSharp.SKPixmap pixmap); +public static System.Drawing.Bitmap ToBitmap (this SkiaSharp.SKPicture picture, SkiaSharp.SKSizeI dimensions); +public static SkiaSharp.SKBitmap ToSKBitmap (this System.Drawing.Bitmap bitmap); +public static SkiaSharp.SKImage ToSKImage (this System.Drawing.Bitmap bitmap); +public static void ToSKPixmap (this System.Drawing.Bitmap bitmap, SkiaSharp.SKPixmap pixmap); +``` + + + diff --git a/changelogs/SkiaSharp.Views.Forms.GTK/2.88.0/SkiaSharp.Views.Forms.md b/changelogs/SkiaSharp.Views.Forms.GTK/2.88.0/SkiaSharp.Views.Forms.md new file mode 100644 index 000000000..cb5b35641 --- /dev/null +++ b/changelogs/SkiaSharp.Views.Forms.GTK/2.88.0/SkiaSharp.Views.Forms.md @@ -0,0 +1,6 @@ +# API diff: SkiaSharp.Views.Forms.dll + +## SkiaSharp.Views.Forms.dll + +> Assembly Version Changed: 2.88.0.0 vs 2.80.0.0 + diff --git a/changelogs/SkiaSharp.Views.Forms.WPF/2.88.0/SkiaSharp.Views.Forms.md b/changelogs/SkiaSharp.Views.Forms.WPF/2.88.0/SkiaSharp.Views.Forms.md new file mode 100644 index 000000000..cb5b35641 --- /dev/null +++ b/changelogs/SkiaSharp.Views.Forms.WPF/2.88.0/SkiaSharp.Views.Forms.md @@ -0,0 +1,6 @@ +# API diff: SkiaSharp.Views.Forms.dll + +## SkiaSharp.Views.Forms.dll + +> Assembly Version Changed: 2.88.0.0 vs 2.80.0.0 + diff --git a/changelogs/SkiaSharp.Views.Forms/2.88.0/SkiaSharp.Views.Forms.md b/changelogs/SkiaSharp.Views.Forms/2.88.0/SkiaSharp.Views.Forms.md new file mode 100644 index 000000000..cb5b35641 --- /dev/null +++ b/changelogs/SkiaSharp.Views.Forms/2.88.0/SkiaSharp.Views.Forms.md @@ -0,0 +1,6 @@ +# API diff: SkiaSharp.Views.Forms.dll + +## SkiaSharp.Views.Forms.dll + +> Assembly Version Changed: 2.88.0.0 vs 2.80.0.0 + diff --git a/changelogs/SkiaSharp.Views.Gtk2/2.88.0/SkiaSharp.Views.Gtk.md b/changelogs/SkiaSharp.Views.Gtk2/2.88.0/SkiaSharp.Views.Gtk.md new file mode 100644 index 000000000..229e5c34a --- /dev/null +++ b/changelogs/SkiaSharp.Views.Gtk2/2.88.0/SkiaSharp.Views.Gtk.md @@ -0,0 +1,6 @@ +# API diff: SkiaSharp.Views.Gtk.dll + +## SkiaSharp.Views.Gtk.dll + +> Assembly Version Changed: 2.88.0.0 vs 2.80.0.0 + diff --git a/changelogs/SkiaSharp.Views.Gtk3/2.88.0/SkiaSharp.Views.Gtk3.md b/changelogs/SkiaSharp.Views.Gtk3/2.88.0/SkiaSharp.Views.Gtk3.md new file mode 100644 index 000000000..073df293d --- /dev/null +++ b/changelogs/SkiaSharp.Views.Gtk3/2.88.0/SkiaSharp.Views.Gtk3.md @@ -0,0 +1,6 @@ +# API diff: SkiaSharp.Views.Gtk3.dll + +## SkiaSharp.Views.Gtk3.dll + +> Assembly Version Changed: 2.88.0.0 vs 2.80.0.0 + diff --git a/changelogs/SkiaSharp.Views.Maui.Controls.Compatibility/2.88.0/SkiaSharp.Views.Maui.Controls.Compatibility.md b/changelogs/SkiaSharp.Views.Maui.Controls.Compatibility/2.88.0/SkiaSharp.Views.Maui.Controls.Compatibility.md new file mode 100644 index 000000000..9d72da75d --- /dev/null +++ b/changelogs/SkiaSharp.Views.Maui.Controls.Compatibility/2.88.0/SkiaSharp.Views.Maui.Controls.Compatibility.md @@ -0,0 +1,53 @@ +# API diff: SkiaSharp.Views.Maui.Controls.Compatibility.dll + +## SkiaSharp.Views.Maui.Controls.Compatibility.dll + +> Assembly Version Changed: 2.88.0.0 vs 0.0.0.0 + +### New Namespace SkiaSharp.Views.Maui.Controls.Compatibility + +#### New Type: SkiaSharp.Views.Maui.Controls.Compatibility.AppHostBuilderExtensions + +```csharp +public static class AppHostBuilderExtensions { + // methods + public static Microsoft.Maui.Hosting.IAppHostBuilder UseSkiaSharpCompatibilityRenderers (this Microsoft.Maui.Hosting.IAppHostBuilder builder); +} +``` + +#### New Type: SkiaSharp.Views.Maui.Controls.Compatibility.SKCanvasViewRenderer + +```csharp +public class SKCanvasViewRenderer : SkiaSharp.Views.Maui.Controls.Compatibility.SKCanvasViewRendererBase`2[SkiaSharp.Views.Maui.Controls.SKCanvasView,SkiaSharp.Views.Windows.SKXamlCanvas] { + // constructors + public SKCanvasViewRenderer (); + // methods + protected override SkiaSharp.Views.Windows.SKXamlCanvas CreateNativeControl (); +} +``` + +#### New Type: SkiaSharp.Views.Maui.Controls.Compatibility.SKCanvasViewRendererBase`2 + +```csharp +public abstract class SKCanvasViewRendererBase`2 : Microsoft.Maui.Controls.Compatibility.Platform.UWP.ViewRenderer`2[TFormsView,TNativeView] { + // constructors + protected SKCanvasViewRendererBase`2 (); + // methods + protected virtual TNativeView CreateNativeControl (); + protected override void Dispose (bool disposing); + protected override void OnElementChanged (Microsoft.Maui.Controls.Platform.ElementChangedEventArgs e); + protected override void OnElementPropertyChanged (object sender, System.ComponentModel.PropertyChangedEventArgs e); +} +``` + +#### New Type: SkiaSharp.Views.Maui.Controls.Compatibility.SKImageSourceHandler + +```csharp +public sealed class SKImageSourceHandler : Microsoft.Maui.Controls.IRegisterable { + // constructors + public SKImageSourceHandler (); + // methods + public virtual System.Threading.Tasks.Task LoadImageAsync (Microsoft.Maui.Controls.ImageSource imagesource, System.Threading.CancellationToken cancelationToken); +} +``` + diff --git a/changelogs/SkiaSharp.Views.Maui.Controls/2.88.0/SkiaSharp.Views.Maui.Controls.md b/changelogs/SkiaSharp.Views.Maui.Controls/2.88.0/SkiaSharp.Views.Maui.Controls.md new file mode 100644 index 000000000..27e61fa58 --- /dev/null +++ b/changelogs/SkiaSharp.Views.Maui.Controls/2.88.0/SkiaSharp.Views.Maui.Controls.md @@ -0,0 +1,177 @@ +# API diff: SkiaSharp.Views.Maui.Controls.dll + +## SkiaSharp.Views.Maui.Controls.dll + +> Assembly Version Changed: 2.88.0.0 vs 0.0.0.0 + +### New Namespace SkiaSharp.Views.Maui.Controls + +#### New Type: SkiaSharp.Views.Maui.Controls.AppHostBuilderExtensions + +```csharp +public static class AppHostBuilderExtensions { + // methods + public static Microsoft.Maui.Hosting.IAppHostBuilder UseSkiaSharpHandlers (this Microsoft.Maui.Hosting.IAppHostBuilder builder); +} +``` + +#### New Type: SkiaSharp.Views.Maui.Controls.GetPropertyValueEventArgs`1 + +```csharp +public class GetPropertyValueEventArgs`1 : System.EventArgs { + // constructors + public GetPropertyValueEventArgs`1 (); + // properties + public T Value { get; set; } +} +``` + +#### New Type: SkiaSharp.Views.Maui.Controls.ISKCanvasViewController + +```csharp +public interface ISKCanvasViewController : Microsoft.Maui.Controls.IElementController, Microsoft.Maui.Controls.IViewController, Microsoft.Maui.Controls.IVisualElementController { + // events + public event System.EventHandler> GetCanvasSize; + public event System.EventHandler SurfaceInvalidated; + // methods + public virtual void OnPaintSurface (SkiaSharp.Views.Maui.SKPaintSurfaceEventArgs e); + public virtual void OnTouch (SkiaSharp.Views.Maui.SKTouchEventArgs e); +} +``` + +#### New Type: SkiaSharp.Views.Maui.Controls.ISKGLViewController + +```csharp +public interface ISKGLViewController : Microsoft.Maui.Controls.IElementController, Microsoft.Maui.Controls.IViewController, Microsoft.Maui.Controls.IVisualElementController { + // events + public event System.EventHandler> GetCanvasSize; + public event System.EventHandler> GetGRContext; + public event System.EventHandler SurfaceInvalidated; + // methods + public virtual void OnPaintSurface (SkiaSharp.Views.Maui.SKPaintGLSurfaceEventArgs e); + public virtual void OnTouch (SkiaSharp.Views.Maui.SKTouchEventArgs e); +} +``` + +#### New Type: SkiaSharp.Views.Maui.Controls.SKBitmapImageSource + +```csharp +public sealed class SKBitmapImageSource : Microsoft.Maui.Controls.ImageSource, Microsoft.Maui.Controls.IElementController, Microsoft.Maui.Controls.Internals.IDynamicResourceHandler, Microsoft.Maui.Controls.Internals.INameScope, Microsoft.Maui.IElement, Microsoft.Maui.IImageSource, SkiaSharp.Views.Maui.ISKBitmapImageSource, System.ComponentModel.INotifyPropertyChanged { + // constructors + public SKBitmapImageSource (); + // fields + public static Microsoft.Maui.Controls.BindableProperty BitmapProperty; + // properties + public override SkiaSharp.SKBitmap Bitmap { get; set; } + // methods + public override System.Threading.Tasks.Task 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.Maui.Controls.SKCanvasView + +```csharp +public class SKCanvasView : Microsoft.Maui.Controls.View, Microsoft.Maui.Controls.IAnimatable, Microsoft.Maui.Controls.IElementController, Microsoft.Maui.Controls.IGestureRecognizers, Microsoft.Maui.Controls.ITabStopElement, Microsoft.Maui.Controls.IViewController, Microsoft.Maui.Controls.IVisualElementController, Microsoft.Maui.Controls.Internals.IDynamicResourceHandler, Microsoft.Maui.Controls.Internals.IGestureController, Microsoft.Maui.Controls.Internals.INameScope, Microsoft.Maui.Controls.Internals.INavigationProxy, Microsoft.Maui.HotReload.IHotReloadableView, Microsoft.Maui.IElement, Microsoft.Maui.IFrameworkElement, Microsoft.Maui.IPropertyMapperView, Microsoft.Maui.IReplaceableView, Microsoft.Maui.ITransform, Microsoft.Maui.IView, ISKCanvasViewController, SkiaSharp.Views.Maui.ISKCanvasView, System.ComponentModel.INotifyPropertyChanged { + // constructors + public SKCanvasView (); + // fields + public static Microsoft.Maui.Controls.BindableProperty EnableTouchEventsProperty; + public static Microsoft.Maui.Controls.BindableProperty IgnorePixelScalingProperty; + // properties + public virtual SkiaSharp.SKSize CanvasSize { get; } + public override bool EnableTouchEvents { get; set; } + public override bool IgnorePixelScaling { get; set; } + // events + public event System.EventHandler PaintSurface; + public event System.EventHandler Touch; + // methods + public virtual void InvalidateSurface (); + protected override Microsoft.Maui.SizeRequest OnMeasure (double widthConstraint, double heightConstraint); + protected virtual void OnPaintSurface (SkiaSharp.Views.Maui.SKPaintSurfaceEventArgs e); + protected virtual void OnTouch (SkiaSharp.Views.Maui.SKTouchEventArgs e); +} +``` + +#### New Type: SkiaSharp.Views.Maui.Controls.SKGLView + +```csharp +public class SKGLView : Microsoft.Maui.Controls.View, Microsoft.Maui.Controls.IAnimatable, Microsoft.Maui.Controls.IElementController, Microsoft.Maui.Controls.IGestureRecognizers, Microsoft.Maui.Controls.ITabStopElement, Microsoft.Maui.Controls.IViewController, Microsoft.Maui.Controls.IVisualElementController, Microsoft.Maui.Controls.Internals.IDynamicResourceHandler, Microsoft.Maui.Controls.Internals.IGestureController, Microsoft.Maui.Controls.Internals.INameScope, Microsoft.Maui.Controls.Internals.INavigationProxy, Microsoft.Maui.HotReload.IHotReloadableView, Microsoft.Maui.IElement, Microsoft.Maui.IFrameworkElement, Microsoft.Maui.IPropertyMapperView, Microsoft.Maui.IReplaceableView, Microsoft.Maui.ITransform, Microsoft.Maui.IView, ISKGLViewController, System.ComponentModel.INotifyPropertyChanged { + // constructors + public SKGLView (); + // fields + public static Microsoft.Maui.Controls.BindableProperty EnableTouchEventsProperty; + public static Microsoft.Maui.Controls.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 PaintSurface; + public event System.EventHandler Touch; + // methods + public void InvalidateSurface (); + protected override Microsoft.Maui.SizeRequest OnMeasure (double widthConstraint, double heightConstraint); + protected virtual void OnPaintSurface (SkiaSharp.Views.Maui.SKPaintGLSurfaceEventArgs e); + protected virtual void OnTouch (SkiaSharp.Views.Maui.SKTouchEventArgs e); +} +``` + +#### New Type: SkiaSharp.Views.Maui.Controls.SKImageImageSource + +```csharp +public sealed class SKImageImageSource : Microsoft.Maui.Controls.ImageSource, Microsoft.Maui.Controls.IElementController, Microsoft.Maui.Controls.Internals.IDynamicResourceHandler, Microsoft.Maui.Controls.Internals.INameScope, Microsoft.Maui.IElement, Microsoft.Maui.IImageSource, SkiaSharp.Views.Maui.ISKImageImageSource, System.ComponentModel.INotifyPropertyChanged { + // constructors + public SKImageImageSource (); + // fields + public static Microsoft.Maui.Controls.BindableProperty ImageProperty; + // properties + public override SkiaSharp.SKImage Image { get; set; } + // methods + public override System.Threading.Tasks.Task 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.Maui.Controls.SKPictureImageSource + +```csharp +public sealed class SKPictureImageSource : Microsoft.Maui.Controls.ImageSource, Microsoft.Maui.Controls.IElementController, Microsoft.Maui.Controls.Internals.IDynamicResourceHandler, Microsoft.Maui.Controls.Internals.INameScope, Microsoft.Maui.IElement, Microsoft.Maui.IImageSource, SkiaSharp.Views.Maui.ISKPictureImageSource, System.ComponentModel.INotifyPropertyChanged { + // constructors + public SKPictureImageSource (); + // fields + public static Microsoft.Maui.Controls.BindableProperty DimensionsProperty; + public static Microsoft.Maui.Controls.BindableProperty PictureProperty; + // properties + public override SkiaSharp.SKSizeI Dimensions { get; set; } + public override SkiaSharp.SKPicture Picture { get; set; } + // methods + public override System.Threading.Tasks.Task Cancel (); + protected override void OnPropertyChanged (string propertyName); + public static SkiaSharp.SKPicture op_Explicit (SKPictureImageSource source); +} +``` + +#### New Type: SkiaSharp.Views.Maui.Controls.SKPixmapImageSource + +```csharp +public sealed class SKPixmapImageSource : Microsoft.Maui.Controls.ImageSource, Microsoft.Maui.Controls.IElementController, Microsoft.Maui.Controls.Internals.IDynamicResourceHandler, Microsoft.Maui.Controls.Internals.INameScope, Microsoft.Maui.IElement, Microsoft.Maui.IImageSource, SkiaSharp.Views.Maui.ISKPixmapImageSource, System.ComponentModel.INotifyPropertyChanged { + // constructors + public SKPixmapImageSource (); + // fields + public static Microsoft.Maui.Controls.BindableProperty PixmapProperty; + // properties + public override SkiaSharp.SKPixmap Pixmap { get; set; } + // methods + public override System.Threading.Tasks.Task Cancel (); + protected override void OnPropertyChanged (string propertyName); + public static SKPixmapImageSource op_Implicit (SkiaSharp.SKPixmap pixmap); + public static SkiaSharp.SKPixmap op_Implicit (SKPixmapImageSource source); +} +``` + diff --git a/changelogs/SkiaSharp.Views.Maui.Core/2.88.0/SkiaSharp.Views.Maui.Core.md b/changelogs/SkiaSharp.Views.Maui.Core/2.88.0/SkiaSharp.Views.Maui.Core.md new file mode 100644 index 000000000..44ce3d88d --- /dev/null +++ b/changelogs/SkiaSharp.Views.Maui.Core/2.88.0/SkiaSharp.Views.Maui.Core.md @@ -0,0 +1,224 @@ +# API diff: SkiaSharp.Views.Maui.Core.dll + +## SkiaSharp.Views.Maui.Core.dll + +> Assembly Version Changed: 2.88.0.0 vs 0.0.0.0 + +### New Namespace SkiaSharp.Views.Maui + +#### New Type: SkiaSharp.Views.Maui.Extensions + +```csharp +public static class Extensions { + // methods + public static Microsoft.Maui.Graphics.Color ToMauiColor (this SkiaSharp.SKColor color); + public static Microsoft.Maui.Graphics.Color ToMauiColor (this SkiaSharp.SKColorF color); + public static Microsoft.Maui.Graphics.Point ToMauiPoint (this SkiaSharp.SKPoint point); + public static Microsoft.Maui.Graphics.Point ToMauiPoint (this SkiaSharp.SKPointI point); + public static Microsoft.Maui.Graphics.PointF ToMauiPointF (this SkiaSharp.SKPoint point); + public static Microsoft.Maui.Graphics.PointF ToMauiPointF (this SkiaSharp.SKPointI point); + public static Microsoft.Maui.Graphics.Rectangle ToMauiRectangle (this SkiaSharp.SKRect rect); + public static Microsoft.Maui.Graphics.Rectangle ToMauiRectangle (this SkiaSharp.SKRectI rect); + public static Microsoft.Maui.Graphics.RectangleF ToMauiRectangleF (this SkiaSharp.SKRect rect); + public static Microsoft.Maui.Graphics.RectangleF ToMauiRectangleF (this SkiaSharp.SKRectI rect); + public static Microsoft.Maui.Graphics.Size ToMauiSize (this SkiaSharp.SKSize size); + public static Microsoft.Maui.Graphics.Size ToMauiSize (this SkiaSharp.SKSizeI size); + public static Microsoft.Maui.Graphics.SizeF ToMauiSizeF (this SkiaSharp.SKSize size); + public static Microsoft.Maui.Graphics.SizeF ToMauiSizeF (this SkiaSharp.SKSizeI size); + public static SkiaSharp.SKColor ToSKColor (this Microsoft.Maui.Graphics.Color color); + public static SkiaSharp.SKColorF ToSKColorF (this Microsoft.Maui.Graphics.Color color); + public static SkiaSharp.SKPoint ToSKPoint (this Microsoft.Maui.Graphics.Point point); + public static SkiaSharp.SKPoint ToSKPoint (this Microsoft.Maui.Graphics.PointF point); + public static SkiaSharp.SKRect ToSKRect (this Microsoft.Maui.Graphics.Rectangle rect); + public static SkiaSharp.SKRect ToSKRect (this Microsoft.Maui.Graphics.RectangleF rect); + public static SkiaSharp.SKSize ToSKSize (this Microsoft.Maui.Graphics.Size size); + public static SkiaSharp.SKSize ToSKSize (this Microsoft.Maui.Graphics.SizeF size); +} +``` + +#### New Type: SkiaSharp.Views.Maui.ISKBitmapImageSource + +```csharp +public interface ISKBitmapImageSource : Microsoft.Maui.IImageSource { + // properties + public virtual SkiaSharp.SKBitmap Bitmap { get; } +} +``` + +#### New Type: SkiaSharp.Views.Maui.ISKCanvasView + +```csharp +public interface ISKCanvasView : Microsoft.Maui.IElement, Microsoft.Maui.IFrameworkElement, Microsoft.Maui.ITransform, Microsoft.Maui.IView { + // properties + public virtual SkiaSharp.SKSize CanvasSize { get; } + public virtual bool EnableTouchEvents { get; } + public virtual bool IgnorePixelScaling { get; } + // methods + public virtual void InvalidateSurface (); + public virtual void OnCanvasSizeChanged (SkiaSharp.SKSizeI size); + public virtual void OnPaintSurface (SKPaintSurfaceEventArgs e); + public virtual void OnTouch (SKTouchEventArgs e); +} +``` + +#### New Type: SkiaSharp.Views.Maui.ISKImageImageSource + +```csharp +public interface ISKImageImageSource : Microsoft.Maui.IImageSource { + // properties + public virtual SkiaSharp.SKImage Image { get; } +} +``` + +#### New Type: SkiaSharp.Views.Maui.ISKPictureImageSource + +```csharp +public interface ISKPictureImageSource : Microsoft.Maui.IImageSource { + // properties + public virtual SkiaSharp.SKSizeI Dimensions { get; } + public virtual SkiaSharp.SKPicture Picture { get; } +} +``` + +#### New Type: SkiaSharp.Views.Maui.ISKPixmapImageSource + +```csharp +public interface ISKPixmapImageSource : Microsoft.Maui.IImageSource { + // properties + public virtual SkiaSharp.SKPixmap Pixmap { get; } +} +``` + +#### New Type: SkiaSharp.Views.Maui.SKMouseButton + +```csharp +[Serializable] +public enum SKMouseButton { + Left = 1, + Middle = 2, + Right = 3, + Unknown = 0, +} +``` + +#### New Type: SkiaSharp.Views.Maui.SKPaintGLSurfaceEventArgs + +```csharp +public class SKPaintGLSurfaceEventArgs : System.EventArgs { + // constructors + public SKPaintGLSurfaceEventArgs (SkiaSharp.SKSurface surface, SkiaSharp.GRBackendRenderTarget 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; } + public SkiaSharp.SKSurface Surface { get; } +} +``` + +#### New Type: SkiaSharp.Views.Maui.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.Maui.SKTouchAction + +```csharp +[Serializable] +public enum SKTouchAction { + Cancelled = 4, + Entered = 0, + Exited = 5, + Moved = 2, + Pressed = 1, + Released = 3, + WheelChanged = 6, +} +``` + +#### New Type: SkiaSharp.Views.Maui.SKTouchDeviceType + +```csharp +[Serializable] +public enum SKTouchDeviceType { + Mouse = 1, + Pen = 2, + Touch = 0, +} +``` + +#### New Type: SkiaSharp.Views.Maui.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); + public SKTouchEventArgs (long id, SKTouchAction type, SKMouseButton mouseButton, SKTouchDeviceType deviceType, SkiaSharp.SKPoint location, bool inContact, int wheelDelta, float pressure); + // 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 float Pressure { get; } + public int WheelDelta { get; } + // methods + public override string ToString (); +} +``` + +### New Namespace SkiaSharp.Views.Maui.Handlers + +#### New Type: SkiaSharp.Views.Maui.Handlers.SKCanvasViewHandler + +```csharp +public class SKCanvasViewHandler : Microsoft.Maui.Handlers.ViewHandler`2[SkiaSharp.Views.Maui.ISKCanvasView,SkiaSharp.Views.Windows.SKXamlCanvas], Microsoft.Maui.IElementHandler, Microsoft.Maui.INativeViewHandler, Microsoft.Maui.IViewHandler { + // constructors + public SKCanvasViewHandler (); + public SKCanvasViewHandler (Microsoft.Maui.PropertyMapper mapper); + // fields + public static Microsoft.Maui.PropertyMapper SKCanvasViewMapper; + // methods + protected override void ConnectHandler (SkiaSharp.Views.Windows.SKXamlCanvas nativeView); + protected override SkiaSharp.Views.Windows.SKXamlCanvas CreateNativeView (); + protected override void DisconnectHandler (SkiaSharp.Views.Windows.SKXamlCanvas nativeView); + public static void MapEnableTouchEvents (SKCanvasViewHandler handler, SkiaSharp.Views.Maui.ISKCanvasView canvasView); + public static void MapIgnorePixelScaling (SKCanvasViewHandler handler, SkiaSharp.Views.Maui.ISKCanvasView canvasView); + public static void OnInvalidateSurface (SKCanvasViewHandler handler, SkiaSharp.Views.Maui.ISKCanvasView canvasView); +} +``` + +#### New Type: SkiaSharp.Views.Maui.Handlers.SKImageSourceService + +```csharp +public class SKImageSourceService : Microsoft.Maui.ImageSourceService, Microsoft.Maui.IImageSourceService, Microsoft.Maui.IImageSourceService, Microsoft.Maui.IImageSourceService, Microsoft.Maui.IImageSourceService, Microsoft.Maui.IImageSourceService { + // constructors + public SKImageSourceService (); + public SKImageSourceService (Microsoft.Extensions.Logging.ILogger logger); + // methods + public override System.Threading.Tasks.Task> GetImageSourceAsync (Microsoft.Maui.IImageSource imageSource, float scale, System.Threading.CancellationToken cancellationToken); +} +``` + +### New Namespace SkiaSharp.Views.Maui.Platform + +#### New Type: SkiaSharp.Views.Maui.Platform.SKCanvasViewExtensions + +```csharp +public static class SKCanvasViewExtensions { + // methods + public static void UpdateIgnorePixelScaling (this SkiaSharp.Views.Windows.SKXamlCanvas nativeView, SkiaSharp.Views.Maui.ISKCanvasView canvasView); +} +``` + diff --git a/changelogs/SkiaSharp.Views.Uno/2.88.0/SkiaSharp.Views.UWP.breaking.md b/changelogs/SkiaSharp.Views.Uno/2.88.0/SkiaSharp.Views.UWP.breaking.md new file mode 100644 index 000000000..4d53bf40b --- /dev/null +++ b/changelogs/SkiaSharp.Views.Uno/2.88.0/SkiaSharp.Views.UWP.breaking.md @@ -0,0 +1,19 @@ +# API diff: SkiaSharp.Views.UWP.dll + +## SkiaSharp.Views.UWP.dll + +> Assembly Version Changed: 2.88.0.0 vs 2.80.0.0 + +### Namespace SkiaSharp.Views.UWP + +#### Type Changed: SkiaSharp.Views.UWP.SKXamlCanvas + +Modified base type: + +```diff +-Windows.UI.Xaml.FrameworkElement ++Windows.UI.Xaml.Controls.Canvas +``` + + + diff --git a/changelogs/SkiaSharp.Views.Uno/2.88.0/SkiaSharp.Views.UWP.md b/changelogs/SkiaSharp.Views.Uno/2.88.0/SkiaSharp.Views.UWP.md new file mode 100644 index 000000000..5d3ab5036 --- /dev/null +++ b/changelogs/SkiaSharp.Views.Uno/2.88.0/SkiaSharp.Views.UWP.md @@ -0,0 +1,45 @@ +# API diff: SkiaSharp.Views.UWP.dll + +## SkiaSharp.Views.UWP.dll + +> Assembly Version Changed: 2.88.0.0 vs 2.80.0.0 + +### Namespace SkiaSharp.Views.UWP + +#### Type Changed: SkiaSharp.Views.UWP.GlobalStaticResources + +Obsoleted methods: + +```diff + [Obsolete ()] + public static object FindResource (string name); +``` + +Added methods: + +```csharp +public static void RegisterDefaultStyles (); +public static void RegisterResourceDictionariesBySource (); +``` + + +#### Type Changed: SkiaSharp.Views.UWP.SKSwapChainPanel + +Added property: + +```csharp +public static bool RaiseOnUnsupported { get; set; } +``` + + +#### Type Changed: SkiaSharp.Views.UWP.SKXamlCanvas + +Modified base type: + +```diff +-Windows.UI.Xaml.FrameworkElement ++Windows.UI.Xaml.Controls.Canvas +``` + + + diff --git a/changelogs/SkiaSharp.Views.WPF/2.88.0/SkiaSharp.Views.WPF.md b/changelogs/SkiaSharp.Views.WPF/2.88.0/SkiaSharp.Views.WPF.md new file mode 100644 index 000000000..45c29223d --- /dev/null +++ b/changelogs/SkiaSharp.Views.WPF/2.88.0/SkiaSharp.Views.WPF.md @@ -0,0 +1,6 @@ +# API diff: SkiaSharp.Views.WPF.dll + +## SkiaSharp.Views.WPF.dll + +> Assembly Version Changed: 2.88.0.0 vs 2.80.0.0 + diff --git a/changelogs/SkiaSharp.Views.WinUI/2.88.0/SkiaSharp.Views.Windows.md b/changelogs/SkiaSharp.Views.WinUI/2.88.0/SkiaSharp.Views.Windows.md new file mode 100644 index 000000000..9aff18384 --- /dev/null +++ b/changelogs/SkiaSharp.Views.WinUI/2.88.0/SkiaSharp.Views.Windows.md @@ -0,0 +1,103 @@ +# API diff: SkiaSharp.Views.Windows.dll + +## SkiaSharp.Views.Windows.dll + +> Assembly Version Changed: 2.88.0.0 vs 0.0.0.0 + +### New Namespace SkiaSharp.Views.Windows + +#### New Type: SkiaSharp.Views.Windows.Extensions + +```csharp +public static class Extensions { + // methods + public static System.Drawing.PointF ToDrawingPoint (this SkiaSharp.SKPoint point); + public static System.Drawing.Point ToDrawingPoint (this SkiaSharp.SKPointI point); + public static System.Drawing.RectangleF ToDrawingRect (this SkiaSharp.SKRect rect); + public static System.Drawing.Rectangle ToDrawingRect (this SkiaSharp.SKRectI rect); + public static System.Drawing.SizeF ToDrawingSize (this SkiaSharp.SKSize size); + public static System.Drawing.Size ToDrawingSize (this SkiaSharp.SKSizeI size); + public static SkiaSharp.SKPointI ToSKPoint (this System.Drawing.Point point); + public static SkiaSharp.SKPoint ToSKPoint (this System.Drawing.PointF point); + public static SkiaSharp.SKRectI ToSKRect (this System.Drawing.Rectangle rect); + public static SkiaSharp.SKRect ToSKRect (this System.Drawing.RectangleF rect); + public static SkiaSharp.SKSizeI ToSKSize (this System.Drawing.Size size); + public static SkiaSharp.SKSize ToSKSize (this System.Drawing.SizeF size); +} +``` + +#### New Type: SkiaSharp.Views.Windows.SKPaintGLSurfaceEventArgs + +```csharp +public class SKPaintGLSurfaceEventArgs : System.EventArgs { + // constructors + public SKPaintGLSurfaceEventArgs (SkiaSharp.SKSurface surface, SkiaSharp.GRBackendRenderTarget renderTarget); + + [Obsolete] +public SKPaintGLSurfaceEventArgs (SkiaSharp.SKSurface surface, SkiaSharp.GRBackendRenderTargetDesc renderTarget); + public SKPaintGLSurfaceEventArgs (SkiaSharp.SKSurface surface, SkiaSharp.GRBackendRenderTarget renderTarget, SkiaSharp.GRSurfaceOrigin origin, SkiaSharp.SKColorType colorType); + public SKPaintGLSurfaceEventArgs (SkiaSharp.SKSurface surface, SkiaSharp.GRBackendRenderTarget renderTarget, SkiaSharp.GRSurfaceOrigin origin, SkiaSharp.SKColorType colorType, SkiaSharp.GRGlFramebufferInfo glInfo); + // properties + public SkiaSharp.GRBackendRenderTarget BackendRenderTarget { get; } + public SkiaSharp.SKColorType ColorType { get; } + public SkiaSharp.GRSurfaceOrigin Origin { get; } + + [Obsolete] +public SkiaSharp.GRBackendRenderTargetDesc RenderTarget { get; } + public SkiaSharp.SKSurface Surface { get; } +} +``` + +#### New Type: SkiaSharp.Views.Windows.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.Windows.SKXamlCanvas + +```csharp +public class SKXamlCanvas : Microsoft.UI.Xaml.Controls.Canvas, Microsoft.UI.Composition.IAnimationObject, Microsoft.UI.Composition.IVisualElement, Microsoft.UI.Composition.IVisualElement2, System.IEquatable, System.IEquatable, System.IEquatable, System.IEquatable, System.IEquatable, System.Runtime.InteropServices.ICustomQueryInterface, System.Runtime.InteropServices.IDynamicInterfaceCastable, WinRT.IWinRTObject { + // constructors + public SKXamlCanvas (); + // properties + public SkiaSharp.SKSize CanvasSize { get; } + public double Dpi { get; } + public bool IgnorePixelScaling { get; set; } + // events + public event System.EventHandler PaintSurface; + // methods + public void Invalidate (); + protected virtual void OnPaintSurface (SKPaintSurfaceEventArgs e); +} +``` + +#### New Type: SkiaSharp.Views.Windows.WindowsExtensions + +```csharp +public static class WindowsExtensions { + // methods + public static Windows.UI.Color ToColor (this SkiaSharp.SKColor color); + public static Windows.Foundation.Point ToPoint (this SkiaSharp.SKPoint point); + public static Windows.Foundation.Rect ToRect (this SkiaSharp.SKRect rect); + public static SkiaSharp.SKBitmap ToSKBitmap (this Microsoft.UI.Xaml.Media.Imaging.WriteableBitmap bitmap); + public static SkiaSharp.SKColor ToSKColor (this Windows.UI.Color color); + public static SkiaSharp.SKImage ToSKImage (this Microsoft.UI.Xaml.Media.Imaging.WriteableBitmap bitmap); + public static bool ToSKPixmap (this Microsoft.UI.Xaml.Media.Imaging.WriteableBitmap bitmap, SkiaSharp.SKPixmap pixmap); + public static SkiaSharp.SKPoint ToSKPoint (this Windows.Foundation.Point point); + public static SkiaSharp.SKRect ToSKRect (this Windows.Foundation.Rect rect); + public static SkiaSharp.SKSize ToSKSize (this Windows.Foundation.Size size); + public static Windows.Foundation.Size ToSize (this SkiaSharp.SKSize size); + public static Microsoft.UI.Xaml.Media.Imaging.WriteableBitmap ToWriteableBitmap (this SkiaSharp.SKBitmap skiaBitmap); + public static Microsoft.UI.Xaml.Media.Imaging.WriteableBitmap ToWriteableBitmap (this SkiaSharp.SKImage skiaImage); + public static Microsoft.UI.Xaml.Media.Imaging.WriteableBitmap ToWriteableBitmap (this SkiaSharp.SKPixmap pixmap); + public static Microsoft.UI.Xaml.Media.Imaging.WriteableBitmap ToWriteableBitmap (this SkiaSharp.SKPicture picture, SkiaSharp.SKSizeI dimensions); +} +``` + diff --git a/changelogs/SkiaSharp.Views.WindowsForms/2.88.0/SkiaSharp.Views.WindowsForms.md b/changelogs/SkiaSharp.Views.WindowsForms/2.88.0/SkiaSharp.Views.WindowsForms.md new file mode 100644 index 000000000..d8b59adba --- /dev/null +++ b/changelogs/SkiaSharp.Views.WindowsForms/2.88.0/SkiaSharp.Views.WindowsForms.md @@ -0,0 +1,6 @@ +# API diff: SkiaSharp.Views.WindowsForms.dll + +## SkiaSharp.Views.WindowsForms.dll + +> Assembly Version Changed: 2.88.0.0 vs 2.80.0.0 + diff --git a/changelogs/SkiaSharp.Views/2.88.0/SkiaSharp.Views.Android.md b/changelogs/SkiaSharp.Views/2.88.0/SkiaSharp.Views.Android.md new file mode 100644 index 000000000..9d68d7374 --- /dev/null +++ b/changelogs/SkiaSharp.Views/2.88.0/SkiaSharp.Views.Android.md @@ -0,0 +1,320 @@ +# API diff: SkiaSharp.Views.Android.dll + +## SkiaSharp.Views.Android.dll + +> Assembly Version Changed: 2.88.0.0 vs 0.0.0.0 + +### New Namespace SkiaSharp.Views.Android + +#### New Type: SkiaSharp.Views.Android.AndroidExtensions + +```csharp +public static class AndroidExtensions { + // methods + public static Android.Graphics.Bitmap ToBitmap (this SkiaSharp.SKBitmap skiaBitmap); + public static Android.Graphics.Bitmap ToBitmap (this SkiaSharp.SKImage skiaImage); + public static Android.Graphics.Bitmap ToBitmap (this SkiaSharp.SKPixmap skiaPixmap); + public static Android.Graphics.Bitmap ToBitmap (this SkiaSharp.SKPicture skiaPicture, SkiaSharp.SKSizeI dimensions); + public static Android.Graphics.Color ToColor (this SkiaSharp.SKColor color); + public static Android.Graphics.Matrix ToMatrix (this SkiaSharp.SKMatrix matrix); + public static Android.Graphics.PointF ToPoint (this SkiaSharp.SKPoint point); + public static Android.Graphics.Point ToPoint (this SkiaSharp.SKPointI point); + public static Android.Graphics.RectF ToRect (this SkiaSharp.SKRect rect); + public static Android.Graphics.Rect ToRect (this SkiaSharp.SKRectI rect); + public static SkiaSharp.SKBitmap ToSKBitmap (this Android.Graphics.Bitmap bitmap); + public static SkiaSharp.SKColor ToSKColor (this Android.Graphics.Color color); + public static SkiaSharp.SKImage ToSKImage (this Android.Graphics.Bitmap bitmap); + public static SkiaSharp.SKMatrix ToSKMatrix (this Android.Graphics.Matrix matrix); + public static void ToSKPixmap (this Android.Graphics.Bitmap bitmap, SkiaSharp.SKPixmap pixmap); + public static SkiaSharp.SKPointI ToSKPoint (this Android.Graphics.Point point); + public static SkiaSharp.SKPoint ToSKPoint (this Android.Graphics.PointF point); + public static SkiaSharp.SKRectI ToSKRect (this Android.Graphics.Rect rect); + public static SkiaSharp.SKRect ToSKRect (this Android.Graphics.RectF rect); +} +``` + +#### New Type: SkiaSharp.Views.Android.Extensions + +```csharp +public static class Extensions { + // methods + public static System.Drawing.Color ToDrawingColor (this SkiaSharp.SKColor color); + public static System.Drawing.PointF ToDrawingPoint (this SkiaSharp.SKPoint point); + public static System.Drawing.Point ToDrawingPoint (this SkiaSharp.SKPointI point); + public static System.Drawing.RectangleF ToDrawingRect (this SkiaSharp.SKRect rect); + public static System.Drawing.Rectangle ToDrawingRect (this SkiaSharp.SKRectI rect); + public static System.Drawing.SizeF ToDrawingSize (this SkiaSharp.SKSize size); + public static System.Drawing.Size ToDrawingSize (this SkiaSharp.SKSizeI size); + public static SkiaSharp.SKColor ToSKColor (this System.Drawing.Color color); + public static SkiaSharp.SKPointI ToSKPoint (this System.Drawing.Point point); + public static SkiaSharp.SKPoint ToSKPoint (this System.Drawing.PointF point); + public static SkiaSharp.SKRectI ToSKRect (this System.Drawing.Rectangle rect); + public static SkiaSharp.SKRect ToSKRect (this System.Drawing.RectangleF rect); + public static SkiaSharp.SKSizeI ToSKSize (this System.Drawing.Size size); + public static SkiaSharp.SKSize ToSKSize (this System.Drawing.SizeF size); +} +``` + +#### New Type: SkiaSharp.Views.Android.GLTextureView + +```csharp +public class GLTextureView : Android.Views.TextureView, Android.Graphics.Drawables.Drawable.ICallback, Android.Runtime.IJavaObject, Android.Views.Accessibility.IAccessibilityEventSource, Android.Views.KeyEvent.ICallback, Android.Views.TextureView.ISurfaceTextureListener, Android.Views.View.IOnLayoutChangeListener, Java.Interop.IJavaPeerable, System.IDisposable { + // constructors + public GLTextureView (Android.Content.Context context); + public GLTextureView (Android.Content.Context context, Android.Util.IAttributeSet attrs); + // properties + public Android.Opengl.DebugFlags DebugFlags { get; set; } + public bool PreserveEGLContextOnPause { get; set; } + public Android.Opengl.Rendermode RenderMode { get; set; } + // methods + protected override void Dispose (bool disposing); + protected override void OnAttachedToWindow (); + protected override void OnDetachedFromWindow (); + public virtual void OnLayoutChange (Android.Views.View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom); + public void OnPause (); + public void OnResume (); + public virtual void OnSurfaceTextureAvailable (Android.Graphics.SurfaceTexture surface, int width, int height); + public virtual bool OnSurfaceTextureDestroyed (Android.Graphics.SurfaceTexture surface); + public virtual void OnSurfaceTextureSizeChanged (Android.Graphics.SurfaceTexture surface, int w, int h); + public virtual void OnSurfaceTextureUpdated (Android.Graphics.SurfaceTexture surface); + public void QueueEvent (Java.Lang.IRunnable r); + public void QueueEvent (System.Action r); + public void RequestRender (); + public void SetEGLConfigChooser (GLTextureView.IEGLConfigChooser configChooser); + public void SetEGLConfigChooser (bool needDepth); + public void SetEGLConfigChooser (int redSize, int greenSize, int blueSize, int alphaSize, int depthSize, int stencilSize); + public void SetEGLContextClientVersion (int version); + public void SetEGLContextFactory (GLTextureView.IEGLContextFactory factory); + public void SetEGLWindowSurfaceFactory (GLTextureView.IEGLWindowSurfaceFactory factory); + public void SetGLWrapper (GLTextureView.IGLWrapper glWrapper); + public void SetRenderer (GLTextureView.IRenderer renderer); + + // inner types + public interface IEGLConfigChooser { + // methods + public virtual Javax.Microedition.Khronos.Egl.EGLConfig ChooseConfig (Javax.Microedition.Khronos.Egl.IEGL10 egl, Javax.Microedition.Khronos.Egl.EGLDisplay display); + } + public interface IEGLContextFactory { + // methods + public virtual Javax.Microedition.Khronos.Egl.EGLContext CreateContext (Javax.Microedition.Khronos.Egl.IEGL10 egl, Javax.Microedition.Khronos.Egl.EGLDisplay display, Javax.Microedition.Khronos.Egl.EGLConfig eglConfig); + public virtual void DestroyContext (Javax.Microedition.Khronos.Egl.IEGL10 egl, Javax.Microedition.Khronos.Egl.EGLDisplay display, Javax.Microedition.Khronos.Egl.EGLContext context); + } + public interface IEGLWindowSurfaceFactory { + // methods + public virtual Javax.Microedition.Khronos.Egl.EGLSurface CreateWindowSurface (Javax.Microedition.Khronos.Egl.IEGL10 egl, Javax.Microedition.Khronos.Egl.EGLDisplay display, Javax.Microedition.Khronos.Egl.EGLConfig config, Java.Lang.Object nativeWindow); + public virtual void DestroySurface (Javax.Microedition.Khronos.Egl.IEGL10 egl, Javax.Microedition.Khronos.Egl.EGLDisplay display, Javax.Microedition.Khronos.Egl.EGLSurface surface); + } + public interface IGLWrapper { + // methods + public virtual Javax.Microedition.Khronos.Opengles.IGL Wrap (Javax.Microedition.Khronos.Opengles.IGL gl); + } + public interface IRenderer { + // methods + public virtual void OnDrawFrame (Javax.Microedition.Khronos.Opengles.IGL10 gl); + public virtual void OnSurfaceChanged (Javax.Microedition.Khronos.Opengles.IGL10 gl, int width, int height); + public virtual void OnSurfaceCreated (Javax.Microedition.Khronos.Opengles.IGL10 gl, Javax.Microedition.Khronos.Egl.EGLConfig config); + public virtual void OnSurfaceDestroyed (); + } +} +``` + +#### New Type: SkiaSharp.Views.Android.Resource + +```csharp +public class Resource { + // constructors + public Resource (); + + // inner types + public class Attribute { + } +} +``` + +#### New Type: SkiaSharp.Views.Android.SKCanvasView + +```csharp +public class SKCanvasView : Android.Views.View, Android.Graphics.Drawables.Drawable.ICallback, Android.Runtime.IJavaObject, Android.Views.Accessibility.IAccessibilityEventSource, Android.Views.KeyEvent.ICallback, Java.Interop.IJavaPeerable, System.IDisposable { + // constructors + public SKCanvasView (Android.Content.Context context); + public SKCanvasView (Android.Content.Context context, Android.Util.IAttributeSet attrs); + protected SKCanvasView (IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer); + public SKCanvasView (Android.Content.Context context, Android.Util.IAttributeSet attrs, int defStyleAttr); + // properties + public SkiaSharp.SKSize CanvasSize { get; } + public bool IgnorePixelScaling { get; set; } + // events + public event System.EventHandler PaintSurface; + // methods + protected override void Dispose (bool disposing); + protected override void OnAttachedToWindow (); + protected override void OnDetachedFromWindow (); + protected override void OnDraw (Android.Graphics.Canvas canvas); + + [Obsolete] +protected virtual void OnDraw (SkiaSharp.SKSurface surface, SkiaSharp.SKImageInfo info); + protected virtual void OnPaintSurface (SKPaintSurfaceEventArgs e); + protected override void OnSizeChanged (int w, int h, int oldw, int oldh); +} +``` + +#### New Type: SkiaSharp.Views.Android.SKGLSurfaceView + +```csharp +public class SKGLSurfaceView : Android.Opengl.GLSurfaceView, Android.Graphics.Drawables.Drawable.ICallback, Android.Runtime.IJavaObject, Android.Views.Accessibility.IAccessibilityEventSource, Android.Views.ISurfaceHolderCallback, Android.Views.ISurfaceHolderCallback2, Android.Views.KeyEvent.ICallback, Java.Interop.IJavaPeerable, System.IDisposable { + // constructors + public SKGLSurfaceView (Android.Content.Context context); + public SKGLSurfaceView (Android.Content.Context context, Android.Util.IAttributeSet attrs); + // properties + public SkiaSharp.SKSize CanvasSize { get; } + public SkiaSharp.GRContext GRContext { get; } + // events + public event System.EventHandler PaintSurface; + // methods + protected virtual void OnPaintSurface (SKPaintGLSurfaceEventArgs e); + + [Obsolete] +public virtual void SetRenderer (SKGLSurfaceView.ISKRenderer renderer); + + // inner types + public interface ISKRenderer { + // methods + public virtual void OnDrawFrame (SkiaSharp.SKSurface surface, SkiaSharp.GRBackendRenderTargetDesc renderTarget); + } +} +``` + +#### New Type: SkiaSharp.Views.Android.SKGLSurfaceViewRenderer + +```csharp +public abstract class SKGLSurfaceViewRenderer : Java.Lang.Object, Android.Opengl.GLSurfaceView.IRenderer, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, System.IDisposable { + // constructors + protected SKGLSurfaceViewRenderer (); + // properties + public SkiaSharp.SKSize CanvasSize { get; } + public SkiaSharp.GRContext GRContext { get; } + // methods + protected override void Dispose (bool disposing); + public virtual void OnDrawFrame (Javax.Microedition.Khronos.Opengles.IGL10 gl); + + [Obsolete] +protected virtual void OnDrawFrame (SkiaSharp.SKSurface surface, SkiaSharp.GRBackendRenderTargetDesc renderTarget); + protected virtual void OnPaintSurface (SKPaintGLSurfaceEventArgs e); + public virtual void OnSurfaceChanged (Javax.Microedition.Khronos.Opengles.IGL10 gl, int width, int height); + public virtual void OnSurfaceCreated (Javax.Microedition.Khronos.Opengles.IGL10 gl, Javax.Microedition.Khronos.Egl.EGLConfig config); +} +``` + +#### New Type: SkiaSharp.Views.Android.SKGLTextureView + +```csharp +public class SKGLTextureView : SkiaSharp.Views.Android.GLTextureView, Android.Graphics.Drawables.Drawable.ICallback, Android.Runtime.IJavaObject, Android.Views.Accessibility.IAccessibilityEventSource, Android.Views.KeyEvent.ICallback, Android.Views.TextureView.ISurfaceTextureListener, Android.Views.View.IOnLayoutChangeListener, Java.Interop.IJavaPeerable, System.IDisposable { + // constructors + public SKGLTextureView (Android.Content.Context context); + public SKGLTextureView (Android.Content.Context context, Android.Util.IAttributeSet attrs); + // properties + public SkiaSharp.SKSize CanvasSize { get; } + public SkiaSharp.GRContext GRContext { get; } + // events + public event System.EventHandler PaintSurface; + // methods + protected virtual void OnPaintSurface (SKPaintGLSurfaceEventArgs e); + + [Obsolete] +public virtual void SetRenderer (SKGLTextureView.ISKRenderer renderer); + + // inner types + public interface ISKRenderer { + // methods + public virtual void OnDrawFrame (SkiaSharp.SKSurface surface, SkiaSharp.GRBackendRenderTargetDesc renderTarget); + } +} +``` + +#### New Type: SkiaSharp.Views.Android.SKGLTextureViewRenderer + +```csharp +public abstract class SKGLTextureViewRenderer : Java.Lang.Object, Android.Runtime.IJavaObject, Java.Interop.IJavaPeerable, GLTextureView.IRenderer, System.IDisposable { + // constructors + protected SKGLTextureViewRenderer (); + // properties + public SkiaSharp.SKSize CanvasSize { get; } + public SkiaSharp.GRContext GRContext { get; } + // methods + protected override void Dispose (bool disposing); + public virtual void OnDrawFrame (Javax.Microedition.Khronos.Opengles.IGL10 gl); + + [Obsolete] +protected virtual void OnDrawFrame (SkiaSharp.SKSurface surface, SkiaSharp.GRBackendRenderTargetDesc renderTarget); + protected virtual void OnPaintSurface (SKPaintGLSurfaceEventArgs e); + public virtual void OnSurfaceChanged (Javax.Microedition.Khronos.Opengles.IGL10 gl, int width, int height); + public virtual void OnSurfaceCreated (Javax.Microedition.Khronos.Opengles.IGL10 gl, Javax.Microedition.Khronos.Egl.EGLConfig config); + public virtual void OnSurfaceDestroyed (); +} +``` + +#### New Type: SkiaSharp.Views.Android.SKLockedSurface + +```csharp +public class SKLockedSurface { + // properties + public SkiaSharp.SKCanvas Canvas { get; } + public SkiaSharp.SKImageInfo ImageInfo { get; } + public SkiaSharp.SKSurface Surface { get; } +} +``` + +#### New Type: SkiaSharp.Views.Android.SKPaintGLSurfaceEventArgs + +```csharp +public class SKPaintGLSurfaceEventArgs : System.EventArgs { + // constructors + public SKPaintGLSurfaceEventArgs (SkiaSharp.SKSurface surface, SkiaSharp.GRBackendRenderTarget renderTarget); + + [Obsolete] +public SKPaintGLSurfaceEventArgs (SkiaSharp.SKSurface surface, SkiaSharp.GRBackendRenderTargetDesc renderTarget); + public SKPaintGLSurfaceEventArgs (SkiaSharp.SKSurface surface, SkiaSharp.GRBackendRenderTarget renderTarget, SkiaSharp.GRSurfaceOrigin origin, SkiaSharp.SKColorType colorType); + public SKPaintGLSurfaceEventArgs (SkiaSharp.SKSurface surface, SkiaSharp.GRBackendRenderTarget renderTarget, SkiaSharp.GRSurfaceOrigin origin, SkiaSharp.SKColorType colorType, SkiaSharp.GRGlFramebufferInfo glInfo); + // properties + public SkiaSharp.GRBackendRenderTarget BackendRenderTarget { get; } + public SkiaSharp.SKColorType ColorType { get; } + public SkiaSharp.GRSurfaceOrigin Origin { get; } + + [Obsolete] +public SkiaSharp.GRBackendRenderTargetDesc RenderTarget { get; } + public SkiaSharp.SKSurface Surface { get; } +} +``` + +#### New Type: SkiaSharp.Views.Android.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.Android.SKSurfaceView + +```csharp +public class SKSurfaceView : Android.Views.SurfaceView, Android.Graphics.Drawables.Drawable.ICallback, Android.Runtime.IJavaObject, Android.Views.Accessibility.IAccessibilityEventSource, Android.Views.ISurfaceHolderCallback, Android.Views.KeyEvent.ICallback, Java.Interop.IJavaPeerable, System.IDisposable { + // constructors + public SKSurfaceView (Android.Content.Context context); + public SKSurfaceView (Android.Content.Context context, Android.Util.IAttributeSet attrs); + public SKSurfaceView (Android.Content.Context context, Android.Util.IAttributeSet attrs, int defStyle); + // properties + public SkiaSharp.SKSize CanvasSize { get; } + // methods + protected override void Dispose (bool disposing); + public SKLockedSurface LockSurface (); + public virtual void SurfaceChanged (Android.Views.ISurfaceHolder holder, Android.Graphics.Format format, int width, int height); + public virtual void SurfaceCreated (Android.Views.ISurfaceHolder holder); + public virtual void SurfaceDestroyed (Android.Views.ISurfaceHolder holder); + public void UnlockSurfaceAndPost (SKLockedSurface surface); +} +``` + diff --git a/changelogs/SkiaSharp.Views/2.88.0/SkiaSharp.Views.Desktop.md b/changelogs/SkiaSharp.Views/2.88.0/SkiaSharp.Views.Desktop.md new file mode 100644 index 000000000..a892c46ff --- /dev/null +++ b/changelogs/SkiaSharp.Views/2.88.0/SkiaSharp.Views.Desktop.md @@ -0,0 +1,6 @@ +# API diff: SkiaSharp.Views.Desktop.dll + +## SkiaSharp.Views.Desktop.dll + +> Assembly Version Changed: 2.88.0.0 vs 2.80.0.0 + diff --git a/changelogs/SkiaSharp.Views/2.88.0/SkiaSharp.Views.Mac.md b/changelogs/SkiaSharp.Views/2.88.0/SkiaSharp.Views.Mac.md new file mode 100644 index 000000000..05d953964 --- /dev/null +++ b/changelogs/SkiaSharp.Views/2.88.0/SkiaSharp.Views.Mac.md @@ -0,0 +1,44 @@ +# API diff: SkiaSharp.Views.Mac.dll + +## SkiaSharp.Views.Mac.dll + +> Assembly Version Changed: 2.88.0.0 vs 2.80.0.0 + +### Namespace SkiaSharp.Views.Mac + +#### New Type: SkiaSharp.Views.Mac.SKMetalView + +```csharp +public class SKMetalView : MetalKit.MTKView, AppKit.INSAccessibility, AppKit.INSAccessibilityElementProtocol, AppKit.INSAppearanceCustomization, AppKit.INSDraggingDestination, AppKit.INSTouchBarProvider, AppKit.INSUserInterfaceItemIdentification, CoreAnimation.ICALayerDelegate, Foundation.INSCoding, Foundation.INSObjectProtocol, MetalKit.IMTKViewDelegate, ObjCRuntime.INativeObject, System.ComponentModel.IComponent, System.IDisposable, System.IEquatable { + // constructors + public SKMetalView (); + public SKMetalView (CoreGraphics.CGRect frame); + public SKMetalView (IntPtr p); + public SKMetalView (CoreGraphics.CGRect frame, Metal.IMTLDevice device); + // properties + public SkiaSharp.SKSize CanvasSize { get; } + public SkiaSharp.GRContext GRContext { get; } + // events + public event System.EventHandler PaintSurface; + // methods + public override void AwakeFromNib (); + protected virtual void OnPaintSurface (SKPaintMetalSurfaceEventArgs e); +} +``` + +#### New Type: SkiaSharp.Views.Mac.SKPaintMetalSurfaceEventArgs + +```csharp +public class SKPaintMetalSurfaceEventArgs : System.EventArgs { + // constructors + public SKPaintMetalSurfaceEventArgs (SkiaSharp.SKSurface surface, SkiaSharp.GRBackendRenderTarget renderTarget); + public SKPaintMetalSurfaceEventArgs (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; } + public SkiaSharp.SKSurface Surface { get; } +} +``` + + diff --git a/changelogs/SkiaSharp.Views/2.88.0/SkiaSharp.Views.Tizen.md b/changelogs/SkiaSharp.Views/2.88.0/SkiaSharp.Views.Tizen.md new file mode 100644 index 000000000..b9598a5ab --- /dev/null +++ b/changelogs/SkiaSharp.Views/2.88.0/SkiaSharp.Views.Tizen.md @@ -0,0 +1,6 @@ +# API diff: SkiaSharp.Views.Tizen.dll + +## SkiaSharp.Views.Tizen.dll + +> Assembly Version Changed: 2.88.0.0 vs 2.80.0.0 + diff --git a/changelogs/SkiaSharp.Views/2.88.0/SkiaSharp.Views.UWP.md b/changelogs/SkiaSharp.Views/2.88.0/SkiaSharp.Views.UWP.md new file mode 100644 index 000000000..d1c066124 --- /dev/null +++ b/changelogs/SkiaSharp.Views/2.88.0/SkiaSharp.Views.UWP.md @@ -0,0 +1,6 @@ +# API diff: SkiaSharp.Views.UWP.dll + +## SkiaSharp.Views.UWP.dll + +> Assembly Version Changed: 2.88.0.0 vs 2.80.0.0 + diff --git a/changelogs/SkiaSharp.Views/2.88.0/SkiaSharp.Views.iOS.md b/changelogs/SkiaSharp.Views/2.88.0/SkiaSharp.Views.iOS.md new file mode 100644 index 000000000..3d9ec9fb4 --- /dev/null +++ b/changelogs/SkiaSharp.Views/2.88.0/SkiaSharp.Views.iOS.md @@ -0,0 +1,44 @@ +# API diff: SkiaSharp.Views.iOS.dll + +## SkiaSharp.Views.iOS.dll + +> Assembly Version Changed: 2.88.0.0 vs 2.80.0.0 + +### Namespace SkiaSharp.Views.iOS + +#### New Type: SkiaSharp.Views.iOS.SKMetalView + +```csharp +public class SKMetalView : MetalKit.MTKView, CoreAnimation.ICALayerDelegate, Foundation.INSCoding, Foundation.INSObjectProtocol, MetalKit.IMTKViewDelegate, ObjCRuntime.INativeObject, System.Collections.IEnumerable, System.ComponentModel.IComponent, System.IDisposable, System.IEquatable, UIKit.IUIAccessibilityIdentification, UIKit.IUIAppearance, UIKit.IUIAppearanceContainer, UIKit.IUICoordinateSpace, UIKit.IUIDynamicItem, UIKit.IUIFocusEnvironment, UIKit.IUIFocusItem, UIKit.IUIFocusItemContainer, UIKit.IUILargeContentViewerItem, UIKit.IUIPasteConfigurationSupporting, UIKit.IUITraitEnvironment, UIKit.IUIUserActivityRestoring { + // constructors + public SKMetalView (); + public SKMetalView (CoreGraphics.CGRect frame); + public SKMetalView (IntPtr p); + public SKMetalView (CoreGraphics.CGRect frame, Metal.IMTLDevice device); + // properties + public SkiaSharp.SKSize CanvasSize { get; } + public SkiaSharp.GRContext GRContext { get; } + // events + public event System.EventHandler PaintSurface; + // methods + public override void AwakeFromNib (); + protected virtual void OnPaintSurface (SKPaintMetalSurfaceEventArgs e); +} +``` + +#### New Type: SkiaSharp.Views.iOS.SKPaintMetalSurfaceEventArgs + +```csharp +public class SKPaintMetalSurfaceEventArgs : System.EventArgs { + // constructors + public SKPaintMetalSurfaceEventArgs (SkiaSharp.SKSurface surface, SkiaSharp.GRBackendRenderTarget renderTarget); + public SKPaintMetalSurfaceEventArgs (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; } + public SkiaSharp.SKSurface Surface { get; } +} +``` + + diff --git a/changelogs/SkiaSharp.Views/2.88.0/SkiaSharp.Views.tvOS.md b/changelogs/SkiaSharp.Views/2.88.0/SkiaSharp.Views.tvOS.md new file mode 100644 index 000000000..ddefe87c5 --- /dev/null +++ b/changelogs/SkiaSharp.Views/2.88.0/SkiaSharp.Views.tvOS.md @@ -0,0 +1,6 @@ +# API diff: SkiaSharp.Views.tvOS.dll + +## SkiaSharp.Views.tvOS.dll + +> Assembly Version Changed: 2.88.0.0 vs 2.80.0.0 + diff --git a/changelogs/SkiaSharp.Views/2.88.0/SkiaSharp.Views.watchOS.md b/changelogs/SkiaSharp.Views/2.88.0/SkiaSharp.Views.watchOS.md new file mode 100644 index 000000000..ab97091ba --- /dev/null +++ b/changelogs/SkiaSharp.Views/2.88.0/SkiaSharp.Views.watchOS.md @@ -0,0 +1,6 @@ +# API diff: SkiaSharp.Views.watchOS.dll + +## SkiaSharp.Views.watchOS.dll + +> Assembly Version Changed: 2.88.0.0 vs 2.80.0.0 + diff --git a/changelogs/SkiaSharp.Vulkan.SharpVk/2.88.0/SkiaSharp.Vulkan.SharpVk.md b/changelogs/SkiaSharp.Vulkan.SharpVk/2.88.0/SkiaSharp.Vulkan.SharpVk.md new file mode 100644 index 000000000..cb46da37c --- /dev/null +++ b/changelogs/SkiaSharp.Vulkan.SharpVk/2.88.0/SkiaSharp.Vulkan.SharpVk.md @@ -0,0 +1,6 @@ +# API diff: SkiaSharp.Vulkan.SharpVk.dll + +## SkiaSharp.Vulkan.SharpVk.dll + +> Assembly Version Changed: 2.88.0.0 vs 2.80.0.0 + diff --git a/changelogs/SkiaSharp/2.88.0/SkiaSharp.md b/changelogs/SkiaSharp/2.88.0/SkiaSharp.md new file mode 100644 index 000000000..5306749b8 --- /dev/null +++ b/changelogs/SkiaSharp/2.88.0/SkiaSharp.md @@ -0,0 +1,263 @@ +# API diff: SkiaSharp.dll + +## SkiaSharp.dll + +> Assembly Version Changed: 2.88.0.0 vs 2.80.0.0 + +### Namespace SkiaSharp + +#### Type Changed: SkiaSharp.GRBackend + +Added value: + +```csharp +Direct3D = 4, +``` + + +#### Type Changed: SkiaSharp.GRContext + +Added property: + +```csharp +public bool IsAbandoned { get; } +``` + +Added methods: + +```csharp +public static GRContext CreateGl (GRContextOptions options); +public static GRContext CreateGl (GRGlInterface backendContext, GRContextOptions options); +public static GRContext CreateVulkan (GRVkBackendContext backendContext, GRContextOptions options); +protected override void DisposeNative (); +``` + + +#### Type Changed: SkiaSharp.GRGlInterface + +Added method: + +```csharp +public static GRGlInterface CreateAngle (); +``` + + +#### Type Changed: SkiaSharp.GRVkImageInfo + +Added properties: + +```csharp +public uint ImageUsageFlags { get; set; } +public uint SampleCount { get; set; } +public uint SharingMode { get; set; } +``` + + +#### Type Changed: SkiaSharp.SKBitmap + +Obsoleted properties: + +```diff + [Obsolete ()] + public bool IsVolatile { get; set; } +``` + + +#### Type Changed: SkiaSharp.SKColorSpaceXyz + +Obsoleted properties: + +```diff + [Obsolete ()] + public static SKColorSpaceXyz Dcip3 { get; } +``` + +Added property: + +```csharp +public static SKColorSpaceXyz DisplayP3 { get; } +``` + + +#### Type Changed: SkiaSharp.SKColorType + +Added values: + +```csharp +Bgr101010x = 20, +Bgra1010102 = 19, +``` + + +#### Type Changed: SkiaSharp.SKData + +Added property: + +```csharp +public System.Span Span { get; } +``` + +Added methods: + +```csharp +public static SKData Create (long size); +public static SKData CreateCopy (IntPtr bytes, int length); +public static SKData CreateCopy (IntPtr bytes, long length); +``` + + +#### Type Changed: SkiaSharp.SKImage + +Added property: + +```csharp +public SKImageInfo Info { get; } +``` + +Added method: + +```csharp +public SKImage ApplyImageFilter (GRContext context, SKImageFilter filter, SKRectI subset, SKRectI clipBounds, out SKRectI outSubset, out SKPointI outOffset); +``` + + +#### Type Changed: SkiaSharp.SKPicture + +Added methods: + +```csharp +public static SKPicture Deserialize (SKData data); +public static SKPicture Deserialize (SKStream stream); +public static SKPicture Deserialize (System.IO.Stream stream); +public static SKPicture Deserialize (System.ReadOnlySpan data); +public static SKPicture Deserialize (IntPtr data, int length); +public SKData Serialize (); +public void Serialize (SKWStream stream); +public void Serialize (System.IO.Stream stream); +``` + + +#### Type Changed: SkiaSharp.SKSurface + +Obsoleted methods: + +```diff + [Obsolete ()] + public static SKSurface CreateAsRenderTarget (GRContext context, GRBackendTexture texture, SKColorType colorType); + [Obsolete ()] + public static SKSurface CreateAsRenderTarget (GRContext context, GRBackendTexture texture, GRSurfaceOrigin origin, SKColorType colorType); + [Obsolete ()] + public static SKSurface CreateAsRenderTarget (GRContext context, GRBackendTexture texture, SKColorType colorType, SKSurfaceProperties props); + [Obsolete ()] + public static SKSurface CreateAsRenderTarget (GRContext context, GRBackendTexture texture, GRSurfaceOrigin origin, SKColorType colorType, SKSurfaceProperties props); + [Obsolete ()] + public static SKSurface CreateAsRenderTarget (GRContext context, GRBackendTexture texture, GRSurfaceOrigin origin, int sampleCount, SKColorType colorType); + [Obsolete ()] + public static SKSurface CreateAsRenderTarget (GRContext context, GRBackendTexture texture, GRSurfaceOrigin origin, int sampleCount, SKColorType colorType, SKColorSpace colorspace); + [Obsolete ()] + public static SKSurface CreateAsRenderTarget (GRContext context, GRBackendTexture texture, GRSurfaceOrigin origin, int sampleCount, SKColorType colorType, SKSurfaceProperties props); + [Obsolete ()] + public static SKSurface CreateAsRenderTarget (GRContext context, GRBackendTexture texture, GRSurfaceOrigin origin, int sampleCount, SKColorType colorType, SKColorSpace colorspace, SKSurfaceProperties props); +``` + +Added method: + +```csharp +public void Flush (); +``` + + +#### New Type: SkiaSharp.GRContextOptions + +```csharp +public class GRContextOptions { + // constructors + public GRContextOptions (); + // properties + public bool AllowPathMaskCaching { get; set; } + public bool AvoidStencilBuffers { get; set; } + public int BufferMapThreshold { get; set; } + public bool DoManualMipmapping { get; set; } + public int GlyphCacheTextureMaximumBytes { get; set; } + public int RuntimeProgramCacheSize { get; set; } +} +``` + +#### New Type: SkiaSharp.SKRuntimeEffect + +```csharp +public class SKRuntimeEffect : SkiaSharp.SKObject, System.IDisposable { + // properties + public System.Collections.Generic.IReadOnlyList Children { get; } + public int UniformSize { get; } + public System.Collections.Generic.IReadOnlyList Uniforms { get; } + // methods + public static SKRuntimeEffect Create (string sksl, out string errors); + public SKColorFilter ToColorFilter (); + public SKColorFilter ToColorFilter (SKRuntimeEffectUniforms uniforms); + public SKColorFilter ToColorFilter (SKRuntimeEffectUniforms uniforms, SKRuntimeEffectChildren children); + public SKShader ToShader (bool isOpaque); + public SKShader ToShader (bool isOpaque, SKRuntimeEffectUniforms uniforms); + public SKShader ToShader (bool isOpaque, SKRuntimeEffectUniforms uniforms, SKRuntimeEffectChildren children); + public SKShader ToShader (bool isOpaque, SKRuntimeEffectUniforms uniforms, SKRuntimeEffectChildren children, SKMatrix localMatrix); +} +``` + +#### New Type: SkiaSharp.SKRuntimeEffectChildren + +```csharp +public class SKRuntimeEffectChildren : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { + // constructors + public SKRuntimeEffectChildren (SKRuntimeEffect effect); + // properties + public int Count { get; } + public SKShader Item { set; } + public System.Collections.Generic.IReadOnlyList Names { get; } + // methods + public void Add (string name, SKShader value); + public bool Contains (string name); + public virtual System.Collections.Generic.IEnumerator GetEnumerator (); + public void Reset (); + public SKShader[] ToArray (); +} +``` + +#### New Type: SkiaSharp.SKRuntimeEffectUniform + +```csharp +public struct SKRuntimeEffectUniform { + // properties + public static SKRuntimeEffectUniform Empty { get; } + public bool IsEmpty { get; } + public int Size { get; } + // methods + public void WriteTo (System.Span data); + public static SKRuntimeEffectUniform op_Implicit (SKMatrix value); + public static SKRuntimeEffectUniform op_Implicit (System.ReadOnlySpan value); + public static SKRuntimeEffectUniform op_Implicit (float value); + public static SKRuntimeEffectUniform op_Implicit (float[] value); + public static SKRuntimeEffectUniform op_Implicit (float[][] value); + public static SKRuntimeEffectUniform op_Implicit (System.Span value); +} +``` + +#### New Type: SkiaSharp.SKRuntimeEffectUniforms + +```csharp +public class SKRuntimeEffectUniforms : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable { + // constructors + public SKRuntimeEffectUniforms (SKRuntimeEffect effect); + // properties + public int Count { get; } + public SKRuntimeEffectUniform Item { set; } + public System.Collections.Generic.IReadOnlyList Names { get; } + // methods + public void Add (string name, SKRuntimeEffectUniform value); + public bool Contains (string name); + public virtual System.Collections.Generic.IEnumerator GetEnumerator (); + public void Reset (); + public SKData ToData (); +} +``` + + diff --git a/docs b/docs index 4eaaabdfb..c74cd3c52 160000 --- a/docs +++ b/docs @@ -1 +1 @@ -Subproject commit 4eaaabdfba22d042856d59c8ce4f3eabe87a972c +Subproject commit c74cd3c5254d65997d92bf9d89732c6da5400f6e diff --git a/nuget/SkiaSharp.Views.Maui.Controls.Compatibility.nuspec b/nuget/SkiaSharp.Views.Maui.Controls.Compatibility.nuspec index a2b03eb9f..a37892e24 100644 --- a/nuget/SkiaSharp.Views.Maui.Controls.Compatibility.nuspec +++ b/nuget/SkiaSharp.Views.Maui.Controls.Compatibility.nuspec @@ -29,19 +29,15 @@ Please visit https://go.microsoft.com/fwlink/?linkid=868517 to view the release - - - - diff --git a/nuget/SkiaSharp.Views.Maui.Controls.nuspec b/nuget/SkiaSharp.Views.Maui.Controls.nuspec index 116446bd8..3ccd5e029 100644 --- a/nuget/SkiaSharp.Views.Maui.Controls.nuspec +++ b/nuget/SkiaSharp.Views.Maui.Controls.nuspec @@ -27,29 +27,23 @@ Please visit https://go.microsoft.com/fwlink/?linkid=868517 to view the release © Microsoft Corporation. All rights reserved. - + - - - - @@ -57,8 +51,8 @@ Please visit https://go.microsoft.com/fwlink/?linkid=868517 to view the release - - + + diff --git a/nuget/SkiaSharp.Views.Maui.Core.nuspec b/nuget/SkiaSharp.Views.Maui.Core.nuspec index 662e33e0a..b1bc92ce7 100644 --- a/nuget/SkiaSharp.Views.Maui.Core.nuspec +++ b/nuget/SkiaSharp.Views.Maui.Core.nuspec @@ -27,33 +27,27 @@ Please visit https://go.microsoft.com/fwlink/?linkid=868517 to view the release © Microsoft Corporation. All rights reserved. - + - - - - @@ -61,8 +55,8 @@ Please visit https://go.microsoft.com/fwlink/?linkid=868517 to view the release - - + + diff --git a/nuget/_NuGetsPreview.nuspec b/nuget/_NuGetsPreview.nuspec new file mode 100644 index 000000000..0eef1a164 --- /dev/null +++ b/nuget/_NuGetsPreview.nuspec @@ -0,0 +1,18 @@ + + + + + _NuGetsPreview + Build NuGets + 1.0.0 + All the preview NuGet packages from the build. + All the preview NuGet packages from the build. + Microsoft + + + + + + + + \ No newline at end of file diff --git a/samples/Basic/Maui/SkiaSharpSample.WinUI/Platforms/Windows/App.xaml b/samples/Basic/Maui/SkiaSharpSample.WinUI/Platforms/Windows/App.xaml new file mode 100644 index 000000000..dd574369e --- /dev/null +++ b/samples/Basic/Maui/SkiaSharpSample.WinUI/Platforms/Windows/App.xaml @@ -0,0 +1,8 @@ + + + diff --git a/samples/Basic/Maui/SkiaSharpSample.WinUI/Platforms/Windows/App.xaml.cs b/samples/Basic/Maui/SkiaSharpSample.WinUI/Platforms/Windows/App.xaml.cs new file mode 100644 index 000000000..37324f7c8 --- /dev/null +++ b/samples/Basic/Maui/SkiaSharpSample.WinUI/Platforms/Windows/App.xaml.cs @@ -0,0 +1,22 @@ +using Microsoft.Maui; +using Microsoft.UI.Xaml; + +namespace SkiaSharpSample.WinUI +{ + public partial class App : MauiWinUIApplication + { + public App() + { + InitializeComponent(); + } + + protected override IStartup OnCreateStartup() => new Startup(); + + protected override void OnLaunched(LaunchActivatedEventArgs args) + { + base.OnLaunched(args); + + Microsoft.Maui.Essentials.Platform.OnLaunched(args); + } + } +} diff --git a/samples/Basic/Maui/SkiaSharpSample.WinUI/Windows/Package.appxmanifest b/samples/Basic/Maui/SkiaSharpSample.WinUI/Platforms/Windows/Package.appxmanifest similarity index 100% rename from samples/Basic/Maui/SkiaSharpSample.WinUI/Windows/Package.appxmanifest rename to samples/Basic/Maui/SkiaSharpSample.WinUI/Platforms/Windows/Package.appxmanifest diff --git a/samples/Basic/Maui/SkiaSharpSample.WinUI/Windows/app.manifest b/samples/Basic/Maui/SkiaSharpSample.WinUI/Platforms/Windows/app.manifest similarity index 100% rename from samples/Basic/Maui/SkiaSharpSample.WinUI/Windows/app.manifest rename to samples/Basic/Maui/SkiaSharpSample.WinUI/Platforms/Windows/app.manifest diff --git a/samples/Basic/Maui/SkiaSharpSample.WinUI/Properties/launchSettings.json b/samples/Basic/Maui/SkiaSharpSample.WinUI/Properties/launchSettings.json index fe30f65c7..161bf8d58 100644 --- a/samples/Basic/Maui/SkiaSharpSample.WinUI/Properties/launchSettings.json +++ b/samples/Basic/Maui/SkiaSharpSample.WinUI/Properties/launchSettings.json @@ -1,7 +1,8 @@ { "profiles": { "SkiaSharpSample.WinUI": { - "commandName": "AppContainer" + "commandName": "MsixPackage", + "nativeDebugging": true } } } \ No newline at end of file diff --git a/samples/Basic/Maui/SkiaSharpSample.WinUI/SkiaSharpSample.WinUI.csproj b/samples/Basic/Maui/SkiaSharpSample.WinUI/SkiaSharpSample.WinUI.csproj index 0daf310d9..8e8192374 100644 --- a/samples/Basic/Maui/SkiaSharpSample.WinUI/SkiaSharpSample.WinUI.csproj +++ b/samples/Basic/Maui/SkiaSharpSample.WinUI/SkiaSharpSample.WinUI.csproj @@ -6,6 +6,8 @@ 10.0.17763.0 true SkiaSharpSample + true + win-x64 true @@ -18,14 +20,10 @@ - + - - - - @@ -33,11 +31,9 @@ - - - - - + + + diff --git a/samples/Basic/Maui/SkiaSharpSample.WinUI/Windows/App.xaml b/samples/Basic/Maui/SkiaSharpSample.WinUI/Windows/App.xaml deleted file mode 100644 index 91041cb69..000000000 --- a/samples/Basic/Maui/SkiaSharpSample.WinUI/Windows/App.xaml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - diff --git a/samples/Basic/Maui/SkiaSharpSample.WinUI/Windows/App.xaml.cs b/samples/Basic/Maui/SkiaSharpSample.WinUI/Windows/App.xaml.cs deleted file mode 100644 index 5e7d9fee8..000000000 --- a/samples/Basic/Maui/SkiaSharpSample.WinUI/Windows/App.xaml.cs +++ /dev/null @@ -1,34 +0,0 @@ -using Microsoft.Maui; -using Microsoft.UI.Xaml; -using Windows.ApplicationModel; - -// To learn more about WinUI, the WinUI project structure, -// and more about our project templates, see: http://aka.ms/winui-project-info. - -namespace SkiaSharpSample.WinUI -{ - /// - /// Provides application-specific behavior to supplement the default Application class. - /// - public partial class App : MiddleApp - { - /// - /// Initializes the singleton application object. This is the first line of authored code - /// executed, and as such is the logical equivalent of main() or WinMain(). - /// - public App() - { - this.InitializeComponent(); - } - - protected override void OnLaunched(LaunchActivatedEventArgs args) - { - base.OnLaunched(args); - - Microsoft.Maui.Essentials.Platform.OnLaunched(args); - } - } - public class MiddleApp : MauiWinUIApplication - { - } -} diff --git a/samples/Basic/Maui/SkiaSharpSample/App.xaml b/samples/Basic/Maui/SkiaSharpSample/App.xaml index 9d3ea833f..eed75fc4e 100644 --- a/samples/Basic/Maui/SkiaSharpSample/App.xaml +++ b/samples/Basic/Maui/SkiaSharpSample/App.xaml @@ -1,7 +1,9 @@  + x:Class="SkiaSharpSample.App" + windows:Application.ImageDirectory="Assets"> diff --git a/samples/Basic/Maui/SkiaSharpSample/App.xaml.cs b/samples/Basic/Maui/SkiaSharpSample/App.xaml.cs index 790f01181..cc735baa0 100644 --- a/samples/Basic/Maui/SkiaSharpSample/App.xaml.cs +++ b/samples/Basic/Maui/SkiaSharpSample/App.xaml.cs @@ -1,8 +1,4 @@ -using Microsoft.Maui; -using Microsoft.Maui.Controls; -using Microsoft.Maui.Controls.PlatformConfiguration.WindowsSpecific; -using Application = Microsoft.Maui.Controls.Application; -using WindowsConfiguration = Microsoft.Maui.Controls.PlatformConfiguration.Windows; +using Microsoft.Maui.Controls; namespace SkiaSharpSample { @@ -11,13 +7,8 @@ namespace SkiaSharpSample public App() { InitializeComponent(); - } - protected override IWindow CreateWindow(IActivationState activationState) - { - On().SetImageDirectory("Assets"); - - return new Window(new MainPage()); + MainPage = new MainPage(); } } } diff --git a/samples/Basic/Maui/SkiaSharpSample/MacCatalyst/Entitlements.plist b/samples/Basic/Maui/SkiaSharpSample/MacCatalyst/Entitlements.plist deleted file mode 100644 index 36a870670..000000000 --- a/samples/Basic/Maui/SkiaSharpSample/MacCatalyst/Entitlements.plist +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/samples/Basic/Maui/SkiaSharpSample/MacCatalyst/Program.cs b/samples/Basic/Maui/SkiaSharpSample/MacCatalyst/Program.cs deleted file mode 100644 index 6175f1b23..000000000 --- a/samples/Basic/Maui/SkiaSharpSample/MacCatalyst/Program.cs +++ /dev/null @@ -1,15 +0,0 @@ -using UIKit; - -namespace SkiaSharpSample -{ - public class Program - { - // This is the main entry point of the application. - static void Main(string[] args) - { - // if you want to use a different Application Delegate class from "AppDelegate" - // you can specify it here. - UIApplication.Main(args, null, "AppDelegate"); - } - } -} \ No newline at end of file diff --git a/samples/Basic/Maui/SkiaSharpSample/MainPage.xaml.cs b/samples/Basic/Maui/SkiaSharpSample/MainPage.xaml.cs index 8d7e0bf4c..01dabda17 100644 --- a/samples/Basic/Maui/SkiaSharpSample/MainPage.xaml.cs +++ b/samples/Basic/Maui/SkiaSharpSample/MainPage.xaml.cs @@ -1,7 +1,6 @@ using Microsoft.Maui.Controls; using SkiaSharp; using SkiaSharp.Views.Maui; -using SkiaSharp.Views.Maui.Controls; namespace SkiaSharpSample { diff --git a/samples/Basic/Maui/SkiaSharpSample/Android/AndroidManifest.xml b/samples/Basic/Maui/SkiaSharpSample/Platforms/Android/AndroidManifest.xml similarity index 100% rename from samples/Basic/Maui/SkiaSharpSample/Android/AndroidManifest.xml rename to samples/Basic/Maui/SkiaSharpSample/Platforms/Android/AndroidManifest.xml diff --git a/samples/Basic/Maui/SkiaSharpSample/Android/MainActivity.cs b/samples/Basic/Maui/SkiaSharpSample/Platforms/Android/MainActivity.cs similarity index 100% rename from samples/Basic/Maui/SkiaSharpSample/Android/MainActivity.cs rename to samples/Basic/Maui/SkiaSharpSample/Platforms/Android/MainActivity.cs diff --git a/samples/Basic/Maui/SkiaSharpSample/Android/MainApplication.cs b/samples/Basic/Maui/SkiaSharpSample/Platforms/Android/MainApplication.cs similarity index 100% rename from samples/Basic/Maui/SkiaSharpSample/Android/MainApplication.cs rename to samples/Basic/Maui/SkiaSharpSample/Platforms/Android/MainApplication.cs diff --git a/samples/Basic/Maui/SkiaSharpSample/iOS/AppDelegate.cs b/samples/Basic/Maui/SkiaSharpSample/Platforms/MacCatalyst/AppDelegate.cs similarity index 80% rename from samples/Basic/Maui/SkiaSharpSample/iOS/AppDelegate.cs rename to samples/Basic/Maui/SkiaSharpSample/Platforms/MacCatalyst/AppDelegate.cs index 8a96b63f1..1842d10f6 100644 --- a/samples/Basic/Maui/SkiaSharpSample/iOS/AppDelegate.cs +++ b/samples/Basic/Maui/SkiaSharpSample/Platforms/MacCatalyst/AppDelegate.cs @@ -3,8 +3,8 @@ using Microsoft.Maui; namespace SkiaSharpSample { - [Register("AppDelegate")] + [Register(nameof(AppDelegate))] public class AppDelegate : MauiUIApplicationDelegate { } -} \ No newline at end of file +} diff --git a/samples/Basic/Maui/SkiaSharpSample/MacCatalyst/Info.plist b/samples/Basic/Maui/SkiaSharpSample/Platforms/MacCatalyst/Info.plist similarity index 100% rename from samples/Basic/Maui/SkiaSharpSample/MacCatalyst/Info.plist rename to samples/Basic/Maui/SkiaSharpSample/Platforms/MacCatalyst/Info.plist diff --git a/samples/Basic/Maui/SkiaSharpSample/Platforms/MacCatalyst/Program.cs b/samples/Basic/Maui/SkiaSharpSample/Platforms/MacCatalyst/Program.cs new file mode 100644 index 000000000..db38dfd6d --- /dev/null +++ b/samples/Basic/Maui/SkiaSharpSample/Platforms/MacCatalyst/Program.cs @@ -0,0 +1,12 @@ +using UIKit; + +namespace SkiaSharpSample +{ + public class Program + { + static void Main(string[] args) + { + UIApplication.Main(args, null, typeof(AppDelegate)); + } + } +} diff --git a/samples/Basic/Maui/SkiaSharpSample/MacCatalyst/AppDelegate.cs b/samples/Basic/Maui/SkiaSharpSample/Platforms/iOS/AppDelegate.cs similarity index 80% rename from samples/Basic/Maui/SkiaSharpSample/MacCatalyst/AppDelegate.cs rename to samples/Basic/Maui/SkiaSharpSample/Platforms/iOS/AppDelegate.cs index 8a96b63f1..1842d10f6 100644 --- a/samples/Basic/Maui/SkiaSharpSample/MacCatalyst/AppDelegate.cs +++ b/samples/Basic/Maui/SkiaSharpSample/Platforms/iOS/AppDelegate.cs @@ -3,8 +3,8 @@ using Microsoft.Maui; namespace SkiaSharpSample { - [Register("AppDelegate")] + [Register(nameof(AppDelegate))] public class AppDelegate : MauiUIApplicationDelegate { } -} \ No newline at end of file +} diff --git a/samples/Basic/Maui/SkiaSharpSample/iOS/Info.plist b/samples/Basic/Maui/SkiaSharpSample/Platforms/iOS/Info.plist similarity index 100% rename from samples/Basic/Maui/SkiaSharpSample/iOS/Info.plist rename to samples/Basic/Maui/SkiaSharpSample/Platforms/iOS/Info.plist diff --git a/samples/Basic/Maui/SkiaSharpSample/Platforms/iOS/Program.cs b/samples/Basic/Maui/SkiaSharpSample/Platforms/iOS/Program.cs new file mode 100644 index 000000000..db38dfd6d --- /dev/null +++ b/samples/Basic/Maui/SkiaSharpSample/Platforms/iOS/Program.cs @@ -0,0 +1,12 @@ +using UIKit; + +namespace SkiaSharpSample +{ + public class Program + { + static void Main(string[] args) + { + UIApplication.Main(args, null, typeof(AppDelegate)); + } + } +} diff --git a/samples/Basic/Maui/SkiaSharpSample/SkiaSharpSample.csproj b/samples/Basic/Maui/SkiaSharpSample/SkiaSharpSample.csproj index bc28ea081..5e6e1ccd6 100644 --- a/samples/Basic/Maui/SkiaSharpSample/SkiaSharpSample.csproj +++ b/samples/Basic/Maui/SkiaSharpSample/SkiaSharpSample.csproj @@ -9,6 +9,7 @@ com.companyname.SkiaSharpSample 1.0 1 + true @@ -16,10 +17,6 @@ - - - - diff --git a/samples/Basic/Maui/SkiaSharpSample/iOS/Entitlements.plist b/samples/Basic/Maui/SkiaSharpSample/iOS/Entitlements.plist deleted file mode 100644 index 36a870670..000000000 --- a/samples/Basic/Maui/SkiaSharpSample/iOS/Entitlements.plist +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/samples/Basic/Maui/SkiaSharpSample/iOS/Program.cs b/samples/Basic/Maui/SkiaSharpSample/iOS/Program.cs deleted file mode 100644 index 6175f1b23..000000000 --- a/samples/Basic/Maui/SkiaSharpSample/iOS/Program.cs +++ /dev/null @@ -1,15 +0,0 @@ -using UIKit; - -namespace SkiaSharpSample -{ - public class Program - { - // This is the main entry point of the application. - static void Main(string[] args) - { - // if you want to use a different Application Delegate class from "AppDelegate" - // you can specify it here. - UIApplication.Main(args, null, "AppDelegate"); - } - } -} \ No newline at end of file diff --git a/samples/Directory.Build.props b/samples/Directory.Build.props index 1789d43dc..de297e327 100644 --- a/samples/Directory.Build.props +++ b/samples/Directory.Build.props @@ -5,4 +5,8 @@ true + + false + + \ No newline at end of file diff --git a/scripts/azure-pipelines.yml b/scripts/azure-pipelines.yml index 2306c611d..71f7e8740 100644 --- a/scripts/azure-pipelines.yml +++ b/scripts/azure-pipelines.yml @@ -25,9 +25,8 @@ variables: XCODE_VERSION: 12.4 DOTNET_VERSION_PREVIOUS: 3.1.410 DOTNET_VERSION: 5.0.301 - DOTNET_VERSION_PREVIEW: 6.0.100-preview.5.21302.13 + DOTNET_VERSION_PREVIEW: 6.0.100-preview.6.21355.2 VS_VERSION_PREVIEW: 16/pre - MAUI_CHECK_MANIFEST: https://raw.githubusercontent.com/Redth/dotnet-maui-check/165c910079623e73ecb04c50bade01da1f78f6c9/manifests/maui-preview.manifest.json CONFIGURATION: 'Release' VM_IMAGE_WINDOWS: windows-2019 VM_IMAGE_WINDOWS_PREVIOUS: vs2017-win2016 diff --git a/scripts/azure-templates-bootstrapper.yml b/scripts/azure-templates-bootstrapper.yml index 19b197c1d..3807f9fc5 100644 --- a/scripts/azure-templates-bootstrapper.yml +++ b/scripts/azure-templates-bootstrapper.yml @@ -123,7 +123,7 @@ jobs: - pwsh: .\scripts\install-vs.ps1 -Version $env:VS_VERSION_PREVIEW displayName: Install Visual Studio Preview - ${{ if not(endsWith(parameters.name, '_linux')) }}: - - pwsh: .\scripts\install-maui.ps1 -Manifest $env:MAUI_CHECK_MANIFEST -InstallDir "$env:AGENT_TOOLSDIRECTORY/dotnet" + - pwsh: .\scripts\install-maui.ps1 -InstallDir "$env:AGENT_TOOLSDIRECTORY/dotnet" displayName: Install the .NET Core workloads # display dotnet info - pwsh: dotnet --info diff --git a/scripts/install-maui.ps1 b/scripts/install-maui.ps1 index c8b9c26ee..3e7523c8a 100644 --- a/scripts/install-maui.ps1 +++ b/scripts/install-maui.ps1 @@ -12,11 +12,12 @@ Write-Host "Installing maui-check..." Write-Host "Installing Maui..." & maui-check ` - --manifest "$Manifest" ` + --preview ` --verbose --ci --fix --non-interactive ` --skip androidsdk ` --skip xcode ` --skip vswin ` - --skip vsmac + --skip vsmac ` + --skip edgewebview2 exit $LASTEXITCODE diff --git a/source/SkiaSharp.Views.Forms/SkiaSharp.Views.Forms.Native.Shared/SKCanvasViewRendererBase.cs b/source/SkiaSharp.Views.Forms/SkiaSharp.Views.Forms.Native.Shared/SKCanvasViewRendererBase.cs index 7f603cb76..fee4b023a 100644 --- a/source/SkiaSharp.Views.Forms/SkiaSharp.Views.Forms.Native.Shared/SKCanvasViewRendererBase.cs +++ b/source/SkiaSharp.Views.Forms/SkiaSharp.Views.Forms.Native.Shared/SKCanvasViewRendererBase.cs @@ -108,11 +108,7 @@ namespace SkiaSharp.Views.Forms } #endif -#if __MAUI__ && __ANDROID__ - protected override void OnElementChanged(Microsoft.Maui.Controls.Compatibility.Platform.Android.ElementChangedEventArgs e) -#else protected override void OnElementChanged(ElementChangedEventArgs e) -#endif { if (e.OldElement != null) { diff --git a/source/SkiaSharp.Views.Forms/SkiaSharp.Views.Forms.Native.Shared/SKGLViewRendererBase.cs b/source/SkiaSharp.Views.Forms/SkiaSharp.Views.Forms.Native.Shared/SKGLViewRendererBase.cs index 398ff519b..2a08f6fd1 100644 --- a/source/SkiaSharp.Views.Forms/SkiaSharp.Views.Forms.Native.Shared/SKGLViewRendererBase.cs +++ b/source/SkiaSharp.Views.Forms/SkiaSharp.Views.Forms.Native.Shared/SKGLViewRendererBase.cs @@ -102,11 +102,7 @@ namespace SkiaSharp.Views.Forms } #endif -#if __MAUI__ && __ANDROID__ - protected override void OnElementChanged(Microsoft.Maui.Controls.Compatibility.Platform.Android.ElementChangedEventArgs e) -#else protected override void OnElementChanged(ElementChangedEventArgs e) -#endif { if (e.OldElement != null) { diff --git a/source/SkiaSharp.Views.Maui/SkiaSharp.Views.Maui.Controls.Compatibility/SkiaSharp.Views.Maui.Controls.Compatibility.csproj b/source/SkiaSharp.Views.Maui/SkiaSharp.Views.Maui.Controls.Compatibility/SkiaSharp.Views.Maui.Controls.Compatibility.csproj index a2ec7fc75..bd1ea0769 100644 --- a/source/SkiaSharp.Views.Maui/SkiaSharp.Views.Maui.Controls.Compatibility/SkiaSharp.Views.Maui.Controls.Compatibility.csproj +++ b/source/SkiaSharp.Views.Maui/SkiaSharp.Views.Maui.Controls.Compatibility/SkiaSharp.Views.Maui.Controls.Compatibility.csproj @@ -9,10 +9,8 @@ false $(DefineConstants);__MAUI__ net6.0-windows + true - - - diff --git a/source/SkiaSharp.Views.Maui/SkiaSharp.Views.Maui.Controls/SkiaSharp.Views.Maui.Controls.csproj b/source/SkiaSharp.Views.Maui/SkiaSharp.Views.Maui.Controls/SkiaSharp.Views.Maui.Controls.csproj index edf7d57d9..48817bacb 100644 --- a/source/SkiaSharp.Views.Maui/SkiaSharp.Views.Maui.Controls/SkiaSharp.Views.Maui.Controls.csproj +++ b/source/SkiaSharp.Views.Maui/SkiaSharp.Views.Maui.Controls/SkiaSharp.Views.Maui.Controls.csproj @@ -1,6 +1,6 @@  - netstandard2.0;netstandard2.1;net6.0-ios;net6.0-maccatalyst;net6.0-android + net6.0-ios;net6.0-maccatalyst;net6.0-android $(TargetFrameworks);net6.0-windows10.0.19041 10.0.17763.0 SkiaSharp.Views.Maui.Controls @@ -9,10 +9,8 @@ false $(DefineConstants);__MAUI__ net6.0-windows + true - - - diff --git a/source/SkiaSharp.Views.Maui/SkiaSharp.Views.Maui.Core/SkiaSharp.Views.Maui.Core.csproj b/source/SkiaSharp.Views.Maui/SkiaSharp.Views.Maui.Core/SkiaSharp.Views.Maui.Core.csproj index fd32a1638..de8fdde16 100644 --- a/source/SkiaSharp.Views.Maui/SkiaSharp.Views.Maui.Core/SkiaSharp.Views.Maui.Core.csproj +++ b/source/SkiaSharp.Views.Maui/SkiaSharp.Views.Maui.Core/SkiaSharp.Views.Maui.Core.csproj @@ -1,6 +1,6 @@  - netstandard2.0;netstandard2.1;net6.0-ios;net6.0-maccatalyst;net6.0-android + net6.0-ios;net6.0-maccatalyst;net6.0-android $(TargetFrameworks);net6.0-windows10.0.19041 10.0.17763.0 SkiaSharp.Views.Maui.Core @@ -10,10 +10,8 @@ false $(DefineConstants);__MAUI__ net6.0-windows + true - - - diff --git a/source/SkiaSharpSource.Windows-net6.slnf b/source/SkiaSharpSource.Windows-net6.slnf new file mode 100644 index 000000000..2e6431161 --- /dev/null +++ b/source/SkiaSharpSource.Windows-net6.slnf @@ -0,0 +1,14 @@ +{ + "solution": { + "path": "SkiaSharpSource.Windows.sln", + "projects": [ + "..\\binding\\HarfBuzzSharp\\HarfBuzzSharp.csproj", + "..\\binding\\SkiaSharp\\SkiaSharp.csproj", + "SkiaSharp.Views.Maui\\SkiaSharp.Views.Maui.Controls.Compatibility\\SkiaSharp.Views.Maui.Controls.Compatibility.csproj", + "SkiaSharp.Views.Maui\\SkiaSharp.Views.Maui.Controls\\SkiaSharp.Views.Maui.Controls.csproj", + "SkiaSharp.Views.Maui\\SkiaSharp.Views.Maui.Core\\SkiaSharp.Views.Maui.Core.csproj", + "SkiaSharp.Views.WinUI\\SkiaSharp.Views.WinUI\\SkiaSharp.Views.WinUI.csproj", + "SkiaSharp.Views\\SkiaSharp.Views\\SkiaSharp.Views.csproj" + ] + } +} \ No newline at end of file diff --git a/source/SkiaSharpSource.Windows-netfx.slnf b/source/SkiaSharpSource.Windows-netfx.slnf new file mode 100644 index 000000000..d29994b87 --- /dev/null +++ b/source/SkiaSharpSource.Windows-netfx.slnf @@ -0,0 +1,36 @@ +{ + "solution": { + "path": "SkiaSharpSource.Windows.sln", + "projects": [ + "..\\binding\\HarfBuzzSharp.Android\\HarfBuzzSharp.Android.csproj", + "..\\binding\\HarfBuzzSharp.Tizen\\HarfBuzzSharp.Tizen.csproj", + "..\\binding\\HarfBuzzSharp.UWP\\HarfBuzzSharp.UWP.csproj", + "..\\binding\\HarfBuzzSharp\\HarfBuzzSharp.csproj", + "..\\binding\\SkiaSharp.Android\\SkiaSharp.Android.csproj", + "..\\binding\\SkiaSharp.Tizen\\SkiaSharp.Tizen.csproj", + "..\\binding\\SkiaSharp.UWP\\SkiaSharp.UWP.csproj", + "..\\binding\\SkiaSharp\\SkiaSharp.csproj", + "SkiaSharp.DotNet.Interactive\\SkiaSharp.DotNet.Interactive.csproj", + "SkiaSharp.HarfBuzz\\SkiaSharp.HarfBuzz\\SkiaSharp.HarfBuzz.csproj", + "SkiaSharp.Views.Forms\\SkiaSharp.Views.Forms.Android\\SkiaSharp.Views.Forms.Android.csproj", + "SkiaSharp.Views.Forms\\SkiaSharp.Views.Forms.Tizen\\SkiaSharp.Views.Forms.Tizen.csproj", + "SkiaSharp.Views.Forms\\SkiaSharp.Views.Forms.UWP\\SkiaSharp.Views.Forms.UWP.csproj", + "SkiaSharp.Views.Forms\\SkiaSharp.Views.Forms.WPF\\SkiaSharp.Views.Forms.WPF.csproj", + "SkiaSharp.Views.Forms\\SkiaSharp.Views.Forms\\SkiaSharp.Views.Forms.csproj", + "SkiaSharp.Views.Uno\\SkiaSharp.Views.Uno.Android\\SkiaSharp.Views.Uno.Android.csproj", + "SkiaSharp.Views.Uno\\SkiaSharp.Views.Uno.Reference\\SkiaSharp.Views.Uno.Reference.csproj", + "SkiaSharp.Views.Uno\\SkiaSharp.Views.Uno.Skia\\SkiaSharp.Views.Uno.Skia.csproj", + "SkiaSharp.Views.Uno\\SkiaSharp.Views.Uno.Wasm\\SkiaSharp.Views.Uno.Wasm.csproj", + "SkiaSharp.Views.WinUI\\SkiaSharp.Views.WinUI\\SkiaSharp.Views.WinUI.csproj", + "SkiaSharp.Views\\SkiaSharp.Views.Android\\SkiaSharp.Views.Android.csproj", + "SkiaSharp.Views\\SkiaSharp.Views.Desktop.Common\\SkiaSharp.Views.Desktop.Common.csproj", + "SkiaSharp.Views\\SkiaSharp.Views.Desktop\\SkiaSharp.Views.Desktop.csproj", + "SkiaSharp.Views\\SkiaSharp.Views.Gtk3\\SkiaSharp.Views.Gtk3.csproj", + "SkiaSharp.Views\\SkiaSharp.Views.Tizen\\SkiaSharp.Views.Tizen.csproj", + "SkiaSharp.Views\\SkiaSharp.Views.UWP\\SkiaSharp.Views.UWP.csproj", + "SkiaSharp.Views\\SkiaSharp.Views.WPF\\SkiaSharp.Views.WPF.csproj", + "SkiaSharp.Views\\SkiaSharp.Views.WindowsForms\\SkiaSharp.Views.WindowsForms.csproj", + "SkiaSharp.Vulkan\\SkiaSharp.Vulkan.SharpVk\\SkiaSharp.Vulkan.SharpVk.csproj" + ] + } +} \ No newline at end of file