SkiaSharp

SkiaSharp is 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.

MIT License

Stars
4.1K
Committers
91

Bot releases are hidden (Show)

SkiaSharp - Version 1.68.1

Published by mattleibow almost 5 years ago

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

This version adds several new members and types, but the core focus was on resolving some larger memory-related issues. This release hopes to fix several cases where incorrect memory usage resulted in a crash or undefined behavior.

  • Improved the performance and reliability of managed-native interop for delegates (removed an intermediate dictionary)
  • Fixed several issues with static instances of native objects being accidentally destroyed
  • Fixed several invalid memory operations in the managed-native interop
  • Improved the performance vastly by switching to using Clang on Win32

Changes

  • Added a new NuGet package for Linux that does not require libfontconfig (or any dependencies): SkiaSharp.NativeAssets.Linux.NoDependencies
  • Improved the performance of the wrapped managed streams (removed an intermediate dictionary)
  • Added overloads and members that accept and return Span<T> in addition to the existing byte[] or IntPtr
  • Added bindings for SKDrawable and related operations [@charlenni]
  • Added several APIs to enhance the features of colorspaces (SKColorSpace and related types and members)
  • Fixed an issue where the underlying stream of an open SKDocument would be destroyed before the document is closed
  • Fixed an issue where typefaces did not release managed streams
  • Added more members to SKRegion [@vexx32x]
  • Added more members to SKPaint and SKMatrix [@MarchingCube]
  • Additional APIs in a few places
  • Added bindings for SKRunBuffer, SKHorizontalRunBuffer and SKPositionedRunBuffer to greatly enhance the usefulness of SKTextBlob and SKTextBlobBuilder
  • Added bindings for creating a SKShader from a SKPicture [@alexandrvslv]
  • Resolved an issue where the incorrect version of the native library was copied into the output of a Full Framework Xamarin.Mac app
  • Fixed a bug with Android emulators and incorrect colors [@inforithmics]
  • Improved stability of SKSwapChainPanel on UWP

Maintainence

  • Docs moved to a new repository SkiaSharp-API-docs
  • Improving the build scripts [@danien]
  • The p/invoke layer is now generated along with most of the structs and enums
  • Using more modern code conventions to reduce complexity and boilerplate
  • Added more tests for corner cases
  • Other docs changes [@HankiDesign]

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

  • Split the SkiaSharp.Views package into separate ones for WPF, Windows Forms, GTK# 3 so that they can be used with .NET Core 3.0:
    • SkiaSharp.Views.Gtk2 for GTK# 2
    • SkiaSharp.Views.Gtk3 for GTK# 3
    • SkiaSharp.Views.WPF for WPF (both .NET Framework and .NET Core)
    • SkiaSharp.Views.WindowsForms for System.Windows.Forms (both .NET Framework and .NET Core)
    • SkiaSharp.Views.Desktop.Common (base package for SkiaSharp.Views.WPF and SkiaSharp.Views.WindowsForms)
  • Added initial support for GTK# 3 with SKDrawingArea
  • Fixed an issue with convertion from a System.Drawing.Bitmap to SKPixmap [@Odirb]

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

  • Initial support for WPF apps with Xamarin.Forms in the SkiaSharp.Views.Forms.WPF NuGet
  • Updated the version of Xamarin.Forms to v4.x
  • Added support for the mouse wheel on both SKCanvasView and SKGLView [@charlenni]

Links

NuGet | Changelog

HarfBuzzSharp

A library for text shaping, which is the process of converting Unicode text to glyph indices and positions.

Changes

  • Update HarfBuzzSharp to harfbuzz 2.6.1 [@Gillibald]
  • Added many, many new harfbuzz new APIs to finally make a complete harfbuzz binding [@Gillibald]
  • Added overloads and members that accept and return Span<T> in addition to the existing byte[] or IntPtr [@Gillibald]
  • Resolved an issue where the incorrect version of the native library was copied into the output of a Full Framework Xamarin.Mac app

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

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
HarfBuzzSharp.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, 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.

SkiaSharp - Version 1.68.1 (Preview Build 172)

Published by mattleibow almost 5 years ago

SkiaSharp - Version 1.68.1 (Preview Build 170)

Published by mattleibow almost 5 years ago

SkiaSharp - Version 1.68.1 (Preview Build 169)

Published by mattleibow almost 5 years ago

SkiaSharp - Version 1.68.1 (Preview Build 165)

Published by mattleibow almost 5 years ago

SkiaSharp - Version 1.68.1 (Preview Build 153)

Published by mattleibow almost 5 years ago

SkiaSharp - Version 1.68.1 (Preview Build 147)

Published by mattleibow about 5 years ago

SkiaSharp - Version 1.68.0

Published by mattleibow almost 6 years ago

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.

SkiaSharp - Version 1.68.0 (Preview Build 28)

Published by mattleibow almost 6 years ago

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 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
  • 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

  • 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

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.

SkiaSharp - Version 1.60.3

Published by mattleibow about 6 years ago

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

  • Fixed the case where some native assets were not being stripped properly (#573, #584)
  • Sime improvements when building Tizen apps (#598)

Links

NuGet | Code Diff | Project | Milestone
macOS CI | Windows CI | Native Linux CI (Ubuntu 14) | Native Linux CI (Ubuntu 16) | Linux CI (Ubuntu 16)

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

  • Fixed an issue with the UWP SKXamlCanvas (#582, #585)

Links

NuGet

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

  • Fixed an issue with touch locations on Android and Tizen (#581, #589)

Links

NuGet

HarfBuzzSharp (preview)

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

Links

NuGet

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

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.

The system that was used to build these binaries was: "Ubuntu 14.04 amd64".

All the Linux binaries for this version of SkiaSharp can be downloaded in the "Assets" links.

Samples

A few new samples were added to demonstrate some new features. In addition to new samples, the samples have now been split into two categories: Basic and Gallery. The Basic samples are minimal and contain the bare bones to get started. The Gallery samples showcase some cool features of SkiaSharp.

All the samples that have been built and tested for this version of SkiaSharp can be downloaded in the "Assets" links.

SkiaSharp - Version 1.60.2

Published by mattleibow over 6 years ago

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 SKNWayCanvas to support drawing to multiple canvases simultaneously
  • Added SKRoundRect to support drawing more complex rounded rectangles
  • Adding more Encode() overloads to SKPixmap to give more control when encoding PNG, JPEG and WEBP images
  • Fixed the issue with the UWP library being linked to the wrong libraries (#566, #536)
  • Fixed the issue with iOS not being able to AOT (#547)

Build Changes

  • Upgraded the projects to the new SDK-style
  • No longer using shared projects
  • Android now builds on Windows

Links

NuGet | Code Diff | Project | Milestone
macOS CI | Windows CI | Linux CI (Ubuntu 14) | Linux CI (Ubuntu 16)

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

  • Fixed the issue with SKWidget rendering slow (#534)
  • Fixed a memory leak in SKXamlCanvas (#429)

Links

NuGet

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

  • Fixed a memory leak in SKXamlCanvas (#429)

Links

NuGet

HarfBuzzSharp (preview)

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

Links

NuGet

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

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.

The system that was used to build these binaries was: "Ubuntu 14.04 amd64".

All the Linux binaries for this version of SkiaSharp can be downloaded in the "Assets" links.

Samples

A few new samples were added to demonstrate some new features. In addition to new samples, the samples have now been split into two categories: Basic and Gallery. The Basic samples are minimal and contain the bare bones to get started. The Gallery samples showcase some cool features of SkiaSharp.

All the samples that have been built and tested for this version of SkiaSharp can be downloaded in the "Assets" links.

SkiaSharp - Version 1.60.1

Published by mattleibow over 6 years ago

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.

Significant Changes

  • Added Tizen OS support (preview)

Changes

  • Added SKAutoCoInitialize to assist in initializing COM on supported platforms
  • Added GRGlInterface.CreateNativeEvasInterface() to create a GL interface from an Evas GL object
  • Fixed a bug when copying bitmaps
  • Fixed a bug when opening SKDocument
  • Fixed a bug when disposing objects
  • Dropped support for PCL (now using .NET Standard 1.3 everywhere)

Build Changes

Links

NuGet | Code Diff | Project | Milestone
macOS CI | Windows CI | Linux CI (Ubuntu 14) | Linux CI (Ubuntu 16)

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.

Significant Changes

  • Added SKCanvasView and SKGLSurfaceView for Tizen OS (preview)

Changes

  • Fixed a bug in Android's GLTextureView where the stack trace was lost
  • Fixed a bug in Android's GLTextureView where pausing the app would cause a crash
  • Fixed a bug in iOS where color space information was lost
  • Fixed a bug in GTK#'s SKWidget where it would try and swizzle too many pixels

Links

NuGet

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).

Significant Changes

  • Added Tizen OS support (preview)
  • Now based on Xamarin.Forms v2.5.0.280555

Changes

  • Dropped support for PCL (now using .NET Standard 1.3 everywhere)
  • ISKCanvasViewController is now public so additional platforms can be easily added

Links

NuGet

HarfBuzzSharp (preview)

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

Links

NuGet

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

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.

The system that was used to build these binaries was: "Ubuntu 14.04 amd64".

All the Linux binaries for this version of SkiaSharp can be downloaded in the "Assets" links.

Samples

A few new samples were added to demonstrate some new features. In addition to new samples, the samples have now been split into two categories: Basic and Gallery. The Basic samples are minimal and contain the bare bones to get started. The Gallery samples showcase some cool features of SkiaSharp.

All the samples that have been built and tested for this version of SkiaSharp can be downloaded in the "Assets" links.

SkiaSharp - Version 1.60.0

Published by mattleibow over 6 years ago

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.

Significant Changes

  • Added Apple watchOS support (preview)
  • Added GTK# support (preview)
  • Major improvements to texture-based surfaces
  • Obsolete types are now removed to avoid confusion

Changes

  • Updated to skia milestone 60
  • Added new platforms
    • Added preview watchOS support
    • Added preview GTK# support
  • Improved GPU-backed rendering
    • Improved older device support
    • Improved texture-backed surface support
    • Improved SKImage support for GPU images
  • Improved several stream types
    • Custom SKStream streams can be created using SKAbstractManagedStream
    • Added a SKFrontBufferedManagedStream to enable reading from read-only, forward-only streams
    • Streams can now open Unicode paths on Windows
    • Added the missing SKStream.Peek() method
  • Improved image types
    • Added support for swizzling color bits (RGB to BGR)
    • Improved support for texture-backed SKImage
    • Added SKPixelSerializer and SKManagedPixelSerializer to support custom image encoding
    • Improvements to SKBitmap copying
    • SKBitmap is now auto-locked
    • Images can now be decoded from Unicode paths on Windows
  • Improved SKCanvas
    • Added numerous overloads to improve usability
    • Improved 9-patch and image lattice support
    • Removed confusing (and incorrect) overloads
    • SKPaint.BreakText now properly returns the number of characters and the split text
  • Fixes for SKDocument
    • XPS documents are correctly closed
    • Documents can now be created with Unicode paths on Windows
  • Improved memory management
  • Removed many obsolete types and members.
  • Many other small fixes, improvements and additions

Links

NuGet | Code Diff | Mac CI | Windows CI | Linux 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.

Significant Changes

  • Added a new SKGLTextureView for Android
  • Added a new SKWidget for GTK# (preview)

Changes

  • Added a new SKGLTextureView for Android
  • Improved older device support for GPU rendering
  • Added GTK# support with SKWidget
  • WPF now creates the backing bitmap with the correct DPI.
  • SKControl now has more constructors to control the underlying OpenGL configuration

Links

NuGet

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 and macOS (preview).

Significant Changes

  • The SKGLView now uses the new SKGLTextureView for Android

Changes

  • Updated Xamarin.Forms to v2.5
  • Improved touch events for UWP
  • Switched the backing view for SKGLView on Android to a texture-based view

Links

NuGet

HarfBuzzSharp (preview)

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

Links

NuGet

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

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.

The system that was used to build these binaries was: "Ubuntu 14.04 amd64".

All the Linux binaries for this version of SkiaSharp can be downloaded in the "Assets" links.

Samples

A few new samples were added to demonstrate some new features. In addition to new samples, the samples have now been split into two categories: Basic and Gallery. The Basic samples are minimal and contain the bare bones to get started. The Gallery samples showcase some cool features of SkiaSharp.

All the samples that have been built and tested for this version of SkiaSharp can be downloaded in the "Assets" links.

SkiaSharp - Version 1.59.3

Published by mattleibow almost 7 years ago

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

  • Adding back SK3dView as it is now confirmed part of the API

Links

NuGet | Code Diff | Mac CI | Windows CI | Linux 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.

Links

NuGet

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 and macOS (preview).

Links

NuGet

SkiaSharp.Svg & SkiaSharp.Extended (preview)

SkiaSharp.Svg and SkiaSharp.Extended have moved to mono/SkiaSharp.Extended and will be updated independently from this repository.

HarfBuzzSharp (preview)

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

Links

NuGet

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

Samples

A few new samples were added to demonstrate some new features.

All the samples that have been built and tested for this version of SkiaSharp can be downloaded in the "Assets" links.

SkiaSharp - Version 1.59.2

Published by mattleibow almost 7 years ago

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

  • Updated some documentation
  • The managed SkiaSharp.dll will now work with Unity3D
  • SKTypeface can now be constructed from non-seekable streams or SKData
  • Switched away from packages.config to <PackageReference> (and other .csproj cleanups)
  • Resolved the ObjectDisposedException (#292)
  • Corrected the behavior of SKManagedStream and this fixed loading of bitmaps over the network (#335)
  • A few memory management fixes for SKManagedStream (#376, #83)

Links

NuGet | Code Diff | Mac CI | Windows CI | Linux 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

  • Exposed the current GRContext on the various GL views (#358)

Links

NuGet

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 and macOS (preview).

Changes

  • Exposed the current GRContext on SKGLView (#358)

Links

NuGet

SkiaSharp.Svg & SkiaSharp.Extended (preview)

SkiaSharp.Svg and SkiaSharp.Extended have moved to mono/SkiaSharp.Extended and will be updated independently from this repository.

HarfBuzzSharp (preview)

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

Links

NuGet

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

Samples

A few new samples were added to demonstrate some new features.

All the samples that have been built and tested for this version of SkiaSharp can be downloaded in the "Downloads" links below.

SkiaSharp - Version 1.59.1.1

Published by mattleibow about 7 years ago

This release is a bugfix release for v1.59.1.

SkiaSharp.Views

Changes

Links

NuGet | Code Diff | Mac CI | Windows CI | Linux CI

SkiaSharp - Version 1.58.1.1

Published by mattleibow about 7 years ago

This release is a bugfix release for v1.58.1.

SkiaSharp.Views

Changes

Links

NuGet | Code Diff | Mac CI | Windows CI | Linux CI

SkiaSharp - Version 1.59.1

Published by mattleibow over 7 years ago

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

  • Fixes and improvements to the native marshalling

Links

NuGet | Code Diff | Mac CI | Windows CI | Linux 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

  • Fixed a few issues (#333)
    • re-worked the entire logic to use the new members

Links

NuGet

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 and macOS (preview).

Links

NuGet

SkiaSharp.Svg & SkiaSharp.Extended (preview)

SkiaSharp.Svg and SkiaSharp.Extended have moved to mono/SkiaSharp.Extended and will be updated independently from this repository.

HarfBuzzSharp (preview)

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

Links

NuGet

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

Samples

A few new samples were added to demonstrate some new features.

All the samples that have been built and tested for this version of SkiaSharp can be downloaded in the "Downloads" links below.

SkiaSharp - Version 1.59.0

Published by mattleibow over 7 years ago

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

  • Major update to the chrome/m59 branch
    • some update to the structure type to match the new native structure

Links

NuGet | Code Diff | Mac CI | Windows CI | Linux 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

  • Fixed a few issues (#333, #340)

Links

NuGet

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 and macOS (preview).

Links

NuGet

SkiaSharp.Svg & SkiaSharp.Extended (preview)

SkiaSharp.Svg and SkiaSharp.Extended have moved to mono/SkiaSharp.Extended and will be updated independently from this repository.

HarfBuzzSharp (preview)

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

Links

NuGet

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

Samples

A few new samples were added to demonstrate some new features.

All the samples that have been built and tested for this version of SkiaSharp can be downloaded in the "Downloads" links below.

SkiaSharp - Version 1.58.1

Published by mattleibow over 7 years ago

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.

  • Corrected the GRContextOptions struct definition
  • Fixed the issue with colors on some devices (#284)
  • tvOS is now targeting 9.0 instead of 10.2
  • Added overloads to SKRectI.Ceiling and SKRectI.Floor to "inflate"/"deflate" to integral coordinates (#318)
  • Fixed SKRegion.SetPath to not always create an empty region (#316)

NuGet: https://www.nuget.org/packages/SkiaSharp/1.58.1
Code Diff: https://github.com/mono/SkiaSharp/compare/v1.58.0...v1.58.1
CI: https://jenkins.mono-project.com/view/Components/job/Components-SkiaSharp/235

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.

  • Fixed issues with Android and the GC (#292)

NuGet: https://www.nuget.org/packages/SkiaSharp.Views/1.58.1

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 and macOS (preview).

  • Added touch events to all views
    • Touch events are disabled by default due to a bug on iOS (PR 990 and bug 57114)
  • Added .NET Standard 1.3 support

Touch Events

Touch events are disable by default for several reasons, to preserve backwards compatibility, remove the need for additional events if not required and because Xamarin.Forms has a bug on iOS (that has been fixed in the preview feed). To enable touch events, set the EnableTouchEvents property to true and attach a handler to the Touch event:

<views:SKCanvasView ... EnableTouchEvents="True" Touch="OnTouch" />

Then, in the code behind, you can respond to the touches:

private void OnTouch(object sender, SKTouchEventArgs e)
{
    // the ID of the finger that toucged the screen
    var pointerId = e.Id;

    switch (e.ActionType)
    {
        case SKTouchAction.Pressed:
            // the user added a finger
            break;
        case SKTouchAction.Moved:
            // the user moved a finger
            break;
        case SKTouchAction.Released:
            // the user removed a finger
            break;
    }

    // the location (in pixels) of the finger on the screen
    var pos = e.Location;

    // set Handled to true if we handled the event
    // if we don't, then parent views may also respond
    e.Handled = true;
}

NuGet: https://www.nuget.org/packages/SkiaSharp.Views.Forms/1.58.1

SkiaSharp.Svg & SkiaSharp.Extended (preview)

SkiaSharp.Svg and SkiaSharp.Extended have moved to mono/SkiaSharp.Extended and will be updated independently from this repository.

HarfBuzzSharp (preview)

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

NuGet: https://www.nuget.org/packages/HarfBuzzSharp/1.4.6

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.

NuGet: https://www.nuget.org/packages/SkiaSharp.HarfBuzz/1.58.1-beta

Samples

A few new samples were added to demonstrate some new features.

All the samples that have been built and tested for this version of SkiaSharp can be downloaded in the "Downloads" links below.