refactor painter

This commit is contained in:
iris committed 2025-12-16 00:48:14 -05:00
1 parent 2183fbd3cb
commit 71f3beaf94
5 files changed
+470 -457

No files matched your search

+9 -4
View File
@@ -1,6 +1,7 @@
use crate::{
Event, EventFn, EventLike, EventManager, IdLike, Mask, PixelRegion, PrimitiveLayers, TextData,
TextureHandle, Textures, Widget, WidgetHandle, WidgetId, WidgetLike, Widgets,
ui::draw_state::DrawState,
util::{HashMap, TrackedArena, Vec2},
};
use image::DynamicImage;
@@ -9,8 +10,12 @@ use std::{
sync::mpsc::{Receiver, Sender, channel},
};
mod draw_state;
mod painter;
pub use painter::{ActiveData, Painter, SizeCtx};
mod size;
pub use painter::{ActiveData, Painter};
pub use size::*;
pub struct Ui<State> {
// TODO: edit visibilities
@@ -106,14 +111,14 @@ impl<State: 'static> Ui<State> {
pub fn update(&mut self) {
if self.full_redraw {
self.redraw_all();
DrawState::new(self).redraw_all();
self.full_redraw = false;
} else if self.widgets.has_updates() {
self.redraw_updates();
DrawState::new(self).redraw_updates();
}
if self.resized {
self.resized = false;
self.redraw_all();
DrawState::new(self).redraw_all();
}
}