[−][src]Struct rustbatch::render::geom::GeomDrawer
GeomDrawer can draw lines and rectangles but you can draw almost anything with some math by pushing points. You can reuse what you already drawn if you dont clear the screen, on the other hand if you need more dinamic aproach clear and redraw ewery frame.
example
use rustbatch::{Window, Vect, FPS, Rect}; use rustbatch::render::geom::{GeomDrawer, LineMode}; use rustbatch::vect; use rustbatch::rect; let (mut window, mut event_pump, _gl, _sdl, _video_subsystem) = Window::new(|sys| { sys.window("rusty batch", 1000, 700) .opengl() .resizable() .build() .unwrap() }); window.set_background_color(&[0.5f32, 0.5f32, 0.5f32, 1f32]); let mut drawer = GeomDrawer::new(); drawer.color = [1.0, 0.0, 1.0, 5.0]; drawer.polynomial(vect!(100, 100), 20.0, 100.0, 0.0, 40, LineMode::Sharp); drawer.color = [1.0, 0.0, 1.0, 0.5]; drawer.polynomial(Vect::ZERO, 20.0, 100.0, 0.0, 3, LineMode::Sharp); drawer.color = [0.0, 0.5, 1.0, 5.5]; drawer.empty_rect(rect!(0, -40, 150, 60), 10.0, LineMode::Sharp); drawer.color = [1.0, 1.0, 0.0, 0.5]; let mut fps = FPS::new(1f32); 'main: loop { for event in event_pump.poll_iter() { match event { sdl2::event::Event::Quit { .. } => break 'main, _ => {} } } let _delta = fps.increase(0f32); window.clear(); drawer.draw(&mut window.canvas); window.update(); }
Fields
color: RGBA
Implementations
impl GeomDrawer
[src]
pub fn new() -> Self
[src]
pub fn rect(&mut self, rect: Rect)
[src]
pub fn empty_rect(&mut self, rect: Rect, thickness: f32, mode: LineMode)
[src]
pub fn add_rectangle(&mut self, points: &[Vect; 4])
[src]
pub fn line(&mut self, points: &[Vect], thickness: f32, mode: LineMode)
[src]
pub fn polynomial(
&mut self,
position: Vect,
thickness: f32,
radius: f32,
rotation: f32,
sides: usize,
mode: LineMode
)
[src]
&mut self,
position: Vect,
thickness: f32,
radius: f32,
rotation: f32,
sides: usize,
mode: LineMode
)
pub fn point(&mut self, pos: Vect)
[src]
pub fn clear(&mut self)
[src]
pub fn draw<T: Target>(&self, target: &mut T)
[src]
Auto Trait Implementations
impl RefUnwindSafe for GeomDrawer
impl Send for GeomDrawer
impl Sync for GeomDrawer
impl Unpin for GeomDrawer
impl UnwindSafe for GeomDrawer
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,