aboutsummaryrefslogtreecommitdiff
path: root/src_testbed/plugin.rs
blob: 877e7f6bde88da421a4225a78279cb349305d234 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use crate::harness::RunState;
use crate::physics::PhysicsState;
use kiss3d::window::Window;
use na::Point3;

pub trait TestbedPlugin {
    fn init_graphics(&mut self, window: &mut Window, gen_color: &mut dyn FnMut() -> Point3<f32>);
    fn clear_graphics(&mut self, window: &mut Window);
    fn run_callbacks(
        &mut self,
        window: &mut Window,
        physics: &mut PhysicsState,
        run_state: &RunState,
    );
    fn step(&mut self, physics: &mut PhysicsState);
    fn draw(&mut self);
    fn profiling_string(&self) -> String;
}