(OpenGL) 的错误处理

当 OpenGL 检测到错误时,它会记录当前错误代码。 导致错误的函数将被忽略,因此它对 OpenGL 状态或 framebuffer 内容没有影响。 (如果记录的错误GL_OUT_OF_MEMORY,则函数的结果未定义。) 记录后,当前错误代码不会清除,直到调用 glGetError 查询函数,这将返回当前错误代码。

OpenGL 的实现可能会返回多个当前错误代码,在查询之前,每个代码都会保持设置状态。 查询所有当前错误代码或没有错误后, glGetError 函数将返回GL_NO_ERROR。 因此,如果获取错误代码,请调用 glGetError ,直到返回GL_NO_ERROR以确保已发现所有错误。 有关错误代码的列表,请参阅 OpenGL 错误代码

可以使用 gluErrorString GLU 函数获取与传入的错误代码对应的描述性字符串。 有关 gluErrorString 的详细信息,请参阅 处理错误

注意

如果检测到错误,GLU 函数通常会返回错误值。 此外,OpenGL 实用工具库定义了错误代码GLU_INVALID_ENUM、GLU_INVALID_VALUE和GLU_OUT_OF_MEMORY,它们的含义与相关的 OpenGL 错误代码相同。