mirror of
https://github.com/creating2morrow/neveko.git
synced 2025-01-05 10:29:31 +00:00
46 lines
1.7 KiB
Rust
46 lines
1.7 KiB
Rust
//! App for neveko-gui
|
|
|
|
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] // hide console window on Windows in release
|
|
use std::time::Duration;
|
|
use tokio::runtime::Runtime;
|
|
|
|
// When compiling natively:
|
|
fn main() -> Result<(), eframe::Error> {
|
|
{
|
|
// Silence wgpu log spam (https://github.com/gfx-rs/wgpu/issues/3206)
|
|
let mut rust_log = std::env::var("RUST_LOG").unwrap_or_else(|_| "info".to_owned());
|
|
for loud_crate in ["naga", "wgpu_core", "wgpu_hal"] {
|
|
if !rust_log.contains(&format!("{loud_crate}=")) {
|
|
rust_log += &format!(",{loud_crate}=warn");
|
|
}
|
|
}
|
|
std::env::set_var("RUST_LOG", rust_log);
|
|
}
|
|
// Log to stdout (if you run with `RUST_LOG=debug`).
|
|
tracing_subscriber::fmt::init();
|
|
let options = eframe::NativeOptions {
|
|
initial_window_size: Some([1280.0, 1024.0].into()),
|
|
#[cfg(feature = "wgpu")]
|
|
renderer: eframe::Renderer::Wgpu,
|
|
..Default::default()
|
|
};
|
|
// Guide for async gui stuff below (@_@)
|
|
// Reference: https://github.com/parasyte/egui-tokio-example
|
|
let rt = Runtime::new().expect("Unable to create Runtime");
|
|
// Enter the runtime so that `tokio::spawn` is available immediately.
|
|
let _enter = rt.enter();
|
|
// Execute the runtime in its own thread.
|
|
// The future doesn't have to do anything. In this example, it just sleeps forever.
|
|
std::thread::spawn(move || {
|
|
rt.block_on(async {
|
|
loop {
|
|
tokio::time::sleep(Duration::from_secs(3600)).await;
|
|
}
|
|
})
|
|
});
|
|
eframe::run_native(
|
|
"neveko-gui-v0.4.8-alpha",
|
|
options,
|
|
Box::new(|cc| Box::new(neveko_gui::WrapApp::new(cc))),
|
|
)
|
|
}
|