2012-03-20 1 views
1

Im look to send data from iphone app to desktop приложение OpenGL, используя соединение сокетов. например расположение текстуры,Приложение opengl для прослушивания/получения данных из сокета?

У меня есть приложение opengl, работающее на рабочем столе. И отдельное приложение для сокетов для рабочего стола и iphone, где я могу отправлять/получать данные.

Но я не уверен, как объединить приложение сокетов и приложение opengl для рабочего стола. Приложение для настольных приложений может получать данные только один раз, а затем попадает в glutMainLoop().

+0

Проверьте это. Это не связано с сокетами, поэтому я не отправляю его как ответ, но вы можете вызывать другие функции, в то время как glutMainLoop() выполняется, конечно. http://www.kanersan.com/myfiles/Volcano.cpp – c0d3Junk13

ответ

3

Приложение настольного приложения может получать данные только один раз, а затем попадает в glutMainLoop().

Это потому, что вы написали его таким образом. Ваше приложение делает именно то, что вы ему рассказываете. Вы помещаете код «получить данные из сокета» за пределы основного цикла.

Вы можете просто настроить функцию таймера с помощью glutTimerFunc. В этой функции вы проверяете, есть ли больше данных, а если есть, вы храните их и вызываете glutPostRedisplay, чтобы снова вызвать метод отображения GLUT.

Лично я предлагаю избегать GLUT для такого приложения, где вам нужно управлять основным контуром. GLFW будет намного полезнее для вас, так как проще просто проверить сокет, чтобы увидеть, есть ли новые данные после рендеринга фрейма. Возможно, вам даже понадобится многопоточное решение, хотя для простого примера это немного.