use measure_time::print_time;
use ordered_float::OrderedFloat;
use skia_bindings::SkPaint_Style;
use skia_safe::{Canvas, Color, Paint, Surface, surfaces};
use skia_window::skia_window::SkiaWindow;
use winit::application::ApplicationHandler;
use winit::event::WindowEvent;
use winit::event_loop::{ActiveEventLoop, EventLoop, EventLoopBuilder};
use winit::window::{WindowAttributes, WindowId};
use yoga::{Direction, StyleUnit};
use crate::app::AppEvent;
use crate::border::build_border_paths;
use crate::canvas_util::CanvasHelper;
use crate::style::{Style, StyleBorder, StyleColor, StyleNode, StyleProp, StylePropertyValue};
pub struct CpuRenderer {
surface: Surface,
}
impl CpuRenderer {
pub fn new(width: i32, height: i32) -> Self {
let surface = surfaces::raster_n32_premul((width, height)).unwrap();
CpuRenderer {
surface,
}
}
pub fn surface(&mut self) -> &mut Surface {
&mut self.surface
}
pub fn canvas(&mut self) -> &Canvas {
self.surface.canvas()
}
}