Graphics/DepthRenderTechnique: Add Clear method

Former-commit-id: 70e7cb5b59f0407c73766687b6a95e09b7eca589
This commit is contained in:
Lynix 2016-04-17 19:58:15 +02:00
parent 37aa00b2e7
commit b3455e88ca
3 changed files with 9 additions and 1 deletions

View File

@ -4,6 +4,7 @@
#include <NDK/Systems/RenderSystem.hpp> #include <NDK/Systems/RenderSystem.hpp>
#include <Nazara/Graphics/ColorBackground.hpp> #include <Nazara/Graphics/ColorBackground.hpp>
#include <Nazara/Math/Rect.hpp>
#include <Nazara/Renderer/Renderer.hpp> #include <Nazara/Renderer/Renderer.hpp>
#include <NDK/Components/CameraComponent.hpp> #include <NDK/Components/CameraComponent.hpp>
#include <NDK/Components/GraphicsComponent.hpp> #include <NDK/Components/GraphicsComponent.hpp>
@ -169,6 +170,7 @@ namespace Ndk
Nz::Renderer::SetMatrix(Nz::MatrixType_Projection, Nz::Matrix4f::Ortho(0.f, 100.f, 100.f, 0.f, 1.f, 100.f)); Nz::Renderer::SetMatrix(Nz::MatrixType_Projection, Nz::Matrix4f::Ortho(0.f, 100.f, 100.f, 0.f, 1.f, 100.f));
Nz::Renderer::SetMatrix(Nz::MatrixType_View, Nz::Matrix4f::ViewMatrix(lightNode.GetRotation() * Nz::Vector3f::Forward() * 100.f, lightNode.GetRotation())); Nz::Renderer::SetMatrix(Nz::MatrixType_View, Nz::Matrix4f::ViewMatrix(lightNode.GetRotation() * Nz::Vector3f::Forward() * 100.f, lightNode.GetRotation()));
m_shadowTechnique.Clear(dummySceneData);
m_shadowTechnique.Draw(dummySceneData); m_shadowTechnique.Draw(dummySceneData);
} }
} }
@ -233,6 +235,7 @@ namespace Ndk
graphicsComponent.AddToRenderQueue(renderQueue); graphicsComponent.AddToRenderQueue(renderQueue);
} }
m_shadowTechnique.Clear(dummySceneData);
m_shadowTechnique.Draw(dummySceneData); m_shadowTechnique.Draw(dummySceneData);
} }
break; break;
@ -260,6 +263,7 @@ namespace Ndk
graphicsComponent.AddToRenderQueue(renderQueue); graphicsComponent.AddToRenderQueue(renderQueue);
} }
m_shadowTechnique.Clear(dummySceneData);
m_shadowTechnique.Draw(dummySceneData); m_shadowTechnique.Draw(dummySceneData);
break; break;
} }

View File

@ -24,6 +24,7 @@ namespace Nz
DepthRenderTechnique(); DepthRenderTechnique();
~DepthRenderTechnique() = default; ~DepthRenderTechnique() = default;
void Clear(const SceneData& sceneData) const override;
bool Draw(const SceneData& sceneData) const override; bool Draw(const SceneData& sceneData) const override;
AbstractRenderQueue* GetRenderQueue() override; AbstractRenderQueue* GetRenderQueue() override;

View File

@ -48,7 +48,7 @@ namespace Nz
m_spriteBuffer.Reset(VertexDeclaration::Get(VertexLayout_XYZ_Color_UV), &m_vertexBuffer); m_spriteBuffer.Reset(VertexDeclaration::Get(VertexLayout_XYZ_Color_UV), &m_vertexBuffer);
} }
bool DepthRenderTechnique::Draw(const SceneData& sceneData) const void DepthRenderTechnique::Clear(const SceneData& sceneData) const
{ {
Renderer::Enable(RendererParameter_DepthBuffer, true); Renderer::Enable(RendererParameter_DepthBuffer, true);
Renderer::Enable(RendererParameter_DepthWrite, true); Renderer::Enable(RendererParameter_DepthWrite, true);
@ -57,7 +57,10 @@ namespace Nz
// Just in case the background does render depth // Just in case the background does render depth
if (sceneData.background) if (sceneData.background)
sceneData.background->Draw(sceneData.viewer); sceneData.background->Draw(sceneData.viewer);
}
bool DepthRenderTechnique::Draw(const SceneData& sceneData) const
{
for (auto& pair : m_renderQueue.layers) for (auto& pair : m_renderQueue.layers)
{ {
ForwardRenderQueue::Layer& layer = pair.second; ForwardRenderQueue::Layer& layer = pair.second;