#![crate_name = "graphics"]
#![deny(
rust_2018_compatibility,
rust_2018_idioms,
unused,
nonstandard_style,
future_incompatible,
missing_docs,
missing_copy_implementations
)]
pub use character::{Character, CharacterCache};
pub use circle_arc::CircleArc;
pub use colored::Colored;
pub use context::Context;
pub use draw_state::DrawState;
pub use ellipse::Ellipse;
pub use crate::graphics::Graphics;
pub use image::Image;
pub use line::Line;
pub use polygon::Polygon;
pub use radians::Radians;
pub use rectangle::Rectangle;
pub use rectangled::Rectangled;
pub use source_rectangled::SourceRectangled;
pub use text::Text;
pub use texture::ImageSize;
pub use transformed::Transformed;
pub use viewport::Viewport;
pub const BACK_END_MAX_VERTEX_COUNT: usize = 1023;
mod colored;
mod graphics;
mod rectangled;
mod source_rectangled;
mod transformed;
pub mod character;
pub mod circle_arc;
pub mod color;
pub mod context;
pub mod draw_state;
pub mod ellipse;
pub mod glyph_cache;
pub mod grid;
pub mod image;
pub mod line;
pub mod math;
pub mod modular_index;
pub mod polygon;
pub mod rectangle;
pub mod text;
pub mod texture_packer;
pub mod triangulation;
pub mod types;
pub mod radians {
pub use vecmath::traits::Radians;
}
pub fn clear<G>(color: types::Color, g: &mut G)
where
G: Graphics,
{
g.clear_color(color);
g.clear_stencil(0);
}
pub fn image<G>(image: &<G as Graphics>::Texture, transform: math::Matrix2d, g: &mut G)
where
G: Graphics,
{
Image::new().draw(image, &Default::default(), transform, g);
}
pub fn ellipse_from_to<P: Into<types::Vec2d>, G>(
color: types::Color,
from: P,
to: P,
transform: math::Matrix2d,
g: &mut G,
) where
G: Graphics,
{
Ellipse::new(color).draw_from_to(from, to, &Default::default(), transform, g);
}
pub fn ellipse<R: Into<types::Rectangle>, G>(
color: types::Color,
rect: R,
transform: math::Matrix2d,
g: &mut G,
) where
G: Graphics,
{
Ellipse::new(color).draw(rect, &Default::default(), transform, g);
}
pub fn circle_arc<R: Into<types::Rectangle>, G>(
color: types::Color,
radius: types::Radius,
start: types::Scalar,
end: types::Scalar,
rect: R,
transform: math::Matrix2d,
g: &mut G,
) where
G: Graphics,
{
CircleArc::new(color, radius, start, end).draw(rect, &Default::default(), transform, g);
}
pub fn rectangle_from_to<P: Into<types::Vec2d>, G>(
color: types::Color,
from: P,
to: P,
transform: math::Matrix2d,
g: &mut G,
) where
G: Graphics,
{
Rectangle::new(color).draw_from_to(from, to, &Default::default(), transform, g);
}
pub fn rectangle<R: Into<types::Rectangle>, G>(
color: types::Color,
rect: R,
transform: math::Matrix2d,
g: &mut G,
) where
G: Graphics,
{
Rectangle::new(color).draw(rect, &Default::default(), transform, g);
}
pub fn polygon<G>(
color: types::Color,
polygon: types::Polygon<'_>,
transform: math::Matrix2d,
g: &mut G,
) where
G: Graphics,
{
Polygon::new(color).draw(polygon, &Default::default(), transform, g);
}
pub fn line_from_to<P: Into<types::Vec2d>, G>(
color: types::Color,
radius: types::Radius,
from: P,
to: P,
transform: math::Matrix2d,
g: &mut G,
) where
G: Graphics,
{
Line::new(color, radius).draw_from_to(from, to, &Default::default(), transform, g)
}
pub fn line<L: Into<types::Line>, G>(
color: types::Color,
radius: types::Radius,
line: L,
transform: math::Matrix2d,
g: &mut G,
) where
G: Graphics,
{
Line::new(color, radius).draw(line, &Default::default(), transform, g)
}
pub fn text<C, G>(
color: types::Color,
font_size: types::FontSize,
text: &str,
cache: &mut C,
transform: math::Matrix2d,
g: &mut G,
) -> Result<(), C::Error>
where
C: character::CharacterCache,
G: Graphics<Texture = <C as character::CharacterCache>::Texture>,
{
Text::new_color(color, font_size).draw(text, cache, &Default::default(), transform, g)
}