Graphics/ForwardFramePipeline: Minor fixes
This commit is contained in:
parent
3de0edec6f
commit
289472dc9f
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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 |
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue