[RFC PATCH 1/6] Add colorcorrection protocol
Niels Ole Salscheider
niels_ole at salscheider-online.de
Sun Mar 30 04:36:32 PDT 2014
The color correction protocol allows to attach an ICC profile to a
surface. It also tells the client about the blending color space and
the color spaces of all outputs.
Signed-off-by: Niels Ole Salscheider <niels_ole at salscheider-online.de>
---
Makefile.am | 15 ++++++--
protocol/colorcorrection.xml | 87 ++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 98 insertions(+), 4 deletions(-)
create mode 100644 protocol/colorcorrection.xml
diff --git a/Makefile.am b/Makefile.am
index 5ff4f83..ec0a30b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -76,7 +76,9 @@ nodist_weston_SOURCES = \
protocol/workspaces-protocol.c \
protocol/workspaces-server-protocol.h \
protocol/scaler-protocol.c \
- protocol/scaler-server-protocol.h
+ protocol/scaler-server-protocol.h \
+ protocol/colorcorrection-protocol.c \
+ protocol/colorcorrection-server-protocol.h
BUILT_SOURCES += $(nodist_weston_SOURCES)
@@ -426,7 +428,9 @@ nodist_libtoytoolkit_la_SOURCES = \
protocol/workspaces-protocol.c \
protocol/workspaces-client-protocol.h \
protocol/xdg-shell-protocol.c \
- protocol/xdg-shell-client-protocol.h
+ protocol/xdg-shell-client-protocol.h \
+ protocol/colorcorrection-protocol.c \
+ protocol/colorcorrection-client-protocol.h
BUILT_SOURCES += $(nodist_libtoytoolkit_la_SOURCES)
@@ -606,7 +610,9 @@ BUILT_SOURCES += \
protocol/workspaces-client-protocol.h \
protocol/workspaces-protocol.c \
protocol/xdg-shell-protocol.c \
- protocol/xdg-shell-client-protocol.h
+ protocol/xdg-shell-client-protocol.h \
+ protocol/colorcorrection-protocol.c \
+ protocol/colorcorrection-client-protocol.h
westondatadir = $(datadir)/weston
@@ -920,7 +926,8 @@ EXTRA_DIST += \
protocol/text-cursor-position.xml \
protocol/wayland-test.xml \
protocol/xdg-shell.xml \
- protocol/scaler.xml
+ protocol/scaler.xml \
+ protocol/colorcorrection.xml
man_MANS = weston.1 weston.ini.5
diff --git a/protocol/colorcorrection.xml b/protocol/colorcorrection.xml
new file mode 100644
index 0000000..7986e93
--- /dev/null
+++ b/protocol/colorcorrection.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<protocol name="colorcorrection">
+
+ <copyright>
+ Copyright © 2014 Niels Ole Salscheider
+
+ Permission to use, copy, modify, distribute, and sell this
+ software and its documentation for any purpose is hereby granted
+ without fee, provided that the above copyright notice appear in
+ all copies and that both that copyright notice and this permission
+ notice appear in supporting documentation, and that the name of
+ the copyright holders not be used in advertising or publicity
+ pertaining to distribution of the software without specific,
+ written prior permission. The copyright holders make no
+ representations about the suitability of this software for any
+ purpose. It is provided "as is" without express or implied
+ warranty.
+
+ THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+ SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+ AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
+ THIS SOFTWARE.
+ </copyright>
+
+ <interface name="wl_colorcorrection" version="1">
+ <description summary="allows to attach a color profile to a wl_surface">
+ This interface allows to attach a color profile to a wl_surface.
+ This is used by the compositor to display the colors correctly.
+ The client is informed by two events about the blending space used
+ by the compositor and the color spaces of the outputs.
+ </description>
+
+ <request name="set_profile">
+ <description summary="set the color profile of a wl_surface">
+ With this request, the color profile of a wl_surface can be set.
+ When mode is set to "profile", an ICC profile can be passed in the
+ "profile_data" argument. In all other cases, "profile_data" is
+ ignored.
+ "mode" should only be set to "uncorrected" for fullscreen applications
+ or applications that really require uncorrected output (e. g. color
+ profiling tools).
+ </description>
+ <arg name="surface" type="object" interface="wl_surface"/>
+ <arg name="mode" type="uint" />
+ <arg name="profile_data" type="array"/>
+ </request>
+
+ <event name="blending_space">
+ <description summary="tell the client what blending space is used">
+ This event will be sent when the blending space of the compositor
+ is changed. A client can use this information to output its surface
+ in the blending space of the compositor so that only one color
+ transform (from blending to output space) has to be performed by the
+ compositor. This can result in better performance.
+ </description>
+ <arg name="profile_data" type="array"/>
+ </event>
+
+ <event name="output_space">
+ <description summary="tell the client what color space an output has">
+ This event will be sent when the color space of an output is changed.
+ A client can use this information e. g. when it sets the mode to
+ "uncorrected".
+ </description>
+ <arg name="output_id" type="uint"/>
+ <arg name="profile_data" type="array"/>
+ </event>
+
+ <enum name="error">
+ <entry name="invalid_mode" value="0"
+ summary="mode is set to an invalid value"/>
+ <entry name="invalid_profile" value="1"
+ summary="the passed icc data is invalid"/>
+ </enum>
+
+ <enum name="mode">
+ <entry name="srgb" value="0"/>
+ <entry name="blending_space" value="1"/>
+ <entry name="uncorrected" value="2"/>
+ <entry name="profile" value="3"/>
+ </enum>
+ </interface>
+</protocol>
--
1.9.1
More information about the wayland-devel
mailing list