.TH "wayland::server::zwp_fullscreen_shell_v1_t" 3 "Wed May 3 2023" "Version 1.0.0" "Wayland++" \" -*- nroff -*- .ad l .nh .SH NAME wayland::server::zwp_fullscreen_shell_v1_t \- displays a single surface per output .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits wayland::server::resource_t\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "std::function< void()> & \fBon_release\fP ()" .br .RI "release the wl_fullscreen_shell interface " .ti -1c .RI "std::function< void(\fBsurface_t\fP, zwp_fullscreen_shell_v1_present_method, \fBoutput_t\fP)> & \fBon_present_surface\fP ()" .br .RI "present surface for display " .ti -1c .RI "std::function< void(\fBsurface_t\fP, \fBoutput_t\fP, int32_t, zwp_fullscreen_shell_mode_feedback_v1_t)> & \fBon_present_surface_for_mode\fP ()" .br .RI "present surface for display at a particular mode " .ti -1c .RI "void \fBcapability\fP (zwp_fullscreen_shell_v1_capability const &capability, bool post=true)" .br .RI "advertises a capability of the compositor " .ti -1c .RI "void \fBpost_invalid_method\fP (std::string const &msg)" .br .RI "Post error: present_method is not known\&. " .ti -1c .RI "void \fBpost_role\fP (std::string const &msg)" .br .RI "Post error: given wl_surface has another role\&. " .ti -1c .RI "bool \fBproxy_has_object\fP () const" .br .RI "Check whether this wrapper actually wraps an object\&. " .ti -1c .RI "void \fBpost_no_memory\fP () const" .br .ti -1c .RI "uint32_t \fBget_id\fP () const" .br .ti -1c .RI "client_t \fBget_client\fP () const" .br .ti -1c .RI "unsigned int \fBget_version\fP () const" .br .ti -1c .RI "std::string \fBget_class\fP ()" .br .in -1c .SS "Static Public Attributes" .in +1c .ti -1c .RI "static constexpr std::uint32_t \fBcapability_since_version\fP = 1" .br .RI "Minimum protocol version required for the \fBcapability\fP function\&. " .in -1c .SH "Detailed Description" .PP displays a single surface per output Displays a single surface per output\&. .PP This interface provides a mechanism for a single client to display simple full-screen surfaces\&. While there technically may be multiple clients bound to this interface, only one of those clients should be shown at a time\&. .PP To present a surface, the client uses either the present_surface or present_surface_for_mode requests\&. Presenting a surface takes effect on the next wl_surface\&.commit\&. See the individual requests for details about scaling and mode switches\&. .PP The client can have at most one surface per output at any time\&. Requesting a surface to be presented on an output that already has a surface replaces the previously presented surface\&. Presenting a null surface removes its content and effectively disables the output\&. Exactly what happens when an output is 'disabled' is compositor-specific\&. The same surface may be presented on multiple outputs simultaneously\&. .PP Once a surface is presented on an output, it stays on that output until either the client removes it or the compositor destroys the output\&. This way, the client can update the output's contents by simply attaching a new buffer\&. .PP Warning! The protocol described in this file is experimental and backward incompatible changes may be made\&. Backward compatible changes may be added together with the corresponding interface version bump\&. Backward incompatible changes are done by bumping the version number in the protocol and interface names and resetting the interface version\&. Once the protocol is to be declared stable, the 'z' prefix and the version number in the protocol and interface names are removed and the interface version number is reset\&. .PP Definition at line \fB307\fP of file \fBwayland\-server\-protocol\-unstable\&.hpp\fP\&. .SH "Member Function Documentation" .PP .SS "void zwp_fullscreen_shell_v1_t::capability (zwp_fullscreen_shell_v1_capability const & capability, bool post = \fCtrue\fP)" .PP advertises a capability of the compositor .PP \fBParameters\fP .RS 4 \fIcapability\fP .RE .PP Advertises a single capability of the compositor\&. .PP When the wl_fullscreen_shell interface is bound, this event is emitted once for each capability advertised\&. Valid capabilities are given by the wl_fullscreen_shell\&.capability enum\&. If clients want to take advantage of any of these capabilities, they should use a wl_display\&.sync request immediately after binding to ensure that they receive all the capability events\&. .PP Definition at line \fB4242\fP of file \fBwayland\-server\-protocol\-unstable\&.cpp\fP\&. .SS "std::string wayland::server::resource_t::get_class ()\fC [inherited]\fP" Retrieve the interface name (class) of a resource object\&. .PP \fBReturns\fP .RS 4 Interface name of the resource object\&. .RE .PP .SS "client_t wayland::server::resource_t::get_client () const\fC [inherited]\fP" Get the associated client .PP \fBReturns\fP .RS 4 the client that owns the resource\&. .RE .PP .SS "uint32_t wayland::server::resource_t::get_id () const\fC [inherited]\fP" Get the internal ID of the resource .PP \fBReturns\fP .RS 4 the internal ID of the resource .RE .PP .SS "unsigned int wayland::server::resource_t::get_version () const\fC [inherited]\fP" Get interface version .PP \fBReturns\fP .RS 4 Interface version this resource has been constructed with\&. .RE .PP .SS "std::function< void(\fBsurface_t\fP, zwp_fullscreen_shell_v1_present_method, \fBoutput_t\fP)> & zwp_fullscreen_shell_v1_t::on_present_surface ()" .PP present surface for display .PP \fBParameters\fP .RS 4 \fIsurface\fP .br \fImethod\fP .br \fIoutput\fP .RE .PP Present a surface on the given output\&. .PP 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\&. .PP The method parameter is a hint to the compositor for how the surface is to be presented\&. In particular, it tells the compositor how to handle a size mismatch between the presented surface and the output\&. The compositor is free to ignore this parameter\&. .PP The 'zoom', 'zoom_crop', and 'stretch' methods imply a scaling operation on the surface\&. This will override any kind of output scaling, so the buffer_scale property of the surface is effectively ignored\&. .PP This request gives the surface the role of a fullscreen shell surface\&. If the surface already has another role, it raises a role protocol error\&. .PP Definition at line \fB4230\fP of file \fBwayland\-server\-protocol\-unstable\&.cpp\fP\&. .SS "std::function< void(\fBsurface_t\fP, \fBoutput_t\fP, int32_t, zwp_fullscreen_shell_mode_feedback_v1_t)> & zwp_fullscreen_shell_v1_t::on_present_surface_for_mode ()" .PP present surface for display at a particular mode .PP \fBParameters\fP .RS 4 \fIsurface\fP .br \fIoutput\fP .br \fIframerate\fP .br \fIfeedback\fP .RE .PP Presents a surface on the given output for a particular mode\&. .PP If the current size of the output differs from that of the surface, the compositor will attempt to change the size of the output to match the surface\&. The result of the mode-switch operation will be returned via the provided wl_fullscreen_shell_mode_feedback object\&. .PP If the current output mode matches the one requested or if the compositor successfully switches the mode to match the surface, then the mode_successful event will be sent and the output will contain the contents of the given surface\&. If the compositor cannot match the output size to the surface size, the mode_failed will be sent and the output will contain the contents of the previously presented surface (if any)\&. If another surface is presented on the given output before either of these has a chance to happen, the present_cancelled event will be sent\&. .PP Due to race conditions and other issues unknown to the client, no mode-switch operation is guaranteed to succeed\&. However, if the mode is one advertised by wl_output\&.mode or if the compositor advertises the ARBITRARY_MODES capability, then the client should expect that the mode-switch operation will usually succeed\&. .PP If the size of the presented surface changes, the resulting output is undefined\&. The compositor may attempt to change the output mode to compensate\&. However, there is no guarantee that a suitable mode will be found and the client has no way to be notified of success or failure\&. .PP The framerate parameter specifies the desired framerate for the output in mHz\&. The compositor is free to ignore this parameter\&. A value of 0 indicates that the client has no preference\&. .PP If the value of wl_output\&.scale differs from wl_surface\&.buffer_scale, then the compositor may choose a mode that matches either the buffer size or the surface size\&. In either case, the surface will fill the output\&. .PP This request gives the surface the role of a fullscreen shell surface\&. If the surface already has another role, it raises a role protocol error\&. .PP Definition at line \fB4236\fP of file \fBwayland\-server\-protocol\-unstable\&.cpp\fP\&. .SS "std::function< void()> & zwp_fullscreen_shell_v1_t::on_release ()" .PP release the wl_fullscreen_shell interface Release the binding from the wl_fullscreen_shell interface\&. .PP This destroys the server-side object and frees this binding\&. If the client binds to wl_fullscreen_shell multiple times, it may wish to free some of those bindings\&. .PP Definition at line \fB4224\fP of file \fBwayland\-server\-protocol\-unstable\&.cpp\fP\&. .SS "void zwp_fullscreen_shell_v1_t::post_invalid_method (std::string const & msg)" .PP Post error: present_method is not known\&. .PP Definition at line \fB4247\fP of file \fBwayland\-server\-protocol\-unstable\&.cpp\fP\&. .SS "void wayland::server::resource_t::post_no_memory () const\fC [inherited]\fP" Post 'not enough memory' error to the client .PP If the compositor has not enough memory to fulfill a certail request of the client, this function can be called to notify the client of this circumstance\&. .SS "void zwp_fullscreen_shell_v1_t::post_role (std::string const & msg)" .PP Post error: given wl_surface has another role\&. .PP Definition at line \fB4252\fP of file \fBwayland\-server\-protocol\-unstable\&.cpp\fP\&. .SS "bool wayland::server::resource_t::proxy_has_object () const\fC [inherited]\fP" .PP Check whether this wrapper actually wraps an object\&. .PP \fBReturns\fP .RS 4 true if there is an underlying object, false if this wrapper is empty .RE .PP .SH "Member Data Documentation" .PP .SS "constexpr std::uint32_t wayland::server::zwp_fullscreen_shell_v1_t::capability_since_version = 1\fC [static]\fP, \fC [constexpr]\fP" .PP Minimum protocol version required for the \fBcapability\fP function\&. .PP Definition at line \fB444\fP of file \fBwayland\-server\-protocol\-unstable\&.hpp\fP\&. .SH "Author" .PP Generated automatically by Doxygen for Wayland++ from the source code\&.