Can I make opengl extension pointers global?에 대한 후속 작업으로 OpenGL 함수 포인터 전역 변수를 작성하는 방법에 대해 질문했습니다.Glew와 다중 OpenGL 컨텍스트 (작동합니까?)
Windows에서 함수 포인터는 하나의 단일 OpenGL 컨텍스트에서만 유효하다는 것이 지적되었습니다. 나는 그것을 위해 간단히 로더 라이브러리를 사용하기로 결정했다.
내가 모두 OpenGL을 웹 사이트에 추천 glew 및 gl3w의 구현을 검토 한 결과, 그 중 둘은 단순히 전역 변수로 함수 포인터를 덤프하는 것 그리고 당신이 하나 이상있는 경우 그렇게 작동하지 않습니다 프로세스에서 윈도우/오픈 GL 컨텍스트.
여기에 뭔가가 누락되었거나 프로세스에서 OpenGL을 사용하는 창이 둘 이상일 경우이 라이브러리를 사용하지 않을 수 있습니까?
GLEW MX를 사용하십시오. GLFW와 함께 사용하는 방법에 대한 자습서 : https://blog.gvnott.com/2013/05/18/tutorial-multiple-windows-with-glfw3-and-glew-mx/ – Mars
@Mars : MX를 중단했습니다. [지난 달 GLEW 2.0.0에서] (http://glew.sourceforge.net/log.html). – genpfault
2 개의 윈도우/컨텍스트가 반드시 2 개의 다른 구현 일 필요는 없습니다. 동일한 하드웨어에서 실행중인 경우 확장 프로그램의 절차가 동일한 장소로 이동 될 가능성이 큽니다. 이 문제에 정말로 관심이 있다면 각각의 컨텍스트에 하나의 스레드를 할당하고 스레드 로컬 저장소를 사용하여 함수 포인터를 저장할 수 있습니다. 실제로 WGL 컨텍스트가 어떻게 작동하는지 효과적으로 나타냅니다. –