[v2,1/2] hdr-metadata: Add protocol for static HDR metadata

Submitted by Harish Krupo on March 12, 2019, 6:30 a.m.

Details

Message ID 20190312063047.11930-2-harish.krupo.kps@intel.com
State New
Headers show
Series "Temporary protocols for HDR" ( rev: 2 ) in Wayland

Not browsing as part of any series.

Commit Message

Harish Krupo March 12, 2019, 6:30 a.m.
v2: Add description for the hdr_surface requests, fix style
    and typo (Simon Ser)

Signed-off-by: Harish Krupo <harish.krupo.kps@intel.com>
---
 Makefile.am                                   |   1 +
 unstable/hdr-metadata/README                  |   4 +
 .../hdr-metadata/hdr-metadata-unstable-v1.xml | 115 ++++++++++++++++++
 3 files changed, 120 insertions(+)
 create mode 100644 unstable/hdr-metadata/README
 create mode 100644 unstable/hdr-metadata/hdr-metadata-unstable-v1.xml

Patch hide | download patch | download mbox

diff --git a/Makefile.am b/Makefile.am
index 345ae6a..8e70a9f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -23,6 +23,7 @@  unstable_protocols =								\
 	unstable/xdg-decoration/xdg-decoration-unstable-v1.xml	\
 	unstable/linux-explicit-synchronization/linux-explicit-synchronization-unstable-v1.xml \
 	unstable/primary-selection/primary-selection-unstable-v1.xml		\
+	unstable/hdr-metadata/hdr-metadata-unstable-v1.xml			\
 	$(NULL)
 
 stable_protocols =								\
diff --git a/unstable/hdr-metadata/README b/unstable/hdr-metadata/README
new file mode 100644
index 0000000..5a53ac3
--- /dev/null
+++ b/unstable/hdr-metadata/README
@@ -0,0 +1,4 @@ 
+HDR metadata protocol
+
+Maintainers:
+Harish Krupo <harish.krupo.kps@intel.com>
diff --git a/unstable/hdr-metadata/hdr-metadata-unstable-v1.xml b/unstable/hdr-metadata/hdr-metadata-unstable-v1.xml
new file mode 100644
index 0000000..2553e1b
--- /dev/null
+++ b/unstable/hdr-metadata/hdr-metadata-unstable-v1.xml
@@ -0,0 +1,115 @@ 
+<?xml version="1.0" encoding="UTF-8"?>
+<protocol name="hdr_metadata_unstable_v1">
+
+  <copyright>
+    Copyright © 2019 Intel
+
+    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.
+  </copyright>
+
+  <interface name="zwp_hdr_metadata_v1" version="1">
+    <description summary="HDR metadata">
+      The global interface used to instantiate a HDR surface from a wl_surface.
+      The extended interface will allow setting the hdr metadata including
+      mastering display properties, content light level and the EOTF to the
+      surface.
+    </description>
+
+    <request name="destroy" type="destructor">
+      <description summary="destroy the object">
+	Informs the server that the client will not be using this
+	protocol object anymore. This does not affect any other objects,
+	zwp_hdr_surface_v1 objects included.
+      </description>
+    </request>
+
+    <enum name="error">
+      <entry name="hdr_surface_exists" value="0"
+             summary="the surface already has a hdr surface associated"/>
+    </enum>
+
+    <request name="get_hdr_surface">
+      <description summary="Create an hdr surface">
+	Create an interface extension for the given wl_surface. This request
+	raises the HDR_SURFACE_EXISTS error if a zwp_hdr_surface_v1 is already
+	associated with the wl_surface.
+      </description>
+      <arg name="id" type="new_id" interface="zwp_hdr_surface_v1"
+           summary="the new hdr surface interface id"/>
+      <arg name="surface" type="object" interface="wl_surface"
+           summary="the surface"/>
+
+    </request>
+  </interface>
+
+  <interface name="zwp_hdr_surface_v1" version="1">
+
+    <description summary="hdr surface">
+      An extension interface to the wl_surface object to set the HDR metadata
+      associated with the surface. 
+    </description>
+
+    <enum name="eotf">
+      <entry name="ST_2084_PQ" value="0"
+             summary="SMPTE ST 2084:2014, HDR EOTF of Mastering Reference Displays"/>
+      <entry name="HLG" value="1"
+             summary="Hybrid Log-Gamma (HLG) based on ITU-R"/>
+    </enum>
+
+    <request name="set">
+      <description summary="set the HDR metadata for a surface">
+	Set the HDR metadata for the associated wl_surface. The HDR metadata
+	state is double buffered and will be applied on the next
+	wl_surface::commit.
+      </description>
+      <arg name="display_primary_r_x" type="fixed" summary="Red primary X"/>
+      <arg name="display_primary_r_y" type="fixed" summary="Red primary Y"/>
+      <arg name="display_primary_g_x" type="fixed" summary="Green primary X"/>
+      <arg name="display_primary_g_y" type="fixed" summary="Green primary Y"/>
+      <arg name="display_primary_b_x" type="fixed" summary="Blue primary X"/>
+      <arg name="display_primary_b_y" type="fixed" summary="Blue primary Y"/>
+      <arg name="white_point_x" type="fixed" summary="White point X"/>
+      <arg name="white_point_y" type="fixed" summary="White point Y"/>
+      <arg name="min_luminance" type="fixed" summary="Minimum luminance"/>
+      <arg name="max_luminance" type="fixed" summary="Maximum luminance"/>
+      <arg name="max_cll" type="uint" summary="Maximum content light level"/>
+      <arg name="max_fall" type="uint" summary="Maximum frame-average light level"/>
+    </request>
+
+    <request name="set_eotf">
+      <description summary="set the HDR metadata for a surface">
+	Set the eotf curve for the associated wl_surface. The eotf of the
+	surface state is double buffered and will be applied on the next
+	wl_surface::commit.
+      </description>
+      <arg name="eotf" type="uint" enum="eotf"
+           summary="Electro optical transfer functions for non linear encoding"/>
+    </request>
+
+    <request name="destroy" type="destructor">
+      <description summary="destroy the hdr_surface_v1 object">
+	Destroying this object, destroys the HDR metadata associated with the
+	surface and the surface will be considered as an SDR surface from the
+	next wl_surface::commit.
+      </description>
+    </request>
+  </interface>
+
+</protocol>