pub struct LedPixelDrawTarget<'d, CDraw, CDev, S, Data = Vec<u8>>where
CDraw: RgbColor,
CDev: LedPixelColor + From<CDraw>,
S: LedPixelShape,
Data: DerefMut<Target = [u8]> + FromIterator<u8> + IntoIterator<Item = u8>,{ /* private fields */ }
Available on crate feature
embedded-graphics-core
only.Expand description
Target for embedded-graphics drawing operations of the LED pixels.
CDraw
- color type for embedded-graphics drawing operationsCDev
- the LED pixel color type (device dependant). It shall be convertible fromCDraw
.S
- the LED pixel shapeData
- (optional) data storage type. It shall beVec
-like struct.
flush()
operation shall be required to write changes from a framebuffer to the display.
For non-alloc
no_std environment, Data
should be explicitly set to some Vec
-like struct:
e.g., heapless::Vec<u8, PIXEL_LEN>
where PIXEL_LEN
equals to S::size() * CDev::BPP
.
Implementations§
source§impl<'d, CDraw, CDev, S, Data> LedPixelDrawTarget<'d, CDraw, CDev, S, Data>where
CDraw: RgbColor,
CDev: LedPixelColor + From<CDraw>,
S: LedPixelShape,
Data: DerefMut<Target = [u8]> + FromIterator<u8> + IntoIterator<Item = u8>,
impl<'d, CDraw, CDev, S, Data> LedPixelDrawTarget<'d, CDraw, CDev, S, Data>where
CDraw: RgbColor,
CDev: LedPixelColor + From<CDraw>,
S: LedPixelShape,
Data: DerefMut<Target = [u8]> + FromIterator<u8> + IntoIterator<Item = u8>,
sourcepub fn new<C: RmtChannel>(
channel: impl Peripheral<P = C> + 'd,
pin: impl Peripheral<P = impl OutputPin> + 'd,
) -> Result<Self, Ws2812Esp32RmtDriverError>
pub fn new<C: RmtChannel>( channel: impl Peripheral<P = C> + 'd, pin: impl Peripheral<P = impl OutputPin> + 'd, ) -> Result<Self, Ws2812Esp32RmtDriverError>
Create a new draw target.
channel
shall be different between different pin
.
sourcepub fn set_brightness(&mut self, brightness: u8)
pub fn set_brightness(&mut self, brightness: u8)
Set maximum brightness.
Each channel values of the returned shall be scaled down to (brightness + 1) / 256
.
sourcepub fn brightness(&self) -> u8
pub fn brightness(&self) -> u8
Returns maximum brightness.
sourcepub fn clear_with_black(&mut self) -> Result<(), Ws2812Esp32RmtDriverError>
pub fn clear_with_black(&mut self) -> Result<(), Ws2812Esp32RmtDriverError>
Clear with black.
Same operation as clear(black_color)
.
sourcepub fn flush(&mut self) -> Result<(), Ws2812Esp32RmtDriverError>
pub fn flush(&mut self) -> Result<(), Ws2812Esp32RmtDriverError>
Write changes from a framebuffer to the LED pixels
Trait Implementations§
source§impl<'d, CDraw, CDev, S, Data> DrawTarget for LedPixelDrawTarget<'d, CDraw, CDev, S, Data>where
CDraw: RgbColor,
CDev: LedPixelColor + From<CDraw>,
S: LedPixelShape,
Data: DerefMut<Target = [u8]> + FromIterator<u8> + IntoIterator<Item = u8>,
impl<'d, CDraw, CDev, S, Data> DrawTarget for LedPixelDrawTarget<'d, CDraw, CDev, S, Data>where
CDraw: RgbColor,
CDev: LedPixelColor + From<CDraw>,
S: LedPixelShape,
Data: DerefMut<Target = [u8]> + FromIterator<u8> + IntoIterator<Item = u8>,
§type Error = Ws2812Esp32RmtDriverError
type Error = Ws2812Esp32RmtDriverError
Error type to return when a drawing operation fails. Read more
source§fn draw_iter<I>(&mut self, pixels: I) -> Result<(), Self::Error>
fn draw_iter<I>(&mut self, pixels: I) -> Result<(), Self::Error>
Draw individual pixels to the display without a defined order. Read more
source§fn clear(&mut self, color: Self::Color) -> Result<(), Self::Error>
fn clear(&mut self, color: Self::Color) -> Result<(), Self::Error>
Fill the entire display with a solid color. Read more
source§fn fill_contiguous<I>(
&mut self,
area: &Rectangle,
colors: I,
) -> Result<(), Self::Error>where
I: IntoIterator<Item = Self::Color>,
fn fill_contiguous<I>(
&mut self,
area: &Rectangle,
colors: I,
) -> Result<(), Self::Error>where
I: IntoIterator<Item = Self::Color>,
Fill a given area with an iterator providing a contiguous stream of pixel colors. Read more
source§impl<'d, CDraw, CDev, S, Data> OriginDimensions for LedPixelDrawTarget<'d, CDraw, CDev, S, Data>where
CDraw: RgbColor,
CDev: LedPixelColor + From<CDraw>,
S: LedPixelShape,
Data: DerefMut<Target = [u8]> + FromIterator<u8> + IntoIterator<Item = u8>,
impl<'d, CDraw, CDev, S, Data> OriginDimensions for LedPixelDrawTarget<'d, CDraw, CDev, S, Data>where
CDraw: RgbColor,
CDev: LedPixelColor + From<CDraw>,
S: LedPixelShape,
Data: DerefMut<Target = [u8]> + FromIterator<u8> + IntoIterator<Item = u8>,
Auto Trait Implementations§
impl<'d, CDraw, CDev, S, Data> Freeze for LedPixelDrawTarget<'d, CDraw, CDev, S, Data>where
Data: Freeze,
impl<'d, CDraw, CDev, S, Data> RefUnwindSafe for LedPixelDrawTarget<'d, CDraw, CDev, S, Data>
impl<'d, CDraw, CDev, S, Data> Send for LedPixelDrawTarget<'d, CDraw, CDev, S, Data>
impl<'d, CDraw, CDev, S, Data> Sync for LedPixelDrawTarget<'d, CDraw, CDev, S, Data>
impl<'d, CDraw, CDev, S, Data> Unpin for LedPixelDrawTarget<'d, CDraw, CDev, S, Data>
impl<'d, CDraw, CDev, S, Data = Vec<u8>> !UnwindSafe for LedPixelDrawTarget<'d, CDraw, CDev, S, Data>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
Casts the value.
source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Casts the value.
source§impl<T> Dimensions for Twhere
T: OriginDimensions,
impl<T> Dimensions for Twhere
T: OriginDimensions,
source§fn bounding_box(&self) -> Rectangle
fn bounding_box(&self) -> Rectangle
Returns the bounding box.
source§impl<T> OverflowingAs for T
impl<T> OverflowingAs for T
source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
Casts the value.
source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
Casts the value.
source§impl<T> SaturatingAs for T
impl<T> SaturatingAs for T
source§fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
Casts the value.
source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
source§fn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
Casts the value.
source§impl<T> UnwrappedAs for T
impl<T> UnwrappedAs for T
source§fn unwrapped_as<Dst>(self) -> Dstwhere
T: UnwrappedCast<Dst>,
fn unwrapped_as<Dst>(self) -> Dstwhere
T: UnwrappedCast<Dst>,
Casts the value.
source§impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere
Src: UnwrappedCast<Dst>,
impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere
Src: UnwrappedCast<Dst>,
source§fn unwrapped_cast_from(src: Src) -> Dst
fn unwrapped_cast_from(src: Src) -> Dst
Casts the value.
source§impl<T> WrappingAs for T
impl<T> WrappingAs for T
source§fn wrapping_as<Dst>(self) -> Dstwhere
T: WrappingCast<Dst>,
fn wrapping_as<Dst>(self) -> Dstwhere
T: WrappingCast<Dst>,
Casts the value.
source§impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere
Src: WrappingCast<Dst>,
impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere
Src: WrappingCast<Dst>,
source§fn wrapping_cast_from(src: Src) -> Dst
fn wrapping_cast_from(src: Src) -> Dst
Casts the value.