2024-06-23
什么是 wsm? 为什么要开发 wsm 项目?Wayland 世界中有多种合成器,其中较为知名的有 Weston、Kwin 和 Mutter。Weston 作为 Wayland 的参考合成器实现,虽然轻量,但并不适合用于构建功能强大的 PC 合成器;Kwin 和 Mutter 则由于历史原因,与 Plasma 和...
阅读全文
2024-06-19
treeland 事件到客户端流程
libinput事件获取:libinput是一个处理输入设备事件的库,用于从硬件设备(如键盘、鼠标、触摸板等)获取输入事件。wlroots使用libinput来初始化和管理这些设备,并通过libinput_dispatch函数来获取新的输入事件。
事件处理:wlroots设置了一个libinput事件循环,在事件循环中调...
阅读全文
2024-06-19
显示器初始化及热插拔
初始化与设置首先,wlroots 的 wlr_backend 和 wlr_output 模块需要初始化。wlr_backend 负责与底层硬件交互,而 wlr_output 则表示具体的显示输出(即显示器)。
监控硬件事件wlroots 使用 udev 来监控硬件事件(包括显示器的插拔)。当有硬件事件发生时,wlroots 会通过 u...
阅读全文
2024-06-19
什么是 qwlroots?qwlroots 是基于wlroots Qt 风格的 Wrapper 库,旨在简化 Qt 中 wlroots API 的调用方式,满足 Qt 项目内调用 wlroots 的需求。。
核心功能qwlroots 提供了一组用于封装 wlroots 的工具和抽象层。其核心功能包括:
wl_signal 信号处理:通过 QWSignalC...
阅读全文
2024-06-19
简介
wlroots简介
qwlroots简介
waylib简介
treeland简介
技术框架
treeland初始化
Qt QPA框架对接
鼠标事件处理
显示器设备分析
输入设备初始化和热插拔
窗口显示
drm送显分析
阅读全文
2024-06-19
初始化流程treeland 初始化与 QML 应用代码初始化类似,只是对于 QPA 的初始化 treeland 是显式地,其目的是使其加载 waylib项目中 的 QWlrootsIntergration 插件,将 wlroots 相关功能与 Qt 对接。
主代码如下:
1234567891011121314151617181920212223 QWL...
阅读全文
2024-06-19
什么是 treeland?在讲 treeland 是什么前,先介绍一下现有的 Wayland 合成器类型
系统合成器: 可用于启动系统、处理多用户切换、可能的控制台终端仿真器等。系统合成器可以从早期启动一直运行到关机。它有效地取代了内核 vt 系统,并可以与系统图形启动设置和多座席支持相结合。系统合成器可以承载不同类型的会话合成器,并让我们在多个会话之间...
阅读全文
2024-06-19
什么是 waylib?waylib 是一个功能库,用于将 qwlroots 与 QtQuick 的图形组件混合,利用 Qt 事件、渲染模型制作高级 Wayland 合成器库。
核心功能waylib 提供了一组与Qt深入集成的 APi。其核心功能包括:
渲染管理:利用 QtQuick 渲染模型支持 Wayland 合成器中 Surface 显示、后处理特效、...
阅读全文
2024-06-19
QPA 插件
类名
描述
QWlrootsOutputWindow
Qt窗口平台抽象实现,实现Qt中QWindow部分功能
QWlrootsIntegration
Qt QPA平台插件实现,对接wlroots输入输出到Qt
QWlrootsCursor
Qt QPA光标平台抽象实现,对接wlr_cursor 前端部分功能到Qcursor(代...
阅读全文
2024-06-19
什么是 wlroots?wlroots 是一个底层库,用于构建基于 Wayland 显示服务器协议的窗口管理器和桌面环境。它由Wayland的发布经理 Simon Ser 主导开发,旨在简化 Wayland 生态系统中的窗口管理器的开发过程。
核心功能wlroots提供了一组用于处理显示服务器基础设施的工具和抽象层。其核心功能包括:
输出管理:处理显示设备...
阅读全文