mod imp; mod layers; use gtk::subclass::prelude::ObjectSubclassIsExt; use super::super::Render; use crate::RUNTIME; use core_extensions::SelfOps; use femtovg::{renderer::OpenGl, Canvas, ImageFlags}; use femtovg::{Paint, Path}; use gtk::glib; pub use layers::{ElementType, Layer}; use relm4::channel; use std::cell::Ref; use tokio::task; use tokio::task::LocalSet; use super::imp::{RenderConfig, RenderStatus}; glib::wrapper! { pub struct InteriorWidget(ObjectSubclass); } impl Default for InteriorWidget { fn default() -> Self { Self::new() } } impl InteriorWidget { pub fn new() -> Self { let this: Self = glib::Object::new(); this } pub fn draw( &self, layers: &mut Vec, render: &Render, status: Ref<'_, RenderStatus>, _c: Ref<'_, RenderConfig>, ) { for layer in layers.iter_mut().filter(|x| x.visiable) { layer.draw(render, (1000.0, 1000.0)); } } }