Зависит от того, что создает ваш контекст OpenGL.
Если вы используете GLFW (что я искренне рекомендую для автономных оконных приложений OGL), то вы можете сделать это перед созданием окна:
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR,3);
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR,1);
glfwOpenWindowHint(GLFW_OPENGL_PROFILE,GLFW_OPENGL_CORE_PROFILE);
// the last line shouldn't be necessary
// as you request a specific GL context version -
// - at least my ATI will then default to core profile
Обратите внимание: если вы запрашиваете контекст GL версии до 3.0 на современном оборудовании / драйверах, вы, скорее всего, получите новейший контекст в режиме совместимости. Проверьте, что ваш графический процессор возвращает с glGetString(GL_VERSION)
, чтобы убедиться.
Если вы используете другой API для создания контекста OpenGL, обратитесь к его справочному руководству за аналогичными функциями.
КСТАТИ:
Я считаю, что невозможно получить ошибку во время компиляции - ваш компилятор не может знать, какой контекст OpenGL вы получите после вашего запроса (если есть). Правильный способ убедиться, что вы не используете устаревшую функциональность, - это тестирование на glGetError()
.
Кроме того, я рекомендую использовать оболочку расширения gl3w
, если вы компилируете для Windows.