2012-03-20 54 views
1

即时通讯使用套接字连接将数据从iPhone应用程序发送到桌面OpenGL应用程序。例如纹理的位置,opengl应用程序监听/从套接字连接接收数据?

我有在桌面上运行的opengl应用程序。 和一个单独的套接字应用程序的桌面和iPhone,我可以发送/接收数据。

但我不确定如何将套接字应用程序和用于桌面的opengl应用程序结合起来。 桌面opengl应用程序只能接收一次数据,然后进入glutMainLoop()。

+0

看看这个。它与套接字无关,因此我不会将它作为答案发布,但当glutMainLoop()正在执行时,您可以调用其他函数。 http://www.kanersan.com/myfiles/Volcano.cpp – c0d3Junk13 2012-03-20 20:33:52

回答

3

桌面opengl应用程序只能接收一次数据,然后进入glutMainLoop()。

那是因为你是这样写的。你的应用程序完全并且只是你所说的。您将“从套接字中获取数据”代码放在主循环之外。

您可以简单地使用glutTimerFunc设置定时器功能。在这个函数中,你检查是否有更多的数据,如果有,存储它并且调用glutPostRedisplay来使GLUT再次调用它的显示方法。

就个人而言,我建议避免GLUT这样的应用程序,你需要控制主循环。 GLFW对你来说会更有用,因为更简单地检查套接字以查看渲染帧之后是否有新数据。你甚至可能想要一个线程化的解决方案,虽然这对于这样一个简单的例子来说有点多。