【发布时间】:2012-03-24 03:20:15
【问题描述】:
我有一个使用 Glib 和 glib 主循环 的程序。此外,它使用 openGL 来绘制一些东西,并且需要处理来自键盘的输入。
问题在于,我过去常常将所有内容彼此分开,而不是将它们组合在一个程序中。由于 Glib 有主循环,而 openGL 使用循环进行渲染(有一些睡眠)。有了这些,我需要一个循环来监听关键事件。
将所有这些工作结合在一起的最佳方法是什么?我应该在线程中创建三个循环还是实现其他循环到 glib 主循环以及如何做到这一点?
【问题讨论】:
-
也许您可以使用 GLib 主循环来安排您的渲染活动,即使渲染需要定期进行(例如每 1/15 秒)。 GLib 自身未检测到的事件可以转换为 GLib 事件。通过将 X 键盘事件转换为 GLib 事件,我发现了一些将 X 集成到 GLib 循环中的代码。
标签: c opengl pthreads glut glib