Treeland capture

用于捕获输出内容或窗口内容的协议

此协议允许授权应用程序捕获输出内容或窗口内容(适用于窗口串流)。


destroy()
删除此对象

取消帧引用。当帧不再有效时必须尽快调用此请求。

start()
启动会话

启动会话并持续发送帧。

frame_done(tv_sec_hi: uint, tv_sec_lo: uint, tv_usec: uint)
参数
类型
描述
tv_sec_hiuint
tv_sec_louint
tv_usecuint
指示当前帧已完成

这是对当前 "ready" 事件的确认。只有在当前 "ready" 事件被确认后才会发送下一个 "frame" 事件。时间戳应与 "ready" 事件中发送的时间戳相同。 如果帧具有 "transient" 标志,则此事件之后之前发送的所有对象都将失效。

frame(offset_x: int, offset_y: int, width: uint, height: uint, buffer_flags: uint, flags: uint<treeland_capture_session_v1.flags>, format: uint, mod_high: uint, mod_low: uint, num_objects: uint)
参数
类型
描述
offset_xint
crop offset x
offset_yint
crop offset y
widthuint
heightuint
buffer_flagsuint
flagsuint<treeland_capture_session_v1.flags>
formatuint
mod_highuint
mod_lowuint
num_objectsuint
向客户端提供帧信息

向客户端提供帧信息的主要事件。如果捕获未失败,此事件始终在其他事件之前首先发出。 当提供 mask 时,x 和 y 应为相对于 mask surface 原点的偏移量。否则 offset_x 和 offset_y 应始终为零。

object(index: uint, fd: fd, size: uint, offset: uint, stride: uint, plane_index: uint)
参数
类型
描述
indexuint
fdfd
sizeuint
offsetuint
strideuint
plane_indexuint
向客户端提供对象 fd
ready(tv_sec_hi: uint, tv_sec_lo: uint, tv_nsec: uint)
参数
类型
描述
tv_sec_hiuint
tv_sec_louint
tv_nsecuint
指示帧可供读取

帧呈现后立即发送此事件,指示帧可供读取。此事件包含呈现发生的时间。

通知当前帧不再有效

如果捕获失败或在 "frame" 事件发出后帧不再有效,此事件将通知客户端丢弃该帧。

cancel_reason { temporary, permanent, resizing } 
参数
描述
temporary0
临时错误,源将产生更多帧
permanent1
致命错误,源将不再产生帧
resizing2
临时错误,源将产生更多帧
flags { transient } 
参数
描述
transient0x1
客户端应在处理前复制帧


destroy()
删除此对象,无论是否已使用

销毁上下文。客户端可随时发送此请求。

copy(buffer: object<wl_buffer>)
参数
类型
描述
bufferobject<wl_buffer>
复制捕获内容

将捕获内容复制到提供的缓冲区。

buffer(format: uint<wl_shm.format>, width: uint, height: uint, stride: uint)
参数
类型
描述
formatuint<wl_shm.format>
widthuint
heightuint
strideuint
通知客户端准备缓冲区

通知客户端准备缓冲区。

buffer_done()
所有缓冲区格式已发送完毕

通知客户端所有支持的缓冲区格式已发送完毕。

参数
类型
描述
flagsuint<treeland_capture_frame_v1.flags>
frame flags
帧标志

提供关于帧的标志。此事件在 "ready" 事件之前发送一次。

ready()
缓冲区已复制完成

通知缓冲区已准备好可供读取。

failed()
帧复制失败

通知帧复制失败。

flags { y_inverted } 
参数
描述
y_inverted0x1
内容沿 y 轴翻转


destroy()
删除此对象,无论是否已使用

销毁上下文。客户端可随时发送此请求。

参数
类型
描述
source_hintuint<treeland_capture_context_v1.source_type>
freezeuint
freeze compositing or not
with_cursoruint
whether source content contains cursor or not
maskobject<wl_surface>允许为空
this mask is guaranteed to be at the top most
交互式选择源

选择器由合成器提供。客户端可以提供源提示来引导合成器提供特定类型的源。

参数
类型
描述
framenew_id<treeland_capture_frame_v1>
捕获一帧

此事件只能调用一次。第二次调用可能会导致协议错误,因为我们只提供 transient。

create_session(session: new_id<treeland_capture_session_v1>)
参数
类型
描述
sessionnew_id<treeland_capture_session_v1>
创建持久捕获会话

通常由屏幕录制器使用。

参数
类型
描述
region_xint
offset x of capture region relative to mask for capture contents
region_yint
offset y of capture region relative to mask for capture contents
region_widthuint
width of capture region
region_heightuint
height of capture region
source_typeuint<treeland_capture_context_v1.source_type>
final capture source type
通知客户端源已就绪

此事件向客户端提供有关捕获源的一些信息,包括相对于 mask 的捕获区域和源类型。

通知客户端源选择失败

可能有很多原因,但最常见的是选择器正忙。

source_type { output, window, region } 
参数
描述
output0x1
输出源类型
window0x2
窗口源类型
region0x4
区域源类型
参数
描述
selector_busy1
选择器被其他上下文占用
user_cancel2
用户从合成器取消此上下文
source_destroyed3
源已被销毁
other4
其他失败
源失败原因


destroy()
销毁捕获管理器

销毁 treeland_capture_manager_v1 对象。


合成器支持

Cage
Cage
0.2.0
COSMIC
COSMIC
1.0.0~beta.8
GameScope
GameScope
3.15.14
Hyprland
Hyprland
0.52.1
Jay
1.12.0
KWin
KWin
6.6
Labwc
Labwc
0.9.2
Louvre
Louvre
2.14.1
Mir
Mir
2.26
Muffin
Muffin
6.6.0
Mutter
Mutter
49.2
niri
niri
25.11
phoc
phoc
0.52
river
river
0.3.13
Sway
Sway
1.11
Treeland
Treeland
0.8.0
Wayfire
Wayfire
0.9.0
Weston
Weston
14.0.2
treeland_capture_manager_v1
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
1
x
x

SPDX-FileCopyrightText: 2024 UnionTech Software Technology Co., Ltd. SPDX-License-Identifier: MIT

Footer

© 2026 Wayland Explorer

本网站与 Wayland 官方项目无任何关联。网站所有内容均根据 Wayland 协议 XML 文件自动生成。

本网站使用的 Visual Studio Code - Codicons 遵循 CC BY 4.0 许可。