finished moving out render_state
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
use crate::{
|
||||
ActiveData, Axis, EventsLike, Painter, PainterData, SizeCtx, StrongWidget, UiRegion,
|
||||
UiRenderState, UiVec2, WidgetId, Widgets,
|
||||
ActiveData, Axis, EventsLike, Painter, SizeCtx, StrongWidget, UiRegion, UiRenderState, UiVec2,
|
||||
WidgetId, Widgets,
|
||||
render::MaskIdx,
|
||||
util::{HashSet, forget_ref},
|
||||
};
|
||||
@@ -16,30 +16,6 @@ pub struct Drawer<'a> {
|
||||
}
|
||||
|
||||
impl<'a> Drawer<'a> {
|
||||
pub fn new(
|
||||
widgets: &'a mut Widgets,
|
||||
data: &'a mut PainterData,
|
||||
render: &'a mut UiRenderState,
|
||||
events: &'a mut dyn EventsLike,
|
||||
root: Option<&'a StrongWidget>,
|
||||
) -> Self {
|
||||
Self {
|
||||
widgets,
|
||||
data,
|
||||
events,
|
||||
render,
|
||||
root,
|
||||
draw_started: Default::default(),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn redraw_updates(&mut self) {
|
||||
while let Some(&id) = self.widgets.needs_redraw.iter().next() {
|
||||
self.redraw(id);
|
||||
}
|
||||
self.ui.free(self.events);
|
||||
}
|
||||
|
||||
/// redraws a widget that's currently active (drawn)
|
||||
pub fn redraw(&mut self, id: WidgetId) {
|
||||
self.widgets.needs_redraw.remove(&id);
|
||||
@@ -94,21 +70,6 @@ impl<'a> Drawer<'a> {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn redraw_all(&mut self) {
|
||||
// free all resources & cache
|
||||
for (_, active) in self.render.active.drain() {
|
||||
self.events.undraw(&active);
|
||||
}
|
||||
self.render.cache.clear();
|
||||
self.ui.free(self.events);
|
||||
self.render.layers.clear();
|
||||
self.widgets.needs_redraw.clear();
|
||||
|
||||
if let Some(id) = self.root {
|
||||
self.draw_inner(0, id.id(), UiRegion::FULL, None, MaskIdx::NONE, None);
|
||||
}
|
||||
}
|
||||
|
||||
pub(super) fn draw_inner(
|
||||
&mut self,
|
||||
layer: usize,
|
||||
|
||||
Reference in New Issue
Block a user