2d - Skia vs Cairo vs Direct2D,哪个功能最丰富?

标签 2d directx vector-graphics cairo skia

一个好奇的问题。
我知道:
Skia,开罗:图书馆
Direct2D:API
但是没有任何额外的组件,专门在Windows平台上,哪个功能最多?我不是在谈论性能或编程的简单性。
Cairo 有没有可能在 Windows 平台上使用 D2D 作为渲染后端?

最佳答案

我在 Sciter 中使用了所有三个作为图形后端,因此您可以在实际操作中比较它们。
截至今日:
功能集:
Skia 和 Direct2D 的功能集相当。
两者都是开罗的功能明智的超集。
在这三个中,只有 Direct2D (Direct2D v 1.1) 支持打印。 Skia 和 Cairo 能够生成 PDF,因此对于真正的打印,您将需要 3rd 方工具。
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。开罗在那里工作得很好。

关于2d - Skia vs Cairo vs Direct2D,哪个功能最丰富?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46526178/

相关文章:

c++ - 在 Shutdown() 方法而不是析构函数中清理

c++ - 无需运行必备软件的 DirectX 游戏

android - 将矢量资源导入 Android Studio 时出错

svg - 在 LibGDX 中渲染 svg 文件

java - 使用嵌套 For 循环初始化 2D 数组的值

directx - 在 HLSL 中随机访问 R8G8B8A8_UNorm 格式的 D3D11 缓冲区

c - C 中的动态 2 数组

vector-graphics - 如何在 eps 文件的每个对象中用一种颜色替换另一种颜色?

html - 构建一个简单的 HTML5/canvas 2D 游戏。游戏引擎推荐使用?

c# - 从数组中创建形状的算法