mesa: refactor GetActiveUniform

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Martin Peres <martin.peres@linux.intel.com>
This commit is contained in:
Tapani Pälli 2015-03-12 12:55:18 +02:00
parent dc39d843d2
commit 17dc939f75

View file

@ -46,6 +46,7 @@ _mesa_GetActiveUniform(GLuint program, GLuint index,
{
GET_CURRENT_CONTEXT(ctx);
struct gl_shader_program *shProg;
struct gl_program_resource *res;
if (maxLength < 0) {
_mesa_error(ctx, GL_INVALID_VALUE, "glGetActiveUniform(maxLength < 0)");
@ -56,27 +57,25 @@ _mesa_GetActiveUniform(GLuint program, GLuint index,
if (!shProg)
return;
if (index >= shProg->NumUserUniformStorage) {
res = _mesa_program_resource_find_index((struct gl_shader_program *) shProg,
GL_UNIFORM, index);
if (!res) {
_mesa_error(ctx, GL_INVALID_VALUE, "glGetActiveUniform(index)");
return;
}
const struct gl_uniform_storage *const uni = &shProg->UniformStorage[index];
if (nameOut) {
_mesa_get_uniform_name(uni, maxLength, length, nameOut);
}
if (size) {
/* array_elements is zero for non-arrays, but the API requires that 1 be
* returned.
*/
*size = MAX2(1, uni->array_elements);
}
if (type) {
*type = uni->type->gl_type;
}
if (nameOut)
_mesa_get_program_resource_name(shProg, GL_UNIFORM, index, maxLength,
length, nameOut, "glGetActiveUniform");
if (type)
_mesa_program_resource_prop((struct gl_shader_program *) shProg,
res, index, GL_TYPE, (GLint*) type,
"glGetActiveUniform");
if (size)
_mesa_program_resource_prop((struct gl_shader_program *) shProg,
res, index, GL_ARRAY_SIZE, (GLint*) size,
"glGetActiveUniform");
}
static GLenum