2013-07-07 7 views
0

마우스 왼쪽 버튼을 클릭하면 수정되는 장면이 있습니다.OpenAL 사운드가 드로잉에서 OpenGL을 중지합니다.

내 문제는이 수정 된 장면은 사운드와 함께 나타나기로되어 있었지만 장면 자체가 렌더링되기 전에 사운드가 끝날 때까지 기다리는 것입니다.

나는이 기능을 사용하고 있습니다 :

물론
do { 
     alGetSourcei(source, AL_SOURCE_STATE, &state); 
} while (state == AL_PLAYING); 

,이 기능은 대기하는 프로그램을 말한다. 하지만 내가 사용할 수있는 대안은 무엇일까요? 나는이 기능을 제거하는 경우, 소리 밤은, 나는 심지어 기능 사운드()를 만들려고

재생이는 glutPostRedisplay 후이라고하지만 여전히

답변

1

가 나는 것을, 당신의 문제를 생각 렌더링하는 완벽한 사운드를 기다립니다 소리가 멈추고, 어딘가에있다. alGetSourcei은 사운드 재생을 유지할 필요가 없습니다.

어쨌든 Windows 메시지 및 OpenGL의 업데이트를 차단하고 장면이 다시 그려지지 않으므로 while 루프에서이를 수행 할 수 없습니다.

재생하려면 alSourcePlay으로 전화하면됩니다. 소스가 여전히 재생중인 경우 (어떤 이유로이 작업을 수행해야하는 경우) 각 프레임을 확인할 수 있습니다.

+0

그래, 그거야 :) – Frank