<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
<!-- saved from url=(0013)about:internet -->
<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" pref:renderer="mathplayer-dl"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>glTexParameter</title><meta name="generator" content="DocBook XSL Stylesheets V1.75.2" /></head><body><div class="refentry" title="glTexParameter"><a id="glTexParameter"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>glTexParameter — set texture parameters</p></div><div class="refsynopsisdiv" title="C Specification"><h2>C Specification</h2><div class="funcsynopsis"><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><tr><td><code class="funcdef">void <b class="fsfunc">glTexParameterf</b>(</code></td><td>GLenum <var class="pdparam">target</var>, </td></tr><tr><td> </td><td>GLenum <var class="pdparam">pname</var>, </td></tr><tr><td> </td><td>GLfloat <var class="pdparam">param</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><tr><td><code class="funcdef">void <b class="fsfunc">glTexParameteri</b>(</code></td><td>GLenum <var class="pdparam">target</var>, </td></tr><tr><td> </td><td>GLenum <var class="pdparam">pname</var>, </td></tr><tr><td> </td><td>GLint <var class="pdparam">param</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><tr><td><code class="funcdef">void <b class="fsfunc">glTexParameterx</b>(</code></td><td>GLenum <var class="pdparam">target</var>, </td></tr><tr><td> </td><td>GLenum <var class="pdparam">pname</var>, </td></tr><tr><td> </td><td>GLfixed <var class="pdparam">param</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1" title="Parameters"><a id="parameters"></a><h2>Parameters</h2><div class="variablelist"><dl><dt><span class="term">
          <em class="parameter"><code>target</code></em>
        </span></dt><dd><p>Specifies the target texture, which must be
          <code class="constant">GL_TEXTURE_2D</code>.</p></dd><dt><span class="term">
          <em class="parameter"><code>pname</code></em>
        </span></dt><dd><p>Specifies the symbolic name of a single-valued texture
          parameter. Which can be one of the following:
          <code class="constant">GL_TEXTURE_MIN_FILTER</code>,
          <code class="constant">GL_TEXTURE_MAG_FILTER</code>,
          <code class="constant">GL_TEXTURE_WRAP_S</code>,
          <code class="constant">GL_TEXTURE_WRAP_T</code>, or
          <code class="constant">GL_GENERATE_MIPMAP</code>.</p></dd><dt><span class="term">
          <em class="parameter"><code>param</code></em>
        </span></dt><dd><p>Specifies the value of <em class="parameter"><code>pname</code></em>.</p></dd></dl></div></div><div class="refsynopsisdiv" title="C Specification"><h2>C Specification</h2><div class="funcsynopsis"><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><tr><td><code class="funcdef">void <b class="fsfunc">glTexParameterfv</b>(</code></td><td>GLenum <var class="pdparam">target</var>, </td></tr><tr><td> </td><td>GLenum <var class="pdparam">pname</var>, </td></tr><tr><td> </td><td>GLfloat * <var class="pdparam">params</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><tr><td><code class="funcdef">void <b class="fsfunc">glTexParameteriv</b>(</code></td><td>GLenum <var class="pdparam">target</var>, </td></tr><tr><td> </td><td>GLenum <var class="pdparam">pname</var>, </td></tr><tr><td> </td><td>GLint * <var class="pdparam">params</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><tr><td><code class="funcdef">void <b class="fsfunc">glTexParameterxv</b>(</code></td><td>GLenum <var class="pdparam">target</var>, </td></tr><tr><td> </td><td>GLenum <var class="pdparam">pname</var>, </td></tr><tr><td> </td><td>GLfixed * <var class="pdparam">params</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1" title="Parameters"><a id="parameters2"></a><h2>Parameters</h2><div class="variablelist"><dl><dt><span class="term">
          <em class="parameter"><code>target</code></em>
        </span></dt><dd><p>Specifies the target texture, which must be
          <code class="constant">GL_TEXTURE_2D</code>.</p></dd><dt><span class="term">
          <em class="parameter"><code>pname</code></em>
        </span></dt><dd><p>Specifies the symbolic name of a texture parameter. Which can
          be one of the following: <code class="constant">GL_TEXTURE_MIN_FILTER</code>,
          <code class="constant">GL_TEXTURE_MAG_FILTER</code>,
          <code class="constant">GL_TEXTURE_WRAP_S</code>,
          <code class="constant">GL_TEXTURE_WRAP_T</code>, or
          <code class="constant">GL_GENERATE_MIPMAP</code>.</p></dd><dt><span class="term">
          <em class="parameter"><code>params</code></em>
        </span></dt><dd><p>Specifies a pointer to an array where the value or values of
          <em class="parameter"><code>pname</code></em> are stored.</p></dd></dl></div></div><div class="refsect1" title="Description"><a id="description"></a><h2>Description</h2><p>Texture mapping is a technique that applies an image onto an
    object's surface as if the image were a decal or cellophane shrink-wrap.
    The image is created in texture space, with an <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
          <mml:mfenced>
            <mml:mi>s</mml:mi>

            <mml:mi>t</mml:mi>
          </mml:mfenced>
        </mml:math> coordinate system. A texture is a one- or
    two-dimensional image and a set of parameters that determine how samples
    are derived from the image.</p><p><code class="function">glTexParameter</code> assigns the value in
    <em class="parameter"><code>param</code></em> or <em class="parameter"><code>params</code></em> to the
    texture parameter specified as <em class="parameter"><code>pname</code></em>.
    <em class="parameter"><code>target</code></em> defines the target texture, which must be
    <code class="constant">GL_TEXTURE_2D</code>.</p><p>The following symbols are accepted in
    <em class="parameter"><code>pname</code></em>:</p><div class="variablelist"><dl><dt><span class="term">
          <code class="constant">GL_TEXTURE_MIN_FILTER</code>
        </span></dt><dd><p>The texture minifying function is used whenever the pixel
          being textured maps to an area greater than one texture element.
          There are six defined minifying functions. Two of them use the
          nearest one or nearest four texture elements to compute the texture
          value. The other four use mipmaps.</p><p>A mipmap is an ordered set of arrays representing the same
          image at progressively lower resolutions. If the texture has
          dimensions <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                <mml:msup>
                  <mml:mn>2</mml:mn>

                  <mml:mi>n</mml:mi>
                </mml:msup>

                <mml:mo>x</mml:mo>

                <mml:msup>
                  <mml:mn>2</mml:mn>

                  <mml:mi>m</mml:mi>
                </mml:msup>
              </mml:math>, there are <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                <mml:mo>max</mml:mo>

                <mml:mfenced>
                  <mml:mi>n</mml:mi>

                  <mml:mi>m</mml:mi>
                </mml:mfenced>

                <mml:mo>+</mml:mo>

                <mml:mn>1</mml:mn>
              </mml:math> mipmaps. The first mipmap is the original
          texture, with dimensions <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                <mml:msup>
                  <mml:mn>2</mml:mn>

                  <mml:mi>n</mml:mi>
                </mml:msup>

                <mml:mo>x</mml:mo>

                <mml:msup>
                  <mml:mn>2</mml:mn>

                  <mml:mi>m</mml:mi>
                </mml:msup>
              </mml:math>. Each subsequent mipmap has dimensions
          <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                <mml:msup>
                  <mml:mn>2</mml:mn>

                  <mml:mrow>
                    <mml:mi>k</mml:mi>

                    <mml:mo>-</mml:mo>

                    <mml:mn>1</mml:mn>
                  </mml:mrow>
                </mml:msup>

                <mml:mo>x</mml:mo>

                <mml:msup>
                  <mml:mn>2</mml:mn>

                  <mml:mrow>
                    <mml:mi>l</mml:mi>

                    <mml:mo>-</mml:mo>

                    <mml:mn>1</mml:mn>
                  </mml:mrow>
                </mml:msup>
              </mml:math>, where <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                <mml:msup>
                  <mml:mn>2</mml:mn>

                  <mml:mi>k</mml:mi>
                </mml:msup>

                <mml:mo>x</mml:mo>

                <mml:msup>
                  <mml:mn>2</mml:mn>

                  <mml:mi>l</mml:mi>
                </mml:msup>
              </mml:math> are the dimensions of the previous mipmap, until
          either <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                <mml:mi>k</mml:mi>

                <mml:mo>=</mml:mo>

                <mml:mn>0</mml:mn>
              </mml:math> or <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                <mml:mi>l</mml:mi>

                <mml:mo>=</mml:mo>

                <mml:mn>0</mml:mn>
              </mml:math>. At that point, subsequent mipmaps have
          dimension <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                <mml:mn>1</mml:mn>

                <mml:mo>x</mml:mo>

                <mml:msup>
                  <mml:mn>2</mml:mn>

                  <mml:mrow>
                    <mml:mi>l</mml:mi>

                    <mml:mo>-</mml:mo>

                    <mml:mn>1</mml:mn>
                  </mml:mrow>
                </mml:msup>
              </mml:math> or <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                <mml:msup>
                  <mml:mn>2</mml:mn>

                  <mml:mrow>
                    <mml:mi>k</mml:mi>

                    <mml:mo>-</mml:mo>

                    <mml:mn>1</mml:mn>
                  </mml:mrow>
                </mml:msup>

                <mml:mo>x</mml:mo>

                <mml:mn>1</mml:mn>
              </mml:math> until the final mipmap, which has dimension
          <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                <mml:mn>1</mml:mn>

                <mml:mo>x</mml:mo>

                <mml:mn>1</mml:mn>
              </mml:math>. To define the mipmaps, call <a class="citerefentry" href="glTexImage2D.xml"><span class="citerefentry"><span class="refentrytitle">glTexImage2D</span></span></a> or <a class="citerefentry" href="glCopyTexImage2D.xml"><span class="citerefentry"><span class="refentrytitle">glCopyTexImage2D</span></span></a> with the <em class="parameter"><code>level</code></em> argument
          indicating the order of the mipmaps. Level 0 is the original
          texture. Level <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                <mml:mo>max</mml:mo>

                <mml:mfenced>
                  <mml:mi>n</mml:mi>

                  <mml:mi>m</mml:mi>
                </mml:mfenced>
              </mml:math> is the final <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                <mml:mn>1</mml:mn>

                <mml:mo>x</mml:mo>

                <mml:mn>1</mml:mn>
              </mml:math> mipmap.</p><p><em class="parameter"><code>param</code></em> supplies a function for minifying
          the texture as one of the following:</p><p>
      </p><div class="variablelist"><dl><dt><span class="term">
            <code class="constant">GL_NEAREST</code>
          </span></dt><dd><p>Returns the value of the texture element that is nearest (in
            Manhattan distance) to the center of the pixel being
            textured.</p></dd><dt><span class="term">
            <code class="constant">GL_LINEAR</code>
          </span></dt><dd><p>Returns the weighted average of the four texture elements
            that are closest to the center of the pixel being textured. These
            can include repeated or wrapped elements, depending on the values
            of <code class="constant">GL_TEXTURE_WRAP_S</code> and
            <code class="constant">GL_TEXTURE_WRAP_T</code>, and on the exact
            mapping.</p></dd><dt><span class="term">
            <code class="constant">GL_NEAREST_MIPMAP_NEAREST</code>
          </span></dt><dd><p>Chooses the mipmap that most closely matches the size of the
            pixel being textured and uses the <code class="constant">GL_NEAREST</code>
            criterion (the texture element nearest to the center of the pixel)
            to produce a texture value.</p></dd><dt><span class="term">
            <code class="constant">GL_LINEAR_MIPMAP_NEAREST</code>
          </span></dt><dd><p>Chooses the mipmap that most closely matches the size of the
            pixel being textured and uses the <code class="constant">GL_LINEAR</code>
            criterion (a weighted average of the four texture elements that
            are closest to the center of the pixel) to produce a texture
            value.</p></dd><dt><span class="term">
            <code class="constant">GL_NEAREST_MIPMAP_LINEAR</code>
          </span></dt><dd><p>Chooses the two mipmaps that most closely match the size of
            the pixel being textured and uses the
            <code class="constant">GL_NEAREST</code> criterion (the texture element
            nearest to the center of the pixel) to produce a texture value
            from each mipmap. The final texture value is a weighted average of
            those two values.</p></dd><dt><span class="term">
            <code class="constant">GL_LINEAR_MIPMAP_LINEAR</code>
          </span></dt><dd><p>Chooses the two mipmaps that most closely match the size of
            the pixel being textured and uses the
            <code class="constant">GL_LINEAR</code> criterion (a weighted average of
            the four texture elements that are closest to the center of the
            pixel) to produce a texture value from each mipmap. The final
            texture value is a weighted average of those two values.</p><p>As more texture elements are sampled in the minification
            process, fewer aliasing artifacts will be apparent. While the
            <code class="constant">GL_NEAREST</code> and <code class="constant">GL_LINEAR</code>
            minification functions can be faster than the other four, they
            sample only one or four texture elements to determine the texture
            value of the pixel being rendered and can produce moire patterns
            or ragged transitions.</p></dd></dl></div><p>
    </p><p>The initial value of <code class="constant">GL_TEXTURE_MIN_FILTER</code> is
      <code class="constant">GL_NEAREST_MIPMAP_LINEAR</code>.</p></dd><dt><span class="term">
          <code class="constant">GL_TEXTURE_MAG_FILTER</code>
        </span></dt><dd><p>The texture magnification function is used when the pixel
          being textured maps to an area less than or equal to one texture
          element. It sets the texture magnification function to either
          <code class="constant">GL_NEAREST</code> or <code class="constant">GL_LINEAR</code>
          (see below). <code class="constant">GL_NEAREST</code> is generally faster
          than <code class="constant">GL_LINEAR</code>, but it can produce textured
          images with sharper edges because the transition between texture
          elements is not as smooth.</p><p>
      </p><div class="variablelist"><dl><dt><span class="term">
            <code class="constant">GL_NEAREST</code>
          </span></dt><dd><p>Returns the value of the texture element that is nearest (in
            Manhattan distance) to the center of the pixel being
            textured.</p></dd><dt><span class="term">
            <code class="constant">GL_LINEAR</code>
          </span></dt><dd><p>Returns the weighted average of the four texture elements
            that are closest to the center of the pixel being textured. These
            can include repeated or wrapped elements, depending on the values
            of <code class="constant">GL_TEXTURE_WRAP_S</code> and
            <code class="constant">GL_TEXTURE_WRAP_T</code>, and on the exact
            mapping.</p></dd></dl></div><p>
    </p><p>The initial value of <code class="constant">GL_TEXTURE_MAG_FILTER</code> is
      <code class="constant">GL_LINEAR</code>.</p></dd><dt><span class="term">
          <code class="constant">GL_TEXTURE_WRAP_S</code>
        </span></dt><dd><p>Sets the wrap parameter for texture coordinate
          <em class="replaceable"><code>s</code></em> to either
          <code class="constant">GL_CLAMP_TO_EDGE</code> or
          <code class="constant">GL_REPEAT</code>.</p><p>
          </p><div class="variablelist"><dl><dt><span class="term">
                <code class="constant">GL_CLAMP_TO_EDGE</code>
              </span></dt><dd><p>causes <em class="replaceable"><code>s</code></em> coordinates to be
                clamped to the range <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                      <mml:mo>[</mml:mo>

                      <mml:mfrac>
                        <mml:mn>1</mml:mn>

                        <mml:mrow>
                          <mml:mn>2</mml:mn>

                          <mml:mi>N</mml:mi>
                        </mml:mrow>
                      </mml:mfrac>

                      <mml:mo>,</mml:mo>

                      <mml:mn>1</mml:mn>

                      <mml:mo>-</mml:mo>

                      <mml:mfrac>
                        <mml:mn>1</mml:mn>

                        <mml:mrow>
                          <mml:mn>2</mml:mn>

                          <mml:mi>N</mml:mi>
                        </mml:mrow>
                      </mml:mfrac>

                      <mml:mo>]</mml:mo>
                    </mml:math>, where <em class="replaceable"><code>N</code></em> is the
                size of the texture in the direction of clamping.</p></dd><dt><span class="term">
                <code class="constant">GL_REPEAT</code>
              </span></dt><dd><p>causes the integer part of the
                <em class="replaceable"><code>s</code></em> coordinate to be ignored; the GL
                uses only the fractional part, thereby creating a repeating
                pattern.</p></dd></dl></div><p>
        </p><p>The initial value of <code class="constant">GL_TEXTURE_WRAP_S</code> is
      <code class="constant">GL_REPEAT</code>.</p></dd><dt><span class="term">
          <code class="constant">GL_TEXTURE_WRAP_T</code>
        </span></dt><dd><p>Sets the wrap parameter for texture coordinate
          <em class="replaceable"><code>t</code></em> to either
          <code class="constant">GL_CLAMP_TO_EDGE</code> or
          <code class="constant">GL_REPEAT</code>. See the discussion under
          <code class="constant">GL_TEXTURE_WRAP_S</code>.</p><p>The initial value of <code class="constant">GL_TEXTURE_WRAP_T</code> is
      <code class="constant">GL_REPEAT</code>.</p></dd><dt><span class="term">
          <code class="constant">GL_GENERATE_MIPMAP</code>
        </span></dt><dd><p>Sets the automatic mipmap generation parameter. If set to
          <code class="constant">GL_TRUE</code>, making any change to the interior
          texels of the <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                <mml:msub>
                  <mml:mi>level</mml:mi>

                  <mml:mi>base</mml:mi>
                </mml:msub>
              </mml:math> array of a mipmap will also compute a complete
          set of mipmap arrays derived from the modified <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                <mml:msub>
                  <mml:mi>level</mml:mi>

                  <mml:mi>base</mml:mi>
                </mml:msub>
              </mml:math> array. Array levels <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mml:msub>
                  <mml:mi>level</mml:mi>

                  <mml:mi>base</mml:mi>
                </mml:msub> <mml:mo>+</mml:mo><mml:mi>1</mml:mi> through
              <mml:mi>p</mml:mi></mml:math> are replaced with the derived arrays, regardless
          of their previous contents. All other mipmap arrays, including the
          <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll">
                <mml:msub>
                  <mml:mi>level</mml:mi>

                  <mml:mi>base</mml:mi>
                </mml:msub>
              </mml:math> array, are left unchanged by this
          computation.</p><p>The initial value of <code class="constant">GL_GENERATE_MIPMAP</code>
          is <code class="constant">GL_FALSE</code>.</p></dd></dl></div></div><div class="refsect1" title="Notes"><a id="notes"></a><h2>Notes</h2><p>Suppose that a program has enabled texturing (by calling
    <a class="citerefentry" href="glEnable.xml"><span class="citerefentry"><span class="refentrytitle">glEnable</span></span></a> with argument <code class="constant">GL_TEXTURE_2D</code> and has
    set <code class="constant">GL_TEXTURE_MIN_FILTER</code> to one of the functions
    that requires a mipmap. If either the dimensions of the texture images
    currently defined (with previous calls to <a class="citerefentry" href="glTexImage2D.xml"><span class="citerefentry"><span class="refentrytitle">glTexImage2D</span></span></a>, or <a class="citerefentry" href="glCopyTexImage2D.xml"><span class="citerefentry"><span class="refentrytitle">glCopyTexImage2D</span></span></a>) do not follow the proper sequence for mipmaps
    (described above), or there are fewer texture images defined than are
    needed, or the set of texture images have differing numbers of texture
    components, then it is as if texture mapping were disabled.</p><p>Linear filtering accesses the four nearest texture elements.</p><p><code class="function">glTexParameter</code> specifies the texture parameters
    for the texture bound to the active texture unit, specified by calling <a class="citerefentry" href="glActiveTexture.xml"><span class="citerefentry"><span class="refentrytitle">glActiveTexture</span></span></a>.</p></div><div class="refsect1" title="Errors"><a id="errors"></a><h2>Errors</h2><p><code class="constant">GL_INVALID_ENUM</code> is generated if
    <em class="parameter"><code>target</code></em> or <em class="parameter"><code>pname</code></em> is not one
    of the accepted defined values.</p><p><code class="constant">GL_INVALID_ENUM</code> is generated if
    <em class="parameter"><code>param</code></em> should have a defined constant value (based
    on the value of <em class="parameter"><code>pname</code></em>) and does not.</p></div><div class="refsect1" title="See Also"><a id="seealso"></a><h2>See Also</h2><p><a class="citerefentry" href="glActiveTexture.xml"><span class="citerefentry"><span class="refentrytitle">glActiveTexture</span></span></a>, <a class="citerefentry" href="glBindTexture.xml"><span class="citerefentry"><span class="refentrytitle">glBindTexture</span></span></a>, <a class="citerefentry" href="glCopyTexImage2D.xml"><span class="citerefentry"><span class="refentrytitle">glCopyTexImage2D</span></span></a>, <a class="citerefentry" href="glCopyTexSubImage2D.xml"><span class="citerefentry"><span class="refentrytitle">glCopyTexSubImage2D</span></span></a>, <a class="citerefentry" href="glEnable.xml"><span class="citerefentry"><span class="refentrytitle">glEnable</span></span></a>, <a class="citerefentry" href="glPixelStorei.xml"><span class="citerefentry"><span class="refentrytitle">glPixelStorei</span></span></a>, <a class="citerefentry" href="glTexEnv.xml"><span class="citerefentry"><span class="refentrytitle">glTexEnv</span></span></a>, <a class="citerefentry" href="glTexImage2D.xml"><span class="citerefentry"><span class="refentrytitle">glTexImage2D</span></span></a>, <a class="citerefentry" href="glTexSubImage2D.xml"><span class="citerefentry"><span class="refentrytitle">glTexSubImage2D</span></span></a></p></div><div class="refsect1" title="Copyright"><a id="copyright"></a><h2>Copyright</h2><p>Copyright <span class="trademark"></span>© 2003-2004 Silicon
    Graphics, Inc. This document is licensed under the SGI Free Software B
    License. For details, see <a class="ulink" href="http://oss.sgi.com/projects/FreeB/" target="_top">http://oss.sgi.com/projects/FreeB/</a>.</p></div></div></body></html>
