SkiaSharp fork for the Uno Platform and WebAssembly. Skia 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.
Перейти к файлу
Jerome Laban df34f43e66 chore: Bump Uno.Wasm.Bootstrap 2020-12-04 13:18:48 -05:00
.github
benchmarks Performance Improvements (#1277) 2020-05-10 16:56:12 +02:00
binding feat: Build native library for multiple emscripten versions 2020-12-03 20:42:13 -05:00
cake Do not add the SkiaSharp prefix to dependencies (#1331) 2020-06-11 20:41:29 +02:00
changelogs Generate the docs 2020-06-11 02:55:25 +02:00
docs@14360a6c09 Generate the docs 2020-06-11 02:55:25 +02:00
externals chore: Update to Uno 3 2020-08-14 21:15:44 -04:00
images Update Samples (#1313) 2020-06-03 23:30:51 +02:00
native Allow the path to gn and ninja to be specified (#1300) 2020-05-20 00:54:30 +02:00
nuget Don't embed libSkiaSharp in the assemblies (#1296) 2020-06-10 21:03:56 +02:00
samples chore: Bump Uno.Wasm.Bootstrap 2020-12-04 13:18:48 -05:00
scripts merge from mono/develop 2020-06-08 18:07:13 -04:00
source perf: Improve canvas reset performance 2020-09-01 16:51:23 -04:00
tests Fix a crash when there is no GL context (#1328) 2020-06-10 23:19:37 +02:00
tools
utils
workbooks
.editorconfig
.gitattributes
.gitignore Update .gitignore 2020-06-09 18:53:33 +02:00
.gitmodules
.gitpod.yml
.vsts-ci.yml
.vsts-linux-build.yml chore: Update to Uno 3 2020-08-14 21:15:44 -04:00
.vsts-skia.yml feat: Build native library for multiple emscripten versions 2020-12-03 20:42:13 -05:00
.vsts-windows-build.yml chore: Update to Uno 3 2020-08-14 21:15:44 -04:00
CODE-OF-CONDUCT.md
External-Dependency-Info.txt
LICENSE.md
LICENSE.txt
README.md Update README.md 2020-11-30 15:53:43 -05:00
VERSIONS.txt Update Samples (#1313) 2020-06-03 23:30:51 +02:00
bootstrapper.ps1
bootstrapper.sh
build-local-wasm.sh
build.cake Build for Vulkan on all supported platforms (#1287) 2020-05-16 03:14:31 +02:00
cgmanifest.json
gitversion.yml chore: Adjust versions 2020-04-30 16:56:54 -04:00
mono.pub
mono.snk

README.md

SkiaSharp for WebAssembly

SkiaSharp for WebAssembly is a SkiaSharp port that runs on top of the Uno Platform, using modified CanvasKit for WebAssembly.

Note that Uno support for SkiaSharp is coming soon in the official SkiaSharp repository.

This repository provides two packages:

  • Uno.SkiaSharp.Wasm, which provides basic SkiaSharp functionality
  • Uno.SkiaSharp.Views which provides the SKXamlCanvas control which enables software rendering support for iOS, Android and WebAssembly.

Requirements

You can use this sample as a barebones project to experiment with SkiaSharp.

SkiaSharp

SkiaSharp SkiaSharp.Views SkiaSharp.Views.Forms HarfBuzzSharp
chat SkiaSharp API Docs HarfBuzzSharp API Docs SkiaSharp Guides
Build Status Build Status

SkiaSharp is a cross-platform 2D graphics API for .NET platforms based on Google's Skia Graphics Library (skia.org). It provides a comprehensive 2D API that can be used across mobile, server and desktop models to render images.

SkiaSharp provides cross-platform bindings for:

  • .NET Standard 1.3
  • .NET Core
  • Tizen
  • Xamarin.Android
  • Xamarin.iOS
  • Xamarin.tvOS
  • Xamarin.watchOS
  • Xamarin.Mac
  • Windows Classic Desktop (Windows.Forms / WPF)
  • Windows UWP (Desktop / Mobile / Xbox / HoloLens)

The API Documentation is available on the web to browse.

Using SkiaSharp

SkiaSharp is available as a convenient NuGet package, to use install the package like this:

nuget install SkiaSharp

Because there are multiple distros of Linux, and we cannot possibly support them all, we have a separate NuGet package that will contain the supported binaries for a few distros: SkiaSharp.NativeAssets.Linux. (distros) (more info)

There is also a early access feed that you can use to get the latest and greatest, before it goes out to the public:

https://aka.ms/skiasharp-eap/index.json

Building SkiaSharp

Building SkiaSharp is mostly straight forward. The main issue is the multiple dependencies for each platform.

However, these are easy to install as they are found on the various websites. If you are just working on managed code, it is even easier as there mays to skip all the native builds.

  • To get started building, go here.
  • If you are just wanting a custom Linux build, go here

Compare Code

Here are some links to show the differences in our code as compared to Google's code.

What version are we on? m80
Are we up-to-date with Google? Compare
What have we added? Compare