Skia vs Cairo vs Direct2D,这是功能最丰富的?

时间:2017-10-02 13:11:51

标签: 2d directx vector-graphics cairo skia

一个好奇的问题。
我知道:
斯基亚,开罗:图书馆
Direct2D:API
但是没有任何其他组件,只能在具有最多功能的 Windows 平台上?我不是在谈论性能或编程简单性。
开罗是否有可能在Windows平台上使用D2D作为渲染后端?

1 个答案:

答案 0 :(得分:8)

我在我的Sciter中使用全部三个作为图形后端,以便您可以比较它们。

截至今天:

功能集:

Skia和Direct2D与功能集相提并论。 两者都是开罗特色明智的超集。

从这三个版本中,只有Direct2D(Direct2D v 1.1)支持打印。相反,Skia和Cairo能够生成PDF,因此对于真正的打印,您需要第三方工具。

3D集成:

Direct2D与DirectX的良好集成 - 它们可以在同一个DXGI设备上运行。

但将Skia与现有的3D OpenGL代码集成并不是一件轻而易举的事。即使Skia可以使用OpenGL后端,它也会改变OpenGL设备的状态并产生问题。

性能:

使用Direct2D,您可以达到60-250 FPS。

在Windows上,Skia与OpenGL后端一起使用时,令人惊讶,但可能比Direct2D更好。但是YMMV。

平台:

在Windows上,我建议使用Direct2D或Skia。

在MacOS上 - 绝对是带有OpenGL后端的Skia。它明显优于Mac的原生CoreGraphics。

在Linux / GTK上:使用Cairo,因为这是GTK / Gnome3上的默认渲染API。开罗在那里工作很好。