概要

MicrosoftとUno Platformは、.NET向け2Dグラフィックスライブラリ「SkiaSharp」の4系における最初の安定版として、バージョン4.148.0と4.150.0をリリースした。あわせて4.151.0のプレリリース版も公開されている。今回の刷新で最も重要なのは、パッケージのバージョン付けをChromeのリリースチャンネルが使用する上流Skiaのマイルストーンに合わせる新方針を採用した点だ。安定版はChromeのStable/Extended Stableマイルストーンに、プレリリース版はChrome Betaに追従する形となり、従来の3.119ブランチが上流から数マイルストーン遅れていた状況を解消し、更新の予測可能性を高める狙いがある。

技術的な詳細

最初の安定版となる4.148.0では、バンドルされるSkiaエンジンをm148に更新し、OpenTypeの可変フォント軸制御やカラーフォントのパレット選択に対応したほか、SKWebpEncoderによるアニメーションWebPエンコードを新たに導入した。また共有ネイティブオブジェクトのライフサイクル管理を見直し、use-after-freeによる障害を低減している。パフォーマンス面では、GPUレンダリングのUIで最大24%の性能向上、CPUベースのPerlinノイズシェーダーでは約6倍の高速化が報告されている。

7月7日にリリースされた4.150.0ではSkia m150へと進み、SKPaint.GetFastBounds()をはじめとするグラフィックス診断APIや画像フィルタリング関連のメソッドが追加されたほか、SKSurface.Canvasラッパーをキャッシュしてアロケーションを削減する改善が加えられた。一方でこのバージョンでは、.NET InteractiveおよびPolyglot Notebooks統合パッケージが削除されている。

プレリリース段階の4.151.0はSkia m151に対応し、ホットパスにおけるP/Invoke呼び出しをマネージドな整数演算に置き換えたほか、アロケーションフリーなReadOnlySpanオーバーロードを追加した。さらに.NET WebAssembly向けにEmscripten 5.0.6を同梱するなど、Web/WebAssembly方面での最適化も進められている。

破壊的変更と移行における注意点

今回のリリースでは互換性に関わる変更も含まれている。SKPaintの非推奨テキスト・フォント関連メンバーはコンパイルエラーとなるため、開発者はSKFontへの移行が必須となる。既存プロジェクトでSkiaSharpをアップグレードする際は、この非推奨APIの利用箇所を事前に洗い出しておく必要があるだろう。上流Skiaのマイルストーンに追従する体制により、今後は最新のSkia機能や修正がより速やかに.NETエコシステムへ反映されることが期待される。