use crate::font::FontLibrary;
use crate::layout::RootStyle;
use crate::renderer::Renderer;
use crate::Graphics;
pub struct SugarState {
pub style: RootStyle,
pub fonts: FontLibrary,
pub visual_bell_overlay: Option<crate::sugarloaf::primitives::Rect>,
}
impl SugarState {
pub fn new(
style: RootStyle,
font_library: &FontLibrary,
_font_features: &Option<Vec<String>>,
) -> SugarState {
SugarState {
fonts: font_library.clone(),
style,
visual_bell_overlay: None,
}
}
pub fn found_font_features(
_font_features: &Option<Vec<String>>,
) -> Vec<swash::Setting<u16>> {
Vec::new()
}
#[inline]
pub fn compute_updates(
&mut self,
advance_brush: &mut Renderer,
context: &mut super::Context,
graphics: &mut Graphics,
image_data: &mut rustc_hash::FxHashMap<u64, super::graphics::GraphicDataEntry>,
image_overlays: &rustc_hash::FxHashMap<
usize,
Vec<super::graphics::GraphicOverlay>,
>,
) {
advance_brush.prepare(context, self, graphics, image_data, image_overlays);
}
#[inline]
pub fn compute_dimensions(&mut self) {}
#[inline]
pub fn reset(&mut self) {}
#[inline]
pub fn clean_screen(&mut self) {}
#[inline]
pub fn compute_layout_rescale(&mut self, scale: f32) {
self.style.scale_factor = scale;
}
pub fn set_visual_bell_overlay(
&mut self,
overlay: Option<crate::sugarloaf::primitives::Rect>,
) {
self.visual_bell_overlay = overlay;
}
#[inline]
pub fn set_fonts(
&mut self,
font_library: &FontLibrary,
_advance_brush: &mut Renderer,
) {
self.fonts = font_library.clone();
}
}