On Fri, Feb 7, 2014 at 10:00 PM, Ian Romanick <i...@freedesktop.org> wrote: > From: Gregory Hainaut <gregory.hain...@gmail.com> > > This was originally included in another patch, but it was split out by > Ian Romanick. > > Reviewed-by: Ian Romanick <ian.d.roman...@intel.com> > --- > src/mesa/main/pipelineobj.c | 24 ++++++++++++++++++++++++ > 1 file changed, 24 insertions(+) > > diff --git a/src/mesa/main/pipelineobj.c b/src/mesa/main/pipelineobj.c > index b47dc7a..6e490bd 100644 > --- a/src/mesa/main/pipelineobj.c > +++ b/src/mesa/main/pipelineobj.c > @@ -227,6 +227,30 @@ _mesa_UseProgramStages(GLuint pipeline, GLbitfield > stages, GLuint program) > void GLAPIENTRY > _mesa_ActiveShaderProgram(GLuint pipeline, GLuint program) > { > + GET_CURRENT_CONTEXT(ctx); > + struct gl_shader_program *shProg = (program != 0) > + ? _mesa_lookup_shader_program_err(ctx, program, > "glActiveShaderProgram(program)") > + : NULL;
Seems like if/else would be more clear for this part. If _mesa_lookup_shader_program_err returns NULL, should we exit early? -Jordan > + struct gl_pipeline_object *pipe = lookup_pipeline_object(ctx, pipeline); > + > + if (!pipe) { > + _mesa_error(ctx, GL_INVALID_OPERATION, > "glActiveShaderProgram(pipeline)"); > + return; > + } > + > + /* Object is created by any Pipeline call but glGenProgramPipelines, > + * glIsProgramPipeline and GetProgramPipelineInfoLog > + */ > + pipe->EverBound = GL_TRUE; > + > + if ((shProg != NULL) && !shProg->LinkStatus) { > + _mesa_error(ctx, GL_INVALID_OPERATION, > + "glActiveShaderProgram(program %u not linked)", shProg->Name); > + return; > + } > + > + _mesa_reference_shader_program(ctx, &pipe->ActiveProgram, shProg); > } > > /** > -- > 1.8.1.4 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev