为了在 i.MX6 上运行 QT5 演示,您应该按照此链接上的说明进行操作:
该版本中的某些演示(例如 /examples/opengl/hellogl_es2)由一组出现在屏幕上的多个小部件组成。通常这些演示应该可以在 Wayland 或 X11 等窗口环境中正常运行。
在仅限 Linux 环境下,绘制到屏幕的插件称为 EGLFS。该插件有一个限制,即它在屏幕表面上一次仅支持一个小部件。那么诸如 hellogl_es2 之类的演示就*不打算*与该插件一起工作,而且它永远不会工作。
使用 EGLFS 时发现的错误包括:
这些问题可以在 Qt OpenGL 示例中看到。“hellogl_es2”和“2dpaint”似乎显示一个渲染帧然后中断——
“hellogl_es2”显示QT字和气泡,并且GUI被隐藏,而“2dpaint”仅显示没有标签的openGL版本。
看起来,当在表单上包含 QGLWidget 时,QGLWidget 可以正常工作,但表单的其余部分不会出现。我无法点击任何按钮或做任何事情。
除了这些问题之外,我还会在输出中看到一个或多个以下错误消息:
* 此插件不支持setParent!
* 此插件不支持 propagateSizeHints()
* 使用非 OpenGL 表面调用 QOpenGLContext::swapBuffers()
然而其他演示(例如 hellowindow)可以与 EGLFS 很好地配合,因为它们是单个小部件。此外,使用 qtquick 创建的所有演示都可以正常工作,因为所有可视化 QML 项目都使用场景图(一种低级、高性能渲染堆栈,与 OpenGL 紧密相关)呈现为单个小部件。这里有更好的解释: Qt5 QPainter vs. QML & Scene Graph。