Поделиться через


Обработка ошибок (OpenGL)

Когда OpenGL обнаруживает ошибку, он записывает текущий код ошибки. Функция, вызвавшей ошибку, игнорируется, поэтому она не влияет на состояние OpenGL или на содержимое framebuffer. (Однако если записанная ошибка была GL_OUT_OF_MEMORY, результаты функции не определены.) После записи текущий код ошибки не очищается, пока вы не вызовете функцию запроса glGetError , которая возвращает текущий код ошибки.

Реализации OpenGL могут возвращать несколько текущих кодов ошибок, каждый из которых остается заданным до выполнения запроса. Функция glGetError возвращает GL_NO_ERROR после запроса всех текущих кодов ошибок или при отсутствии ошибок. Поэтому при получении кода ошибки вызывайте метод glGetError , пока не будет возвращен GL_NO_ERROR, чтобы убедиться, что обнаружены все ошибки. Список кодов ошибок см. в разделе Коды ошибок OpenGL.

С помощью функции gluErrorString GLU можно получить описательную строку, соответствующую переданному коду ошибки. Дополнительные сведения о gluErrorString см. в разделе Обработка ошибок.

Примечание

Функции GLU часто возвращают значения ошибок при обнаружении ошибки. Кроме того, библиотека OpenGL Utility определяет коды ошибок GLU_INVALID_ENUM, GLU_INVALID_VALUE и GLU_OUT_OF_MEMORY, которые имеют то же значение, что и связанные коды ошибок OpenGL.