Wayland++ 1.0.0
C++ Bindings for Wayland
|
sub-surface compositing More...
#include <wayland-server-protocol.hpp>
Public Member Functions | |
std::function< void()> & | on_destroy () |
unbind from the subcompositor interface | |
std::function< void(subsurface_t, surface_t, surface_t)> & | on_get_subsurface () |
give a surface the role sub-surface | |
void | 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 |
uint32_t | get_id () const |
client_t | get_client () const |
unsigned int | get_version () const |
std::string | get_class () |
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.
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.
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.
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.
Definition at line 4128 of file wayland-server-protocol.hpp.
|
inherited |
Retrieve the interface name (class) of a resource object.
|
inherited |
Get the associated client
|
inherited |
Get the internal ID of the resource
|
inherited |
Get interface version
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.
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
id | the new sub-surface object ID |
surface | the surface to be turned into a sub-surface |
parent | 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.
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.
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.
Definition at line 3109 of file wayland-server-protocol.cpp.
|
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.
|
inherited |
Check whether this wrapper actually wraps an object.