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::process::{Child, Command};
|
||||||
use std::{collections::VecDeque, time::Instant};
|
use std::{collections::VecDeque, time::Instant};
|
||||||
|
|
||||||
use glam::{Affine3A, Vec2, Vec3A, Vec3Swizzles};
|
use glam::{Affine3A, Vec2, Vec3, Vec3A, Vec3Swizzles};
|
||||||
|
|
||||||
use smallvec::{smallvec, SmallVec};
|
use smallvec::{smallvec, SmallVec};
|
||||||
|
|
||||||
@@ -582,8 +582,7 @@ impl Pointer {
|
|||||||
tasks.enqueue(TaskType::Overlay(
|
tasks.enqueue(TaskType::Overlay(
|
||||||
OverlaySelector::Name(ANCHOR_NAME.clone()),
|
OverlaySelector::Name(ANCHOR_NAME.clone()),
|
||||||
Box::new(|app, o| {
|
Box::new(|app, o| {
|
||||||
o.saved_transform = Some(app.anchor);
|
o.activate_static(app.anchor * Affine3A::from_scale(Vec3::ONE * 0.1));
|
||||||
o.activate(app);
|
|
||||||
}),
|
}),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
use std::{cell::RefCell, rc::Rc, sync::Arc};
|
use std::{cell::RefCell, rc::Rc, sync::Arc};
|
||||||
|
|
||||||
use button::setup_custom_button;
|
use button::setup_custom_button;
|
||||||
use glam::{Affine2, Vec2, vec2};
|
use glam::{vec2, Affine2, Vec2};
|
||||||
use label::setup_custom_label;
|
use label::setup_custom_label;
|
||||||
use vulkano::{command_buffer::CommandBufferUsage, image::view::ImageView};
|
use vulkano::{command_buffer::CommandBufferUsage, image::view::ImageView};
|
||||||
use wgui::{
|
use wgui::{
|
||||||
@@ -15,14 +15,14 @@ use wgui::{
|
|||||||
layout::{Layout, LayoutParams, WidgetID},
|
layout::{Layout, LayoutParams, WidgetID},
|
||||||
parser::ParserState,
|
parser::ParserState,
|
||||||
renderer_vk::context::Context as WguiContext,
|
renderer_vk::context::Context as WguiContext,
|
||||||
widget::{EventResult, label::WidgetLabel, rectangle::WidgetRectangle},
|
widget::{label::WidgetLabel, rectangle::WidgetRectangle, EventResult},
|
||||||
};
|
};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
backend::input::{Haptics, HoverResult, PointerHit, PointerMode},
|
backend::input::{Haptics, HoverResult, PointerHit, PointerMode},
|
||||||
graphics::{CommandBuffers, ExtentExt},
|
graphics::{CommandBuffers, ExtentExt},
|
||||||
state::AppState,
|
state::AppState,
|
||||||
windowing::backend::{FrameMeta, OverlayBackend, ShouldRender, ui_transform},
|
windowing::backend::{ui_transform, FrameMeta, OverlayBackend, ShouldRender},
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::{timer::GuiTimer, timestep::Timestep};
|
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 {
|
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);
|
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 static ANCHOR_NAME: LazyLock<Arc<str>> = LazyLock::new(|| Arc::from("anchor"));
|
||||||
|
|
||||||
pub fn create_anchor(app: &mut AppState) -> anyhow::Result<OverlayWindowConfig> {
|
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 {
|
Ok(OverlayWindowConfig {
|
||||||
name: ANCHOR_NAME.clone(),
|
name: ANCHOR_NAME.clone(),
|
||||||
|
|||||||
@@ -128,6 +128,14 @@ impl OverlayWindowConfig {
|
|||||||
self.reset(app, true);
|
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) {
|
pub fn deactivate(&mut self) {
|
||||||
log::debug!("deactivate {}", self.name.as_ref());
|
log::debug!("deactivate {}", self.name.as_ref());
|
||||||
self.active_state = None;
|
self.active_state = None;
|
||||||
|
|||||||
Reference in New Issue
Block a user