-
Notifications
You must be signed in to change notification settings - Fork 538
WIP Changelog
This is a collection of the current set of changes since the last release. Changes for previous versions are attached to each release.
Preview Feed: https://nugetized.blob.core.windows.net/skiasharp-eap/index.json
Changes: https://github.com/mono/SkiaSharp/compare/v2.80.2...master
Current prerelease:
2.80.2-preview.40
A cross-platform 2D graphics API for .NET platforms based on Google's Skia Graphics Library. It provides a comprehensive 2D API that can be used across mobile, server and desktop models to render images.
- Added support for serializing and deserializing
SKPicture
- Added support for creating Metal surfaces and contexts on iOS and macOS
- Exposed the API for creating an ANGLE
GRGlInterface
- Added overloads for
GRContext
construction that allow for better control using theGRContextOptions
parameter - Fixed incorrect processing of Exif SubIFD which resulted in incorrectly rotated images
- Fixed font loading on iOS
- Improved memory management when copying streams internally
- Added support for a wider range of Emscripten versions
- Updated MSBuild.Sdk.Extras to support .NET 5
- Improved support for older VS versions
- Updated Tizen tooling and compilers
- Not quite an issue, but still something to be aware of: microsoft/microsoft-ui-xaml#1446
API __CxxFrameHandler4 in vcruntime140_1_app.dll is not supported for this application type. libGLESv2.dll calls this API.
API __CxxFrameHandler4 in vcruntime140_1_app.dll is not supported for this application type. libSkiaSharp.dll calls this API.
NuGet | Code Diff | Project | Milestone | Changelog | CI | Release CI
A set of pre-prepared UI views, panels and surfaces for drawing. One of these views can be added to the view hierarchy, and then be used for drawing without the need for complex setup. There is also a set of extension methods for converting to/from SkiaSharp and native types.
- Added a new
SKMetalView
for iOS and macOS that is powered by the Metal graphics engine - Fixed a crash in WPF when the view would try and get the view rendered size when it wasn't yet rendered
A set of pre-prepared views for Xamarin.Forms, for fully cross-platform drawing code. There are views for both CPU and GPU backends, along with extension methods for converting to/from SkiaSharp and Xamarin.Forms types. Currently available for iOS, Android, UWP, macOS (preview) and Tizen (preview).
- None yet.
A set of pre-prepared views for Uno Platform, for fully cross-platform drawing code. Current support is just a CPU surface for Android, iOS and macOS, with WASM support under way in a PR (#1333). GPU surfaces are also coming soon.
- Added support for Uno Platform v3+
A library for text shaping, which is the process of converting Unicode text to glyph indices and positions.
- All p/invokes are now generated using a tool
- Added support for WASM
Support for text shaping using the HarfBuzz text shaping library. This package adds the SKShaper
type that can shape a string, returning the codepoints and their positions.
This package also adds some extension methods to SKCanvas
to make drawing shaped text easier. These methods include DrawShapedText
and it's overloads.
- None yet.
Because working with pointers is not nice, especially when you have an already perfectly good Vulkan API from SharpVk, we have a package that provides a way to use that library with our library.
- None yet.
Because we love everyone in the Linux world just as well as the Microsoft and the Xamarin worlds, we have also included some pre-built Linux native binaries in a new, separate package (see #312):
SkiaSharp.NativeAssets.Linux
If you happen to be on an environment that does not have the ability to install any of the required dependencies, such as FontConfig, you can also try out the build that does not have any dependencies other that the core system libraries:
SkiaSharp.NativeAssets.Linux.NoDependencies
At the current time, these packages support several platforms/architectures/distributions.
The base platforms are:
- Debian x64, ARM and ARM64
- Alpine x64
However, these binaries are known to work on many other platforms:
- Red Hat Enterprise Linux
- CentOS
- Raspberry Pi
- Many Musl distributions
- Most Debian-based distros
More builds can be requested by leaving a comment on #453, but you can easily build your own binaries by following this guide.
We know the .NET Core containers are very cool to use, so we now have support for using the default Windows .NET Core Docker images (see #676):
SkiaSharp.NativeAssets.NanoServer
It is not quite perfect just yet, so the app project needs a little help (see NuGet/Home#8894):
<PackageReference Include="SkiaSharp" ExcludeAssets="native" />
<PackageReference Include="SkiaSharp.NativeAssets.NanoServer" />
Because the .NET platform and tooling for web assembly is still evolving, we can't yet commit to a final packaging format. However, this does not mean that we cannot at least help get you started.
To do this, we have pre-built a native static library for WASM that can be manually linked, or linked using a framework tooling such as Uno. This library can be found in a new package that provides a path to the actual static library (#1389):
SkiaSharp.NativeAssets.WebAssembly
There are a large set of samples that show many different features of SkiaSharp. They are broken up into two main groups:
- Basic - these are minimal samples that show just what is needed to use SkiaSharp
- Gallery - these are comprehensive samples that show off new, or exciting features of SkiaSharp
All the samples that have been built and tested for this version of SkiaSharp can be downloaded in the "Assets" links.