fix: mouse pointer

This commit is contained in:
Nova
2023-04-18 06:16:37 -04:00
parent f2c9f91a6b
commit 0fec416731
3 changed files with 33 additions and 13 deletions

31
Cargo.lock generated
View File

@@ -782,7 +782,7 @@ checksum = "15d14128f06405808ce75bfebe11e9b0f9da18719ede6d7bdb1702d6bfe0f7e8"
dependencies = [ dependencies = [
"bitflags 1.3.2", "bitflags 1.3.2",
"byteorder", "byteorder",
"num_enum", "num_enum 0.5.11",
"serde", "serde",
"serde_derive", "serde_derive",
] ]
@@ -1434,7 +1434,16 @@ version = "0.5.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9"
dependencies = [ dependencies = [
"num_enum_derive", "num_enum_derive 0.5.11",
]
[[package]]
name = "num_enum"
version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1"
dependencies = [
"num_enum_derive 0.6.1",
] ]
[[package]] [[package]]
@@ -1449,6 +1458,18 @@ dependencies = [
"syn 1.0.109", "syn 1.0.109",
] ]
[[package]]
name = "num_enum_derive"
version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6"
dependencies = [
"proc-macro-crate",
"proc-macro2",
"quote 1.0.26",
"syn 2.0.8",
]
[[package]] [[package]]
name = "object" name = "object"
version = "0.30.3" version = "0.30.3"
@@ -2095,9 +2116,9 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
[[package]] [[package]]
name = "stereokit" name = "stereokit"
version = "0.15.2" version = "0.15.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "edaf47ad239e02872ee35b5bf4ebc4169ddc9f85ea22a5aac340325f3a70ccbf" checksum = "5e1a6491c921ee4bb53bc41f08345d621769ea6802cd020cd308975a790487cb"
dependencies = [ dependencies = [
"bitflags 1.3.2", "bitflags 1.3.2",
"bitflags_serde_shim", "bitflags_serde_shim",
@@ -2107,7 +2128,7 @@ dependencies = [
"mint", "mint",
"ndk-context", "ndk-context",
"num-derive", "num-derive",
"num_enum", "num_enum 0.6.1",
"once_cell", "once_cell",
"serde", "serde",
"serde_repr", "serde_repr",

View File

@@ -37,7 +37,7 @@ rand = "0.8.5"
[dependencies.stereokit] [dependencies.stereokit]
default-features = false default-features = false
features = ["linux-egl", "color_named", "prisma"] features = ["linux-egl", "color_named", "prisma"]
version = "0.15.2" version = "0.15.3"
[dependencies.smithay] [dependencies.smithay]
git = "https://github.com/technobaboo/smithay.git" # Until we get stereokit to understand OES samplers and external textures git = "https://github.com/technobaboo/smithay.git" # Until we get stereokit to understand OES samplers and external textures

View File

@@ -14,7 +14,8 @@ use nanoid::nanoid;
use serde::Serialize; use serde::Serialize;
use stardust_xr::schemas::{flat::Datamap, flex::flexbuffers}; use stardust_xr::schemas::{flat::Datamap, flex::flexbuffers};
use std::{convert::TryFrom, sync::Arc}; use std::{convert::TryFrom, sync::Arc};
use stereokit::input::{ButtonState, Key, Ray as SkRay, StereoKitInput}; use stereokit::input::{ButtonState, Key, StereoKitInput};
use stereokit::values::Ray as SkRay;
use tracing::instrument; use tracing::instrument;
const SK_KEYMAP: &str = include_str!("sk.kmp"); const SK_KEYMAP: &str = include_str!("sk.kmp");
@@ -60,12 +61,10 @@ impl MousePointer {
pub fn update(&self, sk: &impl StereoKitInput) { pub fn update(&self, sk: &impl StereoKitInput) {
let mouse = sk.input_mouse(); let mouse = sk.input_mouse();
if let Some(ray) = SkRay::from_mouse(&mouse) { let ray = SkRay::from_mouse(&mouse);
self.spatial.set_local_transform( self.spatial.set_local_transform(
Mat4::look_to_rh(ray.pos.into(), -Vec3::from(ray.dir), vec3(0.0, 1.0, 0.0)) Mat4::look_to_rh(ray.pos.into(), -Vec3::from(ray.dir), vec3(0.0, 1.0, 0.0)).inverse(),
.inverse(), );
)
}
{ {
// Set pointer input datamap // Set pointer input datamap
let mut fbb = flexbuffers::Builder::default(); let mut fbb = flexbuffers::Builder::default();