hudhook
0.8.0
Eine Rust-Renderer-Hook-Bibliothek zum Erstellen von Dear ImGui-Overlays.
Unterstützt derzeit DirectX 9, DirectX 11, DirectX 12 und OpenGL 3. Läuft unter Windows und Wine/Proton.
Wenn dir hudhook
gefällt und du das Projekt unterstützen möchtest, kannst du dies über meinen Patreon tun.
Ich freue mich, dass das Projekt für Sie funktioniert und bin dankbar für Ihre Unterstützung. Danke schön!
// src/lib.rs
use hudhook :: * ;
pub struct MyRenderLoop ;
impl ImguiRenderLoop for MyRenderLoop {
fn render ( & mut self , ui : & mut imgui :: Ui ) {
ui . window ( "My first render loop" )
. position ( [ 0. , 0. ] , imgui :: Condition :: FirstUseEver )
. size ( [ 320. , 200. ] , imgui :: Condition :: FirstUseEver )
. build ( || {
ui . text ( "Hello, hello!" ) ;
} ) ;
}
}
{
// Use this if hooking into a DirectX 9 application.
use hudhook :: hooks :: dx9 :: ImguiDx9Hooks ;
hudhook ! ( ImguiDx9Hooks , MyRenderLoop ) ;
}
{
// Use this if hooking into a DirectX 11 application.
use hudhook :: hooks :: dx11 :: ImguiDx11Hooks ;
hudhook ! ( ImguiDx11Hooks , MyRenderLoop ) ;
}
{
// Use this if hooking into a DirectX 12 application.
use hudhook :: hooks :: dx12 :: ImguiDx12Hooks ;
hudhook ! ( ImguiDx12Hooks , MyRenderLoop ) ;
}
{
// Use this if hooking into an OpenGL 3 application.
use hudhook :: hooks :: opengl3 :: ImguiOpenGl3Hooks ;
hudhook ! ( ImguiOpenGl3Hooks , MyRenderLoop ) ;
}
// src/main.rs
use hudhook :: inject :: Process ;
fn main ( ) {
let mut cur_exe = std :: env :: current_exe ( ) . unwrap ( ) ;
cur_exe . push ( ".." ) ;
cur_exe . push ( "libmyhook.dll" ) ;
let cur_dll = cur_exe . canonicalize ( ) . unwrap ( ) ;
Process :: by_name ( "MyTargetApplication.exe" ) . unwrap ( ) . inject ( cur_dll ) . unwrap ( ) ;
}