Skip to main content

DisplayDriver

Struct DisplayDriver 

Source
pub struct DisplayDriver<B: DisplayBus, P: Panel<B>> {
    pub bus: B,
    pub panel: P,
}
Expand description

The high-level driver that orchestrates drawing operations.

This struct acts as the “glue” between the logical Panel implementation (which knows the command set) and the DisplayBus (which handles the physical transport). It exposes user-friendly methods for drawing pixels, filling rectangles, and managing the display state.

Fields§

§bus: B

The underlying bus interface used for communication.

§panel: P

The panel.

Implementations§

Source§

impl<B: DisplayBus, P: Panel<B>> DisplayDriver<B, P>

Source

pub fn builder(bus: B, panel: P) -> DisplayDriverBuilder<B, P>

Creates a builder for configuring and initializing a display driver.

§Example
let mut display = DisplayDriver::builder(bus, panel)
    .with_color_format(ColorFormat::RGB565)
    .with_orientation(Orientation::Deg270)
    .init(&mut delay).await.unwrap();
Source

pub fn new(bus: B, panel: P) -> Self

Creates a new display driver directly (without builder).

Use builder for a fluent initialization API.

Source

pub async fn init( &mut self, delay: &mut impl DelayNs, ) -> Result<(), DisplayError<B::Error>>

Initializes the display.

Source

pub async fn set_window( &mut self, area: Area, ) -> Result<(), DisplayError<B::Error>>

Sets the window.

Use write_pixels or write_frame if you just want to draw a buffer. Use fill_solid_xxx if you just want to fill an Area.

Source

pub async fn set_color_format( &mut self, color_format: ColorFormat, ) -> Result<(), DisplayError<B::Error>>

Sets the pixel color format.

Source

pub async fn set_orientation( &mut self, orientation: Orientation, ) -> Result<(), DisplayError<B::Error>>

Sets the display orientation.

Source

pub async fn write_pixels( &mut self, area: Area, frame_control: FrameControl, buffer: &[u8], ) -> Result<(), DisplayError<B::Error>>

Writes pixels to the specified area.

Source

pub async fn write_frame( &mut self, buffer: &[u8], ) -> Result<(), DisplayError<B::Error>>

Writes the entire buffer to the display.

Source§

impl<B: DisplayBus, P: Panel<B> + PanelSetBrightness<B>> DisplayDriver<B, P>

Source

pub async fn set_brightness( &mut self, brightness: u8, ) -> Result<(), DisplayError<B::Error>>

Sets the display brightness (if supported by the panel).

Source§

impl<B: DisplayBus + BusHardwareFill, P: Panel<B>> DisplayDriver<B, P>

Source

pub async fn fill_solid_via_bus( &mut self, color: SolidColor, area: Area, ) -> Result<(), DisplayError<B::Error>>

Fills the area with a solid color using bus auto-fill.

Source

pub async fn fill_screen_via_bus( &mut self, color: SolidColor, ) -> Result<(), DisplayError<B::Error>>

Fills the entire screen with a solid color using bus auto-fill.

Source§

impl<B, P> DisplayDriver<B, P>
where B: DisplayBus + BusBytesIo, P: Panel<B>,

Source

pub async fn fill_solid_batch<const N: usize>( &mut self, color: SolidColor, area: Area, ) -> Result<(), DisplayError<B::Error>>

Fills the area with a solid color.

Source

pub async fn fill_screen_batch<const N: usize>( &mut self, color: SolidColor, ) -> Result<(), DisplayError<B::Error>>

Fills the entire screen with a solid color.

Auto Trait Implementations§

§

impl<B, P> Freeze for DisplayDriver<B, P>
where B: Freeze, P: Freeze,

§

impl<B, P> RefUnwindSafe for DisplayDriver<B, P>

§

impl<B, P> Send for DisplayDriver<B, P>
where B: Send, P: Send,

§

impl<B, P> Sync for DisplayDriver<B, P>
where B: Sync, P: Sync,

§

impl<B, P> Unpin for DisplayDriver<B, P>
where B: Unpin, P: Unpin,

§

impl<B, P> UnwindSafe for DisplayDriver<B, P>
where B: UnwindSafe, P: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Az for T

Source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

Source§

fn cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> CheckedAs for T

Source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

Source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> OverflowingAs for T

Source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

Source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
Source§

impl<T> SaturatingAs for T

Source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

Source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> UnwrappedAs for T

Source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

Source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> WrappingAs for T

Source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

Source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.