Fixed Material not applying changes

Former-commit-id: 6e2f9a428213195360516ffcd8efd11b325e08a4
This commit is contained in:
Lynix 2013-01-30 01:38:02 +01:00
parent c87c63c685
commit 81f9f54688
1 changed files with 56 additions and 26 deletions

View File

@ -160,6 +160,9 @@ void NzMaterial::Apply() const
else else
NzRenderer::Enable(nzRendererParameter_Blend, false); NzRenderer::Enable(nzRendererParameter_Blend, false);
NzRenderer::SetFaceCulling(m_faceCulling);
NzRenderer::SetFaceFilling(m_faceFilling);
if (m_zTestEnabled) if (m_zTestEnabled)
{ {
NzRenderer::Enable(nzRendererParameter_DepthTest, true); NzRenderer::Enable(nzRendererParameter_DepthTest, true);
@ -382,6 +385,8 @@ void NzMaterial::SetDiffuseColor(const NzColor& diffuse)
} }
void NzMaterial::SetDiffuseMap(NzTexture* map) void NzMaterial::SetDiffuseMap(NzTexture* map)
{
if (m_diffuseMap != map)
{ {
if (m_diffuseMap) if (m_diffuseMap)
m_diffuseMap->RemoveResourceReference(); m_diffuseMap->RemoveResourceReference();
@ -389,6 +394,10 @@ void NzMaterial::SetDiffuseMap(NzTexture* map)
m_diffuseMap = map; m_diffuseMap = map;
if (m_diffuseMap) if (m_diffuseMap)
m_diffuseMap->AddResourceReference(); m_diffuseMap->AddResourceReference();
if (m_autoShader)
m_shader = nullptr; // Invalidation du shader
}
} }
void NzMaterial::SetDiffuseSampler(const NzTextureSampler& sampler) void NzMaterial::SetDiffuseSampler(const NzTextureSampler& sampler)
@ -412,6 +421,8 @@ void NzMaterial::SetFaceFilling(nzFaceFilling filling)
} }
void NzMaterial::SetHeightMap(NzTexture* map) void NzMaterial::SetHeightMap(NzTexture* map)
{
if (m_heightMap != map)
{ {
if (m_heightMap) if (m_heightMap)
m_heightMap->RemoveResourceReference(); m_heightMap->RemoveResourceReference();
@ -419,9 +430,15 @@ void NzMaterial::SetHeightMap(NzTexture* map)
m_heightMap = map; m_heightMap = map;
if (m_heightMap) if (m_heightMap)
m_heightMap->AddResourceReference(); m_heightMap->AddResourceReference();
if (m_autoShader)
m_shader = nullptr; // Invalidation du shader
}
} }
void NzMaterial::SetNormalMap(NzTexture* map) void NzMaterial::SetNormalMap(NzTexture* map)
{
if (m_normalMap != map)
{ {
if (m_normalMap) if (m_normalMap)
m_normalMap->RemoveResourceReference(); m_normalMap->RemoveResourceReference();
@ -429,9 +446,15 @@ void NzMaterial::SetNormalMap(NzTexture* map)
m_normalMap = map; m_normalMap = map;
if (m_normalMap) if (m_normalMap)
m_normalMap->AddResourceReference(); m_normalMap->AddResourceReference();
if (m_autoShader)
m_shader = nullptr; // Invalidation du shader
}
} }
void NzMaterial::SetShader(const NzShader* shader) void NzMaterial::SetShader(const NzShader* shader)
{
if (m_shader != shader)
{ {
if (m_shader) if (m_shader)
m_shader->RemoveResourceReference(); m_shader->RemoveResourceReference();
@ -441,6 +464,7 @@ void NzMaterial::SetShader(const NzShader* shader)
if (m_shader) if (m_shader)
m_shader->AddResourceReference(); m_shader->AddResourceReference();
} }
}
void NzMaterial::SetShininess(float shininess) void NzMaterial::SetShininess(float shininess)
{ {
@ -453,6 +477,8 @@ void NzMaterial::SetSpecularColor(const NzColor& specular)
} }
void NzMaterial::SetSpecularMap(NzTexture* map) void NzMaterial::SetSpecularMap(NzTexture* map)
{
if (m_specularMap != map)
{ {
if (m_specularMap) if (m_specularMap)
m_specularMap->RemoveResourceReference(); m_specularMap->RemoveResourceReference();
@ -460,6 +486,10 @@ void NzMaterial::SetSpecularMap(NzTexture* map)
m_specularMap = map; m_specularMap = map;
if (m_specularMap) if (m_specularMap)
m_specularMap->AddResourceReference(); m_specularMap->AddResourceReference();
if (m_autoShader)
m_shader = nullptr; // Invalidation du shader
}
} }
void NzMaterial::SetSpecularSampler(const NzTextureSampler& sampler) void NzMaterial::SetSpecularSampler(const NzTextureSampler& sampler)