a870290d77 | ||
---|---|---|
binding | ||
cake | ||
docs | ||
externals | ||
images | ||
native-builds | ||
nuget | ||
samples | ||
source | ||
tests | ||
tools | ||
workbooks | ||
.editorconfig | ||
.gitignore | ||
.gitmodules | ||
Binding.md | ||
CONTRIBUTING.md | ||
LICENSE.md | ||
Makefile | ||
README.md | ||
bootstrapper.ps1 | ||
bootstrapper.sh | ||
build.cake | ||
mono.pub | ||
mono.snk |
README.md
SkiaSharp
SkiaSharp is a cross-platform 2D graphics API for .NET platforms based on Google's Skia Graphics Library (https://skia.org/). It provides a comprehensive 2D API that can be used across mobile, server and desktop models to render images.
What is Included
SkiaSharp provides a PCL and platform-specific bindings for:
- Mac (Console or using the Xamarin.Mac)
- Xamarin.Android
- Xamarin.iOS
- Xamarin.tvOS
- Xamarin.Mac
- Windows Desktop (Windows.Forms / WPF)
- Windows UWP
You can also build this on your particular variant of Unix to create your native libraries.
Using SkiaSharp
SkiaSharp is available as a convenience NuGet package, to use install the package like this:
nuget install SkiaSharp
Our getting started guide will walk you through both the basic setup as well as the platform specific capabilties.
The API Documentation is also available on the web to browse.
Prerequisites
Make sure the Microsoft Visual C++ 2015 Redistributable is installed if this error occurs:
Unable to load DLL 'libSkiaSharp.dll': The specified module could not be found.
Building SkiaSharp
First clone the repository:
$ git clone https://github.com/mono/SkiaSharp.git
Next, set up the submodules:
$ cd SkiaSharp
$ git submodule init && git submodule update
Then follow the platform-specific instructions below.
Mac OS X
Run from Bash
$ ./bootstrapper.sh -t libs
This runs the build process by using the libs
build target.
Windows
You need Python 2.7 in PATH
environment variable. Then you can build it:
> .\bootstrapper.ps1 -Target libs
This runs the build process by using the libs
build target.
Build Targets
There are several targets available, you can specify the target as the argument to the -t
command line
option in the bootstrapper script.
Everything
- builds everything for the current platformexternals
- builds all the native libraries- [win]
externals-windows
- builds the native libraries for Windows - [win]
externals-uwp
- builds the native libraries for Windows UWP - [mac]
externals-osx
- builds the native libraries for Mac OS X - [mac]
externals-ios
- builds the native libraries for iOS - [mac]
externals-tvos
- builds the native libraries for tvOS - [mac]
externals-andoid
- builds the native libraries for Android
- [win]
libs
- builds all the managed libraries- [win]
libs-windows
- builds the managed libraries that can be built on Windows - [mac]
libs-osx
- builds the managed libraries that can be built on Mac OS X
- [win]
tests
- builds and runs the testssamples
- builds the samples available for the current platformdocs
- updates the mdoc filesnuget
- packages the libraries into a NuGetclean
- cleans everythingclean-externals
- cleans externals onlyclean-managed
- cleans managed libraries/samples only
New Skia Features Roadmap
Google has created a nice doc with a collection of high level items they have on tap the next 6-12 months. Note it is a living document that changes based on the requirements of the library's users.
Compare Code
Here are some links to show the differences in our code as compared to Google's.
What version are we on? m56
Are we up-to-date with Google? Compare
What have we added? Compare
Where is Windows Phone 8 / Store 8
We are working to add binaries for these platforms, stay tuned for a future release (or check the pull requests and branches, where we are working on those)