Graphics: Fix clear being parasited by scissor operations
This commit is contained in:
parent
d253ec1adc
commit
bf0b8e9c76
|
|
@ -85,6 +85,7 @@ namespace Nz
|
||||||
|
|
||||||
m_GBufferRTT->SetColorTargets({0, 1, 2}); // G-Buffer
|
m_GBufferRTT->SetColorTargets({0, 1, 2}); // G-Buffer
|
||||||
Renderer::SetTarget(m_GBufferRTT);
|
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::SetViewport(Recti(0, 0, m_dimensions.x, m_dimensions.y));
|
||||||
|
|
||||||
Renderer::SetRenderStates(m_clearStates);
|
Renderer::SetRenderStates(m_clearStates);
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@
|
||||||
#include <Nazara/Graphics/DepthRenderTechnique.hpp>
|
#include <Nazara/Graphics/DepthRenderTechnique.hpp>
|
||||||
#include <Nazara/Core/ErrorFlags.hpp>
|
#include <Nazara/Core/ErrorFlags.hpp>
|
||||||
#include <Nazara/Core/OffsetOf.hpp>
|
#include <Nazara/Core/OffsetOf.hpp>
|
||||||
|
#include <Nazara/Graphics/AbstractBackground.hpp>
|
||||||
#include <Nazara/Graphics/AbstractViewer.hpp>
|
#include <Nazara/Graphics/AbstractViewer.hpp>
|
||||||
#include <Nazara/Graphics/Drawable.hpp>
|
#include <Nazara/Graphics/Drawable.hpp>
|
||||||
#include <Nazara/Graphics/Material.hpp>
|
#include <Nazara/Graphics/Material.hpp>
|
||||||
|
|
@ -63,15 +64,20 @@ namespace Nz
|
||||||
* \param sceneData Data of the scene
|
* \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_DepthBuffer, true);
|
||||||
Renderer::Enable(RendererParameter_DepthWrite, true);
|
Renderer::Enable(RendererParameter_DepthWrite, true);
|
||||||
Renderer::Clear(RendererBuffer_Depth);
|
Renderer::Clear(RendererBuffer_Depth);
|
||||||
|
|
||||||
// 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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
|
||||||
|
|
@ -69,6 +69,11 @@ namespace Nz
|
||||||
|
|
||||||
void ForwardRenderTechnique::Clear(const SceneData& sceneData) const
|
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_DepthBuffer, true);
|
||||||
Renderer::Enable(RendererParameter_DepthWrite, true);
|
Renderer::Enable(RendererParameter_DepthWrite, true);
|
||||||
Renderer::Clear(RendererBuffer_Depth);
|
Renderer::Clear(RendererBuffer_Depth);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue