LXR | KVM | PM | Time | Interrupt | Systems Performance | Bootup Optimization

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

 

posted on 2024-03-03 23:59  ArnoldLu  阅读(1601)  评论(0编辑  收藏  举报

导航