OpenGL 调试 错误回调函数的 ID 参数是什么?

OpenGL debugging what is the ID parameter for the error callback function?

本文关键字:ID 参数 是什么 函数 调试 错误 回调 OpenGL      更新时间:2023-10-16

错误回调函数的文档指出:

每次生成调试消息时,调试回调函数都将使用与消息关联的sourcetypeidseverity调用,length设置为字符串位于message指向的数组中的调试消息的长度。userParam将设置为在userParam参数中传递给最近对glDebugMessageCallback调用的值。

源是指枚举器文档中所述的源的类型。

类型是指触发回调的事件的类型。

严重性是指错误的严重性。

长度是消息字符串的大小(以字节为单位)。

消息是指向消息字符串的指针。

UserParam 是用户定义的一些指针,可以是函数、结构、null、内存映射外围设备......

ID到底是什么?冒犯的对象?(着色器、程序、纹理)

窗口 ID?当前 OpenGL 上下文的 id?

调试输出中的所有 OpenGL 错误都有一个 ID。这在消息类型和严重性范围内用于识别特定错误。对于系统生成的错误,ID 由实现定义。但是,如果错误来自标准的OpenGL错误,那么它通常是枚举器错误类别(GL_INVALID_ENUMGL_INVALID_OPERATION等)。可以为用户创建的消息指定自己的 ID。

ID 的要点是能够识别特定的错误消息,从而允许您使用glDebugMessageControl等接口来剔除该特定错误。

它是消息的标识符,详见相关函数glDebugMessageInsert

id可用于应用程序定义的用途,可以是任何值。将记录此值并用于标识消息。