KDE output management
此接口使客户端能够通过服务器设置输出设备的属性以进行屏幕配置。为此,输出设备通过全局 org_kde_kwin_outputdevice 对象引用。
outputmanagement (wl_global) -------------------------- 请求:
- create_configuration -> outputconfiguration (wl_resource)
outputconfiguration (wl_resource) -------------------------- 请求:
- enable(outputdevice, bool)
- mode(outputdevice, mode_id)
- transformation(outputdevice, flag)
- position(outputdevice, x, y)
- apply
事件:
- applied
- failed
服务器注册一个 outputmanagement 对象作为全局对象。为了配置输出,客户端请求 create_configuration,该请求提供一个引用 outputconfiguration 的资源用于一次性配置。通过这种方式,服务器知道哪些请求属于一起,并可以按此分组。
在 outputconfiguration 对象上,客户端为每个输出调用是否应启用输出、应设置哪种模式(通过引用已公布模式列表中的模式)以及输出的全局位置。以这种方式配置完所有输出后,客户端调用 apply。
此时(而不是更早)服务器应尝试应用配置。如果成功,服务器发出 applied 信号,否则发出 failed 信号,以便配置客户端收到其配置请求成功与否的通知。
通过这种设计,如果服务器内部支持,该接口可以实现原子输出配置更改。
create_configuration(id: new_id<org_kde_kwin_outputconfiguration>)
参数 | 类型 | 描述 |
|---|---|---|
| id | new_id<org_kde_kwin_outputconfiguration> |
请求一个 outputconfiguration 对象,客户端可以通过它配置输出设备。
outputconfiguration 是特定于客户端的资源,可用于请求服务器对可用输出设备应用更改。
客户端从注册表接收输出设备列表。当它想要应用新设置时,它从 outputmanagement 全局对象创建一个配置对象,通过此对象的 enable、scale、transform 和 mode 调用写入更改。然后它要求服务器以原子方式应用这些设置,例如通过 Linux 的 DRM 接口。
服务器发回信号,指示新设置是已成功应用还是应用失败。outputdevice 对象在更改已应用于硬件之后且服务器端发送 applied 事件之前更新。
enable(outputdevice: object<org_kde_kwin_outputdevice>, enable: int)
参数 | 类型 | 描述 |
|---|---|---|
| outputdevice | object<org_kde_kwin_outputdevice> | outputdevice to be en- or disabled |
| enable | int | 1 to enable or 0 to disable this output |
将输出标记为启用或禁用。
mode(outputdevice: object<org_kde_kwin_outputdevice>, mode_id: int)
参数 | 类型 | 描述 |
|---|---|---|
| outputdevice | object<org_kde_kwin_outputdevice> | outputdevice this mode change applies to |
| mode_id | int | aspired mode's id |
通过给定输出的模式大小(宽度和高度)和刷新率设置模式。
transform(outputdevice: object<org_kde_kwin_outputdevice>, transform: int)
参数 | 类型 | 描述 |
|---|---|---|
| outputdevice | object<org_kde_kwin_outputdevice> | outputdevice this transformation change applies to |
| transform | int | transform enum |
设置给定输出的变换。
position(outputdevice: object<org_kde_kwin_outputdevice>, x: int, y: int)
参数 | 类型 | 描述 |
|---|---|---|
| outputdevice | object<org_kde_kwin_outputdevice> | outputdevice this position applies to |
| x | int | position on the x-axis |
| y | int | position on the y-axis |
设置此输出设备的位置。(x,y) 描述输出在全局空间中的左上角,其中全局空间的原点 (0,0) 必须与最左侧输出的左上角对齐,如果不唯一则与顶部输出对齐。
输出之间不能有间隙或重叠,即输出水平、垂直或两者堆叠在一起。
scale(outputdevice: object<org_kde_kwin_outputdevice>, scale: int)
参数 | 类型 | 描述 |
|---|---|---|
| outputdevice | object<org_kde_kwin_outputdevice> | outputdevice this mode change applies to |
| scale | int | scaling factor |
设置此输出设备的缩放因子。
apply()
请求服务器将通过此 outputconfiguration 对象请求的属性更改应用到服务器端的所有输出。
scalef(outputdevice: object<org_kde_kwin_outputdevice>, scale: fixed)
参数 | 类型 | 描述 |
|---|---|---|
| outputdevice | object<org_kde_kwin_outputdevice> | outputdevice this mode change applies to |
| scale | fixed | scaling factor |
设置此输出设备的缩放因子。同时发送 scale 和 scalef 是未定义行为。
colorcurves(outputdevice: object<org_kde_kwin_outputdevice>, red: array, green: array, blue: array)
参数 | 类型 | 描述 |
|---|---|---|
| outputdevice | object<org_kde_kwin_outputdevice> | outputdevice curves apply to |
| red | array | red color ramp |
| green | array | green color ramp |
| blue | array | blue color ramp |
通过 RGB 颜色渐变设置输出设备的颜色曲线。允许从用户空间对输出设备进行颜色校正。
这些是原始值。合成器可能会选择在内部调整这些值,例如在夜间调整色温。
overscan(outputdevice: object<org_kde_kwin_outputdevice>, overscan: uint)
参数 | 类型 | 描述 |
|---|---|---|
| outputdevice | object<org_kde_kwin_outputdevice> | outputdevice overscan applies to |
| overscan | uint | overscan value |
以百分比值设置此输出设备的过扫描值。
set_vrr_policy(outputdevice: object<org_kde_kwin_outputdevice>, policy: uint<org_kde_kwin_outputconfiguration.vrr_policy>)
参数 | 类型 | 描述 |
|---|---|---|
| outputdevice | object<org_kde_kwin_outputdevice> | outputdevice this VRR policy applies to |
| policy | uint<org_kde_kwin_outputconfiguration.vrr_policy> | the vrr policy to apply |
设置合成器在使用可变刷新率时应采用的策略。
合成器支持
Copyright
SPDX-FileCopyrightText: 2008-2011 Kristian Høgsberg SPDX-FileCopyrightText: 2010-2011 Intel Corporation SPDX-FileCopyrightText: 2012-2013 Collabora, Ltd. SPDX-FileCopyrightText: 2015 Sebastian Kügler <sebas@kde.org>
SPDX-License-Identifier: MIT-CMU