veeenu / hudhook

A videogame overlay framework written in Rust, supporting DirectX and OpenGL
MIT License
167 stars 27 forks source link

Add before_render function in ImguiRenderLoop #145

Closed Thoxy67 closed 5 months ago

Thoxy67 commented 5 months ago

Like I mention here this is the modification that work after some test to force show the cursor and separate the key list from the setup_io

If I place the "show cursor" code directly inside the loop without proper synchronization or toggling (i.e., changing based on key pressed once), it results in crashes after some time.

Thoxy67 commented 5 months ago

I have added this config options :

// Here are the default values
pub static mut SHOW_UI: bool = true; // Show the UI by default when injected and also at runtime
pub static mut FORCE_SHOW_CURSOR_ON_UI_SHOW: bool = false; // Force cursor to show when ui show

// Here are defined the default keycode (keycode as u16, None = disabled function)
pub static mut SHOW_UI_KEY: Option<u16> = None; // Define the keycode for hide / show the ui
pub static mut SHOW_CURSOR_KEY: Option<u16> = None; // Define the keycode for hide / show the cursor

I have also updated this libs :

[dependencies]
once_cell = "1.19.0"
windows = "0.52.0"

[build-dependencies]
cc = "1.0.83"
veeenu commented 5 months ago

Thank you for the changes!

Could you please revert the version updates in Cargo.toml? We have directly experienced some quirks in the past that resulted in unexpected breakages in hudhook, so I'd like to postpone the bumps until I have time to thoroughly go through the changelogs and documentation.

Apart from that, the PR looks good to me now and I plan to merge it in soon (tomorrow morning hopefully) after giving it a manual round of tests.

Thoxy67 commented 5 months ago

Thank you for the changes!

Could you please revert the version updates in Cargo.toml? We have directly experienced some quirks in the past that resulted in unexpected breakages in hudhook, so I'd like to postpone the bumps until I have time to thoroughly go through the changelogs and documentation.

Apart from that, the PR looks good to me now and I plan to merge it in soon (tomorrow morning hopefully) after giving it a manual round of tests.

I have reverted the libs versions to old one.

Thanks a lot for everything now I can manage the IO like i wanted to.

Take your time to make your tests and merge when everything is ok on your side

veeenu commented 5 months ago

That's great, thank you!

Could you please run cargo +nightly fmt --all so that it passes CI? After that I'll run some tests and we're good to go!

Thoxy67 commented 5 months ago

That's great, thank you!

Could you please run cargo +nightly fmt --all so that it passes CI? After that I'll run some tests and we're good to go!

When i call this this change so many things like all this :

image

I think i need to do it on my linux env this make so many change (actually on my windows dual boot) in the code like updating the crates, change some part of the code in comment and every single c++ files have been modified and reformatted.

veeenu commented 5 months ago

Do you have the latest Rust nightly installed? It's unfortunately necessary because some lints have not been stabilized yet.

Thoxy67 commented 5 months ago

I always use nightly as default target I have tested on Linux this going to also modify format the markdown...

I have made without the --all argument this only modify the rust files and seems to have fix the CI lint issue

veeenu commented 5 months ago

Tested it, works great, thank you again!