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.
Перейти к файлу
Benjamin N. Summerton 943840eba8 Improve rendering speed for Gtk#'s SKWidget
This gives the `SKWidget` for Gtk# a massive performance boost by moving
the creation of the `SKSurface` (and `SKImageInfo`) to the
`CreateDrawingObjects()` method (formally `CreatePixbuf()`).  This makes
it so that these objects aren't being made every render cycle.  That is
what was causing the slowdow.

This also gets rid of the flicker reported in #534; it's flicker from
window dragging & resizing is now on par with that of Cairo's.

Another minor optimization was made, removing the call to
`base.OnExposeEvent()`.  It's not needed and the extra fuction call can
siphon off CPU cycles we'd like to keep.  Some other optimizations can
be made, but most of them probably are very minor.

closes #534
2018-06-13 21:05:13 -04:00
binding Use the correct delegate. Fixes #547 2018-06-08 10:28:50 -07:00
cake Support building only specific externals 2018-05-29 03:43:59 +02:00
docs Updating the docs with actual content 2018-05-31 22:04:01 +02:00
externals Make suer that we link the correct VC runtime for the store. Fixes #536 2018-05-29 23:15:43 +02:00
images
native-builds Add more encoding options to SKPixmap 2018-05-25 01:42:59 +02:00
nuget Add the Android libraires to the NuGet on Windows 2018-05-22 06:59:33 +02:00
samples Revert the samples project for now. 2018-05-23 18:32:54 +02:00
source Improve rendering speed for Gtk#'s SKWidget 2018-06-13 21:05:13 -04:00
tests Set the version to v1.60.2 for the upcoming release 2018-05-29 23:35:10 +02:00
workbooks Set the version to v1.60.2 for the upcoming release 2018-05-29 23:35:10 +02:00
.editorconfig Added some better .editorconfig files 2018-05-12 22:13:44 +02:00
.gitignore Reworked the nuget creation logic to be more streamlined and less error prone 2018-02-23 03:25:18 +02:00
.gitmodules Removed the mdoc submodule and use NuGet binary 2018-01-13 17:43:40 +02:00
CONTRIBUTING.md
External-Dependency-Info.txt Added the licensing information to the nugets 2018-02-23 04:19:30 +02:00
ISSUE_TEMPLATE.md Update ISSUE_TEMPLATE.md 2018-05-07 20:24:39 +02:00
LICENSE.md updated the license 2018-02-23 04:20:37 +02:00
LICENSE.txt Moving more work into MSBuild 2018-03-20 05:01:37 +02:00
Makefile
README.md Update README.md 2018-05-08 19:19:29 +02:00
VERSIONS.txt Set the version to v1.60.2 for the upcoming release 2018-05-29 23:35:10 +02:00
bootstrapper.ps1 Everything now builds again on Windows 2018-03-22 03:12:17 +02:00
bootstrapper.sh Everything now builds again on Windows 2018-03-22 03:12:17 +02:00
build.cake Support building only specific externals 2018-05-29 03:43:59 +02:00
cake.packages.config Changing the way docs are generated... 2018-04-21 01:56:38 +02:00
install-tizen.sh Update Tizen Studio to v2.4 with fixes 2018-05-30 03:44:20 +02:00
mono.pub
mono.snk

README.md

SkiaSharp

SkiaSharp SkiaSharp.Views SkiaSharp.Views.Forms
Gitter.im Xamarin Forums
API Docs API Docs
Windows Build Status Linux Build Status Linux Build Status Mac Build Status

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.

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 convenience NuGet package, to use install the package like this:

nuget install SkiaSharp

Make sure the Visual C++ Redistributable for Visual Studio 2015 is installed if this error occurs on Windows:

Unable to load DLL 'libSkiaSharp.dll': The specified module could not be found.

At this point in time, we do not ship a native Linux binary in the NuGet package, but you can either download our internal Linux binaries attached to the specific release or you can build your own using the directions below.

Building SkiaSharp

Before building SkiaSharp:

  • Python 2.7 is available in the PATH environment variable on Windows
  • Android NDK r14 is available in the ANDROID_NDK_HOME environment variable on macOS
  • .NET Core is installed on all platforms

First, clone the repository:

$ git clone https://github.com/mono/SkiaSharp.git

Next, set up the submodules:

$ cd SkiaSharp
$ git submodule update --init --recursive

Finally, build everything:

Mac/Linux:

$ ./bootstrapper.sh -t everything

Windows:

> .\bootstrapper.ps1 -Target everything

Compare Code

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

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