Graphics/ForwardFramePipeline: Minor fixes

This commit is contained in:
Jérôme Leclercq 2021-07-28 13:11:20 +02:00
parent 3de0edec6f
commit 289472dc9f
3 changed files with 7 additions and 1 deletions

View File

@ -49,7 +49,9 @@ namespace Nz
private: private:
BakedFrameGraph BuildFrameGraph(); BakedFrameGraph BuildFrameGraph();
void RegisterMaterialPass(MaterialPass* material); void RegisterMaterialPass(MaterialPass* material);
void ProcessRenderQueue(CommandBufferBuilder& builder, const RenderQueue<RenderElement*>& renderQueue);
void UnregisterMaterialPass(MaterialPass* material); void UnregisterMaterialPass(MaterialPass* material);
struct MaterialData struct MaterialData
@ -80,7 +82,6 @@ namespace Nz
std::vector<std::unique_ptr<RenderElement>> m_depthPrepassRenderElements; std::vector<std::unique_ptr<RenderElement>> m_depthPrepassRenderElements;
std::vector<std::unique_ptr<RenderElement>> m_forwardRenderElements; std::vector<std::unique_ptr<RenderElement>> m_forwardRenderElements;
std::vector<std::unique_ptr<ElementRenderer>> m_elementRenderers; std::vector<std::unique_ptr<ElementRenderer>> m_elementRenderers;
std::vector<const RenderElement*> m_temporaryElementList;
BakedFrameGraph m_bakedFrameGraph; BakedFrameGraph m_bakedFrameGraph;
RenderQueueRegistry m_depthPrepassRegistry; RenderQueueRegistry m_depthPrepassRegistry;
RenderQueueRegistry m_forwardRegistry; RenderQueueRegistry m_forwardRegistry;

View File

@ -31,6 +31,7 @@ namespace Nz
// - Layer (8bits) // - Layer (8bits)
// - Pipeline (16bits) // - Pipeline (16bits)
// - VertexBuffer (8bits) // - VertexBuffer (8bits)
// - ?? (24bits) - Depth?
return (elementType & 0xF) << 60 | return (elementType & 0xF) << 60 |
(layerIndex & 0xFF) << 52 | (layerIndex & 0xFF) << 52 |

View File

@ -272,10 +272,14 @@ namespace Nz
std::size_t matCount = instancedRenderable->GetMaterialCount(); std::size_t matCount = instancedRenderable->GetMaterialCount();
for (std::size_t i = 0; i < matCount; ++i) for (std::size_t i = 0; i < matCount; ++i)
{ {
if (MaterialPass* pass = instancedRenderable->GetMaterial(i)->GetPass("DepthPass"))
UnregisterMaterialPass(pass);
if (MaterialPass* pass = instancedRenderable->GetMaterial(i)->GetPass("ForwardPass")) if (MaterialPass* pass = instancedRenderable->GetMaterial(i)->GetPass("ForwardPass"))
UnregisterMaterialPass(pass); UnregisterMaterialPass(pass);
} }
m_rebuildDepthPrepass = true;
m_rebuildForwardPass = true; m_rebuildForwardPass = true;
} }