安装指南

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 的支持一样。重要的是要确保您在应用程序中不调用这些符号。

先决条件

需要三个元素

  1. 工具链来交叉编译针对您的设备的代码。
  2. 包含开发头文件和共享对象的 sysroot,当构建应用程序时可以链接到它们。
  3. 打算部署到您的设备的靶图像。

如何构建 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.solibGLESv2.so

文件安装

将包含文件夹复制到您的 sysroot 中 /usr/include 文件夹。这将安装 OpenGL/EGL 头文件

cp -r 3rdparty/include/* ${SYSROOT}/usr/include/

libEGL.solibGLESv2.so 复制到您的 sysroot 中 /usr/lib 文件夹

cp src/lib*.so ${SYSROOT}/usr/lib/

也将 libEGL.solibGLESv2.so 库复制到目标设备图像中。

构建 Qt

在配置 Qt 时,请确保将 -opengl es2 追加到您的配置参数。

构建 Qt 快速 2D 绘制器

像其他Qt模块一样构建Qt Quick 2D渲染器

qmake
make
make install

部署

现在,当您将Qt构建部署到设备时,它将依赖于虚拟库 libEGL.solibGLESv2.so,但只要您使用Qt Quick 2D渲染器插件,您就能在使用Qt Quick时无需实际调用OpenGL或EGL。

©2016 Qt公司有限公司。本文件中包含的文档贡献归其各自所有者所有。本文件提供的文档是在GNU自由文档许可证(版本1.3)的条款下提供的,该许可证由自由软件基金会发布。Qt及其相应标志是Qt公司有限公司在芬兰和/或其他国家/地区的商标。所有其他商标均归其各自所有者所有。