#[non_exhaustive]pub enum SourceError {
WouldBlock,
Unsupported,
Failed(Errno),
}Expand description
Why an acquire did not produce a buffer.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
WouldBlock
Flow control, not a failure. The source has no frame to contribute this vblank.
The layer keeps its plane and goes on showing its previous framebuffer
– or is left out, if it has never produced one – and acquire is
called again on the next commit; the layer is counted in
layers_skipped_no_frame,
never in the failure paths. A live source returns this before its first
sample lands, and any time the producer falls behind with no cached
frame to re-issue.
This is DR-6: a distinct variant, never
io::ErrorKind::WouldBlock. Squinting
at an I/O error to recover flow control is exactly how the EAGAIN
contract gets lost in a refactor — and losing it turns a stalled
producer into an aborted commit.
Unsupported
The operation is not supported by this source.
Returned by the default map and
export_dma_buf. A source that
does not support map is uncompositable: when the allocator cannot place
it, the scene has no way to rescue it and the layer stays dropped for
the frame.
Failed(Errno)
A real failure. Aborts the commit.
Trait Implementations§
Source§impl Debug for SourceError
impl Debug for SourceError
Source§impl Display for SourceError
impl Display for SourceError
Source§impl Error for SourceError
impl Error for SourceError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()