mirror of
https://github.com/Feliix42/ssd1675.git
synced 2024-11-24 19:56:30 +00:00
Merge pull request #20 from ferristseng/ferristseng/eg-07
Upgrade to embedded-graphics 0.7
This commit is contained in:
commit
61b6ea9d59
2 changed files with 42 additions and 29 deletions
10
Cargo.toml
10
Cargo.toml
|
@ -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"]
|
||||||
|
|
|
@ -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();
|
||||||
|
|
Loading…
Reference in a new issue