mesa: Fix GetUniformLocation while compiling display lists.

This function was apparently missing from the display list dispatch
table, causing the generic no-op function to be called instead.  To make
matters worse, the no-op function is indistinguishable from a successful
call to GetUniformLocation.  GL specifies that GetUniformLocation is
executed immediately when compiling display lists.

Fixes fdo bug 29622.

Signed-off-by: Nick Bowler <nbowler@draconx.ca>
This commit is contained in:
Nick Bowler 2010-08-19 12:19:55 -04:00 committed by Eric Anholt
parent 284ce20901
commit 5482eaba6e
1 changed files with 9 additions and 1 deletions

View File

@ -6070,8 +6070,15 @@ exec_GetAttribLocationARB(GLuint program, const GLchar *name)
FLUSH_VERTICES(ctx, 0);
return CALL_GetAttribLocationARB(ctx->Exec, (program, name));
}
/* XXX more shader functions needed here */
static GLint GLAPIENTRY
exec_GetUniformLocationARB(GLuint program, const GLchar *name)
{
GET_CURRENT_CONTEXT(ctx);
FLUSH_VERTICES(ctx, 0);
return CALL_GetUniformLocationARB(ctx->Exec, (program, name));
}
/* XXX more shader functions needed here */
#if FEATURE_EXT_framebuffer_blit
@ -9491,6 +9498,7 @@ _mesa_create_save_table(void)
/* ARB 30/31/32. GL_ARB_shader_objects, GL_ARB_vertex/fragment_shader */
SET_BindAttribLocationARB(table, exec_BindAttribLocationARB);
SET_GetAttribLocationARB(table, exec_GetAttribLocationARB);
SET_GetUniformLocationARB(table, exec_GetUniformLocationARB);
/* XXX additional functions need to be implemented here! */
/* 299. GL_EXT_blend_equation_separate */