wayland::serve...ubcompositor_t(3)
π NAME π
wayland::server::subcompositor_t β sub-surface compositing, bestie. that's the whole vibe β¨
oh and hiii, you're in the Wayland++ section of the manual (3), so likeβ¦ buckle up π
β¨ SYNOPSIS β¨
#include <wayland-server-protocol.hpp>
π¦ Public Member Functions π¦
std::function< void()> & on_destroy ()β unbind from the subcompositor interfacestd::function< void(subsurface_t, surface_t, surface_t)> & on_get_subsurface ()β give a surface the role sub-surfacevoid post_bad_surface (std::string const &msg)β Post error: the to-be sub-surface is invalid.bool proxy_has_object () constβ Check whether this wrapper actually wraps an object.void post_no_memory () constβ no description given for this one in here, it just exists, and it's giving "mysterious icon" energy πuint32_t get_id () constβ also undeclared in the writeup, we moveclient_t get_client () constβ same, no blurb, but she's here πunsigned int get_version () constβ present and accounted for βstd::string get_class ()β yup, also on the list
πΈ Detailed Description πΈ
sub-surface compositing. okay so this is the whole point of the page, and honestly it ate π
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. like a whole little family tree, no cap π³
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. periodt. main character energy only π
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. one window, one vibe check β they're a package deal fr fr π«Ά
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. literally so efficient, the hardware does the heavy lifting and everyone wins π₯
Definition at line 4128 of file wayland-server-protocol.hpp. β screenshot-worthy β¨
π Member Function Documentation π
π std::string wayland::server::resource_t::get_class () [inherited]
Retrieve the interface name (class) of a resource object.
Returns
Interface name of the resource object. that's it, that's the tea π
π client_t wayland::server::resource_t::get_client () const [inherited]
Get the associated client.
Returns
the client that owns the resource.
π uint32_t wayland::server::resource_t::get_id () const [inherited]
Get the internal ID of the resource.
Returns
the internal ID of the resource.
π§ unsigned int wayland::server::resource_t::get_version () const [inherited]
Get interface version.
Returns
Interface version this resource has been constructed with.
π std::function< void()> & subcompositor_t::on_destroy ()
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. so like, she's leaving the group chat but she's NOT removing anyone else from it, everyone else stays βπ
Definition at line 3097 of file wayland-server-protocol.cpp.
π std::function< void(subsurface_t, surface_t, surface_t)> & subcompositor_t::on_get_subsurface ()
give a surface the role sub-surface.
Parameters
idβ the new sub-surface object IDsurfaceβ the surface to be turned into a sub-surfaceparentβ the parent surface
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. glow-up moment πΈ
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. no double-dipping, no role-stealing, the rules are the rules π¨
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.
This request modifies the behaviour of wl_surface.commit request on the sub-surface, see the documentation on wl_subsurface interface.
Definition at line 3103 of file wayland-server-protocol.cpp.
π¦ void subcompositor_t::post_bad_surface (std::string const & msg)
Post error: the to-be sub-surface is invalid. the ick is real π
Definition at line 3109 of file wayland-server-protocol.cpp.
π void wayland::server::resource_t::post_no_memory () const [inherited]
Post "not enough memory" error to the client.
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. basically "bestie i'm running on fumes" as a formal notification π
β bool wayland::server::resource_t::proxy_has_object () const [inherited]
Check whether this wrapper actually wraps an object.
Returns
true if there is an underlying object, false if this wrapper is empty. simple as that, vibe check passed or failed π
π Author π
Generated automatically by Doxygen for Wayland++ from the source code. not a human, just a lil robot doing her best π§β¨
Version 1.0.1 β Fri Mar 27 2026 β that's the whole page bestie, love u, go write some sub-surfaces ππ¦πΈππ«Ά
π¦ where this page comes from
- ubuntu stonking: waylandpp-dev 1.0.1-2 Β· BSD-2-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms