refactor: make all flex stuff use serde
This commit is contained in:
@@ -5,8 +5,8 @@ use crate::core::client::Client;
|
||||
use crate::core::registry::Registry;
|
||||
use anyhow::{anyhow, Result};
|
||||
use glam::Mat4;
|
||||
use stardust_xr::flex::flexbuffer_from_vector_arguments;
|
||||
use std::path::PathBuf;
|
||||
use stardust_xr::schemas::flex::{deserialize, serialize};
|
||||
|
||||
use std::sync::atomic::{AtomicBool, Ordering};
|
||||
use std::sync::Arc;
|
||||
|
||||
@@ -59,25 +59,17 @@ impl Root {
|
||||
}
|
||||
|
||||
pub fn logic_step(delta: f64) {
|
||||
let data = flexbuffer_from_vector_arguments(move |fbb| {
|
||||
fbb.push(delta);
|
||||
fbb.push(0_f64);
|
||||
});
|
||||
for root in ROOT_REGISTRY.get_valid_contents() {
|
||||
if root.logic_step.load(Ordering::Relaxed) {
|
||||
let _ = root.node.send_remote_signal("logicStep", &data);
|
||||
if let Ok(data) = serialize((delta, 0.0)) {
|
||||
for root in ROOT_REGISTRY.get_valid_contents() {
|
||||
if root.logic_step.load(Ordering::Relaxed) {
|
||||
let _ = root.node.send_remote_signal("logicStep", &data);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn set_base_prefixes(_node: &Node, calling_client: Arc<Client>, data: &[u8]) -> Result<()> {
|
||||
let flex_vec = flexbuffers::Reader::get_root(data)?.get_vector()?;
|
||||
*calling_client.base_resource_prefixes.lock() = flex_vec
|
||||
.iter()
|
||||
.filter_map(|prefix| prefix.get_str().ok())
|
||||
.map(PathBuf::from)
|
||||
.filter(|prefix| prefix.is_absolute())
|
||||
.collect();
|
||||
*calling_client.base_resource_prefixes.lock() = deserialize(data)?;
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user