use super::*;
#[derive(Clone, Copy, Data, Debug, Default, PartialEq)]
pub(crate) struct UseRayTrace {
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) fps: Signal<f64>,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) running: Signal<bool>,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) loop_started: Signal<bool>,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) auto_rotate: Signal<bool>,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) render_scale: Signal<f64>,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) loaded: Signal<bool>,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) active: Signal<bool>,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) error_detail: Signal<String>,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) init_error_code: Signal<&'static str>,
}
#[derive(Clone, Copy, Data, Debug, Default, PartialEq)]
pub(crate) struct UseRayTraceWebGl {
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) fps: Signal<f64>,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) running: Signal<bool>,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) auto_rotate: Signal<bool>,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) loaded: Signal<bool>,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) active: Signal<bool>,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) loop_started: Signal<bool>,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) init_error_code: Signal<&'static str>,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) error_detail: Signal<String>,
}
#[derive(Clone, Copy, Data, Debug, Default, PartialEq)]
pub(crate) struct UseRayTraceWebGpu {
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) fps: Signal<f64>,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) running: Signal<bool>,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) auto_rotate: Signal<bool>,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) loaded: Signal<bool>,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) active: Signal<bool>,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) loop_started: Signal<bool>,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) init_error_code: Signal<&'static str>,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) error_detail: Signal<String>,
}
#[derive(Clone, Copy, Data, Debug, Default, PartialEq)]
pub(crate) struct UseRayTraceFullscreen {
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) canvas_2d: Signal<bool>,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) web_gl: Signal<bool>,
#[get(pub(crate), type(copy))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) web_gpu: Signal<bool>,
}
#[derive(Clone, Copy, Debug, Getter)]
pub(crate) struct RayTraceErrorState {
#[get(pub(crate), type(copy))]
pub(crate) active: Signal<bool>,
#[get(pub(crate), type(copy))]
pub(crate) error_detail: Signal<String>,
#[get(pub(crate), type(copy))]
pub(crate) init_error_code: Signal<&'static str>,
}
#[derive(Clone, Copy, Debug, Getter)]
pub(crate) struct RayTraceErrorReport<'a> {
#[get(pub(crate), type(copy))]
pub(crate) code: &'static str,
#[get(pub(crate), type(copy))]
pub(crate) call: &'a str,
#[get(pub(crate), type(copy))]
pub(crate) error: &'a JsValue,
}
#[derive(Clone, Copy, Debug, Getter)]
pub(crate) struct RayTraceResizeTarget {
#[get(pub(crate), type(copy))]
pub(crate) canvas_selector: &'static str,
#[get(pub(crate), type(copy))]
pub(crate) state: RayTraceErrorState,
}
#[derive(Clone, Getter)]
pub(crate) struct RayTraceLoopCleanup {
#[get(pub(crate), type(clone))]
pub(crate) cancelled: Rc<Cell<bool>>,
#[get(pub(crate), type(clone))]
pub(crate) raf_id: Rc<Cell<Option<i32>>>,
#[get(pub(crate), type(clone))]
pub(crate) closure_cell: RafClosureCell,
#[get(pub(crate), type(clone))]
pub(crate) pending_timers: RayTracePendingTimers,
#[get(pub(crate), type(clone))]
pub(crate) renderer_cell: Rc<RefCell<Option<RayTraceRenderer>>>,
}
#[derive(Clone, Debug, PartialEq)]
pub(crate) struct RayTraceCameraAngles {
pub(crate) yaw: Rc<Cell<f64>>,
pub(crate) pitch: Rc<Cell<f64>>,
}