Wayland-Protocols 1.45 发布

wayland-protocols 1.45 包已经发布,包含一组协议和扩展,它们补充了基础 Wayland 协议,并提供了构建复合服务器和用户环境所需的功能。

Wayland-Protocols 1.45 包含 4 个新协议(两个属于“暂存”类别,两个属于实验性):

  • ext-background-effect - 将效果应用于 Wayland 表面的半透明部分,例如背景模糊。
  • pointer-warp——允许应用程序立即将指针移动到指定位置。
  • 会话管理——恢复中断会话的窗口状态(例如,在复合管理器崩溃之后)。
  • 输入法——开发使用文本输入法的新协议。

所有协议均按顺序经历开发、测试和稳定阶段。完成开发阶段(“不稳定”类别)后,协议被放置在“staging”分支并正式包含在wayland-protocols集中,测试完成后,将其移至稳定类别。 “登台”类别的协议已经可以在需要相关功能的复合服务器和客户端中使用。与“不稳定”类别不同,在“暂存”类别中,禁止进行违反兼容性的更改,但如果在测试过程中发现问题和缺陷,则不排除替换为协议的新重要版本或其他 Wayland 扩展。

为了加快向开发人员交付协议,并鼓励在现有项目中尽早实施协议,从上一个版本开始,添加了一个“实验”阶段,允许进行破坏兼容性的更改以及添加可以逐步提升到适当级别的“原始”协议。虽然协议需要组建支持团队并从审阅者那里收到一定数量的确认(ACK)才能进入准备阶段,但它只需要在两周的审阅期间没有收到任何异议(NACK)即可进入实验阶段。

wayland-protocols 套件当前包含以下稳定协议,这些协议向后兼容:

  • “viewporter” - 允许客户端在服务器端执行缩放和表面边缘修剪操作。
  • “presentation-time”- 提供视频显示。
  • “xdg-shell” 是一个用于创建窗口并与其交互的界面,允许您在屏幕上移动它们、折叠、展开、调整大小等。
  • “linux-dmabuf”——提供基于 DMA-BUF 创建 wl_buffers 的功能。
  • “手写板”- 组织图形输入板的输入。

在“staging”分支中测试的协议:

  • drm-lease - 提供在输出到虚拟现实耳机时为左眼和右眼生成具有不同缓冲区的立体图像所需的资源。
  • “ext-session-lock” - 定义锁定会话的方法,例如,在屏幕保护程序运行或显示身份验证对话框时。
  • “single-pixel-buffer” - 允许您创建包含四个 32 位 RGBA 值的单像素缓冲区。
  • “xdg-activation” - 允许您在不同的第一级表面之间转移焦点(例如,使用 xdg-activation,一个应用程序可以将焦点切换到另一个应用程序)。
  • 内容类型 - 允许客户端将有关正在显示的内容的信息传递给复合服务器,这可用于优化内容感知行为,例如设置特定的 DRM 属性,例如“内容类型”。 声明支持以下内容类型:无(没有有关数据类型的信息)、照片(输出数码照片,需要最少的处理)、视频(视频或动画,需要更精确的同步以避免卡顿)和游戏(启动游戏,最小延迟输出)。
  • ext-idle-notify - 允许复合服务器向客户端发送有关用户不活动的通知,这可用于在不活动一定时间后激活其他省电模式。
  • 撕裂控制 - 允许您在全屏应用程序中使用垂直阻尼脉冲禁用垂直同步 (VSync),用于防止输出撕裂。 在多媒体应用中,由于撕裂而产生的伪影是一种不受欢迎的效果,但在游戏程序中,如果处理伪影会导致额外的延迟,则可以容忍这些伪影。
  • ext-foreign-toplevel-list - 检索有关放置在顶层的表面的信息,这允许您组织窗口以停靠在其他内容之上,例如,附加您自己的面板和窗口开关。
  • security-context - 允许您使用沙箱隔离来识别客户端。客户端可以向基于 Wayland 的组合服务器注册一个新连接,并向其附加安全上下文,之后组合管理器将根据指定的安全上下文限制已建立的连接可用的功能。
  • 光标形状是自定义光标外观的另一种方法,它基于传递一系列光标图像而不是捕捉到表面(wl_surface)。
  • “ext-transient-seat”旨在创建临时的独立会话(席位),这些会话(席位)专用于虚拟输入设备。例如,在实现连接到……的功能时。 远程桌面 该协议允许为每个用户创建一个独立的会话,每个会话都配备一个虚拟键盘和鼠标。
  • “xdg-toplevel-drag” - 扩展“拖放”机制,能够将顶级窗口附加到拖动操作,例如,可以使用鼠标组织工具栏或浏览器选项卡的拖动。新协议允许您创建窗口的可拆卸部分,当从该窗口拖动时,这些部分将成为新窗口,并且可以在重新附加之前移动到现有窗口的顶部。
  • “xdg-dialog” - 允许您将特定于对话框的属性分配给顶级表面,例如,您可以创建阻止用户与界面其余部分交互的模式对话框。
  • “linux-drm-syncobj”——提供使用 DRM(直接渲染管理器)同步对象进行显式缓冲区同步的工具。假设在渲染到缓冲区的同步环境中,所提出的协议将改善基于 Vulkan 和 OpenGL 图形 API 的驱动程序的工作(实现基于驱动程序中的处理程序)。新的协议可以确保在合成管理器显示该缓冲区之前,对缓冲区的绘制操作已经完成。
  • alpha-modifier,允许客户端更改表面和传输操作的透明度级别,以确保复合服务器一侧的透明度,而复合服务器又可以将这些操作重定向到 KMS。
  • xdg-toplevel-icon - 将图标绑定到顶级窗口。
  • ext-image-capture-source 和 ext-image-copy-capture - 组织屏幕上显示内容的捕获。
  • xdg-system-bell - 允许您输出系统信号,该信号可用作终端仿真器中的警告等。信号输出的形式由复合管理器决定;它不仅可以是声音,还可以是视觉响应。
  • fifo - 实现 FIFO(先进先出)机制来处理显示表面的内容更新队列。在实用方面,该协议允许输出等待垂直扫描完成(vblank),而不是每次准备好显示新帧时使用回调调用,这解决了使用 VSync 时 GPU 负载较高的问题。
  • commit-timing - 允许您将时间限制绑定到表面内容(如果可能的话,复合服务器应在指定时间之后反映内容更改,但不能更早)。
  • ext-data-control - 允许特权客户端控制数据处理,例如实现剪贴板管理器。
  • ext-workspace — 实现了该概念 虚拟桌面 该协议提供包含桌面状态信息的事件,并支持激活和停用桌面。它还可用于创建仪表板和指示器,显示可用虚拟桌面的列表并允许在它们之间切换。
  • 色彩管理——提供色彩管理功能并支持扩展的动态亮度范围(HDR,高动态范围)。通过添加的扩展,客户端应用程序可以获取有关输出设备的颜色相关属性的信息,并将其自身内容的颜色相关属性的数据传递给复合服务器。在复合服务器中,该信息可用于在不同输出设备上显示内容时自动管理颜色,例如将内容转换为适合在 HDR 显示器上显示的演示文稿。 ICC 配置文件用于描述色彩空间。
  • xdg-toplevel-tag — 允许 Wayland 客户端将标签附加到顶层表面,合成服务器可以在应用程序重新启动后使用这些标签来识别窗口(例如,应用程序可能会为主窗口和设置窗口设置“主窗口”和“设置”标签)。这种识别对于重新启动后恢复窗口的位置、大小和属性以及为个别类型的窗口定义特殊规则很有用。
  • color-representation — 定义 Wayland 表面的颜色表示。Wayland 客户端可以传递定义透明度、颜色模型、子采样和量化范围所需的元数据,并在将包含与 YCbCr 颜色模型对应的数据的缓冲区转换为 RGB 表示时使用。

“不稳定”分支正在开发的协议:

  • “fullscreen-shell” - 在全屏模式下控制工作。
  • “input-method” - 处理输入法。
  • “idle-inhibit”——阻止屏幕保护程序(screen saver)的启动。
  • “输入时间戳”-输入事件的时间戳。
  • “keyboard-shortcuts-inhibit” - 控制键盘快捷键和热键的附加。
  • “linux-explicit-synchronization”是特定于 Linux 用于同步缓冲区与表面的机制。
  • “指针手势”-通过触摸屏进行控制。
  • “指针约束”——指针约束(阻塞)。
  • “primary-selection” - 与 X11 类似,它确保主剪贴板(主选择)的操作,通常使用鼠标中键插入信息。
  • “相对指针事件”-相对指针事件。
  • “text-input” - 文本输入的组织。
  • “xdg-foreign”是一个用于与“邻近”客户端的界面进行交互的界面。
  • “xdg-decoration” - 在服务器端渲染窗口装饰。
  • “xdg-output” - 有关视频输出的附加信息(用于分数缩放)。
  • "xwayland-keyboard-grab" - 捕获 XWayland 应用程序中的输入。

来源: opennet.ru

为具有 DDoS 保护、VPS VDS 服务器的站点购买可靠的主机 🔥 购买具备 DDoS 防护的可靠网站托管服务,包括 VPS 和 VDS 服务器 | ProHoster