关于 Qt、UWP、OpenGL (ES) 和 ANGLE 的问题

问题描述

我有一些关于 Qt、通用 Windows 平台 UWP、OpenGL (ES) 和 ANGLE 的问题:

如何使用 3d 应用程序,例如标准的 Qt 立方体示例:

https://doc.qt.io/qt-5/qtopengl-cube-example.html

通常与 UWP 兼容?

当只是构建(例如使用 QtCreator)并运行上面提到的 Qt 标准多维数据集示例时,我得到以下信息:

qt.winrtrunner.app: QEGLPlatformContext: Failed to create context: 3006
qt.winrtrunner.app: qopenglwidget: Failed to create context
qt.winrtrunner.app: QEGLPlatformContext: eglMakeCurrent Failed: 3009
qt.winrtrunner.app: composeAndFlush: makeCurrent() Failed

我在 Windows 10 上将 Qt 5.14.2 用于 UWP 64 位 (MSVC 2017) 和 QtCreator 4.11.1。

为了比较:在非 UWP 上(例如 QtCreator 中的配置文件桌面 Qt 5.14.2 MSVC2017 64 位),它可以工作。

经过一番搜索,我发现通过添加这些行:

QSurfaceFormat format;
format.setDepthBufferSize(24);
format.setSamples(4);
format.setStencilBufferSize(8);
format.setVersion(3,0);
QSurfaceFormat::setDefaultFormat(format);

显示 MainWindow 之前,上下文创建错误消失。

但是,一个新的错误出现了:

qopenglwidget: Failed to make context current

这个错误究竟意味着什么?以及图形渲染(由“ANGLE”从OpenGL ES翻译成DirectX)与UWP的沙箱之间的联动如何?

感谢和问候

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)