48 lines
1011 B
Rust
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));
|
|
}
|
|
}
|
|
}
|