Advertisement
Hattiwatti

Untitled

Jul 30th, 2015
398
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.79 KB | None | 0 0
  1. typedef HRESULT (WINAPI * tD3D11Present)(IDXGISwapChain*, UINT, UINT);
  2.  
  3. HRESULT WINAPI hD3D11Present(IDXGISwapChain* pSwapChain, UINT SyncInterval, UINT Flags)
  4. {
  5.     Main::ECT.textureTool.d3d11Hook();
  6.  
  7.     return oD3D11Present(pSwapChain, SyncInterval, Flags);
  8. }
  9.  
  10. PBYTE WINAPI HookVTableFunction(PDWORD64* ppVTable, PBYTE pHook, SIZE_T iIndex) {
  11.     DWORD dwOld = 0;
  12.     VirtualProtect((void*)((*ppVTable) + iIndex), sizeof(PDWORD64), PAGE_EXECUTE_READWRITE, &dwOld);
  13.  
  14.     PBYTE pOrig = ((PBYTE)(*ppVTable)[iIndex]);
  15.     (*ppVTable)[iIndex] = (DWORD64)pHook;
  16.  
  17.     VirtualProtect((void*)((*ppVTable) + iIndex), sizeof(PDWORD64), dwOld, &dwOld);
  18.  
  19.     return pOrig;
  20. }
  21.  
  22. oD3D11Present = (tD3D11Present)HookVTableFunction((PDWORD64*)fb::DxRenderer::GetInstance()->m_pScreen->m_pSwapChain, (PBYTE)&hD3D11Present, 8);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement