Moved variadic templates arguments first in ShadowCommandBuffer to fix compilation with visual studio

This commit is contained in:
Elderme 2016-01-28 15:21:18 +01:00
parent c82ff61cf4
commit 1ba19948f6
3 changed files with 8 additions and 8 deletions

View File

@ -454,10 +454,10 @@ public:
* \param cascade The cascade id (see cascading shadow maps)
*/
template<typename T, typename...Uniforms>
void drawIndirect(Uniforms ...uniforms, unsigned cascade) const
void drawIndirect(unsigned cascade, Uniforms ...uniforms) const
{
T::InstancedShadowPassShader::getInstance()->use();
T::InstancedShadowPassShader::getInstance()->setUniforms(uniforms..., cascade);
T::InstancedShadowPassShader::getInstance()->setUniforms(cascade, uniforms...);
glBindVertexArray(VAOManager::getInstance()->getInstanceVAO(T::VertexType,
InstanceTypeShadow));
@ -487,14 +487,14 @@ public:
* \param cascade The cascade id (see cascading shadow maps)
*/
template<typename T, typename...Uniforms>
void multidrawShadow(Uniforms ...uniforms, unsigned cascade) const
void multidrawShadow(unsigned cascade, Uniforms ...uniforms) const
{
int material_id = T::MaterialType + cascade * Material::SHADERTYPE_COUNT;
if (m_size[material_id])
{
T::InstancedShadowPassShader::getInstance()->use();
T::InstancedShadowPassShader::getInstance()->setUniforms(uniforms..., cascade);
T::InstancedShadowPassShader::getInstance()->setUniforms(cascade, uniforms...);
glBindVertexArray(VAOManager::getInstance()->getInstanceVAO(T::VertexType,
InstanceTypeShadow));

View File

@ -659,7 +659,7 @@ void DrawCalls::drawIndirectShadows(unsigned cascade) const
m_shadow_cmd_buffer.drawIndirect<DetailMat>(cascade);
m_shadow_cmd_buffer.drawIndirect<AlphaRef>(cascade);
m_shadow_cmd_buffer.drawIndirect<UnlitMat>(cascade);
m_shadow_cmd_buffer.drawIndirect<GrassMat,irr::core::vector3df>(m_wind_dir, cascade);
m_shadow_cmd_buffer.drawIndirect<GrassMat,irr::core::vector3df>(cascade, m_wind_dir);
m_shadow_cmd_buffer.drawIndirect<NormalMat>(cascade);
m_shadow_cmd_buffer.drawIndirect<SplattingMat>(cascade);
m_shadow_cmd_buffer.drawIndirect<SphereMap>(cascade);
@ -678,7 +678,7 @@ void DrawCalls::multidrawShadows(unsigned cascade) const
m_shadow_cmd_buffer.multidrawShadow<NormalMat>(cascade);
m_shadow_cmd_buffer.multidrawShadow<AlphaRef>(cascade);
m_shadow_cmd_buffer.multidrawShadow<UnlitMat>(cascade);
m_shadow_cmd_buffer.multidrawShadow<GrassMat,irr::core::vector3df>(m_wind_dir, cascade);
m_shadow_cmd_buffer.multidrawShadow<GrassMat,irr::core::vector3df>(cascade, m_wind_dir);
m_shadow_cmd_buffer.multidrawShadow<SplattingMat>(cascade);
m_shadow_cmd_buffer.multidrawShadow<SphereMap>(cascade);
}

View File

@ -522,7 +522,7 @@ public:
// ============================================================================
class InstancedGrassShadowShader : public TextureShader<InstancedGrassShadowShader, 1,
core::vector3df, int>
int, core::vector3df>
{
public:
InstancedGrassShadowShader()
@ -545,7 +545,7 @@ public:
}
assignSamplerNames(0, "tex", ST_TRILINEAR_ANISOTROPIC_FILTERED);
assignUniforms("windDir", "layer");
assignUniforms("layer", "windDir");
} // InstancedGrassShadowShader
}; // InstancedGrassShadowShader