Loading...
Searching...
No Matches
wayland::server::subcompositor_t Class Reference

sub-surface compositing More...

`#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

## get_class()

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.

## get_client()

client_t wayland::server::resource_t::get_client | ( |  | ) | const

inherited

Get the associated client

Returns
  the client that owns the resource.

## get_id()

uint32_t wayland::server::resource_t::get_id | ( |  | ) | const

inherited

Get the internal ID of the resource

Returns
  the internal ID of the resource

## get_version()

unsigned int wayland::server::resource_t::get_version | ( |  | ) | const

inherited

Get interface version

Returns
  Interface version this resource has been constructed with.

## on_destroy()

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.

## on_get_subsurface()

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.

## post_bad_surface()

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.

## post_no_memory()

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.

## proxy_has_object()

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

The documentation for this class was generated from the following files:

- obj-x86_64-linux-gnu/wayland-server-protocol.hpp
- obj-x86_64-linux-gnu/wayland-server-protocol.cpp