use crate::{
Window,
style::{Style, Color},
geometry::{Point, Size},
};
use super::Renderer;
pub struct DefaultRenderer {
window: Window,
frame_count: u64,
transform: Point,
}
impl DefaultRenderer {
pub fn new(window: &Window) -> Self {
Self {
window: window.clone(),
frame_count: 0,
transform: Point::default(),
}
}
pub fn present(&mut self) {
}
pub fn begin_frame(&mut self) {
self.frame_count += 1;
}
pub fn end_frame(&mut self) {}
pub fn window(&self) -> &Window {
&self.window
}
pub fn get_transform(&self) -> &Point {
&self.transform
}
pub fn get_platform_size(&self) -> Size {
self.window.get_platform_specific_size()
}
}
impl Renderer for DefaultRenderer {
fn clear(&mut self, color: Color) {
let size = self.get_platform_size();
let _ = (color, size); }
fn begin_group(&mut self, style: &Style) {
let size = self.get_platform_size();
let _ = (style, size); }
fn end_group(&mut self) {
}
fn draw_text(&mut self, _text: &str, _style: &Style) {
self.frame_count += 1;
}
fn translate(&mut self, x: f32, y: f32) {
self.transform.x += x;
self.transform.y += y;
}
}