Learning some GLUT, I implemented my own set of geometric objects, each on its own procedure, doing glPushMatrix() and glPopMatrix() in between. This allows for reuse on other demos.
Yesterday, I heard about VBOs, and now I want to use them in my geometric objects library. How should I refactor my code, in order to choose between VBOs and immediate mode in my library?