#[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 scene skips the layer for this commit and calls acquire again on
the next one; 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
supports neither 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()