On Thu, 6 Jul 2017 16:01:25 +0200 Olivier Fourdan <ofour...@redhat.com> wrote:
> This protocol aims at describing outputs in way which is more in line > with the concept of an output on desktop oriented systems. > > Some information are more specific to the concept of an output for a > desktop oriented system and may not make sense in other applications, > such as IVI systems for example. > > The goal is to gradually move the desktop specific concepts out of the > core wl_output protocol. > > For now it just features the position and logical size which describe > the output position and size in the global compositor space. > > Signed-off-by: Olivier Fourdan <ofour...@redhat.com> > --- > v2: use "destroy" instead of "release" for destructor > v3: adopt a more conventional global factory interface with a > get_xdg_output() method, add some clarification and example. > > Makefile.am | 1 + > unstable/xdg-output/README | 4 + > unstable/xdg-output/xdg-output-unstable-v1.xml | 160 > +++++++++++++++++++++++++ > 3 files changed, 165 insertions(+) > create mode 100644 unstable/xdg-output/README > create mode 100644 unstable/xdg-output/xdg-output-unstable-v1.xml > > diff --git a/Makefile.am b/Makefile.am > index e693afa..6c696aa 100644 > --- a/Makefile.am > +++ b/Makefile.am > @@ -12,6 +12,7 @@ unstable_protocols = > \ > unstable/tablet/tablet-unstable-v2.xml > \ > unstable/xdg-foreign/xdg-foreign-unstable-v1.xml > \ > unstable/idle-inhibit/idle-inhibit-unstable-v1.xml > \ > + unstable/xdg-output/xdg-output-unstable-v1.xml > \ > $(NULL) > > stable_protocols = > \ > diff --git a/unstable/xdg-output/README b/unstable/xdg-output/README > new file mode 100644 > index 0000000..e42b711 > --- /dev/null > +++ b/unstable/xdg-output/README > @@ -0,0 +1,4 @@ > +xdg_output protocol > + > +Maintainers: > +Olivier Fourdan <ofour...@redhat.com> > diff --git a/unstable/xdg-output/xdg-output-unstable-v1.xml > b/unstable/xdg-output/xdg-output-unstable-v1.xml > new file mode 100644 > index 0000000..74b5762 > --- /dev/null > +++ b/unstable/xdg-output/xdg-output-unstable-v1.xml > @@ -0,0 +1,160 @@ > +<?xml version="1.0" encoding="UTF-8"?> > +<protocol name="xdg_output_unstable_v1"> > + ... > + <interface name="zxdg_output_manager" version="1"> Hi, missing major version as per unstable protocol policy. > + <description summary="manage xdg_output objects"> > + A global factory interface for xdg_output objects. > + </description> > + > + <request name="destroy" type="destructor"> > + <description summary="destroy the xdg_output_manager object"> > + Using this request a client can tell the server that it is not > + going to use the xdg_output_manager object anymore. Might want to add: Any objects already created through this instance are not affected. > + </description> > + </request> > + > + <request name="get_xdg_output"> > + <description summary="create an xdg output from a wl_output"> > + This creates a new xdg_output object for the given wl_output. > + </description> > + <arg name="id" type="new_id" interface="zxdg_output"/> > + <arg name="output" type="object" interface="wl_output"/> > + </request> > + </interface> > + > + <interface name="zxdg_output" version="1"> Missing major version as per unstable protocol policy. > + <description summary="compositor logical output region"> > + An xdg_output describes part of the compositor geometry. > + > + This typically corresponds to a monitor that displays part of the > + compositor space. I was about to ask about clone mode behaviour but realised this is explicitly tied to how wl_outputs are advertised. > + </description> > + > + <request name="destroy" type="destructor"> > + <description summary="destroy the xdg_output object"> > + Using this request a client can tell the server that it is not > + going to use the xdg_output object anymore. > + </description> > + </request> > + > + <event name="logical_position"> > + <description summary="position of the output within the global > compositor space"> > + The position event describes the location of the wl_output within > + the global compositor space. > + > + The logical_position event is sent after creating an xdg_output > + (see xdg_output_manager.get_xdg_output) and whenever the location > + of the output changes within the global compositor space. > + </description> > + <arg name="x" type="int" > + summary="x position within the global compositor space"/> > + <arg name="y" type="int" > + summary="y position within the global compositor space"/> > + </event> > + > + <event name="logical_size"> > + <description summary="size of the output in the global compositor > space"> > + The logical_size event describes the size of the output in the > + global compositor space. > + > + For example, a surface without any buffer scale, transformation > + nor rotation set, with the size matching the logical_size will > + have the same size as the corresponding output when displayed. > + > + Most regular Wayland clients should not pay attention to the > + logical size and would rather rely on xdg_shell interfaces. > + > + Some clients such as Xwayland, however, need this to configure > + their surfaces in the global compositor space as the compositor > + may apply a different scale from what is advertised by the output > + scaling property (to achieve fractional scaling, for example). > + > + For example, for a wl_output mode 3840×2160 and a scale factor 2: > + > + - A compositor not scaling the surface buffers will advertise a > + logical size of 3840×2160, > + > + - A compositor automatically scaling the surface buffers will > + advertise a logical size of 1920×1080, > + > + - A compositor using a fractional scale of 1.5 will advertise a > + logical size to 2560×1620. > + > + The logical_size event is sent after creating an xdg_output > + (see xdg_output_manager.get_xdg_output) and whenever the logical > + size of the output changes, either as a result of a change in the > + applied scale or because of a change in the corresponding output > + mode(see wl_output.mode) or transform (see wl_output.transform). > + </description> > + <arg name="width" type="int" > + summary="width of the mode in global compositor space"/> > + <arg name="height" type="int" > + summary="height of the mode in global compositor space"/> Replace "mode" with a more appropriate word or remove it. Mode refers to the hardware video mode, and I think it is a bit confusing to talk about size of a mode in global compositor space, even though it is accurate. > + </event> > + > + <event name="done"> > + <description summary="all information about the output have been sent"> > + This event is sent after all other properties of an xdg_output > + have been sent. > + > + This allows changes to the xdg_output properties to be seen as > + atomic, even if they happen via multiple events. > + </description> > + </event> > + > + </interface> > +</protocol> > + Otherwise looks good, so: Acked-by: Pekka Paalanen <pekka.paala...@collabora.co.uk> Thanks, pq
pgpmLWjJYzC1P.pgp
Description: OpenPGP digital signature
_______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel