fix anchor not showing
This commit is contained in:
@@ -2,7 +2,7 @@ use std::f32::consts::PI;
|
||||
use std::process::{Child, Command};
|
||||
use std::{collections::VecDeque, time::Instant};
|
||||
|
||||
use glam::{Affine3A, Vec2, Vec3A, Vec3Swizzles};
|
||||
use glam::{Affine3A, Vec2, Vec3, Vec3A, Vec3Swizzles};
|
||||
|
||||
use smallvec::{smallvec, SmallVec};
|
||||
|
||||
@@ -582,8 +582,7 @@ impl Pointer {
|
||||
tasks.enqueue(TaskType::Overlay(
|
||||
OverlaySelector::Name(ANCHOR_NAME.clone()),
|
||||
Box::new(|app, o| {
|
||||
o.saved_transform = Some(app.anchor);
|
||||
o.activate(app);
|
||||
o.activate_static(app.anchor * Affine3A::from_scale(Vec3::ONE * 0.1));
|
||||
}),
|
||||
));
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
use std::{cell::RefCell, rc::Rc, sync::Arc};
|
||||
|
||||
use button::setup_custom_button;
|
||||
use glam::{Affine2, Vec2, vec2};
|
||||
use glam::{vec2, Affine2, Vec2};
|
||||
use label::setup_custom_label;
|
||||
use vulkano::{command_buffer::CommandBufferUsage, image::view::ImageView};
|
||||
use wgui::{
|
||||
@@ -15,14 +15,14 @@ use wgui::{
|
||||
layout::{Layout, LayoutParams, WidgetID},
|
||||
parser::ParserState,
|
||||
renderer_vk::context::Context as WguiContext,
|
||||
widget::{EventResult, label::WidgetLabel, rectangle::WidgetRectangle},
|
||||
widget::{label::WidgetLabel, rectangle::WidgetRectangle, EventResult},
|
||||
};
|
||||
|
||||
use crate::{
|
||||
backend::input::{Haptics, HoverResult, PointerHit, PointerMode},
|
||||
graphics::{CommandBuffers, ExtentExt},
|
||||
state::AppState,
|
||||
windowing::backend::{FrameMeta, OverlayBackend, ShouldRender, ui_transform},
|
||||
windowing::backend::{ui_transform, FrameMeta, OverlayBackend, ShouldRender},
|
||||
};
|
||||
|
||||
use super::{timer::GuiTimer, timestep::Timestep};
|
||||
@@ -206,6 +206,7 @@ impl<S: 'static> OverlayBackend for GuiPanel<S> {
|
||||
}
|
||||
|
||||
if self.layout.content_size.x * self.layout.content_size.y == 0.0 {
|
||||
log::trace!("Unable to render: content size 0");
|
||||
return Ok(ShouldRender::Unable);
|
||||
}
|
||||
|
||||
|
||||
@@ -9,7 +9,8 @@ use crate::windowing::Z_ORDER_ANCHOR;
|
||||
pub static ANCHOR_NAME: LazyLock<Arc<str>> = LazyLock::new(|| Arc::from("anchor"));
|
||||
|
||||
pub fn create_anchor(app: &mut AppState) -> anyhow::Result<OverlayWindowConfig> {
|
||||
let panel = GuiPanel::new_from_template(app, "gui/anchor.xml", (), None)?;
|
||||
let mut panel = GuiPanel::new_from_template(app, "gui/anchor.xml", (), None)?;
|
||||
panel.update_layout()?;
|
||||
|
||||
Ok(OverlayWindowConfig {
|
||||
name: ANCHOR_NAME.clone(),
|
||||
|
||||
@@ -128,6 +128,14 @@ impl OverlayWindowConfig {
|
||||
self.reset(app, true);
|
||||
}
|
||||
|
||||
pub fn activate_static(&mut self, global_transform: Affine3A) {
|
||||
log::debug!("activate {}", self.name.as_ref());
|
||||
self.dirty = true;
|
||||
let mut state = self.default_state.clone();
|
||||
state.transform = global_transform;
|
||||
self.active_state = Some(state);
|
||||
}
|
||||
|
||||
pub fn deactivate(&mut self) {
|
||||
log::debug!("deactivate {}", self.name.as_ref());
|
||||
self.active_state = None;
|
||||
|
||||
Reference in New Issue
Block a user