Removes redundant binding slot retrieving from CShaderProgram.

This was SVN commit r26585.
This commit is contained in:
Vladislav Belov 2022-03-06 21:17:24 +00:00
parent 8eecc39e71
commit db7894ff6b
3 changed files with 10 additions and 17 deletions

View File

@ -230,12 +230,8 @@ void CShaderUniforms::BindUniforms(const CShaderProgramPtr& shader) const
const std::vector<SItems::Item>& items = m_Items->items;
for (size_t i = 0; i < items.size(); ++i)
{
CShaderProgram::Binding binding = shader->GetUniformBinding(items[i].first);
if (binding.Active())
{
CVector4D v = items[i].second;
shader->Uniform(binding, v.X, v.Y, v.Z, v.W);
}
const CVector4D& v = items[i].second;
shader->Uniform(items[i].first, v.X, v.Y, v.Z, v.W);
}
}

View File

@ -512,7 +512,7 @@ public:
Binding GetTextureBinding(texture_id_t id) override
{
std::map<CStrIntern, std::pair<GLenum, int> >::iterator it = m_Samplers.find(CStrIntern(id));
std::map<CStrIntern, std::pair<GLenum, int>>::iterator it = m_Samplers.find(CStrIntern(id));
if (it == m_Samplers.end())
return Binding();
else
@ -521,7 +521,7 @@ public:
void BindTexture(texture_id_t id, GLuint tex) override
{
std::map<CStrIntern, std::pair<GLenum, int> >::iterator it = m_Samplers.find(CStrIntern(id));
std::map<CStrIntern, std::pair<GLenum, int>>::iterator it = m_Samplers.find(CStrIntern(id));
if (it == m_Samplers.end())
return;
@ -538,7 +538,7 @@ public:
Binding GetUniformBinding(uniform_id_t id) override
{
std::map<CStrIntern, std::pair<int, GLenum> >::iterator it = m_Uniforms.find(id);
std::map<CStrIntern, std::pair<int, GLenum>>::iterator it = m_Uniforms.find(id);
if (it == m_Uniforms.end())
return Binding();
else
@ -647,8 +647,8 @@ private:
GLhandleARB m_VertexShader;
GLhandleARB m_FragmentShader;
std::map<CStrIntern, std::pair<int, GLenum> > m_Uniforms;
std::map<CStrIntern, std::pair<GLenum, int> > m_Samplers; // texture target & unit chosen for each uniform sampler
std::map<CStrIntern, std::pair<int, GLenum>> m_Uniforms;
std::map<CStrIntern, std::pair<GLenum, int>> m_Samplers; // texture target & unit chosen for each uniform sampler
};
//////////////////////////////////////////////////////////////////////////

View File

@ -589,6 +589,8 @@ void ShaderModelRenderer::Render(
}
}
const double time = g_Renderer.GetTimeManager().GetGlobalTime();
{
PROFILE3("rendering bucketed submissions");
@ -722,12 +724,7 @@ void ShaderModelRenderer::Render(
CShaderRenderQueries::RenderQuery rq = renderQueries.GetItem(q);
if (rq.first == RQUERY_TIME)
{
CShaderProgram::Binding binding = shader->GetUniformBinding(rq.second);
if (binding.Active())
{
double time = g_Renderer.GetTimeManager().GetGlobalTime();
shader->Uniform(binding, time, 0.0f, 0.0f, 0.0f);
}
shader->Uniform(rq.second, time, 0.0f, 0.0f, 0.0f);
}
else if (rq.first == RQUERY_WATER_TEX)
{