That's pretty much it
I thought I'd post a fair warning if you are new to OpenGL. The more you change OpenGL's internal states, the slower it behaves (ie. calling methods like gl.disable() or any other methods that change states inside OpenGL).
So, let's say you have number of cubes to render with texture1, number of cubes to render with texture2 and a number of cubes to render without any texturing, you should arrange the render calls in a way that there are only minimal amount of OpenGL state changes.
Don't just randomly hop from render call to another changing the OpenGL states. That's sure to kill any performance you have going on with OpenGL. Instead arrange objects/render calls this way (just ONE way of doing it):
- Call render on ALL objects that are rendered with texture1
- Call render on ALL objects that are rendered with texture2
- Call render on ALL objects that are rendered without texture
this way per one main loop the state changes are "minimized" (I believe there is going to be... hmm... one OpenGL state change per loop with this way. Changing texture coordinates do not change OpenGL state as far as I know) and OpenGL can keep functioning as fast as possible
It's fast to render but it slows down like hell when you tinker with its states.