Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Outline

SkiaSharp Documentation

SkiaSharp is a cross-platform 2D graphics API for .NET that wraps Google's Skia Graphics Library.

Prerequisites

Before building or contributing to SkiaSharp:

  • .NET 8 SDK - Pinned via global.json in the repository root
  • MAUI workload - Required for mobile platform targets:
    dotnet workload install maui

Architecture

C# Wrapper (binding/SkiaSharp/)  →  P/Invoke  →  C API (externals/skia/src/c/)  →  C++ Skia

Key principles:

  • C# is the safety boundary (validates parameters, throws exceptions)
  • C API is minimal pass-through (trusts C#, returns bool/null on failure)
  • Three pointer types: raw (borrowed), owned (delete), ref-counted (unref)

Documentation Index

Architecture & Concepts

Document Description
architecture.md Three layers, type mappings, call flow, threading
memory-management.md Pointer types, ownership, lifecycle
error-handling.md Error patterns across layers

Contributing

Document Description
adding-apis.md Step-by-step guide to add bindings
adding-libraries.md Adding new projects and NuGet packages
writing-docs.md API documentation process
maintaining.md Maintainer responsibilities

Documentation system

Document Description
docs-overview.md Start here — map of the whole docs system: the four artifacts, engines, skills, and cross-repo automation
writing-docs.md Operator how-to: generate & edit API docs and api diffs locally
release-notes-and-api-diffs.md Behavior spec for the release-notes & API-diff engines
site.md Build, preview, and theme the conceptual docs website

Building

Document Description
building.md Build on Windows & macOS
building-linux.md Build native libraries for Linux

Testing

Document Description
containerized-testing.md Run the console test suite inside a Docker container (Linux glibc/Alpine + Nano Server) via the bootstrapper docker: feature + the tests-container cake target

Releasing

Document Description
releasing.md Complete release guide: branching, workflow, checklist
versioning.md Version numbering scheme

Reference

Document Description
dependencies.md Native dependencies: security relevance, CVE tracking, cgmanifest.json
debugging-methodology.md Best practices for complex debugging

Quick Build

dotnet cake --target=externals-download  # Get native libs
dotnet build binding/SkiaSharp/SkiaSharp.csproj  # Build managed
dotnet test tests/SkiaSharp.Tests.Console.slnx    # Run all tests

External Resources

Morty Proxy This is a proxified and sanitized view of the page, visit original site.