<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
              "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
<refentry id="glEnable">
    <refmeta>
        <refmetainfo>
            <copyright>
                <year>1991-2006</year>
                <holder>Silicon Graphics, Inc.</holder>
            </copyright>
        </refmetainfo>
        <refentrytitle>glEnable</refentrytitle>
        <manvolnum>3G</manvolnum>
    </refmeta>
    <refnamediv>
        <refname>glEnable</refname>
        <refpurpose>enable or disable server-side GL capabilities</refpurpose>
    </refnamediv>
    <refsynopsisdiv><title>C Specification</title>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glEnable</function></funcdef>
                <paramdef>GLenum <parameter>cap</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
    </refsynopsisdiv>
    <refsect1 id="parameters"><title>Parameters</title>
        <variablelist>
        <varlistentry>
            <term><parameter>cap</parameter></term>
            <listitem>
                <para>
                    Specifies a symbolic constant indicating a GL capability.
                </para>
            </listitem>
        </varlistentry>
        </variablelist>
    </refsect1>
    <refsynopsisdiv><title>C Specification</title>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glDisable</function></funcdef>
                <paramdef>GLenum <parameter>cap</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
    </refsynopsisdiv>
    <refsect1 id="parameters2"><title>Parameters</title>
        <variablelist>
        <varlistentry>
            <term><parameter>cap</parameter></term>
            <listitem>
                <para>
                    Specifies a symbolic constant indicating a GL capability.
                </para>
            </listitem>
        </varlistentry>
        </variablelist>
    </refsect1>
    <refsect1 id="description"><title>Description</title>
        <para>
            <function>glEnable</function> and <citerefentry><refentrytitle>glDisable</refentrytitle></citerefentry> enable and disable various capabilities.
            Use <citerefentry><refentrytitle>glIsEnabled</refentrytitle></citerefentry> or <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> to determine the current setting
            of any capability. The initial value for each capability with the
            exception of <constant>GL_DITHER</constant> and <constant>GL_MULTISAMPLE</constant> is <constant>GL_FALSE</constant>. The initial value for
            <constant>GL_DITHER</constant> and <constant>GL_MULTISAMPLE</constant> is <constant>GL_TRUE</constant>.
        </para>
        <para>
            Both <function>glEnable</function> and <citerefentry><refentrytitle>glDisable</refentrytitle></citerefentry> take a single argument, <parameter>cap</parameter>,
            which can assume one of the following values:
        </para>
        <variablelist>
            <varlistentry>
                <term><constant>GL_ALPHA_TEST</constant></term>
                <listitem>
			  <para>
			  </para>
                    <para>
                        If enabled,
                        do alpha testing. See
                        <citerefentry><refentrytitle>glAlphaFunc</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_AUTO_NORMAL</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        generate normal vectors when either
                        <constant>GL_MAP2_VERTEX_3</constant> or
                        <constant>GL_MAP2_VERTEX_4</constant> is used to generate vertices.
                        See <citerefentry><refentrytitle>glMap2</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_BLEND</constant></term>
                <listitem>
 		        <para>
		        </para>
                    <para>
                        If enabled,
                        blend the computed fragment color values with the values in the color
                        buffers. See <citerefentry><refentrytitle>glBlendFunc</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_CLIP_PLANE</constant><emphasis>i</emphasis></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        clip geometry against user-defined clipping plane <emphasis>i</emphasis>.
                        See <citerefentry><refentrytitle>glClipPlane</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_COLOR_LOGIC_OP</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        apply the currently selected logical operation to the computed fragment
                        color and color buffer values. See <citerefentry><refentrytitle>glLogicOp</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_COLOR_MATERIAL</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        have one or more material parameters track the current color.
                        See <citerefentry><refentrytitle>glColorMaterial</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_COLOR_SUM</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled and no fragment shader is active, 
                        add the secondary color value to the computed fragment color.
                        See <citerefentry><refentrytitle>glSecondaryColor</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_COLOR_TABLE</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        perform a color table lookup on the incoming RGBA color values.
                        See <citerefentry><refentrytitle>glColorTable</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_CONVOLUTION_1D</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        perform a 1D convolution operation on incoming RGBA color values.
                        See <citerefentry><refentrytitle>glConvolutionFilter1D</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_CONVOLUTION_2D</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        perform a 2D convolution operation on incoming RGBA color values.
                        See <citerefentry><refentrytitle>glConvolutionFilter2D</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_CULL_FACE</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        cull polygons based on their winding in window coordinates.
                        See <citerefentry><refentrytitle>glCullFace</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_DEPTH_TEST</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        do depth comparisons and update the depth buffer. Note that even if
                        the depth buffer exists and the depth mask is non-zero, the
                        depth buffer is not updated if the depth test is disabled. See
                        <citerefentry><refentrytitle>glDepthFunc</refentrytitle></citerefentry> and
                        <citerefentry><refentrytitle>glDepthRange</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_DITHER</constant>	</term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        dither color components or indices before they are written to the
                        color buffer.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_FOG</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled and no fragment shader is active,
                        blend a fog color into the post-texturing color.
                        See <citerefentry><refentrytitle>glFog</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_HISTOGRAM</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        histogram incoming RGBA color values.
                        See <citerefentry><refentrytitle>glHistogram</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_INDEX_LOGIC_OP</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        apply the currently selected logical operation to the incoming index and color
                        buffer indices.
                        See <citerefentry><refentrytitle>glLogicOp</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_LIGHT</constant><emphasis>i</emphasis></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        include light <emphasis>i</emphasis> in the evaluation of the lighting
                        equation. See <citerefentry><refentrytitle>glLightModel</refentrytitle></citerefentry> and <citerefentry><refentrytitle>glLight</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_LIGHTING</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled and no vertex shader is active,
                        use the current lighting parameters to compute the vertex color or index.
                        Otherwise, simply associate the current color or index with each
                        vertex. See
                        <citerefentry><refentrytitle>glMaterial</refentrytitle></citerefentry>, <citerefentry><refentrytitle>glLightModel</refentrytitle></citerefentry>, and <citerefentry><refentrytitle>glLight</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_LINE_SMOOTH</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        draw lines with correct filtering.
                        Otherwise,
                        draw aliased lines.
                        See <citerefentry><refentrytitle>glLineWidth</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_LINE_STIPPLE</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        use the current line stipple pattern when drawing lines. See
                        <citerefentry><refentrytitle>glLineStipple</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_MAP1_COLOR_4</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        calls to
                        <citerefentry><refentrytitle>glEvalCoord1</refentrytitle></citerefentry>,
                        <citerefentry><refentrytitle>glEvalMesh1</refentrytitle></citerefentry>, and
                        <citerefentry><refentrytitle>glEvalPoint1</refentrytitle></citerefentry> generate RGBA values.
                        See <citerefentry><refentrytitle>glMap1</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_MAP1_INDEX</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        calls to
                        <citerefentry><refentrytitle>glEvalCoord1</refentrytitle></citerefentry>,
                        <citerefentry><refentrytitle>glEvalMesh1</refentrytitle></citerefentry>, and
                        <citerefentry><refentrytitle>glEvalPoint1</refentrytitle></citerefentry> generate color indices.
                        See <citerefentry><refentrytitle>glMap1</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_MAP1_NORMAL</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        calls to
                        <citerefentry><refentrytitle>glEvalCoord1</refentrytitle></citerefentry>,
                        <citerefentry><refentrytitle>glEvalMesh1</refentrytitle></citerefentry>, and
                        <citerefentry><refentrytitle>glEvalPoint1</refentrytitle></citerefentry> generate normals.
                        See <citerefentry><refentrytitle>glMap1</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_MAP1_TEXTURE_COORD_1</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        calls to
                        <citerefentry><refentrytitle>glEvalCoord1</refentrytitle></citerefentry>,
                        <citerefentry><refentrytitle>glEvalMesh1</refentrytitle></citerefentry>, and
                        <citerefentry><refentrytitle>glEvalPoint1</refentrytitle></citerefentry> generate
                        <emphasis>s</emphasis>
                        texture coordinates.
                        See <citerefentry><refentrytitle>glMap1</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_MAP1_TEXTURE_COORD_2</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        calls to
                        <citerefentry><refentrytitle>glEvalCoord1</refentrytitle></citerefentry>,
                        <citerefentry><refentrytitle>glEvalMesh1</refentrytitle></citerefentry>, and
                        <citerefentry><refentrytitle>glEvalPoint1</refentrytitle></citerefentry> generate
                        <emphasis>s</emphasis> and
                        <emphasis>t</emphasis> texture coordinates.
                        See <citerefentry><refentrytitle>glMap1</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_MAP1_TEXTURE_COORD_3</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        calls to
                        <citerefentry><refentrytitle>glEvalCoord1</refentrytitle></citerefentry>,
                        <citerefentry><refentrytitle>glEvalMesh1</refentrytitle></citerefentry>, and
                        <citerefentry><refentrytitle>glEvalPoint1</refentrytitle></citerefentry> generate
                        <emphasis>s</emphasis>,
                        <emphasis>t</emphasis>, and
                        <emphasis>r</emphasis> texture coordinates.
                        See <citerefentry><refentrytitle>glMap1</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_MAP1_TEXTURE_COORD_4</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        calls to
                        <citerefentry><refentrytitle>glEvalCoord1</refentrytitle></citerefentry>,
                        <citerefentry><refentrytitle>glEvalMesh1</refentrytitle></citerefentry>, and
                        <citerefentry><refentrytitle>glEvalPoint1</refentrytitle></citerefentry> generate
                        <emphasis>s</emphasis>,
                        <emphasis>t</emphasis>,
                        <emphasis>r</emphasis>, and
                        <emphasis>q</emphasis> texture coordinates.
                        See <citerefentry><refentrytitle>glMap1</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_MAP1_VERTEX_3</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        calls to
                        <citerefentry><refentrytitle>glEvalCoord1</refentrytitle></citerefentry>,
                        <citerefentry><refentrytitle>glEvalMesh1</refentrytitle></citerefentry>, and
                        <citerefentry><refentrytitle>glEvalPoint1</refentrytitle></citerefentry> generate
                        <emphasis>x</emphasis>, <emphasis>y</emphasis>, and <emphasis>z</emphasis> vertex coordinates.
                        See <citerefentry><refentrytitle>glMap1</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_MAP1_VERTEX_4</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        calls to
                        <citerefentry><refentrytitle>glEvalCoord1</refentrytitle></citerefentry>,
                        <citerefentry><refentrytitle>glEvalMesh1</refentrytitle></citerefentry>, and
                        <citerefentry><refentrytitle>glEvalPoint1</refentrytitle></citerefentry> generate
                        homogeneous
                        <emphasis>x</emphasis>,
                        <emphasis>y</emphasis>,
                        <emphasis>z</emphasis>, and
                        <emphasis>w</emphasis> vertex coordinates.
                        See <citerefentry><refentrytitle>glMap1</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_MAP2_COLOR_4</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        calls to
                        <citerefentry><refentrytitle>glEvalCoord2</refentrytitle></citerefentry>,
                        <citerefentry><refentrytitle>glEvalMesh2</refentrytitle></citerefentry>, and
                        <citerefentry><refentrytitle>glEvalPoint2</refentrytitle></citerefentry> generate RGBA values.
                        See <citerefentry><refentrytitle>glMap2</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_MAP2_INDEX</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        calls to
                        <citerefentry><refentrytitle>glEvalCoord2</refentrytitle></citerefentry>,
                        <citerefentry><refentrytitle>glEvalMesh2</refentrytitle></citerefentry>, and
                        <citerefentry><refentrytitle>glEvalPoint2</refentrytitle></citerefentry> generate color indices.
                        See <citerefentry><refentrytitle>glMap2</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_MAP2_NORMAL</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        calls to
                        <citerefentry><refentrytitle>glEvalCoord2</refentrytitle></citerefentry>,
                        <citerefentry><refentrytitle>glEvalMesh2</refentrytitle></citerefentry>, and
                        <citerefentry><refentrytitle>glEvalPoint2</refentrytitle></citerefentry> generate normals.
                        See <citerefentry><refentrytitle>glMap2</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_MAP2_TEXTURE_COORD_1</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        calls to
                        <citerefentry><refentrytitle>glEvalCoord2</refentrytitle></citerefentry>,
                        <citerefentry><refentrytitle>glEvalMesh2</refentrytitle></citerefentry>, and
                        <citerefentry><refentrytitle>glEvalPoint2</refentrytitle></citerefentry> generate
                        <emphasis>s</emphasis>
                        texture coordinates.
                        See <citerefentry><refentrytitle>glMap2</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_MAP2_TEXTURE_COORD_2</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        calls to
                        <citerefentry><refentrytitle>glEvalCoord2</refentrytitle></citerefentry>,
                        <citerefentry><refentrytitle>glEvalMesh2</refentrytitle></citerefentry>, and
                        <citerefentry><refentrytitle>glEvalPoint2</refentrytitle></citerefentry> generate
                        <emphasis>s</emphasis> and
                        <emphasis>t</emphasis> texture coordinates.
                        See <citerefentry><refentrytitle>glMap2</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_MAP2_TEXTURE_COORD_3</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        calls to
                        <citerefentry><refentrytitle>glEvalCoord2</refentrytitle></citerefentry>,
                        <citerefentry><refentrytitle>glEvalMesh2</refentrytitle></citerefentry>, and
                        <citerefentry><refentrytitle>glEvalPoint2</refentrytitle></citerefentry> generate
                        <emphasis>s</emphasis>,
                        <emphasis>t</emphasis>, and
                        <emphasis>r</emphasis> texture coordinates.
                        See <citerefentry><refentrytitle>glMap2</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_MAP2_TEXTURE_COORD_4</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        calls to
                        <citerefentry><refentrytitle>glEvalCoord2</refentrytitle></citerefentry>,
                        <citerefentry><refentrytitle>glEvalMesh2</refentrytitle></citerefentry>, and
                        <citerefentry><refentrytitle>glEvalPoint2</refentrytitle></citerefentry> generate
                        <emphasis>s</emphasis>,
                        <emphasis>t</emphasis>,
                        <emphasis>r</emphasis>, and
                        <emphasis>q</emphasis> texture coordinates.
                        See <citerefentry><refentrytitle>glMap2</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_MAP2_VERTEX_3</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        calls to
                        <citerefentry><refentrytitle>glEvalCoord2</refentrytitle></citerefentry>,
                        <citerefentry><refentrytitle>glEvalMesh2</refentrytitle></citerefentry>, and
                        <citerefentry><refentrytitle>glEvalPoint2</refentrytitle></citerefentry> generate
                        <emphasis>x</emphasis>, <emphasis>y</emphasis>, and <emphasis>z</emphasis> vertex coordinates.
                        See <citerefentry><refentrytitle>glMap2</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_MAP2_VERTEX_4</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        calls to
                        <citerefentry><refentrytitle>glEvalCoord2</refentrytitle></citerefentry>,
                        <citerefentry><refentrytitle>glEvalMesh2</refentrytitle></citerefentry>, and
                        <citerefentry><refentrytitle>glEvalPoint2</refentrytitle></citerefentry> generate
                        homogeneous
                        <emphasis>x</emphasis>,
                        <emphasis>y</emphasis>,
                        <emphasis>z</emphasis>, and
                        <emphasis>w</emphasis> vertex coordinates.
                        See <citerefentry><refentrytitle>glMap2</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_MINMAX</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        compute the minimum and maximum values of incoming RGBA color values.
                        See <citerefentry><refentrytitle>glMinmax</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_MULTISAMPLE</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        use multiple fragment samples in computing the final color of a pixel.
                        See <citerefentry><refentrytitle>glSampleCoverage</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_NORMALIZE</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled and no vertex shader is active,
                        normal vectors are normalized to unit length
                        after transformation and before lighting.  This method is generally
                        less efficient than <constant>GL_RESCALE_NORMAL</constant>. See 
                        <citerefentry><refentrytitle>glNormal</refentrytitle></citerefentry> and
                        <citerefentry><refentrytitle>glNormalPointer</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_POINT_SMOOTH</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        draw points with proper filtering.
                        Otherwise,
                        draw aliased points.
                        See <citerefentry><refentrytitle>glPointSize</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_POINT_SPRITE</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        calculate texture coordinates for points based on texture
                        environment and point parameter settings.  Otherwise texture coordinates
                        are constant across points.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_POLYGON_OFFSET_FILL</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled, and if the polygon is rendered in
                        <constant>GL_FILL</constant> mode, an offset is added to depth values of a polygon's
                        fragments before the depth comparison is performed.
                        See <citerefentry><refentrytitle>glPolygonOffset</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_POLYGON_OFFSET_LINE</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled, and if the polygon is rendered in
                        <constant>GL_LINE</constant> mode, an offset is added to depth values of a polygon's
                        fragments before the depth comparison is performed.
                        See <citerefentry><refentrytitle>glPolygonOffset</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_POLYGON_OFFSET_POINT</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled, an offset is added to depth values of a polygon's fragments
                        before the depth comparison is performed, if the polygon is rendered in
                        <constant>GL_POINT</constant> mode. See <citerefentry><refentrytitle>glPolygonOffset</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_POLYGON_SMOOTH</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled, draw polygons with proper filtering.
                        Otherwise, draw aliased polygons. For correct antialiased polygons,
                        an alpha buffer is needed and the polygons must be sorted front to
                        back.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_POLYGON_STIPPLE</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        use the current polygon stipple pattern when rendering
                        polygons. See <citerefentry><refentrytitle>glPolygonStipple</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_POST_COLOR_MATRIX_COLOR_TABLE</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        perform a color table lookup on RGBA color values after color matrix
                        transformation.
                        See <citerefentry><refentrytitle>glColorTable</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_POST_CONVOLUTION_COLOR_TABLE</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        perform a color table lookup on RGBA color values after convolution.
                        See <citerefentry><refentrytitle>glColorTable</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_RESCALE_NORMAL</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled and no vertex shader is active, 
                        normal vectors are scaled after transformation and before 
                        lighting by a factor computed from the modelview matrix.  If the
                        modelview matrix scales space uniformly, this has the effect of
                        restoring the transformed normal to unit length.  This method is generally
                        more efficient than <constant>GL_NORMALIZE</constant>. See 
                        <citerefentry><refentrytitle>glNormal</refentrytitle></citerefentry> and
                        <citerefentry><refentrytitle>glNormalPointer</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_SAMPLE_ALPHA_TO_COVERAGE</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        compute a temporary coverage value where each bit is determined by the
                        alpha value at the corresponding sample location.  The temporary coverage
                        value is then ANDed with the fragment coverage value.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_SAMPLE_ALPHA_TO_ONE</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        each sample alpha value is replaced by the maximum representable alpha value.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_SAMPLE_COVERAGE</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        the fragment's coverage is ANDed with the temporary coverage value.  If
                        <constant>GL_SAMPLE_COVERAGE_INVERT</constant> is set to <constant>GL_TRUE</constant>, invert the coverage
                        value.
                        See <citerefentry><refentrytitle>glSampleCoverage</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_SEPARABLE_2D</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled, perform a two-dimensional convolution operation using a separable
                        convolution filter on incoming RGBA color values.
                        See <citerefentry><refentrytitle>glSeparableFilter2D</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_SCISSOR_TEST</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        discard fragments that are outside the scissor rectangle.
                        See <citerefentry><refentrytitle>glScissor</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_STENCIL_TEST</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled,
                        do stencil testing and update the stencil buffer.
                        See <citerefentry><refentrytitle>glStencilFunc</refentrytitle></citerefentry> and <citerefentry><refentrytitle>glStencilOp</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_TEXTURE_1D</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled and no fragment shader is active, 
                        one-dimensional texturing is performed
                        (unless two- or three-dimensional or cube-mapped texturing is also enabled).
                        See <citerefentry><refentrytitle>glTexImage1D</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_TEXTURE_2D</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled and no fragment shader is active, 
                        two-dimensional texturing is performed
                        (unless three-dimensional or cube-mapped texturing is also enabled).
                        See <citerefentry><refentrytitle>glTexImage2D</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_TEXTURE_3D</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled and no fragment shader is active, 
                        three-dimensional texturing is performed
                        (unless cube-mapped texturing is also enabled).
                        See <citerefentry><refentrytitle>glTexImage3D</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_TEXTURE_CUBE_MAP</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled and no fragment shader is active, 
                        cube-mapped texturing is performed.
                        See <citerefentry><refentrytitle>glTexImage2D</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_TEXTURE_GEN_Q</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled and no vertex shader is active,
                        the <emphasis>q</emphasis> texture coordinate is computed using
                        the texture generation function defined with <citerefentry><refentrytitle>glTexGen</refentrytitle></citerefentry>.
                        Otherwise, the current <emphasis>q</emphasis> texture coordinate is used.
                        See <citerefentry><refentrytitle>glTexGen</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_TEXTURE_GEN_R</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled and no vertex shader is active,
                        the <emphasis>r</emphasis> texture coordinate is computed using
                        the texture generation function defined with <citerefentry><refentrytitle>glTexGen</refentrytitle></citerefentry>.
                        Otherwise, the current <emphasis>r</emphasis> texture coordinate is used.
                        See <citerefentry><refentrytitle>glTexGen</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_TEXTURE_GEN_S</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled and no vertex shader is active,
                        the <emphasis>s</emphasis> texture coordinate is computed using
                        the texture generation function defined with <citerefentry><refentrytitle>glTexGen</refentrytitle></citerefentry>.
                        Otherwise, the current <emphasis>s</emphasis> texture coordinate is used.
                        See <citerefentry><refentrytitle>glTexGen</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_TEXTURE_GEN_T</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled and no vertex shader is active,
                        the <emphasis>t</emphasis> texture coordinate is computed using
                        the texture generation function defined with <citerefentry><refentrytitle>glTexGen</refentrytitle></citerefentry>.
                        Otherwise, the current <emphasis>t</emphasis> texture coordinate is used.
                        See <citerefentry><refentrytitle>glTexGen</refentrytitle></citerefentry>.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_VERTEX_PROGRAM_POINT_SIZE</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled
                        and a vertex shader is active, then the derived point size is taken from the (potentially clipped) shader builtin
                        <constant>gl_PointSize</constant> and clamped to the implementation-dependent point size range.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term><constant>GL_VERTEX_PROGRAM_TWO_SIDE</constant></term>
                <listitem>
		        <para>
		        </para>
                    <para>
                        If enabled
                        and a vertex shader is active, it specifies that the GL will choose between front and back colors based on the
                        polygon's face direction of which the vertex being shaded is a part.  It has no effect on points or lines.
                    </para>
                </listitem>
            </varlistentry>
        </variablelist>
    </refsect1>
    <refsect1 id="notes"><title>Notes</title>
        <para>
            <constant>GL_POLYGON_OFFSET_FILL</constant>, <constant>GL_POLYGON_OFFSET_LINE</constant>,
            <constant>GL_POLYGON_OFFSET_POINT</constant>,
            <constant>GL_COLOR_LOGIC_OP</constant>, and <constant>GL_INDEX_LOGIC_OP</constant> are available
            only if the GL version is 1.1 or greater.
        </para>
        <para>
            <constant>GL_RESCALE_NORMAL</constant>, and <constant>GL_TEXTURE_3D</constant> are available only if the
            GL version is 1.2 or greater.
        </para>
        <para>
            <constant>GL_MULTISAMPLE</constant>,
            <constant>GL_SAMPLE_ALPHA_TO_COVERAGE</constant>,
            <constant>GL_SAMPLE_ALPHA_TO_ONE</constant>,
            <constant>GL_SAMPLE_COVERAGE</constant>,
            <constant>GL_TEXTURE_CUBE_MAP</constant>
            are available only if the GL version is 1.3 or greater.
        </para>
        <para>
            <constant>GL_POINT_SPRITE</constant>,
            <constant>GL_VERTEX_PROGRAM_POINT_SIZE</constant>, and
            <constant>GL_VERTEX_PROGRAM_TWO_SIDE</constant>
            is available only if the GL version is 2.0 or greater.
        </para>
        <para>
            <constant>GL_COLOR_TABLE</constant>, <constant>GL_CONVOLUTION_1D</constant>, <constant>GL_CONVOLUTION_2D</constant>,
            <constant>GL_HISTOGRAM</constant>, <constant>GL_MINMAX</constant>,
            <constant>GL_POST_COLOR_MATRIX_COLOR_TABLE</constant>,
            <constant>GL_POST_CONVOLUTION_COLOR_TABLE</constant>, and
            <constant>GL_SEPARABLE_2D</constant> are available only if <code>ARB_imaging</code> is returned
            from <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with an argument of <constant>GL_EXTENSIONS</constant>.
        </para>
        <para>
            For OpenGL versions 1.3 and greater, or when <code>ARB_multitexture</code> is supported, <constant>GL_TEXTURE_1D</constant>,
            <constant>GL_TEXTURE_2D</constant>, <constant>GL_TEXTURE_3D</constant>, <constant>GL_TEXTURE_GEN_S</constant>,
            <constant>GL_TEXTURE_GEN_T</constant>, <constant>GL_TEXTURE_GEN_R</constant>, and <constant>GL_TEXTURE_GEN_Q</constant>
            enable or disable the respective state for the active texture unit
            specified with <citerefentry><refentrytitle>glActiveTexture</refentrytitle></citerefentry>.
        </para>
    </refsect1>
    <refsect1 id="errors"><title>Errors</title>
        <para>
            <constant>GL_INVALID_ENUM</constant> is generated if <parameter>cap</parameter> is not one of the values
            listed previously.
        </para>
        <para>
            <constant>GL_INVALID_OPERATION</constant> is generated if <function>glEnable</function> or <citerefentry><refentrytitle>glDisable</refentrytitle></citerefentry>
            is executed between the execution of <citerefentry><refentrytitle>glBegin</refentrytitle></citerefentry>
            and the corresponding execution of <citerefentry><refentrytitle>glEnd</refentrytitle></citerefentry>.
        </para>
    </refsect1>
    <refsect1 id="associatedgets"><title>Associated Gets</title>
        <para>
            <citerefentry><refentrytitle>glIsEnabled</refentrytitle></citerefentry>
        </para>
        <para>
            <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>
        </para>
    </refsect1>
    <refsect1 id="seealso"><title>See Also</title>
        <para>
            <citerefentry><refentrytitle>glActiveTexture</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glAlphaFunc</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glBlendFunc</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glClipPlane</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glColorMaterial</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glCullFace</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glDepthFunc</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glDepthRange</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glEnableClientState</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glFog</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glIsEnabled</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glLight</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glLightModel</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glLineWidth</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glLineStipple</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glLogicOp</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glMap1</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glMap2</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glMaterial</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glNormal</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glNormalPointer</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glPointSize</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glPolygonMode</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glPolygonOffset</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glPolygonStipple</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glSampleCoverage</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glScissor</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glStencilFunc</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glStencilOp</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glTexGen</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glTexImage1D</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glTexImage2D</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glTexImage3D</refentrytitle></citerefentry>
        </para>
    </refsect1>
    <refsect1 id="Copyright"><title>Copyright</title>
        <para>
            Copyright <trademark class="copyright"></trademark> 1991-2006
            Silicon Graphics, Inc. This document is licensed under the SGI
            Free Software B License. For details, see
            <ulink url="http://oss.sgi.com/projects/FreeB/">http://oss.sgi.com/projects/FreeB/</ulink>.
        </para>
    </refsect1>
</refentry>
