wayland::zwp_linux_explicit_synchronization_v1_t - protocol for providing explicit synchronization
Contents
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 2155 of file wayland-client-protocol-unstable.hpp.
Member Data Documentation
constexprstd::uint32_twayland::zwp_linux_explicit_synchronization_v1_t::get_synchronization_since_version=1[static],[constexpr]
Minimum protocol version required for the get_synchronization function.
Definition at line 2198 of file wayland-client-protocol-unstable.hpp.
Member Enumeration Documentation
enumclasswayland::proxy_t::wrapper_type[strong],[inherited]
Underlying wl_proxy type and properties of a proxy_t that affect construction, destruction, and event
handling
Enumeratorstandard
C pointer is a standard type compatible with wl_proxy*. Events are dispatched and it is destructed
when the proxy_t is destructed. User data is set.
display
C pointer is a wl_display*. No events are dispatched, wl_display_disconnect is called when the
proxy_t is destructed. User data is set.
foreign
C pointer is a standard type compatible with wl_proxy*, but another library owns it and it should
not be touched in a way that could affect the operation of the other library. No events are
dispatched, wl_proxy_destroy is not called when the proxy_t is destructed, user data is not
touched. Consequently, there is no reference counting for the proxy_t. Lifetime of such wrappers
should preferably be short to minimize the chance that the owning library decides to destroy the
wl_proxy.
proxy_wrapper
C pointer is a wl_proxy* that was constructed with wl_proxy_create_wrapper. No events are
dispatched, wl_proxy_wrapper_destroy is called when the proxy_t is destroyed. Reference counting
is active. A reference to the proxy_t creating this proxy wrapper is held to extend its lifetime
until after the proxy wrapper is destroyed.
Definition at line 116 of file wayland-client.hpp.
Member Function Documentation
wl_proxy*wayland::proxy_t::c_ptr()const[inherited]
Get a pointer to the underlying C struct.
Returns
The underlying wl_proxy wrapped by this proxy_t if it exists, otherwise an exception is thrown
std::stringwayland::proxy_t::get_class()const[inherited]
Get the interface name (class) of a proxy object.
Returns
The interface name of the object associated with the proxy
uint32_twayland::proxy_t::get_id()const[inherited]
Get the id of a proxy object.
Returns
The id the object associated with the proxy
zwp_linux_surface_synchronization_v1_tzwp_linux_explicit_synchronization_v1_t::get_synchronization(surface_tconst&surface)
extend surface interface for explicit synchronization
Returns
the new synchronization interface id
Parameterssurface 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 5547 of file wayland-client-protocol-unstable.cpp.
uint32_twayland::proxy_t::get_version()const[inherited]
Get the protocol object version of a proxy object. Gets the protocol object version of a proxy object, or
0 if the proxy was created with unversioned API.
A returned value of 0 means that no version information is available, so the caller must make safe
assumptions about the object's real version.
display_t will always return version 0.
Returns
The protocol object version of the proxy or 0
wrapper_typewayland::proxy_t::get_wrapper_type()const[inline],[inherited]
Get the type of a proxy object.
Definition at line 302 of file wayland-client.hpp.
wayland::proxy_t::operatorbool()const[inherited]
Check whether this wrapper actually wraps an object.
Returns
true if there is an underlying object, false if this wrapper is empty
boolwayland::proxy_t::operator!=(constproxy_t&right)const[inherited]
Check whether two wrappers refer to different objects.
boolwayland::proxy_t::operator==(constproxy_t&right)const[inherited]
Check whether two wrappers refer to the same object.
boolwayland::proxy_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
voidwayland::proxy_t::proxy_release()[inherited]
Release the wrapped object (if any), making this an empty wrapper. Note that display_t instances cannot
be released this way. Attempts to do so are ignored.
Examplesforeign_display.cpp.
voidwayland::proxy_t::set_queue(event_queue_tqueue)[inherited]
Assign a proxy to an event queue.
Parametersqueue The event queue that will handle this proxy
Assign proxy to event queue. Events coming from proxy will be queued in queue instead of the display's
main queue.
See also: display_t::dispatch_queue().
Examplesproxy_wrapper.cpp.
Name
wayland::zwp_linux_explicit_synchronization_v1_t - protocol for providing explicit synchronization
Synopsis
#include <wayland-client-protocol-unstable.hpp>
Inherits wayland::proxy_t.
PublicTypes
enum class wrapper_type { standard, display, foreign, proxy_wrapper }
PublicMemberFunctionszwp_linux_surface_synchronization_v1_tget_synchronization (surface_t const &surface)
extend surface interface for explicit synchronization
uint32_t get_id () const
Get the id of a proxy object.
std::string get_class () const
Get the interface name (class) of a proxy object.
uint32_t get_version () const
Get the protocol object version of a proxy object.
wrapper_typeget_wrapper_type () const
Get the type of a proxy object.
void set_queue (event_queue_t queue)
Assign a proxy to an event queue.
wl_proxy * c_ptr () const
Get a pointer to the underlying C struct.
bool proxy_has_object () const
Check whether this wrapper actually wraps an object.
operatorbool () const
Check whether this wrapper actually wraps an object.
bool operator== (const proxy_t &right) const
Check whether two wrappers refer to the same object.
bool operator!= (const proxy_t &right) const
Check whether two wrappers refer to different objects.
void proxy_release ()
Release the wrapped object (if any), making this an empty wrapper.
StaticPublicAttributes
static constexpr std::uint32_t get_synchronization_since_version = 1
Minimum protocol version required for the get_synchronization function.
