title: 2 Textures, 1 Shader - OpenGL ES 2.0
body: <p>ES 2.0 newbie here. I'm currently trying to make some 3D interlaced images from stereo images with ES 2.0 and the PowerVR SDK. I can output one image texture fine, but when I try to output the second one, I seem to be overwriting the first. So, my question is, given the fragment shader below, can I use it to draw two textures, or can the sampler2d uniform only be bound to one texture unit?
  Here's the fragment shader (taken from the PowerVR "training course" sample programs):</p>
  
  <pre><code>    uniform sampler2D sampler2d;\
      varying mediump vec2    myTexCoord;\
      void main (void)\
      {\
          gl_FragColor = texture2D(sampler2d,myTexCoord);\
      }";
  </code></pre>
  
  <p>And here's how I am loading the image textures into the shader:</p>
  
  <pre><code>//LEFT IMAGE
  glActiveTexture(GL_TEXTURE0);
  glGenTextures(1, &amp;m_uiTexture_left);                                    
  glBindTexture(GL_TEXTURE_2D, m_uiTexture_left);
  glUniform1i(glGetUniformLocation(m_uiProgramObject, "sampler2d"), 0);
  glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, pwr2Width, pwr2Height,0, GL_RGB, GL_UNSIGNED_BYTE, xImageL); 
  glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
  glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
  GLfloat afVertices[30] = {0.0};
  genVertices(afVertices);
  glGenBuffers(1, &amp;m_ui32Vbo_leftimage);                                  
  m_ui32VertexStride = 5 * sizeof(GLfloat); // 3 floats for the pos, 2 for the UVs
  glBindBuffer(GL_ARRAY_BUFFER, m_ui32Vbo_leftimage);
  glBufferData(GL_ARRAY_BUFFER, 6 * m_ui32VertexStride, afVertices, GL_STATIC_DRAW);  
  glBindBuffer(GL_ARRAY_BUFFER, 0);
  
  //RIGHT IMAGE
  glActiveTexture(GL_TEXTURE1);
  glGenTextures(1, &amp;m_uiTexture_right);                                   
  glBindTexture(GL_TEXTURE_2D, m_uiTexture_right);
  glUniform1i(glGetUniformLocation(m_uiProgramObject, "sampler2d"), 1);   
  glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, pwr2Width, pwr2Height,0, GL_RGB, GL_UNSIGNED_BYTE, xImageR);
  glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
  glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
  glGenBuffers(1, &amp;m_ui32Vbo_rightimage);                     
  m_ui32VertexStride = 5 * sizeof(GLfloat); // 3 floats for the pos, 2 for the UVs
  glBindBuffer(GL_ARRAY_BUFFER, m_ui32Vbo_rightimage);
  glBufferData(GL_ARRAY_BUFFER, 6 * m_ui32VertexStride, afVertices, GL_STATIC_DRAW);
  glBindBuffer(GL_ARRAY_BUFFER, 0);
  </code></pre>
  
  <p>So, is this code just overwriting the sampler2d uniform? Do I need another uniform or shader for the second image? </p>