《【演讲材料】Qt全球峰会2025-Qt_Wayland多进程多窗口综合解决方案.pdf》由会员分享,可在线阅读,更多相关《【演讲材料】Qt全球峰会2025-Qt_Wayland多进程多窗口综合解决方案.pdf(28页珍藏版)》请在三个皮匠报告上搜索。
1、Qt Wayland多进程多窗口综合解决方案Qt Group中国解决方案团队负责人王富涌议程Wayland概述概述Qt Wayland概述概述Qt Wayland示例示例移植移植Wayland到到RTOS系统可行性分析系统可行性分析Wayland概述基本概念基本概念 Wayland是X11窗口系统协议和架构的替代品,旨在更易于开发、扩展和维护。Wayland架构的核心部分是libwayland库。Wayland服务器也称为合成器“compositor”。应用程序是Wayland客户端。Weston是Wayland项目的一部分,实现了一个基本的合成器,适用于许多嵌入式和移动场景。https:/w
2、ayland.freedesktop.org/https:/wayland.pages.freedesktop.org/weston/X架构架构 VS Wayland架构架构X架构:Wayland架构:Wayland protocol 一组用于在显示服务器与其客户端之间进行通信的协议。设计为两层通信:底层基于C语言和socket通讯,顶层基于XML实现。waylandscanner:将 XML格式的协议定义转换为C语言API 的一个工具。Weston1.Weston中使用libinput来处理输入设备(键盘、鼠标、触控等)。2.Weston可以在不同的Wayland后端上运行。使用-B bac
3、kend 选择后端,常见的后端:drm、fbdev、waylandweston-backend=drm-backend.so weston-backend=fb-backend.so 3.Weston通过-socket可以指定套接字名称,默认为wayland-0。客户端使用环境变量WAYLAND_DISPLAY来查找该套接字。weston-socket=samwestonwayland&WAYLAND_DISPLAY=samwestonwayland./weston-flower&4.Weston记录调试日志。weston-debug-log=$XDG_RUNTIME_DIR/weston.l
4、og&Weston5.Weston.ini配置文件./weston-config=pwd/samweston.ini&background-image=/home/sam/works/qt.pngpanel-position=none#禁用顶部面板WestonWeston截图:weston-screenshooterLinux桌面正在迁移到桌面正在迁移到Wayland https:/gitlab.gnome.org/GNOME/gnome-session/-/merge_requests/98 session:Remove x11 session targetshttps:/invent.kd
5、e.org/plasma/plasma-workspace/-/merge_requests/2188 login-sessions:Make Plasma Wayland the defaultQt Wayland概述Qt Wayland概述概述https:/doc.qt.io/qt-5/wayland-and-qt.htmlhttps:/doc.qt.io/qt-6/wayland-and-qt.htmlhttps:/doc.qt.io/qt-5/license-changes.html#qt-wayland-compositorhttps:/doc.qt.io/qt-6/qtwaylan
6、dcompositor-index.html提供客户端和服务器端的具体实现。提供QPA插件wayland实现平台适配。支持开发自定义合成器。支持扩展Wayland协议。Qt Wayland概述概述 Qt Wayland Compositor 用于开发自定义服务器,支持自定义扩展。一组QML API。一组C+API。任何Qt程序都可以作为Wayland客户端运行。Qt客户端可以在任何Wayland合成器上运行,包括Weston。export QT_QPA_PLATFORM=wayland./qtapp./qtapp-platform waylandQt Wayland概述概述启用Wayland日