Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 59 additions & 0 deletions documentation/docfx/releases/4.147.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Version 4.147.0

> **Upcoming release** · In development · Not yet available on NuGet

## Highlights

SkiaSharp 4.0 arrives powered by Skia milestone 147, bringing variable font rendering, color palette font support, new surface drawing APIs, and expanded platform coverage with Android Bionic and Tizen x64/arm64 targets. An interactive SkiaFiddle WebAssembly playground is now available as a live sample for experimenting with SkiaSharp code in the browser. Community contributors [@ramezgerges](https://github.com/ramezgerges), [@4Darmygeometry](https://github.com/4Darmygeometry), [@SimonvBez](https://github.com/SimonvBez), and [@Copilot](https://github.com/apps/copilot-swe-agent) drove the majority of user-facing improvements in this release.

## New Features

### Engine

- **Skia milestone 147** — Upgrades the underlying Skia graphics engine to m147, incorporating upstream bug fixes, rendering improvements, and new capabilities from Google. ❤️ [@ramezgerges](https://github.com/ramezgerges) ([#3702](https://github.com/mono/SkiaSharp/pull/3702))

### Text & Fonts

- **Variable font support** — Full variable font axis support via `SKTypeface.GetVariationAxes()` and `SKTypeface.CreateWithVariation()`, enabling fine-grained control over weight, width, slant, and custom axes. ❤️ [@ramezgerges](https://github.com/ramezgerges) ([#3703](https://github.com/mono/SkiaSharp/pull/3703))
- **Color font palette support** — Exposes palette APIs for color fonts (e.g., emoji fonts), allowing selection and customization of named palettes and individual palette entries. ([#3742](https://github.com/mono/SkiaSharp/pull/3742))

### API Surface

- **`SKSamplingOptions` for surface drawing** — New `SKSurface.Draw` and `SKCanvas.DrawSurface` overloads accept `SKSamplingOptions`, giving precise control over interpolation quality when compositing surfaces. ❤️ [@Copilot](https://github.com/apps/copilot-swe-agent) ([#3491](https://github.com/mono/SkiaSharp/pull/3491))

### Platform

- **Android Bionic library builds** — Produces native `libSkiaSharp.so` targeting Android Bionic, enabling use in NDK-based and native-heavy Android workloads. ❤️ [@4Darmygeometry](https://github.com/4Darmygeometry) ([#3217](https://github.com/mono/SkiaSharp/pull/3217))
- **Tizen x64 and ARM64 native builds** — Adds first-class Tizen x64 and arm64 targets to the native CI and NuGet packages. ([#3620](https://github.com/mono/SkiaSharp/pull/3620))
- **C# 13 support on legacy TFMs** — Adds PolySharp so C# 13 language features compile on older target frameworks (net462, netstandard2.0, etc.). ❤️ [@4Darmygeometry](https://github.com/4Darmygeometry) ([#3642](https://github.com/mono/SkiaSharp/pull/3642))
- **SkiaFiddle WebAssembly sample** — An interactive browser-based playground for writing and running SkiaSharp code, built as an Uno Platform WebAssembly application. ❤️ [@ramezgerges](https://github.com/ramezgerges) ([#3762](https://github.com/mono/SkiaSharp/pull/3762), [#3790](https://github.com/mono/SkiaSharp/pull/3790))

## Security

- **libpng updated to 1.6.58** — Picks up recent security and bug fixes in the libpng image decoder. ([#3718](https://github.com/mono/SkiaSharp/pull/3718))
- **libexpat updated to 2.7.5** — Picks up security and bug fixes in the Expat XML parser used by Skia. ([#3717](https://github.com/mono/SkiaSharp/pull/3717))

## Bug Fixes

- **SKGLView on Android not rendered in TabBar** — Fixed a regression where `SKGLView` failed to render when hosted inside an Android `TabBar` control. ❤️ [@SimonvBez](https://github.com/SimonvBez) ([#3076](https://github.com/mono/SkiaSharp/pull/3076))
- **Default typeface resolution** — Moved default-typeface resolution to the managed layer, fixing incorrect behavior when no custom typeface was configured. ❤️ [@ramezgerges](https://github.com/ramezgerges) ([#3730](https://github.com/mono/SkiaSharp/pull/3730))

## Platform Support

| Platform | What's New |
|----------|-----------|
| 🤖 Android | Bionic library builds, `SKGLView` TabBar rendering fix |
| 🌐 WebAssembly | SkiaFiddle interactive playground sample |
| 🪟 Windows | libpng 1.6.58, libexpat 2.7.5 |
| 🐧 Linux | libpng 1.6.58, libexpat 2.7.5 |
| 🎨 Core API | Variable fonts, color font palettes, `SKSamplingOptions` overloads |
| 🏗️ Build | Tizen x64/ARM64 targets, C# 13 on legacy TFMs, Android Bionic |

## Community Contributors ❤️

| Contributor | What They Did |
|-------------|--------------|
| [@ramezgerges](https://github.com/ramezgerges) | Skia m147 engine bump, variable font support, default typeface fix, SkiaFiddle WebAssembly playground |
| [@4Darmygeometry](https://github.com/4Darmygeometry) | Android Bionic library builds, C# 13 support on legacy TFMs |
| [@SimonvBez](https://github.com/SimonvBez) | Fixed `SKGLView` not rendering in Android TabBar |
| [@Copilot](https://github.com/apps/copilot-swe-agent) | `SKSamplingOptions` overloads for `SKSurface.Draw` and `SKCanvas.DrawSurface` |
5 changes: 5 additions & 0 deletions documentation/docfx/releases/TOC.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
- name: Overview
href: index.md
- name: Version 4.147.x
href: 4.147.0.md
items:
- name: Version 4.147.0
href: 4.147.0.md
- name: Version 4.133.x
href: 4.133.0.md
items:
Expand Down
4 changes: 3 additions & 1 deletion documentation/docfx/releases/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,10 @@ Release notes for all SkiaSharp versions.

### SkiaSharp 4.x

- **Version 4.147.x**
- [Version 4.147.0 (Upcoming)](4.147.0.md)
- **Version 4.133.x**
- [Version 4.133.0 (Upcoming)](4.133.0.md)
- [Version 4.133.0](4.133.0.md)

### SkiaSharp 3.x

Expand Down