我对上面列出的库的关系有点困惑,这是我的想法:
如果这是正确的,那么Clutter有一天会取代GTK +吗?
和...
如果你认为有一个更好的地方可以提出这个问题,或者我应该先读一些书,请告诉我!我是兴趣的自学编程。
答案 0 :(得分:41)
是的,Cairo是一个高质量的2D绘图API,GTK +使用Cairo绘制自己。
Cogl是一个GPU编程库,内部可以使用GL或GLES访问图形管道(虽然理论上它可以在支持的平台上轻松使用DirectX)。
Clutter使用Cogl进行渲染,但它也可以将Cairo用于2D元素。
Clutter不会取代GTK +:GTK +是一个非常复杂的库,它提供系统集成,复杂的小部件以及Clutter无意提供的其他实用程序API。
未来将比黑白替代品更加灰暗。
开罗可以用Cogl画画; Cogl将对GPU管道进行编程,但Cairo将生成要提交的几何体,因此您可以获得高质量的2D结果。开罗已经可以直接使用GL,但Cogl已经有了更好的状态跟踪。
Clutter可以使用GDK(GTK +窗口系统API)与窗口系统表面进行通信并获取输入事件。
将来,GTK +完全有可能在内部使用Clutter作为其小部件的基础 - 尽管这仍然是一项正在进行中的工作。
简而言之,图表可能是:
GPU <- [ [ Cogl + Cairo ] <- [ GDK + Clutter ] <- GTK+ ] <- application