mesa: Stub implementation of glBindFragDataLocation

This just validates the input parameters so far.

Fixes piglit's bindfragdata-invalid-parameters test.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
Ian Romanick 2011-11-04 15:48:41 -07:00
parent 0a0d820f7b
commit 4464a4b27b
2 changed files with 37 additions and 18 deletions

View File

@ -237,3 +237,40 @@ _mesa_longest_attribute_name_length(struct gl_shader_program *shProg)
return longest;
}
void GLAPIENTRY
_mesa_BindFragDataLocation(GLuint program, GLuint colorNumber,
const GLchar *name)
{
GET_CURRENT_CONTEXT(ctx);
struct gl_shader_program *const shProg =
_mesa_lookup_shader_program_err(ctx, program, "glBindFragDataLocation");
if (!shProg)
return;
if (!name)
return;
if (strncmp(name, "gl_", 3) == 0) {
_mesa_error(ctx, GL_INVALID_OPERATION,
"glBindFragDataLocation(illegal name)");
return;
}
if (colorNumber >= ctx->Const.MaxDrawBuffers) {
_mesa_error(ctx, GL_INVALID_VALUE, "glBindFragDataLocation(index)");
return;
}
/* Replace the current value if it's already in the list. Add
* FRAG_RESULT_DATA0 because that's how the linker differentiates
* between built-in attributes and user-defined attributes.
*/
/*
* Note that this binding won't go into effect until
* glLinkProgram is called again.
*/
}

View File

@ -325,14 +325,6 @@ attach_shader(struct gl_context *ctx, GLuint program, GLuint shader)
}
static void
bind_frag_data_location(struct gl_context *ctx, GLuint program,
GLuint colorNumber, const GLchar *name)
{
_mesa_problem(ctx, "bind_frag_data_location() not implemented yet");
}
static GLuint
create_shader(struct gl_context *ctx, GLenum type)
{
@ -1060,16 +1052,6 @@ _mesa_AttachShader(GLuint program, GLuint shader)
}
/* GL_EXT_gpu_shader4, GL3 */
void GLAPIENTRY
_mesa_BindFragDataLocation(GLuint program, GLuint colorNumber,
const GLchar *name)
{
GET_CURRENT_CONTEXT(ctx);
bind_frag_data_location(ctx, program, colorNumber, name);
}
void GLAPIENTRY
_mesa_CompileShaderARB(GLhandleARB shaderObj)
{