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

View File

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

View File

@ -272,10 +272,14 @@ namespace Nz
std::size_t matCount = instancedRenderable->GetMaterialCount();
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"))
UnregisterMaterialPass(pass);
}
m_rebuildDepthPrepass = true;
m_rebuildForwardPass = true;
}