hudhook
0.8.0
用於建立 Dear ImGui 覆蓋層的 Rust 渲染器掛鉤庫。
目前支援 DirectX 9、DirectX 11、DirectX 12 和 OpenGL 3。
如果您喜歡hudhook
並願意支持該項目,您可以透過我的 Patreon 進行支援。
我很高興該項目適合您,並感謝您的支持。謝謝你!
// 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 ( ) ;
}