Linux显示(六):基于Buildroot的QT显示(mesa3d+opengl+libdrm)
Biuldroot下配置libdrm、Mesa3D、Qt5进行测试。
1 Buildroot下QT配置
Buildroot下配置libdrm、mesa3d、Qt5:
Target packages ->Libraries ->Graphics ->libdrm
->etnaviv--支持的GPU驱动。
->Install test programs--libdrm测试程序。 -> Graphic libraries and applications (graphic/text)
->mesa3d
->Gallium Etnaviv driver--Vivante GPU的Mesa驱动。
->Gallium swrast driver--基于Gallium3D架构实现的软件OpenGL。
->gbm--使能Generic Buffer Management。
->OpenGL EGL--EGL是OpenGL ES和底层Native平台视窗系统之间的接口。
->OpenGL ES--OpenGL ES (OpenGL for Embedded Systems)。
-> ->Qt5 ->qt5base ->Custom configuration options ->Config file ->Compile and install examples (with code)--编译安装示例程序和代码。 ->gui module
->widgets module--Qt5Widgets库文件。
->OpenGL support--支持OpenGL。
->OpenGL API
->opengl module
->linuxfb support--使用libqlinuxfb.so作为显示插件。
->eglfs support--使用libqeglfs.so作为显示插件。 ->linuxfb support--支持Linux Framebuffer插件。 ->Default graphical platform--选择默认的图形平台。 ->GIF support ->JPEG support ->PNG support ->Enable Tslib support--支持tslib插件。 ->qt5charts--Qt5 chart组件。 ->qt5declarative--支持QML脚本语言和Qt Quick。 ->quick module ->qt5quickcontrols ->qt5quickcontrols2 ->qt5svg ->qt5virtualkeyboard ->language layouts
2 QT编译输出
QML可以在脚本里创建图形对象,并且支持各种图形特效,以及状态机等,同时又能跟Qt写的C++代码进行方便的交互,使用起来非常方便。
/usr/qml/ |-- Qt |-- QtCharts |-- QtQml |-- QtQuick |-- QtQuick.2 |-- QtTest `-- builtins.qmltypes
QT相关的库文件有:
/usr/lib/libQt5Charts.so /usr/lib/libQt5Concurrent.so /usr/lib/libQt5Core.so /usr/lib/libQt5Gui.so /usr/lib/libQt5Network.so /usr/lib/libQt5PrintSupport.so /usr/lib/libQt5Qml.so /usr/lib/libQt5QmlModels.so /usr/lib/libQt5QmlWorkerScript.so /usr/lib/libQt5Quick.so /usr/lib/libQt5QuickControls2.so /usr/lib/libQt5QuickShapes.so /usr/lib/libQt5QuickTemplates2.so /usr/lib/libQt5QuickTest.so /usr/lib/libQt5QuickWidgets.so /usr/lib/libQt5Sql.so /usr/lib/libQt5Svg.so /usr/lib/libQt5Test.so /usr/lib/libQt5VirtualKeyboard.so /usr/lib/libQt5Widgets.so /usr/lib/libQt5Xml.so
QT的示例和插件有:
/usr/lib/qt/ |-- examples | |-- README | |-- charts | |-- corelib | |-- examples.pro | |-- gui | |-- network | |-- opengl | |-- qml | |-- qmltest | |-- qpa | |-- qtconcurrent | |-- qtestlib | |-- quick | |-- quickcontrols | |-- quickcontrols2 | |-- sql | |-- svg | |-- virtualkeyboard | |-- widgets | `-- xml `-- plugins |-- bearer | `-- libqgenericbearer.so |-- egldeviceintegrations | |-- libqeglfs-emu-integration.so | |-- libqeglfs-kms-egldevice-integration.so | `-- libqeglfs-kms-integration.so |-- generic | |-- libqevdevkeyboardplugin.so | |-- libqevdevmouseplugin.so | |-- libqevdevtabletplugin.so | |-- libqevdevtouchplugin.so | |-- libqtslibplugin.so | `-- libqtuiotouchplugin.so |-- iconengines | `-- libqsvgicon.so |-- imageformats | |-- libqgif.so | |-- libqico.so | |-- libqjpeg.so | `-- libqsvg.so |-- platforminputcontexts | `-- libqtvirtualkeyboardplugin.so |-- platforms | |-- libqeglfs.so | |-- libqlinuxfb.so | |-- libqminimal.so | |-- libqminimalegl.so | |-- libqoffscreen.so | `-- libqvnc.so |-- qmltooling | |-- libqmldbg_debugger.so | |-- libqmldbg_inspector.so | |-- libqmldbg_local.so | |-- libqmldbg_messages.so | |-- libqmldbg_native.so | |-- libqmldbg_nativedebugger.so | |-- libqmldbg_preview.so | |-- libqmldbg_profiler.so | |-- libqmldbg_quickprofiler.so | |-- libqmldbg_server.so | `-- libqmldbg_tcp.so |-- sqldrivers | |-- libqsqlite.so | `-- libqsqlmysql.so `-- virtualkeyboard |-- libqtvirtualkeyboard_hangul.so |-- libqtvirtualkeyboard_openwnn.so |-- libqtvirtualkeyboard_pinyin.so |-- libqtvirtualkeyboard_tcime.so `-- libqtvirtualkeyboard_thai.so
3 基于QT+Mesa3D+libdrm+DRM 测测试
设置如下环境变量,
export TSLIB_TSDEVICE=/dev/input/event0
export QT_QPA_EGLFS_TSLIB=1
export QT_QPA_PLATFORM=eglfs
export QT_QPA_FONTDIR=/usr/share/fonts
export LIBGL_DEBUG=verbose
启动程序进行动画和触摸屏测试:
/usr/lib/qt/examples/widgets/animation/animatedtiles/animatedtiles
联系方式:arnoldlu@qq.com