Commit eadb68ec authored by Kristian Høgsberg's avatar Kristian Høgsberg
Browse files

protocol: Add transform argument to wl_output.geometry event

parent 0b8b397e
Core wayland protocol Core wayland protocol
- We need rotation information in the output (multiples of 90
degrees) and we'll need a way for a client to communicate that it
has rendered its buffer according to the output rotation. The
goal is to be able to pageflip directly to the client buffer, and
for that we need the client to render accordingly and the
compositor needs to know that it did.
- Atomicity. Currently a lot of the atomicity in Wayland relies on - Atomicity. Currently a lot of the atomicity in Wayland relies on
how we batch up all requests in a protocol buffer and only flushes how we batch up all requests in a protocol buffer and only flushes
in the "blockhandler" in the client. Consensus was that we need in the "blockhandler" in the client. Consensus was that we need
......
...@@ -1001,6 +1001,31 @@ ...@@ -1001,6 +1001,31 @@
<entry name="vertical_bgr" value="5"/> <entry name="vertical_bgr" value="5"/>
</enum> </enum>
<enum name="transform">
<description summary="transform from framebuffer to output">
This describes the transform that a compositor will apply to a
surface to compensate for the rotation or mirroring of an
output device.
The flipped values correspond to an initial flip around a
vertical axis followed by rotaion.
The purpose is mainly to allow clients render accordingly and
tell the compositor, so that for fullscreen surfaces, the
compositor will still be able to scan out directly from client
surfaces.
</description>
<entry name="normal" value="0"/>
<entry name="90" value="1"/>
<entry name="180" value="2"/>
<entry name="270" value="3"/>
<entry name="flipped" value="4"/>
<entry name="flipped_90" value="5"/>
<entry name="flipped_180" value="6"/>
<entry name="flipped_270" value="7"/>
</enum>
<event name="geometry"> <event name="geometry">
<description summary="properties of the output"/> <description summary="properties of the output"/>
<arg name="x" type="int" <arg name="x" type="int"
...@@ -1017,6 +1042,8 @@ ...@@ -1017,6 +1042,8 @@
summary="textual description of the manufacturer"/> summary="textual description of the manufacturer"/>
<arg name="model" type="string" <arg name="model" type="string"
summary="textual description of the model"/> summary="textual description of the model"/>
<arg name="transform" type="int"
summary="transform that maps framebuffer to output"/>
</event> </event>
<enum name="mode"> <enum name="mode">
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment