QOpenGLDebugMessage 类

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

头文件 #include <QOpenGLDebugMessage>
CMakefind_package(Qt6 REQUIRED COMPONENTS OpenGL)
target_link_libraries(mytarget PRIVATE Qt6::OpenGL)
qmakeQT += opengl

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

公共类型

flags严重性
enum严重性 { InvalidSeverity, HighSeverity, MediumSeverity, LowSeverity, NotificationSeverity, AnySeverity }
enum { InvalidSource, APISource, WindowSystemSource, ShaderCompilerSource, ThirdPartySource, …, AnySource }
flags
enum类型 { InvalidType, ErrorType, DeprecatedBehaviorType, UndefinedBehaviorType, PortabilityType, …, AnyType }
flags类型

公共函数

QOpenGLDebugMessage()
QOpenGLDebugMessage(const QOpenGLDebugMessage &debugMessage)
~QOpenGLDebugMessage()
GLuintid() const
QString消息() const
QOpenGLDebugMessage::Severity严重性() const
QOpenGLDebugMessage::Source() const
void交换(QOpenGLDebugMessage &debugMessage)
QOpenGLDebugMessage::Type类型() const
bool不等(const QOpenGLDebugMessage &debugMessage) const
QOpenGLDebugMessage &赋值(const QOpenGLDebugMessage &debugMessage)
QOpenGLDebugMessage &赋值(QOpenGLDebugMessage &&debugMessage)
bool等于(const QOpenGLDebugMessage &debugMessage) const

静态公共成员

QOpenGLDebugMessagecreateApplicationMessage(const QString &text, GLuint id = 0, QOpenGLDebugMessage::Severity severity = NotificationSeverity, QOpenGLDebugMessage::Type type = OtherType)
QOpenGLDebugMessagecreateThirdPartyMessage(const QString &text, GLuint id = 0, QOpenGLDebugMessage::Severity severity = NotificationSeverity, QOpenGLDebugMessage::Type type = OtherType)
QDebug操作符 <<(QDebug debug, QOpenGLDebugMessage::源 source)
QDebug操作符 <<(QDebug debug, QOpenGLDebugMessage::类型 type)
QDebug操作符 <<(QDebug debug, QOpenGLDebugMessage::严重性 severity)
QDebug操作符 <<(QDebug debug, const QOpenGLDebugMessage &message)

详细描述

调试消息通常由OpenGL服务器创建,然后由OpenGL客户端(从OpenGL内部调试日志中或实时记录)读取。调试消息有一个文本表示、一个厂家特定的数字ID、一个来源、一个类型和一个严重性。

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

另请参见QOpenGLDebugLogger.

成员类型文档

枚举 QOpenGLDebugMessage::严重性
标志 QOpenGLDebugMessage::严重性

严重性枚举定义了调试消息的严重性。

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

严重性类型是QFlags的别名。它存储严重性值的OR组合。

枚举 QOpenGLDebugMessage::来源
标志 QOpenGLDebugMessage::来源

来源枚举定义了调试消息的来源。

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

来源类型是QFlags的别名。它存储来源值的OR组合。

枚举 QOpenGLDebugMessage::类型
标志 QOpenGLDebugMessage::类型

类型枚举定义了调试消息的类型。

常量描述
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> 的别名。它存储了 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,严重性为 severity,类型为 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、severity 作为严重性以及 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 &debugMessage)

将信息 debugMessage 与此消息交换。此操作非常快速且从不失败。

QOpenGLDebugMessage::Type QOpenGLDebugMessage::type() const

返回调试信息的类型。

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

如果此消息与 debugMessage 不同,则返回 true,否则返回 false。

另请参阅 operator==

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

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

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

debugMessage 移动赋值给此对象。

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

如果此调试信息与 debugMessage 相等,则返回 true,否则返回 false。两个调试信息相等当且仅当它们具有相同的文本信息、相同的 ID、相同的来源、相同的数据类型和相同的严重性。

另请参阅 operator!=

相关非成员函数

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

将来源 source 写入调试对象 debug,用于调试目的。

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

将类型 type 写入调试对象 debug,以供调试使用。

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

将严重性 severity 写入调试对象 debug,以供调试使用。

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

将消息 message 写入调试对象 debug,以供调试使用。

© 2024 The Qt Company Ltd. 本处包含的文档贡献归各自所有者所有。提供的文档根据 Free Software Foundation 发布的 GNU Free Documentation License 版本 1.3 的条款进行许可。Qt 及相关标志是 The Qt Company Ltd. 在芬兰和/或其他国家的商标。所有其他商标均为各自所有者的财产。