QOpenGLVersionFunctionsFactory 类
提供访问指定版本和配置文件的 OpenGL 函数。 更多...
头文件 | #include <QOpenGLVersionFunctionsFactory> |
CMake | find_package(Qt6 REQUIRED COMPONENTS OpenGL) target_link_libraries(mytarget PRIVATE Qt6::OpenGL) |
qmake | QT += opengl |
自 | Qt 6.0 |
静态公有成员
QAbstractOpenGLFunctions * | get(const QOpenGLVersionProfile &versionProfile = QOpenGLVersionProfile(), QOpenGLContext *context = nullptr) |
类型 * | get(QOpenGLContext *context = nullptr) |
成员函数文档
[static]
QAbstractOpenGLFunctions *QOpenGLVersionFunctionsFactory::get(const QOpenGLVersionProfile &versionProfile = QOpenGLVersionProfile(), QOpenGLContext *context = nullptr)
返回一个指向对象的指针,该对象提供访问 版本配置文件 的所有 上下文 函数。只要 上下文 是当前的,就没有必要调用 QAbstractOpenGLFunctions::initializeOpenGLFunctions()。当 上下文 不是当前时,也可以调用此函数,但在此情况下,调用者的责任是在之后调用 QAbstractOpenGLFunctions::initializeOpenGLFunctions() 确保适当的初始化。
通常,人们会使用此函数的模板版本,以便自动将结果转换为正确的类型。
[static]
template <typename TYPE> TYPE *QOpenGLVersionFunctionsFactory::get(QOpenGLContext *context = nullptr)
此函数重载 get()。
返回一个指向对象的指针,该对象提供访问本 上下文 版本和配置文件的所有函数。只要 上下文 是当前的,就没有必要调用 QAbstractOpenGLFunctions::initializeOpenGLFunctions()。当 上下文 不是当前时,也可以调用此函数,但在此情况下,调用者的责任是在之后调用 QAbstractOpenGLFunctions::initializeOpenGLFunctions() 确保适当的初始化。
通常,人们会使用此函数的模板版本,以便自动将结果转换为正确的类型。
auto funcs = QOpenGLVersionFunctionsFactory::get<QOpenGLFunctions_3_3_Core>(context); if (!funcs) { qFatal("Could not obtain required OpenGL context version"); }
可以请求一个与上下文创建的版本和配置文件不同的函数对象。为此,可以使用指定模板参数为所需函数对象类型的函数模板版本,或者通过将 QOpenGLVersionProfile 对象作为参数传递给非模板函数来实现。
请注意,对其他版本或配置文件功能的对象请求可能会失败,并且在这种情况下将返回 nullptr
。当请求的功能不在此上下文的版本或配置文件中时,创建功能对象的请求可能会失败。例如:
- 请求3.3核心配置文件功能对象将会成功。
- 请求3.3兼容性配置文件功能对象将会失败。我们将无法解析弃用功能。
- 请求4.3核心配置文件功能对象将会失败。我们将无法解析4.0-4.3版本中引入的新核心功能。
- 请求3.1功能对象将会成功。3.1中没有3.3核心中没有的功能。
请注意,如果通过此方法创建功能对象,则 QOpenGLContext 保留了对象的所有权。这是为了允许对象被缓存和共享。
© 2024 Qt公司。本指南中的文献贡献权归各自所有者所有。本指南提供的文献受 GNU自由文献许可1.3版本 的条款约束,由自由软件基金会发布。Qt及其相关标志是芬兰和/或全世界 Qt公司的商标。所有其他商标均为各自所有者的财产。