Expand description
§embassy-st7789v-graphics
Couche graphique 2D no_std pour écrans TFT LCD ST7789V 240×320,
construite au-dessus de embassy-st7789v.
§Rôle exact de ce crate
Le driver embassy-st7789v fournit déjà :
draw_pixel(),draw_hline(),draw_vline()draw_rect(),fill_rect(),fill_screen()draw_char(),draw_str(),draw_i16(),draw_u32(),draw_f32()draw_char_scaled(),draw_str_scaled()draw_bitmap()set_orientation(),set_invert()
Ce crate ne duplique rien. Il ajoute uniquement les primitives géométriques que le driver ne propose pas :
| Fonction | Algorithme |
|---|---|
line() | Bresenham integer-only |
circle() | Midpoint integer-only |
fill_circle() | Midpoint + hlines |
triangle() | 3 appels à line() |
fill_triangle | Scanline integer-only |
ellipse | Midpoint généralisé |
bezier_quad | De Casteljau integer-only |
§Architecture
┌──────────────────────────────────────────────────┐
│ Votre application │
│ line() / circle() / triangle() … │
│ ecran.draw_str() / ecran.draw_f32() … │ ← driver direct pour le texte
└──────────┬───────────────────────────────────────┘
│ &mut Graphics
┌──────────▼──────────────────┐
│ Graphics (ce crate) │
│ clipping · pixel() async │
└──────────┬──────────────────┘
│ draw_pixel() async
┌──────────▼──────────────────────────────────────┐
│ embassy-st7789v (driver) │
│ framebuffer SPI · RAMWR · fill_rect() … │
└─────────────────────────────────────────────────┘§Patron de borrow
Graphics tient un &mut St7789v pour toute sa durée de vie.
Pour appeler les méthodes du driver directement (texte, remplissage,
orientation…), gfx doit être sorti de portée au préalable.
loop {
ecran.fill_screen(Color::BLACK).await.unwrap();
{
let mut gfx = Graphics::new(&mut ecran);
line(&mut gfx, 0, 0, 239, 319, Color::WHITE).await;
circle(&mut gfx, 120, 160, 60, Color::CYAN).await;
} // ← borrow libéré
ecran.draw_str(8, 10, b"BONJOUR", Color::YELLOW, Color::BLACK).await.unwrap();
}§Note sur les erreurs SPI
Les fonctions de ce crate ignorent silencieusement les erreurs SPI
(comme le fait également embassy-ssd1306-graphics pour le bus I2C).
Si votre application requiert une gestion d’erreur fine, utilisez
directement ecran.draw_pixel().
Structs§
- Graphics
- Contexte graphique pour le ST7789V 240×320.
Functions§
- bezier_
quad - Trace une courbe de Bézier quadratique (3 points de contrôle).
- circle
- Trace le contour d’un cercle.
- ellipse
- Trace le contour d’une ellipse.
- fill_
circle - Remplit un cercle (disque plein).
- fill_
triangle - Remplit un triangle défini par trois sommets.
- line
- Trace une ligne entre
(x0, y0)et(x1, y1). - triangle
- Trace le contour d’un triangle défini par trois sommets.