QQuick3D 类
选择正确表面格式的辅助类。 更多...
头文件 | #include <QQuick3D> |
静态公共成员
QSurfaceFormat | idealSurfaceFormat(int samples = -1) |
详细描述
当使用 Qt Quick 3D 与 OpenGL 时,在初始化 Qt Quick 时定义使用哪种 表面格式 需要采取额外步骤。这是因为当 Qt Quick 意识到正在使用 3D 内容时,OpenGL 上下文和窗口表面已经初始化。因此,提供了这个辅助类来从 Qt Quick 3D 获取期望的表面格式,以便在初始化之前将其设置为 Qt Quick 的默认表面。
如果在使用任何其他渲染后端而不是 OpenGL 时运行此辅助类,则仅返回带有所请求样本数的当前默认 QSurfaceFormat 的副本。
如果在使用 OpenGL 渲染后端时运行此辅助类,则将检查足够现代的 OpenGL 版本以及在需要时检查多采样支持。通常 Qt Quick 会请求 OpenGL 2.0 或 OpenGL ES 2.0 上下文,这将在使用 Qt Quick 3D 时限制可用功能,因此需要额外步骤来请求更强大的上下文。
正确的使用模式是调用 QSurfaceFormat::setDefaultFormat 来设置 QQuick3D::idealSurfaceFormat 返回的 QSurfaceFormat。重要的是在调用此方法之前构造 QGuiApplication,但在加载 Qt Quick 应用程序内容之前。以下代码片段显示了正确的使用模式
#include <QGuiApplication> #include <QQmlApplicationEngine> #include <QtGui> #include <QtQuick3D/qquick3d.h> int main(int argc, char *argv[]) { QGuiApplication app(argc, argv); QSurfaceFormat::setDefaultFormat(QQuick3D::idealSurfaceFormat(4)); QQmlApplicationEngine engine; engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); if (engine.rootObjects().isEmpty()) return -1; return app.exec(); }
成员函数文档
[静态]
QSurfaceFormat QQuick3D::idealSurfaceFormat(int samples = -1)
返回平台的理想表面格式。可选择指定 samples 来选择抗锯齿的多样本数量。
© 2024 Qt 公司有限公司。本文件包含的文档贡献的版权归其各自的所有者。本提供的文档是根据 Free Software Foundation 发布的 GNU 自由文档许可的第 1.3 版 许可的。Qt 和相关标志是芬兰的 Qt 公司以及全球其他国家的商标。所有其他商标均为其各自所有者的财产。