.TH "wayland::server::subcompositor_t" 3 "Wed May 3 2023" "Version 1.0.0" "Wayland++" \" -*- nroff -*- .ad l .nh .SH NAME wayland::server::subcompositor_t \- sub-surface compositing .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_destroy\fP ()" .br .RI "unbind from the subcompositor interface " .ti -1c .RI "std::function< void(\fBsubsurface_t\fP, \fBsurface_t\fP, \fBsurface_t\fP)> & \fBon_get_subsurface\fP ()" .br .RI "give a surface the role sub-surface " .ti -1c .RI "void \fBpost_bad_surface\fP (std::string const &msg)" .br .RI "Post error: the to-be sub-surface is invalid\&. " .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 .SH "Detailed Description" .PP sub-surface compositing The global interface exposing sub-surface compositing capabilities\&. A wl_surface, that has sub-surfaces associated, is called the parent surface\&. Sub-surfaces can be arbitrarily nested and create a tree of sub-surfaces\&. .PP The root surface in a tree of sub-surfaces is the main surface\&. The main surface cannot be a sub-surface, because sub-surfaces must always have a parent\&. .PP A main surface with its sub-surfaces forms a (compound) window\&. For window management purposes, this set of wl_surface objects is to be considered as a single window, and it should also behave as such\&. .PP The aim of sub-surfaces is to offload some of the compositing work within a window from clients to the compositor\&. A prime example is a video player with decorations and video in separate wl_surface objects\&. This should allow the compositor to pass YUV video buffer processing to dedicated overlay hardware when possible\&. .PP Definition at line \fB4127\fP of file \fBwayland\-server\-protocol\&.hpp\fP\&. .SH "Member Function Documentation" .PP .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()> & subcompositor_t::on_destroy ()" .PP unbind from the subcompositor interface Informs the server that the client will not be using this protocol object anymore\&. This does not affect any other objects, wl_subsurface objects included\&. .PP Definition at line \fB3097\fP of file \fBwayland\-server\-protocol\&.cpp\fP\&. .SS "std::function< void(\fBsubsurface_t\fP, \fBsurface_t\fP, \fBsurface_t\fP)> & subcompositor_t::on_get_subsurface ()" .PP give a surface the role sub-surface .PP \fBParameters\fP .RS 4 \fIid\fP the new sub-surface object ID .br \fIsurface\fP the surface to be turned into a sub-surface .br \fIparent\fP the parent surface .RE .PP Create a sub-surface interface for the given surface, and associate it with the given parent surface\&. This turns a plain wl_surface into a sub-surface\&. .PP The to-be sub-surface must not already have another role, and it must not have an existing wl_subsurface object\&. Otherwise a protocol error is raised\&. .PP Adding sub-surfaces to a parent is a double-buffered operation on the parent (see wl_surface\&.commit)\&. The effect of adding a sub-surface becomes visible on the next time the state of the parent surface is applied\&. .PP This request modifies the behaviour of wl_surface\&.commit request on the sub-surface, see the documentation on wl_subsurface interface\&. .PP Definition at line \fB3103\fP of file \fBwayland\-server\-protocol\&.cpp\fP\&. .SS "void subcompositor_t::post_bad_surface (std::string const & msg)" .PP Post error: the to-be sub-surface is invalid\&. .PP Definition at line \fB3109\fP of file \fBwayland\-server\-protocol\&.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 "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 "Author" .PP Generated automatically by Doxygen for Wayland++ from the source code\&.