//! Where a frame's pixels live once an operation hands it back.
/// The representation a decoder or scaler hands frames back in.
///
/// A choice, not a promise of GPU residency. [`Native`](Self::Native) lets a
/// hardware backend keep its picture where it made it, which on a software
/// backend is CPU memory anyway. [`Cpu`](Self::Cpu) is the portable exit: the
/// result is always [`Surface::I420`](crate::Surface::I420), downloaded when it
/// had to be. `#[non_exhaustive]` so a narrower choice (a specific device, a
/// shareable handle) can be added without breaking a `match`.