Skip to content

Commit 51b31dd

Browse files
use proper SafetyHook API for calling originals
1 parent 0e7ace5 commit 51b31dd

1 file changed

Lines changed: 7 additions & 10 deletions

File tree

src/D3D9Hook.cpp

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ namespace wavebreaker
5959
return false;
6060
}
6161

62-
spdlog::debug("Got Direct3DCreate9 {0:p}", (void*)d3dCreate9);
62+
spdlog::debug("Got Direct3DCreate9 {0:p}", (void *)d3dCreate9);
6363

6464
auto d3d = d3dCreate9(D3D_SDK_VERSION);
6565

@@ -69,7 +69,7 @@ namespace wavebreaker
6969
return false;
7070
}
7171

72-
spdlog::debug("Got IDirect3D9 {0:p}", (void*)d3d);
72+
spdlog::debug("Got IDirect3D9 {0:p}", (void *)d3d);
7373

7474
D3DPRESENT_PARAMETERS pp{};
7575

@@ -97,14 +97,14 @@ namespace wavebreaker
9797
return false;
9898
}
9999

100-
spdlog::debug("Got IDirect3DDevice9 {0:p}", (void*)device);
100+
spdlog::debug("Got IDirect3DDevice9 {0:p}", (void *)device);
101101

102102
// Grab the addresses of the methods we want to hook.
103103
auto present = (*(uintptr_t **)device)[17];
104104
auto reset = (*(uintptr_t **)device)[16];
105105

106-
spdlog::debug("Got IDirect3DDevice9::Present {0:p}", (void*)present);
107-
spdlog::debug("Got IDirect3DDevice9::Reset {0:p}", (void*)reset);
106+
spdlog::debug("Got IDirect3DDevice9::Present {0:p}", (void *)present);
107+
spdlog::debug("Got IDirect3DDevice9::Reset {0:p}", (void *)reset);
108108

109109
device->Release();
110110
d3d->Release();
@@ -140,9 +140,7 @@ namespace wavebreaker
140140
}
141141

142142
// Call the original present.
143-
auto originalPresent = (decltype(D3D9Hook::present) *)d3d9->m_presentHook.trampoline().address();
144-
145-
return originalPresent(device, src, dest, wnd, dirtyRgn);
143+
return d3d9->m_presentHook.stdcall<HRESULT>(device, src, dest, wnd, dirtyRgn);
146144
}
147145

148146
HRESULT D3D9Hook::reset(IDirect3DDevice9 *device, D3DPRESENT_PARAMETERS *presentParams)
@@ -158,8 +156,7 @@ namespace wavebreaker
158156
}
159157

160158
// Call the original reset.
161-
auto originalReset = (decltype(D3D9Hook::reset) *)d3d9->m_resetHook.trampoline().address();
162-
auto result = originalReset(device, presentParams);
159+
auto result = d3d9->m_resetHook.stdcall<HRESULT>(device, presentParams);
163160

164161
// Call our post reset callback.
165162
if (result == D3D_OK && d3d9->onPostReset)

0 commit comments

Comments
 (0)