2009-07-22 2 views
1

질문에. 가장 좋은 예는 glSelectBuffer 함수입니다. 내가 init 함수에서 한 번만 호출 할 수 있는지 또는 glRenderMode (GL_SELECT)를 수행하기 전에 매번 호출해야 하는지를 알고 싶습니다. 그러나 일반적으로 프로그램 시작시 한 번만 함수를 호출 할 수 있는지 또는 모든 프레임을 호출해야하는지 궁금해하는 경우가 많습니다.모든 프레임에서 호출해야하는 OpenGL 함수와 한 번만 호출 할 수있는 OpenGL 함수를 어떻게 알 수 있습니까?

나는 OpenGL이 주 엔진이라고 알고 있지만, 나에게는 어떤 것들은 주에 있고 다른 것들은 그렇지 않은 것 같다. 그리고 예, 제가 프로그램에서 나중에 무언가를 수정할 때 OpenGL이 상태 엔진이기 때문에 매번 루프가 시작될 때 첫 번째 값으로 재설정해야 할 것입니다. 그건 내가 찾는 대답이 아니야.

다른 점이 있으면 혼란스럽고 그런 문제가 없다면 glSelectBuffer를 호출 할 수 있는지 또는 매번 호출해야하는지에 대한 하위 질문에 대답하십시오.

답변

2

매번 직접 렌더링 호출 만 호출해야합니다. (glClear, glBegin - glVertex - glEnd, e.t.c) 상태 수정 호출은 프레임 렌더링 프로세스의 다른 지점에서 다른 상태로 설정하기 때문에 모든 프레임을 호출해야하는 경우가 있습니다.

이것은 glRenderMode의 경우이기도합니다. GL_SELECT와 다른 모드를 계속해서 전환하고 싶습니다.

EDIT : 죄송합니다. glSelectBuffer의 경우에도 마찬가지입니다. GL_SELECT 모드를 종료하는 맨 페이지에 따라 자동으로 버퍼 포인터가 재설정됩니다.

관련 문제