Windows和OpenGL的Qt C++库

14

我想在Windows上尝试使用Qt库。在他们的下载页面上,我注意到使用VS2012构建的二进制文件有两种形式,一种带OpenGL,一种不带。这两者有什么区别?在OpenGL版本中,它们是否使用了一些基于OpenGL实现的特殊API,还是Qt的所有渲染都依赖于OpenGL? 另外,是否有使用DirectX的Qt版本?

3个回答

9

@Raman:OpenGL变体与Qt4一样,使用桌面OpenGL版本。

非OpenGL变体使用Angle,需要将其安装在DirectX SDK旁边才能使其正常工作。Angle是DirectX和OpenGLES API之间的适配器。只有后者直接受到Qt支持,但不幸的是,DirectX驱动程序在Windows上的表现往往比OpenGL(ES)更好。目前没有计划在Qt内部支持DirectX后端,因此我们只能使用Google的Angle来解决这个问题。

至于提供额外的功能,最近在邮件列表上讨论了这个问题,认为这个决定不应该在构建时进行,而应该在运行时进行。然而,目前还没有人站出来解决这个问题。希望这很快就会改变。它像其他问题一样,给最终用户带来了困惑,所以不要感到孤单。 ;-)

希望这个解释有所帮助。


1
那么,Qt的OpenGL版本使用的OpenGL驱动程序在Windows上并不是很好。Qt的非OpenGL版本间接依赖于DirectX,但这仅仅是因为它使用了一个OpenGL->DirectX仿真库。这样说对吗? - Raman Sharma

2

DirectX通过基于ANGLE的库得到支持。


我理解了,但我的问题是在这个链接上:http://qt-project.org/downloads,Qt 5.1.0 for Windows 64-bit (VS 2012, 525 MB)和Qt 5.1.0 for Windows 64-bit (VS 2012, OpenGL, 522 MB)之间有什么区别? - Raman Sharma

1
注意,自Qt 5.5起,您可以从Qt网站下载的预编译二进制文件已配置为使用-opengl动态选项。这就是@lpapp上面所说的。现在,Qt默认在运行时选择本地OpenGL驱动程序或ANGLE。
现在,Qt在内部使用OpenGL进行渲染,除非您另外指定。您还可以使用Qt的QOpenGLxxx函数和类呈现自定义的OpenGL内容。 这里提供了有关Qt和OpenGL的简单介绍,涵盖了此内容和更多内容。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接