Check if we actually created a new frame

This commit is contained in:
Nemirtingas 2020-01-10 08:10:33 +01:00
parent 548f21c2f0
commit 0711c83440
5 changed files with 60 additions and 51 deletions

View file

@ -80,7 +80,8 @@ void DX10_Hook::prepareForOverlay(IDXGISwapChain* pSwapChain)
initialized = true; initialized = true;
} }
ImGui_ImplDX10_NewFrame(); if (ImGui_ImplDX10_NewFrame())
{
Windows_Hook::Inst()->prepareForOverlay(desc.OutputWindow); Windows_Hook::Inst()->prepareForOverlay(desc.OutputWindow);
ImGui::NewFrame(); ImGui::NewFrame();
@ -92,6 +93,7 @@ void DX10_Hook::prepareForOverlay(IDXGISwapChain* pSwapChain)
pDevice->OMSetRenderTargets(1, &mainRenderTargetView, NULL); pDevice->OMSetRenderTargets(1, &mainRenderTargetView, NULL);
ImGui_ImplDX10_RenderDrawData(ImGui::GetDrawData()); ImGui_ImplDX10_RenderDrawData(ImGui::GetDrawData());
} }
}
HRESULT STDMETHODCALLTYPE DX10_Hook::MyPresent(IDXGISwapChain *_this, UINT SyncInterval, UINT Flags) HRESULT STDMETHODCALLTYPE DX10_Hook::MyPresent(IDXGISwapChain *_this, UINT SyncInterval, UINT Flags)
{ {

View file

@ -92,7 +92,8 @@ void DX11_Hook::prepareForOverlay(IDXGISwapChain* pSwapChain)
initialized = true; initialized = true;
} }
ImGui_ImplDX11_NewFrame(); if (ImGui_ImplDX11_NewFrame())
{
Windows_Hook::Inst()->prepareForOverlay(desc.OutputWindow); Windows_Hook::Inst()->prepareForOverlay(desc.OutputWindow);
ImGui::NewFrame(); ImGui::NewFrame();
@ -104,6 +105,7 @@ void DX11_Hook::prepareForOverlay(IDXGISwapChain* pSwapChain)
pContext->OMSetRenderTargets(1, &mainRenderTargetView, NULL); pContext->OMSetRenderTargets(1, &mainRenderTargetView, NULL);
ImGui_ImplDX11_RenderDrawData(ImGui::GetDrawData()); ImGui_ImplDX11_RenderDrawData(ImGui::GetDrawData());
} }
}
HRESULT STDMETHODCALLTYPE DX11_Hook::MyPresent(IDXGISwapChain *_this, UINT SyncInterval, UINT Flags) HRESULT STDMETHODCALLTYPE DX11_Hook::MyPresent(IDXGISwapChain *_this, UINT SyncInterval, UINT Flags)
{ {

View file

@ -176,7 +176,8 @@ void DX12_Hook::prepareForOverlay(IDXGISwapChain* pSwapChain)
pDevice->Release(); pDevice->Release();
} }
ImGui_ImplDX12_NewFrame(); if (ImGui_ImplDX12_NewFrame())
{
Windows_Hook::Inst()->prepareForOverlay(sc_desc.OutputWindow); Windows_Hook::Inst()->prepareForOverlay(sc_desc.OutputWindow);
ImGui::NewFrame(); ImGui::NewFrame();
@ -208,7 +209,7 @@ void DX12_Hook::prepareForOverlay(IDXGISwapChain* pSwapChain)
pCmdList->Close(); pCmdList->Close();
pCmdQueue->ExecuteCommandLists(1, (ID3D12CommandList**)&pCmdList); pCmdQueue->ExecuteCommandLists(1, (ID3D12CommandList**)&pCmdList);
}
pSwapChain3->Release(); pSwapChain3->Release();
} }

View file

@ -75,7 +75,8 @@ void DX9_Hook::prepareForOverlay(IDirect3DDevice9 *pDevice)
initialized = true; initialized = true;
} }
ImGui_ImplDX9_NewFrame(); if (ImGui_ImplDX9_NewFrame())
{
Windows_Hook::Inst()->prepareForOverlay(param.hFocusWindow); Windows_Hook::Inst()->prepareForOverlay(param.hFocusWindow);
ImGui::NewFrame(); ImGui::NewFrame();
@ -86,6 +87,7 @@ void DX9_Hook::prepareForOverlay(IDirect3DDevice9 *pDevice)
ImGui_ImplDX9_RenderDrawData(ImGui::GetDrawData()); ImGui_ImplDX9_RenderDrawData(ImGui::GetDrawData());
} }
}
HRESULT STDMETHODCALLTYPE DX9_Hook::MyReset(IDirect3DDevice9* _this, D3DPRESENT_PARAMETERS* pPresentationParameters) HRESULT STDMETHODCALLTYPE DX9_Hook::MyReset(IDirect3DDevice9* _this, D3DPRESENT_PARAMETERS* pPresentationParameters)
{ {

View file

@ -83,7 +83,8 @@ void OpenGL_Hook::prepareForOverlay(HDC hDC)
initialized = true; initialized = true;
} }
ImGui_ImplOpenGL3_NewFrame(); if (ImGui_ImplOpenGL3_NewFrame())
{
Windows_Hook::Inst()->prepareForOverlay(hWnd); Windows_Hook::Inst()->prepareForOverlay(hWnd);
ImGui::NewFrame(); ImGui::NewFrame();
@ -94,6 +95,7 @@ void OpenGL_Hook::prepareForOverlay(HDC hDC)
ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData()); ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData());
} }
}
BOOL WINAPI OpenGL_Hook::MywglSwapBuffers(HDC hDC) BOOL WINAPI OpenGL_Hook::MywglSwapBuffers(HDC hDC)
{ {