use embedded_canvas::Canvas;
use embedded_graphics::{
pixelcolor::Rgb555,
prelude::*,
primitives::{Circle, PrimitiveStyle, Rectangle, StyledDrawable},
};
use embedded_graphics_simulator::{OutputSettingsBuilder, SimulatorDisplay, Window};
pub const DISPLAY_360P: Size = Size::new(480, 360);
fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut display = SimulatorDisplay::<Rgb555>::new(DISPLAY_360P);
let rectangle_size = Size {
width: 200,
height: 200,
};
let canvas_size = Size {
width: 100,
height: 100,
};
let rectangle_fill = PrimitiveStyle::with_fill(Rgb555::BLUE);
let circle_fill = PrimitiveStyle::with_fill(Rgb555::YELLOW);
Rectangle::with_center(display.bounding_box().center(), rectangle_size)
.draw_styled(&rectangle_fill, &mut display)?;
let canvas = {
let mut canvas: Canvas<Rgb555> = Canvas::new(canvas_size);
Circle::with_center(canvas.bounding_box().center(), 99)
.draw_styled(&circle_fill, &mut canvas)?;
canvas
};
canvas
.place_center(display.bounding_box().center())
.draw(&mut display)?;
let output_settings = OutputSettingsBuilder::new().build();
Window::new("Transparency", &output_settings).show_static(&display);
Ok(())
}