update px dependent on resize + move painter data into struct in ui

This commit is contained in:
2025-09-28 13:14:51 -04:00
parent 61df088cc7
commit c98a43f94d
7 changed files with 99 additions and 105 deletions

View File

@@ -169,8 +169,8 @@ impl<Ctx: UiCtx + 'static> SensorCtx for Ctx {
impl<Ctx: UiCtx + 'static> CursorModule<Ctx> {
pub fn run(ctx: &mut Ctx, cursor: &CursorState, window_size: Vec2) {
let layers = std::mem::take(&mut ctx.ui().layers);
let mut module = std::mem::take(ctx.ui().modules.get_mut::<Self>());
let layers = std::mem::take(&mut ctx.ui().data.layers);
let mut module = std::mem::take(ctx.ui().data.modules.get_mut::<Self>());
for i in layers.indices().rev() {
let Some(list) = module.active.get_mut(&i) else {
@@ -203,10 +203,10 @@ impl<Ctx: UiCtx + 'static> CursorModule<Ctx> {
}
}
let ui_mod = ctx.ui().modules.get_mut::<Self>();
let ui_mod = ctx.ui().data.modules.get_mut::<Self>();
std::mem::swap(ui_mod, &mut module);
ui_mod.merge(module);
ctx.ui().layers = layers;
ctx.ui().data.layers = layers;
}
}

View File

@@ -124,12 +124,8 @@ impl FnOnce<(&mut Ui,)> for TextBuilder {
extern "rust-call" fn call_once(self, args: (&mut Ui,)) -> Self::Output {
let mut buf =
TextBuffer::new_empty(Metrics::new(self.attrs.font_size, self.attrs.line_height));
buf.set_text(
&mut args.0.text.font_system,
&self.content,
&Attrs::new(),
Shaping::Advanced,
);
let font_system = &mut args.0.data.text.font_system;
buf.set_text(font_system, &self.content, &Attrs::new(), Shaping::Advanced);
let mut text = Text {
content: self.content.into(),
buf,
@@ -138,8 +134,7 @@ impl FnOnce<(&mut Ui,)> for TextBuilder {
size: Vec2::ZERO,
};
text.content.changed = false;
self.attrs
.apply(&mut args.0.text.font_system, &mut text.buf, None);
self.attrs.apply(font_system, &mut text.buf, None);
text
}
}

View File

@@ -322,14 +322,10 @@ impl FnOnce<(&mut Ui,)> for TextEditBuilder {
cursor: None,
size: Vec2::ZERO,
};
text.buf.set_text(
&mut args.0.text.font_system,
&self.content,
&Attrs::new(),
Shaping::Advanced,
);
self.attrs
.apply(&mut args.0.text.font_system, &mut text.buf, None);
let font_system = &mut args.0.data.text.font_system;
text.buf
.set_text(font_system, &self.content, &Attrs::new(), Shaping::Advanced);
self.attrs.apply(font_system, &mut text.buf, None);
text
}
}