Struct wayland_client::wayland::subcompositor::WlSubcompositor [] [src]

pub struct WlSubcompositor {
    // some fields omitted
}

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.

Methods

impl WlSubcompositor

fn destroy(self)

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.

fn get_subsurface(&self, surface: &WlSurface, parent: &WlSurface) -> WlSubsurface

give a surface the role sub-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.

Trait Implementations

impl Sync for WlSubcompositor

impl Send for WlSubcompositor

impl Proxy for WlSubcompositor

fn ptr(&self) -> *mut wl_proxy

fn interface() -> *mut wl_interface

fn interface_name() -> &'static str

fn version() -> u32

fn id(&self) -> ProxyId

unsafe fn from_ptr(ptr: *mut wl_proxy) -> WlSubcompositor

unsafe fn from_ptr_no_own(ptr: *mut wl_proxy) -> WlSubcompositor

fn set_evt_iterator(&mut self, evt: &EventIterator)

impl Debug for WlSubcompositor

fn fmt(&self, fmt: &mut Formatter) -> Result<(), Error>

impl Drop for WlSubcompositor

fn drop(&mut self)