Graphics: Replace RenderFrame by RenderResources
This changes makes the whole rendering independent from the RenderFrame acquired from the Swapchain. This may allow to do offscreen rendering (= without swapchain), or multi-window rendering in the future
This commit is contained in:
@@ -104,9 +104,9 @@ namespace Nz
|
||||
}
|
||||
}
|
||||
|
||||
void DebugDrawer::Prepare(RenderFrame& renderFrame)
|
||||
void DebugDrawer::Prepare(RenderResources& renderResources)
|
||||
{
|
||||
UploadPool& uploadPool = renderFrame.GetUploadPool();
|
||||
UploadPool& uploadPool = renderResources.GetUploadPool();
|
||||
|
||||
if (!m_lineVertices.empty())
|
||||
{
|
||||
@@ -171,7 +171,7 @@ namespace Nz
|
||||
|
||||
if (m_viewerDataUpdated || !m_pendingUploads.empty())
|
||||
{
|
||||
renderFrame.Execute([&](CommandBufferBuilder& builder)
|
||||
renderResources.Execute([&](CommandBufferBuilder& builder)
|
||||
{
|
||||
builder.BeginDebugRegion("Debug drawer upload", Color::Yellow());
|
||||
{
|
||||
@@ -196,12 +196,12 @@ namespace Nz
|
||||
m_viewerDataUpdated = false;
|
||||
}
|
||||
|
||||
void DebugDrawer::Reset(RenderFrame& renderFrame)
|
||||
void DebugDrawer::Reset(RenderResources& renderResources)
|
||||
{
|
||||
if (m_currentViewerData.binding)
|
||||
{
|
||||
// keep pipeline layout alive as needs to stay alive until all shader bindings have been freed
|
||||
renderFrame.PushReleaseCallback([pool = m_dataPool, data = std::move(m_currentViewerData), pipelineLayout = m_renderPipelineLayout]() mutable
|
||||
renderResources.PushReleaseCallback([pool = m_dataPool, data = std::move(m_currentViewerData), pipelineLayout = m_renderPipelineLayout]() mutable
|
||||
{
|
||||
pool->viewerData.push_back(std::move(data));
|
||||
});
|
||||
@@ -210,7 +210,7 @@ namespace Nz
|
||||
|
||||
for (auto& drawCall : m_drawCalls)
|
||||
{
|
||||
renderFrame.PushReleaseCallback([pool = m_dataPool, buffer = std::move(drawCall.vertexBuffer)]() mutable
|
||||
renderResources.PushReleaseCallback([pool = m_dataPool, buffer = std::move(drawCall.vertexBuffer)]() mutable
|
||||
{
|
||||
pool->vertexBuffers.push_back(std::move(buffer));
|
||||
});
|
||||
|
||||
@@ -2,15 +2,15 @@
|
||||
// This file is part of the "Nazara Engine - Renderer module"
|
||||
// For conditions of distribution and use, see copyright notice in Config.hpp
|
||||
|
||||
#include <Nazara/Renderer/TransientResources.hpp>
|
||||
#include <Nazara/Renderer/RenderResources.hpp>
|
||||
#include <Nazara/Renderer/Debug.hpp>
|
||||
|
||||
namespace Nz
|
||||
{
|
||||
TransientResources::~TransientResources()
|
||||
RenderResources::~RenderResources()
|
||||
{
|
||||
FlushReleaseQueue();
|
||||
}
|
||||
|
||||
TransientResources::Releasable::~Releasable() = default;
|
||||
RenderResources::Releasable::~Releasable() = default;
|
||||
}
|
||||
Reference in New Issue
Block a user