Releases: mono/SkiaSharp
Version 2.80.3 (Preview Build 90)
What's Changed
- Merge Metal APIs from main branch by @mattleibow in #1598
- Add the SKRuntimeEffect API by @mattleibow in #1604
- Introduce some metal consistency by @mattleibow in #1615
- Refactor the Android surface factory by @mattleibow in #1617
- Be a bit more defensive in the display links by @mattleibow in #1620
- Add Tests for Mobile (Android and iOS) by @mattleibow in #1630
- Add iOS device tests by @mattleibow in #1638
- Attempt to use the local ChromeDriver first by @mattleibow in #1653
- Run nightly builds to ensure always green by @mattleibow in #1651
- [macOS] Add the arm64 build target by @mattleibow in #1627
- Make sure to properly read image pixels by @mattleibow in #1636
- Expose IsAbandoned in the C# API by @mattleibow in #1659
- Split the packages up for better downloads by @mattleibow in #1660
- Fix The Bad Things by @mattleibow in #1662
- Fix Android Test Runner by @mattleibow in #1665
- Swap the buffers after a resize by @mattleibow in #1668
- avoid issues with failure to create gl surface by @gmurray81 in #1642
- Pack things correctly and pin the xharness version by @mattleibow in #1685
- Update to .NET 5.0 by @mattleibow in #1697
- Improve build props/targets by @mattleibow in #1698
- Add support for WinUI for Desktop by @mattleibow in #1696
- Roll back to a specific version of Xamarin.iOS that works with XCode 12.4 by @mattleibow in #1703
- Properly Detect & Handle Musl Systems by @mattleibow in #1657
- Update Uno by @mattleibow in #1708
- Add .NET Interactive Support by @mattleibow in #1710
New Contributors
- @gmurray81 made their first contribution in #1642
Full Changelog: v2.80.3-preview.40...v2.80.3-preview.90
Version 2.80.3 (Preview Build 40)
What's Changed
- Improve the local builds by @mattleibow in #1593
- Update Xcode & .NET Core 3.1 by @mattleibow in #1594
- Make things consistent by @mattleibow in #1595
- Improve the local builds by @mattleibow in #1597
- Remove the externals/harfbuzz submodule by @mattleibow in #1599
- Add Metal APIs by @mattleibow in #1394
- docs: Add unoplatform references by @jeromelaban in #1602
- Add a few APIs that make things better later by @mattleibow in #1603
- Make SKElement.OnRender do nothing if there is no PresentationSource by @HarlanHugh in #1606
- Expose GRContextOptions by @mattleibow in #1529
New Contributors
- @HarlanHugh made their first contribution in #1606
Full Changelog: v2.80.3-preview.24...v2.80.3-preview.40
Version 2.80.3 (Preview Build 24)
What's Changed
- Update to a later Tizen Studio by @mattleibow in #1566
- Use v2 Signing by @mattleibow in #1568
- Update externals for new gn and add helper script by @mattleibow in #1591
- Add a picture test to the WASM tests by @mattleibow in #1592
- Build and include all the emscripten version for WASM by @mattleibow in #1590
Full Changelog: v2.80.3-preview.18...v2.80.3-preview.24
Version 2.80.3 (Preview Build 18)
What's Changed
- Don't allocate arrays when copying streams by @mattleibow in #1510
- Update MSBuild.Sdk.Extras by @mattleibow in #1511
- Update the version to 2.80.3 by @mattleibow in #1512
- Add bindings for the serialization of SKPicture by @mattleibow in #1514
- Update Uno Platform to v3.0 by @mattleibow in #1489
- Allow to create Angle GRGlInterface from non UWP environment by @Mikolaytis in #1519
- Generate the interop with harfbuzz by @mattleibow in #1447
- Register the new HarfBuzzSharp WASM package by @mattleibow in #1525
- Ensure that SKMatrix.IsInvertible does not crash by @mattleibow in #1527
- Add support for reading the Exif SubIFD by @mattleibow in #1518
- Update the ChromeDriver by @mattleibow in #1540
- Load the fonts on iOS by @mattleibow in #1539
- Support VS 2013 because it is easy to do so by @mattleibow in #1536
New Contributors
- @Mikolaytis made their first contribution in #1519
Full Changelog: v2.80.2...v2.80.3-preview.18
Version 2.80.2
SkiaSharp
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.
Changes
- Added several memory debugging members to
GRContext
and the newSKGraphics
andSKTraceMemoryDump
- Fixed origin parameter is ignored in
SKSurface.Create
[Ziriax] - Fixed the exception when creating
SKData
from a non-seekable stream - Fixed the
NullReferenceException
inSKCanvas.DrawTextOnPath
[Ziriax] - Fixed the issues where the "no dependencies" builds were still using dependencies
- Added a replacement method for some obsoleted members
- Fixed an issue when encoding a subset of some images
- Fixed a few text rendering issues and crashes
- Fixed the issue where the native binaries would not reach the final app when only referenced as a transitive dependency
- Fixed the
DllNotFoundException
when running in ASP.NET - Fixed the invalid interop on WASM for some methods
- Fixed an issue with layering in
SKCanvas.DrawPoint
- Fixed the issue where encoding an image subset sometimes encoded the entire original image
Maintainence
- Passing
--configuration=debug
to the bootstrapper now generates a debug build - Update samples and package versions
Known Issues
- 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.
Links
NuGet | Code Diff | Project | Milestone | Changelog | CI | Release CI
SkiaSharp.Views
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.
Changes
- Added extension methods to convert between the native colors and
SKColorF
Links
SkiaSharp.Views.Forms
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).
Changes
- Some performance improvements for Forms
- Added extension methods to convert between the Xamarin.Forms
Color
andSKColorF
Links
SkiaSharp.Views.Uno
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.
Changes
- Added the Uno Platform CPU views for WASM [jeromelaban] [ghuntley] [MartinZikmund]
- Added the GPU view (
SKSwapChainPanel
) for Android, iOS, macOS and WASM
Links
HarfBuzzSharp
A library for text shaping, which is the process of converting Unicode text to glyph indices and positions.
Changes
- Fixed the issue where the native binaries would not reach the final app when only referenced as a transitive dependency
Links
Additional Platforms
Linux
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.
Windows Nano Server
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" />
Web Assembly (WASM)
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
Samples
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.
Version 2.80.2 (Preview Build 36)
Changelog in progress: https://github.com/mono/SkiaSharp/wiki/WIP-Changelog
Version 2.80.2 (Preview Build 33)
Changelog in progress: https://github.com/mono/SkiaSharp/wiki/WIP-Changelog
Version 2.80.2 (Preview Build 19)
Changelog in progress: https://github.com/mono/SkiaSharp/wiki/WIP-Changelog
Version 2.80.2 (Preview Build 18)
Changelog in progress: https://github.com/mono/SkiaSharp/wiki/WIP-Changelog
Version 2.80.2 (Preview Build 9)
Changelog in progress: https://github.com/mono/SkiaSharp/wiki/WIP-Changelog