From a03a855f19ee0caa85c3acc7b33f7c7de81b646a Mon Sep 17 00:00:00 2001 From: galister <22305755+galister@users.noreply.github.com> Date: Thu, 19 Jun 2025 02:21:44 +0900 Subject: [PATCH] wip: swapchain sizes ditcated by wgui --- wlx-overlay-s/src/gui/panel.rs | 23 ++++++++++------------- wlx-overlay-s/src/overlays/anchor.rs | 2 +- wlx-overlay-s/src/overlays/custom.rs | 2 +- wlx-overlay-s/src/overlays/keyboard.rs | 6 +----- wlx-overlay-s/src/overlays/toast.rs | 4 ++-- wlx-overlay-s/src/overlays/watch.rs | 4 ++-- 6 files changed, 17 insertions(+), 24 deletions(-) diff --git a/wlx-overlay-s/src/gui/panel.rs b/wlx-overlay-s/src/gui/panel.rs index bb60fee..d1b2707 100644 --- a/wlx-overlay-s/src/gui/panel.rs +++ b/wlx-overlay-s/src/gui/panel.rs @@ -23,18 +23,12 @@ pub struct GuiPanel { pub layout: Layout, context: WguiContext, timestep: Timestep, - pub max_width: u32, - pub max_height: u32, + pub max_size: u32, } impl GuiPanel { - pub fn new_from_template( - app: &AppState, - max_width: u32, - max_height: u32, - path: &str, - ) -> anyhow::Result { - let mut me = Self::new_blank(app, max_width, max_height)?; + pub fn new_from_template(app: &AppState, max_size: u32, path: &str) -> anyhow::Result { + let mut me = Self::new_blank(app, max_size)?; let parent = me.layout.root_widget; let _res = wgui::parser::parse_from_assets(&mut me.layout, parent, path)?; @@ -42,7 +36,7 @@ impl GuiPanel { Ok(me) } - pub fn new_blank(app: &AppState, max_width: u32, max_height: u32) -> anyhow::Result { + pub fn new_blank(app: &AppState, max_size: u32) -> anyhow::Result { let layout = Layout::new(Box::new(GuiAsset {}))?; let context = WguiContext::new(app.gfx.clone(), app.gfx.surface_format, 1.0)?; let mut timestep = Timestep::new(); @@ -52,8 +46,7 @@ impl GuiPanel { layout, context, timestep, - max_width, - max_height, + max_size, }) } } @@ -154,7 +147,11 @@ impl OverlayRenderer for GuiPanel { fn frame_meta(&mut self) -> Option { Some(FrameMeta { - extent: [self.max_width, self.max_height, 1], + extent: [ + self.max_size.max(self.layout.prev_size.x as _), + self.max_size.max(self.layout.prev_size.y as _), + 1, + ], ..Default::default() }) } diff --git a/wlx-overlay-s/src/overlays/anchor.rs b/wlx-overlay-s/src/overlays/anchor.rs index 47cdd77..5904731 100644 --- a/wlx-overlay-s/src/overlays/anchor.rs +++ b/wlx-overlay-s/src/overlays/anchor.rs @@ -18,7 +18,7 @@ pub fn create_anchor(app: &mut AppState) -> anyhow::Result> where O: Default, { - let mut panel = GuiPanel::new_blank(app, 200, 200)?; + let mut panel = GuiPanel::new_blank(app, 200)?; let (rect, _) = panel.layout.add_child( panel.layout.root_widget, diff --git a/wlx-overlay-s/src/overlays/custom.rs b/wlx-overlay-s/src/overlays/custom.rs index d0d31c3..5787cef 100644 --- a/wlx-overlay-s/src/overlays/custom.rs +++ b/wlx-overlay-s/src/overlays/custom.rs @@ -18,7 +18,7 @@ pub fn create_custom( unreachable!(); - let panel = GuiPanel::new_blank(&app, 200, 200).ok()?; + let panel = GuiPanel::new_blank(app, 2048).ok()?; let state = OverlayState { name, diff --git a/wlx-overlay-s/src/overlays/keyboard.rs b/wlx-overlay-s/src/overlays/keyboard.rs index f44b577..e8fcb1d 100644 --- a/wlx-overlay-s/src/overlays/keyboard.rs +++ b/wlx-overlay-s/src/overlays/keyboard.rs @@ -100,11 +100,7 @@ where let padding = 4f32; - let mut panel = GuiPanel::new_blank( - app, - padding.mul_add(2.0, size.x) as u32, - padding.mul_add(2.0, size.y) as u32, - )?; + let mut panel = GuiPanel::new_blank(app, 2048)?; let (background, _) = panel.layout.add_child( panel.layout.root_widget, diff --git a/wlx-overlay-s/src/overlays/toast.rs b/wlx-overlay-s/src/overlays/toast.rs index e178a1e..c02eb97 100644 --- a/wlx-overlay-s/src/overlays/toast.rs +++ b/wlx-overlay-s/src/overlays/toast.rs @@ -167,7 +167,7 @@ fn new_toast(toast: Toast, app: &mut AppState) -> Option<(OverlayState, Box Option<(OverlayState, Box(app: &mut AppState) -> anyhow::Result> where O: Default, { - let mut panel = GuiPanel::new_blank(app, 400, 200)?; + let mut panel = GuiPanel::new_blank(app, 2048)?; let (_, _) = panel.layout.add_child( panel.layout.root_widget,