pub trait DisplayBackend<const W: usize, const H: usize, FB>where
FB: DMACapableFrameBufferBackend<Color = Rgb565>,{
type Transfer: DmaTransfer<Buffer = FrameBuf<Rgb565, FB>>;
// Required method
fn start_dma_transfer(
&mut self,
framebuffer: FrameBuf<Rgb565, FB>,
) -> Result<Self::Transfer, TransferError<FB>>;
// Provided method
fn start_dma_transfer_region(
&mut self,
framebuffer: FrameBuf<Rgb565, FB>,
_region: DisplayRegion,
) -> Result<Self::Transfer, TransferError<FB>> { ... }
}Expand description
Platform-agnostic display backend trait.
Implementations handle the hardware-specific details of transferring a
framebuffer to the display. The API is intentionally ownership-based:
start_dma_transfer takes the framebuffer by value and returns a
DmaTransfer token. The buffer is held inside the token and cannot
be accessed again until DmaTransfer::wait returns it. This
prevents write-after-submit data races at compile time.
Required Associated Types§
Sourcetype Transfer: DmaTransfer<Buffer = FrameBuf<Rgb565, FB>>
type Transfer: DmaTransfer<Buffer = FrameBuf<Rgb565, FB>>
The transfer token type returned by this backend.
Required Methods§
Sourcefn start_dma_transfer(
&mut self,
framebuffer: FrameBuf<Rgb565, FB>,
) -> Result<Self::Transfer, TransferError<FB>>
fn start_dma_transfer( &mut self, framebuffer: FrameBuf<Rgb565, FB>, ) -> Result<Self::Transfer, TransferError<FB>>
Start a non-blocking DMA transfer of the full framebuffer.
Provided Methods§
Sourcefn start_dma_transfer_region(
&mut self,
framebuffer: FrameBuf<Rgb565, FB>,
_region: DisplayRegion,
) -> Result<Self::Transfer, TransferError<FB>>
fn start_dma_transfer_region( &mut self, framebuffer: FrameBuf<Rgb565, FB>, _region: DisplayRegion, ) -> Result<Self::Transfer, TransferError<FB>>
Start a non-blocking DMA transfer of a framebuffer sub-region.
Backends that do not support partial transfers may ignore region
and fall back to a full-frame transfer.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".