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加速的虚拟机上运行?
如何将Python部署到Windows用户?
如何获得Windows上的rsync命令?
在Linux中部署C ++游戏
在Windows上部署Qt 5应用程序
在Qt wiki上有一个提到这个问题的页面,但是这对解决这个问题并没有什么帮助。
Qt 5.4.0更新:
我迄今为止的发现是:
设置QT_ANGLE_PLATFORM = warp – >创build一个没有内容的窗口。
按预期设置QT_ANGLE_PLATFORM = d3d9 – >同样的错误对话框。
按预期设置QT_ANGLE_PLATFORM = d3d11 – >同样的错误对话框。
设置QT_OPENGL = desktop =>与QT_ANGLE_PLATFORM = warp相同。
如预期的那样设置QT_OPENGL = angle – >相同的错误对话框。
设置QT_OPENGL = software + opengl32sw.dll(mesa for windows) – >不可预知:可能运行,可能会崩溃,可能会显示错误对话框。
Qt Quick 2D渲染器的更新
尽pipeMesa似乎是一个部分的解决scheme,但在Qt 5.4.0中,移植似乎经常崩溃。
另一个后备可能是Qt Quick 2D渲染器,但不幸的是这也崩溃了。
复制softwarecontext.dll到/ scenegraph +设置QMLSCENE_DEVICE = softwarecontext – > crash
一些用户体验后更新:
angular度
在一些系统上有一些渲染错误
在所有系统上都不可靠
angular度与变形
不可靠的
桌面OpenGL
默认实现的OpenGL 1.1太旧了。
即使OpenGL版本正常,也不可靠。
如果使用Qt,则会导致bug
QtQuick2dRenderer
有一些主要的渲染问题
崩溃,冻结
适用于没有硬件加速的系统
Mesa OpenGL后端
似乎目前相当可靠
一般来说很慢,在一些系统上很慢。
重部署重量
结论:这些系统还没有真正的解决scheme
更新Qt 5.5
Anno 2015:破碎的graphics驱动器仍然是坏的。
我现在的结论是:
如果可能,使用QtQuick2dRenderer。
否则使用Mesa后端。
跳过angular度,跳过桌面OpenGL,跳过扭曲。
如何获取安装目录?
Django的MysqLdb版本不匹配_MysqL版本的Ubuntu
Java对EXE的好坏主意?
有没有一种机制来升级/创buildubuntu的.deb包数据库?
什么是一些好的SSH服务器的Windows?
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加速,这些可能值得一读:
为什么Qt Creator 3.0.0欢迎模式在VM中不起作用?
https://bugreports.qt.io/browse/QTBUG-34964
此外,如果您在VirtualBox下运行多显示器Windows环境,则3D加速将被禁用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。