diff options
Diffstat (limited to 'core/src/Entrypoint/Backend_DirectX11.cpp')
-rw-r--r-- | core/src/Entrypoint/Backend_DirectX11.cpp | 36 |
1 files changed, 24 insertions, 12 deletions
diff --git a/core/src/Entrypoint/Backend_DirectX11.cpp b/core/src/Entrypoint/Backend_DirectX11.cpp index 8d46bf4..4dc33f7 100644 --- a/core/src/Entrypoint/Backend_DirectX11.cpp +++ b/core/src/Entrypoint/Backend_DirectX11.cpp @@ -11,7 +11,8 @@ // Forward declare message handler from imgui_impl_win32.cpp extern IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); -class DirectX11Backend : public RenderingBackend { +class DirectX11Backend : public RenderingBackend +{ private: HWND hWnd; WNDCLASSEX wc; @@ -22,7 +23,8 @@ private: ID3D11RenderTargetView* mMainRenderTargetView = nullptr; public: - DirectX11Backend() { + DirectX11Backend() + { ImGui_ImplWin32_EnableDpiAwareness(); wc.cbSize = sizeof(WNDCLASSEX); @@ -68,7 +70,8 @@ public: ImGui_ImplDX11_Init(mD3dDevice, mD3dDeviceContext); } - virtual ~DirectX11Backend() { + virtual ~DirectX11Backend() + { ImGui_ImplDX11_Shutdown(); ImGui_ImplWin32_Shutdown(); ImGui::DestroyContext(); @@ -78,7 +81,8 @@ public: ::UnregisterClass(wc.lpszClassName, wc.hInstance); } - virtual void RunUntilWindowClose(void (*windowContent)()) { + virtual void RunUntilWindowClose(void (*windowContent)()) + { while (true) { MSG msg; bool done = false; @@ -109,7 +113,8 @@ public: } private: - bool CreateDeviceD3D() { + bool CreateDeviceD3D() + { // Setup swap chain DXGI_SWAP_CHAIN_DESC sd; ZeroMemory(&sd, sizeof(sd)); @@ -142,7 +147,8 @@ private: return true; } - void CleanupDeviceD3D() { + void CleanupDeviceD3D() + { CleanupRenderTarget(); if (mSwapChain) { mSwapChain->Release(); @@ -158,21 +164,24 @@ private: } } - void CreateRenderTarget() { + void CreateRenderTarget() + { ID3D11Texture2D* pBackBuffer; mSwapChain->GetBuffer(0, IID_PPV_ARGS(&pBackBuffer)); mD3dDevice->CreateRenderTargetView(pBackBuffer, nullptr, &mMainRenderTargetView); pBackBuffer->Release(); } - void CleanupRenderTarget() { + void CleanupRenderTarget() + { if (mMainRenderTargetView) { mMainRenderTargetView->Release(); mMainRenderTargetView = nullptr; } } - static LRESULT CALLBACK StaticWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { + static LRESULT CALLBACK StaticWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) + { DirectX11Backend* self; if (uMsg == WM_NCCREATE) { auto lpcs = reinterpret_cast<LPCREATESTRUCT>(lParam); @@ -190,7 +199,8 @@ private: } } - LRESULT WndProc(UINT msg, WPARAM wParam, LPARAM lParam) { + LRESULT WndProc(UINT msg, WPARAM wParam, LPARAM lParam) + { if (ImGui_ImplWin32_WndProcHandler(hWnd, msg, wParam, lParam)) { return true; } @@ -221,7 +231,8 @@ private: } }; -std::unique_ptr<RenderingBackend> RenderingBackend::CreateDx11Backend() { +std::unique_ptr<RenderingBackend> RenderingBackend::CreateDx11Backend() +{ try { return std::make_unique<DirectX11Backend>(); } catch (std::exception& e) { @@ -231,7 +242,8 @@ std::unique_ptr<RenderingBackend> RenderingBackend::CreateDx11Backend() { #else // ^^ BUILD_CORE_WITH_DX11_BACKEND | BUILD_CORE_WITH_DX11_BACKEND vv -std::unique_ptr<RenderingBackend> RenderingBackend::CreateDx11Backend() { +std::unique_ptr<RenderingBackend> RenderingBackend::CreateDx11Backend() +{ return nullptr; } |