安装指南
Qt 快速 2D 绘制器的构建复杂,因为 Qt 快速 2 总是要求 OpenGL 支持,无论是否使用。即使目标系统不支持它,您也需要构建支持 OpenGL 的 Qt。如果您已经有一个支持 OpenGL 的 Qt 构建版本,您可以跳转到 构建 Qt 快速 2D 绘制器。
提供 OpenGL 依赖性
Qt 快速 2D 绘制器的工作方式是使用 QPainter 绘制 Qt 快速 2 场景图,而不是通过 OpenGL API 使用硬件加速。然而,Qt 快速 2 还是假设 OpenGL 总是可用的。有了 Qt 快速 2D 绘制器,我们可以避免调用 OpenGL,但这并不改变 QtQuick 2 需要在构建时提供 OpenGL 开发头文件,并且在运行时会链接到 OpenGL 库的事实。
解决方案是提供仿制 OpenGL 库和开发头文件,以便构建针对 Qt 的库。这样,您可以构建支持虚拟 OpenGL 的 Qt,并访问 QtQuick 2 API。只要您使用一个不调用 EGL 或 OpenGL 命令的平台插件,并且避免使用直接访问 OpenGL 的 API,您使用 Qt 快速 2D 绘制器应该不会有问题。
如何使用 OpenGL 仿制库
OpenGL 仿制库提供包含 OpenGL 和 EGL 符号的头文件和共享对象文件。头文件被复制到您的 INCLUDE 路径中,共享对象文件被复制到您的 LIB 路径中,包括在 sysroot 中以及设备上分发的目标图像中。生成的库包含所有需要的符号,就像您有 OpenGL 和 EGL 的支持一样。重要的是要确保您在应用程序中不调用这些符号。
先决条件
需要三个元素
- 工具链来交叉编译针对您的设备的代码。
- 包含开发头文件和共享对象的 sysroot,当构建应用程序时可以链接到它们。
- 打算部署到您的设备的靶图像。
如何构建 OpenGL 仿制库
通过定义您的编译器和 sysroot 所在位置来设置您的构建环境
export CC=/opt/arm-toolchain/usr/bin/arm-linux-gnueabi-g++ export SYSROOT=/opt/device-name/sysroot/
在客户仿制目录内运行构建脚本
cd client-dummy ./build-gcc.sh
这将生成两个文件: libEGL.so
,libGLESv2.so
文件安装
将包含文件夹复制到您的 sysroot 中 /usr/include 文件夹。这将安装 OpenGL/EGL 头文件
cp -r 3rdparty/include/* ${SYSROOT}/usr/include/
将 libEGL.so
和 libGLESv2.so
复制到您的 sysroot 中 /usr/lib 文件夹
cp src/lib*.so ${SYSROOT}/usr/lib/
也将 libEGL.so
和 libGLESv2.so
库复制到目标设备图像中。
构建 Qt
在配置 Qt 时,请确保将 -opengl es2
追加到您的配置参数。
构建 Qt 快速 2D 绘制器
像其他Qt模块一样构建Qt Quick 2D渲染器
qmake make make install
部署
现在,当您将Qt构建部署到设备时,它将依赖于虚拟库 libEGL.so
和 libGLESv2.so
,但只要您使用Qt Quick 2D渲染器插件,您就能在使用Qt Quick时无需实际调用OpenGL或EGL。
©2016 Qt公司有限公司。本文件中包含的文档贡献归其各自所有者所有。本文件提供的文档是在GNU自由文档许可证(版本1.3)的条款下提供的,该许可证由自由软件基金会发布。Qt及其相应标志是Qt公司有限公司在芬兰和/或其他国家/地区的商标。所有其他商标均归其各自所有者所有。