Chromium color management
- external
此协议规定了一种方式,允许客户端设置 surface 的色彩空间和 HDR 元数据,并获取输出设备的色彩空间和 HDR 能力信息。
此协议基于一个已提交的上游协议草案,待其获批后我们将迁移至该版本。 在开发过程中,此协议可能与上游草案存在差异。
一个全局接口,用于获取色彩管理 surface 和色彩管理 output 对象, 以及从 ICC 配置文件、参数或枚举名称创建色彩空间对象。
create_color_space_from_icc(id: new_id<zcr_color_space_creator_v1>, icc: fd)
参数 | 类型 | 描述 |
|---|---|---|
| id | new_id<zcr_color_space_creator_v1> | |
| icc | fd |
从 ICC 配置文件创建色彩空间对象。此请求返回一个 zcr_color_space_creator_v1 对象,该对象将返回错误 或成功创建的 zcr_color_space_v1 对象。
要创建的色彩空间描述以 ICC 配置文件的形式,通过参数 icc 中的文件描述符发送。
fd 必须可寻址,ICC 配置文件的最大大小为 4 MB。 违反这些要求将引发 icc_fd 协议错误。 合成器不得修改文件内容,fd 可被密封以防止写入和大小更改。
文件内容必须代表有效的 ICC 配置文件。 ICC 配置文件版本必须为 2 或 4,必须是 3 通道配置文件, 类别必须为 'input'、'output'、'abstract' 或 'display'。 违反这些要求不会导致协议错误,但会触发 zcr_color_space_creator_v1.error 事件。
有关创建对象的更多详细信息,请参阅 zcr_color_space_v1 和 zcr_color_space_creator_v1 接口。
有关 ICC 配置文件的更多详细信息,请参阅 International Color Consortium 的规范(也称为 ISO 15076-1:2010)。
create_color_space_from_names(id: new_id<zcr_color_space_creator_v1>, eotf: uint<zcr_color_manager_v1.eotf_names>, chromaticity: uint<zcr_color_manager_v1.chromaticity_names>, whitepoint: uint<zcr_color_manager_v1.whitepoint_names>)
参数 | 类型 | 描述 |
|---|---|---|
| id | new_id<zcr_color_space_creator_v1> | |
| eotf | uint<zcr_color_manager_v1.eotf_names> | EOTF |
| chromaticity | uint<zcr_color_manager_v1.chromaticity_names> | chromaticity |
| whitepoint | uint<zcr_color_manager_v1.whitepoint_names> | whitepoint |
[已弃用] 从已知名称创建色彩空间对象。此请求返回一个 zcr_color_space_creator_v1 对象,该对象将返回错误 或成功创建的 zcr_color_space_v1 对象。
EOTF、色度和白点不得为 unknown。否则,或给定值 未列在枚举中时,将引发 bad_enum 协议错误。
有关创建对象的更多详细信息,请参阅 zcr_color_space_v1 和 zcr_color_space_creator_v1 接口。请改用 create_color_space_from_complete_names。
create_color_space_from_params(id: new_id<zcr_color_space_creator_v1>, eotf: uint<zcr_color_manager_v1.eotf_names>, primary_r_x: uint, primary_r_y: uint, primary_g_x: uint, primary_g_y: uint, primary_b_x: uint, primary_b_y: uint, white_point_x: uint, white_point_y: uint)
参数 | 类型 | 描述 |
|---|---|---|
| id | new_id<zcr_color_space_creator_v1> | |
| eotf | uint<zcr_color_manager_v1.eotf_names> | EOTF |
| primary_r_x | uint | red primary X * 10000 |
| primary_r_y | uint | red primary Y * 10000 |
| primary_g_x | uint | green primary X * 10000 |
| primary_g_y | uint | green primary Y * 10000 |
| primary_b_x | uint | blue primary X * 10000 |
| primary_b_y | uint | blue primary Y * 10000 |
| white_point_x | uint | white point X * 10000 |
| white_point_y | uint | white point Y * 10000 |
[已弃用] 从参数创建色彩空间对象。此请求返回一个 zcr_color_space_creator_v1 对象,该对象将返回错误 或成功创建的 zcr_color_space_v1 对象。
EOTF 不得为 unknown。否则,或给定的 EOTF 未列在 枚举中时,将引发 bad_enum 协议错误。
白点必须位于红、绿、蓝三基色构成的三角形内部。 否则将引发 bad_param 协议错误。
所有色度值乘以 10000 以产生协议传输的整数值。
有关创建对象的更多详细信息,请参阅 zcr_color_space_v1 和 zcr_color_space_creator_v1 接口。请改用 create_color_space_from_complete_params。
get_color_management_output(id: new_id<zcr_color_management_output_v1>, output: object<wl_output>)
参数 | 类型 | 描述 |
|---|---|---|
| id | new_id<zcr_color_management_output_v1> | |
| output | object<wl_output> |
为给定的 wl_output 创建一个新的 zcr_color_management_output_v1 对象。
有关更多详细信息,请参阅 zcr_color_management_output_v1 接口。
get_color_management_surface(id: new_id<zcr_color_management_surface_v1>, surface: object<wl_surface>)
参数 | 类型 | 描述 |
|---|---|---|
| id | new_id<zcr_color_management_surface_v1> | |
| surface | object<wl_surface> |
为给定的 wl_surface 创建一个新的 zcr_color_management_surface_v1 对象。
有关更多详细信息,请参阅 zcr_color_management_surface_v1 接口。
destroy()
销毁 zcr_color_manager_v1 对象。这不会以任何方式 影响任何其他对象。
create_color_space_from_complete_names(id: new_id<zcr_color_space_creator_v1>, eotf: uint<zcr_color_manager_v1.eotf_names>, chromaticity: uint<zcr_color_manager_v1.chromaticity_names>, whitepoint: uint<zcr_color_manager_v1.whitepoint_names>, matrix: uint<zcr_color_manager_v1.matrix_names>, range: uint<zcr_color_manager_v1.range_names>)
参数 | 类型 | 描述 |
|---|---|---|
| id | new_id<zcr_color_space_creator_v1> | |
| eotf | uint<zcr_color_manager_v1.eotf_names> | EOTF |
| chromaticity | uint<zcr_color_manager_v1.chromaticity_names> | chromaticity |
| whitepoint | uint<zcr_color_manager_v1.whitepoint_names> | whitepoint |
| matrix | uint<zcr_color_manager_v1.matrix_names> | color matrix |
| range | uint<zcr_color_manager_v1.range_names> | color range |
从已知名称创建色彩空间对象。此请求返回一个 zcr_color_space_creator_v1 对象,该对象将返回错误 或成功创建的 zcr_color_space_v1 对象。
EOTF、色度和白点不得为 unknown。否则,或给定值 未列在枚举中时,将引发 bad_enum 协议错误。
此请求还包含矩阵和范围信息。
有关创建对象的更多详细信息,请参阅 zcr_color_space_v1 和 zcr_color_space_creator_v1 接口。
create_color_space_from_complete_params(id: new_id<zcr_color_space_creator_v1>, eotf: uint<zcr_color_manager_v1.eotf_names>, matrix: uint<zcr_color_manager_v1.matrix_names>, range: uint<zcr_color_manager_v1.range_names>, primary_r_x: uint, primary_r_y: uint, primary_g_x: uint, primary_g_y: uint, primary_b_x: uint, primary_b_y: uint, white_point_x: uint, white_point_y: uint)
参数 | 类型 | 描述 |
|---|---|---|
| id | new_id<zcr_color_space_creator_v1> | |
| eotf | uint<zcr_color_manager_v1.eotf_names> | EOTF |
| matrix | uint<zcr_color_manager_v1.matrix_names> | Color matrix |
| range | uint<zcr_color_manager_v1.range_names> | Color range |
| primary_r_x | uint | red primary X * 10000 |
| primary_r_y | uint | red primary Y * 10000 |
| primary_g_x | uint | green primary X * 10000 |
| primary_g_y | uint | green primary Y * 10000 |
| primary_b_x | uint | blue primary X * 10000 |
| primary_b_y | uint | blue primary Y * 10000 |
| white_point_x | uint | white point X * 10000 |
| white_point_y | uint | white point Y * 10000 |
从参数创建色彩空间对象。此请求返回一个 zcr_color_space_creator_v1 对象,该对象将返回错误 或成功创建的 zcr_color_space_v1 对象。
EOTF 不得为 unknown。否则,或给定的 EOTF 未列在 枚举中时,将引发 bad_enum 协议错误。
白点必须位于红、绿、蓝三基色构成的三角形内部。 否则将引发 bad_param 协议错误。
所有色度值乘以 10000 以产生协议传输的整数值。
此请求还包含矩阵和范围信息。
有关创建对象的更多详细信息,请参阅 zcr_color_space_v1 和 zcr_color_space_creator_v1 接口。
eotf_names { unknown, linear, srgb, bt2087, adobergb, pq, hlg, bt709, extendedsrgb10, smpte170m, smpte240m, smptest428_1, log, log_sqrt, iec61966_2_4, bt1361_ecg, bt2020_10, bt2020_12, scrgb_linear_80_nits, gamma18, gamma28, srgb_hdr }
参数 | 值 | 描述 |
|---|---|---|
| unknown | 0 | 未知 EOTF |
| linear | 1 | 线性传递函数 |
| srgb | 2 | sRGB 传递函数 |
| bt2087 | 3 | BT.2087 传递函数 |
| adobergb | 4 | AdobeRGB 传递函数 |
| pq | 5 | 感知量化器 / SMPTEST2084 |
| hlg起始版本 2 | 6 | 混合对数伽马 |
| bt709起始版本 2 | 7 | 用于 rec709 编码视频的伽马 |
| extendedsrgb10起始版本 2 | 8 | 带 HDR 余量的 sRGB 传递函数 |
| smpte170m起始版本 5 | 9 | SMPTE240M 传递函数 |
| smpte240m起始版本 5 | 10 | SMPTE240M 传递函数 |
| smptest428_1起始版本 5 | 11 | SMPTEST428_1 传递函数 |
| log起始版本 5 | 12 | LOG 传递函数 |
| log_sqrt起始版本 5 | 13 | LOG Sqrt 传递函数 |
| iec61966_2_4起始版本 5 | 14 | IEC61966_2_4 传递函数 |
| bt1361_ecg起始版本 5 | 15 | BT1361_ECG 传递函数 |
| bt2020_10起始版本 5 | 16 | BT2020_10 传递函数 |
| bt2020_12起始版本 5 | 17 | BT2020_12 传递函数 |
| scrgb_linear_80_nits起始版本 5 | 18 | SCRGB 线性传递函数 |
| gamma18起始版本 5 | 19 | GAMMA18 传递函数 |
| gamma28起始版本 5 | 20 | GAMMA28 传递函数 |
| srgb_hdr起始版本 6 | 21 | sRGB 传递函数 |
描述已知 EOTF 的名称。
合成器必须根据协议接口版本支持所有这些名称。
chromaticity_names { unknown, bt601_525_line, bt601_625_line, smpte170m, bt709, bt2020, srgb, displayp3, adobergb, wide_gamut_color_spin, bt470m, smpte240m, xyz_d50, smptest428_1, smptest431_2, film }
参数 | 值 | 描述 |
|---|---|---|
| unknown | 0 | 未知色度 |
| bt601_525_line | 1 | ITU-R BT.601 http://www.itu.int/rec/R-REC-BT.601/en |
| bt601_625_line | 2 | ITU-R BT.601 http://www.itu.int/rec/R-REC-BT.601/en |
| smpte170m | 3 | SMPTE 170M-1999 https://www.itu.int/rec/R-REC-BT.1700/en |
| bt709 | 4 | ITU-R BT.709 https://www.itu.int/rec/R-REC-BT.709/en |
| bt2020 | 5 | ITU-R BT.2020 http://www.itu.int/rec/R-REC-BT.2020/en |
| srgb | 6 | IEC/4WD 61966-2-1: sRGB https://webstore.iec.ch/publication/6169 |
| displayp3 | 7 | Display P3 https://developer.apple.com/reference/coregraphics/cgcolorspace/1408916-displayp3 |
| adobergb | 8 | Adobe RGB https://www.adobe.com/digitalimag/pdfs/AdobeRGB1998.pdf |
| wide_gamut_color_spin起始版本 5 | 9 | |
| bt470m起始版本 5 | 10 | |
| smpte240m起始版本 5 | 11 | |
| xyz_d50起始版本 5 | 12 | |
| smptest428_1起始版本 5 | 13 | |
| smptest431_2起始版本 5 | 14 | |
| film起始版本 5 | 15 |
描述已知色度的名称。
合成器必须根据协议接口版本支持所有这些名称。
描述已知白点的名称。
合成器必须根据协议接口版本支持所有这些名称。
matrix_names { unknown, rgb, bt709, bt2020_ncl, bt2020_cl, fcc, smpte170m, smpte240m, ydzdx, bt470bg, gbr, ycocg }
参数 | 值 | 描述 |
|---|---|---|
| unknown | 0 | 未知范围 |
| rgb | 1 | RGB 矩阵 |
| bt709 | 2 | BT709 矩阵 |
| bt2020_ncl | 3 | BT2020_NCL 矩阵 |
| bt2020_cl | 4 | BT2020_CL 矩阵 |
| fcc | 5 | FCC 矩阵 |
| smpte170m | 6 | SMPTE170M 矩阵 |
| smpte240m | 7 | SMPTE240M 矩阵 |
| ydzdx起始版本 5 | 8 | YDZDX 矩阵 |
| bt470bg起始版本 5 | 9 | BT470BG 矩阵 |
| gbr起始版本 5 | 10 | GBR 矩阵 |
| ycocg起始版本 5 | 11 | YCOCG 矩阵 |
描述典型色彩空间矩阵 ID 的名称
zcr_color_management_output_v1 描述输出设备的色彩属性。
创建 zcr_color_management_output_v1 对象时,它将发送初始事件, 随后是 wl_output.done 事件。创建 wl_output 及其扩展对象时, 使用最终的 wl_display.sync 以确保所有扩展的输出事件都已被接收。
如果与 zcr_color_management_output_v1 关联的 wl_output 被销毁, zcr_color_management_output_v1 对象将变为惰性。
get_color_space(id: new_id<zcr_color_space_v1>)
参数 | 类型 | 描述 |
|---|---|---|
| id | new_id<zcr_color_space_v1> |
为输出设备的当前色彩空间创建一个新的 zcr_color_space_v1 对象。 输出设备始终恰好有一个活动色彩空间,因此客户端应销毁 先前调用此请求创建的色彩空间。此请求通常作为对 color_space_changed 事件的响应或在创建 zcr_color_management_output_v1 对象时发送。
创建的 zcr_color_space_v1 对象保存对象创建时 输出设备的色彩空间。
生成的色彩空间对象允许 get_information 请求。
有关更多详细信息,请参阅 zcr_color_space_v1 接口。
destroy()
销毁 zcr_color_management_output_v1 对象。这不会影响 任何剩余的协议对象。
color_space_changed()
当输出设备的色彩空间发生变化时发送 color_space_changed 事件, 随后是所有扩展共用的 wl_output.done 事件。
这不是初始事件。
extended_dynamic_range(value: uint)
参数 | 类型 | 描述 |
|---|---|---|
| value | uint | EDR value * 1000 |
这既是初始事件,也会在值发生变化时发送。 当值发生变化时,此事件之后是所有扩展共用的 wl_output.done 事件。
扩展动态范围值描述相对于 SDR 最大白色的可用动态范围。 EDR 值与亮度成正比,黑色亮度作为零电平。 值为 1.0 表示显示器无法显示比 SDR 最大白色更亮的内容。 值为 3.0 表示 SDR 最大白色为显示器可产生的最高亮度的 三分之一。
SDR 最大白色的绝对亮度取决于显示器功能、观看条件 和观看者的个人偏好。因此,无法给出以 cd/m² 为单位的 单一值。使用 HDR 视频模式的合成器应允许用户控制 用于计算输出 EDR 值的 SDR 最大白色电平。
SDR 最大白色是一个相对参考亮度,允许将来自不同动态范围 的内容色调映射到单一的公共动态范围进行显示。
EDR 值乘以 1000 以产生协议传输的整数值。
zcr_color_management_surface_v1 允许客户端设置 surface 的 色彩空间和 HDR 属性。
如果与 zcr_color_management_surface_v1 关联的 wl_surface 被销毁, zcr_color_management_surface_v1 对象将变为惰性。
set_alpha_mode(alpha_mode: uint<zcr_color_management_surface_v1.alpha_mode>)
参数 | 类型 | 描述 |
|---|---|---|
| alpha_mode | uint<zcr_color_management_surface_v1.alpha_mode> | alpha mode |
假设 alpha 通道存在,它始终是线性的。alpha 模式决定 色彩通道是否包含预乘 alpha。使用直接 alpha 可能具有 性能优势。
Alpha 模式是双缓冲的,将在调用相应 wl_surface 的 wl_surface.commit 时应用。
默认情况下,surface 被假定为具有预乘 alpha。
set_extended_dynamic_range(value: uint)
参数 | 类型 | 描述 |
|---|---|---|
| value | uint | EDR value * 1000 |
设置底层 surface 的扩展动态范围(EDR)值。 EDR 值是双缓冲的,将在调用相应 wl_surface 的 wl_surface.commit 时应用。
EDR 值描述相对于 SDR 最大白色编码了多少动态范围。 EDR 值与亮度成正比,使用黑色亮度作为零电平。 值为 1.0 表示 SDR 最大白色是 surface 的最高可能亮度。 值为 3.0 表示 SDR 最大白色是 surface 最高可能亮度的 三分之一。
附加到 surface 的色彩空间可以使缓冲区中的代码值 在亮度方面呈非线性。因此,产生最大代码值三分之一亮度 的代码值可能不是最大代码值的三分之一。
有关输出设备上 SDR 最大白色的定义,请参阅 zcr_color_management_output_v1.extended_dynamic_range。 内容制作商可以自由选择其 SDR 最大白色电平。 如何显示取决于显示器功能和输出 EDR 值。
默认情况下 EDR 值为 1.0。合成器将对图像进行色调映射 以匹配 surface 所显示的每个输出设备的 EDR。 EDR 到 EDR 映射的目标是产生一种相对亮度映射, 无论观看条件和显示器功能如何,都能呈现同样良好的效果, 前提是输出 EDR 值已根据输出功能和观看环境进行了调整。 提供已色调映射到 surface 所显示输出设备 EDR 值的内容, 可能在性能和图像质量方面具有优势。
EDR 值乘以 1000 以产生协议传输的整数值。
set_color_space(color_space: object<zcr_color_space_v1>, render_intent: uint<zcr_color_management_surface_v1.render_intent>)
参数 | 类型 | 描述 |
|---|---|---|
| color_space | object<zcr_color_space_v1> | |
| render_intent | uint<zcr_color_management_surface_v1.render_intent> | render intent |
设置底层 surface 的色彩空间。色彩空间和渲染意图 是双缓冲的,将在调用相应 wl_surface 的 wl_surface.commit 时应用。
渲染意图为合成器提供提示,说明在色彩空间转换中 应优化什么。
默认情况下,surface 被假定为具有 sRGB 色彩空间和 任意渲染意图。
如果 surface 的色彩空间与其所显示的输出设备的色彩空间 匹配,性能和色彩准确性可能会提高。要查找这些色彩空间, 客户端可以监听 preferred_color_space 或 wl_surface.enter/leave 事件。此改进可能需要使用 zcr_color_management_output_v1.get_color_space 创建的 色彩空间对象。
set_default_color_space()
此请求将 surface 的色彩空间设置为默认值,请参阅 set_color_space。设置将在调用相应 wl_surface 的 wl_surface.commit 时应用。
destroy()
销毁 zcr_color_management_surface_v1 对象。
当 wl_surface 的最后一个 zcr_color_management_surface_v1 对象被销毁时,销毁将挂起取消设置 wl_surface 的色彩空间、 渲染意图和 alpha 模式,类似于 set_color_space 将挂起设置。
当合成器确定或切换到暗示首选色彩空间的输出设备时, 发送 preferred_color_space 事件。首选色彩空间是客户端 用于其 surface 内容时可能获得最佳性能和质量的色彩空间。
此事件不携带 zcr_color_space_v1 而是 wl_output 对象。 具体的 zcr_color_space_v1 可以通过在输出设备上调用 zcr_color_management_output_v1.get_color_space 并监听 zcr_color_management_output_v1.color_space_changed 事件来创建。
由于客户端可能多次绑定到同一全局 wl_output, 此事件将发送给与首选色彩空间输出设备匹配的每个绑定实例。 如果客户端根本没有绑定到正确的 wl_output 全局对象, 则不会发送此事件。
这只是一个提示,客户端可以使用 set_color_space 设置 任何有效的色彩空间,但提供首选色彩空间中的 surface 可能会提高性能和色彩准确性。
render_intent { perceptual, relative, saturation, absolute, relative_bpc }
参数 | 值 | 描述 |
|---|---|---|
| perceptual | 0 | 感知 |
| relative | 1 | 媒体相对色度 |
| saturation | 2 | 饱和度 |
| absolute | 3 | ICC 绝对色度 |
| relative_bpc | 4 | 媒体相对色度 + 黑点补偿 |
渲染意图允许客户端提示如何执行色彩空间转换。
有关渲染意图的更多详细信息,请参阅 ICC 规范。
alpha_mode { straight, premultiplied }
参数 | 值 | 描述 |
|---|---|---|
| straight | 0 | alpha 独立于色彩通道 |
| premultiplied | 1 | alpha 预乘到色彩通道中 |
指定 alpha 是否预乘到色彩通道中。如果预乘, 线性 alpha 值已与色彩通道中的(非线性)色彩通道 代码值相乘。
zcr_color_space_creator_v1 对象返回创建的色彩空间 或创建过程中发生的错误。
一旦 zcr_color_space_creator_v1 对象发送了 'created' 或 'error' 事件,它将自动销毁。
created(id: new_id<zcr_color_space_v1>)
参数 | 类型 | 描述 |
|---|---|---|
| id | new_id<zcr_color_space_v1> |
交付成功创建的色彩空间。
生成的色彩空间对象不允许 get_information 请求。
error(error: uint<zcr_color_space_creator_v1.creation_error>)
参数 | 类型 | 描述 |
|---|---|---|
| error | uint<zcr_color_space_creator_v1.creation_error> | error bitmask |
如果色彩空间创建失败,则发送此事件。
creation_error { malformed_icc, bad_icc, bad_primaries, bad_whitepoint }
参数 | 值 | 描述 |
|---|---|---|
| malformed_icc | 0x1 | ICC 配置文件格式错误 |
| bad_icc | 0x2 | ICC 配置文件不满足要求 |
| bad_primaries | 0x4 | 三基色无效 |
| bad_whitepoint | 0x8 | 白点无效 |
尝试创建色彩空间时发生的错误位掩码
引用一个可附加到 surface 的色彩空间 (zcr_color_management_surface_v1.set_color_space)。 它可以提供 ICC 配置文件和已知名称等信息, 以允许客户端了解色彩空间并自行进行色彩转换。
创建后,无论创建方式如何,zcr_color_space_v1 对象 始终引用一个固定的色彩空间。
客户端可以使用 zcr_color_manager_v1 请求创建 zcr_color_space_v1 对象,或通过调用 zcr_color_management_output_v1.get_color_space 从输出设备创建。
其他扩展可以定义更多的 zcr_color_space_v1 工厂接口。 这些接口必须显式指定所创建对象的接口版本, 否则将无法正确对 zcr_color_space_v1 进行版本控制。 使用在 XML 中未定义 'interface' 属性的 'new_id' 参数 会强制代码生成器添加两个显式参数:interface 和 version。 Version 是所需的显式版本号,interface 应被要求为 "zcr_color_space_v1"。合成器支持的 zcr_color_space_v1 版本 由 wl_registry 中公布的 zcr_color_manager_v1 定义。
get_information()
作为对此请求的响应,合成器将发送描述此色彩空间对象的 所有可用信息事件,最后发送 'done' 事件。 其他扩展可以定义在 'done' 之前发送的更多事件。
此请求仅允许在创建对象的消息指定允许 get_information 的 zcr_color_space_v1 对象上调用。否则将引发 no_information 协议错误。
同一对象上的每个 get_information 请求将始终返回完全相同的数据。
请参阅 zcr_color_management_output_v1.get_color_space 和 zcr_color_space_creator_v1.created。
destroy()
销毁 zcr_color_space_v1 对象。
销毁在 surface 或输出设备上处于活动状态的 zcr_color_space_v1 不会更改这些对象的色彩空间。
此事件仅可作为 zcr_color_space_v1.get_information 的 响应发送。
icc 参数向客户端提供一个文件描述符,可以内存映射 以获取描述色彩空间的 ICC 配置文件。 客户端必须使用 MAP_PRIVATE 且只读方式映射 fd。
合成器应在请求信息时始终发送此事件。 ICC 配置文件提供了所有色彩管理客户端可以依赖的共同基础。
names(eotf: uint<zcr_color_manager_v1.eotf_names>, chromaticity: uint<zcr_color_manager_v1.chromaticity_names>, whitepoint: uint<zcr_color_manager_v1.whitepoint_names>)
参数 | 类型 | 描述 |
|---|---|---|
| eotf | uint<zcr_color_manager_v1.eotf_names> | EOTF |
| chromaticity | uint<zcr_color_manager_v1.chromaticity_names> | chromaticity |
| whitepoint | uint<zcr_color_manager_v1.whitepoint_names> | whitepoint |
[已弃用] 此事件仅可作为 zcr_color_space_v1.get_information 的 响应发送。
EOTF、色度和白点包含这些属性的已知名称(如果可用), 否则为 unknown。
合成器不应假设所有客户端都能理解这些名称。 这些名称是为客户端方便而提供的。如果客户端理解名称三元组, 它可以忽略关于色彩空间的其他信息,例如 ICC 配置文件。 请改用 complete_names。
params(eotf: uint<zcr_color_manager_v1.eotf_names>, primary_r_x: uint, primary_r_y: uint, primary_g_x: uint, primary_g_y: uint, primary_b_x: uint, primary_b_y: uint, white_point_x: uint, white_point_y: uint)
参数 | 类型 | 描述 |
|---|---|---|
| eotf | uint<zcr_color_manager_v1.eotf_names> | EOTF |
| primary_r_x | uint | red primary X * 10000 |
| primary_r_y | uint | red primary Y * 10000 |
| primary_g_x | uint | green primary X * 10000 |
| primary_g_y | uint | green primary Y * 10000 |
| primary_b_x | uint | blue primary X * 10000 |
| primary_b_y | uint | blue primary Y * 10000 |
| white_point_x | uint | white point X * 10000 |
| white_point_y | uint | white point Y * 10000 |
[已弃用] 此事件仅可作为 zcr_color_space_v1.get_information 的 响应发送。
RGB 三基色值参数连同白点值参数和 eotf 可用于定义 任意或自定义色彩空间。
eotf 枚举包含该属性的已知名称,但合成器不应假设 所有客户端都能理解这些名称。请改用 complete_params。
done()
此事件仅可作为 zcr_color_space_v1.get_information 的 响应发送。
这表示该对象的所有色彩空间信息事件已全部交付。
complete_names(eotf: uint<zcr_color_manager_v1.eotf_names>, chromaticity: uint<zcr_color_manager_v1.chromaticity_names>, whitepoint: uint<zcr_color_manager_v1.whitepoint_names>, matrix: uint<zcr_color_manager_v1.matrix_names>, range: uint<zcr_color_manager_v1.range_names>)
参数 | 类型 | 描述 |
|---|---|---|
| eotf | uint<zcr_color_manager_v1.eotf_names> | EOTF |
| chromaticity | uint<zcr_color_manager_v1.chromaticity_names> | chromaticity |
| whitepoint | uint<zcr_color_manager_v1.whitepoint_names> | whitepoint |
| matrix | uint<zcr_color_manager_v1.matrix_names> | Color matrix |
| range | uint<zcr_color_manager_v1.range_names> | Color range |
此事件仅可作为 zcr_color_space_v1.get_information 的 响应发送。
EOTF、色度、矩阵、范围和白点包含这些属性的已知名称 (如果可用),否则为 unknown。
合成器不应假设所有客户端都能理解这些名称。 这些名称是为客户端方便而提供的。如果客户端理解名称三元组, 它可以忽略关于色彩空间的其他信息,例如 ICC 配置文件。
complete_params(eotf: uint<zcr_color_manager_v1.eotf_names>, matrix: uint<zcr_color_manager_v1.matrix_names>, range: uint<zcr_color_manager_v1.range_names>, primary_r_x: uint, primary_r_y: uint, primary_g_x: uint, primary_g_y: uint, primary_b_x: uint, primary_b_y: uint, white_point_x: uint, white_point_y: uint)
参数 | 类型 | 描述 |
|---|---|---|
| eotf | uint<zcr_color_manager_v1.eotf_names> | EOTF |
| matrix | uint<zcr_color_manager_v1.matrix_names> | Color matrix |
| range | uint<zcr_color_manager_v1.range_names> | Color range |
| primary_r_x | uint | red primary X * 10000 |
| primary_r_y | uint | red primary Y * 10000 |
| primary_g_x | uint | green primary X * 10000 |
| primary_g_y | uint | green primary Y * 10000 |
| primary_b_x | uint | blue primary X * 10000 |
| primary_b_y | uint | blue primary Y * 10000 |
| white_point_x | uint | white point X * 10000 |
| white_point_y | uint | white point Y * 10000 |
此事件仅可作为 zcr_color_space_v1.get_information 的 响应发送。
RGB 三基色值参数连同白点值参数和 eotf 可用于定义 任意或自定义色彩空间。
eotf 枚举包含该属性的已知名称,但合成器不应假设 所有客户端都能理解这些名称。
合成器支持
Copyright
Copyright 2019 Sebastian Wick Copyright 2019 Erwin Burema Copyright 2020 AMD Copyright 2020 Collabora, Ltd.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.