OpenGLRenderer: Handle resize/minimize
This commit is contained in:
@@ -49,6 +49,7 @@ namespace Nz
|
||||
OpenGLRenderPass m_renderPass;
|
||||
OpenGLWindowFramebuffer m_framebuffer;
|
||||
RenderWindow& m_owner;
|
||||
Vector2ui m_size;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user