title: OpenGL 4.1 Program Pipeline Uniforms
body: <p>In OpenGL 4.1 the <code>separate_shader_objects</code> extension made it into core.</p>
  
  <p>I know that I'm able to create/use a program pipeline object using <code>gl{Gen,Bind}ProgramPipeline()</code>. But how do I set Uniforms for this pipeline?</p>
  
  <p>I've read of <a href="https://www.opengl.org/wiki/GLAPI/glProgramUniform" rel="nofollow"><code>glProgramUniform()</code></a> but don't really understand it.</p>
  
  <p>I think that <code>glProgramUniform</code> takes a (separable) program object.
  When I now use a previously created program object as stage for a program pipeline and afterwards call <code>glProgramUniform</code> on this program object, will this affect the whole pipeline? Or do I have to call <code>glProgramUniform</code> for every single program object again?</p>