Graphics/Material: Add EnableVertexColor temporary
This commit is contained in:
parent
b2185f2138
commit
41e2d3e448
|
|
@ -83,6 +83,7 @@ namespace Nz
|
||||||
inline void EnableShadowCasting(bool castShadows);
|
inline void EnableShadowCasting(bool castShadows);
|
||||||
inline void EnableShadowReceive(bool receiveShadows);
|
inline void EnableShadowReceive(bool receiveShadows);
|
||||||
inline void EnableStencilTest(bool stencilTest);
|
inline void EnableStencilTest(bool stencilTest);
|
||||||
|
inline void EnableVertexColor(bool vertexColor);
|
||||||
|
|
||||||
inline void EnsurePipelineUpdate() const;
|
inline void EnsurePipelineUpdate() const;
|
||||||
|
|
||||||
|
|
@ -121,6 +122,7 @@ namespace Nz
|
||||||
inline bool HasHeightMap() const;
|
inline bool HasHeightMap() const;
|
||||||
inline bool HasNormalMap() const;
|
inline bool HasNormalMap() const;
|
||||||
inline bool HasSpecularMap() const;
|
inline bool HasSpecularMap() const;
|
||||||
|
inline bool HasVertexColor() const;
|
||||||
|
|
||||||
inline bool IsAlphaTestEnabled() const;
|
inline bool IsAlphaTestEnabled() const;
|
||||||
inline bool IsBlendingEnabled() const;
|
inline bool IsBlendingEnabled() const;
|
||||||
|
|
|
||||||
|
|
@ -392,6 +392,25 @@ namespace Nz
|
||||||
InvalidatePipeline();
|
InvalidatePipeline();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Enable/Disable vertex coloring on this material
|
||||||
|
*
|
||||||
|
* This is a temporary option, until the new material pipeline system is ready, allowing to enable vertex coloring.
|
||||||
|
* This option only works with meshes using vertex colors.
|
||||||
|
*
|
||||||
|
* \param vertexColor Defines if this material will use vertex color or not
|
||||||
|
*
|
||||||
|
* \remark Invalidates the pipeline
|
||||||
|
*
|
||||||
|
* \see HasVertexColor
|
||||||
|
*/
|
||||||
|
inline void Material::EnableVertexColor(bool vertexColor)
|
||||||
|
{
|
||||||
|
m_pipelineInfo.hasVertexColor = vertexColor;
|
||||||
|
|
||||||
|
InvalidatePipeline();
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Ensures the pipeline gets updated
|
* \brief Ensures the pipeline gets updated
|
||||||
*
|
*
|
||||||
|
|
@ -756,6 +775,15 @@ namespace Nz
|
||||||
return m_specularMap.IsValid();
|
return m_specularMap.IsValid();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Checks whether this material uses vertex coloring
|
||||||
|
* \return true If it is the case
|
||||||
|
*/
|
||||||
|
inline bool Material::HasVertexColor() const
|
||||||
|
{
|
||||||
|
return m_pipelineInfo.hasVertexColor;
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Checks whether this material has alpha test enabled
|
* \brief Checks whether this material has alpha test enabled
|
||||||
* \return true If it is the case
|
* \return true If it is the case
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,7 @@ namespace Nz
|
||||||
bool hasHeightMap = false;
|
bool hasHeightMap = false;
|
||||||
bool hasNormalMap = false;
|
bool hasNormalMap = false;
|
||||||
bool hasSpecularMap = false;
|
bool hasSpecularMap = false;
|
||||||
|
bool hasVertexColor = false;
|
||||||
bool reflectionMapping = false;
|
bool reflectionMapping = false;
|
||||||
bool shadowReceive = true;
|
bool shadowReceive = true;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -71,6 +71,7 @@ namespace Nz
|
||||||
NazaraPipelineBoolMember(hasHeightMap);
|
NazaraPipelineBoolMember(hasHeightMap);
|
||||||
NazaraPipelineBoolMember(hasNormalMap);
|
NazaraPipelineBoolMember(hasNormalMap);
|
||||||
NazaraPipelineBoolMember(hasSpecularMap);
|
NazaraPipelineBoolMember(hasSpecularMap);
|
||||||
|
NazaraPipelineBoolMember(hasVertexColor);
|
||||||
NazaraPipelineBoolMember(reflectionMapping);
|
NazaraPipelineBoolMember(reflectionMapping);
|
||||||
NazaraPipelineBoolMember(shadowReceive);
|
NazaraPipelineBoolMember(shadowReceive);
|
||||||
|
|
||||||
|
|
@ -127,6 +128,7 @@ namespace std
|
||||||
NazaraPipelineBoolMember(hasHeightMap);
|
NazaraPipelineBoolMember(hasHeightMap);
|
||||||
NazaraPipelineBoolMember(hasNormalMap);
|
NazaraPipelineBoolMember(hasNormalMap);
|
||||||
NazaraPipelineBoolMember(hasSpecularMap);
|
NazaraPipelineBoolMember(hasSpecularMap);
|
||||||
|
NazaraPipelineBoolMember(hasVertexColor);
|
||||||
NazaraPipelineBoolMember(reflectionMapping);
|
NazaraPipelineBoolMember(reflectionMapping);
|
||||||
NazaraPipelineBoolMember(shadowReceive);
|
NazaraPipelineBoolMember(shadowReceive);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -98,7 +98,7 @@ namespace Nz
|
||||||
list.SetParameter("FLAG_DEFERRED", static_cast<bool>((flags & ShaderFlags_Deferred) != 0));
|
list.SetParameter("FLAG_DEFERRED", static_cast<bool>((flags & ShaderFlags_Deferred) != 0));
|
||||||
list.SetParameter("FLAG_INSTANCING", static_cast<bool>((flags & ShaderFlags_Instancing) != 0));
|
list.SetParameter("FLAG_INSTANCING", static_cast<bool>((flags & ShaderFlags_Instancing) != 0));
|
||||||
list.SetParameter("FLAG_TEXTUREOVERLAY", static_cast<bool>((flags & ShaderFlags_TextureOverlay) != 0));
|
list.SetParameter("FLAG_TEXTUREOVERLAY", static_cast<bool>((flags & ShaderFlags_TextureOverlay) != 0));
|
||||||
list.SetParameter("FLAG_VERTEXCOLOR", static_cast<bool>((flags & ShaderFlags_VertexColor) != 0));
|
list.SetParameter("FLAG_VERTEXCOLOR", m_pipelineInfo.hasVertexColor || static_cast<bool>((flags & ShaderFlags_VertexColor) != 0));
|
||||||
|
|
||||||
Instance& instance = m_instances[flags];
|
Instance& instance = m_instances[flags];
|
||||||
instance.uberInstance = m_pipelineInfo.uberShader->Get(list);
|
instance.uberInstance = m_pipelineInfo.uberShader->Get(list);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue