如何在libdispatch中使用GLUT?

时间:2012-09-23 15:24:08

标签: macos opengl glut libdispatch

GLUT和libdispatch都有自己的事件处理循环,这些循环使用永不返回的函数调用:glutMainLoop();dispatch_main();

我试过了:

dispatch_queue_t q = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(q, ^{
    glutMainLoop();
});

dispatch_main();

...并且窗口显示,但在初始调用glutDisplayFunc()指定的函数后,不响应任何事件或重绘。

如何让GLUT和libdispatch很好地一起玩?

1 个答案:

答案 0 :(得分:2)

你做不到。他们俩都希望拥有消息处理循环。而且由于只有一个这样的循环,他们不能拥有它。

如果你使用FreeGLUT,你可以找到一种方法来完成这项工作。但更好的选择是使用GLFW