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-08 23:21:49 +01:00
parent ce1a004bf6
commit 4ed3c97c2a
4 changed files with 57 additions and 0 deletions
+16
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 \
@@ -0,0 +1,4 @@
LIBRARY d3d9-frame-graph-hook
EXPORTS
DllMain@12 @1 NONAME
+32
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;
}