1
0
mirror of https://github.com/djhackersdev/bemanitools.git synced 2025-02-26 22:49:28 +01:00

feat: Add separate d3d9-frame-graph-hook

Allow this to be hooked by any application with a d3d9
render backend. This is not compatible with d3d9ex.
This commit is contained in:
icex2 2025-02-07 22:41:37 +01:00
parent aa3e7d307d
commit a11c7a0704
4 changed files with 55 additions and 0 deletions

View File

@ -100,6 +100,7 @@ include src/main/bstio/Module.mk
include src/main/camhook/Module.mk
include src/main/cconfig/Module.mk
include src/main/config/Module.mk
include src/main/d3d9-frame-graph-hook/Module.mk
include src/main/d3d9-util/Module.mk
include src/main/d3d9exhook/Module.mk
include src/main/ddrhook-util/Module.mk
@ -238,6 +239,7 @@ $(zipdir)/tools.zip: \
build/bin/indep-32/ezusb2-tool.exe \
build/bin/indep-32/ezusb-tool.exe \
build/bin/indep-32/nvgpu.exe \
build/bin/indep-32/d3d9-frame-graph-hook.dll \
| $(zipdir)/
$(V)echo ... $@
$(V)zip -j $@ $^
@ -253,6 +255,7 @@ $(zipdir)/tools-x64.zip: \
build/bin/indep-64/jbiotest.exe \
build/bin/indep-64/mempatch-hook.dll \
build/bin/indep-64/nvgpu.exe \
build/bin/indep-64/d3d9-frame-graph-hook.dll \
| $(zipdir)/
$(V)echo ... $@
$(V)zip -j $@ $^

View File

@ -0,0 +1,16 @@
dlls += d3d9-frame-graph-hook
ldflags_d3d9-frame-graph-hook := \
-ld3d9 \
-ldwmapi\
-lgdi32 \
libs_d3d9-frame-graph-hook := \
hook \
imgui-bt \
imgui-debug \
imgui \
util \
src_d3d9-frame-graph-hook := \
main.c \

View File

@ -0,0 +1,4 @@
LIBRARY d3d9-frame-graph-hook
EXPORTS
DllMain@12 @1 NONAME

View File

@ -0,0 +1,32 @@
#include <windows.h>
#include "hook/d3d9.h"
#include "hook/table.h"
#include "imgui-bt/imgui-d3d9-hook.h"
#include "imgui-debug/frame-perf-graph.h"
#include "util/defs.h"
#include "util/log.h"
static const hook_d3d9_irp_handler_t d3d9_frame_graph_hook_handlers[] = {
imgui_hook_d3d9_irp_handler
};
BOOL WINAPI DllMain(HMODULE mod, DWORD reason, void *ctx)
{
imgui_bt_component_t debug_frame_graph_component;
if (reason == DLL_PROCESS_ATTACH) {
log_to_writer(log_writer_null, NULL);
imgui_debug_frame_perf_graph_init(60.0f, &debug_frame_graph_component);
imgui_d3d9_hook_init(&debug_frame_graph_component, 1);
hook_d3d9_init(d3d9_frame_graph_hook_handlers, lengthof(d3d9_frame_graph_hook_handlers));
}
return TRUE;
}