---
name: "wayland_server_zwp_linux_buffer_release_v1_t"
section: "3"
platform: "linux"
package: "waylandpp-dev"
version: "1.0.0-6+b2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/wayland_server_zwp_linux_buffer_release_v1_t"
---

# wayland\_server\_zwp\_linux\_buffer\_release\_v1\_t(3)

buffer release explicit synchronization

## NAME

wayland::server::zwp\_linux\_buffer\_release\_v1\_t - buffer release explicit synchronization

## SYNOPSIS

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

Inherits wayland::server::resource\_t.

### Public Member Functions

void **fenced\_release** (int fence, bool post=true)\
 release buffer with fence  void **immediate\_release** (bool post=true)\
 release buffer immediately  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 **fenced\_release\_since\_version** = 1\
 Minimum protocol version required for the **fenced\_release** function.  static constexpr std::uint32\_t **immediate\_release\_since\_version** = 1\
 Minimum protocol version required for the **immediate\_release** function.

## Detailed Description

buffer release explicit synchronization

This object is instantiated in response to a zwp\_linux\_surface\_synchronization\_v1.get\_release request.

It provides an alternative to wl\_buffer.release events, providing a unique release from a single wl\_surface.commit request. The release event also supports explicit synchronization, providing a fence FD for the client to synchronize against.

Exactly one event, either a fenced\_release or an immediate\_release, will be emitted for the wl\_surface.commit request. The compositor can choose release by release which event it uses.

This event does not replace wl\_buffer.release events; servers are still required to send those events.

Once a buffer release object has delivered a 'fenced\_release' or an 'immediate\_release' event it is automatically destroyed.

Definition at line **2620** of file **wayland-server-protocol-unstable.hpp**.

## Member Function Documentation

### void zwp\_linux\_buffer\_release\_v1\_t::fenced\_release (int fence, bool post = `true`)

release buffer with fence

**Parameters**

*fence* fence for last operation on buffer

Sent when the compositor has finalised its usage of the associated buffer for the relevant commit, providing a dma\_fence which will be signaled when all operations by the compositor on that buffer for that commit have finished.

Once the fence has signaled, and assuming the associated buffer is not pending release from other wl\_surface.commit requests, no additional explicit or implicit synchronization is required to safely reuse or destroy the buffer.

This event destroys the zwp\_linux\_buffer\_release\_v1 object.

Definition at line **5336** of file **wayland-server-protocol-unstable.cpp**.

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

### void zwp\_linux\_buffer\_release\_v1\_t::immediate\_release (bool post = `true`)

release buffer immediately Sent when the compositor has finalised its usage of the associated buffer for the relevant commit, and either performed no operations using it, or has a guarantee that all its operations on that buffer for that commit have finished.

Once this event is received, and assuming the associated buffer is not pending release from other wl\_surface.commit requests, no additional explicit or implicit synchronization is required to safely reuse or destroy the buffer.

This event destroys the zwp\_linux\_buffer\_release\_v1 object.

Definition at line **5341** of file **wayland-server-protocol-unstable.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

## Member Data Documentation

### constexpr std::uint32\_t wayland::server::zwp\_linux\_buffer\_release\_v1\_t::fenced\_release\_since\_version = 1` [static]`, ` [constexpr]`

Minimum protocol version required for the **fenced\_release** function.

Definition at line **2665** of file **wayland-server-protocol-unstable.hpp**.

### constexpr std::uint32\_t wayland::server::zwp\_linux\_buffer\_release\_v1\_t::immediate\_release\_since\_version = 1` [static]`, ` [constexpr]`

Minimum protocol version required for the **immediate\_release** function.

Definition at line **2686** of file **wayland-server-protocol-unstable.hpp**.

## Author

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