openGL之API学习(一五七)glGetError

    科技2022-07-11  100

    这里通过循环方式设置错误标志为GL_NO_ERROR不起作用?????(需要执行makecurrent)

    GLenum glGetError(void);

    glGetError返回错误标志的值。每个可检测的错误都分配有数字代码和符号名称。发生错误时,错误标志将设置为相应的错误代码值。在调用glGetError(返回错误代码)之前,不会记录其他错误,并将标志重置为GL_NO_ERROR。如果对glGetError的调用返回GL_NO_ERROR,则自上次调用glGetError或自GL初始化以来,没有可检测到的错误。

        为了允许分布式实现,可能存在多个错误标志。如果任何单个错误标志记录了错误,则返回该标志的值,并在调用glGetError时将该标志重置为GL_NO_ERROR。如果多个标志记录了错误,glGetError将返回并清除任意错误标志值。因此,如果要重置所有错误标志,则应始终在循环中调用glGetError,直到它返回GL_NO_ERROR。

        初始情况下,所有错误标志都设置为GL_NO_ERROR。

    目前定义了以下错误:

    GL_NO_ERROR (0)

        没有记录错误。 此符号常量的值保证为0。

    GL_INVALID_ENUM    (1280)

        为枚举参数指定了不可接受的值。 违规命令被忽略,除了设置错误标志之外没有其他副作用。

    GL_INVALID_VALUE    (1281)

        数字参数超出范围。 违规命令被忽略,除了设置错误标志之外没有其他副作用。

    GL_INVALID_OPERATION    (1282)

        当前状态下不允许指定的操作。 违规命令被忽略,除了设置错误标志之外没有其他副作用。

    GL_INVALID_FRAMEBUFFER_OPERATION    (1286)

        该命令试图渲染到帧缓冲区或从帧缓冲区读取,而当前绑定的帧缓冲区不是帧缓冲区完成状态(即glCheckFramebufferStatus的返回值不是GL_FRAMEBUFFER_COMPLETE)。 违规命令被忽略,除了设置错误标志之外没有其他副作用。

    GL_OUT_OF_MEMORY    (1285)

        没有足够的内存来执行命令。 在记录此错误之后,GL的状态是未定义的,除了错误标志的状态。

    设置错误标志时,仅当GL_OUT_OF_MEMORY发生时,GL操作的结果才是未定义的。 在所有其他情况下,生成错误的命令将被忽略,并且不会影响GL状态或帧缓冲区内容。 如果generate命令返回一个值,则返回0。

     

     

     

     

    Processed: 0.026, SQL: 8