mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 16:08:04 +02:00
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:
parent
dc39d843d2
commit
17dc939f75
1 changed files with 16 additions and 17 deletions
|
|
@ -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…
Add table
Reference in a new issue