Graphics: Make Background/RenderTechnique independent from Scene

Former-commit-id: d588a3bb74b08d79990a278ad2e399e9797755b4
This commit is contained in:
Lynix
2015-06-09 00:26:13 +02:00
parent e97cc666a1
commit 6f2f8d6390
32 changed files with 124 additions and 86 deletions

View File

@@ -21,24 +21,22 @@ void NzDeferredForwardPass::Initialize(NzDeferredRenderTechnique* technique)
m_forwardTechnique = technique->GetForwardTechnique();
}
bool NzDeferredForwardPass::Process(const NzScene* scene, unsigned int workTexture, unsigned sceneTexture) const
bool NzDeferredForwardPass::Process(const NzAbstractViewer* viewer, const NzSceneData& sceneData, unsigned int workTexture, unsigned sceneTexture) const
{
NazaraUnused(sceneData);
NazaraUnused(workTexture);
m_workRTT->SetColorTarget(sceneTexture);
NzRenderer::SetTarget(m_workRTT);
NzRenderer::SetViewport(NzRecti(0, 0, m_dimensions.x, m_dimensions.y));
NzAbstractBackground* background = (scene->IsBackgroundEnabled()) ? scene->GetBackground() : nullptr;
if (background)
background->Draw(scene);
NzAbstractViewer* viewer = scene->GetViewer();
if (sceneData.background)
sceneData.background->Draw(viewer);
NzRenderer::SetMatrix(nzMatrixType_Projection, viewer->GetProjectionMatrix());
NzRenderer::SetMatrix(nzMatrixType_View, viewer->GetViewMatrix());
m_forwardTechnique->Draw(scene);
m_forwardTechnique->Draw(viewer, sceneData);
return false;
}