diff --git a/include/Nazara/Renderer/DebugDrawer.hpp b/include/Nazara/Renderer/DebugDrawer.hpp index 8ac83d569..aa9d71156 100644 --- a/include/Nazara/Renderer/DebugDrawer.hpp +++ b/include/Nazara/Renderer/DebugDrawer.hpp @@ -30,15 +30,16 @@ class NAZARA_API NzDebugDrawer //static void DrawNormals(const NzSubMesh* subMesh); //static void DrawTangents(const NzSubMesh* subMesh); - static bool Initialize(); + static void EnableDepthBuffer(bool depthBuffer); - static bool GetDepthTest(); static float GetLineWidth(); static float GetPointSize(); static NzColor GetPrimaryColor(); static NzColor GetSecondaryColor(); - static void SetDepthTest(bool shouldTest); + static bool Initialize(); + static bool IsDepthBufferEnabled(); + static void SetLineWidth(float width); static void SetPointSize(float size); static void SetPrimaryColor(const NzColor& color); diff --git a/include/Nazara/Renderer/Enums.hpp b/include/Nazara/Renderer/Enums.hpp index 38b9d6508..6ab59c4ad 100644 --- a/include/Nazara/Renderer/Enums.hpp +++ b/include/Nazara/Renderer/Enums.hpp @@ -110,7 +110,7 @@ enum nzRendererParameter { nzRendererParameter_Blend, nzRendererParameter_ColorWrite, - nzRendererParameter_DepthTest, + nzRendererParameter_DepthBuffer, nzRendererParameter_DepthWrite, nzRendererParameter_FaceCulling, nzRendererParameter_ScissorTest, diff --git a/include/Nazara/Renderer/Material.hpp b/include/Nazara/Renderer/Material.hpp index 1e870c792..3595a1aa4 100644 --- a/include/Nazara/Renderer/Material.hpp +++ b/include/Nazara/Renderer/Material.hpp @@ -47,7 +47,7 @@ class NAZARA_API NzMaterial : public NzResource void EnableAlphaBlending(bool alphaBlending); void EnableFaceCulling(bool faceCulling); void EnableLighting(bool lighting); - void EnableZTest(bool zTest); + void EnableZBuffer(bool zBuffer); void EnableZWrite(bool zWrite); NzColor GetAmbientColor() const; @@ -77,7 +77,7 @@ class NAZARA_API NzMaterial : public NzResource bool IsAlphaBlendingEnabled() const; bool IsFaceCullingEnabled() const; bool IsLightingEnabled() const; - bool IsZTestEnabled() const; + bool IsZBufferEnabled() const; bool IsZWriteEnabled() const; bool LoadFromFile(const NzString& filePath, const NzMaterialParams& params = NzMaterialParams()); @@ -140,7 +140,7 @@ class NAZARA_API NzMaterial : public NzResource bool m_alphaBlendingEnabled; bool m_faceCullingEnabled; bool m_lightingEnabled; - bool m_zTestEnabled; + bool m_zBufferEnabled; bool m_zWriteEnabled; float m_shininess; diff --git a/src/Nazara/Graphics/SkyboxBackground.cpp b/src/Nazara/Graphics/SkyboxBackground.cpp index 236246295..6a5fc81af 100644 --- a/src/Nazara/Graphics/SkyboxBackground.cpp +++ b/src/Nazara/Graphics/SkyboxBackground.cpp @@ -211,7 +211,7 @@ void NzSkyboxBackground::Draw(const NzScene* scene) const skyboxMatrix.SetTranslation(NzVector3f::Zero()); NzRenderer::Enable(nzRendererParameter_Blend, false); - NzRenderer::Enable(nzRendererParameter_DepthTest, false); + NzRenderer::Enable(nzRendererParameter_DepthBuffer, false); NzRenderer::Enable(nzRendererParameter_FaceCulling, true); NzRenderer::SetDepthFunc(nzRendererComparison_Less); diff --git a/src/Nazara/Renderer/DebugDrawer.cpp b/src/Nazara/Renderer/DebugDrawer.cpp index 843d5e58e..c63316ea3 100644 --- a/src/Nazara/Renderer/DebugDrawer.cpp +++ b/src/Nazara/Renderer/DebugDrawer.cpp @@ -24,7 +24,7 @@ namespace static const NzShader* shader = nullptr; static NzVertexBuffer* vertexBuffer = nullptr; static NzVertexDeclaration* vertexDeclaration = nullptr; - static bool depthTest = true; + static bool depthBufferEnabled = true; static bool initialized = false; static float lineWidth = 1.5f; static float pointSize = 3.f; @@ -128,29 +128,14 @@ void NzDebugDrawer::Draw(const NzCubef& cube) mapper.Unmap(); - const NzShader* oldShader = NzRenderer::GetShader(); - - NzRenderer::SetShader(shader); - - bool depthTestActive = NzRenderer::IsEnabled(nzRendererParameter_DepthTest); - if (depthTestActive != depthTest) - NzRenderer::Enable(nzRendererParameter_DepthTest, depthTest); - - float oldLineWidth = NzRenderer::GetLineWidth(); + NzRenderer::Enable(nzRendererParameter_DepthBuffer, depthBufferEnabled); NzRenderer::SetLineWidth(lineWidth); - + NzRenderer::SetShader(shader); NzRenderer::SetVertexBuffer(vertexBuffer); shader->SendColor(colorLocation, primaryColor); NzRenderer::DrawPrimitives(nzPrimitiveType_LineList, 0, 24); - - NzRenderer::SetLineWidth(oldLineWidth); - - if (depthTestActive != depthTest) - NzRenderer::Enable(nzRendererParameter_DepthTest, depthTestActive); - - NzRenderer::SetShader(oldShader); } void NzDebugDrawer::Draw(const NzCubeui& cube) @@ -231,29 +216,14 @@ void NzDebugDrawer::Draw(const NzFrustumf& frustum) mapper.Unmap(); - const NzShader* oldShader = NzRenderer::GetShader(); - - NzRenderer::SetShader(shader); - - bool depthTestActive = NzRenderer::IsEnabled(nzRendererParameter_DepthTest); - if (depthTestActive != depthTest) - NzRenderer::Enable(nzRendererParameter_DepthTest, depthTest); - - float oldLineWidth = NzRenderer::GetLineWidth(); + NzRenderer::Enable(nzRendererParameter_DepthBuffer, depthBufferEnabled); NzRenderer::SetLineWidth(lineWidth); - + NzRenderer::SetShader(shader); NzRenderer::SetVertexBuffer(vertexBuffer); shader->SendColor(colorLocation, primaryColor); NzRenderer::DrawPrimitives(nzPrimitiveType_LineList, 0, 24); - - NzRenderer::SetLineWidth(oldLineWidth); - - if (depthTestActive != depthTest) - NzRenderer::Enable(nzRendererParameter_DepthTest, depthTestActive); - - NzRenderer::SetShader(oldShader); } void NzDebugDrawer::Draw(const NzOrientedCubef& orientedCube) @@ -329,29 +299,14 @@ void NzDebugDrawer::Draw(const NzOrientedCubef& orientedCube) mapper.Unmap(); - const NzShader* oldShader = NzRenderer::GetShader(); - - NzRenderer::SetShader(shader); - - bool depthTestActive = NzRenderer::IsEnabled(nzRendererParameter_DepthTest); - if (depthTestActive != depthTest) - NzRenderer::Enable(nzRendererParameter_DepthTest, depthTest); - - float oldLineWidth = NzRenderer::GetLineWidth(); + NzRenderer::Enable(nzRendererParameter_DepthBuffer, depthBufferEnabled); NzRenderer::SetLineWidth(lineWidth); - + NzRenderer::SetShader(shader); NzRenderer::SetVertexBuffer(vertexBuffer); shader->SendColor(colorLocation, primaryColor); NzRenderer::DrawPrimitives(nzPrimitiveType_LineList, 0, 24); - - NzRenderer::SetLineWidth(oldLineWidth); - - if (depthTestActive != depthTest) - NzRenderer::Enable(nzRendererParameter_DepthTest, depthTestActive); - - NzRenderer::SetShader(oldShader); } void NzDebugDrawer::Draw(const NzSkeleton* skeleton) @@ -393,35 +348,17 @@ void NzDebugDrawer::Draw(const NzSkeleton* skeleton) if (vertexCount > 0) { - const NzShader* oldShader = NzRenderer::GetShader(); - - NzRenderer::SetShader(shader); - - bool depthTestActive = NzRenderer::IsEnabled(nzRendererParameter_DepthTest); - if (depthTestActive != depthTest) - NzRenderer::Enable(nzRendererParameter_DepthTest, depthTest); - - NzRenderer::SetVertexBuffer(vertexBuffer); - - float oldLineWidth = NzRenderer::GetLineWidth(); + NzRenderer::Enable(nzRendererParameter_DepthBuffer, depthBufferEnabled); NzRenderer::SetLineWidth(lineWidth); + NzRenderer::SetPointSize(pointSize); + NzRenderer::SetShader(shader); + NzRenderer::SetVertexBuffer(vertexBuffer); shader->SendColor(colorLocation, primaryColor); NzRenderer::DrawPrimitives(nzPrimitiveType_LineList, 0, vertexCount); - float oldPointSize = NzRenderer::GetPointSize(); - NzRenderer::SetPointSize(pointSize); - shader->SendColor(colorLocation, secondaryColor); NzRenderer::DrawPrimitives(nzPrimitiveType_PointList, 0, vertexCount); - - NzRenderer::SetLineWidth(oldLineWidth); - NzRenderer::SetPointSize(oldPointSize); - - if (depthTestActive != depthTest) - NzRenderer::Enable(nzRendererParameter_DepthTest, depthTestActive); - - NzRenderer::SetShader(oldShader); } } /* @@ -561,6 +498,32 @@ void NzDebugDrawer::DrawTangents(const NzSubMesh* subMesh) } } */ + +void NzDebugDrawer::EnableDepthBuffer(bool depthBuffer) +{ + depthBufferEnabled = depthBuffer; +} + +float NzDebugDrawer::GetLineWidth() +{ + return lineWidth; +} + +float NzDebugDrawer::GetPointSize() +{ + return pointSize; +} + +NzColor NzDebugDrawer::GetPrimaryColor() +{ + return primaryColor; +} + +NzColor NzDebugDrawer::GetSecondaryColor() +{ + return secondaryColor; +} + bool NzDebugDrawer::Initialize() { if (!initialized) @@ -612,34 +575,9 @@ bool NzDebugDrawer::Initialize() return true; } -bool NzDebugDrawer::GetDepthTest() +bool NzDebugDrawer::IsDepthBufferEnabled() { - return depthTest; -} - -float NzDebugDrawer::GetLineWidth() -{ - return lineWidth; -} - -float NzDebugDrawer::GetPointSize() -{ - return pointSize; -} - -NzColor NzDebugDrawer::GetPrimaryColor() -{ - return primaryColor; -} - -NzColor NzDebugDrawer::GetSecondaryColor() -{ - return secondaryColor; -} - -void NzDebugDrawer::SetDepthTest(bool shouldTest) -{ - depthTest = shouldTest; + return depthBufferEnabled; } void NzDebugDrawer::SetLineWidth(float width) diff --git a/src/Nazara/Renderer/Material.cpp b/src/Nazara/Renderer/Material.cpp index a6d140add..237478977 100644 --- a/src/Nazara/Renderer/Material.cpp +++ b/src/Nazara/Renderer/Material.cpp @@ -155,14 +155,14 @@ void NzMaterial::Apply(const NzShader* shader) const NzRenderer::SetFaceFilling(m_faceFilling); - if (m_zTestEnabled) + if (m_zBufferEnabled) { - NzRenderer::Enable(nzRendererParameter_DepthTest, true); + NzRenderer::Enable(nzRendererParameter_DepthBuffer, true); NzRenderer::Enable(nzRendererParameter_DepthWrite, m_zWriteEnabled); NzRenderer::SetDepthFunc(m_zTestCompareFunc); } else - NzRenderer::Enable(nzRendererParameter_DepthTest, false); + NzRenderer::Enable(nzRendererParameter_DepthBuffer, false); } void NzMaterial::EnableAlphaBlending(bool alphaBlending) @@ -184,9 +184,9 @@ void NzMaterial::EnableLighting(bool lighting) m_shaderFlags &= ~nzShaderFlags_Lighting; } -void NzMaterial::EnableZTest(bool zTest) +void NzMaterial::EnableZBuffer(bool zBuffer) { - m_zTestEnabled = zTest; + m_zBufferEnabled = zBuffer; } void NzMaterial::EnableZWrite(bool zWrite) @@ -314,9 +314,9 @@ bool NzMaterial::IsLightingEnabled() const return m_lightingEnabled; } -bool NzMaterial::IsZTestEnabled() const +bool NzMaterial::IsZBufferEnabled() const { - return m_zTestEnabled; + return m_zBufferEnabled; } bool NzMaterial::IsZWriteEnabled() const @@ -363,8 +363,8 @@ void NzMaterial::Reset() m_specularColor = NzColor::White; m_specularSampler = NzTextureSampler(); m_srcBlend = nzBlendFunc_One; + m_zBufferEnabled = true; m_zTestCompareFunc = nzRendererComparison_LessOrEqual; - m_zTestEnabled = true; m_zWriteEnabled = true; } @@ -577,7 +577,7 @@ void NzMaterial::SetSrcBlend(nzBlendFunc func) void NzMaterial::SetZTestCompare(nzRendererComparison compareFunc) { - m_zTestEnabled = compareFunc; + m_zTestCompareFunc = compareFunc; } NzMaterial& NzMaterial::operator=(const NzMaterial& material) diff --git a/src/Nazara/Renderer/OpenGL.cpp b/src/Nazara/Renderer/OpenGL.cpp index d5810dbca..b7a7c886d 100644 --- a/src/Nazara/Renderer/OpenGL.cpp +++ b/src/Nazara/Renderer/OpenGL.cpp @@ -1035,7 +1035,7 @@ GLenum NzOpenGL::RendererParameter[nzRendererParameter_Max+1] = { GL_BLEND, // nzRendererParameter_Blend GL_NONE, // nzRendererParameter_ColorWrite - GL_DEPTH_TEST, // nzRendererParameter_DepthTest + GL_DEPTH_TEST, // nzRendererParameter_DepthBuffer GL_NONE, // nzRendererParameter_DepthWrite GL_CULL_FACE, // nzRendererParameter_FaceCulling GL_SCISSOR_TEST, // nzRendererParameter_ScissorTest