use scenix_math::{Mat4, Vec2, Vec3};
use crate::RenderTargetMode;
#[derive(Clone, Copy, Debug, PartialEq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct FrameContext {
pub frame_index: u64,
pub resolution: Vec2,
pub view: Mat4,
pub projection: Mat4,
pub view_projection: Mat4,
pub camera_position: Vec3,
}
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct FrameStats {
pub frame_index: u64,
pub scene_meshes: u32,
pub visible_meshes: u32,
pub culled_meshes: u32,
pub opaque_draws: u32,
pub transparent_draws: u32,
pub lights: u32,
pub target_mode: Option<RenderTargetMode>,
}