我有一个使用Open GL绘制的Qt应用程序。在某些时候,我使用与QQuickWindow
相关联的QQuickRenderControl
将QML场景绘制到纹理中,以便稍后在最终图像中进行构图。
现在,我考虑将OpenGL移植到Vulkan,我不确定是否可以对此QML层执行相同操作。
阅读Qt docs我找到了
QQuickWindow使用OpenGL 之上的场景图进行渲染。
您认为可以将它移植到Vulkan吗?也许压倒QQuickWindow
和QQuickRenderControl
?我不是Qt专家,所以也许有人可以让我更好地了解这个问题。
答案 0 :(得分:1)
截至2019年6月和Qt 5.13,Qt Quick 2支持以下后端:
但是,只有OpenGL和OpenGL ES才能完全发挥作用。例如,某些效果(如粒子)不适用于其他banckends。
有关如何选择后端以及每个后端有哪些限制的更多信息,我建议阅读文档:https://doc.qt.io/qt-5/qtquick-visualcanvas-adaptations.html
特别是关于Vulkan,自Qt 5.10起,Qt为其添加了支持。 但是,支持仍然非常有限,并且不包括Qt Quick。
改变将在未来出现;引用Qt开发邮件列表中的email:
针对Vulkan,Metal和D3D11的Qt Quick的早期预览可能已经在Qt 5.14中发布,然后在5.15及更高版本中进行了扩展,最终目标是6.0。
因此,当Qt 6即将发布时,应该可以使用Vulkan渲染Qt Quick。 Qt 6的计划发布日期是当前到2020年11月。与此同时,可能会从Qt 5.14开始提供技术预览。
对于Qt 6之前的任何事情,我都不会太乐观,因为(1)仅仅是技术预览,而(2)据我所知,当前的官方Qt二进制文件根本没有与Vulkan链接,您需要构建如果您想使用Vulkan,请从源代码获取Qt。