From b3455e88ca18e8f16ac163b50c1c41b71a15e513 Mon Sep 17 00:00:00 2001 From: Lynix Date: Sun, 17 Apr 2016 19:58:15 +0200 Subject: [PATCH] Graphics/DepthRenderTechnique: Add Clear method Former-commit-id: 70e7cb5b59f0407c73766687b6a95e09b7eca589 --- SDK/src/NDK/Systems/RenderSystem.cpp | 4 ++++ include/Nazara/Graphics/DepthRenderTechnique.hpp | 1 + src/Nazara/Graphics/DepthRenderTechnique.cpp | 5 ++++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/SDK/src/NDK/Systems/RenderSystem.cpp b/SDK/src/NDK/Systems/RenderSystem.cpp index 829d2b398..7b90761b6 100644 --- a/SDK/src/NDK/Systems/RenderSystem.cpp +++ b/SDK/src/NDK/Systems/RenderSystem.cpp @@ -4,6 +4,7 @@ #include #include +#include #include #include #include @@ -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_View, Nz::Matrix4f::ViewMatrix(lightNode.GetRotation() * Nz::Vector3f::Forward() * 100.f, lightNode.GetRotation())); + m_shadowTechnique.Clear(dummySceneData); m_shadowTechnique.Draw(dummySceneData); } } @@ -233,6 +235,7 @@ namespace Ndk graphicsComponent.AddToRenderQueue(renderQueue); } + m_shadowTechnique.Clear(dummySceneData); m_shadowTechnique.Draw(dummySceneData); } break; @@ -260,6 +263,7 @@ namespace Ndk graphicsComponent.AddToRenderQueue(renderQueue); } + m_shadowTechnique.Clear(dummySceneData); m_shadowTechnique.Draw(dummySceneData); break; } diff --git a/include/Nazara/Graphics/DepthRenderTechnique.hpp b/include/Nazara/Graphics/DepthRenderTechnique.hpp index 0b265ccc3..ac75f7e52 100644 --- a/include/Nazara/Graphics/DepthRenderTechnique.hpp +++ b/include/Nazara/Graphics/DepthRenderTechnique.hpp @@ -24,6 +24,7 @@ namespace Nz DepthRenderTechnique(); ~DepthRenderTechnique() = default; + void Clear(const SceneData& sceneData) const override; bool Draw(const SceneData& sceneData) const override; AbstractRenderQueue* GetRenderQueue() override; diff --git a/src/Nazara/Graphics/DepthRenderTechnique.cpp b/src/Nazara/Graphics/DepthRenderTechnique.cpp index 107043bce..1b2dc03f1 100644 --- a/src/Nazara/Graphics/DepthRenderTechnique.cpp +++ b/src/Nazara/Graphics/DepthRenderTechnique.cpp @@ -48,7 +48,7 @@ namespace Nz 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_DepthWrite, true); @@ -57,7 +57,10 @@ namespace Nz // Just in case the background does render depth if (sceneData.background) sceneData.background->Draw(sceneData.viewer); + } + bool DepthRenderTechnique::Draw(const SceneData& sceneData) const + { for (auto& pair : m_renderQueue.layers) { ForwardRenderQueue::Layer& layer = pair.second;