У меня есть прокси D3D9.dll
и я заметил, что мой DirectX::Present
называется перед тем из игры.
Можно ли это изменить (сначала исходные функции, затем мои функции)? Некоторые элементы, которые я рисую, переопределяются игрой.
Игра использует Ogre3D для рендеринга.
Примечание: я также хочу сделать некоторые «хаки», такие как заморозить камеру, и я заметил следующие вещи:
Установка положения камеры перед играми DirectX::Present
функция не дает результатов при настройке положения камеры после игр DirectX::Present
называть результаты в поведении, которое я хочу. (Проверено с CheatEngine)
обычно у вас в прокси есть такая структура:
HRESULT my_IDirect3DDevice9::Present(CONST RECT* pSourceRect,CONST RECT* pDestRect,HWND hDestWindowOverride,CONST RGNDATA* pDirtyRegion)
{
return (m_pIDirect3DDevice9->Present( pSourceRect, pDestRect, hDestWindowOverride, pDirtyRegion));
}
чтобы сначала сделать оригинальную функцию, вам нужно сделать что-то вроде:
HRESULT uMod_IDirect3DDevice9::Present(CONST RECT* pSourceRect,CONST RECT* pDestRect,HWND hDestWindowOverride,CONST RGNDATA* pDirtyRegion)
{
HRESULT myresult = (m_pIDirect3DDevice9->Present( pSourceRect, pDestRect, hDestWindowOverride, pDirtyRegion));
*** YOUR CODEWHATEVER ****
return myresult;
}
Других решений пока нет …