【发布时间】:2017-04-22 15:29:41
【问题描述】:
Qt 可以通过多种方式使用 OpenGL:桌面(本机)、ANGLE、ES……现在还有可以在运行时选择的“动态”。在一个应用程序中,有没有一种方法可以检测出哪个正在使用?在 C++ 中还是在 QML 中?
例如相当于global declarations 的东西,可以让您检测操作系统
【问题讨论】:
-
glGetString(GL_VERSION)? -
一般来说,当您明确不关心时,您会使用“动态”。也就是说,您正在写 ANGLE 和桌面 GL 之间的最低公分母。那么为什么你需要问这个问题呢?
-
Intel 通常表示“升级驱动程序”。您可以通过多种方式确定您获得的上下文版本:前面提到的
GL_VERSION;在 Qt Quick 本身中使用OpenGLInfo;使用QOpenGLContext::openGLModuleType()。 -
另请参阅此处了解说明以及如何根据 GPU 为 ANGLE/OpenGL 使用黑名单:doc.qt.io/qt-5/…
-
是否有强制在所有 Windows 设备上使用 ANGLE 的全局方法?您可以仅使用 ANGLE 支持重新构建 Qt,或者如果您想使用动态构建,请设置
Qt::AA_UseOpenGLES在创建 Q(Gui)Application 之前。