호출 glFlush()
과 glFinish()
. 의 실제적인 차이점을 구분하는 데 문제가 있습니다.
워드 프로세서는 그 말 glFlush()
과 glFinish()
하나가 차이가 있다는 것을, 그들은 모두 실행됩니다 확신 할 수 있도록 OpenGL은 모든 버퍼 작업을 밀어 버린다 glFlush()
반환 즉시 곳으로 glFinish()
블록 모든 작업이 완료 될 때까지.
정의를 읽은 후, 이것을 사용 glFlush()
한다면 OpenGL이 실행할 수있는 것보다 더 많은 작업을 제출하는 문제에 부딪 힐 것이라고 생각했습니다. 그래서, 시도하기 위해, 나는 나의 프로그램 glFinish()
을 a glFlush()
와 lo로 바꾸었고 , 보라, 나의 프로그램이 (내가 말할 수있는 한) 똑같이 실행되었습니다. 프레임 속도, 리소스 사용량, 모든 것이 동일했습니다.
그래서 두 호출 사이에 많은 차이가 있는지 또는 내 코드로 인해 다르지 않게 실행되는지 궁금합니다. 또는 하나를 사용해야하는 곳과 다른 곳을 사용해야합니다. 또한 OpenGL은 glIsDone()
버퍼링 된 모든 명령 glFlush()
이 완료 되었는지 여부를 확인하는 것과 같은 호출이 있다고 생각했지만 (실행할 수있는 것보다 더 빨리 OpenGL에 작업을 보내지 않습니다) 그러한 기능을 찾을 수 없습니다 .
내 코드는 일반적인 게임 루프입니다.
while (running) {
process_stuff();
render_stuff();
}