use crate::control::Event;
use crate::core::{Context, RenderTarget, Viewport};
#[derive(Clone, Debug)]
pub struct FrameInput {
pub events: Vec<Event>,
pub elapsed_time: f64,
pub accumulated_time: f64,
pub viewport: Viewport,
pub window_width: u32,
pub window_height: u32,
pub device_pixel_ratio: f32,
pub first_frame: bool,
pub context: Context,
}
impl FrameInput {
pub fn screen(&self) -> RenderTarget<'_> {
RenderTarget::screen(&self.context, self.viewport.width, self.viewport.height)
}
}
#[derive(Clone, Debug)]
pub struct FrameOutput {
pub exit: bool,
pub swap_buffers: bool,
pub wait_next_event: bool,
}
impl Default for FrameOutput {
fn default() -> Self {
Self {
exit: false,
swap_buffers: true,
wait_next_event: false,
}
}
}