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.
Перейти к файлу
Max Katz 9cbf9c80b7
Function pointers and LibraryImport (#2917)
* Update generator to emit function pointers

* Regenerate interop files

* Enable USE_LIBRARY_IMPORT in HarfBuzzSharp

* Enable USE_LIBRARY_IMPORT on SkiaSharp

* Set DisableRuntimeMarshalling on HarfBuzzSharp

* Replace remaining DllImports with LibraryImport on SkiaSharp

* Set DisableRuntimeMarshalling on SkiaSharp as well

* Fix missed proxy definition

* Regenerate skia api with a correct submodule version

* Collections literals are not supported on the CI .NET SDK

* An attempt to fix Tizen build

* Forgot about partial

* Set UnmanagedType.LPStr on evas_gl_proc_address_get instead

* Set USE_LIBRARY_IMPORT on remaining projects too

* Update generator tool to generate DelegateProxy as well

* Regenerate HarfBuzz and SkiaSharp with new DelegateProxy source gen

* Regenerate other projects as well

* Add `protected internal` to test classes too, since this project has InternalsVisibleTo configured

* Disable DelegateTypesAreValid and DelegateTypesHaveAttributes tests on .NET 7+ build, see comments

* Reduce warnings noise

* Update binding/SkiaSharp/GRGlInterface.cs

Co-authored-by: Filip Navara <filip.navara@gmail.com>

* Add missing USE_LIBRARY_IMPORT defines

* Update binding/SkiaSharp/GRGlInterface.cs

* Also needs USE_LIBRARY_IMPORT

---------

Co-authored-by: Matthew Leibowitz <mattleibow@live.com>
Co-authored-by: Filip Navara <filip.navara@gmail.com>
2024-08-21 23:16:05 +08:00
.config Update .NET to 8.0 (#2927) 2024-07-26 00:28:28 +08:00
.devcontainer Set up dev containers (#2605) 2023-09-15 02:08:48 +02:00
.github Create a rebase bot (#2957) 2024-07-26 00:34:56 +08:00
.vscode Set up dev containers (#2605) 2023-09-15 02:08:48 +02:00
benchmarks Update .NET to 8.0 (#2927) 2024-07-26 00:28:28 +08:00
binding Function pointers and LibraryImport (#2917) 2024-08-21 23:16:05 +08:00
changelogs Update .NET to 8.0 (#2927) 2024-07-26 00:28:28 +08:00
docs@726b6ce666 Update docs (#2597) 2023-09-05 00:49:23 +02:00
externals Add R-Tree overload of beginRecording (#2889) 2024-06-18 11:09:50 +02:00
images Add net6.0-* for the binding projects (#1707) 2021-06-16 08:23:56 +02:00
interactive fix typo in README.dib (#2839) 2024-04-28 11:56:01 +02:00
native Update .NET to 8.0 (#2927) 2024-07-26 00:28:28 +08:00
samples Update .NET to 8.0 (#2927) 2024-07-26 00:28:28 +08:00
scripts Don't fail Mac Catalyst just so we can go green (#2975) 2024-08-19 19:47:53 +08:00
source Update SDK, workloads and projects (#2971) 2024-08-17 01:53:38 +08:00
tests Function pointers and LibraryImport (#2917) 2024-08-21 23:16:05 +08:00
utils Function pointers and LibraryImport (#2917) 2024-08-21 23:16:05 +08:00
.editorconfig Add WASM Support for Uno Platform (#1333) 2020-07-21 03:22:38 +02:00
.gitattributes Add a .gitattributes for the bash scripts 2018-07-20 00:00:19 +02:00
.gitignore Modernize the repository and prepare SkiaSharp 3.0 (#2505) 2023-07-30 23:49:57 +08:00
.gitmodules Remove the externals/harfbuzz submodule (#1599) 2021-02-01 23:13:44 +02:00
CODE-OF-CONDUCT.md Link Code of Conduct (#1216) 2020-04-08 11:00:42 +02:00
External-Dependency-Info.txt Added the licensing information to the nugets 2018-02-23 04:19:30 +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
README.md Update skia to m116 (#2829) 2024-04-15 12:28:32 +02:00
build.cake Update .NET to 8.0 (#2927) 2024-07-26 00:28:28 +08:00
build.ps1 Modernize the repository and prepare SkiaSharp 3.0 (#2505) 2023-07-30 23:49:57 +08:00
build.sh Modernize the repository and prepare SkiaSharp 3.0 (#2505) 2023-07-30 23:49:57 +08:00
cgmanifest.json Add `$schema` to `cgmanifest.json` (#2232) 2023-06-07 23:12:27 +02:00
global.json Update .NET to 8.0 (#2927) 2024-07-26 00:28:28 +08:00
nuget.config Modernize the repository and prepare SkiaSharp 3.0 (#2505) 2023-07-30 23:49:57 +08:00

README.md

SkiaSharp

SkiaSharp HarfBuzzSharp

SkiaSharp.Views SkiaSharp.Views.Maui.Controls SkiaSharp.Views.Uno

discord 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
  • .NET 6
  • Tizen
  • Android
  • iOS
  • tvOS
  • macOS
  • Mac Catalyst
  • WinUI 3 (Windows App SDK / Uno Platform)
  • Windows Classic Desktop (Windows.Forms / WPF)
  • Web Assembly (WASM)
  • Uno Platform (iOS / macOS / Android / WebAssembly)

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? m116
Are we up-to-date with Google? Compare
What have we added? Compare