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


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

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

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

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

Заметка

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