web-dev-qa-db-ja.com

スキアvsカイロvs Direct2D、どちらが最も機能豊富ですか?

奇妙な質問です。
私は次のことを認識しています:
スキーア、カイロ:ライブラリ
Direct2D:API
ただし、追加コンポーネントなしでのみ ウィンドウズ ほとんどの機能を備えたプラットフォーム?パフォーマンスやプログラミングの単純さについて話しているのではありません。
CairoがWindowsプラットフォームのレンダリングバックエンドとしてD2Dを使用できる可能性はありますか?

9
Abrar Borno

私は Sciter で3つすべてをグラフィックバックエンドとして使用しているので、実際にそれらを比較できます。

今日現在:

機能セット:

SkiaとDirect2Dは機能セットと同等です。そして、どちらもカイロの機能的なスーパーセットです。

これら3つのうち、Direct2D(Direct2D v 1.1)のみが印刷をサポートします。代わりに、SkiaとCairoはPDFを生成できるため、実際の印刷にはサードパーティのツールが必要になります。

3D統合:

Direct2DはDirectXと適切に統合されており、同じDXGIデバイスで動作できます。

しかし、Skiaを既存の3D OpenGLコードと統合するのはそれほど簡単ではありません。 SkiaでもOpenGLバックエンドを使用できるため、OpenGLデバイスの状態が変化し、問題が発生します。

パフォーマンス:

Direct2Dを使用すると、60〜250 FPSに到達できます。

Windowsでは、驚くべきことに、OpenGLバックエンドで使用した場合、SkiaはDirect2Dよりもうまく機能する可能性があります。しかしYMMV。

プラットフォーム:

Windowsでは、Direct2DまたはSkiaを使用することをお勧めします。

MacOSの場合-間違いなくOpenGLバックエンドを備えたSkia。 MacのネイティブCoreGraphicsよりもはるかに優れています。

Linux/GTKの場合:これはGTK/Gnome3のデフォルトのレンダリングAPIであるため、Cairoを使用します。そしてカイロはそこでうまく機能します。

10
c-smile