Graphics: Fix clear being parasited by scissor operations

This commit is contained in:
Lynix 2018-04-15 02:31:51 +02:00
parent d253ec1adc
commit bf0b8e9c76
3 changed files with 15 additions and 3 deletions

View File

@ -85,6 +85,7 @@ namespace Nz
m_GBufferRTT->SetColorTargets({0, 1, 2}); // G-Buffer
Renderer::SetTarget(m_GBufferRTT);
Renderer::SetScissorRect(Recti(0, 0, m_dimensions.x, m_dimensions.y));
Renderer::SetViewport(Recti(0, 0, m_dimensions.x, m_dimensions.y));
Renderer::SetRenderStates(m_clearStates);

View File

@ -5,6 +5,7 @@
#include <Nazara/Graphics/DepthRenderTechnique.hpp>
#include <Nazara/Core/ErrorFlags.hpp>
#include <Nazara/Core/OffsetOf.hpp>
#include <Nazara/Graphics/AbstractBackground.hpp>
#include <Nazara/Graphics/AbstractViewer.hpp>
#include <Nazara/Graphics/Drawable.hpp>
#include <Nazara/Graphics/Material.hpp>
@ -63,15 +64,20 @@ namespace Nz
* \param sceneData Data of the scene
*/
void DepthRenderTechnique::Clear(const SceneData& /*sceneData*/) const
void DepthRenderTechnique::Clear(const SceneData& sceneData) const
{
const RenderTarget* renderTarget = sceneData.viewer->GetTarget();
Recti fullscreenScissorRect = Recti(Vector2i(renderTarget->GetSize()));
Renderer::SetScissorRect(fullscreenScissorRect);
Renderer::Enable(RendererParameter_DepthBuffer, true);
Renderer::Enable(RendererParameter_DepthWrite, true);
Renderer::Clear(RendererBuffer_Depth);
// Just in case the background does render depth
//if (sceneData.background)
// sceneData.background->Draw(sceneData.viewer);
if (sceneData.background)
sceneData.background->Draw(sceneData.viewer);
}
/*!

View File

@ -69,6 +69,11 @@ namespace Nz
void ForwardRenderTechnique::Clear(const SceneData& sceneData) const
{
const RenderTarget* renderTarget = sceneData.viewer->GetTarget();
Recti fullscreenScissorRect = Recti(Vector2i(renderTarget->GetSize()));
Renderer::SetScissorRect(fullscreenScissorRect);
Renderer::Enable(RendererParameter_DepthBuffer, true);
Renderer::Enable(RendererParameter_DepthWrite, true);
Renderer::Clear(RendererBuffer_Depth);