color: convert tabs to spaces, fix indenting

vscode really does not handle tab width being different from indent
width. Simpler is better, let's not mix tabs and spaces especially when
indent is not 8 wide.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
This commit is contained in:
Pekka Paalanen 2022-11-29 13:09:01 +02:00 committed by Sebastian Wick
parent 2152441198
commit 0a764e3919

View file

@ -2,57 +2,57 @@
<protocol name="color_management_unstable_v1">
<copyright>
Copyright 2019 Sebastian Wick
Copyright 2019 Erwin Burema
Copyright 2020 AMD
Copyright 2020 Collabora, Ltd.
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:
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 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.
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.
</copyright>
<description summary="color management protocol">
An image description includes SDR and HDR colorimetry and encoding, HDR
metadata, and viewing environment parameters. This extension allows a
client to set an image description for its windows, and get the image
description of outputs.
An image description includes SDR and HDR colorimetry and encoding, HDR
metadata, and viewing environment parameters. This extension allows a
client to set an image description for its windows, and get the image
description of outputs.
</description>
<interface name="zwp_color_manager_v1" version="1">
<description summary="color manager singleton">
A global interface used for getting color management surface and color
management output objects as well as creating image description objects from
ICC profiles, parameters, or enumerated names.
A global interface used for getting color management surface and color
management output objects as well as creating image description objects from
ICC profiles, parameters, or enumerated names.
</description>
<enum name="cicp_color_primaries_id">
<description summary="cicp_color_primaries_map">
Well known chromaticity names
Well known chromaticity names
ColourPrimaries as defined in Rec ITU-T H.273 Coding-independent code points for video signal type identification.
ColourPrimaries as defined in Rec ITU-T H.273 Coding-independent code points for video signal type identification.
</description>
<entry name="bt709_6" value="1" summary="ITU-R BT.709-6"/>
<entry name="smpte_rp_177" value="1" summary="SMPTE RP 177"/>
<entry name="bt1361" value="1" summary="ITU-R BT.1361-0"/>
<entry name="bt1361_conventional" value="1" summary="ITU-R BT.1361-0 conventional"/>
<entry name="bt1361_extended_colour_gamut" value="1"
summary="ITU-R BT.1361-0 extended colour gamut system (historical)"/>
summary="ITU-R BT.1361-0 extended colour gamut system (historical)"/>
<entry name="bt470_6_m" value="4" summary="ITU-R BT.470-6 System M (historical)"/>
<entry name="bt470_6_b" value="5" summary="ITU-R BT.470-6 System B (historical)"/>
<entry name="bt470_6_g" value="5" summary="ITU-R BT.470-6 System G (historical)"/>
@ -82,10 +82,10 @@
<request name="get_color_management_output">
<description summary="create a color management interface for a wl_output">
This creates a new zwp_color_management_output_v1 object for the
given wl_output.
This creates a new zwp_color_management_output_v1 object for the
given wl_output.
See the zwp_color_management_output_v1 interface for more details.
See the zwp_color_management_output_v1 interface for more details.
</description>
<arg name="id" type="new_id" interface="zwp_color_management_output_v1"/>
<arg name="output" type="object" interface="wl_output"/>
@ -93,10 +93,10 @@
<request name="get_color_management_surface">
<description summary="create a color management interface for a wl_surface">
This creates a new color zwp_color_management_surface_v1 object for the
given wl_surface.
This creates a new color zwp_color_management_surface_v1 object for the
given wl_surface.
See the zwp_color_management_surface_v1 interface for more details.
See the zwp_color_management_surface_v1 interface for more details.
</description>
<arg name="id" type="new_id" interface="zwp_color_management_surface_v1"/>
<arg name="surface" type="object" interface="wl_surface"/>
@ -104,52 +104,52 @@
<request name="destroy" type="destructor">
<description summary="destroy the color manager">
Destroy the zwp_color_manager_v1 object. This does not affect any other
objects in any way.
Destroy the zwp_color_manager_v1 object. This does not affect any other
objects in any way.
</description>
</request>
</interface>
<interface name="zwp_color_management_output_v1" version="1">
<description summary="output color properties">
A zwp_color_management_output_v1 describes the color properties of an
output.
A zwp_color_management_output_v1 describes the color properties of an
output.
When zwp_color_management_output_v1 object is created, it will send
its initial events followed by a wl_output.done event. When creating
wl_output and its extension objects, use a final wl_display.sync to
guarantee that all output events have been received across all
extensions.
When zwp_color_management_output_v1 object is created, it will send
its initial events followed by a wl_output.done event. When creating
wl_output and its extension objects, use a final wl_display.sync to
guarantee that all output events have been received across all
extensions.
If the wl_output associated with the zwp_color_management_output_v1 is
destroyed, the zwp_color_management_output_v1 object becomes inert.
If the wl_output associated with the zwp_color_management_output_v1 is
destroyed, the zwp_color_management_output_v1 object becomes inert.
</description>
<event name="image_description_changed">
<description summary="image description changed">
The image_description_changed event is sent whenever the image description of the
output changed, followed by one wl_output.done event common to
output events across all extensions.
The image_description_changed event is sent whenever the image description of the
output changed, followed by one wl_output.done event common to
output events across all extensions.
This is not an initial event.
This is not an initial event.
</description>
</event>
<request name="get_image_description">
<description summary="get the image description of the output">
This creates a new zwp_image_description_v1 object for the current image description
of the output. There always is exactly one image description active for an
output so the client should destroy the image description created by earlier
invocations of this request. This request is usually sent as a reaction
to the image_description_changed event or when creating a
zwp_color_management_output_v1 object.
This creates a new zwp_image_description_v1 object for the current image description
of the output. There always is exactly one image description active for an
output so the client should destroy the image description created by earlier
invocations of this request. This request is usually sent as a reaction
to the image_description_changed event or when creating a
zwp_color_management_output_v1 object.
The created zwp_image_description_v1 object preserves the image_description
of the output from the time the object was created.
The created zwp_image_description_v1 object preserves the image_description
of the output from the time the object was created.
The resulting image description object allows get_information request.
The resulting image description object allows get_information request.
See the zwp_image_description_v1 interface for more details.
See the zwp_image_description_v1 interface for more details.
</description>
<arg name="id" type="new_id" interface="zwp_image_description_v1"/>
</request>
@ -158,28 +158,28 @@
<request name="destroy" type="destructor">
<description summary="destroy the color management output">
Destroy the color zwp_color_management_output_v1 object. This does not
affect any remaining protocol objects.
Destroy the color zwp_color_management_output_v1 object. This does not
affect any remaining protocol objects.
</description>
</request>
</interface>
<interface name="zwp_color_management_surface_v1" version="1">
<description summary="color management extension to a surface">
A zwp_color_management_surface_v1 allows the client to set the color
space and HDR properties of a surface.
A zwp_color_management_surface_v1 allows the client to set the color
space and HDR properties of a surface.
If the wl_surface associated with the zwp_color_management_surface_v1 is
destroyed, the zwp_color_management_surface_v1 object becomes inert.
If the wl_surface associated with the zwp_color_management_surface_v1 is
destroyed, the zwp_color_management_surface_v1 object becomes inert.
</description>
<enum name="render_intent">
<description summary="render intent">
<!-- FIXME: rendering intent is not just a hint -->
Rendering intent allow the client to hint at how to perform color space
transformations.
<!-- FIXME: rendering intent is not just a hint -->
Rendering intent allow the client to hint at how to perform color space
transformations.
See the ICC specification for more details about rendering intent.
See the ICC specification for more details about rendering intent.
</description>
<entry name="perceptual" value="0" summary="perceptual"/>
<entry name="relative" value="1" summary="media-relative colorimetric"/>
@ -190,9 +190,9 @@
<enum name="alpha_mode">
<description summary="alpha mode">
Specifies whether alpha is pre-multiplied into color channels or not.
If pre-multiplied, the linear alpha value is already multiplied with the
(non-linear) color channel code values in the color channels.
Specifies whether alpha is pre-multiplied into color channels or not.
If pre-multiplied, the linear alpha value is already multiplied with the
(non-linear) color channel code values in the color channels.
</description>
<entry name="straight" value="0" summary="alpha is independent from color channels"/>
<entry name="premultiplied" value="1" summary="alpha is pre-multiplied into color channels"/>
@ -200,37 +200,37 @@
<request name="set_alpha_mode">
<description summary="set the surface alpha mode">
Assuming an alpha channel exists, it is always linear. The alpha mode
determines whether the color channels include alpha pre-multiplied or
not. Using straight alpha might have performance benefits.
Assuming an alpha channel exists, it is always linear. The alpha mode
determines whether the color channels include alpha pre-multiplied or
not. Using straight alpha might have performance benefits.
Alpha mode is double buffered, and will be applied at the time
wl_surface.commit of the corresponding wl_surface is called.
Alpha mode is double buffered, and will be applied at the time
wl_surface.commit of the corresponding wl_surface is called.
By default, a surface is assumed to have pre-multiplied alpha.
By default, a surface is assumed to have pre-multiplied alpha.
</description>
<arg name="alpha_mode" type="uint" enum="alpha_mode" summary="alpha mode"/>
</request>
<request name="set_image_description">
<description summary="set the surface image description">
Set the image description of the underlying surface. The image description and
render intent are double buffered, and will be applied
at the time wl_surface.commit of the corresponding wl_surface is called.
Set the image description of the underlying surface. The image description and
render intent are double buffered, and will be applied
at the time wl_surface.commit of the corresponding wl_surface is called.
<!-- FIXME: same problem as in the render_intent enum -->
The render intent gives the compositor a hint what to optimize for in
color space transformations.
<!-- FIXME: same problem as in the render_intent enum -->
The render intent gives the compositor a hint what to optimize for in
color space transformations.
By default, a surface is assumed to have the sRGB color space and an
arbitrary render intent.
By default, a surface is assumed to have the sRGB color space and an
arbitrary render intent.
If the image description of the surface matches the image description of an output
it is shown on the performance and color accuracy might improve. To find
those image descriptions the client can listen to the preferred_image_description or
the wl_surface.enter/leave events. This improvement may require using
the image description object created by
zwp_color_management_output_v1.get_image_description.
If the image description of the surface matches the image description of an output
it is shown on the performance and color accuracy might improve. To find
those image descriptions the client can listen to the preferred_image_description or
the wl_surface.enter/leave events. This improvement may require using
the image description object created by
zwp_color_management_output_v1.get_image_description.
</description>
<arg name="image_description" type="object" interface="zwp_image_description_v1"/>
<arg name="render_intent" type="uint" enum="render_intent" summary="render intent"/>
@ -238,9 +238,9 @@
<request name="set_default_image_description">
<description summary="set the surface image description to default">
This request sets the surface image description to the defaults, see
set_image_description. The setting will be applied at the time
wl_surface.commit of the corresponding wl_surface is called.
This request sets the surface image description to the defaults, see
set_image_description. The setting will be applied at the time
wl_surface.commit of the corresponding wl_surface is called.
</description>
</request>
@ -248,117 +248,121 @@
<event name="preferred_image_description">
<description summary="output for color optimization">
The preferred_image_description event is sent when the compositor determines
or switches the output that implies the preferred image description. The
preferred image description is the one which likely has the most performance
and quality benefits if used by a client for its surface contents.
The preferred_image_description event is sent when the compositor determines
or switches the output that implies the preferred image description. The
preferred image description is the one which likely has the most performance
and quality benefits if used by a client for its surface contents.
The event does not carry a zwp_image_description_v1 but a wl_output object.
The concrete zwp_image_description_v1 can be created by calling
zwp_color_management_output_v1.get_image_description on the output and
listening to zwp_color_management_output_v1.image_description_changed
events.
The event does not carry a zwp_image_description_v1 but a wl_output object.
The concrete zwp_image_description_v1 can be created by calling
zwp_color_management_output_v1.get_image_description on the output and
listening to zwp_color_management_output_v1.image_description_changed
events.
As clients may bind to the same global wl_output multiple
times, this event is sent for each bound instance that matches
the preferred image description output. If a client has not bound to
the right wl_output global at all, this event is not sent.
As clients may bind to the same global wl_output multiple
times, this event is sent for each bound instance that matches
the preferred image description output. If a client has not bound to
the right wl_output global at all, this event is not sent.
This is only a hint and clients can set any valid image description with
set_image_description but there might be performance and color accuracy
improvements by providing the surface in the preferred image description.
This is only a hint and clients can set any valid image description with
set_image_description but there might be performance and color accuracy
improvements by providing the surface in the preferred image description.
</description>
<arg name="output" type="object" interface="wl_output"/>
</event>
<request name="destroy" type="destructor">
<description summary="destroy the color management interface for a surface">
Destroy the zwp_color_management_surface_v1 object.
Destroy the zwp_color_management_surface_v1 object.
When the last zwp_color_management_surface_v1 object for a wl_surface
is destroyed, the destruction will pend unsetting the wl_surface's
image description, render intent and alpha mode similar to set_image_description
will pend a set.
When the last zwp_color_management_surface_v1 object for a wl_surface
is destroyed, the destruction will pend unsetting the wl_surface's
image description, render intent and alpha mode similar to set_image_description
will pend a set.
</description>
</request>
</interface>
<interface name="zwp_image_description_creator_icc_v1" version="1">
<description summary="image description creator">
A zwp_image_description_creator_v1 object returns a created image_description or the error
which occurred during creation.
A zwp_image_description_creator_v1 object returns a created image_description or the error
which occurred during creation.
This image description creator requires an ICC profile to create the object.
This image description creator requires an ICC profile to create the object.
Once a zwp_image_description_creator_v1 object has delivered a 'created' or 'error'
event it is automatically destroyed.
Once a zwp_image_description_creator_v1 object has delivered a 'created' or 'error'
event it is automatically destroyed.
</description>
<enum name="creation_error" bitfield="true">
<description summary="image description creation error">
Bitmask of errors which occured while trying to create an image description
Bitmask of errors which occured while trying to create an image description
</description>
<entry name="malformed_icc" value="0x1" summary="malformed ICC profile"/>
<entry name="bad_icc" value="0x2" summary="ICC profile does not meet requirements"/>
</enum>
<request name="create">
<description summary="Create the image description object using an ICC profile" >
Create a image description object based on icc profile.
Create a image description object based on icc profile.
</description>
</request>
<request name="set_icc">
<description summary="Set the International Color Consortium profile">
Set of data that characterizes a color input or output device, or a color
space. The profiles can be used to translate between different color
encodings (allows us to transfer a given color data into another
devices native color encoding)
Set of data that characterizes a color input or output device, or a color
space. The profiles can be used to translate between different color
encodings (allows us to transfer a given color data into another
devices native color encoding)
The fd must be seekable and the maximum size of the ICC profile is 4 MB.
Violating these requirements will raise an icc_fd protocol error. A
compositor must not modify the contents of the file, and the fd may be
sealed for writes and size changes.
The fd must be seekable and the maximum size of the ICC profile is 4 MB.
Violating these requirements will raise an icc_fd protocol error. A
compositor must not modify the contents of the file, and the fd may be
sealed for writes and size changes.
The file contents must represent a valid ICC profile.
The ICC profile version must be 2 or 4, it must be a 3 channel profile
and the class must be 'input', 'output', 'abstract' or 'display'.
Violating these requirements will not result in a protocol error but
raise the zwp_image_description_creator_v1.error event.
The file contents must represent a valid ICC profile.
The ICC profile version must be 2 or 4, it must be a 3 channel profile
and the class must be 'input', 'output', 'abstract' or 'display'.
Violating these requirements will not result in a protocol error but
raise the zwp_image_description_creator_v1.error event.
See the specification from International Color Consortium for more
details about ICC profiles, also known as ISO 15076-1:2010.
See the specification from International Color Consortium for more
details about ICC profiles, also known as ISO 15076-1:2010.
</description>
<arg name="icc_profile" type="fd" summary="ICC profile"/>
</request>
<event name="created">
<description summary="">
Delivers the successfully created image description
Delivers the successfully created image description
</description>
<arg name="image_description" type="new_id" interface="zwp_image_description_v1"/>
</event>
<event name="creation_error">
<description summary="">
This event is sent if the image_description creation failed.
This event is sent if the image_description creation failed.
</description>
<arg name="creation_error" type="uint" enum="creation_error" summary="error bitmask"/>
</event>
</interface>
<interface name="zwp_image_description_creator_params_v1" version="1">
<description summary="image description creator">
A zwp_image_description_creator_params_v1 object returns a created image_description or the error
which occurred during creation.
A zwp_image_description_creator_params_v1 object returns a created image_description or the error
which occurred during creation.
This image description creator requires parameters to be constructed (CICP, Gamma and Color primaries etc)
Once a zwp_image_description_creator_params_v1 object has delivered a 'created' or 'error'
event it is automatically destroyed.
This image description creator requires parameters to be constructed (CICP, Gamma and Color primaries etc)
Once a zwp_image_description_creator_params_v1 object has delivered a 'created' or 'error'
event it is automatically destroyed.
</description>
<enum name="error" bitfield="true">
<description summary="image description creation error">
Bitmask of errors which occured while trying to create a image description
Bitmask of errors which occured while trying to create a image description
</description>
<entry name="cicp_gamma" value="0x1" summary="CICP and Gamma TF are set"/>
<entry name="cicp_primaries" value="0x4" summary="CICP and custom primaries are set"/>
@ -366,48 +370,48 @@
<request name="create">
<description summary="Create the image description object using params" >
Create a image description object based on params.
Create a image description object based on params.
</description>
</request>
<request name="set_tf_cicp">
<description summary="Set the OETF or EOTF^-1" >
Sets the transfer characteristics of the source input
as described in Section 8.2 of the ITU-T H.273 spec
Sets the transfer characteristics of the source input
as described in Section 8.2 of the ITU-T H.273 spec
Either indicates the reference opto-electronic transfer characteristic
function of the source picture as a function of a source input linear
optical intensity input (Lc) with a nominal real-valued range of 0 to 1 or
indicates the inverse of the reference electro-optical transfer
characteristic function as a function of an output linear optical
intensity (Lo) with a nominal real-valued range of 0 to 1.
Either indicates the reference opto-electronic transfer characteristic
function of the source picture as a function of a source input linear
optical intensity input (Lc) with a nominal real-valued range of 0 to 1 or
indicates the inverse of the reference electro-optical transfer
characteristic function as a function of an output linear optical
intensity (Lo) with a nominal real-valued range of 0 to 1.
CICP uses 0 to 1 encoding range, which means that:
- Floating point reperesentations component in the range of [0.0, 1.0].
- Integer representation maps 0 to 0.0 and max value to 1 to 1.0.
CICP uses 0 to 1 encoding range, which means that:
- Floating point reperesentations component in the range of [0.0, 1.0].
- Integer representation maps 0 to 0.0 and max value to 1 to 1.0.
</description>
<arg name="cicp_transfer_characteristics" type="uint" enum="cicp_transfer_characteristics_id" summary="Value from ITU-T H.273 Section 8.2"/>
</request>
<request name="set_tf_gamma">
<description summary="Set the Gamma curve">
Sets the transfer characteristics as a gamma curve.
Sets the transfer characteristics as a gamma curve.
Use decimal value to define the gamma (e.g. 22 for a 2.2 Gamma, 24 for a 2.4 Gamma, etc)
Use decimal value to define the gamma (e.g. 22 for a 2.2 Gamma, 24 for a 2.4 Gamma, etc)
</description>
<arg name="gamma" type="uint" summary="The gamma type (2.2, 2.4 etc)"/>
</request>
<request name="set_primaries_cicp">
<description summary="Set the primaries from CICP ID">
Set the primaries using CICP ID (ID, as specified in ITU-T H.273 Table 2).
Set the primaries using CICP ID (ID, as specified in ITU-T H.273 Table 2).
</description>
<arg name="cicp_color_primaries" type="uint" enum="cicp_color_primaries_id" summary="Values from ITU H.273 Section 8.1"/>
</request>
<request name="set_primaries">
<description summary="Set the color primaries">
Indicates the chromaticity coordinates of the source colour primaries in
terms of CIE 1931
Indicates the chromaticity coordinates of the source colour primaries in
terms of CIE 1931
</description>
<arg name="r_x" type="uint" summary="Red x * 10000"/>
<arg name="r_y" type="uint" summary="Red y * 10000"/>
@ -420,47 +424,47 @@
</request>
<request name="set_extended_dynamic_range">
<description summary="set the content extended dynamic range">
The EDR value describes how much dynamic range is encoded relative to
the SDR maximum white. EDR value is proportional to luminance, using
the luminance of black as the zero level. A value of 1.0 means that the
SDR maximum white is the highest possible luminance of the surface. A
value of 3.0 means that the SDR maximum white is one third of the
highest possible luminance of the surface.
The EDR value describes how much dynamic range is encoded relative to
the SDR maximum white. EDR value is proportional to luminance, using
the luminance of black as the zero level. A value of 1.0 means that the
SDR maximum white is the highest possible luminance of the surface. A
value of 3.0 means that the SDR maximum white is one third of the
highest possible luminance of the surface.
The image description attached to the surface can make the code values in the
buffer non-linear in regards to the luminance. The code value to produce
a third of the luminance of the biggest code value therefore might not
be one third of the biggest code value.
The image description attached to the surface can make the code values in the
buffer non-linear in regards to the luminance. The code value to produce
a third of the luminance of the biggest code value therefore might not
be one third of the biggest code value.
For the definition of the SDR maximum white on an output, see
extended_dynamic_range on zwp_color_management_output_v1.get_image_description.
Content producers are free to choose their SDR maximum white level. How it
shall be displayed depends on the monitor capabilities and the output
EDR value.
For the definition of the SDR maximum white on an output, see
extended_dynamic_range on zwp_color_management_output_v1.get_image_description.
Content producers are free to choose their SDR maximum white level. How it
shall be displayed depends on the monitor capabilities and the output
EDR value.
By default the EDR value is 1.0. The compositor will tone map the image
to match the EDR of each output the surface is shown on. The aim for
the EDR-EDR mapping is to produce a relative luminance mapping that
looks equally good regardless of the viewing conditions and the monitor
capabilities, assuming the output EDR value was tuned to the output
capabilities and the viewing environment. There might be performance
and image quality benefits from providing content readily tone mapped to
the EDR value of the output the surface is shown on.
By default the EDR value is 1.0. The compositor will tone map the image
to match the EDR of each output the surface is shown on. The aim for
the EDR-EDR mapping is to produce a relative luminance mapping that
looks equally good regardless of the viewing conditions and the monitor
capabilities, assuming the output EDR value was tuned to the output
capabilities and the viewing environment. There might be performance
and image quality benefits from providing content readily tone mapped to
the EDR value of the output the surface is shown on.
The EDR value is multiplied by 1000 to produce the integer value
carried by the protocol.
The EDR value is multiplied by 1000 to produce the integer value
carried by the protocol.
</description>
<arg name="value" type="uint" summary="EDR value * 1000"/>
</request>
<event name="created">
<description summary="">
Delivers the successfully created image description
Delivers the successfully created image description
</description>
<arg name="image_description" type="new_id" interface="zwp_image_description_v1"/>
</event>
<event name="error">
<description summary="">
This event is sent if the image_description creation failed.
This event is sent if the image_description creation failed.
</description>
<arg name="error" type="uint" enum="error" summary="error bitmask"/>
</event>
@ -468,80 +472,80 @@
<interface name="zwp_color_space_v1" version="1">
<description summary="color space">
Refers to a color space which can be attached to a surface
(zwp_color_management_surface_v1.set_color_space). It may provide
information like the ICC profile and the well-known names to allow
clients to know the color space and do color transformations of their
own.
Refers to a color space which can be attached to a surface
(zwp_color_management_surface_v1.set_color_space). It may provide
information like the ICC profile and the well-known names to allow
clients to know the color space and do color transformations of their
own.
Once created and regardless of how it was created, a zwp_color_space_v1
object always refers to one fixed color space.
Once created and regardless of how it was created, a zwp_color_space_v1
object always refers to one fixed color space.
The client can create a zwp_color_space_v1 object with
zwp_color_manager_v1 requests or from an output by calling
zwp_color_management_output_v1.get_color_space.
The client can create a zwp_color_space_v1 object with
zwp_color_manager_v1 requests or from an output by calling
zwp_color_management_output_v1.get_color_space.
Other extensions may define more zwp_color_space_v1 factory interfaces.
Those interfaces must explicitly specify the interface version for the
object created, otherwise versioning zwp_color_space_v1 correctly
becomes impossible. Using a 'new_id' argument without 'interface'
attribute defined in XML forces code generators to add two explicit
arguments: interface and version. Version is the explicit version
number needed, and interface should be required to be
"zwp_color_space_v1". The compositor supported zwp_color_space_v1
versions are defined by the advertised zwp_color_manager_v1 in
wl_registry.
Other extensions may define more zwp_color_space_v1 factory interfaces.
Those interfaces must explicitly specify the interface version for the
object created, otherwise versioning zwp_color_space_v1 correctly
becomes impossible. Using a 'new_id' argument without 'interface'
attribute defined in XML forces code generators to add two explicit
arguments: interface and version. Version is the explicit version
number needed, and interface should be required to be
"zwp_color_space_v1". The compositor supported zwp_color_space_v1
versions are defined by the advertised zwp_color_manager_v1 in
wl_registry.
</description>
<request name="destroy" type="destructor">
<description summary="destroy the color space">
Destroy the zwp_color_space_v1 object.
Destroy the zwp_color_space_v1 object.
Destroying the zwp_color_space_v1 which is active on a surface or an
output does not change the color space of those objects.
Destroying the zwp_color_space_v1 which is active on a surface or an
output does not change the color space of those objects.
</description>
</request>
</interface>
<interface name="zwp_image_description_v1" version="1">
<description summary="image description">
image description that can be attached to a surface
(zwp_color_management_surface_v1.set_image_description) and provide
information regarding the type of ICC profile, color primaries,
cicp primaries, and gamma that are being associated with the surface.
image description that can be attached to a surface
(zwp_color_management_surface_v1.set_image_description) and provide
information regarding the type of ICC profile, color primaries,
cicp primaries, and gamma that are being associated with the surface.
The image description can be attached to a surface
(zwp_color_management_surface_v1.set_image_description). It may provide
information like the ICC profile, gamma, primaries, etc.
The image description can be attached to a surface
(zwp_color_management_surface_v1.set_image_description). It may provide
information like the ICC profile, gamma, primaries, etc.
Once created and regardless of how it was created, a zwp_image_description_v1
object always refers to one fixed image description.
Once created and regardless of how it was created, a zwp_image_description_v1
object always refers to one fixed image description.
The client can create a zwp_image_description_v1 object with
zwp_color_manager_v1 requests or from an output by calling
zwp_color_management_output_v1.get_image_description.
The client can create a zwp_image_description_v1 object with
zwp_color_manager_v1 requests or from an output by calling
zwp_color_management_output_v1.get_image_description.
</description>
<request name="get_information">
<description summary="get information about the image description">
As a reply to this request, the compositor will send all available
information events describing this image description object and finally
the 'done' event. Other extensions may define more events to be sent
before 'done'.
As a reply to this request, the compositor will send all available
information events describing this image description object and finally
the 'done' event. Other extensions may define more events to be sent
before 'done'.
Every get_information request on the same object will always return the
exact same data.
Every get_information request on the same object will always return the
exact same data.
</description>
</request>
<event name="icc_file">
<description summary="ICC profile describing the color space">
The icc argument provides a file descriptor to the client which can be
memory-mapped to provide the ICC profile describing the color space.
The fd must be mapped with MAP_PRIVATE and read-only by the client.
Compositors should send this event always when information is requested.
ICC profiles provide the common foundation which all color managed
clients may rely on.
The icc argument provides a file descriptor to the client which can be
memory-mapped to provide the ICC profile describing the color space.
The fd must be mapped with MAP_PRIVATE and read-only by the client.
Compositors should send this event always when information is requested.
ICC profiles provide the common foundation which all color managed
clients may rely on.
</description>
<arg name="icc" type="fd" summary="ICC profile file descriptor"/>
<arg name="icc_size" type="uint" summary="ICC profile size, in bytes"/>
@ -549,33 +553,33 @@
<event name="extended_dynamic_range">
<description summary="output extended dynamic range">
The extended dynamic range value describes how much dynamic range is
available relative to the SDR maximum white. EDR value is proportional
to luminance, and the luminance of black is used as the zero level.
A value of 1.0 means that the the display can not display
anything brighter than SDR maximum white. A value of 3.0 means that the
SDR maximum white is at one third of the highest luminance the display
can produce.
The extended dynamic range value describes how much dynamic range is
available relative to the SDR maximum white. EDR value is proportional
to luminance, and the luminance of black is used as the zero level.
A value of 1.0 means that the the display can not display
anything brighter than SDR maximum white. A value of 3.0 means that the
SDR maximum white is at one third of the highest luminance the display
can produce.
The absolute luminance of the SDR maximum white depends on the monitor
capabilities, the viewing conditions and the viewer personal
preferences. A such, it cannot be given a single value in cd/m².
Compositors using HDR video modes should allow users to control the the
SDR maximum white level which the output EDR value is calculated from.
The absolute luminance of the SDR maximum white depends on the monitor
capabilities, the viewing conditions and the viewer personal
preferences. A such, it cannot be given a single value in cd/m².
Compositors using HDR video modes should allow users to control the the
SDR maximum white level which the output EDR value is calculated from.
The SDR maximum white is a relative reference luminance that allows
to tone-map content from different dynamic ranges into a single common
dynamic range for display.
The SDR maximum white is a relative reference luminance that allows
to tone-map content from different dynamic ranges into a single common
dynamic range for display.
The EDR value is multiplied by 1000 to produce the integer value
carried by the protocol.
The EDR value is multiplied by 1000 to produce the integer value
carried by the protocol.
</description>
<arg name="value" type="uint" summary="EDR value * 1000"/>
</event>
<event name="primaries">
<description summary="primaries set for the image description">
This event provides the primaries that were used for the image description
This event provides the primaries that were used for the image description
</description>
<arg name="r_x" type="uint" summary="Red x"/>
<arg name="r_y" type="uint" summary="Red y"/>
@ -588,36 +592,35 @@
</event>
<event name="primaries_cicp">
<description summary="return CICP ID set for the image description">
This event provides the CICP ID that was used for the primaries.
Only sent if the image description has CICP defined primaries
This event provides the CICP ID that was used for the primaries.
Only sent if the image description has CICP defined primaries
</description>
<arg name="cicp_color_primaries" type="uint" summary="CICP ID"/>
</event>
<event name="tf_cicp">
<description summary="return cicp tf set for the image description">
This event provides the cicp TF that was set
Only sent if the image description has cicp TF
This event provides the cicp TF that was set
Only sent if the image description has cicp TF
</description>
<arg name="tf_cicp" type="uint" summary="cicp transfer function"/>
</event>
<event name="gamma">
<description summary="return gamma set for the image description">
This event provides the gamma type that was set
Only sent if the image description has gamma sets
This event provides the gamma type that was set
Only sent if the image description has gamma sets
</description>
<arg name="gamma" type="uint" summary="The gamma type (2.2, 2.4 etc)"/>
</event>
<request name="destroy" type="destructor">
<description summary="destroy the image description">
Destroy the zwp_image_description_v1 object.
Destroying the zwp_image_description_v1 which is active on a surface or an
output does not change the image description of those objects.
Destroy the zwp_image_description_v1 object.
Destroying the zwp_image_description_v1 which is active on a surface or an
output does not change the image description of those objects.
</description>
</request>
</interface>
</protocol>