Browse Source

mesa: refactor GetActiveUniform

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Martin Peres <martin.peres@linux.intel.com>
tags/10.6-branchpoint
Tapani Pälli 10 years ago
parent
commit
17dc939f75
1 changed files with 16 additions and 17 deletions
  1. 16
    17
      src/mesa/main/uniform_query.cpp

+ 16
- 17
src/mesa/main/uniform_query.cpp 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

Loading…
Cancel
Save