OpenGLRenderer: Handle resize/minimize

This commit is contained in:
Jérôme Leclercq 2020-08-27 18:32:22 +02:00
parent 7c9dcdfbe4
commit 51ec9741df
2 changed files with 15 additions and 1 deletions

View File

@ -49,6 +49,7 @@ namespace Nz
OpenGLRenderPass m_renderPass;
OpenGLWindowFramebuffer m_framebuffer;
RenderWindow& m_owner;
Vector2ui m_size;
};
}

View File

@ -21,7 +21,18 @@ namespace Nz
RenderFrame OpenGLRenderWindow::Acquire()
{
return RenderFrame(&m_renderImage[m_currentFrame], false);
if (m_owner.IsMinimized())
return RenderFrame();
bool invalidateFramebuffer = false;
Vector2ui size = m_owner.GetSize();
if (m_size != size)
{
invalidateFramebuffer = true;
m_size = size;
}
return RenderFrame(&m_renderImage[m_currentFrame], invalidateFramebuffer);
}
bool OpenGLRenderWindow::Create(RendererImpl* renderer, RenderSurface* surface, const RenderWindowParameters& parameters)
@ -37,6 +48,8 @@ namespace Nz
if (!m_context)
return false;
m_size = m_owner.GetSize();
constexpr std::size_t RenderImageCount = 2;
m_renderImage.reserve(RenderImageCount);