我想在我的程序中使用Qt Quick 2.x,但我无法使用OpenGL> 2.0
我有main.qml
:
/* imports */
Window {
...
Scene {
...
}
...
}
在Scene
我正在使用OpenGL> 2.0所以我的着色器不起作用。
我尝试在main.cpp中添加此行qobject_cast<QQuickWindow*>(engine.rootObjects().first())->setFormat(format_3_3);
,但这没有帮助。
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QSurfaceFormat format_3_3;
format_3_3.setMajorVersion(3);
format_3_3.setMinorVersion(3);
format_3_3.setProfile(QSurfaceFormat::CompatibilityProfile);
qmlRegisterType<Scene>("SceneGL", 1, 0, "Scene");
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
qobject_cast<QQuickWindow*>(engine.rootObjects().first())->setFormat(format_3_3);
return app.exec();
}
我的Scene
课程:
class Scene : public QQuickItem
{
...
}
我找到了一个解决方案here (47 minute),但是没有源代码我无法看到使用相同技术的完整图片。
我该如何解决这个问题?