Что мне нужно включить в VC2010, чтобы можно было успешно скомпилировать проект OpenGL? - PullRequest
1 голос
/ 04 марта 2012

Я использую Windows 7 и Visual Studio 2010 Express. Какой минимум заголовков и библиотек мне нужно включить в проект OpenGL, чтобы он мог компилироваться без ошибок. И я говорю о минимуме, без каких-либо дополнительных библиотек, таких как GLUT, GLFW, GLEW и т. Д.

Я подумал, что все, что мне нужно сделать, это добавить opengl32.lib в дополнительные зависимости, но похоже, что он не работает, потому что VC не может распознать некоторый синтаксис openGL, такой как "glGenBuffers ()".

Ответы [ 2 ]

0 голосов
/ 04 марта 2012

Прототипы функций, объявленные в <GL/GL.h> в системах Windows, предназначены только для версий OpenGL до 1.1 (сейчас около 20 лет). Каждая функция для расширений или версий выше этой, например glGenBuffers (которая поставлялась с 1.5), должна загружаться динамически с использованием wglGetProcAddress для получения указателя на функцию (если версия / расширение поддерживается вашим оборудованием и драйвером конечно).

Поскольку это может быть утомительной работой, есть библиотеки для автоматического управления расширениями, такие как GLEW, которые делают все это для вас и предоставляют необходимые указатели на функции в соответствующих переменных, так что вы можете напрямую использовать glGenBuffers и как обычные функции, но они нигде не объявлены в <GL/GL.h>.

Так что нет, вам ничего не нужно, кроме ссылки на opengl32.lib, чтобы успешно скомпилировать проект OpenGL в VS2010, но вам нужно либо самостоятельно управлять расширениями, когда вам нужна функциональность выше версии 1.1, либо использовать стороннюю библиотеку это делает это для вас, как GLEW.

0 голосов
/ 04 марта 2012

glGenBuffer доступно начиная с версии 1.5.Реализация Windows - 1.1.В общем, вам нужен GLEW:).

Но для OpenGL 1.1 вам просто нужно связать с opengl32.lib, как вы это сделали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...