OpenGL渲染到QML项目



我有一个包含QML项目布局的QML文件,现在我希望其中一个项目是QGLWidget。例如,我想渲染到一个特定的QML项目。

有人知道怎么做吗?

我认为最简单的方法是为QML提供一个用c++实现的新的自定义组件。我找不到准备好的东西。

你可以子类化QDeclarativeItem并在使用QPainter::beginNative()函数后在paint函数中实现你的OpenGL代码。之后,您可以通过这种方式将新的自定义项"导出"到QML。这很简单,应该可以工作,但是您必须将QDeclarativeView的视口设置为QGLWidget,如下所示:

QDeclarativeView view;
// This is needed because OpenGL viewport doesn't support partial updates.
view.setViewportUpdateMode(QGraphicsView::FullViewportUpdateMode);
view.setViewport(new QGLWidget);

,否则你将不得不在整个应用程序中使用opengl图形系统。另一种方法是使用QML/3D。

相关内容

  • 没有找到相关文章

最新更新