Skip to content

Version 1.68.0

Compare
Choose a tag to compare
@mattleibow mattleibow released this 04 Dec 21:53
92a3ad8

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.

Major Changes

  • Update to skia milestone 68
  • Rewritten hardware-accelerated surface creation (see more)
  • GRBackendRenderTargetDesc and GRBackendTextureDesc are now deprecated and replaced with GRBackendRenderTarget and GRBackendTexture
  • The 8-bit indexed color type (Index8) is no longer supported and has been removed
  • Color tables (SKColorTable) are no longer supported
  • The Visual C++ Runtime is now statically linked on Windows Classic
  • New Linux binaries on NuGet in the separate package: SkiaSharp.NativeAssets.Linux (see #312)

Changes

  • Working with files (decoding, encoding, processing) has major performance improvements
  • The font manager (SKFontManager) is more powerful and can load font family sets (SKFontStyleSet) and match more characters
  • Images (SKImage) can now be decoded and created more easily
  • PDF documents now have more creation options with SKDocumentPdfMetadata
  • Multiple text members added to SkPaint: BreakText, GetGlyphs, CountGlyphs, ContainsGlyphs, GetGlyphWidths, GetTextIntercepts, GetPositionedTextIntercepts, GetHorizontalTextIntercepts
  • Added support for SKTextBlob and SKTextBlobBuilder as a first step to improving text support
  • More text members have been added to SKTypeface: GetGlyphs and CountGlyphs
  • The SKSurfaceProps struct has been superseded by the SKSurfaceProperties class
  • All SKPixmap, SKImage and SkBitmap can now resize their pixel data with ScalePixels
  • Fixed multiple bugs
  • Several new method overloads for common operations with surfaces, shaders and effects

Links

NuGet | Code Diff | Project | Milestone | Changelog | 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

  • The UWP hardware-accelerated view has been rewritten and now works on more devices and has multiple bug fixes
  • The delegates on macOS, iOS and tvOS are now deprecated in favor of events and overridden methods
  • The use of renderers in conjunction with SkiaSharp views on Android has been deprecated in favor of events
  • All views have been updated to prefer the OnPaintSurface method when overriding the drawing method
  • The hardware-accelerated event arguments (SKPaintGLSurfaceEventArgs) now suggest using the new GPU types

Links

NuGet | Changelog

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

  • The hardware-accelerated event arguments (SKPaintGLSurfaceEventArgs) now suggest using the new GPU types
  • The Android SKGLView is now a transparent view

Links

NuGet | Changelog

HarfBuzzSharp (preview)

HarfBuzz is a text shaping engine, and HarfBuzzSharp exposes some of the functionality to managed .NET applications.

Links

NuGet | Changelog

SkiaSharp.HarfBuzz (preview)

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.

Links

NuGet | Changelog

Linux (preview)

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

At the current time, it just contains a Ubuntu 16.04 amd64 build that should work on most Debian-based Linux distributions. More builds can be requested by leaving a comment on #453.

If a specific platform is required, you can easily build your own binaries by following this guide.

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.