QOpenGLDebugMessage Class
QOpenGLDebugMessage 类封装了一个 OpenGL 调试消息。更多内容...
| 头文件: | #include <QOpenGLDebugMessage> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS OpenGL) target_link_libraries(mytarget PRIVATE Qt6::OpenGL) |
| qmake: | QT += opengl |
- 所有成员的列表,包括继承的成员
- QOpenGLDebugMessage 属于“隐式共享类”和“3D 渲染”部分。
注意:该类中的所有函数均为可重入函数。
公共类型
| 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 。
成员类型文档
enum QOpenGLDebugMessage::Severity
flags QOpenGLDebugMessage::Severities
“Severity”枚举定义了调试消息的严重程度。
| 常量 | 值 | 描述 |
|---|---|---|
QOpenGLDebugMessage::InvalidSeverity | 0x00000000 | 该消息的严重性无效;这是默认构造的QOpenGLDebugMessage 对象的严重性。 |
QOpenGLDebugMessage::HighSeverity | 0x00000001 | 该消息的严重性为高。 |
QOpenGLDebugMessage::MediumSeverity | 0x00000002 | 该消息的严重程度为中等。 |
QOpenGLDebugMessage::LowSeverity | 0x00000004 | 该消息的严重程度较低。 |
QOpenGLDebugMessage::NotificationSeverity | 0x00000008 | 该消息是一条通知。 |
QOpenGLDebugMessage::AnySeverity | 0xffffffff | 该值对应于所有可能的消息严重程度的掩码。 |
“Severities”类型是QFlags<Severity> 的 typedef。它存储了 Severity 值的“或”组合。
enum QOpenGLDebugMessage::Source
flags QOpenGLDebugMessage::Sources
Source 枚举定义了调试消息的来源。
| 常量 | 值 | 描述 |
|---|---|---|
QOpenGLDebugMessage::InvalidSource | 0x00000000 | 消息的来源无效;这是默认构造的QOpenGLDebugMessage 对象的来源。 |
QOpenGLDebugMessage::APISource | 0x00000001 | 该消息是响应 OpenGL API 调用而生成的。 |
QOpenGLDebugMessage::WindowSystemSource | 0x00000002 | 该消息由窗口系统生成。 |
QOpenGLDebugMessage::ShaderCompilerSource | 0x00000004 | 该消息由着色器编译器生成。 |
QOpenGLDebugMessage::ThirdPartySource | 0x00000008 | 该消息由第三方生成,例如 OpenGL 框架或调试工具包。 |
QOpenGLDebugMessage::ApplicationSource | 0x00000010 | 该消息由应用程序本身生成。 |
QOpenGLDebugMessage::OtherSource | 0x00000020 | 该消息由未包含在此枚举中的来源生成。 |
QOpenGLDebugMessage::AnySource | 0xffffffff | 该值对应于所有可能的消息源的掩码。 |
Sources 类型是QFlags<Source> 的 typedef。它存储了 Source 值的按“或”运算组合。
enum QOpenGLDebugMessage::Type
flags QOpenGLDebugMessage::Types
Type 枚举定义了调试消息的类型。
| 常量 | 值 | 描述 |
|---|---|---|
QOpenGLDebugMessage::InvalidType | 0x00000000 | 消息的类型无效;这是默认构造的QOpenGLDebugMessage 对象的类型。 |
QOpenGLDebugMessage::ErrorType | 0x00000001 | 该消息表示一个错误。 |
QOpenGLDebugMessage::DeprecatedBehaviorType | 0x00000002 | 该消息表示使用了已弃用的行为。 |
QOpenGLDebugMessage::UndefinedBehaviorType | 0x00000004 | 该消息表示使用了未定义的行为。 |
QOpenGLDebugMessage::PortabilityType | 0x00000008 | 该消息表示使用了供应商特有的行为,这可能会引发可移植性问题。 |
QOpenGLDebugMessage::PerformanceType | 0x00000010 | 该消息表示一个性能问题。 |
QOpenGLDebugMessage::OtherType | 0x00000020 | 该消息表示一种未包含在此枚举中的类型。 |
QOpenGLDebugMessage::MarkerType | 0x00000040 | 该消息表示调试日志中的标记。 |
QOpenGLDebugMessage::GroupPushType | 0x00000080 | 该消息表示一个调试组推入操作。 |
QOpenGLDebugMessage::GroupPopType | 0x00000100 | 该消息表示一个调试组弹出操作。 |
QOpenGLDebugMessage::AnyType | 0xffffffff | 该值对应于所有可能的消息类型的掩码。 |
“Types” 类型是QFlags<Type> 的 typedef。它存储了 Type 值的或(OR)组合。
成员函数文档
QOpenGLDebugMessage::QOpenGLDebugMessage()
构建一条调试消息,其消息字符串为空,id 设为 0,source 设为InvalidSource ,type 设为InvalidType ,severity 设为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 &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 ,以供调试之用。
© 2026 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.