Функции запроса объявлены в glext.h
.Обратите внимание, что включение этого файла не будет магическим образом инициализировать указатели функций и не проверять доступность функций (хотя функциональность 1.5 в значительной степени вездесуща, хорошо написанная программа не может просто предполагать, что она работает).Вы должны по крайней мере правильно инициализировать указатели, иначе ваша программа будет аварийно завершать работу и гореть.
Если вы не знаете, о чем я сейчас говорю, или если вы не уверены, каким-либо образом, скачайте GLEW .Это избавит вас от большой боли.
РЕДАКТИРОВАТЬ: Более подробное объяснение того, как это работает, заключается в следующем: функциональность, которая выходит за рамки ядра 1.2 (или 1.3 в случае Linux,Я полагаю) это реализовано только через механизм указателя функции.Для этого функция типа glBeginQuery
будет иметь указатель функции typedef с именем PFNGLBEGINQUERYPROC
, который используется для инициализации статической глобальной переменной с именем glBeginQuery
.Вы, конечно, тоже можете делать что-либо еще (вы можете поместить все свои указатели функций в структуру или дать им глупые имена), но это то, что обычно делается.
Вы также должны проверить этоподдерживается правильная версия и / или расширения, в противном случае вы не знаете, реализована ли необходимая вам функциональность вообще.
GLEW делает все это за вас, поэтому она просто работает , еслиВы делаете:
#include <GL/glew.h>
...
if (glewInit() != GLEW_OK)
fail_with_error();
Sidenote: Вы можете иметь glext.h
генерировать прототипы, задав GL_GLEXT_PROTOTYPES
, но это не очень полезно, потому что это заставит компоновщика жаловаться напропущенный символ (на самом деле, мне всегда было интересно, почему он вообще существует).