void GlProgram::setValueOfUniform (int i) { GlUniform uni; uni = m_Uniforms[i]; switch(uni.getType()) { case GL_FLOAT: glUniform1f (uni.getLoc(),uni.getValues()[0]);break; case GL_FLOAT_VEC2: glUniform2fv (uni.getLoc(),1,uni.getValues());break; case GL_FLOAT_VEC3: glUniform3fv (uni.getLoc(),1,uni.getValues());break; case GL_FLOAT_VEC4: glUniform4fv (uni.getLoc(),1,uni.getValues());break; case GL_INT: case GL_BOOL: case GL_SAMPLER_2D: case GL_SAMPLER_2D_SHADOW: case GL_SAMPLER_1D: case GL_SAMPLER_3D: case GL_SAMPLER_CUBE: glUniform1i(uni.getLoc(),(int)uni.getValues()[0]);break; case GL_INT_VEC2: case GL_BOOL_VEC2: glUniform2i(uni.getLoc(),(int)uni.getValues()[0],(int)uni.getValues()[1]);break; case GL_INT_VEC3:case GL_BOOL_VEC3: glUniform3i(uni.getLoc(),(int)uni.getValues()[0],(int)uni.getValues()[1],(int)uni.getValues()[2]);break; case GL_INT_VEC4:case GL_BOOL_VEC4: glUniform4i(uni.getLoc(),(int)uni.getValues()[0],(int)uni.getValues()[1],(int)uni.getValues()[2],(int)uni.getValues()[3]);break; case GL_FLOAT_MAT2: glUniformMatrix2fv(uni.getLoc(),1,false,uni.getValues());break; case GL_FLOAT_MAT3: glUniformMatrix3fv(uni.getLoc(),1,false,uni.getValues());break; case GL_FLOAT_MAT4: glUniformMatrix4fv(uni.getLoc(),1,false,uni.getValues());break; } }