Renderer: Add release queue to fix deletion while use

This commit is contained in:
Jérôme Leclercq
2021-05-14 02:04:47 +02:00
parent 51ecff2912
commit f280cff0a2
13 changed files with 163 additions and 15 deletions

View File

@@ -35,6 +35,7 @@ namespace Nz
{
m_owner.Present();
m_uploadPool.Reset();
FlushReleaseQueue();
}
void OpenGLRenderImage::SubmitCommandBuffer(CommandBuffer* commandBuffer, QueueTypeFlags /*queueTypeFlags*/)

View File

@@ -33,7 +33,7 @@ namespace Nz
m_size = size;
}
return RenderFrame(&m_renderImage[m_currentFrame], invalidateFramebuffer);
return RenderFrame(m_renderImage[m_currentFrame].get(), invalidateFramebuffer);
}
bool OpenGLRenderWindow::Create(RendererImpl* renderer, RenderSurface* surface, const RenderWindowParameters& parameters)
@@ -55,7 +55,7 @@ namespace Nz
m_renderImage.reserve(RenderImageCount);
for (std::size_t i = 0; i < RenderImageCount; ++i)
m_renderImage.emplace_back(*this);
m_renderImage.emplace_back(std::make_unique<OpenGLRenderImage>(*this));
return true;
}