Set process priority to high on windows

This commit is contained in:
Simon Gellis 2024-11-17 20:57:43 -05:00
parent 63cb7a4835
commit c84531e70e
3 changed files with 16 additions and 0 deletions

1
Cargo.lock generated
View File

@ -1922,6 +1922,7 @@ dependencies = [
"rubato",
"thread-priority",
"wgpu",
"windows 0.58.0",
"winit",
]

View File

@ -23,6 +23,9 @@ thread-priority = "1"
wgpu = "23.0"
winit = "0.30"
[target.'cfg(windows)'.dependencies]
windows = { version = "0.58", features = ["Win32_System_Threading"] }
[build-dependencies]
cc = "1"

View File

@ -19,7 +19,19 @@ struct Args {
rom: Option<PathBuf>,
}
#[cfg(windows)]
fn set_process_priority_to_high() -> Result<()> {
use windows::Win32::{Foundation, System::Threading};
let process = unsafe { Threading::GetCurrentProcess() };
unsafe { Threading::SetPriorityClass(process, Threading::HIGH_PRIORITY_CLASS)? };
unsafe { Foundation::CloseHandle(process)? };
Ok(())
}
fn main() -> Result<()> {
#[cfg(windows)]
set_process_priority_to_high()?;
let args = Args::parse();
let (mut builder, client) = EmulatorBuilder::new();