fix shader for iOS, remove switch to if-else sequence

This commit is contained in:
2017-12-06 00:32:15 +00:00
parent 9978709645
commit d18b1103bb
4 changed files with 36 additions and 23 deletions

View File

@@ -112,30 +112,32 @@ void Shader::use()
}
void Shader::u_vec4(kShaderUniform id, const glm::vec4& v)
{
if (m_umap.count(id) == 0) LOG("UNIFORM %d NOT FOUND in shader %d", (int)id, (int)name);
glUniform4fv(m_umap[id], 1, glm::value_ptr(v));
if (m_umap.count(id) == 0) LOG("UNIFORM vec4 %d NOT FOUND in shader %d", (int)id, (int)name)
else glUniform4fv(m_umap[id], 1, glm::value_ptr(v));
}
void Shader::u_vec2(kShaderUniform id, const glm::vec2& v)
{
if (m_umap.count(id) == 0) LOG("UNIFORM %d NOT FOUND in shader %d", (int)id, (int)name);
glUniform2fv(m_umap[id], 1, glm::value_ptr(v));
if (m_umap.count(id) == 0) LOG("UNIFORM vec2 %d NOT FOUND in shader %d", (int)id, (int)name)
else glUniform2fv(m_umap[id], 1, glm::value_ptr(v));
}
void Shader::u_mat4(kShaderUniform id, const glm::mat4& m)
{
if (m_umap.count(id) == 0) LOG("UNIFORM %d NOT FOUND in shader %d", (int)id, (int)name);
glUniformMatrix4fv(m_umap[id], 1, GL_FALSE, glm::value_ptr(m));
if (m_umap.count(id) == 0) LOG("UNIFORM mat4 %d NOT FOUND in shader %d", (int)id, (int)name)
else glUniformMatrix4fv(m_umap[id], 1, GL_FALSE, glm::value_ptr(m));
}
void Shader::u_int(kShaderUniform id, int i)
{
if (m_umap.count(id) == 0) LOG("UNIFORM %d NOT FOUND in shader %d", (int)id, (int)name);
glUniform1i(m_umap[id], i);
if (m_umap.count(id) == 0)
LOG("UNIFORM int %d NOT FOUND in shader %d", (int)id, (int)name)
else
glUniform1i(m_umap[id], i);
}
void Shader::u_float(kShaderUniform id, float f)
{
if (m_umap.count(id) == 0) LOG("UNIFORM %d NOT FOUND in shader %d", (int)id, (int)name);
glUniform1f(m_umap[id], f);
if (m_umap.count(id) == 0) LOG("UNIFORM float %d NOT FOUND in shader %d", (int)id, (int)name)
else glUniform1f(m_umap[id], f);
}
GLint ui::Shader::GetAttribLocation(const char* name)
{