🌓

wsm简介

什么是 wsm?    为什么要开发 wsm 项目?Wayland 世界中有多种合成器,其中较为知名的有 Weston、Kwin 和 Mutter。Weston 作为 Wayland 的参考合成器实现,虽然轻量,但并不适合用于构建功能强大的 PC 合成器;Kwin 和 Mutter 则由于历史原因,与 Plasma 和...

阅读全文

treeland 事件分析

treeland 事件到客户端流程 libinput事件获取:libinput是一个处理输入设备事件的库,用于从硬件设备(如键盘、鼠标、触摸板等)获取输入事件。wlroots使用libinput来初始化和管理这些设备,并通过libinput_dispatch函数来获取新的输入事件。 事件处理:wlroots设置了一个libinput事件循环,在事件循环中调...

阅读全文

treeland 显示器设备分析

显示器初始化及热插拔 初始化与设置首先,wlroots 的 wlr_backend 和 wlr_output 模块需要初始化。wlr_backend 负责与底层硬件交互,而 wlr_output 则表示具体的显示输出(即显示器)。 监控硬件事件wlroots 使用 udev 来监控硬件事件(包括显示器的插拔)。当有硬件事件发生时,wlroots 会通过 u...

阅读全文

qwlroots简介

什么是 qwlroots?qwlroots 是基于wlroots Qt 风格的 Wrapper 库,旨在简化 Qt 中 wlroots API 的调用方式,满足 Qt 项目内调用 wlroots 的需求。。 核心功能qwlroots 提供了一组用于封装 wlroots 的工具和抽象层。其核心功能包括: wl_signal 信号处理:通过 QWSignalC...

阅读全文

treeland导航

简介 wlroots简介 qwlroots简介 waylib简介 treeland简介 技术框架 treeland初始化 Qt QPA框架对接 鼠标事件处理 显示器设备分析 输入设备初始化和热插拔 窗口显示 drm送显分析

阅读全文

treeland 初始化分析

初始化流程treeland 初始化与 QML 应用代码初始化类似,只是对于 QPA 的初始化 treeland 是显式地,其目的是使其加载 waylib项目中 的 QWlrootsIntergration 插件,将 wlroots 相关功能与 Qt 对接。 主代码如下: 1234567891011121314151617181920212223 QWL...

阅读全文

treeland简介

什么是 treeland?在讲 treeland 是什么前,先介绍一下现有的 Wayland 合成器类型 系统合成器: 可用于启动系统、处理多用户切换、可能的控制台终端仿真器等。系统合成器可以从早期启动一直运行到关机。它有效地取代了内核 vt 系统,并可以与系统图形启动设置和多座席支持相结合。系统合成器可以承载不同类型的会话合成器,并让我们在多个会话之间...

阅读全文

waylib简介

什么是 waylib?waylib 是一个功能库,用于将 qwlroots 与 QtQuick 的图形组件混合,利用 Qt 事件、渲染模型制作高级 Wayland 合成器库。 核心功能waylib 提供了一组与Qt深入集成的 APi。其核心功能包括: 渲染管理:利用 QtQuick 渲染模型支持 Wayland 合成器中 Surface 显示、后处理特效、...

阅读全文

treeland 与Qt QPA对接分析

QPA 插件 类名 描述 QWlrootsOutputWindow Qt窗口平台抽象实现,实现Qt中QWindow部分功能 QWlrootsIntegration Qt QPA平台插件实现,对接wlroots输入输出到Qt QWlrootsCursor Qt QPA光标平台抽象实现,对接wlr_cursor 前端部分功能到Qcursor(代...

阅读全文

wlroots简介

什么是 wlroots?wlroots 是一个底层库,用于构建基于 Wayland 显示服务器协议的窗口管理器和桌面环境。它由Wayland的发布经理 Simon Ser 主导开发,旨在简化 Wayland 生态系统中的窗口管理器的开发过程。 核心功能wlroots提供了一组用于处理显示服务器基础设施的工具和抽象层。其核心功能包括: 输出管理:处理显示设备...

阅读全文