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

Abr*_*rno 8 directx 2d vector-graphics cairo skia

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

c-s*_*ile 11

我将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。开罗在那儿工作得很好。

  • 6 个月后,MacOS 禁止使用 OpenGL,是的,我们至少在一年前就可以看到这一点。Metal OpenGL 后端在哪里?文本和字体是什么?这已成为普通应用程序中最昂贵的操作。 (3认同)
  • 值得注意的是,Skia 也有 Vulkan 后端,而 Direct2D 显然没有。另外,在最近的新闻中:[LibreOffice 从开罗迁移到 Skia](https://www.phoronix.com/scan.php?page=news_item&px=Trying-LibreOffice-Vulkan-Skia)。 (2认同)
  • @johnbakers 这里更好意味着:更快(特别是使用 OpenGL/HW 后端)和更丰富的功能。据我了解,CoreGraphics 是纯 CPU 光栅化器。输出保真度相当。 (2认同)