c - 如何组合循环或如何将多个循环实现到 glib 主循环中?

标签 c opengl pthreads glut glib

我有一个使用Glibglib主循环的程序。此外,它使用openGL来绘制一些东西,并且需要处理来自键盘的输入

问题是我过去常常将所有内容彼此分开,而不是将它们组合在一个程序中。由于 Glib 有主循环,而 openGL 使用循环进行渲染(有一些处于 sleep 状态)。有了这些,我需要一个循环来监听关键事件。

使所有这些工作协同工作的最佳方式是什么?我应该在线程中创建三个循环还是实现其他循环到 glib 主循环以及如何做到这一点?

最佳答案

我不确定这是否是您正在寻找的内容,但我使用了 GTK+ 的 OpenGL 扩展,名为 gtkglext http://projects.gnome.org/gtkglext/

GTK+ 项目也依赖于 Glib,因此没有任何变化。使用 GTK+ 主循环和 gtkglext 的优点是您可以将常规按钮/小部件或自定义 2D/3D 小部件与 OpenGL 窗口混合使用。

关于c - 如何组合循环或如何将多个循环实现到 glib 主循环中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9848863/

相关文章:

c - 调用 pthread_exit() 时发生内存泄漏

python - 根据pyqtgraph.opengl中的信号值调整曲面图项的颜色

c - 重新分配() : invalid next size: 0x00000000

c - 将字符串拆分为C中的整数数组

c - 如何测量对 10 个数字进行冒泡排序所花费的时间

opengl - 相对于指定空间正确转换节点?

c++ - OpenGL渲染黑色方 block

pthreads - 需要互斥锁来保护条件变量

c - 尝试使用 pthreads,出现 munmap 错误?

c - 线程在循环中等待信号