protocol: Clarify the documentation for the fullscreen protocol

This commit is contained in:
Rob Bradford 2012-02-28 16:48:26 +00:00 committed by Kristian Høgsberg
parent 72f9fd0a57
commit 089c977a3b

View file

@ -431,12 +431,22 @@
<request name="set_fullscreen"> <request name="set_fullscreen">
<description summary="make the surface a fullscreen surface"> <description summary="make the surface a fullscreen surface">
Map the surface as a fullscreen surface. On the output the Map the surface as a fullscreen surface. If an output parameter is
surface is assigned to. The client can use different fulllscreen given then the surface will be made fullscreen on that output. If the
method to fix the size mismatch issue: default, scale, driver client does not specify the output then the compositor will apply its
and fill. And the framerate parameter is used for "driver" method, policy - usually choosing the output on which the surface has the
to indicate the preferred framerate. framerate=0 means that the biggest surface area.
app does not care about framerate
The client may specify a method to resolve a size conflict between the
output size and the surface size - this is provided through the
fullscreen_method parameter.
The framerate parameter is used only when the fullscreen_method is set
to "driver", to indicate the preferred framerate. framerate=0 indicates
that the app does not care about framerate.
The compositor must reply to this request with a configure event with
the dimensions for the output on which the surface will be made fullscreen.
</description> </description>
<arg name="method" type="uint"/> <arg name="method" type="uint"/>
<arg name="framerate" type="uint"/> <arg name="framerate" type="uint"/>
@ -445,19 +455,24 @@
<enum name="fullscreen_method"> <enum name="fullscreen_method">
<description summary="different method to set the surface fullscreen"> <description summary="different method to set the surface fullscreen">
Hints to indicate compositor how to deal with this fullscreen surface. Hints to indicate compositor how to deal with a conflict between the
"default" means the client has no preference on fullscreen dimensions for the surface and the dimensions of the output. As a hint
behavior, policies are determined by compositor. the compositor is free to ignore this parameter.
"scale" means the client prefers scaling by the compositor.
Scaling would always preserve surface's aspect ratio. "default" The client has no preference on fullscreen behavior,
And the surface is centered. policies are determined by compositor.
"driver" means the client wants to switch video mode to the
smallest mode that can fit the client buffer. If the "scale" The client prefers scaling by the compositor. Scaling would
sizes do not match, black borders are added. always preserve surface's aspect ratio with surface centered on the
"fill" means the client wants to add blackborders to the output
surface. This would be preferring 1:1 pixel mapping
in the monitor native video mode. The surface is "driver" The client wants to switch video mode to the smallest mode
centered. that can fit the client buffer. If the sizes do not match the
compositor must add black borders.
"fill" The surface is centered on the output on the screen with no
scaling. If the surface is of insufficient size the compositor must
add black borders.
</description> </description>
<entry name="default" value="0"/> <entry name="default" value="0"/>
<entry name="scale" value="1"/> <entry name="scale" value="1"/>