use super::*;
#[derive(Clone, Debug, PartialEq)]
pub(crate) struct Ball {
pub(crate) position: Vector2D,
pub(crate) velocity: Vector2D,
pub(crate) radius: f64,
pub(crate) color: String,
}
#[derive(Clone, Copy, Data, Debug, Default, PartialEq)]
pub(crate) struct UseGame2D {
#[get(type(copy))]
pub(crate) running: Signal<bool>,
#[get(type(copy))]
pub(crate) fps: Signal<f64>,
#[get(type(copy))]
pub(crate) ball_count: Signal<usize>,
#[get(type(copy))]
pub(crate) total_spawned: Signal<usize>,
#[get(type(copy))]
pub(crate) loaded: Signal<bool>,
}
#[derive(Clone, Debug)]
pub(crate) struct BallStore(pub(crate) Rc<RefCell<Vec<Ball>>>);
#[derive(Clone, Debug)]
pub(crate) struct CanvasCache(pub(crate) Rc<RefCell<Option<HtmlCanvasElement>>>);
#[derive(Clone, Copy, Data, Debug, Default, PartialEq)]
pub(crate) struct UseGame2DWebGpu {
#[get(type(copy))]
pub(crate) fps: Signal<f64>,
#[get(type(copy))]
pub(crate) loaded: Signal<bool>,
#[get(type(copy))]
pub(crate) active: Signal<bool>,
#[get(type(copy))]
pub(crate) loop_started: Signal<bool>,
#[get(type(copy))]
pub(crate) init_error_code: Signal<&'static str>,
}
#[derive(Clone, Copy, Data, Debug, Default, PartialEq)]
pub(crate) struct UseGame2DWebGl {
#[get(type(copy))]
pub(crate) fps: Signal<f64>,
#[get(type(copy))]
pub(crate) loaded: Signal<bool>,
#[get(type(copy))]
pub(crate) active: Signal<bool>,
#[get(type(copy))]
pub(crate) loop_started: Signal<bool>,
#[get(type(copy))]
pub(crate) init_error_code: Signal<&'static str>,
}
#[derive(Clone, Copy, Data, Debug, Default, PartialEq)]
pub(crate) struct UseGame2DFullscreen {
#[get(type(copy))]
pub(crate) canvas_2d: Signal<bool>,
#[get(type(copy))]
pub(crate) web_gl: Signal<bool>,
#[get(type(copy))]
pub(crate) web_gpu: Signal<bool>,
}