use crate::render::config::ViewportRect;
pub const DEFAULT_WINDOW_ICON: &[u8] = include_bytes!("../../../../images/icon.png");
pub struct Window {
pub handle: Option<std::sync::Arc<winit::window::Window>>,
pub title: String,
pub icon_bytes: Option<&'static [u8]>,
pub log_config: crate::plugins::log::LogConfig,
pub should_exit: bool,
pub cached_viewport_size: Option<(u32, u32)>,
pub cached_scale_factor: f32,
pub pointer_viewport_scale: f32,
pub active_viewport_rect: Option<ViewportRect>,
pub camera_tile_rects: std::collections::HashMap<crate::ecs::world::Entity, ViewportRect>,
pub force_render_cameras: std::collections::HashSet<crate::ecs::world::Entity>,
pub camera_tile_render_iteration: u32,
pub is_focused: bool,
pub cursor_locked: bool,
pub start_hidden: bool,
pub create_renderer: bool,
pub initial_size: Option<(u32, u32)>,
pub applied_min_window_size: Option<(u32, u32)>,
pub applied_title: Option<String>,
pub applied_icon_bytes: Option<&'static [u8]>,
}
impl Default for Window {
fn default() -> Self {
Self {
handle: None,
title: "Nightshade".to_string(),
icon_bytes: Some(DEFAULT_WINDOW_ICON),
log_config: crate::plugins::log::LogConfig::default(),
should_exit: false,
cached_viewport_size: None,
cached_scale_factor: 1.0,
pointer_viewport_scale: 1.0,
active_viewport_rect: None,
camera_tile_rects: std::collections::HashMap::new(),
force_render_cameras: std::collections::HashSet::new(),
camera_tile_render_iteration: 0,
is_focused: true,
cursor_locked: false,
start_hidden: false,
create_renderer: true,
initial_size: None,
applied_min_window_size: None,
applied_title: None,
applied_icon_bytes: None,
}
}
}