<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html
  PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd">
<html
	xmlns="http://www.w3.org/1999/xhtml"
	xmlns:mml="http://www.w3.org/1998/Math/MathML"
><head><title>glPushName</title><link rel="stylesheet" href="style.css" type="text/css"/><meta name="generator" content="DocBook XSL Stylesheets V1.59.1"/><link rel="home" href="index.xml" title="PyOpenGL 2.0.1.07 Man Pages"/><link rel="up" href="reference-GL.xml" title="GL"/><link rel="previous" href="glPushMatrix.3G.xml" title="glPushMatrix"/><link rel="next" href="glRasterPos.3G.xml" title="glRasterPos"/></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">glPushName</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="glPushMatrix.3G.xml">Prev</a> </td><th width="60%" align="center">GL</th><td width="20%" align="right"> <a accesskey="n" href="glRasterPos.3G.xml">Next</a></td></tr></table><hr/></div><div class="refentry" lang="en"><a name="glPushName.3G"/><div class="titlepage"/><div class="refnamediv"><a name="glPushName.3G-name"/><h2>Name</h2><p>glPushName, glPopName &#8212; push and pop the name stack</p></div><div class="refsynopsisdiv"><a name="glPushName.3G-c_spec-push"/><h2>C Specification</h2><table class="funcprototype" border="0" cellpadding="0" cellspacing="0"><tr><td valign="top"><code>void <tt>glPushName</tt></code></td><td valign="top"><code>(</code></td><td valign="top"><code>GLuint <i><tt>name</tt></i>);</code></td></tr></table></div><div class="refsynopsisdiv"><a name="glPushName.3G-python_spec-push"/><h2>Python Specification</h2><table class="funcprototype" border="0" cellpadding="0" cellspacing="0"><tr><td valign="top"><code><tt>glPushName</tt></code></td><td valign="top"><code>(</code></td><td valign="top"><code><i><tt>name</tt></i>) &#8594; <tt>None</tt></code></td></tr></table></div><div class="refsect1" lang="en"><a name="glPushName.3G-parameters-push"/><h2>Parameters</h2><div class="variablelist"><dl><dt><span class="term"><i><tt>name</tt></i></span></dt><dd>
						Specifies a name that will be pushed onto the name stack.
					</dd></dl></div></div><div class="refsynopsisdiv"><a name="glPushName.3G-c_spec-pop"/><h2>C Specification</h2><table class="funcprototype" border="0" cellpadding="0" cellspacing="0"><tr><td valign="top"><code>void <tt>glPopName</tt></code></td><td valign="top"><code>(</code></td><td valign="top"><code>);</code></td></tr></table></div><div class="refsynopsisdiv"><a name="glPushName.3G-python_spec-pop"/><h2>Python Specification</h2><table class="funcprototype" border="0" cellpadding="0" cellspacing="0"><tr><td valign="top"><code><tt>glPopName</tt></code></td><td valign="top"><code>(</code></td><td valign="top"><code>) &#8594; <tt>None</tt></code></td></tr></table></div><div class="refsect1" lang="en"><a name="glPushName.3G-description"/><h2>Description</h2><p>
			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 and is initially empty.
		</p><p>
			<tt>glPushName</tt> causes <i><tt>name</tt></i> to be pushed onto the name stack.
			<tt>glPopName</tt> pops one name off the top of the stack.
		</p><p>
			The maximum name stack depth is implementation-dependent; call <tt>GL_MAX_NAME_STACK_DEPTH</tt> to find out
			the value for a particular implementation. 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 <a href="glBegin.3G.xml"><tt>glBegin</tt></a> and the corresponding execution of <a href="glBegin.3G.xml"><tt>glEnd</tt></a>. In any of these cases, the error flag is set and no other change is made to GL
			state.
		</p><p>
			The name stack is always empty while the render mode is not <tt>GL_SELECT</tt>. Calls to
			<tt>glPushName</tt> or <tt>glPopName</tt> while the render mode is not
			<tt>GL_SELECT</tt> are ignored.
		</p></div><div class="refsect1" lang="en"><a name="glPushName.3G-errors"/><h2>Errors</h2><p>
			<tt>GL_STACK_OVERFLOW</tt> is generated if <tt>glPushName</tt> is called while the name stack
			is full.
		</p><p>
			<tt>GL_STACK_UNDERFLOW</tt> is generated if <tt>glPopName</tt> is called while the name stack
			is empty.
		</p><p>
			<tt>GL_INVALID_OPERATION</tt> is generated if <tt>glPushName</tt> or
			<tt>glPopName</tt> is executed between a call to <a href="glBegin.3G.xml"><tt>glBegin</tt></a> and the
			corresponding call to <a href="glBegin.3G.xml"><tt>glEnd</tt></a>.
		</p></div><div class="refsect1" lang="en"><a name="glPushName.3G-associated_gets"/><h2>Associated Gets</h2><p>
			<tt>glGet</tt> with argument <tt>GL_NAME_STACK_DEPTH</tt>
		</p><p>
			<tt>glGet</tt> with argument <tt>GL_MAX_NAME_STACK_DEPTH</tt>
		</p></div><div class="refsect1" lang="en"><a name="glPushName.3G-see_also"/><h2>See Also</h2><p>
			<span class="simplelist"><a href="glInitNames.3G.xml">glInitNames</a>, <a href="glLoadName.3G.xml">glLoadName</a>, <a href="glRenderMode.3G.xml">glRenderMode</a>, <a href="glSelectBuffer.3G.xml">glSelectBuffer</a></span>
		</p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="glPushMatrix.3G.xml">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="reference-GL.xml">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="glRasterPos.3G.xml">Next</a></td></tr><tr><td width="40%" align="left" valign="top">glPushMatrix </td><td width="20%" align="center"><a accesskey="h" href="index.xml">Home</a></td><td width="40%" align="right" valign="top"> glRasterPos</td></tr></table></div></body></html>