Embedded graphics core
embedded-graphics-core contains the core components of embedded-graphics that are required to add embedded-graphics support to display drivers, image libraries, text renderers and other third party crates.
This crate should only be used by crates that extend embedded-graphics. Applications should instead depend on embedded-graphics itself.
Like any other crate, embedded-graphics-core will change over time, however it will change at a much slower rate than embedded-graphics itself, and will likely release fewer breaking changes. This will provide more stability and compatability for the weider embedded-graphics ecosystem, whilst allowing non-core features of embedded-graphics to evolve at a faster pace. The same version of embedded-graphics-core may be used for multiple major versions of embedded-graphics.
Core functionality
DrawTarget- By implementing a draw target for a display driver, all embedded-graphics drawables can be drawn to that display.Drawable- This trait can be implemented to make an object drawable to anyDrawTarget. Examples include shapes, text, UI elements, etc.ImageDrawable- Color types - see below.
- Geometry -
Point,SizeandRectangleprovide ways of defining positions, dimensions and rectangular areas respectively.
Colors
The pixelcolor module provides various standard color types, from BinaryColor to
Rgb888. See the pixelcolor module documentation for the complete list of color depths
and formats available.
Display drivers
See the DrawTarget documentation for examples on how to integrate embedded-graphics with a
display driver using the DrawTarget trait.
Images
The ImageDrawable trait should be implemented for any image or image-like item, for example
a spritemap.
Features
defmt- implementsdefmt::Formatfor all types where this is possible.
Minimum supported Rust version
The minimum supported Rust version for embedded-graphics-core is 1.61 or greater.
Ensure you have the correct version of Rust installed, preferably through https://rustup.rs.
Development setup
Please see the development setup guide.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.