fix: stereokit not exiting on ctrl+c
This commit is contained in:
729
Cargo.lock
generated
729
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -89,7 +89,8 @@ features = [
|
|||||||
optional = true
|
optional = true
|
||||||
|
|
||||||
[dependencies.stereokit-rust]
|
[dependencies.stereokit-rust]
|
||||||
git = "https://github.com/mvvvv/StereoKit-rust.git"
|
git = "https://github.com/technobaboo/StereoKit-rust.git"
|
||||||
|
default-features = false
|
||||||
|
|
||||||
[dependencies.console-subscriber]
|
[dependencies.console-subscriber]
|
||||||
version = "0.2.0"
|
version = "0.2.0"
|
||||||
|
|||||||
27
src/main.rs
27
src/main.rs
@@ -29,7 +29,7 @@ use std::time::Duration;
|
|||||||
use stereokit_rust::material::Material;
|
use stereokit_rust::material::Material;
|
||||||
use stereokit_rust::shader::Shader;
|
use stereokit_rust::shader::Shader;
|
||||||
use stereokit_rust::sk::{
|
use stereokit_rust::sk::{
|
||||||
sk_quit, AppMode, DepthMode, DisplayBlend, DisplayMode, QuitReason, SkClosures, SkSettings,
|
sk_quit, AppMode, DepthMode, DisplayBlend, DisplayMode, QuitReason, SkSettings,
|
||||||
};
|
};
|
||||||
use stereokit_rust::system::{Handed, LogLevel, Renderer, World};
|
use stereokit_rust::system::{Handed, LogLevel, Renderer, World};
|
||||||
use stereokit_rust::tex::{SHCubemap, Tex, TexFormat, TexType};
|
use stereokit_rust::tex::{SHCubemap, Tex, TexFormat, TexType};
|
||||||
@@ -71,13 +71,6 @@ struct EventLoopInfo {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
ctrlc::set_handler(|| {
|
|
||||||
if atty::isnt(atty::Stream::Stdout) {
|
|
||||||
STOP_NOTIFIER.notify_waiters()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.unwrap();
|
|
||||||
|
|
||||||
let registry = tracing_subscriber::registry();
|
let registry = tracing_subscriber::registry();
|
||||||
|
|
||||||
#[cfg(feature = "profile_app")]
|
#[cfg(feature = "profile_app")]
|
||||||
@@ -101,7 +94,7 @@ fn main() {
|
|||||||
}
|
}
|
||||||
let cli_args = Arc::new(CliArgs::parse());
|
let cli_args = Arc::new(CliArgs::parse());
|
||||||
|
|
||||||
let (sk, sk_event_loop) = SkSettings::default()
|
let sk = SkSettings::default()
|
||||||
.app_name("Stardust XR")
|
.app_name("Stardust XR")
|
||||||
.mode(if cli_args.flatscreen {
|
.mode(if cli_args.flatscreen {
|
||||||
AppMode::Simulator
|
AppMode::Simulator
|
||||||
@@ -209,10 +202,7 @@ fn main() {
|
|||||||
let mut last_frame_delta = Duration::ZERO;
|
let mut last_frame_delta = Duration::ZERO;
|
||||||
let mut sleep_duration = Duration::ZERO;
|
let mut sleep_duration = Duration::ZERO;
|
||||||
debug_span!("StereoKit").in_scope(|| {
|
debug_span!("StereoKit").in_scope(|| {
|
||||||
SkClosures::run_app(
|
while let Some(token) = sk.step() {
|
||||||
sk,
|
|
||||||
sk_event_loop,
|
|
||||||
|sk, token| {
|
|
||||||
let _span = debug_span!("StereoKit step");
|
let _span = debug_span!("StereoKit step");
|
||||||
let _span = _span.enter();
|
let _span = _span.enter();
|
||||||
|
|
||||||
@@ -226,8 +216,8 @@ fn main() {
|
|||||||
mouse_pointer.update();
|
mouse_pointer.update();
|
||||||
}
|
}
|
||||||
if let Some((left_hand, right_hand)) = &mut hands {
|
if let Some((left_hand, right_hand)) = &mut hands {
|
||||||
left_hand.update(sk, token);
|
left_hand.update(&sk, token);
|
||||||
right_hand.update(sk, token);
|
right_hand.update(&sk, token);
|
||||||
}
|
}
|
||||||
if let Some((left_controller, right_controller)) = &mut controllers {
|
if let Some((left_controller, right_controller)) = &mut controllers {
|
||||||
left_controller.update(token);
|
left_controller.update(token);
|
||||||
@@ -253,13 +243,10 @@ fn main() {
|
|||||||
audio::update();
|
audio::update();
|
||||||
#[cfg(feature = "wayland")]
|
#[cfg(feature = "wayland")]
|
||||||
wayland.make_context_current();
|
wayland.make_context_current();
|
||||||
},
|
}
|
||||||
|_sk| {
|
|
||||||
info!("Cleanly shut down StereoKit");
|
|
||||||
},
|
|
||||||
)
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
info!("Cleanly shut down StereoKit");
|
||||||
#[cfg(feature = "wayland")]
|
#[cfg(feature = "wayland")]
|
||||||
drop(wayland);
|
drop(wayland);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user