В какой библиотеке Windows определяется glCreateProgramObjectARB? - PullRequest
2 голосов
/ 18 марта 2011

Я пытаюсь сделать некоторые шейдерные программы для Windows.Весь код, который я смог найти в Интернете, говорит, что вы должны использовать wglGetProcAddress, чтобы выяснить, где находятся эти функции, но я не уверен, с какой библиотекой ссылаться.

Ответы [ 2 ]

3 голосов
/ 19 марта 2011

Ответ Бена Фойгта почти правильный, с двумя исключениями:

  • Все функциональные возможности OpenGL 1.0 и 1.1 включены в opengl32.lib, только 1.3 и выше, и все расширения должны загружаться динамически.
  • WGL гарантирует, что все контексты, использующие один и тот же формат пикселей, имеют одинаковые указатели функций. Это важная деталь, так как в противном случае любое приложение, использующее OpenGL 3.x / 4.x или мультисэмплинг, обязательно будет повреждено.

Однако, короче, забудь обо всем этом, бла-бла. Скачайте GLEW и сделайте за 5 минут. Это просто работает, и вам не нужно заботиться о мелких деталях реализации. Вызовите одну функцию init при запуске программы, и все хорошо.

2 голосов
/ 18 марта 2011

Вы ссылаетесь на opengl32.lib, чтобы получить wglGetProcAddress. Все остальное должно быть динамически получено через wglGetProcAddress после того, как вы сделали контекст текущим, поскольку разные контексты могут использовать разные реализации различных функций.

Загрузчик расширений, такой как GLee или GLEW, может сделать детали указателя функции за вас, но вам все равно нужно связать opengl32.lib.

...