fix openvr lines
This commit is contained in:
@@ -88,7 +88,9 @@ impl LinePool {
|
|||||||
..OverlayWindowData::from_config(OverlayWindowConfig {
|
..OverlayWindowData::from_config(OverlayWindowConfig {
|
||||||
name: Arc::from(format!("wlx-line{id}")),
|
name: Arc::from(format!("wlx-line{id}")),
|
||||||
default_state: Default::default(),
|
default_state: Default::default(),
|
||||||
|
active_state: Some(Default::default()),
|
||||||
z_order: Z_ORDER_LINES,
|
z_order: Z_ORDER_LINES,
|
||||||
|
global: true,
|
||||||
..OverlayWindowConfig::from_backend(Box::new(LineBackend {
|
..OverlayWindowConfig::from_backend(Box::new(LineBackend {
|
||||||
view: self.view.clone(),
|
view: self.view.clone(),
|
||||||
}))
|
}))
|
||||||
@@ -137,8 +139,9 @@ impl LinePool {
|
|||||||
|
|
||||||
fn draw_transform(&mut self, id: usize, transform: Affine3A, color: Vec4) {
|
fn draw_transform(&mut self, id: usize, transform: Affine3A, color: Vec4) {
|
||||||
if let Some(data) = self.lines.get_mut(id) {
|
if let Some(data) = self.lines.get_mut(id) {
|
||||||
data.config.default_state.alpha = 1.0;
|
let state = data.config.active_state.as_mut().unwrap();
|
||||||
data.config.default_state.transform = transform;
|
state.alpha = 1.0;
|
||||||
|
state.transform = transform;
|
||||||
data.data.color = color;
|
data.data.color = color;
|
||||||
} else {
|
} else {
|
||||||
log::warn!("Line {id} does not exist");
|
log::warn!("Line {id} does not exist");
|
||||||
@@ -153,7 +156,8 @@ impl LinePool {
|
|||||||
) -> anyhow::Result<()> {
|
) -> anyhow::Result<()> {
|
||||||
for data in self.lines.values_mut() {
|
for data in self.lines.values_mut() {
|
||||||
data.after_input(overlay, app)?;
|
data.after_input(overlay, app)?;
|
||||||
if data.config.default_state.alpha > 0.01 {
|
let state = data.config.active_state.as_mut().unwrap();
|
||||||
|
if state.alpha > 0.01 {
|
||||||
if data.config.dirty {
|
if data.config.dirty {
|
||||||
data.upload_texture(overlay, &app.gfx);
|
data.upload_texture(overlay, &app.gfx);
|
||||||
data.config.dirty = false;
|
data.config.dirty = false;
|
||||||
|
|||||||
Reference in New Issue
Block a user