Added face culling boolean to materials

Former-commit-id: ed651beb3545b85d5496bb5739c4caa9c81df8a3
This commit is contained in:
Lynix 2013-02-13 01:35:01 +01:00
parent 8134704d88
commit 43b5e493f6
2 changed files with 22 additions and 1 deletions

View File

@ -40,6 +40,7 @@ class NAZARA_API NzMaterial : public NzResource
void Apply() const;
void EnableAlphaBlending(bool alphaBlending);
void EnableFaceCulling(bool faceCulling);
void EnableLighting(bool lighting);
void EnableZTest(bool zTest);
void EnableZWrite(bool zWrite);
@ -64,6 +65,7 @@ class NAZARA_API NzMaterial : public NzResource
nzRendererComparison GetZTestCompare() const;
bool IsAlphaBlendingEnabled() const;
bool IsFaceCullingEnabled() const;
bool IsLightingEnabled() const;
bool IsZTestEnabled() const;
bool IsZWriteEnabled() const;
@ -116,6 +118,7 @@ class NAZARA_API NzMaterial : public NzResource
NzTexture* m_specularMap;
bool m_alphaBlendingEnabled;
bool m_autoShader;
bool m_faceCullingEnabled;
bool m_lightingEnabled;
bool m_zTestEnabled;
bool m_zWriteEnabled;

View File

@ -160,7 +160,14 @@ void NzMaterial::Apply() const
else
NzRenderer::Enable(nzRendererParameter_Blend, false);
NzRenderer::SetFaceCulling(m_faceCulling);
if (m_faceCullingEnabled)
{
NzRenderer::Enable(nzRendererParameter_FaceCulling, true);
NzRenderer::SetFaceCulling(m_faceCulling);
}
else
NzRenderer::Enable(nzRendererParameter_FaceCulling, false);
NzRenderer::SetFaceFilling(m_faceFilling);
if (m_zTestEnabled)
@ -178,6 +185,11 @@ void NzMaterial::EnableAlphaBlending(bool alphaBlending)
m_alphaBlendingEnabled = alphaBlending;
}
void NzMaterial::EnableFaceCulling(bool faceCulling)
{
m_faceCullingEnabled = faceCulling;
}
void NzMaterial::EnableLighting(bool lighting)
{
m_lightingEnabled = lighting;
@ -294,6 +306,11 @@ bool NzMaterial::IsAlphaBlendingEnabled() const
return m_alphaBlendingEnabled;
}
bool NzMaterial::IsFaceCullingEnabled() const
{
return m_faceCullingEnabled;
}
bool NzMaterial::IsLightingEnabled() const
{
return m_lightingEnabled;
@ -363,6 +380,7 @@ void NzMaterial::Reset()
m_diffuseSampler = NzTextureSampler();
m_dstBlend = nzBlendFunc_Zero;
m_faceCulling = nzFaceCulling_Back;
m_faceCullingEnabled = true;
m_faceFilling = nzFaceFilling_Fill;
m_lightingEnabled = true;
m_shininess = 50.f;