문제

표준 GLUT 구현이 있습니다. 디스플레이 함수는 각 객체를 다시 그리기하지만 각 객체의 특정 값에 대한 지속적인 업데이트가 필요합니다. 그렇게 생각할 수있는 유일한 방법은 업데이트를 처리하기 위해 스레드를 생성하는 것입니다. 그러나 다른 스레드에서 glutpostredisplay ()를 사용하여 창을 새로 고칠 수 없습니다. Glut 루프와 함께 값을 업데이트하는 루프를 갖는 좋은 방법은 무엇입니까?

또한 몇 초 동안 잠을자는 가장 좋은 방법은 무엇입니까 (수면 () 대신 몇 초 동안).

도움이 되었습니까?

해결책

정기적 인 업데이트가 필요한 경우 glutIdleFunc. 이것은 처리 할 이벤트가 없을 때마다 루프에서 호출되는 함수입니다. 대신 정기적으로 무언가를 호출하고 싶다면 (가능한 한 빨리와 달리) 시도하고 싶을 수도 있습니다. glutTimerFunc 이를 통해 향후 Glut Loop에서 실행할 무언가를 예약 할 수 있습니다.

두 번째 질문은 몇 초 동안 잠을 잘 필요가 있다면 시도하고 싶을 수도 있습니다. usleep 마이크로 초 분해능 수면 기간, 또는 nanosleep 나노 초의 수면 기간을 지정합니다 (실제로 나노초 해상도를 얻지는 않지만). 어떤 플랫폼에 있는지 또는 Windows에서 사용할 수 있는지 모르겠지만 POSIX 호환 시스템 (Linux, BSD, Mac OS X)에서 사용할 수 있어야합니다. 그러나 아마도 당신의 목적을 위해 glutTimerFunc 더 잘 작동합니다.

추가 할 편집: 창문에서 사용해야하는 것처럼 보입니다.Sleep](http://msdn.microsoft.com/en-us/library/ms686298(vs.85%29.aspx) (수도에 주목하십시오 S), 밀리 초로 시간이 걸립니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top