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:
@@ -237,3 +237,40 @@ _mesa_longest_attribute_name_length(struct gl_shader_program *shProg)
|
|||||||
|
|
||||||
return longest;
|
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.
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
@@ -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
|
static GLuint
|
||||||
create_shader(struct gl_context *ctx, GLenum type)
|
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
|
void GLAPIENTRY
|
||||||
_mesa_CompileShaderARB(GLhandleARB shaderObj)
|
_mesa_CompileShaderARB(GLhandleARB shaderObj)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user