title: How to specify color per side of a cube in OpenGL ES application?
body: <p>I have a cube define in the code below. I want to specify color for each of the 6 faces like:</p>
  
  <p>front face: color1</p>
  
  <p>back face: color2</p>
  
  <p>left face: color3</p>
  
  <p>right face: color4</p>
  
  <p>top face: color5</p>
  
  <p>bottom face: color6</p>
  
  <p>Note that in OpenGL ES we only have triangles and not quads. I am looking for working sample code that solves my problem because working sample code is worth more than a thousand words like they say about pictures.</p>
  
  <p>Here is the cube:</p>
  
  <pre><code> float vertices[] = { -width, -height, -depth, // 0
                                width, -height, -depth, // 1
                                width,  height, -depth, // 2
  
                               -width,  height, -depth, // 3
  
                               -width, -height,  depth, // 4
  
  
                                width, -height,  depth, // 5
  
                                width,  height,  depth, // 6
  
                               -width,  height,  depth // 7
          };  
    short indices[] = { 0, 2, 1,
                  0, 3, 2,
  
                  1,2,6,
                  6,5,1,
  
                  4,5,6,
                  6,7,4,
  
                  2,3,6,
                  6,3,7,
  
                  0,7,3,
                  0,4,7,
  
                  0,1,5,
                  0,5,4
                           };
  </code></pre>
  
  <p>This is the drawing code:</p>
  
  <pre><code> gl.glFrontFace(GL10.GL_CCW);
          // Enable face culling.
          gl.glEnable(GL10.GL_CULL_FACE);
          // What faces to remove with the face culling.
          gl.glCullFace(GL10.GL_BACK);
          // Enabled the vertices buffer for writing and to be used during
          // rendering.
          gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
  
          // Specifies the location and data format of an array of vertex
          // coordinates to use when rendering.
          gl.glVertexPointer(3, GL10.GL_FLOAT, 0, mVerticesBuffer);
  
  
              // Bind the texture according to the set texture filter
              gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[filter]);
              gl.glEnable(GL10.GL_TEXTURE_2D);
  
  
         if (mColorBuffer != null) {
              // Enable the color array buffer to be used during rendering.
              gl.glEnableClientState(GL10.GL_COLOR_ARRAY);
              gl.glColorPointer(4, GL10.GL_FLOAT, 0, mColorBuffer);
          }
  
  
  
          gl.glDrawElements(GL10.GL_TRIANGLES, mNumOfIndices,
                  GL10.GL_UNSIGNED_SHORT, mIndicesBuffer);
  
          // ALL the DRAWING IS DONE NOW
  
          // Disable the vertices buffer.
          gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
  
  
              gl.glDisableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
  
  
          // Disable face culling.
          gl.glDisable(GL10.GL_CULL_FACE);
  </code></pre>