2015-11-13 18:21:00 +03:00
# SkiaSharp
2015-11-14 07:33:17 +03:00
2016-11-22 04:49:05 +03:00
[![SkiaSharp ](https://img.shields.io/nuget/vpre/SkiaSharp.svg?maxAge=2592000&label=SkiaSharp%20nuget )](https://www.nuget.org/packages/SkiaSharp) [![SkiaSharp.Views ](https://img.shields.io/nuget/vpre/SkiaSharp.Views.svg?maxAge=2592000&label=SkiaSharp.Views%20nuget )](https://www.nuget.org/packages/SkiaSharp.Views) [![SkiaSharp.Views.Forms ](https://img.shields.io/nuget/vpre/SkiaSharp.Views.Forms.svg?maxAge=2592000&label=SkiaSharp.Views.Forms%20nuget )](https://www.nuget.org/packages/SkiaSharp.Views.Forms)
2019-02-21 00:48:56 +03:00
[![chat ](https://img.shields.io/badge/chat-xamarin%2FXamarinComponents-E60256.svg )](https://gitter.im/xamarin/XamarinComponents) [![API Docs ](https://img.shields.io/badge/docs-api-1faece.svg )](https://docs.microsoft.com/en-us/dotnet/api/SkiaSharp) [![API Docs ](https://img.shields.io/badge/docs-guides-1faece.svg )](https://docs.microsoft.com/en-us/xamarin/graphics-games/skiasharp/)
[![Build Status ](https://devdiv.visualstudio.com/DevDiv/_apis/build/status/Xamarin/Components/SkiaSharp?branchName=master )](https://devdiv.visualstudio.com/DevDiv/_build/latest?definitionId=10789& branchName=master) [![Build Status ](https://dev.azure.com/xamarin/public/_apis/build/status/mono/SkiaSharp/SkiaSharp-ci?branchName=master )](https://dev.azure.com/xamarin/public/_build/latest?definitionId=4& branchName=master)
2016-05-15 00:40:40 +03:00
2016-04-07 18:13:46 +03:00
SkiaSharp is a cross-platform 2D graphics API for .NET platforms based on Google's
2017-03-24 17:29:33 +03:00
Skia Graphics Library (https://skia.org/). It provides a comprehensive 2D API that can
2016-04-07 18:13:46 +03:00
be used across mobile, server and desktop models to render images.
2015-11-14 07:33:17 +03:00
2018-02-10 22:50:36 +03:00
SkiaSharp provides cross-platform bindings for:
2015-11-14 07:33:17 +03:00
2018-02-10 22:50:36 +03:00
- .NET Standard 1.3
- .NET Core
2018-05-07 03:28:48 +03:00
- Tizen
2016-02-22 19:22:29 +03:00
- Xamarin.Android
- Xamarin.iOS
2016-06-10 00:27:03 +03:00
- Xamarin.tvOS
2017-09-05 18:29:58 +03:00
- Xamarin.watchOS
2016-07-29 20:17:04 +03:00
- Xamarin.Mac
2017-03-24 17:29:33 +03:00
- Windows Classic Desktop (Windows.Forms / WPF)
2017-03-24 17:41:41 +03:00
- Windows UWP (Desktop / Mobile / Xbox / HoloLens)
2016-02-22 19:22:29 +03:00
2017-03-24 17:41:41 +03:00
The [API Documentation ](https://developer.xamarin.com/api/namespace/SkiaSharp/ ) is
available on the web to browse.
2016-02-22 19:22:29 +03:00
2016-02-23 19:48:23 +03:00
## Using SkiaSharp
2016-02-22 19:22:29 +03:00
2018-11-03 15:41:43 +03:00
SkiaSharp is available as a convenient NuGet package, to use install the package like this:
2016-08-11 06:22:51 +03:00
```
nuget install SkiaSharp
```
2018-10-30 11:06:56 +03:00
_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 ](https://www.nuget.org/packages/SkiaSharp.NativeAssets.Linux ). ([distros](https://github.com/mono/SkiaSharp/issues/453)) ([more info](https://github.com/mono/SkiaSharp/issues/312))_
2017-03-24 17:41:41 +03:00
2016-02-23 19:48:23 +03:00
## Building SkiaSharp
2017-03-24 17:29:33 +03:00
Before building SkiaSharp:
* [Python 2.7 ](https://www.python.org/downloads ) is available in the `PATH` environment variable on Windows
2019-02-21 00:48:56 +03:00
* [Android NDK r15 ](https://developer.android.com/ndk/downloads/index.html ) is available in the `ANDROID_NDK_HOME` environment variable on macOS
2017-03-24 17:29:33 +03:00
* [.NET Core ](https://www.microsoft.com/net/core ) is installed on all platforms
2018-11-30 10:48:10 +03:00
* C/C++ Compiler (MSVC / "Desktop development" package on Windows)
2017-03-24 17:29:33 +03:00
First, clone the repository:
2016-04-08 21:58:02 +03:00
$ git clone https://github.com/mono/SkiaSharp.git
Next, set up the submodules:
$ cd SkiaSharp
2017-03-24 17:29:33 +03:00
$ git submodule update --init --recursive
2016-02-23 19:48:23 +03:00
2017-03-24 17:29:33 +03:00
Finally, build everything:
2016-06-28 16:07:00 +03:00
2017-03-24 17:41:41 +03:00
Mac/Linux:
2017-03-24 17:29:33 +03:00
$ ./bootstrapper.sh -t everything
2016-03-01 12:30:33 +03:00
2017-03-24 17:41:41 +03:00
Windows:
2018-10-30 11:06:56 +03:00
> .\bootstrapper.ps1 -t everything
2016-02-23 19:48:23 +03:00
2016-05-17 17:36:29 +03:00
## Compare Code
2018-10-15 18:10:13 +03:00
Here are some links to show the differences in our code as compared to Google's code.
2016-05-17 17:36:29 +03:00
2018-09-18 18:46:46 +03:00
What version are we on? [**m68** ](https://github.com/google/skia/tree/chrome/m68 )
Are we up-to-date with Google? [Compare ](https://github.com/mono/skia/compare/xamarin-mobile-bindings...google:chrome/m68 )
What have we added? [Compare ](https://github.com/google/skia/compare/chrome/m68...mono:xamarin-mobile-bindings )