OpenGL man pages
glPushName, glPopName - push and pop the name stack
void glPushName( GLuint name )
name Specifies a name that will be pushed onto the name stack.
void glPopName( void )
The name stack is used during selection mode to allow sets of rendering
commands to be uniquely identified. It consists of an ordered set of
unsigned integers. glPushName causes name to be pushed onto the name
stack, which is initially empty. glPopName pops one name off the top of
It is an error to push a name onto a full stack, or to pop a name off an
empty stack. It is also an error to manipulate the name stack between the
execution of glBegin and the corresponding execution of glEnd. In any of
these cases, the error flag is set and no other change is made to GL state.
The name stack is always empty while the render mode is not GL_SELECT.
Calls to glPushName or glPopName while the render mode is not GL_SELECT are
GL_STACK_OVERFLOW is generated if glPushName is called while the name stack
GL_STACK_UNDERFLOW is generated if glPopName is called while the name stack
GL_INVALID_OPERATION is generated if glPushName or glPopName is executed
between a call to glBegin and the corresponding call to glEnd.
glGet with argument GL_NAME_STACK_DEPTH
glGet with argument GL_MAX_NAME_STACK_DEPTH
glInitNames, glLoadName, glRenderMode, glSelectBuffer
Fri Dec 6 11:18:03 EST 1996
Look here for legal stuff: Legal