use crate::renderer::HTMLRenderer;
use crate::web_functions::primitives::{
get_delta_time_ms, text_measuring_function, window_dimensions,
};
use cotis::renders::RenderCompatibleWith;
use cotis_defaults::element_configs::text_config::TextConfig;
use cotis_utils::math::Dimensions;
use cotis_utils::text::RendererTextMeasuringProvider;
use cotis_utils::traits::{CotisFrameContext, CotisWindowContext};
impl RendererTextMeasuringProvider<TextConfig> for HTMLRenderer {
fn provide_measurer(&mut self) -> Box<dyn Fn(&str, &TextConfig) -> Dimensions> {
Box::new(text_measuring_function)
}
}
impl CotisWindowContext for HTMLRenderer {
fn window_dimensions(&self) -> Dimensions {
let array = window_dimensions();
Dimensions {
width: array.0,
height: array.1,
}
}
}
impl CotisFrameContext for HTMLRenderer {
fn get_delta_time(&self) -> f32 {
get_delta_time_ms()
}
}
impl<M> RenderCompatibleWith<M> for HTMLRenderer {
fn init(&mut self, _layout_manager: &mut M) {}
}