|
本章节通过texture案例,演示基于Qt + OpenGL调用GPU核心进行图形渲染。
案例说明本案例使用Qt提供的OpenGL模块,该模块是对OpenGL原生API进一步的封装并支持GUI编程,使得在Qt应用程序中使用OpenGL变得更加容易。 Qt程序在调用OpenGL模块的API时,会调用官方提供的OpenGL库,该库通过底层驱动调用GPU资源来进行图像的渲染。
图 1 程序结构框架
案例测试进入评估板文件系统,将texture案例的ARM端Qt程序镜像拷贝至评估板文件系统任意目录下。请在Qt程序镜像所在路径下执行如下命令。 Target# ./textures --platform wayland 图 2
Qt程序运行后,显示界面如下,使用鼠标点击任意一个骰子,被选中的骰子将自动进行旋转。 图 3
案例编译进入textures工程源码目录,执行qmake命令生成Makefile文件,配置交叉编译工具链环境变量,再执行make命令编译生成可在评估板上正常运行的ARM端Qt程序镜像,如下图所示。 Host# cd /home/tronlong/Demo/qt-demos/textures/src Host# source /home/tronlong/RK3562/rk3562-buildroot-2021.11-sdk-v1.0/buildroot/output/rockchip_rk3562/host/environment-setup Host# qmake Host# make
图 4
图 5
关键代码初始化主窗口,创建6个Qopenglwidget,并开启定时器。 图 6
初始化OpenGL资源。 图 7
处理QMouseEvent事件。 图 8
使用OpenGL进行绘制。 图 9
OpenGL部件大小调整时,触发resizeGL事件。 图 10
|