[RFC 1/5] Add a fullscreen shell protocol

Jason Ekstrand jason at jlekstrand.net
Wed Oct 23 03:48:25 CEST 2013

 protocol/fullscreen-shell.xml | 44 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)
 create mode 100644 protocol/fullscreen-shell.xml

diff --git a/protocol/fullscreen-shell.xml b/protocol/fullscreen-shell.xml
new file mode 100644
index 0000000..b696828
--- /dev/null
+++ b/protocol/fullscreen-shell.xml
@@ -0,0 +1,44 @@
+<protocol name="fullscreen_shell">
+  <interface name="wl_fullscreen_shell" version="1">
+    <description summary="Displays a single surface per output">
+      Displays a single surface per output.
+      This interface can only be bound to by one client at a time.
+    </description>
+    <enum name="fullscreen_method">
+      <description summary="different method to set the surface fullscreen">
+	Hints to indicate to the compositor how to deal with a conflict
+	between the dimensions of the surface and the dimensions of the
+	output. The compositor is free to ignore this parameter.
+      </description>
+      <entry name="default" value="0" summary="no preference, apply default policy"/>
+      <entry name="scale" value="1" summary="scale, preserve the surface's aspect ratio and center on output"/>
+      <entry name="driver" value="2" summary="switch output mode to the smallest mode that can fit the surface, add black borders to compensate size mismatch"/>
+      <entry name="fill" value="3" summary="no upscaling, center on output and add black borders to compensate size mismatch"/>
+    </enum>
+    <request name="present_surface">
+      <description summary="present surface for display">
+	This requests the system compositor to display surface on output.
+	Each client of the system compositor can have at most one surface
+	per output at any one time. Subsequent requests with the same
+	output replace the surface bound to that output.  The same surface
+	may be presented on multiple outputs.
+	If the output is null, the compositor will present the surface on
+	whatever display (or displays) it thinks best.  In particular, this
+	may replace any or all surfaces currently presented so it should
+	not be used in combination with placing surfaces on specific
+	outputs.
+	The method specifies how the surface is to be persented.  These
+	methods are identical to those in wl_shell_surface.set_fullscreen.
+      </description>
+      <arg name="surface" type="object" interface="wl_surface"/>
+      <arg name="method" type="uint"/>
+      <arg name="framerate" type="uint"/>
+      <arg name="output" type="object" interface="wl_output" allow-null="true"/>
+    </request>
+  </interface>

More information about the wayland-devel mailing list