PySide6.QtQuick3D.QQuick3D

class QQuick3D

用于选择正确表面格式的辅助类。更多

概要

静态函数

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

在使用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来设置由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();
}
static idealSurfaceFormat([samples=-1])
Parameters:

样本 – int

Return type:

QSurfaceFormat

返回平台的理想表面格式。可选地,可以指定samples来选择用于抗锯齿的多重采样数量。