QOpenGLDebugMessage Class

QOpenGLDebugMessage 类封装了 OpenGL 调试消息。更多

Header: #include <QOpenGLDebugMessage>
CMake: find_package(Qt6 REQUIRED COMPONENTS OpenGL)
target_link_libraries(mytarget PRIVATE Qt6::OpenGL)
qmake: QT += opengl

注意:该类中的所有函数都是可重入的

公共类型

flags Severities
enum Severity { InvalidSeverity, HighSeverity, MediumSeverity, LowSeverity, NotificationSeverity, AnySeverity }
enum Source { InvalidSource, APISource, WindowSystemSource, ShaderCompilerSource, ThirdPartySource, …, AnySource }
flags Sources
enum Type { InvalidType, ErrorType, DeprecatedBehaviorType, UndefinedBehaviorType, PortabilityType, …, AnyType }
flags Types

公共函数

QOpenGLDebugMessage()
QOpenGLDebugMessage(const QOpenGLDebugMessage &debugMessage)
~QOpenGLDebugMessage()
GLuint id() const
QString message() const
QOpenGLDebugMessage::Severity severity() const
QOpenGLDebugMessage::Source source() const
void swap(QOpenGLDebugMessage &other)
QOpenGLDebugMessage::Type type() const
bool operator!=(const QOpenGLDebugMessage &debugMessage) const
QOpenGLDebugMessage &operator=(QOpenGLDebugMessage &&debugMessage)
QOpenGLDebugMessage &operator=(const QOpenGLDebugMessage &debugMessage)
bool operator==(const QOpenGLDebugMessage &debugMessage) const

静态公共成员

QOpenGLDebugMessage createApplicationMessage(const QString &text, GLuint id = 0, QOpenGLDebugMessage::Severity severity = NotificationSeverity, QOpenGLDebugMessage::Type type = OtherType)
QOpenGLDebugMessage createThirdPartyMessage(const QString &text, GLuint id = 0, QOpenGLDebugMessage::Severity severity = NotificationSeverity, QOpenGLDebugMessage::Type type = OtherType)
QDebug operator<<(QDebug debug, QOpenGLDebugMessage::Severity severity)
QDebug operator<<(QDebug debug, QOpenGLDebugMessage::Source source)
QDebug operator<<(QDebug debug, QOpenGLDebugMessage::Type type)
QDebug operator<<(QDebug debug, const QOpenGLDebugMessage &message)

详细说明

调试信息通常由 OpenGL 服务器创建,然后由 OpenGL 客户端读取(从 OpenGL 内部调试日志或实时日志中读取)。调试信息有文本表示、特定于供应商的数字 id、来源、类型和严重程度。

应用程序或第三方库和工具包也可以在调试日志中创建和插入信息。为此,您可以使用createApplicationMessage() 或createThirdPartyMessage() 静态函数。

另请参阅 QOpenGLDebugLogger

成员类型文档

枚举 QOpenGLDebugMessage::Severity
flags QOpenGLDebugMessage::Severities

Severity 枚举定义调试信息的严重性。

常量描述
QOpenGLDebugMessage::InvalidSeverity0x00000000消息的严重性无效;这是默认构造的QOpenGLDebugMessage 对象的严重性。
QOpenGLDebugMessage::HighSeverity0x00000001信息的严重性为高。
QOpenGLDebugMessage::MediumSeverity0x00000002信息的严重性为中等。
QOpenGLDebugMessage::LowSeverity0x00000004信息严重性较低。
QOpenGLDebugMessage::NotificationSeverity0x00000008消息为通知。
QOpenGLDebugMessage::AnySeverity0xffffffff该值对应于所有可能的消息严重性的掩码。

Severities 类型是QFlags<Severity> 的类型定义。它存储 Severity 值的 OR 组合。

枚举 QOpenGLDebugMessage::Source
flags QOpenGLDebugMessage::Sources

Source 枚举定义调试信息的来源。

常量说明
QOpenGLDebugMessage::InvalidSource0x00000000消息的源无效;这是默认构造的QOpenGLDebugMessage 对象的源。
QOpenGLDebugMessage::APISource0x00000001该信息是在响应 OpenGL API 调用时生成的。
QOpenGLDebugMessage::WindowSystemSource0x00000002该信息由窗口系统生成。
QOpenGLDebugMessage::ShaderCompilerSource0x00000004该信息由着色器编译器生成。
QOpenGLDebugMessage::ThirdPartySource0x00000008消息由第三方生成,例如 OpenGL 框架或调试工具包。
QOpenGLDebugMessage::ApplicationSource0x00000010信息由应用程序本身生成。
QOpenGLDebugMessage::OtherSource0x00000020该信息由未包含在此枚举中的源生成。
QOpenGLDebugMessage::AnySource0xffffffff该值对应于所有可能的消息源的掩码。

Sources 类型是QFlags<Source> 的类型定义。它存储源值的 OR 组合。

枚举 QOpenGLDebugMessage::Type
flags QOpenGLDebugMessage::Types

类型枚举定义调试信息的类型。

常量描述
QOpenGLDebugMessage::InvalidType0x00000000消息类型无效;这是默认构造的QOpenGLDebugMessage 对象的类型。
QOpenGLDebugMessage::ErrorType0x00000001信息表示错误。
QOpenGLDebugMessage::DeprecatedBehaviorType0x00000002该信息表示使用了过时的行为。
QOpenGLDebugMessage::UndefinedBehaviorType0x00000004该信息表示使用了未定义的行为。
QOpenGLDebugMessage::PortabilityType0x00000008该信息表示使用了供应商特定的行为,可能会引起可移植性问题。
QOpenGLDebugMessage::PerformanceType0x00000010该信息代表性能问题。
QOpenGLDebugMessage::OtherType0x00000020该信息代表的类型未包含在本枚举中。
QOpenGLDebugMessage::MarkerType0x00000040该信息代表调试日志中的一个标记。
QOpenGLDebugMessage::GroupPushType0x00000080该信息代表调试组推送操作。
QOpenGLDebugMessage::GroupPopType0x00000100消息表示调试组弹出操作。
QOpenGLDebugMessage::AnyType0xffffffff该值对应于所有可能的消息类型的掩码。

Types 类型是QFlags<Type> 的类型定义。它存储类型值的 OR 组合。

成员函数文档

QOpenGLDebugMessage::QOpenGLDebugMessage()

构造一个调试信息,信息字符串为空,id 设置为 0,来源设置为InvalidSource ,类型设置为InvalidType ,严重性设置为InvalidSeverity

注意: 不应使用此构造函数创建调试信息;而应使用createApplicationMessage() 或createThirdPartyMessage() 静态函数。

另请参阅 createApplicationMessage() 和createThirdPartyMessage()。

QOpenGLDebugMessage::QOpenGLDebugMessage(const QOpenGLDebugMessage &debugMessage)

构建调试信息,作为debugMessage 的副本。

另请参见 operator=().

[noexcept] QOpenGLDebugMessage::~QOpenGLDebugMessage()

销毁此调试信息。

[static] QOpenGLDebugMessage QOpenGLDebugMessage::createApplicationMessage(const QString &text, GLuint id = 0, QOpenGLDebugMessage::Severity severity = NotificationSeverity, QOpenGLDebugMessage::Type type = OtherType)

构造并返回调试信息,其文本为text ,id 为id ,severeity 为severity ,type 为type 。信息源将设置为ApplicationSource

另请参阅 QOpenGLDebugLogger::logMessage() 和createThirdPartyMessage()。

[static] QOpenGLDebugMessage QOpenGLDebugMessage::createThirdPartyMessage(const QString &text, GLuint id = 0, QOpenGLDebugMessage::Severity severity = NotificationSeverity, QOpenGLDebugMessage::Type type = OtherType)

构造并返回调试信息,其文本为text ,id 为id ,severeity 为severity ,type 为type 。信息源将设置为ThirdPartySource

另请参阅 QOpenGLDebugLogger::logMessage() 和createApplicationMessage()。

GLuint QOpenGLDebugMessage::id() const

返回调试信息的 ID。ID 通常是针对特定供应商的。

QString QOpenGLDebugMessage::message() const

返回此调试信息包含的文本信息。

QOpenGLDebugMessage::Severity QOpenGLDebugMessage::severity() const

返回调试信息的严重程度。

QOpenGLDebugMessage::Source QOpenGLDebugMessage::source() const

返回调试信息的来源。

[noexcept] void QOpenGLDebugMessage::swap(QOpenGLDebugMessage &other)

将此信息]与other 互换。这一操作非常快速,从未出现过故障。

QOpenGLDebugMessage::Type QOpenGLDebugMessage::type() const

返回调试信息的类型。

bool QOpenGLDebugMessage::operator!=(const QOpenGLDebugMessage &debugMessage) const

如果该信息与debugMessage 不同,则返回true ,否则返回 false。

另请参阅 operator==().

[noexcept] QOpenGLDebugMessage &QOpenGLDebugMessage::operator=(QOpenGLDebugMessage &&debugMessage)

移动 - 将debugMessage 指定给此对象。

QOpenGLDebugMessage &QOpenGLDebugMessage::operator=(const QOpenGLDebugMessage &debugMessage)

将信息debugMessage 赋值给此对象,并返回该副本的引用。

bool QOpenGLDebugMessage::operator==(const QOpenGLDebugMessage &debugMessage) const

如果此调试信息等于debugMessage ,则返回true ,否则返回 false。如果两条调试信息具有相同的文本信息、相同的 id、相同的来源、相同的类型和相同的严重性,则它们是相等的。

另请参阅 operator!=() 。

相关非会员

QDebug operator<<(QDebug debug, QOpenGLDebugMessage::Severity severity)

将严重性severity 写入调试对象debug ,用于调试。

QDebug operator<<(QDebug debug, QOpenGLDebugMessage::Source source)

将源代码source 写入调试对象debug ,用于调试。

QDebug operator<<(QDebug debug, QOpenGLDebugMessage::Type type)

将类型type 写入调试对象debug ,用于调试。

QDebug operator<<(QDebug debug, const QOpenGLDebugMessage &message)

将信息message 写入调试对象debug ,用于调试。

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.