[−][src]Trait wayland_protocols::unstable::linux_explicit_synchronization::v1::client::zwp_linux_surface_synchronization_v1::RequestsTrait
Required methods
fn destroy(&self)
destroy synchronization object
Destroy this explicit synchronization object.
Any fence set by this object with set_acquire_fence since the last commit will be discarded by the server. Any fences set by this object before the last commit are not affected.
zwp_linux_buffer_release_v1 objects created by this object are not affected by this request.
This is a destructor, you cannot send requests to this object any longer once this method is called.
fn set_acquire_fence(&self, fd: RawFd)
set the acquire fence
Set the acquire fence that must be signaled before the compositor may sample from the buffer attached with wl_surface.attach. The fence is a dma_fence kernel object.
The acquire fence is double-buffered state, and will be applied on the next wl_surface.commit request for the associated surface. Thus, it applies only to the buffer that is attached to the surface at commit time.
If the provided fd is not a valid dma_fence fd, then an INVALID_FENCE error is raised.
If a fence has already been attached during the same commit cycle, a DUPLICATE_FENCE error is raised.
If the associated wl_surface was destroyed, a NO_SURFACE error is raised.
If at surface commit time the attached buffer does not support explicit synchronization, an UNSUPPORTED_BUFFER error is raised.
If at surface commit time there is no buffer attached, a NO_BUFFER error is raised.
fn get_release<F>(
&self,
implementor: F
) -> Result<Proxy<ZwpLinuxBufferReleaseV1>, ()> where
F: FnOnce(NewProxy<ZwpLinuxBufferReleaseV1>) -> Proxy<ZwpLinuxBufferReleaseV1>,
&self,
implementor: F
) -> Result<Proxy<ZwpLinuxBufferReleaseV1>, ()> where
F: FnOnce(NewProxy<ZwpLinuxBufferReleaseV1>) -> Proxy<ZwpLinuxBufferReleaseV1>,
release fence for last-attached buffer
Create a listener for the release of the buffer attached by the client with wl_surface.attach. See zwp_linux_buffer_release_v1 documentation for more information.
The release object is double-buffered state, and will be associated with the buffer that is attached to the surface at wl_surface.commit time.
If a zwp_linux_buffer_release_v1 object has already been requested for the surface in the same commit cycle, a DUPLICATE_RELEASE error is raised.
If the associated wl_surface was destroyed, a NO_SURFACE error is raised.
If at surface commit time there is no buffer attached, a NO_BUFFER error is raised.
Implementations on Foreign Types
impl RequestsTrait for Proxy<ZwpLinuxSurfaceSynchronizationV1>
[src]
fn destroy(&self)
[src]
fn set_acquire_fence(&self, fd: RawFd)
[src]
fn get_release<F>(
&self,
implementor: F
) -> Result<Proxy<ZwpLinuxBufferReleaseV1>, ()> where
F: FnOnce(NewProxy<ZwpLinuxBufferReleaseV1>) -> Proxy<ZwpLinuxBufferReleaseV1>,
[src]
&self,
implementor: F
) -> Result<Proxy<ZwpLinuxBufferReleaseV1>, ()> where
F: FnOnce(NewProxy<ZwpLinuxBufferReleaseV1>) -> Proxy<ZwpLinuxBufferReleaseV1>,