2011-03-18 2 views

답변

3

벤 보이트의 대답은 두 가지 예외를 제외하고는 거의 정확 :

  • 모든 OpenGL을 1.0 및 1.1 기능은 1.3 위쪽 모두 확장 동적으로로드해야 opengl32.lib에 inlcuded입니다됩니다.
  • WGL은 동일한 픽셀 형식을 공유하는 모든 컨텍스트가 동일한 함수 포인터를 공유 함을 보장합니다. OpenGL 3.x/4.x 또는 멀티 샘플링을 사용하는 응용 프로그램은 반드시 형식이 잘못 될 수 있으므로 중요한 세부 정보입니다.

그러나 간단히 말해서이 모든 것을 잊어 버리십시오. GLEW을 다운로드하고 5 분 안에 완료하십시오. 그냥 작동하므로 사소한 구현 세부 사항에 신경 쓸 필요가 없습니다. 프로그램 시작시 하나의 init 함수를 호출하면 모든 것이 좋다.

+1

+1 GLEW를 추천합니다. 이로 인해 창에서 확장 기능을 쉽게 처리 할 수 ​​있습니다. – Thomas

+0

skt : "모든 컨텍스트에 대해 동일한 함수 포인터"에 대한 참조가 있습니까? 나는 다른 공급 업체의 비디오 카드 두 개가 있다면 다른 기능 포인터를 얻을 수 있다는 인상하에 있습니다. 사실 여러 함수 포인터 세트를 처리하지 않는 것이 내가 볼 수있는 GLEW의 유일한 이점입니다. GLee "GL Easy Extensions"는 다른 여러면에서 월등합니다. 그리고 나는 "필연적으로 기형적 인"것에 관한 부분을 이해하지 못합니다. 'wglCreateContextAttrib'를 호출 한 후에는 기존 포인터를 모두 버리고 새로운 포인터를 얻을 수 있습니다. GLEW가 실제로이 작업을 수행한다고 생각합니다. –

+0

확실 : http://msdn.microsoft.com/en-us/library/dd374386%28VS.85%29.aspx (마지막 단락) "확장 기능 주소는 각 픽셀 형식마다 고유합니다. 픽셀 형식은 동일한 확장 기능 주소를 공유합니다. " – Damon

2

opengl32.lib에 연결하면 wglGetProcAddress이됩니다. 컨텍스트를 최신으로 만든 후에 나머지는 모두 wglGetProcAddress을 통해 동적으로 가져와야합니다. 이는 다양한 컨텍스트가 다양한 기능의 다른 구현을 사용할 수 있기 때문입니다.

GLee 또는 GLEW와 같은 확장 로더는 함수 포인터 세부 사항을 수행 할 수 있지만 여전히 opengl32.lib을 연결해야합니다.

관련 문제