2012-09-23 146 views
2

GLUT和libdispatch都有它们自己的事件处理循环,这些循环分别由不会返回的函数调用:glutMainLoop();dispatch_main();如何在libdispatch中使用GLUT?

我已经试过:

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

dispatch_main(); 

...和橱窗展示,但与glutDisplayFunc()指定的功能的初始调用后并没有任何事件作出响应或重绘。

我怎样才能让GLUT和libdispatch一起玩呢?

+1

哇。 “剩余”仍在使用中?我怀着一种怀旧的感觉......这是一个跨平台的项目吗? –

+0

我只是想找一个简单的方法来调出一个窗口,渲染OpenGL,只使用C(没有Objective-C)。 – smokris

回答

2

你不能。他们都想拥有消息处理循环。而由于只有一个这样的循环,他们不能拥有它。

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

+0

谢谢。 GLFW看起来确实是一个更好的选择。 – smokris

+0

GLFW无法使用libdispatch - 请参阅http://stackoverflow.com/q/12570394/64860上的跟进。 – smokris