Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- typedef HRESULT (WINAPI * tD3D11Present)(IDXGISwapChain*, UINT, UINT);
- HRESULT WINAPI hD3D11Present(IDXGISwapChain* pSwapChain, UINT SyncInterval, UINT Flags)
- {
- Main::ECT.textureTool.d3d11Hook();
- return oD3D11Present(pSwapChain, SyncInterval, Flags);
- }
- PBYTE WINAPI HookVTableFunction(PDWORD64* ppVTable, PBYTE pHook, SIZE_T iIndex) {
- DWORD dwOld = 0;
- VirtualProtect((void*)((*ppVTable) + iIndex), sizeof(PDWORD64), PAGE_EXECUTE_READWRITE, &dwOld);
- PBYTE pOrig = ((PBYTE)(*ppVTable)[iIndex]);
- (*ppVTable)[iIndex] = (DWORD64)pHook;
- VirtualProtect((void*)((*ppVTable) + iIndex), sizeof(PDWORD64), dwOld, &dwOld);
- return pOrig;
- }
- oD3D11Present = (tD3D11Present)HookVTableFunction((PDWORD64*)fb::DxRenderer::GetInstance()->m_pScreen->m_pSwapChain, (PBYTE)&hD3D11Present, 8);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement