Renamed depth test to depth buffer

Because disabling depth test also disable depth write


Former-commit-id: 0e0b3353c309fb1d702d030accc4349f1f0c6d96
This commit is contained in:
Lynix 2013-05-21 16:16:36 +02:00
parent 3ff5761703
commit 0717823b0e
7 changed files with 58 additions and 119 deletions

View File

@ -30,15 +30,16 @@ class NAZARA_API NzDebugDrawer
//static void DrawNormals(const NzSubMesh* subMesh); //static void DrawNormals(const NzSubMesh* subMesh);
//static void DrawTangents(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 GetLineWidth();
static float GetPointSize(); static float GetPointSize();
static NzColor GetPrimaryColor(); static NzColor GetPrimaryColor();
static NzColor GetSecondaryColor(); static NzColor GetSecondaryColor();
static void SetDepthTest(bool shouldTest); static bool Initialize();
static bool IsDepthBufferEnabled();
static void SetLineWidth(float width); static void SetLineWidth(float width);
static void SetPointSize(float size); static void SetPointSize(float size);
static void SetPrimaryColor(const NzColor& color); static void SetPrimaryColor(const NzColor& color);

View File

@ -110,7 +110,7 @@ enum nzRendererParameter
{ {
nzRendererParameter_Blend, nzRendererParameter_Blend,
nzRendererParameter_ColorWrite, nzRendererParameter_ColorWrite,
nzRendererParameter_DepthTest, nzRendererParameter_DepthBuffer,
nzRendererParameter_DepthWrite, nzRendererParameter_DepthWrite,
nzRendererParameter_FaceCulling, nzRendererParameter_FaceCulling,
nzRendererParameter_ScissorTest, nzRendererParameter_ScissorTest,

View File

@ -47,7 +47,7 @@ class NAZARA_API NzMaterial : public NzResource
void EnableAlphaBlending(bool alphaBlending); void EnableAlphaBlending(bool alphaBlending);
void EnableFaceCulling(bool faceCulling); void EnableFaceCulling(bool faceCulling);
void EnableLighting(bool lighting); void EnableLighting(bool lighting);
void EnableZTest(bool zTest); void EnableZBuffer(bool zBuffer);
void EnableZWrite(bool zWrite); void EnableZWrite(bool zWrite);
NzColor GetAmbientColor() const; NzColor GetAmbientColor() const;
@ -77,7 +77,7 @@ class NAZARA_API NzMaterial : public NzResource
bool IsAlphaBlendingEnabled() const; bool IsAlphaBlendingEnabled() const;
bool IsFaceCullingEnabled() const; bool IsFaceCullingEnabled() const;
bool IsLightingEnabled() const; bool IsLightingEnabled() const;
bool IsZTestEnabled() const; bool IsZBufferEnabled() const;
bool IsZWriteEnabled() const; bool IsZWriteEnabled() const;
bool LoadFromFile(const NzString& filePath, const NzMaterialParams& params = NzMaterialParams()); bool LoadFromFile(const NzString& filePath, const NzMaterialParams& params = NzMaterialParams());
@ -140,7 +140,7 @@ class NAZARA_API NzMaterial : public NzResource
bool m_alphaBlendingEnabled; bool m_alphaBlendingEnabled;
bool m_faceCullingEnabled; bool m_faceCullingEnabled;
bool m_lightingEnabled; bool m_lightingEnabled;
bool m_zTestEnabled; bool m_zBufferEnabled;
bool m_zWriteEnabled; bool m_zWriteEnabled;
float m_shininess; float m_shininess;

View File

@ -211,7 +211,7 @@ void NzSkyboxBackground::Draw(const NzScene* scene) const
skyboxMatrix.SetTranslation(NzVector3f::Zero()); skyboxMatrix.SetTranslation(NzVector3f::Zero());
NzRenderer::Enable(nzRendererParameter_Blend, false); NzRenderer::Enable(nzRendererParameter_Blend, false);
NzRenderer::Enable(nzRendererParameter_DepthTest, false); NzRenderer::Enable(nzRendererParameter_DepthBuffer, false);
NzRenderer::Enable(nzRendererParameter_FaceCulling, true); NzRenderer::Enable(nzRendererParameter_FaceCulling, true);
NzRenderer::SetDepthFunc(nzRendererComparison_Less); NzRenderer::SetDepthFunc(nzRendererComparison_Less);

View File

@ -24,7 +24,7 @@ namespace
static const NzShader* shader = nullptr; static const NzShader* shader = nullptr;
static NzVertexBuffer* vertexBuffer = nullptr; static NzVertexBuffer* vertexBuffer = nullptr;
static NzVertexDeclaration* vertexDeclaration = nullptr; static NzVertexDeclaration* vertexDeclaration = nullptr;
static bool depthTest = true; static bool depthBufferEnabled = true;
static bool initialized = false; static bool initialized = false;
static float lineWidth = 1.5f; static float lineWidth = 1.5f;
static float pointSize = 3.f; static float pointSize = 3.f;
@ -128,29 +128,14 @@ void NzDebugDrawer::Draw(const NzCubef& cube)
mapper.Unmap(); mapper.Unmap();
const NzShader* oldShader = NzRenderer::GetShader(); NzRenderer::Enable(nzRendererParameter_DepthBuffer, depthBufferEnabled);
NzRenderer::SetShader(shader);
bool depthTestActive = NzRenderer::IsEnabled(nzRendererParameter_DepthTest);
if (depthTestActive != depthTest)
NzRenderer::Enable(nzRendererParameter_DepthTest, depthTest);
float oldLineWidth = NzRenderer::GetLineWidth();
NzRenderer::SetLineWidth(lineWidth); NzRenderer::SetLineWidth(lineWidth);
NzRenderer::SetShader(shader);
NzRenderer::SetVertexBuffer(vertexBuffer); NzRenderer::SetVertexBuffer(vertexBuffer);
shader->SendColor(colorLocation, primaryColor); shader->SendColor(colorLocation, primaryColor);
NzRenderer::DrawPrimitives(nzPrimitiveType_LineList, 0, 24); 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) void NzDebugDrawer::Draw(const NzCubeui& cube)
@ -231,29 +216,14 @@ void NzDebugDrawer::Draw(const NzFrustumf& frustum)
mapper.Unmap(); mapper.Unmap();
const NzShader* oldShader = NzRenderer::GetShader(); NzRenderer::Enable(nzRendererParameter_DepthBuffer, depthBufferEnabled);
NzRenderer::SetShader(shader);
bool depthTestActive = NzRenderer::IsEnabled(nzRendererParameter_DepthTest);
if (depthTestActive != depthTest)
NzRenderer::Enable(nzRendererParameter_DepthTest, depthTest);
float oldLineWidth = NzRenderer::GetLineWidth();
NzRenderer::SetLineWidth(lineWidth); NzRenderer::SetLineWidth(lineWidth);
NzRenderer::SetShader(shader);
NzRenderer::SetVertexBuffer(vertexBuffer); NzRenderer::SetVertexBuffer(vertexBuffer);
shader->SendColor(colorLocation, primaryColor); shader->SendColor(colorLocation, primaryColor);
NzRenderer::DrawPrimitives(nzPrimitiveType_LineList, 0, 24); 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) void NzDebugDrawer::Draw(const NzOrientedCubef& orientedCube)
@ -329,29 +299,14 @@ void NzDebugDrawer::Draw(const NzOrientedCubef& orientedCube)
mapper.Unmap(); mapper.Unmap();
const NzShader* oldShader = NzRenderer::GetShader(); NzRenderer::Enable(nzRendererParameter_DepthBuffer, depthBufferEnabled);
NzRenderer::SetShader(shader);
bool depthTestActive = NzRenderer::IsEnabled(nzRendererParameter_DepthTest);
if (depthTestActive != depthTest)
NzRenderer::Enable(nzRendererParameter_DepthTest, depthTest);
float oldLineWidth = NzRenderer::GetLineWidth();
NzRenderer::SetLineWidth(lineWidth); NzRenderer::SetLineWidth(lineWidth);
NzRenderer::SetShader(shader);
NzRenderer::SetVertexBuffer(vertexBuffer); NzRenderer::SetVertexBuffer(vertexBuffer);
shader->SendColor(colorLocation, primaryColor); shader->SendColor(colorLocation, primaryColor);
NzRenderer::DrawPrimitives(nzPrimitiveType_LineList, 0, 24); 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) void NzDebugDrawer::Draw(const NzSkeleton* skeleton)
@ -393,35 +348,17 @@ void NzDebugDrawer::Draw(const NzSkeleton* skeleton)
if (vertexCount > 0) if (vertexCount > 0)
{ {
const NzShader* oldShader = NzRenderer::GetShader(); NzRenderer::Enable(nzRendererParameter_DepthBuffer, depthBufferEnabled);
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::SetLineWidth(lineWidth); NzRenderer::SetLineWidth(lineWidth);
NzRenderer::SetPointSize(pointSize);
NzRenderer::SetShader(shader);
NzRenderer::SetVertexBuffer(vertexBuffer);
shader->SendColor(colorLocation, primaryColor); shader->SendColor(colorLocation, primaryColor);
NzRenderer::DrawPrimitives(nzPrimitiveType_LineList, 0, vertexCount); NzRenderer::DrawPrimitives(nzPrimitiveType_LineList, 0, vertexCount);
float oldPointSize = NzRenderer::GetPointSize();
NzRenderer::SetPointSize(pointSize);
shader->SendColor(colorLocation, secondaryColor); shader->SendColor(colorLocation, secondaryColor);
NzRenderer::DrawPrimitives(nzPrimitiveType_PointList, 0, vertexCount); 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() bool NzDebugDrawer::Initialize()
{ {
if (!initialized) if (!initialized)
@ -612,34 +575,9 @@ bool NzDebugDrawer::Initialize()
return true; return true;
} }
bool NzDebugDrawer::GetDepthTest() bool NzDebugDrawer::IsDepthBufferEnabled()
{ {
return depthTest; return depthBufferEnabled;
}
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;
} }
void NzDebugDrawer::SetLineWidth(float width) void NzDebugDrawer::SetLineWidth(float width)

View File

@ -155,14 +155,14 @@ void NzMaterial::Apply(const NzShader* shader) const
NzRenderer::SetFaceFilling(m_faceFilling); 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::Enable(nzRendererParameter_DepthWrite, m_zWriteEnabled);
NzRenderer::SetDepthFunc(m_zTestCompareFunc); NzRenderer::SetDepthFunc(m_zTestCompareFunc);
} }
else else
NzRenderer::Enable(nzRendererParameter_DepthTest, false); NzRenderer::Enable(nzRendererParameter_DepthBuffer, false);
} }
void NzMaterial::EnableAlphaBlending(bool alphaBlending) void NzMaterial::EnableAlphaBlending(bool alphaBlending)
@ -184,9 +184,9 @@ void NzMaterial::EnableLighting(bool lighting)
m_shaderFlags &= ~nzShaderFlags_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) void NzMaterial::EnableZWrite(bool zWrite)
@ -314,9 +314,9 @@ bool NzMaterial::IsLightingEnabled() const
return m_lightingEnabled; return m_lightingEnabled;
} }
bool NzMaterial::IsZTestEnabled() const bool NzMaterial::IsZBufferEnabled() const
{ {
return m_zTestEnabled; return m_zBufferEnabled;
} }
bool NzMaterial::IsZWriteEnabled() const bool NzMaterial::IsZWriteEnabled() const
@ -363,8 +363,8 @@ void NzMaterial::Reset()
m_specularColor = NzColor::White; m_specularColor = NzColor::White;
m_specularSampler = NzTextureSampler(); m_specularSampler = NzTextureSampler();
m_srcBlend = nzBlendFunc_One; m_srcBlend = nzBlendFunc_One;
m_zBufferEnabled = true;
m_zTestCompareFunc = nzRendererComparison_LessOrEqual; m_zTestCompareFunc = nzRendererComparison_LessOrEqual;
m_zTestEnabled = true;
m_zWriteEnabled = true; m_zWriteEnabled = true;
} }
@ -577,7 +577,7 @@ void NzMaterial::SetSrcBlend(nzBlendFunc func)
void NzMaterial::SetZTestCompare(nzRendererComparison compareFunc) void NzMaterial::SetZTestCompare(nzRendererComparison compareFunc)
{ {
m_zTestEnabled = compareFunc; m_zTestCompareFunc = compareFunc;
} }
NzMaterial& NzMaterial::operator=(const NzMaterial& material) NzMaterial& NzMaterial::operator=(const NzMaterial& material)

View File

@ -1035,7 +1035,7 @@ GLenum NzOpenGL::RendererParameter[nzRendererParameter_Max+1] =
{ {
GL_BLEND, // nzRendererParameter_Blend GL_BLEND, // nzRendererParameter_Blend
GL_NONE, // nzRendererParameter_ColorWrite GL_NONE, // nzRendererParameter_ColorWrite
GL_DEPTH_TEST, // nzRendererParameter_DepthTest GL_DEPTH_TEST, // nzRendererParameter_DepthBuffer
GL_NONE, // nzRendererParameter_DepthWrite GL_NONE, // nzRendererParameter_DepthWrite
GL_CULL_FACE, // nzRendererParameter_FaceCulling GL_CULL_FACE, // nzRendererParameter_FaceCulling
GL_SCISSOR_TEST, // nzRendererParameter_ScissorTest GL_SCISSOR_TEST, // nzRendererParameter_ScissorTest