Qt5可以通过使用ANGLE来使用OpenGL驱动程序或DirectX驱动程序。 由于我们不能依赖已安装的OpenGL驱动程序,因此我们需要使用ANGLE后端。 不幸的是,这并不能解决所有的部署问题,特别是在没有硬件加速的Windows虚拟机上。 在这些系统上,我们收到一条错误消息,说OpenGL上下文创build失败。
屏幕截图:无法为格式QSurfaceFormat创buildOpenGL上下文
我们正在部署所有必需的库(libEGL.dll libGLESv2.dll libeay32.dll msvcp110.dll msvcr110.dll d3dcompiler_46.dll),但我们仍然收到此错误消息。
你如何部署一个QML应用程序,需要在没有OpenGL驱动的最终用户计算机上运行,以及在没有Direct3D加速的虚拟机上运行?
在Qt wiki上有一个提到这个问题的页面,但是这对解决这个问题并没有什么帮助。
我迄今为止的发现是:
尽pipeMesa似乎是一个部分的解决scheme,但在Qt 5.4.0中,移植似乎经常崩溃。
另一个后备可能是Qt Quick 2D渲染器,但不幸的是这也崩溃了。
angular度
angular度与变形
桌面OpenGL
QtQuick2dRenderer
Mesa OpenGL后端
结论:这些系统还没有真正的解决scheme
Anno 2015:破碎的graphics驱动器仍然是坏的。
我现在的结论是:
QT 5在某些硬件配置上与opengl具有巨大的兼容性问题英特尔HD3000驱动程序和Nvidia / ATI卡的组合在Windows 10上不起作用。https://bugreports.qt.io/browse/QTBUG-42240
英特尔放弃支持这张卡,但他们的驱动程序有导致崩溃的错误。
如果你想用HD3000来支持客户,你不能依靠硬件的opengl。
在Windows下,opengl32.dll是默认的OpenGL驱动程序。 它实现了OpenGL 1.1(真正的旧版本)。 ANGLE具有OpenGL ES 2.0的基准,并且需要安装DirectX 9/11来将呼叫映射到。
所以,如果你有一个没有安装OpenGL驱动的视频卡,一个小于2.0的OpenGL驱动和/或没有安装DirectX 9/11,你的应用程序就不能工作。
关于虚拟化和3D加速,这些可能值得一读:
此外,如果您在VirtualBox下运行多显示器Windows环境,则3D加速将被禁用。