2009-10-23 3 views
1

표준 glut 구현이 있습니다. display 함수는 각 객체를 다시 그리지 만 각 객체의 특정 값에 대한 상수 업데이트가 필요합니다. 그대로, 내가 이것을 할 수있는 유일한 방법은 업데이 트를 처리하기 위해 스레드를 산란하는 것입니다. 그러나, glutPostRedisplay() 다른 스레드에서 glut 창을 새로 고치려면 사용할 수 없습니다. Glut 루프와 함께 값을 업데이트하는 루프를 만드는 좋은 방법은 무엇입니까?다른 스레드의 glutPostRedisplay

또한 초 단위로 sleep하는 가장 좋은 방법은 무엇입니까?

답변

2

일종의 정기적 인 업데이트가 필요한 경우 glutIdleFunc을 설정하는 것이 좋습니다. 처리 할 이벤트가 없을 때마다 루프에서 호출되는 함수입니다. 대신 일정한 간격으로 (가능한 한 빨리) 무언가를 호출하고 싶다면 glutTimerFunc을 시도해보십시오. 그러면 앞으로 몇 밀리 초의 GLUT 루프에 의해 실행될 일정을 계획 할 수 있습니다.

두 번째 질문에 대해서는 초 단위로 잠자기해야하는 경우 마이크로 초 단위의 수면 기간에 usleep을 시도하거나 수면 기간을 나노초 단위로 지정하려고 시도 할 수 있습니다 (실제 얻을 수는 없겠지만). 나노초 해상도). 어떤 플랫폼을 사용하고 있거나 Windows에서 사용할 수 있는지 알 수는 없지만 모든 POSIX 호환 시스템 (Linux, BSD, Mac OS X)에서 사용할 수 있어야합니다. 그러나 아마 당신의 목적을 위해서 glutTimerFunc가 더 잘 작동 할 것입니다.

편집를 추가합니다 : Windows에서 당신이 [Sleep] (http://msdn.microsoft.com/en-us/library/ms686298(VS.85%29.aspx)은 (밀리 초 단위로 시간이 소요 자본 S)를 참고 사용해야합니다처럼 보이는

+0

을 그 완벽한 소리 당신은 규칙.. –

관련 문제