void InitImGui( IRenderer* pRenderer ) {
ImGui::CreateContext( );
ImGuiIO& io = ImGui::GetIO( );
io.Fonts->AddFontFromFileTTF( "C:\\Windows\\Fonts\\Arial.ttf", 20, 0, io.Fonts->GetGlyphRangesCyrillic( ) );
ImGui_ImplWin32_Init( pRenderer->m_hWnd );
ImGui_ImplDX11_Init( pRenderer->m_pd3dDevice, pRenderer->m_pd3dDeviceContext );
CustomColor( );
CustomStyle( );
}
LRESULT __stdcall WndProc( const HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam ) {
if ( true && ImGui_ImplWin32_WndProcHandler( hWnd, uMsg, wParam, lParam ) )
return true;
return CallWindowProc( oWndProc, hWnd, uMsg, wParam, lParam );
}
bool init = false;
bool menu = false;
HRESULT WINAPI D3D11Present( IDXGISwapChain* pSwapChain, UINT SyncInterval, UINT Flags ) {
IRenderer* pRenderer = SSystemGlobalEnvironment::Singleton( )->GetRenderer( );
if ( pRenderer == nullptr ) return 0;
if ( !init )
{
if ( SUCCEEDED( pSwapChain->GetDevice( __uuidof( ID3D11Device ),
(void**)&pRenderer->m_pd3dDevice ) ) )
{
pRenderer->m_pd3dDevice->GetImmediateContext(
&pRenderer->m_pd3dDeviceContext );
DXGI_SWAP_CHAIN_DESC sd;
pSwapChain->GetDesc( &sd );
pRenderer->m_hWnd = sd.OutputWindow;
ID3D11Texture2D* pBackBuffer;
pSwapChain->GetBuffer( 0, __uuidof( ID3D11Texture2D ),
(LPVOID*)&pBackBuffer );
pRenderer->m_pd3dDevice->CreateRenderTargetView(
pBackBuffer, NULL, &pRenderer->m_pBackBuffer );
pBackBuffer->Release( );
oWndProc = (WNDPROC)SetWindowLongPtr( pRenderer->m_hWnd, GWLP_WNDPROC,
(LONG_PTR)WndProc );
InitImGui( pRenderer );
init = true;
} else {
return hkGame->GetOriginalFunction<HRESULT( WINAPI* )( IDXGISwapChain*, UINT, UINT )>( 8 )( pSwapChain, SyncInterval, Flags );
}
}
ImGui_ImplDX11_NewFrame( );
ImGui_ImplWin32_NewFrame( );
ImGui::NewFrame( );
if ( ( GetAsyncKeyState( VK_HOME ) & 1 ) || ( GetAsyncKeyState( VK_INSERT ) & 1 ) )
menu = !menu;
if ( menu )
{
ImGui::SetNextWindowSize( ImVec2( 458, 270 ) );
if ( ImGui::Begin( "Unise Multihit", nullptr, flags_0 ) )
{
if (ImGui::Button("ESP", ImVec2(38, 26)))
ImGui::SetCursorPos(ImVec2(38, 26));
static bool test = false;
if (ImGui::Checkbox("WallHack", &test)) {
}
}
ImGui::End( );
}
ImGui::Render( );
pRenderer->m_pd3dDeviceContext->OMSetRenderTargets( 1, &pRenderer->m_pBackBuffer, NULL );
ImGui_ImplDX11_RenderDrawData( ImGui::GetDrawData( ) );
return hkGame->GetOriginalFunction<HRESULT( WINAPI* )( IDXGISwapChain*, UINT, UINT )>( 8 )( pSwapChain, SyncInterval, Flags );
}