add module system and move sensor into core with it
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
use crate::{
|
||||
layout::{
|
||||
ActiveWidgets, Layers, TextAttrs, TextBuffer, TextData, TextOffset, TextureHandle,
|
||||
ActiveWidgets, Layers, Modules, TextAttrs, TextBuffer, TextData, TextOffset, TextureHandle,
|
||||
Textures, UiRegion, UiVec2, Vec2, WidgetId, Widgets,
|
||||
},
|
||||
render::{Primitive, PrimitiveHandle},
|
||||
@@ -25,6 +25,7 @@ pub struct PainterCtx<'a> {
|
||||
pub textures: &'a mut Textures,
|
||||
pub text: &'a mut TextData,
|
||||
pub screen_size: Vec2,
|
||||
pub modules: &'a mut Modules,
|
||||
drawing: HashSet<Id>,
|
||||
}
|
||||
|
||||
@@ -44,6 +45,7 @@ impl<'a> PainterCtx<'a> {
|
||||
widgets: &'a Widgets,
|
||||
layers: &'a mut Layers,
|
||||
active: &'a mut ActiveWidgets,
|
||||
modules: &'a mut Modules,
|
||||
textures: &'a mut Textures,
|
||||
text: &'a mut TextData,
|
||||
screen_size: Vec2,
|
||||
@@ -55,6 +57,7 @@ impl<'a> PainterCtx<'a> {
|
||||
textures,
|
||||
text,
|
||||
screen_size,
|
||||
modules,
|
||||
drawing: HashSet::default(),
|
||||
}
|
||||
}
|
||||
@@ -165,10 +168,8 @@ impl<'a> PainterCtx<'a> {
|
||||
}
|
||||
}
|
||||
|
||||
if self.widgets.data(id).is_some_and(|w| w.sensor) {
|
||||
self.layers[layer]
|
||||
.sensors
|
||||
.insert(id.duplicate(), instance.region);
|
||||
for m in self.modules.iter_mut() {
|
||||
m.on_draw(&instance);
|
||||
}
|
||||
self.active.insert(id.duplicate(), instance);
|
||||
}
|
||||
@@ -182,7 +183,9 @@ impl<'a> PainterCtx<'a> {
|
||||
}
|
||||
inst.textures.clear();
|
||||
self.textures.free();
|
||||
self.layers[inst.layer].sensors.remove(id);
|
||||
for m in self.modules.iter_mut() {
|
||||
m.on_undraw(inst);
|
||||
}
|
||||
}
|
||||
inst
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user