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

content for a wl_surface More...

`#include <wayland-server-protocol.hpp>`

## Public Member Functions

std::function< void()> & | on_destroy ()
| destroy a buffer
void | release (bool post=true)
| compositor releases buffer
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 ()

## Static Public Attributes

static constexpr std::uint32_t | release_since_version = 1
| Minimum protocol version required for the release function.

## Detailed Description

content for a wl_surface

A buffer provides the content for a wl_surface. Buffers are created through factory interfaces such as wl_shm, wp_linux_buffer_params (from the linux-dmabuf protocol extension) or similar. It has a width and a height and can be attached to a wl_surface, but the mechanism by which a client provides and updates the contents is defined by the buffer factory interface.

If the buffer uses a format that has an alpha channel, the alpha channel is assumed to be premultiplied in the color channels unless otherwise specified.

Definition at line 749 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()> & buffer_t::on_destroy | ( |  | ) |

destroy a buffer

Destroy a buffer. If and how you need to release the backing storage is defined by the buffer factory interface.

For possible side-effects to a surface, see wl_surface.attach.

Definition at line 1806 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

## release()

void buffer_t::release | ( | bool | post = true | ) |

compositor releases buffer

Sent when this wl_buffer is no longer used by the compositor. The client is now free to reuse or destroy this buffer and its backing storage.

If a client receives a release event before the frame callback requested in the same wl_surface.commit that attaches this wl_buffer to a surface, then the client is immediately free to reuse the buffer and its backing storage, and does not need a second buffer for the next surface content update. Typically this is possible, when the compositor maintains a copy of the wl_surface contents, e.g. as a GL texture. This is an important optimization for GL(ES) compositors with wl_shm clients.

Definition at line 1812 of file wayland-server-protocol.cpp.

## Member Data Documentation

## release_since_version

std::uint32_t wayland::server::buffer_t::release_since_version = 1

static constexpr

Minimum protocol version required for the release function.

Definition at line 805 of file wayland-server-protocol.hpp.

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