---
name: "wayland_server_zwp_linux_explicit_synchronization_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_explicit_synchronization_v1_t"
---

# wayland\_server\_zwp\_linux\_explicit\_synchronization\_v1\_t(3)

protocol for providing explicit synchronization

## NAME

wayland::server::zwp\_linux\_explicit\_synchronization\_v1\_t - protocol for providing explicit synchronization

## SYNOPSIS

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

Inherits wayland::server::resource\_t.

### Public Member Functions

std::function\< void()\> & **on\_destroy** ()\
 destroy explicit synchronization factory object  std::function\< void(**zwp\_linux\_surface\_synchronization\_v1\_t**, **surface\_t**)\> & **on\_get\_synchronization** ()\
 extend surface interface for explicit synchronization  void **post\_synchronization\_exists** (std::string const &msg)\
 Post error: the surface already has a synchronization object associated.  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

protocol for providing explicit synchronization

This global is a factory interface, allowing clients to request explicit synchronization for buffers on a per-surface basis.

See zwp\_linux\_surface\_synchronization\_v1 for more information.

This interface is derived from Chromium's zcr\_linux\_explicit\_synchronization\_v1.

Warning! The protocol described in this file is experimental and backward incompatible changes may be made. Backward compatible changes may be added together with the corresponding interface version bump. Backward incompatible changes are done by bumping the version number in the protocol and interface names and resetting the interface version. Once the protocol is to be declared stable, the 'z' prefix and the version number in the protocol and interface names are removed and the interface version number is reset.

Definition at line **2348** of file **wayland-server-protocol-unstable.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()\> & zwp\_linux\_explicit\_synchronization\_v1\_t::on\_destroy ()

destroy explicit synchronization factory object Destroy this explicit synchronization factory object. Other objects, including zwp\_linux\_surface\_synchronization\_v1 objects created by this factory, shall not be affected by this request.

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

### std::function\< void(zwp\_linux\_surface\_synchronization\_v1\_t, surface\_t)\> & zwp\_linux\_explicit\_synchronization\_v1\_t::on\_get\_synchronization ()

extend surface interface for explicit synchronization

**Parameters**

*id* the new synchronization interface id \
 *surface* the surface

Instantiate an interface extension for the given wl\_surface to provide explicit synchronization.

If the given wl\_surface already has an explicit synchronization object associated, the synchronization\_exists protocol error is raised.

Graphics APIs, like EGL or Vulkan, that manage the buffer queue and commits of a wl\_surface themselves, are likely to be using this extension internally. If a client is using such an API for a wl\_surface, it should not directly use this extension on that surface, to avoid raising a synchronization\_exists protocol error.

Definition at line **5204** 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.

### void zwp\_linux\_explicit\_synchronization\_v1\_t::post\_synchronization\_exists (std::string const & msg)

Post error: the surface already has a synchronization object associated.

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

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