radar-g/src/widgets/render/interior/mod.rs
2024-04-17 18:35:47 +08:00

48 lines
1011 B
Rust

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<imp::InteriorWidget>);
}
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<Layer>,
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));
}
}
}