wayland::server::subcompositor_t(3)

NAME
wayland::server::subcompositor_t - sub-surface compositing

SYNOPSIS

#include <wayland-server-protocol.hpp>

Inherits wayland::server::resource_t.

  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 ()

Detailed Description

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 4127 of file wayland-server-protocol.hpp.

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.

  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.

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 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.

  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.

  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

Author

Generated automatically by Doxygen for Wayland++ from the source code.