【问题标题】:The relationship between libraries: Clutter, Cogl, Clutter, GTK+, etc库之间的关系:Clutter、Cogl、Clutter、GTK+等
【发布时间】:2012-02-18 19:31:08
【问题描述】:

我对上面列出的库的关系有点困惑,以下是我的想法:

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

如果这是正确的,Clutter 有一天会取代 GTK+ 吗?

还有……

如果您认为有更好的地方可以提出这个问题或者我应该先阅读一些书籍,请告诉我!我是出于兴趣而自学编程。

【问题讨论】:

    标签: gtk cairo clutter cogl


    【解决方案1】:

    是的,Cairo 是一个高质量的 2D 绘图 API,GTK+ 使用 Cairo 来绘制自己。

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

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

    Clutter 不会取代 GTK+:GTK+ 是一个非常复杂的库,它提供系统集成、复杂的小部件和其他 Clutter 没有兴趣提供的实用程序 API。

    未来会比黑白替代品更灰暗。

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

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

    在未来,GTK+ 完全有可能在内部使用 Clutter 作为其小部件的基础 - 尽管这仍在进行中。

    简而言之,图表可以是:

    
      GPU <- [ [ Cogl + Cairo ] <- [ GDK + Clutter ] <- GTK+ ] <- application
    

    【讨论】:

    • 把它带回家一点,如果你是一个应用程序开发者,你可能会使用 gtk 来创建窗口、菜单、工具栏等,并使用 clutter 来绘制任何“类似绘图区域”的应用程序内容并且不适合基于小部件的应用程序隐喻。在混乱中,您可以深入到开罗执行特定的绘图任务。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多