Graphics/Material: Add depth material parameter
Former-commit-id: 980888e12e5d8c8cf280c6a62592068cfab49d2e
This commit is contained in:
parent
1398ed7ebc
commit
c0ee9d04b5
|
|
@ -71,6 +71,7 @@ class NAZARA_GRAPHICS_API NzMaterial : public NzRefCounted, public NzResource
|
|||
inline float GetAlphaThreshold() const;
|
||||
inline NzColor GetAmbientColor() const;
|
||||
inline nzRendererComparison GetDepthFunc() const;
|
||||
inline const NzMaterialRef& GetDepthMaterial() const;
|
||||
inline NzColor GetDiffuseColor() const;
|
||||
inline const NzTextureRef& GetDiffuseMap() const;
|
||||
inline NzTextureSampler& GetDiffuseSampler();
|
||||
|
|
@ -92,6 +93,7 @@ class NAZARA_GRAPHICS_API NzMaterial : public NzRefCounted, public NzResource
|
|||
inline nzBlendFunc GetSrcBlend() const;
|
||||
|
||||
inline bool HasAlphaMap() const;
|
||||
inline bool HasDepthMaterial() const;
|
||||
inline bool HasDiffuseMap() const;
|
||||
inline bool HasEmissiveMap() const;
|
||||
inline bool HasHeightMap() const;
|
||||
|
|
@ -117,6 +119,7 @@ class NAZARA_GRAPHICS_API NzMaterial : public NzRefCounted, public NzResource
|
|||
inline void SetAlphaThreshold(float alphaThreshold);
|
||||
inline void SetAmbientColor(const NzColor& ambient);
|
||||
inline void SetDepthFunc(nzRendererComparison depthFunc);
|
||||
inline void SetDepthMaterial(NzMaterialRef depthMaterial);
|
||||
inline void SetDiffuseColor(const NzColor& diffuse);
|
||||
inline bool SetDiffuseMap(const NzString& textureName);
|
||||
inline void SetDiffuseMap(NzTextureRef diffuseMap);
|
||||
|
|
@ -167,6 +170,7 @@ class NAZARA_GRAPHICS_API NzMaterial : public NzRefCounted, public NzResource
|
|||
NzColor m_ambientColor;
|
||||
NzColor m_diffuseColor;
|
||||
NzColor m_specularColor;
|
||||
NzMaterialRef m_depthMaterial; //< Materialception
|
||||
NzRenderStates m_states;
|
||||
NzTextureSampler m_diffuseSampler;
|
||||
NzTextureSampler m_specularSampler;
|
||||
|
|
|
|||
|
|
@ -89,6 +89,11 @@ inline nzRendererComparison NzMaterial::GetDepthFunc() const
|
|||
return m_states.depthFunc;
|
||||
}
|
||||
|
||||
inline const NzMaterialRef& NzMaterial::GetDepthMaterial() const
|
||||
{
|
||||
return m_depthMaterial;
|
||||
}
|
||||
|
||||
inline NzColor NzMaterial::GetDiffuseColor() const
|
||||
{
|
||||
return m_diffuseColor;
|
||||
|
|
@ -193,6 +198,11 @@ inline bool NzMaterial::HasAlphaMap() const
|
|||
return m_alphaMap.IsValid();
|
||||
}
|
||||
|
||||
inline bool NzMaterial::HasDepthMaterial() const
|
||||
{
|
||||
return m_depthMaterial.IsValid();
|
||||
}
|
||||
|
||||
inline bool NzMaterial::HasDiffuseMap() const
|
||||
{
|
||||
return m_diffuseMap.IsValid();
|
||||
|
|
@ -306,6 +316,11 @@ inline void NzMaterial::SetDepthFunc(nzRendererComparison depthFunc)
|
|||
m_states.depthFunc = depthFunc;
|
||||
}
|
||||
|
||||
inline void NzMaterial::SetDepthMaterial(NzMaterialRef depthMaterial)
|
||||
{
|
||||
m_depthMaterial = std::move(depthMaterial);
|
||||
}
|
||||
|
||||
inline void NzMaterial::SetDiffuseColor(const NzColor& diffuse)
|
||||
{
|
||||
m_diffuseColor = diffuse;
|
||||
|
|
|
|||
|
|
@ -125,6 +125,7 @@ void NzMaterial::Reset()
|
|||
OnMaterialReset(this);
|
||||
|
||||
m_alphaMap.Reset();
|
||||
m_depthMaterial.Reset();
|
||||
m_diffuseMap.Reset();
|
||||
m_emissiveMap.Reset();
|
||||
m_heightMap.Reset();
|
||||
|
|
@ -173,16 +174,15 @@ void NzMaterial::Copy(const NzMaterial& material)
|
|||
m_states = material.m_states;
|
||||
m_transformEnabled = material.m_transformEnabled;
|
||||
|
||||
// Copie des références de texture
|
||||
m_alphaMap = material.m_alphaMap;
|
||||
m_diffuseMap = material.m_diffuseMap;
|
||||
m_emissiveMap = material.m_emissiveMap;
|
||||
m_heightMap = material.m_heightMap;
|
||||
m_normalMap = material.m_normalMap;
|
||||
m_specularMap = material.m_specularMap;
|
||||
|
||||
// Copie de la référence vers l'Über-Shader
|
||||
m_uberShader = material.m_uberShader;
|
||||
// Copying resources refs
|
||||
m_alphaMap = material.m_alphaMap;
|
||||
m_depthMaterial = material.m_depthMaterial;
|
||||
m_diffuseMap = material.m_diffuseMap;
|
||||
m_emissiveMap = material.m_emissiveMap;
|
||||
m_heightMap = material.m_heightMap;
|
||||
m_normalMap = material.m_normalMap;
|
||||
m_specularMap = material.m_specularMap;
|
||||
m_uberShader = material.m_uberShader;
|
||||
|
||||
// On copie les instances de shader par la même occasion
|
||||
std::memcpy(&m_shaders[0], &material.m_shaders[0], (nzShaderFlags_Max+1)*sizeof(ShaderInstance));
|
||||
|
|
|
|||
Loading…
Reference in New Issue