Renderer: Make WindowSwapchain a RenderTarget

To make it easier to handle window re-creation
This commit is contained in:
SirLynix
2023-01-29 10:38:35 +01:00
parent 97fa4d98be
commit 4a91f3d470
14 changed files with 44 additions and 40 deletions

View File

@@ -8,15 +8,9 @@
namespace Nz
{
inline WindowSwapchain::WindowSwapchain(WindowSwapchain&& windowSwapchain) noexcept :
m_renderDevice(std::move(windowSwapchain.m_renderDevice)),
m_swapchain(std::move(windowSwapchain.m_swapchain)),
m_window(std::move(windowSwapchain.m_window)),
m_renderOnlyIfFocused(windowSwapchain.m_renderOnlyIfFocused),
m_hasFocus(windowSwapchain.m_hasFocus),
m_isMinimized(windowSwapchain.m_isMinimized)
inline WindowSwapchain::~WindowSwapchain()
{
ConnectSignals();
OnRenderTargetRelease(this);
}
inline RenderFrame WindowSwapchain::AcquireFrame()
@@ -47,22 +41,6 @@ namespace Nz
return *m_swapchain;
}
inline WindowSwapchain& WindowSwapchain::operator=(WindowSwapchain&& windowSwapchain) noexcept
{
windowSwapchain.DisconnectSignals();
m_renderDevice = std::move(windowSwapchain.m_renderDevice);
m_swapchain = std::move(windowSwapchain.m_swapchain);
m_window = std::move(windowSwapchain.m_window);
m_renderOnlyIfFocused = windowSwapchain.m_renderOnlyIfFocused;
m_hasFocus = windowSwapchain.m_hasFocus;
m_isMinimized = windowSwapchain.m_isMinimized;
ConnectSignals();
return *this;
}
void WindowSwapchain::DisconnectSignals()
{
m_onGainedFocus.Disconnect();