当前 vapi 文件中没有CoglRenderer
或CoglContext
类用于cogl-1.0
.
如果没有这些,我认为您甚至无法初始化 Cogl,奇怪的是,我只能在 cogl-2.0 的文档中找到。
https://developer.gnome.org/cogl-2.0-experimental/stable/
由于似乎根本没有任何 Vala 示例,也没有多少 C 示例,因此很难问您的问题。
您可能应该询问 Cogl 邮件列表。
编辑:由于您的问题是关于 Clutter + Cogl,因此这里确实有一个 Vala 示例:https ://wiki.gnome.org/Projects/Vala/ClutterSamples
Edit2:这里有一个Hello World
使用 cogl-2.0 的教程:http: //www.cogl3d.org/hello.html
正如您所看到的,Cogl 的级别要低得多,当您独立使用它(没有 Clutter)时,您必须自己做很多设置代码(创建绘图上下文、创建帧缓冲区、创建绘图图元、创建绘图管道、绘制你的原语等)。
我不知道 Clutter 在内部是如何工作的,但我认为它为你做了很多工作。
无论如何,如果您先学习一些 OpenGL 也不会受到伤害,因为 Cogl 是 OpenGL 的包装器。
Edit3:这篇博文展示了如何将 Cogle 集成到 Clutter 中:http ://radialmind.blogspot.de/2012/02/cogl-or-opengl-for-3d-clutter-scenes.html
所以这就是你跳出混乱循环的方法:定义一个自定义演员。我用 C 做了一个,另一个例子使用了 C++ 版本。另请参阅此处。定义一些属性来修改事物的呈现方式和其他一些一般行为。覆盖绘制循环。保存矩阵,定义你自己的矩阵,在 3D 中调用你的自定义绘图代码(必须是 cogl!),然后在你找到它们时将它们放回去。