Переход от стационарного трубопровода к современному OpenGL - PullRequest
3 голосов
/ 24 августа 2011

Я сделал несколько простых OpenGL (старый фиксированный конвейер, без шейдеров и т. Д.) И хочу начать серьезное «современное» программирование OpenGL.(Должен компилироваться в Windows и Linux)

У меня есть несколько вопросов.

1) В Windows "gl.h" не имеет объявленных вызовов API, связанных с OpenGL2.0 + (например,glShaderSource ()).Как я могу получить доступ к этим вызовам API?Я не хочу устанавливать специфичные для видеокарты заголовки, поскольку хочу скомпилировать это приложение на других компьютерах.

2) В Linux, если я установлю библиотеку Mesa, могу ли я получить доступ к функциям API OpenGL2 +?

1 Ответ

7 голосов
/ 24 августа 2011

У некоторых существует давнее убеждение (из-за медлительности обновлений версий GL в конце 90-х / начале 00-х), что для получения основных вызовов OpenGL нужно было просто включить заголовок и библиотеку.То, что указатели на функцию загрузки вручную были тем, что вы делали для расширений, для «специфической для видеокарты» функции.Это не так.

Вы должны всегда использовать библиотеку загрузки расширений , чтобы получить доступ к функциям OpenGL, будь то ядро ​​или расширение.GLEW довольно неплох, и GL3W неплох, если вы можете жить с его ограничениями (только 3.0 ядра или лучше).

...