## Name

glBindProgramPipeline — bind a program pipeline to the current context

## C Specification

`void glBindProgramPipeline(` | GLuint pipeline`)`;

## Parameters

`pipeline`

  Specifies the name of the pipeline object to bind to the context.

## Description

`glBindProgramPipeline` binds a program pipeline object to the current context. `pipeline` must be a name previously returned from a call to glGenProgramPipelines. If no program pipeline exists with name `pipeline` then a new pipeline object is created with that name and initialized to the default state vector.

When a program pipeline object is bound using `glBindProgramPipeline`, any previous binding is broken and is replaced with a binding to the specified pipeline object. If `pipeline` is zero, the previous binding is broken and is not replaced, leaving no pipeline object bound. If no current program object has been established by glUseProgram, the program objects used for each stage and for uniform updates are taken from the bound program pipeline object, if any. If there is a current program object established by glUseProgram, the bound program pipeline object has no effect on rendering or uniform updates. When a bound program pipeline object is used for rendering, individual shader executables are taken from its program objects.

## Errors

`GL_INVALID_OPERATION` is generated if `pipeline` is not zero or a name previously returned from a call to glGenProgramPipelines or if such a name has been deleted by a call to glDeleteProgramPipelines.

## See Also

glCreateShader, glCreateProgram, glCompileShader, glLinkProgram, glGenProgramPipelines, glDeleteProgramPipelines, glIsProgramPipeline

## Copyright

Copyright © 2010 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/.