库之间的关系:Clutter,Cogl,Clutter,GTK +等

问题描述 投票:18回答:1

我对上面列出的库的关系有些困惑,这是我的想法:

  1. Cairo是2D图形库,GTK +使用它来渲染小部件。 Cario是低级的。
  2. [Cogl是基于OpenGL的3D图形库(或叉子?我不知道,而Clutter是基于Cogl的3D GUI工具包。

如果这是正确的,杂波有一天会替换GTK +吗?

和...

[如果您认为有一个更好的地方问这个问题,或者我应该先读一些书,请告诉我!我正在自学兴趣编程。

gtk cairo clutter cogl
1个回答
42
投票

是的,Cairo是高质量的2D绘图API,GTK +使用Cairo进行绘制。

Cogl是一个GPU编程库,在内部可以使用GL或GLES来访问图形管道(尽管从理论上讲,它可以在受支持的平台上轻松使用DirectX)。

Clutter使用Cogl进行渲染,但也可以将Cairo用于2D元素。

Clutter不会取代GTK +:GTK +是一个非常复杂的库,它提供了系统集成,复杂的小部件以及Clutter不想提供的其他实用程序API。

[未来将比黑白替代品更加灰暗。

开罗可以使用Cogl进行绘制; Cogl将对GPU管线进行编程,但是Cairo将生成要提交的几何图形,因此您可以获得高质量的2D结果。 Cairo已经可以直接使用GL,但是Cogl已经具有更好的状态跟踪。

Clutter可以使用GDK,即GTK +窗口系统API,与窗口系统表面进行对话并获取输入事件。

[将来,GTK +很有可能在内部将Clutter用作其小部件的基础-尽管这仍在进行中。

简而言之,图表可能是:


  GPU <- [ [ Cogl + Cairo ] <- [ GDK + Clutter ] <- GTK+ ] <- application
© www.soinside.com 2019 - 2024. All rights reserved.