Merge pull request #20 from ferristseng/ferristseng/eg-07

Upgrade to embedded-graphics 0.7
This commit is contained in:
Wesley Moore 2022-02-08 09:08:43 +10:00 committed by GitHub
commit 61b6ea9d59
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 42 additions and 29 deletions

View file

@ -18,23 +18,23 @@ travis-ci = { repository = "wezm/ssd1675" }
codecov = { repository = "wezm/ssd1675" } codecov = { repository = "wezm/ssd1675" }
[dependencies] [dependencies]
libm = "0.2.1" libm = "0.2.2"
[dependencies.embedded-hal] [dependencies.embedded-hal]
features = ["unproven"] features = ["unproven"]
version = "0.2.3" version = "0.2.6"
[dependencies.embedded-graphics] [dependencies.embedded-graphics]
optional = true optional = true
version = "0.6.2" version = "0.7.1"
[dependencies.linux-embedded-hal] [dependencies.linux-embedded-hal]
optional = true optional = true
version = "0.3.0" version = "0.3.2"
[dependencies.profont] [dependencies.profont]
optional = true optional = true
version = "0.4.0" version = "0.5.0"
[features] [features]
default = ["graphics"] default = ["graphics"]

View file

@ -130,25 +130,34 @@ extern crate embedded_graphics;
use self::embedded_graphics::prelude::*; use self::embedded_graphics::prelude::*;
#[cfg(feature = "graphics")] #[cfg(feature = "graphics")]
impl<'a, I> DrawTarget<Color> for GraphicDisplay<'a, I> impl<'a, I> DrawTarget for GraphicDisplay<'a, I>
where where
I: DisplayInterface, I: DisplayInterface,
{ {
type Color = Color;
type Error = core::convert::Infallible; type Error = core::convert::Infallible;
fn draw_pixel( fn draw_iter<Iter>(&mut self, pixels: Iter) -> Result<(), Self::Error>
&mut self, where
Pixel(Point { x, y }, color): Pixel<Color>, Iter: IntoIterator<Item = Pixel<Self::Color>>,
) -> Result<(), Self::Error> { {
let sz = self.size(); let sz = self.size();
for Pixel(Point { x, y }, color) in pixels {
let x = x as u32; let x = x as u32;
let y = y as u32; let y = y as u32;
if x < sz.width && y < sz.height { if x < sz.width && y < sz.height {
self.set_pixel(x, y, color) self.set_pixel(x, y, color)
} }
}
Ok(()) Ok(())
} }
}
#[cfg(feature = "graphics")]
impl<'a, I> OriginDimensions for GraphicDisplay<'a, I>
where
I: DisplayInterface,
{
fn size(&self) -> Size { fn size(&self) -> Size {
match self.rotation() { match self.rotation() {
Rotation::Rotate0 | Rotation::Rotate180 => { Rotation::Rotate0 | Rotation::Rotate180 => {
@ -163,7 +172,7 @@ where
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use self::embedded_graphics::{egrectangle, primitive_style}; use self::embedded_graphics::primitives::{PrimitiveStyleBuilder, Rectangle};
use super::*; use super::*;
use {Builder, Color, Dimensions, Display, DisplayInterface, GraphicDisplay, Rotation}; use {Builder, Color, Dimensions, Display, DisplayInterface, GraphicDisplay, Rotation};
@ -265,10 +274,12 @@ mod tests {
let mut display = let mut display =
GraphicDisplay::new(build_mock_display(), &mut black_buffer, &mut red_buffer); GraphicDisplay::new(build_mock_display(), &mut black_buffer, &mut red_buffer);
egrectangle!( Rectangle::with_corners(Point::new(0, 0), Point::new(2, 2))
top_left = (0, 0), .into_styled(
bottom_right = (2, 2), PrimitiveStyleBuilder::new()
style = primitive_style!(stroke_color = Color::White, stroke_width = 1) .stroke_color(Color::White)
.stroke_width(1)
.build(),
) )
.draw(&mut display) .draw(&mut display)
.unwrap() .unwrap()
@ -294,10 +305,12 @@ mod tests {
let mut display = let mut display =
GraphicDisplay::new(build_mock_display(), &mut black_buffer, &mut red_buffer); GraphicDisplay::new(build_mock_display(), &mut black_buffer, &mut red_buffer);
egrectangle!( Rectangle::with_corners(Point::new(0, 0), Point::new(2, 2))
top_left = (0, 0), .into_styled(
bottom_right = (2, 2), PrimitiveStyleBuilder::new()
style = primitive_style!(stroke_color = Color::Red, stroke_width = 1) .stroke_color(Color::Red)
.stroke_width(1)
.build(),
) )
.draw(&mut display) .draw(&mut display)
.unwrap(); .unwrap();