All OpenGL commands that actually do drawing go between glBegin
and glEnd. All commands that set up state go outside glBegin
and glEnd.
Many OpenGL commands can take inputs of various data types - the type is
determined by the ending of the command: glVertex3i vs.
glVertex3f vs. glVertex3fv