I should clarify... I understand the concept going on with the function. You save memory by storing vertices one time and reuse them by referencing them by index with an index array. I have an example I'm working off of that just uses colors and vertices, and everything is fine.
I want to add Normals and Texture Coordinates, and the idea behind the indexing seems to be falling apart... I'd rather save memory if at all possible and use this over glDrawArrays(), but I can't seem to overcome this hurdle.
Just considering Normals, lets say I have two triangles that make up 1 square. I have only 4 vertices, and (feel like I) should be able to get away with re-using 1 single Normal over and over for each for them, just like I can re-use the two vertices on the shared edge. Now, if I make a cube and want to put the same texture area over all of the faces, I should be able to reuse those 6 coordinate pairs...
Am I missing something in the functionality? Since I'm using vertices, normals, and textures... would I just be better off sacrificing the memory and going to flat arrays that repeat certain values over and over? Is there a magic function that accepts a separate indices for vertices, normals, and texture coordinates?
Thanks everyone, I hope I can get this straightened out...