Replace
Code:
HRESULT WINAPI EndScene(LPDIRECT3DDEVICE9 pDevice)
{
ReFont(pDevice);
dMenu.BuildMenu("CodeDemon's Menu Base",0,0,180,200,RED,BLACK,GREEN,pDevice);
TestThread();
return pEndScene(pDevice);
}
with
Code:
HRESULT WINAPI Present(LPDIRECT3DDEVICE9 pDevice, CONST RECT *pSourceRect, CONST RECT *pDestRect, HWND hDestWindowOverride, CONST RGNDATA *pDirtyRegion)
{
ReFont(pDevice);
dMenu.BuildMenu("CodeDemon's Menu Base",0,0,180,200,RED,BLACK,GREEN,pDevice);
TestThread();
return pPresent(pDevice, pSourceRect, pDestRect, hDestWindowOverride, pDirtyRegion);
}
replace(in DemonMenuClass.h):
Code:
typedef HRESULT (WINAPI* oEndScene)(LPDIRECT3DDEVICE9 pDevice);
with
Code:
typedef HRESULT ( WINAPI* oPresent ) ( LPDIRECT3DDEVICE9 pDevice, CONST RECT *pSourceRect, CONST RECT *pDestRect, HWND hDestWindowOverride, CONST RGNDATA *pDirtyRegion);
In your globals(d3dbase.cpp)
replace
Code:
oEndScene pEndScene;
with
add in
Code:
CDetour cPresent,cReset;
go down to the d3d hook and replace
Code:
pReset = (oReset) DetourFunction((PBYTE)vtbl[16] , (PBYTE)Reset ,5);
pEndScene = (oEndScene) DetourFunction((PBYTE)vtbl[42], (PBYTE)EndScene,5);
with
Code:
pReset = (oReset)cReset.Create (( BYTE* )vtbl[16], ( BYTE* )Reset, DETOUR_TYPE_JMP );
pPresent = (oPresent)cPresent.Create(( BYTE* )vtbl[17], ( BYTE* )Present, DETOUR_TYPE_JMP );