[Bind] Added documentation files for OpenGL ES

This commit is contained in:
thefiddler 2014-03-28 20:06:55 +01:00
parent 2a97192ef8
commit 22a706e44f
1147 changed files with 147213 additions and 5851 deletions

View file

@ -0,0 +1,61 @@
#region License
//
// GL2Generator.cs
//
// Author:
// Stefanos A. <stapostol@gmail.com>
//
// Copyright (c) 2006-2014 Stefanos Apostolopoulos
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
//
#endregion
using System;
using System.IO;
namespace Bind.GL2
{
class GL2Generator : Generator
{
public GL2Generator(Settings settings, string dirname)
: base(settings, dirname)
{
if (Settings.Compatibility == Settings.Legacy.Tao)
{
Settings.OutputNamespace = "Tao.OpenGl";
Settings.OutputClass = "Gl";
}
else
{
// Defaults
}
Settings.DefaultOutputNamespace = "OpenTK.Graphics.OpenGL";
Settings.DefaultImportsFile = "GLCore.cs";
Settings.DefaultDelegatesFile = "GLDelegates.cs";
Settings.DefaultEnumsFile = "GLEnums.cs";
Settings.DefaultWrappersFile = "GL.cs";
Settings.DefaultDocPath = Path.Combine(
Settings.DefaultDocPath, "GL2");
}
}
}

View file

@ -0,0 +1,78 @@
<?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="glActiveTexture">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glActiveTexture</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glActiveTexture</refname>
<refpurpose>select active texture unit</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glActiveTexture</function></funcdef>
<paramdef>GLenum <parameter>texture</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<!-- eqn: ignoring delim $$ -->
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>texture</parameter></term>
<listitem>
<para>
Specifies which texture unit to make active. The number
of texture units is implementation dependent, but must be at least
8. <parameter>texture</parameter> must be one of
<constant>GL_TEXTURE</constant><inlineequation><mml:math><mml:mi mathvariant="italic">i</mml:mi></mml:math></inlineequation>,
where
i ranges from 0 to (<constant>GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS</constant> - 1).
The initial value is <constant>GL_TEXTURE0</constant>.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glActiveTexture</function> selects which texture unit subsequent texture state calls will
affect. The number of texture units an implementation supports is
implementation dependent, but must be at least 8.
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>texture</parameter> is not one of
<constant>GL_TEXTURE</constant><inlineequation><mml:math><mml:mi mathvariant="italic">i</mml:mi></mml:math></inlineequation>,
where i ranges from 0 to (<constant>GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS</constant> - 1).
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_ACTIVE_TEXTURE</constant> or <constant>GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS</constant>
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glTexParameter</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>

View file

@ -0,0 +1,107 @@
<?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="glAttachShader">
<refmeta>
<refentrytitle>glAttachShader</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glAttachShader</refname>
<refpurpose>attach a shader object to a program object</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glAttachShader</function></funcdef>
<paramdef>GLuint <parameter>program</parameter></paramdef>
<paramdef>GLuint <parameter>shader</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>program</parameter></term>
<listitem>
<para>Specifies the program object to which a shader
object will be attached.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>shader</parameter></term>
<listitem>
<para>Specifies the shader object that is to be attached.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>In order to create an executable, there must be a way to
specify the list of things that will be linked together. Program
objects provide this mechanism. Shaders that are to be linked
together in a program object must first be attached to that
program object. <function>glAttachShader</function> attaches the
shader object specified by <parameter>shader</parameter> to the
program object specified by <parameter>program</parameter>. This
indicates that <parameter>shader</parameter> will be included in
link operations that will be performed on
<parameter>program</parameter>.</para>
<para>All operations that can be performed on a shader object
are valid whether or not the shader object is attached to a
program object. It is permissible to attach a shader object to a
program object before source code has been loaded into the
shader object or before the shader object has been compiled.
Multiple shader objects of the same type may not be attached to
a single program object. However, a single shader object may be
attached to more than one program object.
If a shader object is deleted while it is
attached to a program object, it will be flagged for deletion,
and deletion will not occur until
<citerefentry><refentrytitle>glDetachShader</refentrytitle></citerefentry>
is called to detach it from all program objects to which it is
attached.</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para><constant>GL_INVALID_VALUE</constant> is generated if either
<parameter>program</parameter> or <parameter>shader</parameter>
is not a value generated by OpenGL.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
<parameter>program</parameter> is not a program object.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
<parameter>shader</parameter> is not a shader object.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
<parameter>shader</parameter> is already attached to
<parameter>program</parameter>, or if another shader object of
the same type as <parameter>shader</parameter> is already attached
to <parameter>program</parameter>.</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para><citerefentry><refentrytitle>glGetAttachedShaders</refentrytitle></citerefentry>
with the handle of a valid program object</para>
<para><citerefentry><refentrytitle>glIsProgram</refentrytitle></citerefentry></para>
<para><citerefentry><refentrytitle>glIsShader</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para><citerefentry><refentrytitle>glCompileShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDetachShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glLinkProgram</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glShaderSource</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glShaderBinary</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2003-2005 3Dlabs Inc. Ltd.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,186 @@
<?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="glBindAttribLocation">
<refmeta>
<refentrytitle>glBindAttribLocation</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glBindAttribLocation</refname>
<refpurpose>associate a generic vertex attribute index with a named attribute variable</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glBindAttribLocation</function></funcdef>
<paramdef>GLuint <parameter>program</parameter></paramdef>
<paramdef>GLuint <parameter>index</parameter></paramdef>
<paramdef>const GLchar *<parameter>name</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>program</parameter></term>
<listitem>
<para>Specifies the handle of the program object in
which the association is to be made.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>index</parameter></term>
<listitem>
<para>Specifies the index of the generic vertex
attribute to be bound.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>name</parameter></term>
<listitem>
<para>Specifies a null terminated string containing
the name of the vertex shader attribute variable to
which <parameter>index</parameter> is to be
bound.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para><function>glBindAttribLocation</function> is used to
associate a user-defined attribute variable in the program
object specified by <parameter>program</parameter> with a
generic vertex attribute index. The name of the user-defined
attribute variable is passed as a null terminated string in
<parameter>name</parameter>. The generic vertex attribute index
to be bound to this variable is specified by
<parameter>index</parameter>. When
<parameter>program</parameter> is made part of current state,
values provided via the generic vertex attribute
<parameter>index</parameter> will modify the value of the
user-defined attribute variable specified by
<parameter>name</parameter>.</para>
<para>If <parameter>name</parameter> refers to a matrix
attribute variable, <parameter>index</parameter> refers to the
first column of the matrix. Other matrix columns are then
automatically bound to locations <parameter>index+1</parameter>
for a matrix of type mat2; <parameter>index+1</parameter> and
<parameter>index+2</parameter> for a matrix of type mat3; and
<parameter>index+1</parameter>, <parameter>index+2</parameter>,
and <parameter>index+3</parameter> for a matrix of type
mat4.</para>
<para>This command makes it possible for vertex shaders to use
descriptive names for attribute variables rather than generic
variables that are numbered from 0 to
<constant>GL_MAX_VERTEX_ATTRIBS</constant> -1. The values sent
to each generic attribute index are part of current state, just
like standard vertex attributes such as color, normal, and
vertex position. If a different program object is made current
by calling
<citerefentry><refentrytitle>glUseProgram</refentrytitle></citerefentry>,
the generic vertex attributes are tracked in such a way that the
same values will be observed by attributes in the new program
object that are also bound to
<parameter>index</parameter>.</para> <para>Attribute variable
name-to-generic attribute index bindings for a program object
can be explicitly assigned at any time by calling
<function>glBindAttribLocation</function>. Attribute bindings do
not go into effect until
<citerefentry><refentrytitle>glLinkProgram</refentrytitle></citerefentry>
is called. After a program object has been linked successfully,
the index values for generic attributes remain fixed (and their
values can be queried) until the next link command
occurs.</para>
<para>Applications are not allowed to bind any of the standard
OpenGL vertex attributes using this command, as they are bound
automatically when needed. Any attribute binding that occurs
after the program object has been linked will not take effect
until the next time the program object is linked.</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para><function>glBindAttribLocation</function> can be called
before any vertex shader objects are bound to the specified
program object. It is also permissible to bind a generic
attribute index to an attribute variable name that is never used
in a vertex shader.</para>
<para>If <parameter>name</parameter> was bound previously, that
information is lost. Thus you cannot bind one user-defined
attribute variable to multiple indices, but you can bind
multiple user-defined attribute variables to the same
index.</para>
<para>Applications are allowed to bind more than one
user-defined attribute variable to the same generic vertex
attribute index. This is called <emphasis>aliasing</emphasis>,
and it is allowed only if just one of the aliased attributes is
active in the executable program, or if no path through the
shader consumes more than one attribute of a set of attributes
aliased to the same location. The compiler and linker are
allowed to assume that no aliasing is done and are free to
employ optimizations that work only in the absence of aliasing.
OpenGL implementations are not required to do error checking to
detect aliasing. Because there is no way to bind standard
attributes, it is not possible to alias generic attributes with
conventional ones (except for generic attribute 0).</para>
<para>Active attributes that are not explicitly bound will be
bound by the linker when
<citerefentry><refentrytitle>glLinkProgram</refentrytitle></citerefentry>
is called. The locations assigned can be queried by calling
<citerefentry><refentrytitle>glGetAttribLocation</refentrytitle></citerefentry>.</para>
<para>OpenGL copies the <parameter>name</parameter> string when
<function>glBindAttribLocation</function> is called, so an
application may free its copy of the <parameter>name</parameter>
string immediately after the function returns.</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para><constant>GL_INVALID_VALUE</constant> is generated if
<parameter>index</parameter> is greater than or equal to
<constant>GL_MAX_VERTEX_ATTRIBS</constant>.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
<parameter>name</parameter> starts with the reserved prefix
&quot;gl_&quot;.</para>
<para><constant>GL_INVALID_VALUE</constant> is generated if
<parameter>program</parameter> is not a value generated by
OpenGL.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
<parameter>program</parameter> is not a program object.</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para><citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>
with argument <constant>GL_MAX_VERTEX_ATTRIBS</constant></para>
<para><citerefentry><refentrytitle>glGetActiveAttrib</refentrytitle></citerefentry>
with argument <parameter>program</parameter></para>
<para><citerefentry><refentrytitle>glGetAttribLocation</refentrytitle></citerefentry>
with arguments <parameter>program</parameter> and
<parameter>name</parameter></para>
<para><citerefentry><refentrytitle>glIsProgram</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para><citerefentry><refentrytitle>glDisableVertexAttribArray</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glEnableVertexAttribArray</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glUseProgram</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glVertexAttrib</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glVertexAttribPointer</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2003-2005 3Dlabs Inc. Ltd.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,139 @@
<?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="glBindBuffer">
<refmeta>
<refmetainfo>
<copyright>
<year>2005</year>
<holder>Sams Publishing</holder>
</copyright>
</refmetainfo>
<refentrytitle>glBindBuffer</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glBindBuffer</refname>
<refpurpose>bind a named buffer object</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glBindBuffer</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>GLuint <parameter>buffer</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>target</parameter></term>
<listitem>
<para>
Specifies the target to which the buffer object is bound.
The symbolic constant must be
<constant>GL_ARRAY_BUFFER</constant> or
<constant>GL_ELEMENT_ARRAY_BUFFER</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>buffer</parameter></term>
<listitem>
<para>
Specifies the name of a buffer object.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glBindBuffer</function> lets you create or use a named buffer object. Calling <function>glBindBuffer</function> with
<parameter>target</parameter> set to
<constant>GL_ARRAY_BUFFER</constant> or <constant>GL_ELEMENT_ARRAY_BUFFER</constant>
and <parameter>buffer</parameter> set to the name
of the new buffer object binds the buffer object name to the target.
When a buffer object is bound to a target, the previous binding for that
target is automatically broken.
</para>
<para>
Buffer object names are unsigned integers. The value zero is reserved, but
there is no default buffer object for each buffer object target. Instead, <parameter>buffer</parameter> set to zero
effectively unbinds any buffer object previously bound, and restores client memory usage for that buffer object target.
Buffer object names and the corresponding buffer object contents are local to
the shared object space of the current GL rendering context.
</para>
<para>
You may use <citerefentry><refentrytitle>glGenBuffers</refentrytitle></citerefentry> to generate a set of new buffer object names.
</para>
<para>
The state of a buffer object immediately after it is first bound is a zero-sized memory buffer with
<constant>GL_STATIC_DRAW</constant> usage.
</para>
<para>
While a non-zero buffer object name is bound, GL operations on the target to which it is
bound affect the bound buffer object, and queries of the target to which it is bound return state
from the bound buffer object. While buffer object name zero is bound, as in the initial state,
attempts to modify or query state on the target to which it is bound generates an
<constant>GL_INVALID_OPERATION</constant> error.
</para>
<para>
When vertex array pointer state is changed by a call to
<citerefentry><refentrytitle>glVertexAttribPointer</refentrytitle></citerefentry>,
the current buffer object binding (<constant>GL_ARRAY_BUFFER_BINDING</constant>) is copied into the
corresponding client state for the vertex attrib array being changed, one of the indexed
<constant>GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING</constant>s. While a non-zero buffer object is bound to the
<constant>GL_ARRAY_BUFFER</constant> target, the vertex array pointer parameter that is traditionally
interpreted as a pointer to client-side memory is instead interpreted as an offset within the
buffer object measured in basic machine units.
</para>
<para>
While a non-zero buffer object is bound to the <constant>GL_ELEMENT_ARRAY_BUFFER</constant> target,
the indices parameter of <citerefentry><refentrytitle>glDrawElements</refentrytitle></citerefentry> that is traditionally
interpreted as a pointer to client-side memory is instead interpreted as an offset within the
buffer object measured in basic machine units.
</para>
<para>
A buffer object binding created with <function>glBindBuffer</function> remains active until a different
buffer object name is bound to the same target, or until the bound buffer object is
deleted with <citerefentry><refentrytitle>glDeleteBuffers</refentrytitle></citerefentry>.
</para>
<para>
Once created, a named buffer object may be re-bound to any target as often as needed. However,
the GL implementation may make choices about how to optimize the storage of a buffer object based
on its initial binding target.
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>target</parameter> is not one of the allowable
values.
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_ARRAY_BUFFER_BINDING</constant>
</para>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_ELEMENT_ARRAY_BUFFER_BINDING</constant>
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glDeleteBuffers</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGenBuffers</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glIsBuffer</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2005 Addison-Wesley.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,160 @@
<?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="glBindFramebuffer">
<refmeta>
<refmetainfo>
<copyright>
<year>2005</year>
<holder>Sams Publishing</holder>
</copyright>
</refmetainfo>
<refentrytitle>glBindFramebuffer</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glBindFramebuffer</refname>
<refpurpose>bind a named framebuffer object</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glBindFramebuffer</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>GLuint <parameter>framebuffer</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>target</parameter></term>
<listitem>
<para>
Specifies the target to which the framebuffer object is bound.
The symbolic constant must be
<constant>GL_FRAMEBUFFER</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>framebuffer</parameter></term>
<listitem>
<para>
Specifies the name of a framebuffer object.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glBindFramebuffer</function> lets you create or use a named framebuffer object. Calling <function>glBindFramebuffer</function> with
<parameter>target</parameter> set to <constant>GL_FRAMEBUFFER</constant>
and <parameter>framebuffer</parameter> set to the name
of the new framebuffer object binds the framebuffer object name.
When a framebuffer object is bound, the previous binding
is automatically broken.
</para>
<para>
Framebuffer object names are unsigned integers. The value zero is reserved to represent the default framebuffer
provided by the windowing system. Framebuffer object names and the corresponding framebuffer object contents are local to
the shared object space of the current GL rendering context.
</para>
<para>
You may use <citerefentry><refentrytitle>glGenFramebuffers</refentrytitle></citerefentry> to generate a set of new framebuffer object names.
</para>
<para>
The state of a framebuffer object immediately after it is first bound is
three attachment points (<constant>GL_COLOR_ATTACHMENT0</constant>,
<constant>GL_DEPTH_ATTACHMENT</constant>, and
<constant>GL_STENCIL_ATTACHMENT</constant>) each with
<constant>GL_NONE</constant> as the object type.
</para>
<para>
While a non-zero framebuffer object name is bound, GL operations on
target <constant>GL_FRAMEBUFFER</constant> affect the bound framebuffer
object, and queries of target <constant>GL_FRAMEBUFFER</constant> or of
framebuffer details such as <constant>GL_DEPTH_BITS</constant>
return state from the bound framebuffer object. While framebuffer object
name zero is bound, as in the initial state, attempts to modify or query
state on target <constant>GL_FRAMEBUFFER</constant> generates an
<constant>GL_INVALID_OPERATION</constant> error.
</para>
<para>
While a non-zero framebuffer object name is bound, all rendering to the
framebuffer (with <citerefentry><refentrytitle>glDrawArrays</refentrytitle></citerefentry>
and <citerefentry><refentrytitle>glDrawElements</refentrytitle></citerefentry>)
and reading from the framebuffer (with
<citerefentry><refentrytitle>glReadPixels</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCopyTexImage2D</refentrytitle></citerefentry>,
or <citerefentry><refentrytitle>glCopyTexSubImage2D</refentrytitle></citerefentry>)
use the images attached to the application-created framebuffer object rather than the default
window-system-provided framebuffer.
</para>
<para>
Application created framebuffer objects (i.e. those with a non-zero name)
differ from the default window-system-provided framebuffer in a few
important ways. First, they have modifiable attachment points for
a color buffer, a depth buffer, and a stencil buffer to which framebuffer
attachable images may be attached and detached. Second, the size and format of the
attached images are controlled entirely within the GL and are not
affected by window-system events, such as pixel format selection,
window resizes, and display mode changes. Third, when rendering to or
reading from an application created framebuffer object, the pixel
ownership test always succeeds (i.e. they own all their pixels). Fourth,
there are no visible color buffer bitplanes, only a single &quot;off-screen&quot;
color image attachment, so there is no sense of front and back buffers
or swapping. Finally, there is no multisample buffer, so the value of
the implementation-dependent state variables
<constant>GL_SAMPLES</constant> and <constant>GL_SAMPLE_BUFFERS</constant>
are both zero for application created framebuffer objects.
</para>
<para>
A framebuffer object binding created with <function>glBindFramebuffer</function> remains active until a different
framebuffer object name is bound, or until the bound framebuffer object is
deleted with <citerefentry><refentrytitle>glDeleteFramebuffers</refentrytitle></citerefentry>.
</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>
Queries of implementation-dependent pixel depths and related state are
derived from the currently bound framebuffer object. These include
<constant>GL_RED_BITS</constant>, <constant>GL_GREEN_BITS</constant>,
<constant>GL_BLUE_BITS</constant>, <constant>GL_ALPHA_BITS</constant>,
<constant>GL_DEPTH_BITS</constant>, <constant>GL_STENCIL_BITS</constant>,
<constant>GL_IMPLEMENTATION_COLOR_READ_TYPE</constant>,
<constant>GL_IMPLEMENTATION_COLOR_READ_FORMAT</constant>,
<constant>GL_SAMPLES</constant>, and <constant>GL_SAMPLE_BUFFERS</constant>.
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>target</parameter> is not <constant>GL_FRAMEBUFFER</constant>.
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_FRAMEBUFFER_BINDING</constant>
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glDeleteFramebuffers</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glFramebufferRenderbuffer</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glFramebufferTexture2D</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGenFramebuffers</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetFramebufferAttachmentParameteriv</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glIsFramebuffer</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2008 Khronos Group.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,123 @@
<?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="glBindRenderbuffer">
<refmeta>
<refmetainfo>
<copyright>
<year>2005</year>
<holder>Sams Publishing</holder>
</copyright>
</refmetainfo>
<refentrytitle>glBindRenderbuffer</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glBindRenderbuffer</refname>
<refpurpose>bind a named renderbuffer object</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glBindRenderbuffer</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>GLuint <parameter>renderbuffer</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>target</parameter></term>
<listitem>
<para>
Specifies the target to which the renderbuffer object is bound.
The symbolic constant must be
<constant>GL_RENDERBUFFER</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>renderbuffer</parameter></term>
<listitem>
<para>
Specifies the name of a renderbuffer object.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
A renderbuffer is a data storage object containing a single
image of a renderable internal format. A renderbuffer's image
may be attached to a framebuffer object to use as a destination
for rendering and as a source for reading.
</para>
<para>
<function>glBindRenderbuffer</function> lets you create or use a named renderbuffer object. Calling <function>glBindRenderbuffer</function> with
<parameter>target</parameter> set to <constant>GL_RENDERBUFFER</constant>
and <parameter>renderbuffer</parameter> set to the name
of the new renderbuffer object binds the renderbuffer object name.
When a renderbuffer object is bound, the previous binding
is automatically broken.
</para>
<para>
Renderbuffer object names are unsigned integers. The value zero is reserved, but there is no default renderbuffer object.
Instead, <parameter>renderbuffer</parameter> set to zero effectively unbinds any renderbuffer object previously bound.
Renderbuffer object names and the corresponding renderbuffer object contents are local to
the shared object space of the current GL rendering context.
</para>
<para>
You may use <citerefentry><refentrytitle>glGenRenderbuffers</refentrytitle></citerefentry> to generate a set of new renderbuffer object names.
</para>
<para>
The state of a renderbuffer object immediately after it is first bound is
a zero-sized memory buffer with format <constant>GL_RGBA4</constant> and
zero-sized red, green, blue, alpha, depth, and stencil pixel depths.
</para>
<para>
While a non-zero renderbuffer object name is bound, GL operations on
target <constant>GL_RENDERBUFFER</constant> affect the bound renderbuffer
object, and queries of target <constant>GL_RENDERBUFFER</constant>
return state from the bound renderbuffer object. While renderbuffer object
name zero is bound, as in the initial state, attempts to modify or query
state on target <constant>GL_RENDERBUFFER</constant> generates an
<constant>GL_INVALID_OPERATION</constant> error.
</para>
<para>
A renderbuffer object binding created with <function>glBindRenderbuffer</function> remains active until a different
renderbuffer object name is bound, or until the bound renderbuffer object is
deleted with <citerefentry><refentrytitle>glDeleteRenderbuffers</refentrytitle></citerefentry>.
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>target</parameter> is not <constant>GL_RENDERBUFFER</constant>.
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_RENDERBUFFER_BINDING</constant>
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glDeleteRenderbuffers</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glFramebufferRenderbuffer</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGenRenderbuffers</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetRenderbufferParameteriv</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glIsRenderbuffer</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glRenderbufferStorage</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2008 Khronos Group.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,132 @@
<?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="glBindTexture">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glBindTexture</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glBindTexture</refname>
<refpurpose>bind a named texture to a texturing target</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glBindTexture</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>GLuint <parameter>texture</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>target</parameter></term>
<listitem>
<para>
Specifies the target of the active texture unit to which the texture is bound.
Must be either
<constant>GL_TEXTURE_2D</constant> or
<constant>GL_TEXTURE_CUBE_MAP</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>texture</parameter></term>
<listitem>
<para>
Specifies the name of a texture.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glBindTexture</function> lets you create or use a named texture. Calling <function>glBindTexture</function> with
<parameter>target</parameter> set to
<constant>GL_TEXTURE_2D</constant> or
<constant>GL_TEXTURE_CUBE_MAP</constant> and <parameter>texture</parameter> set to the name
of the new texture binds the texture name to the target of the current active texture unit.
When a texture is bound to a target, the previous binding for that
target is automatically broken.
</para>
<para>
Texture names are unsigned integers. The value zero is reserved to
represent the default texture for each texture target.
Texture names and the corresponding texture contents are local to
the shared object space of the current GL rendering context.
</para>
<para>
You may use <citerefentry><refentrytitle>glGenTextures</refentrytitle></citerefentry> to generate a set of new texture names.
</para>
<para>
When a texture is first bound, it assumes the specified target:
A texture first bound to <constant>GL_TEXTURE_2D</constant> becomes a two-dimensional texture and a
texture first bound to <constant>GL_TEXTURE_CUBE_MAP</constant>
becomes a cube-mapped texture. The state of a two-dimensional texture
immediately after it is first bound is equivalent to the state of the
default <constant>GL_TEXTURE_2D</constant> at GL initialization, and similarly for cube-mapped textures.
</para>
<para>
While a texture is bound, GL operations on the target to which it is
bound affect the bound texture, and queries of the target to which it
is bound return state from the bound texture.
In effect, the texture targets become aliases for the textures currently
bound to them, and the texture name zero refers to the default textures
that were bound to them at initialization.
</para>
<para>
A texture binding created with <function>glBindTexture</function> remains active until a different
texture is bound to the same target, or until the bound texture is
deleted with <citerefentry><refentrytitle>glDeleteTextures</refentrytitle></citerefentry>.
</para>
<para>
Once created, a named texture may be re-bound to its same original target as often as needed.
It is usually much faster to use <function>glBindTexture</function> to bind an existing named
texture to one of the texture targets than it is to reload the texture image
using <citerefentry><refentrytitle>glTexImage2D</refentrytitle></citerefentry>.
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>target</parameter> is not one of the allowable
values.
</para>
<para>
<constant>GL_INVALID_OPERATION</constant> is generated if <parameter>texture</parameter> was previously created with a target
that doesn't match that of <parameter>target</parameter>.
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_TEXTURE_BINDING_2D</constant> or <constant>GL_TEXTURE_BINDING_CUBE_MAP</constant>
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glDeleteTextures</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGenTextures</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetTexParameter</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glIsTexture</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glTexImage2D</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glTexParameter</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>

View file

@ -0,0 +1,82 @@
<?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="glBlendColor">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glBlendColor</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glBlendColor</refname>
<refpurpose>set the blend color</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glBlendColor</function></funcdef>
<paramdef>GLclampf <parameter>red</parameter></paramdef>
<paramdef>GLclampf <parameter>green</parameter></paramdef>
<paramdef>GLclampf <parameter>blue</parameter></paramdef>
<paramdef>GLclampf <parameter>alpha</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<!-- eqn: ignoring delim $$ -->
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>red</parameter></term>
<term><parameter>green</parameter></term>
<term><parameter>blue</parameter></term>
<term><parameter>alpha</parameter></term>
<listitem>
<para>
specify the components of <constant>GL_BLEND_COLOR</constant>
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
The <constant>GL_BLEND_COLOR</constant> may be used to calculate the source and destination
blending factors. The color components are clamped to the range
<inlineequation><mml:math>
<!-- eqn: [0,1]:-->
<mml:mfenced open="[" close="]">
<mml:mn>0</mml:mn>
<mml:mn>1</mml:mn>
</mml:mfenced>
</mml:math></inlineequation>
before being stored. See <citerefentry><refentrytitle>glBlendFunc</refentrytitle></citerefentry> for a complete description of the
blending operations.
Initially the <constant>GL_BLEND_COLOR</constant> is set to (0, 0, 0, 0).
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with an argument of <constant>GL_BLEND_COLOR</constant>
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glBlendEquation</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glBlendFunc</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetString</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>

View file

@ -0,0 +1,549 @@
<?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="glBlendEquation">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glBlendEquation</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glBlendEquation</refname>
<refpurpose>specify the equation used for both the RGB blend equation and the Alpha blend equation</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glBlendEquation</function></funcdef>
<paramdef>GLenum <parameter>mode</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<!-- eqn: ignoring delim $$ -->
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>mode</parameter></term>
<listitem>
<para>
specifies how source and destination colors are combined.
It must be <constant>GL_FUNC_ADD</constant>, <constant>GL_FUNC_SUBTRACT</constant>, or
<constant>GL_FUNC_REVERSE_SUBTRACT</constant>.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
The blend equations determine how a new pixel (the ''source'' color)
is combined with a pixel already in the framebuffer (the ''destination''
color). This function sets both the RGB blend equation and the alpha
blend equation to a single equation.
</para>
<para>
These equations use the source and destination blend factors
specified by either <citerefentry><refentrytitle>glBlendFunc</refentrytitle></citerefentry> or
<citerefentry><refentrytitle>glBlendFuncSeparate</refentrytitle></citerefentry>.
See <citerefentry><refentrytitle>glBlendFunc</refentrytitle></citerefentry> or <citerefentry><refentrytitle>glBlendFuncSeparate</refentrytitle></citerefentry>
for a description of the various blend factors.
</para>
<para>
In the equations that follow, source and destination
color components are referred to as
<inlineequation><mml:math>
<!-- eqn: ( R sub s, G sub s, B sub s, A sub s ):-->
<mml:mfenced open="(" close=")">
<mml:msub><mml:mi mathvariant="italic">R</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">G</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">B</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
</mml:mfenced>
</mml:math></inlineequation>
and
<inlineequation><mml:math>
<!-- eqn: ( R sub d, G sub d, B sub d, A sub d ):-->
<mml:mfenced open="(" close=")">
<mml:msub><mml:mi mathvariant="italic">R</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">G</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">B</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
</mml:mfenced>
</mml:math></inlineequation>,
respectively.
The result color is referred to as
<inlineequation><mml:math>
<!-- eqn: ( R sub r, G sub r, B sub r, A sub r ):-->
<mml:mfenced open="(" close=")">
<mml:msub><mml:mi mathvariant="italic">R</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">G</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">B</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:msub>
</mml:mfenced>
</mml:math></inlineequation>.
The source and destination blend factors are denoted
<inlineequation><mml:math>
<!-- eqn: ( s sub R, s sub G, s sub B, s sub A ):-->
<mml:mfenced open="(" close=")">
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mfenced>
</mml:math></inlineequation>
and
<inlineequation><mml:math>
<!-- eqn: ( d sub R, d sub G, d sub B, d sub A ):-->
<mml:mfenced open="(" close=")">
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mfenced>
</mml:math></inlineequation>,
respectively.
For these equations all color components are understood to have values
in the range
<inlineequation><mml:math>
<!-- eqn: [0,1]:-->
<mml:mfenced open="[" close="]">
<mml:mn>0</mml:mn>
<mml:mn>1</mml:mn>
</mml:mfenced>
</mml:math></inlineequation>.
<informaltable frame="topbot">
<tgroup cols="3" align="left">
<colspec/>
<colspec/>
<colspec/>
<thead>
<row>
<entry rowsep="1" align="left"><emphasis role="bold">
Mode
</emphasis></entry>
<entry rowsep="1" align="left"><emphasis role="bold">
RGB Components
</emphasis></entry>
<entry rowsep="1" align="left"><emphasis role="bold">
Alpha Component
</emphasis></entry>
</row>
</thead>
<tbody>
<row>
<entry align="left">
<constant>GL_FUNC_ADD</constant>
</entry>
<entry align="left">
<informalequation><mml:math>
<!-- eqn: Rr = R sub s s sub R + R sub d d sub R :-->
<mml:mrow>
<mml:mi mathvariant="italic">Rr</mml:mi>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">R</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub><mml:mi mathvariant="italic">R</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:math></informalequation>
<informalequation><mml:math>
<!-- eqn: Gr = G sub s s sub G + G sub d d sub G :-->
<mml:mrow>
<mml:mi mathvariant="italic">Gr</mml:mi>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">G</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub><mml:mi mathvariant="italic">G</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:math></informalequation>
<informalequation><mml:math>
<!-- eqn: Br = B sub s s sub B + B sub d d sub B :-->
<mml:mrow>
<mml:mi mathvariant="italic">Br</mml:mi>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">B</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub><mml:mi mathvariant="italic">B</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:math></informalequation>
</entry>
<entry align="left">
<informalequation><mml:math>
<!-- eqn: Ar = A sub s s sub A + A sub d d sub A :-->
<mml:mrow>
<mml:mi mathvariant="italic">Ar</mml:mi>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:math></informalequation>
</entry>
</row>
<row>
<entry align="left">
<constant>GL_FUNC_SUBTRACT</constant>
</entry>
<entry align="left">
<informalequation><mml:math>
<!-- eqn: Rr = R sub s s sub R - R sub d d sub R :-->
<mml:mrow>
<mml:mi mathvariant="italic">Rr</mml:mi>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">R</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub><mml:mi mathvariant="italic">R</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:math></informalequation>
<informalequation><mml:math>
<!-- eqn: Gr = G sub s s sub G - G sub d d sub G :-->
<mml:mrow>
<mml:mi mathvariant="italic">Gr</mml:mi>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">G</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub><mml:mi mathvariant="italic">G</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:math></informalequation>
<informalequation><mml:math>
<!-- eqn: Br = B sub s s sub B - B sub d d sub B :-->
<mml:mrow>
<mml:mi mathvariant="italic">Br</mml:mi>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">B</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub><mml:mi mathvariant="italic">B</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:math></informalequation>
</entry>
<entry align="left">
<informalequation><mml:math>
<!-- eqn: Ar = A sub s s sub A - A sub d d sub A :-->
<mml:mrow>
<mml:mi mathvariant="italic">Ar</mml:mi>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:math></informalequation>
</entry>
</row>
<row>
<entry align="left">
<constant>GL_FUNC_REVERSE_SUBTRACT</constant>
</entry>
<entry align="left">
<informalequation><mml:math>
<!-- eqn: Rr = R sub d d sub R - R sub s s sub R :-->
<mml:mrow>
<mml:mi mathvariant="italic">Rr</mml:mi>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">R</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub><mml:mi mathvariant="italic">R</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:math></informalequation>
<informalequation><mml:math>
<!-- eqn: Gr = G sub d d sub G - G sub s s sub G :-->
<mml:mrow>
<mml:mi mathvariant="italic">Gr</mml:mi>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">G</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub><mml:mi mathvariant="italic">G</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:math></informalequation>
<informalequation><mml:math>
<!-- eqn: Br = B sub d d sub B - B sub s s sub B :-->
<mml:mrow>
<mml:mi mathvariant="italic">Br</mml:mi>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">B</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub><mml:mi mathvariant="italic">B</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:math></informalequation>
</entry>
<entry align="left">
<informalequation><mml:math>
<!-- eqn: Ar = A sub d d sub A - A sub s s sub A :-->
<mml:mrow>
<mml:mi mathvariant="italic">Ar</mml:mi>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:math></informalequation>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
<para>
The results of these equations are clamped to the range
<inlineequation><mml:math>
<!-- eqn: [0,1]:-->
<mml:mfenced open="[" close="]">
<mml:mn>0</mml:mn>
<mml:mn>1</mml:mn>
</mml:mfenced>
</mml:math></inlineequation>.
</para>
<para>
The <constant>GL_FUNC_ADD</constant> equation is useful
for antialiasing and transparency, among other things.
</para>
<para>
Initially, both the RGB blend equation and the alpha blend equation are set to <constant>GL_FUNC_ADD</constant>.
</para>
<para>
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>mode</parameter> is not one of
<constant>GL_FUNC_ADD</constant>, <constant>GL_FUNC_SUBTRACT</constant>, or <constant>GL_FUNC_REVERSE_SUBTRACT</constant>.
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with an argument of <constant>GL_BLEND_EQUATION_RGB</constant>
</para>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with an argument of <constant>GL_BLEND_EQUATION_ALPHA</constant>
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glGetString</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glBlendColor</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glBlendEquationSeparate</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glBlendFunc</refentrytitle></citerefentry>
<citerefentry><refentrytitle>glBlendFuncSeparate</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>

View file

@ -0,0 +1,560 @@
<?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="glBlendEquationSeparate">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glBlendEquationSeparate</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glBlendEquationSeparate</refname>
<refpurpose>set the RGB blend equation and the alpha blend equation separately</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glBlendEquationSeparate</function></funcdef>
<paramdef>GLenum <parameter>modeRGB</parameter></paramdef>
<paramdef>GLenum <parameter>modeAlpha</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<!-- eqn: ignoring delim $$ -->
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>modeRGB</parameter></term>
<listitem>
<para>
specifies the RGB blend equation, how the red, green, and blue components of the source and destination colors are combined.
It must be <constant>GL_FUNC_ADD</constant>, <constant>GL_FUNC_SUBTRACT</constant>, or
<constant>GL_FUNC_REVERSE_SUBTRACT</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>modeAlpha</parameter></term>
<listitem>
<para>
specifies the alpha blend equation, how the alpha component of the source and destination colors are combined.
It must be <constant>GL_FUNC_ADD</constant>, <constant>GL_FUNC_SUBTRACT</constant>, or
<constant>GL_FUNC_REVERSE_SUBTRACT</constant>.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
The blend equations determines how a new pixel (the ''source'' color)
is combined with a pixel already in the framebuffer (the ''destination''
color). This function specifies one blend equation for the RGB-color
components and one blend equation for the alpha component.
</para>
<para>
The blend equations use the source and destination blend factors
specified by either <citerefentry><refentrytitle>glBlendFunc</refentrytitle></citerefentry> or
<citerefentry><refentrytitle>glBlendFuncSeparate</refentrytitle></citerefentry>.
See <citerefentry><refentrytitle>glBlendFunc</refentrytitle></citerefentry> or <citerefentry><refentrytitle>glBlendFuncSeparate</refentrytitle></citerefentry>
for a description of the various blend factors.
</para>
<para>
In the equations that follow, source and destination
color components are referred to as
<inlineequation><mml:math>
<!-- eqn: ( R sub s, G sub s, B sub s, A sub s ):-->
<mml:mfenced open="(" close=")">
<mml:msub><mml:mi mathvariant="italic">R</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">G</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">B</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
</mml:mfenced>
</mml:math></inlineequation>
and
<inlineequation><mml:math>
<!-- eqn: ( R sub d, G sub d, B sub d, A sub d ):-->
<mml:mfenced open="(" close=")">
<mml:msub><mml:mi mathvariant="italic">R</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">G</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">B</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
</mml:mfenced>
</mml:math></inlineequation>,
respectively.
The result color is referred to as
<inlineequation><mml:math>
<!-- eqn: ( R sub r, G sub r, B sub r, A sub r ):-->
<mml:mfenced open="(" close=")">
<mml:msub><mml:mi mathvariant="italic">R</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">G</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">B</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:msub>
</mml:mfenced>
</mml:math></inlineequation>.
The source and destination blend factors are denoted
<inlineequation><mml:math>
<!-- eqn: ( s sub R, s sub G, s sub B, s sub A ):-->
<mml:mfenced open="(" close=")">
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mfenced>
</mml:math></inlineequation>
and
<inlineequation><mml:math>
<!-- eqn: ( d sub R, d sub G, d sub B, d sub A ):-->
<mml:mfenced open="(" close=")">
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mfenced>
</mml:math></inlineequation>,
respectively.
For these equations all color components are understood to have values
in the range
<inlineequation><mml:math>
<!-- eqn: [0,1]:-->
<mml:mfenced open="[" close="]">
<mml:mn>0</mml:mn>
<mml:mn>1</mml:mn>
</mml:mfenced>
</mml:math></inlineequation>.
<informaltable frame="topbot">
<tgroup cols="3" align="left">
<colspec/>
<colspec/>
<colspec/>
<thead>
<row>
<entry rowsep="1" align="left"><emphasis role="bold">
Mode
</emphasis></entry>
<entry rowsep="1" align="left"><emphasis role="bold">
RGB Components
</emphasis></entry>
<entry rowsep="1" align="left"><emphasis role="bold">
Alpha Component
</emphasis></entry>
</row>
</thead>
<tbody>
<row>
<entry align="left">
<constant>GL_FUNC_ADD</constant>
</entry>
<entry align="left">
<informalequation><mml:math>
<!-- eqn: Rr = R sub s s sub R + R sub d d sub R :-->
<mml:mrow>
<mml:mi mathvariant="italic">Rr</mml:mi>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">R</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub><mml:mi mathvariant="italic">R</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:math></informalequation>
<informalequation><mml:math>
<!-- eqn: Gr = G sub s s sub G + G sub d d sub G :-->
<mml:mrow>
<mml:mi mathvariant="italic">Gr</mml:mi>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">G</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub><mml:mi mathvariant="italic">G</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:math></informalequation>
<informalequation><mml:math>
<!-- eqn: Br = B sub s s sub B + B sub d d sub B :-->
<mml:mrow>
<mml:mi mathvariant="italic">Br</mml:mi>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">B</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub><mml:mi mathvariant="italic">B</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:math></informalequation>
</entry>
<entry align="left">
<informalequation><mml:math>
<!-- eqn: Ar = A sub s s sub A + A sub d d sub A :-->
<mml:mrow>
<mml:mi mathvariant="italic">Ar</mml:mi>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:math></informalequation>
</entry>
</row>
<row>
<entry align="left">
<constant>GL_FUNC_SUBTRACT</constant>
</entry>
<entry align="left">
<informalequation><mml:math>
<!-- eqn: Rr = R sub s s sub R - R sub d d sub R :-->
<mml:mrow>
<mml:mi mathvariant="italic">Rr</mml:mi>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">R</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub><mml:mi mathvariant="italic">R</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:math></informalequation>
<informalequation><mml:math>
<!-- eqn: Gr = G sub s s sub G - G sub d d sub G :-->
<mml:mrow>
<mml:mi mathvariant="italic">Gr</mml:mi>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">G</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub><mml:mi mathvariant="italic">G</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:math></informalequation>
<informalequation><mml:math>
<!-- eqn: Br = B sub s s sub B - B sub d d sub B :-->
<mml:mrow>
<mml:mi mathvariant="italic">Br</mml:mi>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">B</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub><mml:mi mathvariant="italic">B</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:math></informalequation>
</entry>
<entry align="left">
<informalequation><mml:math>
<!-- eqn: Ar = A sub s s sub A - A sub d d sub A :-->
<mml:mrow>
<mml:mi mathvariant="italic">Ar</mml:mi>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:math></informalequation>
</entry>
</row>
<row>
<entry align="left">
<constant>GL_FUNC_REVERSE_SUBTRACT</constant>
</entry>
<entry align="left">
<informalequation><mml:math>
<!-- eqn: Rr = R sub d d sub R - R sub s s sub R :-->
<mml:mrow>
<mml:mi mathvariant="italic">Rr</mml:mi>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">R</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub><mml:mi mathvariant="italic">R</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:math></informalequation>
<informalequation><mml:math>
<!-- eqn: Gr = G sub d d sub G - G sub s s sub G :-->
<mml:mrow>
<mml:mi mathvariant="italic">Gr</mml:mi>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">G</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub><mml:mi mathvariant="italic">G</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:math></informalequation>
<informalequation><mml:math>
<!-- eqn: Br = B sub d d sub B - B sub s s sub B :-->
<mml:mrow>
<mml:mi mathvariant="italic">Br</mml:mi>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">B</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub><mml:mi mathvariant="italic">B</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:math></informalequation>
</entry>
<entry align="left">
<informalequation><mml:math>
<!-- eqn: Ar = A sub d d sub A - A sub s s sub A :-->
<mml:mrow>
<mml:mi mathvariant="italic">Ar</mml:mi>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:math></informalequation>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
<para>
The results of these equations are clamped to the range
<inlineequation><mml:math>
<!-- eqn: [0,1]:-->
<mml:mfenced open="[" close="]">
<mml:mn>0</mml:mn>
<mml:mn>1</mml:mn>
</mml:mfenced>
</mml:math></inlineequation>.
</para>
<para>
The <constant>GL_FUNC_ADD</constant> equation is useful
for antialiasing and transparency, among other things.
</para>
<para>
Initially, both the RGB blend equation and the alpha blend equation are set to <constant>GL_FUNC_ADD</constant>.
</para>
<para>
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if either <parameter>modeRGB</parameter> or <parameter>modeAlpha</parameter> is not one of
<constant>GL_FUNC_ADD</constant>, <constant>GL_FUNC_SUBTRACT</constant>, or <constant>GL_FUNC_REVERSE_SUBTRACT</constant>.
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with an argument of <constant>GL_BLEND_EQUATION_RGB</constant>
</para>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with an argument of <constant>GL_BLEND_EQUATION_ALPHA</constant>
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glGetString</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glBlendColor</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glBlendEquation</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glBlendFunc</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glBlendFuncSeparate</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2006 Khronos Group.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,989 @@
<?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="glBlendFunc">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glBlendFunc</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glBlendFunc</refname>
<refpurpose>specify pixel arithmetic</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glBlendFunc</function></funcdef>
<paramdef>GLenum <parameter>sfactor</parameter></paramdef>
<paramdef>GLenum <parameter>dfactor</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<!-- eqn: ignoring delim $$ -->
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>sfactor</parameter></term>
<listitem>
<para>
Specifies how the red, green, blue,
and alpha source blending factors are computed.
The following symbolic constants are accepted:
<constant>GL_ZERO</constant>,
<constant>GL_ONE</constant>,
<constant>GL_SRC_COLOR</constant>,
<constant>GL_ONE_MINUS_SRC_COLOR</constant>,
<constant>GL_DST_COLOR</constant>,
<constant>GL_ONE_MINUS_DST_COLOR</constant>,
<constant>GL_SRC_ALPHA</constant>,
<constant>GL_ONE_MINUS_SRC_ALPHA</constant>,
<constant>GL_DST_ALPHA</constant>,
<constant>GL_ONE_MINUS_DST_ALPHA</constant>,
<constant>GL_CONSTANT_COLOR</constant>,
<constant>GL_ONE_MINUS_CONSTANT_COLOR</constant>,
<constant>GL_CONSTANT_ALPHA</constant>,
<constant>GL_ONE_MINUS_CONSTANT_ALPHA</constant>, and
<constant>GL_SRC_ALPHA_SATURATE</constant>.
The initial value is <constant>GL_ONE</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>dfactor</parameter></term>
<listitem>
<para>
Specifies how the red, green, blue,
and alpha destination blending factors are computed.
The following symbolic constants are accepted:
<constant>GL_ZERO</constant>,
<constant>GL_ONE</constant>,
<constant>GL_SRC_COLOR</constant>,
<constant>GL_ONE_MINUS_SRC_COLOR</constant>,
<constant>GL_DST_COLOR</constant>,
<constant>GL_ONE_MINUS_DST_COLOR</constant>,
<constant>GL_SRC_ALPHA</constant>,
<constant>GL_ONE_MINUS_SRC_ALPHA</constant>,
<constant>GL_DST_ALPHA</constant>,
<constant>GL_ONE_MINUS_DST_ALPHA</constant>.
<constant>GL_CONSTANT_COLOR</constant>,
<constant>GL_ONE_MINUS_CONSTANT_COLOR</constant>,
<constant>GL_CONSTANT_ALPHA</constant>, and
<constant>GL_ONE_MINUS_CONSTANT_ALPHA</constant>.
The initial value is <constant>GL_ZERO</constant>.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
Pixels can be drawn using a function that blends
the incoming (source) RGBA values with the RGBA values
that are already in the frame buffer (the destination values).
Blending is initially disabled.
Use <citerefentry><refentrytitle>glEnable</refentrytitle></citerefentry> and <citerefentry><refentrytitle>glDisable</refentrytitle></citerefentry> with argument <constant>GL_BLEND</constant>
to enable and disable blending.
</para>
<para>
<function>glBlendFunc</function> defines the operation of blending when it is enabled.
<parameter>sfactor</parameter> specifies which method is used to scale the
source color components.
<parameter>dfactor</parameter> specifies which method is used to scale the
destination color components.
The possible methods are described in the following table.
Each method defines four scale factors,
one each for red, green, blue, and alpha.
In the table and in subsequent equations, source and destination
color components are referred to as
<inlineequation><mml:math>
<!-- eqn: ( R sub s , G sub s , B sub s , A sub s ):-->
<mml:mfenced open="(" close=")">
<mml:msub><mml:mi mathvariant="italic">R</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">G</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">B</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
</mml:mfenced>
</mml:math></inlineequation>
and
<inlineequation><mml:math>
<!-- eqn: ( R sub d , G sub d , B sub d , A sub d ):-->
<mml:mfenced open="(" close=")">
<mml:msub><mml:mi mathvariant="italic">R</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">G</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">B</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
</mml:mfenced>
</mml:math></inlineequation>.
The color specified by <citerefentry><refentrytitle>glBlendColor</refentrytitle></citerefentry> is referred to as
<inlineequation><mml:math>
<!-- eqn: ( R sub c , G sub c , B sub c , A sub c ):-->
<mml:mfenced open="(" close=")">
<mml:msub><mml:mi mathvariant="italic">R</mml:mi>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">G</mml:mi>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">B</mml:mi>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:msub>
</mml:mfenced>
</mml:math></inlineequation>.
They are understood to have integer values between 0 and
<inlineequation><mml:math>
<!-- eqn: ( k sub R , k sub G , k sub B , k sub A ):-->
<mml:mfenced open="(" close=")">
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mfenced>
</mml:math></inlineequation>,
where
</para>
<para>
<para>
<inlineequation><mml:math>
<!-- eqn: k sub c = 2 sup {m sub c} - 1:-->
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:msup><mml:mn>2</mml:mn>
<mml:mfenced open="" close="">
<mml:msub><mml:mi mathvariant="italic">m</mml:mi>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:msub>
</mml:mfenced>
</mml:msup>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:math></inlineequation>
</para>
</para>
<para>
and
<inlineequation><mml:math>
<!-- eqn: ( m sub R , m sub G , m sub B , m sub A ):-->
<mml:mfenced open="(" close=")">
<mml:msub><mml:mi mathvariant="italic">m</mml:mi>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">m</mml:mi>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">m</mml:mi>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">m</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mfenced>
</mml:math></inlineequation>
is the number of red,
green,
blue,
and alpha bitplanes.
</para>
<para>
Source and destination scale factors are referred to as
<inlineequation><mml:math>
<!-- eqn: ( s sub R , s sub G , s sub B , s sub A ):-->
<mml:mfenced open="(" close=")">
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mfenced>
</mml:math></inlineequation>
and
<inlineequation><mml:math>
<!-- eqn: ( d sub R , d sub G , d sub B , d sub A ):-->
<mml:mfenced open="(" close=")">
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mfenced>
</mml:math></inlineequation>.
The scale factors described in the table,
denoted
<inlineequation><mml:math>
<!-- eqn: ( f sub R , f sub G , f sub B , f sub A ):-->
<mml:mfenced open="(" close=")">
<mml:msub><mml:mi mathvariant="italic">f</mml:mi>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">f</mml:mi>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">f</mml:mi>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">f</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mfenced>
</mml:math></inlineequation>,
represent either source or destination factors.
All scale factors have range
<inlineequation><mml:math>
<!-- eqn: [0,1]:-->
<mml:mfenced open="[" close="]">
<mml:mn>0</mml:mn>
<mml:mn>1</mml:mn>
</mml:mfenced>
</mml:math></inlineequation>.
</para>
<para>
</para>
<informaltable frame="topbot">
<tgroup cols="2" align="left">
<colspec/>
<colspec/>
<thead>
<row>
<entry rowsep="1" align="left"><emphasis role="bold">
Parameter
</emphasis></entry>
<entry rowsep="1" align="left"><emphasis role="bold">
<inlineequation><mml:math>
<!-- eqn: ( f sub R , f sub G , f sub B , f sub A ):-->
<mml:mfenced open="(" close=")">
<mml:msub><mml:mi mathvariant="italic">f</mml:mi>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">f</mml:mi>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">f</mml:mi>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">f</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mfenced>
</mml:math></inlineequation>
</emphasis></entry>
</row>
</thead>
<tbody>
<row>
<entry align="left">
<constant>GL_ZERO</constant>
</entry>
<entry align="left">
<inlineequation><mml:math>
<!-- eqn: ( 0, 0, 0, 0 ):-->
<mml:mfenced open="(" close=")">
<mml:mn>0</mml:mn>
<mml:mn>0</mml:mn>
<mml:mn>0</mml:mn>
<mml:mn>0</mml:mn>
</mml:mfenced>
</mml:math></inlineequation>
</entry>
</row>
<row>
<entry align="left">
<constant>GL_ONE</constant>
</entry>
<entry align="left">
<inlineequation><mml:math>
<!-- eqn: ( 1, 1, 1, 1 ):-->
<mml:mfenced open="(" close=")">
<mml:mn>1</mml:mn>
<mml:mn>1</mml:mn>
<mml:mn>1</mml:mn>
<mml:mn>1</mml:mn>
</mml:mfenced>
</mml:math></inlineequation>
</entry>
</row>
<row>
<entry align="left">
<constant>GL_SRC_COLOR</constant>
</entry>
<entry align="left">
<inlineequation><mml:math>
<!-- eqn: ( R sub s / k sub R , G sub s / k sub G , B sub s / k sub B , A sub s / k sub A ):-->
<mml:mfenced open="(" close=")">
<mml:mfrac>
<mml:msub><mml:mi mathvariant="italic">R</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:msub>
</mml:mfrac>
<mml:mfrac>
<mml:msub><mml:mi mathvariant="italic">G</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:msub>
</mml:mfrac>
<mml:mfrac>
<mml:msub><mml:mi mathvariant="italic">B</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:msub>
</mml:mfrac>
<mml:mfrac>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mfrac>
</mml:mfenced>
</mml:math></inlineequation>
</entry>
</row>
<row>
<entry align="left">
<constant>GL_ONE_MINUS_SRC_COLOR</constant>
</entry>
<entry align="left">
<inlineequation><mml:math>
<!-- eqn: ( 1, 1, 1, 1 ) - (R sub s / k sub R , G sub s / k sub G , B sub s / k sub B , A sub s / k sub A ):-->
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mn>1</mml:mn>
<mml:mn>1</mml:mn>
<mml:mn>1</mml:mn>
<mml:mn>1</mml:mn>
</mml:mfenced>
<mml:mo>-</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mfrac>
<mml:msub><mml:mi mathvariant="italic">R</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:msub>
</mml:mfrac>
<mml:mfrac>
<mml:msub><mml:mi mathvariant="italic">G</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:msub>
</mml:mfrac>
<mml:mfrac>
<mml:msub><mml:mi mathvariant="italic">B</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:msub>
</mml:mfrac>
<mml:mfrac>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mfrac>
</mml:mfenced>
</mml:mrow>
</mml:math></inlineequation>
</entry>
</row>
<row>
<entry align="left">
<constant>GL_DST_COLOR</constant>
</entry>
<entry align="left">
<inlineequation><mml:math>
<!-- eqn: ( R sub d / k sub R , G sub d / k sub G , B sub d / k sub B , A sub d / k sub A ):-->
<mml:mfenced open="(" close=")">
<mml:mfrac>
<mml:msub><mml:mi mathvariant="italic">R</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:msub>
</mml:mfrac>
<mml:mfrac>
<mml:msub><mml:mi mathvariant="italic">G</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:msub>
</mml:mfrac>
<mml:mfrac>
<mml:msub><mml:mi mathvariant="italic">B</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:msub>
</mml:mfrac>
<mml:mfrac>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mfrac>
</mml:mfenced>
</mml:math></inlineequation>
</entry>
</row>
<row>
<entry align="left">
<constant>GL_ONE_MINUS_DST_COLOR</constant>
</entry>
<entry align="left">
<inlineequation><mml:math>
<!-- eqn: ( 1, 1, 1, 1 ) - (R sub d / k sub R , G sub d / k sub G , B sub d / k sub B , A sub d / k sub A ):-->
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mn>1</mml:mn>
<mml:mn>1</mml:mn>
<mml:mn>1</mml:mn>
<mml:mn>1</mml:mn>
</mml:mfenced>
<mml:mo>-</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mfrac>
<mml:msub><mml:mi mathvariant="italic">R</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:msub>
</mml:mfrac>
<mml:mfrac>
<mml:msub><mml:mi mathvariant="italic">G</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:msub>
</mml:mfrac>
<mml:mfrac>
<mml:msub><mml:mi mathvariant="italic">B</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:msub>
</mml:mfrac>
<mml:mfrac>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mfrac>
</mml:mfenced>
</mml:mrow>
</mml:math></inlineequation>
</entry>
</row>
<row>
<entry align="left">
<constant>GL_SRC_ALPHA</constant>
</entry>
<entry align="left">
<inlineequation><mml:math>
<!-- eqn: ( A sub s / k sub A , A sub s / k sub A , A sub s / k sub A , A sub s / k sub A ):-->
<mml:mfenced open="(" close=")">
<mml:mfrac>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mfrac>
<mml:mfrac>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mfrac>
<mml:mfrac>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mfrac>
<mml:mfrac>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mfrac>
</mml:mfenced>
</mml:math></inlineequation>
</entry>
</row>
<row>
<entry align="left">
<constant>GL_ONE_MINUS_SRC_ALPHA</constant>
</entry>
<entry align="left">
<inlineequation><mml:math>
<!-- eqn: ( 1, 1, 1, 1 ) - (A sub s / k sub A , A sub s / k sub A , A sub s / k sub A , A sub s / k sub A ):-->
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mn>1</mml:mn>
<mml:mn>1</mml:mn>
<mml:mn>1</mml:mn>
<mml:mn>1</mml:mn>
</mml:mfenced>
<mml:mo>-</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mfrac>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mfrac>
<mml:mfrac>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mfrac>
<mml:mfrac>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mfrac>
<mml:mfrac>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mfrac>
</mml:mfenced>
</mml:mrow>
</mml:math></inlineequation>
</entry>
</row>
<row>
<entry align="left">
<constant>GL_DST_ALPHA</constant>
</entry>
<entry align="left">
<inlineequation><mml:math>
<!-- eqn: ( A sub d / k sub A , A sub d / k sub A , A sub d / k sub A , A sub d / k sub A ):-->
<mml:mfenced open="(" close=")">
<mml:mfrac>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mfrac>
<mml:mfrac>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mfrac>
<mml:mfrac>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mfrac>
<mml:mfrac>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mfrac>
</mml:mfenced>
</mml:math></inlineequation>
</entry>
</row>
<row>
<entry align="left">
<constant>GL_ONE_MINUS_DST_ALPHA</constant>
</entry>
<entry align="left">
<inlineequation><mml:math>
<!-- eqn: ( 1, 1, 1, 1 ) - ( A sub d / k sub A , A sub d / k sub A , A sub d / k sub A , A sub d / k sub A ):-->
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mn>1</mml:mn>
<mml:mn>1</mml:mn>
<mml:mn>1</mml:mn>
<mml:mn>1</mml:mn>
</mml:mfenced>
<mml:mo>-</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mfrac>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mfrac>
<mml:mfrac>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mfrac>
<mml:mfrac>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mfrac>
<mml:mfrac>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mfrac>
</mml:mfenced>
</mml:mrow>
</mml:math></inlineequation>
</entry>
</row>
<row>
<entry align="left">
<constant>GL_CONSTANT_COLOR</constant>
</entry>
<entry align="left">
<inlineequation><mml:math>
<!-- eqn: ( R sub c, G sub c, B sub c, A sub c ):-->
<mml:mfenced open="(" close=")">
<mml:msub><mml:mi mathvariant="italic">R</mml:mi>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">G</mml:mi>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">B</mml:mi>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:msub>
</mml:mfenced>
</mml:math></inlineequation>
</entry>
</row>
<row>
<entry align="left">
<constant>GL_ONE_MINUS_CONSTANT_COLOR</constant>
</entry>
<entry align="left">
<inlineequation><mml:math>
<!-- eqn: ( 1, 1, 1, 1 ) - ( R sub c, G sub c, B sub c, A sub c ):-->
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mn>1</mml:mn>
<mml:mn>1</mml:mn>
<mml:mn>1</mml:mn>
<mml:mn>1</mml:mn>
</mml:mfenced>
<mml:mo>-</mml:mo>
<mml:mfenced open="(" close=")">
<mml:msub><mml:mi mathvariant="italic">R</mml:mi>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">G</mml:mi>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">B</mml:mi>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:msub>
</mml:mfenced>
</mml:mrow>
</mml:math></inlineequation>
</entry>
</row>
<row>
<entry align="left">
<constant>GL_CONSTANT_ALPHA</constant>
</entry>
<entry align="left">
<inlineequation><mml:math>
<!-- eqn: ( A sub c, A sub c, A sub c, A sub c ):-->
<mml:mfenced open="(" close=")">
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:msub>
</mml:mfenced>
</mml:math></inlineequation>
</entry>
</row>
<row>
<entry align="left">
<constant>GL_ONE_MINUS_CONSTANT_ALPHA</constant>
</entry>
<entry align="left">
<inlineequation><mml:math>
<!-- eqn: ( 1, 1, 1, 1 ) - ( A sub c, A sub c, A sub c, A sub c ):-->
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mn>1</mml:mn>
<mml:mn>1</mml:mn>
<mml:mn>1</mml:mn>
<mml:mn>1</mml:mn>
</mml:mfenced>
<mml:mo>-</mml:mo>
<mml:mfenced open="(" close=")">
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:msub>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:msub>
</mml:mfenced>
</mml:mrow>
</mml:math></inlineequation>
</entry>
</row>
<row>
<entry align="left">
<constant>GL_SRC_ALPHA_SATURATE</constant>
</entry>
<entry align="left">
<inlineequation><mml:math>
<!-- eqn: ( i, i, i, 1 ):-->
<mml:mfenced open="(" close=")">
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mn>1</mml:mn>
</mml:mfenced>
</mml:math></inlineequation>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>
In the table,
</para>
<para>
<para>
<inlineequation><mml:math>
<!-- eqn: i = min (A sub s , k sub A - A sub d ) / k sub A:-->
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="italic">min</mml:mi>
<mml:mo>&af;</mml:mo>
<mml:mfenced open="(" close=")">
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:msub>
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:msub><mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub><mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:mfrac>
</mml:mrow>
</mml:math></inlineequation>
</para>
</para>
<para>
To determine the blended RGBA values of a pixel,
the system uses one of the equations set by
<citerefentry><refentrytitle>glBlendEquation</refentrytitle></citerefentry> or
<citerefentry><refentrytitle>glBlendEquationSeparate</refentrytitle></citerefentry>.
</para>
<para>
Blending arithmetic is not exactly specified,
because blending operates with imprecise integer color values.
However,
a blend factor that should be equal to 1
is guaranteed not to modify its multiplicand,
and a blend factor equal to 0 reduces its multiplicand to 0.
</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>
Incoming (source) alpha is correctly thought of as a material opacity,
ranging from 1.0
(<inlineequation><mml:math>
<!-- eqn: K sub A:-->
<mml:msub><mml:mi mathvariant="italic">K</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:msub>
</mml:math></inlineequation>),
representing complete opacity,
to 0.0 (0), representing complete
transparency.
</para>
<para>
Transparency is best implemented using blend function
(<constant>GL_SRC_ALPHA</constant>, <constant>GL_ONE_MINUS_SRC_ALPHA</constant>)
with primitives sorted from farthest to nearest.
Note that this transparency calculation does not require
the presence of alpha bitplanes in the frame buffer.
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if either <parameter>sfactor</parameter> or <parameter>dfactor</parameter> is not an
accepted value.
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_BLEND_SRC_RGB</constant> or <constant>GL_BLEND_SRC_ALPHA</constant>
</para>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_BLEND_DST_RGB</constant> or <constant>GL_BLEND_DST_ALPHA</constant>
</para>
<para>
<citerefentry><refentrytitle>glIsEnabled</refentrytitle></citerefentry> with argument <constant>GL_BLEND</constant>
</para>
<para>
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glBlendColor</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glBlendEquation</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glBlendEquationSeparate</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glBlendFuncSeparate</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glClear</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glEnable</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glStencilFunc</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>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,179 @@
<?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="glBufferData">
<refmeta>
<refmetainfo>
<copyright>
<year>2005</year>
<holder>Sams Publishing</holder>
</copyright>
</refmetainfo>
<refentrytitle>glBufferData</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glBufferData</refname>
<refpurpose>create and initialize a buffer object's data store</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glBufferData</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>GLsizeiptr <parameter>size</parameter></paramdef>
<paramdef>const GLvoid * <parameter>data</parameter></paramdef>
<paramdef>GLenum <parameter>usage</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<!-- eqn: ignoring delim $$ -->
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>target</parameter></term>
<listitem>
<para>
Specifies the target buffer object.
The symbolic constant must be <constant>GL_ARRAY_BUFFER</constant> or
<constant>GL_ELEMENT_ARRAY_BUFFER</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>size</parameter></term>
<listitem>
<para>
Specifies the size in bytes of the buffer object's new data store.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>data</parameter></term>
<listitem>
<para>
Specifies a pointer to data that will be copied into the data store for initialization,
or <constant>NULL</constant> if no data is to be copied.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>usage</parameter></term>
<listitem>
<para>
Specifies the expected usage pattern of the data store. The symbolic constant must be
<constant>GL_STREAM_DRAW</constant>, <constant>GL_STATIC_DRAW</constant>, or
<constant>GL_DYNAMIC_DRAW</constant>.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glBufferData</function> creates a new data store for the buffer object currently bound to
<parameter>target</parameter>. Any pre-existing data store is deleted. The new data store is created with the
specified <parameter>size</parameter> in bytes and <parameter>usage</parameter>. If <parameter>data</parameter>
is not <constant>NULL</constant>, the data store is initialized with data from this pointer.
</para>
<para>
<parameter>usage</parameter> is a hint to the GL implementation as to how a buffer object's data store will be
accessed. This enables the GL implementation to make more intelligent decisions that may significantly
impact buffer object performance. It does not, however, constrain the actual usage of the data store.
<parameter>usage</parameter> can be broken down into two parts: first, the frequency of access (modification
and usage), and second, the nature of that access. The frequency of access may be one of these:
</para>
<variablelist>
<varlistentry>
<term>STREAM</term>
<listitem>
<para>
The data store contents will be modified once and used at most a few times.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>STATIC</term>
<listitem>
<para>
The data store contents will be modified once and used many times.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>DYNAMIC</term>
<listitem>
<para>
The data store contents will be modified repeatedly and used many times.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
The nature of access must be:
</para>
<variablelist>
<varlistentry>
<term>DRAW</term>
<listitem>
<para>
The data store contents are modified by the application, and used as the source for GL drawing and
image specification commands.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>
If <parameter>data</parameter> is <constant>NULL</constant>, a data store of the specified size is still created,
but its contents remain uninitialized and thus undefined.
</para>
<para>
Clients must align data elements consistent with the requirements of the client
platform, with an additional base-level requirement that an offset within a buffer to
a datum comprising <inlineequation><mml:math><mml:mi mathvariant="italic">N</mml:mi> be a
multiple of <mml:mi mathvariant="italic">N</mml:mi></mml:math></inlineequation>.
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>target</parameter> is not
<constant>GL_ARRAY_BUFFER</constant> or <constant>GL_ELEMENT_ARRAY_BUFFER</constant>.
</para>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>usage</parameter> is not
<constant>GL_STREAM_DRAW</constant>,
<constant>GL_STATIC_DRAW</constant>, or
<constant>GL_DYNAMIC_DRAW</constant>.
</para>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if <parameter>size</parameter> is negative.
</para>
<para>
<constant>GL_INVALID_OPERATION</constant> is generated if the reserved buffer object name 0 is bound to <parameter>target</parameter>.
</para>
<para>
<constant>GL_OUT_OF_MEMORY</constant> is generated if the GL is unable to create a data store with the specified <parameter>size</parameter>.
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glGetBufferParameteriv</refentrytitle></citerefentry> with argument <constant>GL_BUFFER_SIZE</constant> or <constant>GL_BUFFER_USAGE</constant>
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glBindBuffer</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glBufferSubData</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2005 Addison-Wesley.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,126 @@
<?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="glBufferSubData">
<refmeta>
<refmetainfo>
<copyright>
<year>2005</year>
<holder>Sams Publishing</holder>
</copyright>
</refmetainfo>
<refentrytitle>glBufferSubData</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glBufferSubData</refname>
<refpurpose>update a subset of a buffer object's data store</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glBufferSubData</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>GLintptr <parameter>offset</parameter></paramdef>
<paramdef>GLsizeiptr <parameter>size</parameter></paramdef>
<paramdef>const GLvoid * <parameter>data</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<!-- eqn: ignoring delim $$ -->
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>target</parameter></term>
<listitem>
<para>
Specifies the target buffer object.
The symbolic constant must be <constant>GL_ARRAY_BUFFER</constant> or
<constant>GL_ELEMENT_ARRAY_BUFFER</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>offset</parameter></term>
<listitem>
<para>
Specifies the offset into the buffer object's data store where data replacement will begin,
measured in bytes.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>size</parameter></term>
<listitem>
<para>
Specifies the size in bytes of the data store region being replaced.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>data</parameter></term>
<listitem>
<para>
Specifies a pointer to the new data that will be copied into the data store.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glBufferSubData</function> redefines some or all of the data store for the buffer object currently
bound to <parameter>target</parameter>. Data starting at byte offset <parameter>offset</parameter> and
extending for <parameter>size</parameter> bytes is copied to the data store from the memory pointed to by
<parameter>data</parameter>. An error is thrown if <parameter>offset</parameter> and <parameter>size</parameter>
together define a range beyond the bounds of the buffer object's data store.
</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>
When replacing the entire data store, consider using <function>glBufferSubData</function> rather
than completely recreating the data store with <function>glBufferData</function>. This avoids the cost of
reallocating the data store.
</para>
<para>
Consider using multiple buffer objects to avoid stalling the rendering pipeline during data store updates.
If any rendering in the pipeline makes reference to data in the buffer object being updated by
<function>glBufferSubData</function>, especially from the specific region being updated, that rendering must
drain from the pipeline before the data store can be updated.
</para>
<para>
Clients must align data elements consistent with the requirements of the client
platform, with an additional base-level requirement that an offset within a buffer to
a datum comprising <inlineequation><mml:math><mml:mi mathvariant="italic">N</mml:mi> be a
multiple of <mml:mi mathvariant="italic">N</mml:mi></mml:math></inlineequation>.
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>target</parameter> is not
<constant>GL_ARRAY_BUFFER</constant> or <constant>GL_ELEMENT_ARRAY_BUFFER</constant>.
</para>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if <parameter>offset</parameter> or
<parameter>size</parameter> is negative, or if together they define a region of memory
that extends beyond the buffer object's allocated data store.
</para>
<para>
<constant>GL_INVALID_OPERATION</constant> is generated if the reserved buffer object name 0 is bound to <parameter>target</parameter>.
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glBindBuffer</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glBufferData</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2005 Addison-Wesley.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,164 @@
<?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="glCheckFramebufferStatus">
<refmeta>
<refmetainfo>
<copyright>
<year>2005</year>
<holder>Sams Publishing</holder>
</copyright>
</refmetainfo>
<refentrytitle>glCheckFramebufferStatus</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glCheckFramebufferStatus</refname>
<refpurpose>return the framebuffer completeness status of a framebuffer object</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>GLenum <function>glCheckFramebufferStatus</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>target</parameter></term>
<listitem>
<para>
Specifies the target framebuffer object.
The symbolic constant must be <constant>GL_FRAMEBUFFER</constant>.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glCheckFramebufferStatus</function> returns a symbolic
constant that identifies whether or not the currently bound
framebuffer is framebuffer complete, and if not, which of the rules
of framebuffer completeness is violated.
</para>
<para>
If the framebuffer is complete, then
<constant>GL_FRAMEBUFFER_COMPLETE</constant> is returned.
If the framebuffer is not complete, the return values are as follows:
</para>
<variablelist>
<varlistentry>
<term><constant>GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT</constant></term>
<listitem>
<para>
Not all framebuffer attachment points are framebuffer
attachment complete. This means that at least one
attachment point with a renderbuffer or texture
attached has its attached object no longer in existence
or has an attached image with a width or height of
zero, or the color attachment point has a
non-color-renderable image attached, or the
depth attachment point has a non-depth-renderable
image attached, or the stencil attachment point has a
non-stencil-renderable image attached.
</para>
<para>
Color-renderable formats include <constant>GL_RGBA4</constant>,
<constant>GL_RGB5_A1</constant>, and
<constant>GL_RGB565</constant>.
<constant>GL_DEPTH_COMPONENT16</constant> is the only
depth-renderable format.
<constant>GL_STENCIL_INDEX8</constant> is the only
stencil-renderable format.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS</constant></term>
<listitem>
<para>
Not all attached images have the same width and height.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT</constant></term>
<listitem>
<para>
No images are attached to the framebuffer.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_FRAMEBUFFER_UNSUPPORTED</constant></term>
<listitem>
<para>
The combination of internal formats of the attached
images violates an implementation-dependent set of
restrictions.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
If the currently bound framebuffer is not framebuffer complete,
then it is an error to attempt to use the framebuffer for
writing or reading. This means that rendering commands
(<citerefentry><refentrytitle>glClear</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDrawArrays</refentrytitle></citerefentry>, and
<citerefentry><refentrytitle>glDrawElements</refentrytitle></citerefentry>)
as well as commands that read the framebuffer
(<citerefentry><refentrytitle>glReadPixels</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCopyTexImage2D</refentrytitle></citerefentry>, and
<citerefentry><refentrytitle>glCopyTexSubImage2D</refentrytitle></citerefentry>)
will generate the error <constant>GL_INVALID_FRAMEBUFFER_OPERATION</constant>
if called while the framebuffer is not framebuffer complete.
</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>
It is strongly advised, thought not required, that an application
call <function>glCheckFramebufferStatus</function> to see if the
framebuffer is complete prior to rendering. This is because some
implementations may not support rendering to particular combinations
of internal formats. In this case,
<constant>GL_FRAMEBUFFER_UNSUPPORTED</constant>
is returned.
</para>
<para>
The default window-system-provided framebuffer is always
framebuffer complete, and thus <constant>GL_FRAMEBUFFER_COMPLETE</constant>
is returned when <constant>GL_FRAMEBUFFER_BINDING</constant> is 0.
</para>
<para>
Additionally, if an error occurs, zero is returned.
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>target</parameter> is not <constant>GL_FRAMEBUFFER</constant>.
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glBindRenderbuffer</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCopyTexImage2D</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCopyTexSubImage2D</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDrawArrays</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDrawElements</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glReadPixels</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glRenderbufferStorage</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2008 Khronos Group.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,140 @@
<?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="glClear">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glClear</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glClear</refname>
<refpurpose>clear buffers to preset values</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glClear</function></funcdef>
<paramdef>GLbitfield <parameter>mask</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>mask</parameter></term>
<listitem>
<para>
Bitwise OR of masks that indicate the buffers to be cleared.
The three masks are
<constant>GL_COLOR_BUFFER_BIT</constant>,
<constant>GL_DEPTH_BUFFER_BIT</constant>, and
<constant>GL_STENCIL_BUFFER_BIT</constant>.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glClear</function> sets the bitplane area of the window to values previously selected
by <citerefentry><refentrytitle>glClearColor</refentrytitle></citerefentry>, <citerefentry><refentrytitle>glClearDepthf</refentrytitle></citerefentry>, and
<citerefentry><refentrytitle>glClearStencil</refentrytitle></citerefentry>.
</para>
<para>
The pixel ownership test,
the scissor test,
dithering, and the buffer writemasks affect the operation of <function>glClear</function>.
The scissor box bounds the cleared region.
Blend function,
stenciling,
fragment shading,
and depth-buffering are ignored by <function>glClear</function>.
</para>
<para>
<function>glClear</function> takes a single argument that is the bitwise OR of several
values indicating which buffer is to be cleared.
</para>
<para>
The values are as follows:
</para>
<variablelist>
<varlistentry>
<term><constant>GL_COLOR_BUFFER_BIT</constant></term>
<listitem>
<para>
Indicates the buffers currently enabled for color
writing.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_DEPTH_BUFFER_BIT</constant></term>
<listitem>
<para>
Indicates the depth buffer.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_STENCIL_BUFFER_BIT</constant></term>
<listitem>
<para>
Indicates the stencil buffer.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
The value to which each buffer is cleared depends on the setting of the
clear value for that buffer.
</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>
If a buffer is not present,
then a <function>glClear</function> directed at that buffer has no effect.
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if any bit other than the three defined
bits is set in <parameter>mask</parameter>.
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_DEPTH_CLEAR_VALUE</constant>
</para>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_COLOR_CLEAR_VALUE</constant>
</para>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_STENCIL_CLEAR_VALUE</constant>
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glClearColor</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glClearDepthf</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glClearStencil</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glColorMask</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDepthMask</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glScissor</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glStencilMask</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>

View file

@ -0,0 +1,81 @@
<?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="glClearColor">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glClearColor</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glClearColor</refname>
<refpurpose>specify clear values for the color buffers</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glClearColor</function></funcdef>
<paramdef>GLclampf <parameter>red</parameter></paramdef>
<paramdef>GLclampf <parameter>green</parameter></paramdef>
<paramdef>GLclampf <parameter>blue</parameter></paramdef>
<paramdef>GLclampf <parameter>alpha</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>red</parameter></term>
<term><parameter>green</parameter></term>
<term><parameter>blue</parameter></term>
<term><parameter>alpha</parameter></term>
<listitem>
<para>
Specify the red, green, blue, and alpha values used when the
color buffers are cleared.
The initial values are all 0.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glClearColor</function> specifies the red,
green,
blue,
and alpha values used by <citerefentry><refentrytitle>glClear</refentrytitle></citerefentry> to clear the color buffers.
Values specified by <function>glClearColor</function> are clamped to the range
<inlineequation><mml:math>
<!-- eqn: [0,1]:-->
<mml:mfenced open="[" close="]">
<mml:mn>0</mml:mn>
<mml:mn>1</mml:mn>
</mml:mfenced>
</mml:math></inlineequation>.
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_COLOR_CLEAR_VALUE</constant>
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glClear</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>

View file

@ -0,0 +1,71 @@
<?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="glClearDepthf">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glClearDepthf</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glClearDepthf</refname>
<refpurpose>specify the clear value for the depth buffer</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glClearDepthf</function></funcdef>
<paramdef>GLclampf <parameter>depth</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>depth</parameter></term>
<listitem>
<para>
Specifies the depth value used when the depth buffer is cleared. The
initial value is 1.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glClearDepthf</function> specifies the depth value used by <citerefentry><refentrytitle>glClear</refentrytitle></citerefentry> to clear the depth buffer.
Values specified by <function>glClearDepthf</function> are clamped to the range
<inlineequation><mml:math>
<!-- eqn: [0,1]:-->
<mml:mfenced open="[" close="]">
<mml:mn>0</mml:mn>
<mml:mn>1</mml:mn>
</mml:mfenced>
</mml:math></inlineequation>.
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_DEPTH_CLEAR_VALUE</constant>
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glClear</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>

View file

@ -2,17 +2,13 @@
<!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="glClearStencil">
<refentryinfo>
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
<copyright>
<year>2010-2013</year>
<holder>Khronos Group</holder>
</copyright>
</refentryinfo>
<refmeta>
</refmetainfo>
<refentrytitle>glClearStencil</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
@ -28,6 +24,7 @@
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<!-- eqn: ignoring delim $$ -->
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
@ -46,7 +43,7 @@
<function>glClearStencil</function> specifies the index used by <citerefentry><refentrytitle>glClear</refentrytitle></citerefentry> to clear the stencil buffer.
<parameter>s</parameter> is masked with
<inlineequation><mml:math>
<!-- eqn: 2 sup m - 1: -->
<!-- eqn: 2 sup m - 1:-->
<mml:mrow>
<mml:msup><mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">m</mml:mi>
@ -79,12 +76,11 @@
<citerefentry><refentrytitle>glStencilOpSeparate</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="Copyright"><title>Copyright</title>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 1991-2006 Silicon Graphics, Inc.
Copyright <trademark class="copyright"></trademark> 2010-2013 Khronos Group.
This document is licensed under the SGI Free Software B License.
For details, see
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>

View file

@ -0,0 +1,84 @@
<?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="glColorMask">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glColorMask</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glColorMask</refname>
<refpurpose>enable and disable writing of frame buffer color components</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glColorMask</function></funcdef>
<paramdef>GLboolean <parameter>red</parameter></paramdef>
<paramdef>GLboolean <parameter>green</parameter></paramdef>
<paramdef>GLboolean <parameter>blue</parameter></paramdef>
<paramdef>GLboolean <parameter>alpha</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>red</parameter></term>
<term><parameter>green</parameter></term>
<term><parameter>blue</parameter></term>
<term><parameter>alpha</parameter></term>
<listitem>
<para>
Specify whether red, green, blue, and alpha can or cannot be written
into the frame buffer.
The initial values are all <constant>GL_TRUE</constant>,
indicating that the color components can be written.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glColorMask</function> specifies whether the individual color components in the frame buffer
can or cannot be written.
If <parameter>red</parameter> is <constant>GL_FALSE</constant>,
for example,
no change is made to the red component of any pixel in any of the
color buffers,
regardless of the drawing operation attempted.
</para>
<para>
Changes to individual bits of components cannot be controlled.
Rather,
changes are either enabled or disabled for entire color components.
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_COLOR_WRITEMASK</constant>
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glClear</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDepthMask</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glStencilMask</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>

View file

@ -0,0 +1,104 @@
<?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="glCompileShader">
<refmeta>
<refentrytitle>glCompileShader</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glCompileShader</refname>
<refpurpose>compile a shader object</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glCompileShader</function></funcdef>
<paramdef>GLuint <parameter>shader</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>shader</parameter></term>
<listitem>
<para>Specifies the shader object to be
compiled.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>For implementations that support a shader compiler,
<function>glCompileShader</function> compiles the source
code strings that have been stored in the shader object
specified by <parameter>shader</parameter>.</para>
<para>The compilation status will be stored as part of the
shader object's state. This value will be set to
<constant>GL_TRUE</constant> if the shader was compiled without
errors and is ready for use, and <constant>GL_FALSE</constant>
otherwise. It can be queried by calling
<citerefentry><refentrytitle>glGetShaderiv</refentrytitle></citerefentry>
with arguments <parameter>shader</parameter> and
<constant>GL_COMPILE_STATUS</constant>.</para>
<para>Compilation of a shader can fail for a number of reasons
as specified by the <emphasis>OpenGL ES Shading Language Specification</emphasis>.
Whether or not the compilation was successful, information about
the compilation can be obtained from the shader object's
information log by calling
<citerefentry><refentrytitle>glGetShaderInfoLog</refentrytitle></citerefentry>.</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>Shader compiler support is optional, and thus must be queried
before use by calling <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>
with argument <constant>GL_SHADER_COMPILER</constant>. <citerefentry><refentrytitle>glShaderSource</refentrytitle></citerefentry>,
<function>glCompileShader</function>, <citerefentry><refentrytitle>glGetShaderPrecisionFormat</refentrytitle></citerefentry>, and
<citerefentry><refentrytitle>glReleaseShaderCompiler</refentrytitle></citerefentry> will
each generate <constant>GL_INVALID_OPERATION</constant> on implementations
that do not support a shader compiler. Such implementations instead offer the
<citerefentry><refentrytitle>glShaderBinary</refentrytitle></citerefentry>
alternative for supplying a pre-compiled shader binary.</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
a shader compiler is not supported.</para>
<para><constant>GL_INVALID_VALUE</constant> is generated if
<parameter>shader</parameter> is not a value generated by
OpenGL.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
<parameter>shader</parameter> is not a shader object.</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para><citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>
with argument <constant>GL_SHADER_COMPILER</constant></para>
<para><citerefentry><refentrytitle>glGetShaderInfoLog</refentrytitle></citerefentry>
with argument <parameter>shader</parameter></para>
<para><citerefentry><refentrytitle>glGetShaderiv</refentrytitle></citerefentry>
with arguments <parameter>shader</parameter> and
<constant>GL_COMPILE_STATUS</constant></para>
<para><citerefentry><refentrytitle>glIsShader</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para><citerefentry><refentrytitle>glCreateShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glLinkProgram</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glReleaseShaderCompiler</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glShaderSource</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetShaderPrecisionFormat</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2003-2005 3Dlabs Inc. Ltd.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,245 @@
<?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="glCompressedTexImage2D">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glCompressedTexImage2D</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glCompressedTexImage2D</refname>
<refpurpose>specify a two-dimensional texture image in a compressed format</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glCompressedTexImage2D</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>GLint <parameter>level</parameter></paramdef>
<paramdef>GLenum <parameter>internalformat</parameter></paramdef>
<paramdef>GLsizei <parameter>width</parameter></paramdef>
<paramdef>GLsizei <parameter>height</parameter></paramdef>
<paramdef>GLint <parameter>border</parameter></paramdef>
<paramdef>GLsizei <parameter>imageSize</parameter></paramdef>
<paramdef>const GLvoid * <parameter>data</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<!-- eqn: ignoring delim $$ -->
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>target</parameter></term>
<listitem>
<para>
Specifies the target texture of the active texture unit.
Must be <constant>GL_TEXTURE_2D</constant>,
<constant>GL_TEXTURE_CUBE_MAP_POSITIVE_X</constant>,
<constant>GL_TEXTURE_CUBE_MAP_NEGATIVE_X</constant>,
<constant>GL_TEXTURE_CUBE_MAP_POSITIVE_Y</constant>,
<constant>GL_TEXTURE_CUBE_MAP_NEGATIVE_Y</constant>,
<constant>GL_TEXTURE_CUBE_MAP_POSITIVE_Z</constant>, or
<constant>GL_TEXTURE_CUBE_MAP_NEGATIVE_Z</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>level</parameter></term>
<listitem>
<para>
Specifies the level-of-detail number.
Level 0 is the base image level.
Level <emphasis>n</emphasis> is the <emphasis>n</emphasis>th mipmap reduction image.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>internalformat</parameter></term>
<listitem>
<para>
Specifies the format of the compressed image data stored at address <parameter>data</parameter>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>width</parameter></term>
<listitem>
<para>
Specifies the width of the texture image.
All
implementations support 2D texture images that are at least 64 texels
wide and cube-mapped texture images that are at least 16 texels wide.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>height</parameter></term>
<listitem>
<para>
Specifies the height of the texture image.
All
implementations support 2D texture images that are at least 64 texels
high and cube-mapped texture images that are at least 16 texels high.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>border</parameter></term>
<listitem>
<para>
Specifies the width of the border.
Must be 0.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>imageSize</parameter></term>
<listitem>
<para>
Specifies the number of unsigned bytes of image data starting at the
address specified by <parameter>data</parameter>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>data</parameter></term>
<listitem>
<para>
Specifies a pointer to the compressed image data in memory.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
Texturing maps a portion of a specified texture image
onto each graphical primitive for which texturing is
active. Texturing is active when the current fragment shader or
vertex shader makes use of built-in texture lookup
functions.
</para>
<para>
<function>glCompressedTexImage2D</function> defines a two-dimensional texture image
or cube-map texture image using compressed image data from client memory. The texture
image is decoded according to the extension specification defining the specified
<parameter>internalformat</parameter>. OpenGL ES defines no specific compressed
texture formats, but does provide a mechanism to obtain symbolic constants for such
formats provided by extensions. The number of compressed texture formats supported
can be obtained by querying the value of
<constant>GL_NUM_COMPRESSED_TEXTURE_FORMATS</constant>. The list of specific
compressed texture formats supported can be obtained by querying the value of
<constant>GL_COMPRESSED_TEXTURE_FORMATS</constant>.
</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>
A GL implementation may choose to store the texture
array at any internal resolution it chooses.
</para>
<para>
<function>glCompressedTexImage2D</function>
specifies a two-dimensional or cube-map texture for the current 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>target</parameter> is not <constant>GL_TEXTURE_2D</constant>,
<constant>GL_TEXTURE_CUBE_MAP_POSITIVE_X</constant>,
<constant>GL_TEXTURE_CUBE_MAP_NEGATIVE_X</constant>,
<constant>GL_TEXTURE_CUBE_MAP_POSITIVE_Y</constant>,
<constant>GL_TEXTURE_CUBE_MAP_NEGATIVE_Y</constant>,
<constant>GL_TEXTURE_CUBE_MAP_POSITIVE_Z</constant>, or
<constant>GL_TEXTURE_CUBE_MAP_NEGATIVE_Z</constant>.
</para>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if
<parameter>internalformat</parameter> is not a supported format returned in
<constant>GL_COMPRESSED_TEXTURE_FORMATS</constant>.
</para>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if <parameter>level</parameter> is less than 0.
</para>
<para>
<constant>GL_INVALID_VALUE</constant> may be generated if <parameter>level</parameter> is greater
than
<inlineequation><mml:math>
<!-- eqn: log sub 2 max:-->
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">log</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:mi mathvariant="italic">max</mml:mi>
</mml:mrow>
</mml:math></inlineequation>,
where
<inlineequation><mml:math><mml:mi mathvariant="italic">max</mml:mi></mml:math></inlineequation>
is the returned value of <constant>GL_MAX_TEXTURE_SIZE</constant> when <parameter>target</parameter>
is <constant>GL_TEXTURE_2D</constant> or <constant>GL_MAX_CUBE_MAP_TEXTURE_SIZE</constant> when
<parameter>target</parameter> is not <constant>GL_TEXTURE_2D</constant>.
</para>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if <parameter>width</parameter> or <parameter>height</parameter> is less than 0
or greater than <constant>GL_MAX_TEXTURE_SIZE</constant> when <parameter>target</parameter>
is <constant>GL_TEXTURE_2D</constant> or <constant>GL_MAX_CUBE_MAP_TEXTURE_SIZE</constant> when
<parameter>target</parameter> is not <constant>GL_TEXTURE_2D</constant>.
</para>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if <parameter>border</parameter> is not 0.
</para>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if <parameter>imageSize</parameter> is not consistent with
the format, dimensions, and contents of the specified compressed image
data.
</para>
<para>
<constant>GL_INVALID_OPERATION</constant> is generated if parameter combinations are not
supported by the specific compressed internal format as specified in the
specific texture compression extension.
</para>
<para>
Undefined results, including abnormal program termination, are generated if
<parameter>data</parameter> is not encoded in a manner consistent with the extension
specification defining the internal compression format.
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with arguments
<constant>GL_NUM_COMPRESSED_TEXTURE_FORMATS</constant> and
<constant>GL_COMPRESSED_TEXTURE_FORMATS</constant>
</para>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>
with argument <constant>GL_MAX_TEXTURE_SIZE</constant> or
<constant>GL_MAX_CUBE_MAP_TEXTURE_SIZE</constant>
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glActiveTexture</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCompressedTexSubImage2D</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCopyTexImage2D</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCopyTexSubImage2D</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glTexImage2D</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glTexSubImage2D</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glTexParameter</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>

View file

@ -0,0 +1,323 @@
<?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="glCompressedTexSubImage2D">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glCompressedTexSubImage2D</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glCompressedTexSubImage2D</refname>
<refpurpose>specify a two-dimensional texture subimage in a compressed format</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glCompressedTexSubImage2D</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>GLint <parameter>level</parameter></paramdef>
<paramdef>GLint <parameter>xoffset</parameter></paramdef>
<paramdef>GLint <parameter>yoffset</parameter></paramdef>
<paramdef>GLsizei <parameter>width</parameter></paramdef>
<paramdef>GLsizei <parameter>height</parameter></paramdef>
<paramdef>GLenum <parameter>format</parameter></paramdef>
<paramdef>GLsizei <parameter>imageSize</parameter></paramdef>
<paramdef>const GLvoid * <parameter>data</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<!-- eqn: ignoring delim $$ -->
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>target</parameter></term>
<listitem>
<para>
Specifies the target texture of the active texture unit.
Must be <constant>GL_TEXTURE_2D</constant>,
<constant>GL_TEXTURE_CUBE_MAP_POSITIVE_X</constant>,
<constant>GL_TEXTURE_CUBE_MAP_NEGATIVE_X</constant>,
<constant>GL_TEXTURE_CUBE_MAP_POSITIVE_Y</constant>,
<constant>GL_TEXTURE_CUBE_MAP_NEGATIVE_Y</constant>,
<constant>GL_TEXTURE_CUBE_MAP_POSITIVE_Z</constant>, or
<constant>GL_TEXTURE_CUBE_MAP_NEGATIVE_Z</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>level</parameter></term>
<listitem>
<para>
Specifies the level-of-detail number.
Level 0 is the base image level.
Level <emphasis>n</emphasis> is the <emphasis>n</emphasis>th mipmap reduction image.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>xoffset</parameter></term>
<listitem>
<para>
Specifies a texel offset in the x direction within the texture array.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>yoffset</parameter></term>
<listitem>
<para>
Specifies a texel offset in the y direction within the texture array.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>width</parameter></term>
<listitem>
<para>
Specifies the width of the texture subimage.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>height</parameter></term>
<listitem>
<para>
Specifies the height of the texture subimage.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>format</parameter></term>
<listitem>
<para>
Specifies the format of the compressed image data stored at address <parameter>data</parameter>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>imageSize</parameter></term>
<listitem>
<para>
Specifies the number of unsigned bytes of image data starting at the
address specified by <parameter>data</parameter>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>data</parameter></term>
<listitem>
<para>
Specifies a pointer to the compressed image data in memory.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
Texturing maps a portion of a specified texture image
onto each graphical primitive for which texturing is
active. Texturing is active when the current fragment shader or
vertex shader makes use of built-in texture lookup
functions.
</para>
<para>
<function>glCompressedTexSubImage2D</function> redefines a contiguous subregion of an existing two-dimensional
texture image. The texels referenced by <parameter>data</parameter> replace the portion of the
existing texture array with x indices <parameter>xoffset</parameter> and
<inlineequation><mml:math>
<!-- eqn: xoffset + width - 1:-->
<mml:mrow>
<mml:mi mathvariant="italic">xoffset</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">width</mml:mi>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math></inlineequation>,
and the y indices <parameter>yoffset</parameter> and
<inlineequation><mml:math>
<!-- eqn: yoffset + height - 1:-->
<mml:mrow>
<mml:mi mathvariant="italic">yoffset</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">height</mml:mi>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math></inlineequation>,
inclusive.
This region may not include any texels
outside the range of the texture array as it was originally specified. It
is not an error to specify a subtexture with width of 0, but such a
specification has no effect.
</para>
<para>
<parameter>format</parameter> must be the same extension-specified
compressed-texture format previously specified by
<citerefentry><refentrytitle>glCompressedTexImage2D</refentrytitle></citerefentry>.
</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>
<function>glCompressedTexSubImage2D</function>
specifies a two-dimensional or cube-map texture for the current 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>target</parameter> is
not <constant>GL_TEXTURE_2D</constant>,
<constant>GL_TEXTURE_CUBE_MAP_POSITIVE_X</constant>,
<constant>GL_TEXTURE_CUBE_MAP_NEGATIVE_X</constant>,
<constant>GL_TEXTURE_CUBE_MAP_POSITIVE_Y</constant>,
<constant>GL_TEXTURE_CUBE_MAP_NEGATIVE_Y</constant>,
<constant>GL_TEXTURE_CUBE_MAP_POSITIVE_Z</constant>, or
<constant>GL_TEXTURE_CUBE_MAP_NEGATIVE_Z</constant>.
</para>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if
<parameter>format</parameter> is not a supported format returned in
<constant>GL_COMPRESSED_TEXTURE_FORMATS</constant>.
</para>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if <parameter>level</parameter> is less than 0.
</para>
<para>
<constant>GL_INVALID_VALUE</constant> may be generated if <parameter>level</parameter> is greater
than
<inlineequation><mml:math>
<!-- eqn: log sub 2 max:-->
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">log</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:mi mathvariant="italic">max</mml:mi>
</mml:mrow>
</mml:math></inlineequation>,
where
<inlineequation><mml:math><mml:mi mathvariant="italic">max</mml:mi></mml:math></inlineequation>
is the returned value of <constant>GL_MAX_TEXTURE_SIZE</constant> when <parameter>target</parameter>
is <constant>GL_TEXTURE_2D</constant> or <constant>GL_MAX_CUBE_MAP_TEXTURE_SIZE</constant> when
<parameter>target</parameter> is not <constant>GL_TEXTURE_2D</constant>.
</para>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if
<inlineequation><mml:math>
<!-- eqn: xoffset < 0:-->
<mml:mrow>
<mml:mi mathvariant="italic">xoffset</mml:mi>
<mml:mo>&lt;</mml:mo>
0
</mml:mrow>
</mml:math></inlineequation>,
<inlineequation><mml:math>
<!-- eqn: (xoffset + width) > w:-->
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="italic">xoffset</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">width</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&gt;</mml:mo>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
</mml:math></inlineequation>,
<inlineequation><mml:math>
<!-- eqn: yoffset < 0:-->
<mml:mrow>
<mml:mi mathvariant="italic">yoffset</mml:mi>
<mml:mo>&lt;</mml:mo>
0
</mml:mrow>
</mml:math></inlineequation>,
or
<inlineequation><mml:math>
<!-- eqn: (yoffset + height) > h:-->
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="italic">yoffset</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">height</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&gt;</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:math></inlineequation>,
where
<inlineequation><mml:math><mml:mi mathvariant="italic">w</mml:mi></mml:math></inlineequation>
is the width and
<inlineequation><mml:math><mml:mi mathvariant="italic">h</mml:mi></mml:math></inlineequation>
is the height
of the texture image being modified.
</para>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if <parameter>width</parameter> or <parameter>height</parameter> is less than 0.
</para>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if <parameter>imageSize</parameter> is not consistent with
the format, dimensions, and contents of the specified compressed image
data.
</para>
<para>
<constant>GL_INVALID_OPERATION</constant> is generated if the texture array has not
been defined by a previous
<citerefentry><refentrytitle>glCompressedTexImage2D</refentrytitle></citerefentry>
operation whose <parameter>internalformat</parameter> matches the <parameter>format</parameter>
of <function>glCompressedTexSubImage2D</function>.
</para>
<para>
<constant>GL_INVALID_OPERATION</constant> is generated if parameter combinations are not
supported by the specific compressed internal format as specified in the
specific texture compression extension.
</para>
<para>
Undefined results, including abnormal program termination, are generated if
<parameter>data</parameter> is not encoded in a manner consistent with the extension
specification defining the internal compression format.
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with arguments
<constant>GL_NUM_COMPRESSED_TEXTURE_FORMATS</constant> and
<constant>GL_COMPRESSED_TEXTURE_FORMATS</constant>
</para>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>
with argument <constant>GL_MAX_TEXTURE_SIZE</constant> or
<constant>GL_MAX_CUBE_MAP_TEXTURE_SIZE</constant>
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glActiveTexture</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCompressedTexImage2D</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCopyTexImage2D</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCopyTexSubImage2D</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glTexImage2D</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glTexSubImage2D</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glTexParameter</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>

View file

@ -0,0 +1,282 @@
<?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="glCopyTexImage2D">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glCopyTexImage2D</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glCopyTexImage2D</refname>
<refpurpose>copy pixels into a 2D texture image</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glCopyTexImage2D</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>GLint <parameter>level</parameter></paramdef>
<paramdef>GLenum <parameter>internalformat</parameter></paramdef>
<paramdef>GLint <parameter>x</parameter></paramdef>
<paramdef>GLint <parameter>y</parameter></paramdef>
<paramdef>GLsizei <parameter>width</parameter></paramdef>
<paramdef>GLsizei <parameter>height</parameter></paramdef>
<paramdef>GLint <parameter>border</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<!-- eqn: ignoring delim $$ -->
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>target</parameter></term>
<listitem>
<para>
Specifies the target texture of the active texture unit.
Must be <constant>GL_TEXTURE_2D</constant>,
<constant>GL_TEXTURE_CUBE_MAP_POSITIVE_X</constant>,
<constant>GL_TEXTURE_CUBE_MAP_NEGATIVE_X</constant>,
<constant>GL_TEXTURE_CUBE_MAP_POSITIVE_Y</constant>,
<constant>GL_TEXTURE_CUBE_MAP_NEGATIVE_Y</constant>,
<constant>GL_TEXTURE_CUBE_MAP_POSITIVE_Z</constant>, or
<constant>GL_TEXTURE_CUBE_MAP_NEGATIVE_Z</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>level</parameter></term>
<listitem>
<para>
Specifies the level-of-detail number.
Level 0 is the base image level.
Level <emphasis>n</emphasis> is the <emphasis>n</emphasis>th mipmap reduction image.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>internalformat</parameter></term>
<listitem>
<para>
Specifies the internal format of the texture.
Must be one of the following symbolic constants:
<constant>GL_ALPHA</constant>,
<constant>GL_LUMINANCE</constant>,
<constant>GL_LUMINANCE_ALPHA</constant>,
<constant>GL_RGB</constant>, or
<constant>GL_RGBA</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>x</parameter></term>
<term><parameter>y</parameter></term>
<listitem>
<para>
Specify the window coordinates of the lower left corner
of the rectangular region of pixels to be copied.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>width</parameter></term>
<listitem>
<para>
Specifies the width of the texture image.
All implementations support 2D texture images that are at least 64 texels
wide and cube-mapped texture images that are at least 16 texels wide.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>height</parameter></term>
<listitem>
<para>
Specifies the height of the texture image.
All implementations support 2D texture images that are at least 64 texels
high and cube-mapped texture images that are at least 16 texels high.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>border</parameter></term>
<listitem>
<para>
Specifies the width of the border.
Must be 0.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
Texturing maps a portion of a specified texture image
onto each graphical primitive for which texturing is
active. Texturing is active when the current fragment shader or
vertex shader makes use of built-in texture lookup
functions.
</para>
<para>
<function>glCopyTexImage2D</function> defines a two-dimensional texture image or cube-map texture image
with pixels from the current framebuffer (rather than from
client memory, as is the case for <citerefentry><refentrytitle>glTexImage2D</refentrytitle></citerefentry>).
</para>
<para>
The screen-aligned pixel rectangle with lower left corner at (<parameter>x</parameter>,
<parameter>y</parameter>) and with a width of <parameter>width</parameter>
and a height of <parameter>height</parameter>
defines the texture array
at the mipmap level specified by <parameter>level</parameter>.
<parameter>internalformat</parameter> specifies the internal format of the texture array.
</para>
<para>
The pixels in the rectangle are processed exactly as if
<citerefentry><refentrytitle>glReadPixels</refentrytitle></citerefentry> had been called with
<parameter>format</parameter> set to <constant>GL_RGBA</constant>, but the process stops just after
conversion of RGBA values. Subsequent processing is identical to that
described for <citerefentry><refentrytitle>glTexImage2D</refentrytitle></citerefentry>,
beginning with the clamping of the R, G, B, and A values to the range
<inlineequation><mml:math>
<!-- eqn: [0,1]:-->
<mml:mfenced open="[" close="]">
<mml:mn>0</mml:mn>
<mml:mn>1</mml:mn>
</mml:mfenced>
</mml:math></inlineequation>
and then conversion to the texture's internal format for storage in the texel
array.
</para>
<para>
The components required for <parameter>internalformat</parameter> must be a subset of
those present in the framebuffer's format. For example, a <constant>GL_RGBA</constant>
framebuffer can be used to supply components for any <parameter>internalformat</parameter>.
However, a <constant>GL_RGB</constant> framebuffer can only be used to supply components for
<constant>GL_RGB</constant> or <constant>GL_LUMINANCE</constant> base internal format textures,
not <constant>GL_ALPHA</constant>, <constant>GL_LUMINANCE_ALPHA</constant>, or
<constant>GL_RGBA</constant> textures.
</para>
<para>
Pixel ordering is such that lower
<inlineequation><mml:math><mml:mi mathvariant="italic">x</mml:mi></mml:math></inlineequation>
and
<inlineequation><mml:math><mml:mi mathvariant="italic">y</mml:mi></mml:math></inlineequation>
screen coordinates correspond to
lower
<inlineequation><mml:math><mml:mi mathvariant="italic">s</mml:mi></mml:math></inlineequation>
and
<inlineequation><mml:math><mml:mi mathvariant="italic">t</mml:mi></mml:math></inlineequation>
texture coordinates.
</para>
<para>
If any of the pixels within the specified rectangle are outside the framebuffer associated with the current
rendering context, then the values obtained for those pixels are undefined.
</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>
A GL implementation may choose to store the texture
array at any internal resolution it chooses.
</para>
<para>
An image with height or width of 0 indicates a NULL texture.
</para>
<para>
<function>glCopyTexImage2D</function>
specifies a two-dimensional or cube-map texture for the current 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>target</parameter> is not <constant>GL_TEXTURE_2D</constant>,
<constant>GL_TEXTURE_CUBE_MAP_POSITIVE_X</constant>,
<constant>GL_TEXTURE_CUBE_MAP_NEGATIVE_X</constant>,
<constant>GL_TEXTURE_CUBE_MAP_POSITIVE_Y</constant>,
<constant>GL_TEXTURE_CUBE_MAP_NEGATIVE_Y</constant>,
<constant>GL_TEXTURE_CUBE_MAP_POSITIVE_Z</constant>, or
<constant>GL_TEXTURE_CUBE_MAP_NEGATIVE_Z</constant>.
</para>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>internalformat</parameter> is not an
accepted format.
</para>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if <parameter>target</parameter> is one of the six cube map 2D image targets and the width and height parameters are not equal.
</para>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if <parameter>level</parameter> is less than 0.
</para>
<para>
<constant>GL_INVALID_VALUE</constant> may be generated if <parameter>level</parameter> is greater
than
<inlineequation><mml:math>
<!-- eqn: log sub 2 max:-->
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">log</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&it;</mml:mo>
<mml:mi mathvariant="italic">max</mml:mi>
</mml:mrow>
</mml:math></inlineequation>,
where
<inlineequation><mml:math><mml:mi mathvariant="italic">max</mml:mi></mml:math></inlineequation>
is the returned value of <constant>GL_MAX_TEXTURE_SIZE</constant> when <parameter>target</parameter>
is <constant>GL_TEXTURE_2D</constant> or <constant>GL_MAX_CUBE_MAP_TEXTURE_SIZE</constant> when
<parameter>target</parameter> is not <constant>GL_TEXTURE_2D</constant>.
</para>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if <parameter>width</parameter> or <parameter>height</parameter> is less than 0
or greater than <constant>GL_MAX_TEXTURE_SIZE</constant> when <parameter>target</parameter>
is <constant>GL_TEXTURE_2D</constant> or <constant>GL_MAX_CUBE_MAP_TEXTURE_SIZE</constant> when
<parameter>target</parameter> is not <constant>GL_TEXTURE_2D</constant>.
</para>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if <parameter>border</parameter> is not 0.
</para>
<para>
<constant>GL_INVALID_OPERATION</constant> is generated if
the currently bound framebuffer's format does not contain a superset of
the components required by the base format of <parameter>internalformat</parameter>.
</para>
<para>
<constant>GL_INVALID_FRAMEBUFFER_OPERATION</constant> is generated if
the currently bound framebuffer is not framebuffer complete (i.e. the
return value from <citerefentry><refentrytitle>glCheckFramebufferStatus</refentrytitle></citerefentry>
is not <constant>GL_FRAMEBUFFER_COMPLETE</constant>).
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>
with argument <constant>GL_MAX_TEXTURE_SIZE</constant> or
<constant>GL_MAX_CUBE_MAP_TEXTURE_SIZE</constant>
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glActiveTexture</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCheckFramebufferStatus</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCompressedTexImage2D</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCompressedTexSubImage2D</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCopyTexSubImage2D</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glTexImage2D</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glTexParameter</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glTexSubImage2D</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>

View file

@ -0,0 +1,328 @@
<?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="glCopyTexSubImage2D">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glCopyTexSubImage2D</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glCopyTexSubImage2D</refname>
<refpurpose>copy a two-dimensional texture subimage</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glCopyTexSubImage2D</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>GLint <parameter>level</parameter></paramdef>
<paramdef>GLint <parameter>xoffset</parameter></paramdef>
<paramdef>GLint <parameter>yoffset</parameter></paramdef>
<paramdef>GLint <parameter>x</parameter></paramdef>
<paramdef>GLint <parameter>y</parameter></paramdef>
<paramdef>GLsizei <parameter>width</parameter></paramdef>
<paramdef>GLsizei <parameter>height</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<!-- eqn: ignoring delim $$ -->
<para>
</para>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>target</parameter></term>
<listitem>
<para>
Specifies the target texture of the active texture unit.
Must be <constant>GL_TEXTURE_2D</constant>,
<constant>GL_TEXTURE_CUBE_MAP_POSITIVE_X</constant>,
<constant>GL_TEXTURE_CUBE_MAP_NEGATIVE_X</constant>,
<constant>GL_TEXTURE_CUBE_MAP_POSITIVE_Y</constant>,
<constant>GL_TEXTURE_CUBE_MAP_NEGATIVE_Y</constant>,
<constant>GL_TEXTURE_CUBE_MAP_POSITIVE_Z</constant>, or
<constant>GL_TEXTURE_CUBE_MAP_NEGATIVE_Z</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>level</parameter></term>
<listitem>
<para>
Specifies the level-of-detail number.
Level 0 is the base image level.
Level <emphasis>n</emphasis> is the <emphasis>n</emphasis>th mipmap reduction image.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>xoffset</parameter></term>
<listitem>
<para>
Specifies a texel offset in the x direction within the texture array.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>yoffset</parameter></term>
<listitem>
<para>
Specifies a texel offset in the y direction within the texture array.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>x</parameter></term>
<term><parameter>y</parameter></term>
<listitem>
<para>
Specify the window coordinates of the lower left corner
of the rectangular region of pixels to be copied.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>width</parameter></term>
<listitem>
<para>
Specifies the width of the texture subimage.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>height</parameter></term>
<listitem>
<para>
Specifies the height of the texture subimage.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
Texturing maps a portion of a specified texture image
onto each graphical primitive for which texturing is
active. Texturing is active when the current fragment shader or
vertex shader makes use of built-in texture lookup
functions.
</para>
<para>
<function>glCopyTexSubImage2D</function> replaces a rectangular portion of a two-dimensional texture image or
cube-map texture image with pixels from the current framebuffer
(rather than from client memory, as is the case for <citerefentry><refentrytitle>glTexSubImage2D</refentrytitle></citerefentry>).
</para>
<para>
The screen-aligned pixel rectangle with lower left corner at
<inlineequation><mml:math>
<!-- eqn: (x, y):-->
<mml:mfenced open="(" close=")">
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mfenced>
</mml:math></inlineequation>
and with
width <parameter>width</parameter> and height <parameter>height</parameter> replaces the portion of the
texture array with x indices <parameter>xoffset</parameter> through
<inlineequation><mml:math>
<!-- eqn: xoffset + width - 1:-->
<mml:mrow>
<mml:mi mathvariant="italic">xoffset</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">width</mml:mi>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math></inlineequation>,
inclusive, and y indices <parameter>yoffset</parameter> through
<inlineequation><mml:math>
<!-- eqn: yoffset + height - 1:-->
<mml:mrow>
<mml:mi mathvariant="italic">yoffset</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">height</mml:mi>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math></inlineequation>,
inclusive, at the mipmap level specified by <parameter>level</parameter>.
</para>
<para>
The pixels in the rectangle are processed exactly as if
<citerefentry><refentrytitle>glReadPixels</refentrytitle></citerefentry> had been called with
<parameter>format</parameter> set to <constant>GL_RGBA</constant>, but the process stops just after
conversion of RGBA values. Subsequent processing is identical to that
described for <citerefentry><refentrytitle>glTexSubImage2D</refentrytitle></citerefentry>,
beginning with the clamping of the R, G, B, and A values to the range
<inlineequation><mml:math>
<!-- eqn: [0,1]:-->
<mml:mfenced open="[" close="]">
<mml:mn>0</mml:mn>
<mml:mn>1</mml:mn>
</mml:mfenced>
</mml:math></inlineequation>
and then conversion to the texture's internal format for storage in the texel
array.
</para>
<para>
The destination rectangle in the texture array may not include any texels
outside the texture array as it was originally specified.
It is not an error to specify a subtexture with zero width or height, but
such a specification has no effect.
</para>
<para>
If any of the pixels within the specified rectangle are outside the framebuffer associated with the current
rendering context, then the values obtained for those pixels are undefined.
</para>
<para>
No change is made to the <emphasis>internalformat</emphasis>, <emphasis>width</emphasis>, or
<emphasis>height</emphasis> parameters of the specified texture
array or to texel values outside the specified subregion.
</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>
<function>glCopyTexSubImage2D</function>
specifies the two-dimensional or cube-map texture for the current 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>target</parameter> is not <constant>GL_TEXTURE_2D</constant>,
<constant>GL_TEXTURE_CUBE_MAP_POSITIVE_X</constant>,
<constant>GL_TEXTURE_CUBE_MAP_NEGATIVE_X</constant>,
<constant>GL_TEXTURE_CUBE_MAP_POSITIVE_Y</constant>,
<constant>GL_TEXTURE_CUBE_MAP_NEGATIVE_Y</constant>,
<constant>GL_TEXTURE_CUBE_MAP_POSITIVE_Z</constant>, or
<constant>GL_TEXTURE_CUBE_MAP_NEGATIVE_Z</constant>.
</para>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if <parameter>level</parameter> is less than 0.
</para>
<para>
<constant>GL_INVALID_VALUE</constant> may be generated if
<inlineequation><mml:math>
<!-- eqn: level > log sub 2(max):-->
<mml:mrow>
<mml:mi mathvariant="italic">level</mml:mi>
<mml:mo>&gt;</mml:mo>
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">log</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&af;</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mi mathvariant="italic">max</mml:mi>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math></inlineequation>,
where
<inlineequation><mml:math><mml:mi mathvariant="italic">max</mml:mi></mml:math></inlineequation>
is the returned value of <constant>GL_MAX_TEXTURE_SIZE</constant>.
</para>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if
<inlineequation><mml:math>
<!-- eqn: xoffset < 0:-->
<mml:mrow>
<mml:mi mathvariant="italic">xoffset</mml:mi>
<mml:mo>&lt;</mml:mo>
0
</mml:mrow>
</mml:math></inlineequation>,
<inlineequation><mml:math>
<!-- eqn: (xoffset + width) > w:-->
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="italic">xoffset</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">width</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&gt;</mml:mo>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
</mml:math></inlineequation>,
<inlineequation><mml:math>
<!-- eqn: yoffset < 0:-->
<mml:mrow>
<mml:mi mathvariant="italic">yoffset</mml:mi>
<mml:mo>&lt;</mml:mo>
0
</mml:mrow>
</mml:math></inlineequation>,
or
<inlineequation><mml:math>
<!-- eqn: (yoffset + height) > h:-->
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="italic">yoffset</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">height</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&gt;</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:math></inlineequation>,
where
<inlineequation><mml:math><mml:mi mathvariant="italic">w</mml:mi></mml:math></inlineequation>
is the width and
<inlineequation><mml:math><mml:mi mathvariant="italic">h</mml:mi></mml:math></inlineequation>
is the height of the texture image being modified.
</para>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if <parameter>width</parameter> or <parameter>height</parameter> is less than 0.
</para>
<para>
<constant>GL_INVALID_OPERATION</constant> is generated if the texture array has not been
defined by a previous <citerefentry><refentrytitle>glTexImage2D</refentrytitle></citerefentry> or <citerefentry><refentrytitle>glCopyTexImage2D</refentrytitle></citerefentry> operation.
</para>
<para>
<constant>GL_INVALID_OPERATION</constant> is generated if
the currently bound framebuffer's format does not contain a superset of
the components required by the texture's base internal format.
</para>
<para>
<constant>GL_INVALID_FRAMEBUFFER_OPERATION</constant> is generated if
the currently bound framebuffer is not framebuffer complete (i.e. the
return value from <citerefentry><refentrytitle>glCheckFramebufferStatus</refentrytitle></citerefentry>
is not <constant>GL_FRAMEBUFFER_COMPLETE</constant>).
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>
with argument <constant>GL_MAX_TEXTURE_SIZE</constant> or
<constant>GL_MAX_CUBE_MAP_TEXTURE_SIZE</constant>
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glActiveTexture</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCheckFramebufferStatus</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCopyTexImage2D</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glTexImage2D</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glTexParameter</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glTexSubImage2D</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>

View file

@ -0,0 +1,117 @@
<?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="glCreateProgram">
<refmeta>
<refentrytitle>glCreateProgram</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glCreateProgram</refname>
<refpurpose>create a program object</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>GLuint <function>glCreateProgram</function></funcdef>
<paramdef><parameter>void</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="description"><title>Description</title>
<para><function>glCreateProgram</function> creates an empty
program object and returns a non-zero value by which it can be
referenced. A program object is an object to which shader
objects can be attached. This provides a mechanism to specify
the shader objects that will be linked to create a program. It
also provides a means for checking the compatibility of the
shaders that will be used to create a program (for instance,
checking the compatibility between a vertex shader and a
fragment shader). When no longer needed as part of a program
object, shader objects can be detached.</para>
<para>One or more executables are created in a program object by
successfully attaching shader objects to it with
<citerefentry><refentrytitle>glAttachShader</refentrytitle></citerefentry>,
successfully compiling the shader objects with
<citerefentry><refentrytitle>glCompileShader</refentrytitle></citerefentry>,
and successfully linking the program object with
<citerefentry><refentrytitle>glLinkProgram</refentrytitle></citerefentry>.
These executables are made part of current state when
<citerefentry><refentrytitle>glUseProgram</refentrytitle></citerefentry>
is called. Program objects can be deleted by calling
<citerefentry><refentrytitle>glDeleteProgram</refentrytitle></citerefentry>.
The memory associated with the program object will be deleted
when it is no longer part of current rendering state for any
context.</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>Like texture objects, the name space for
program objects may be shared across a set of contexts, as long
as the server sides of the contexts share the same address
space. If the name space is shared across contexts, any attached
objects and the data associated with those attached objects are
shared as well.</para>
<para>Applications are responsible for providing the
synchronization across API calls when objects are accessed from
different execution threads.</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>This function returns 0 if an error occurs creating the program object.</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para><citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>
with the argument <constant>GL_CURRENT_PROGRAM</constant></para>
<para><citerefentry><refentrytitle>glGetActiveAttrib</refentrytitle></citerefentry>
with a valid program object and the index of an active attribute
variable</para>
<para><citerefentry><refentrytitle>glGetActiveUniform</refentrytitle></citerefentry>
with a valid program object and the index of an active uniform
variable</para>
<para><citerefentry><refentrytitle>glGetAttachedShaders</refentrytitle></citerefentry>
with a valid program object</para>
<para><citerefentry><refentrytitle>glGetAttribLocation</refentrytitle></citerefentry>
with a valid program object and the name of an attribute
variable</para>
<para><citerefentry><refentrytitle>glGetProgramiv</refentrytitle></citerefentry>
with a valid program object and the parameter to be queried</para>
<para><citerefentry><refentrytitle>glGetProgramInfoLog</refentrytitle></citerefentry>
with a valid program object</para>
<para><citerefentry><refentrytitle>glGetUniform</refentrytitle></citerefentry>
with a valid program object and the location of a uniform
variable</para>
<para><citerefentry><refentrytitle>glGetUniformLocation</refentrytitle></citerefentry>
with a valid program object and the name of a uniform
variable</para>
<para><citerefentry><refentrytitle>glIsProgram</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para><citerefentry><refentrytitle>glAttachShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glBindAttribLocation</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCreateShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDeleteProgram</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDetachShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glLinkProgram</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glUniform</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glUseProgram</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glValidateProgram</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2003-2005 3Dlabs Inc. Ltd.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,99 @@
<?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="glCreateShader">
<refmeta>
<refentrytitle>glCreateShader</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glCreateShader</refname>
<refpurpose>create a shader object</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>GLuint <function>glCreateShader</function></funcdef>
<paramdef>GLenum <parameter>shaderType</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>shaderType</parameter></term>
<listitem>
<para>Specifies the type of shader to be created.
Must be either <constant>GL_VERTEX_SHADER</constant>
or <constant>GL_FRAGMENT_SHADER</constant>.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para><function>glCreateShader</function> creates an empty
shader object and returns a non-zero value by which it can be
referenced. A shader object is used to maintain the source code
strings that define a shader. <parameter>shaderType</parameter>
indicates the type of shader to be created. Two types of shaders
are supported. A shader of type
<constant>GL_VERTEX_SHADER</constant> is a shader that is
intended to run on the programmable vertex processor. A shader of
type <constant>GL_FRAGMENT_SHADER</constant> is a shader that is
intended to run on the programmable fragment processor.</para>
<para>When created, a shader object's
<constant>GL_SHADER_TYPE</constant> parameter is set to either
<constant>GL_VERTEX_SHADER</constant> or
<constant>GL_FRAGMENT_SHADER</constant>, depending on the value
of <parameter>shaderType</parameter>.</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>Like texture objects, the name space for
shader objects may be shared across a set of contexts, as long
as the server sides of the contexts share the same address
space. If the name space is shared across contexts, any attached
objects and the data associated with those attached objects are
shared as well.</para>
<para>Applications are responsible for providing the
synchronization across API calls when objects are accessed from
different execution threads.</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>This function returns 0 if an error occurs creating the
shader object.</para>
<para><constant>GL_INVALID_ENUM</constant> is generated if
<parameter>shaderType</parameter> is not an accepted value.</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para><citerefentry><refentrytitle>glGetShaderiv</refentrytitle></citerefentry>
with a valid shader object and the parameter to be queried</para>
<para><citerefentry><refentrytitle>glGetShaderInfoLog</refentrytitle></citerefentry>
with a valid shader object</para>
<para><citerefentry><refentrytitle>glGetShaderSource</refentrytitle></citerefentry>
with a valid shader object</para>
<para><citerefentry><refentrytitle>glIsShader</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para><citerefentry><refentrytitle>glAttachShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCompileShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDeleteShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDetachShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glShaderSource</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glShaderBinary</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2003-2005 3Dlabs Inc. Ltd.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,90 @@
<?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="glCullFace">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glCullFace</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glCullFace</refname>
<refpurpose>specify whether front- or back-facing polygons can be culled</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glCullFace</function></funcdef>
<paramdef>GLenum <parameter>mode</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>mode</parameter></term>
<listitem>
<para>
Specifies whether front- or back-facing polygons are candidates for culling.
Symbolic constants
<constant>GL_FRONT</constant>, <constant>GL_BACK</constant>, and <constant>GL_FRONT_AND_BACK</constant> are accepted.
The initial value is <constant>GL_BACK</constant>.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glCullFace</function> specifies whether front- or back-facing polygons are culled
(as specified by <emphasis>mode</emphasis>) when polygon culling is enabled. Polygon
culling is initially disabled.
To enable and disable polygon culling, call the
<citerefentry><refentrytitle>glEnable</refentrytitle></citerefentry> and <citerefentry><refentrytitle>glDisable</refentrytitle></citerefentry> commands
with the argument <constant>GL_CULL_FACE</constant>.
</para>
<para>
<citerefentry><refentrytitle>glFrontFace</refentrytitle></citerefentry> specifies which of the clockwise and counterclockwise polygons
are front-facing and back-facing.
See <citerefentry><refentrytitle>glFrontFace</refentrytitle></citerefentry>.
</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>
If <parameter>mode</parameter> is <constant>GL_FRONT_AND_BACK</constant>, no polygons are drawn, but other
primitives such as points and lines are drawn.
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>mode</parameter> is not an accepted value.
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glIsEnabled</refentrytitle></citerefentry> with argument <constant>GL_CULL_FACE</constant>
</para>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_CULL_FACE_MODE</constant>
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glEnable</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glFrontFace</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>

View file

@ -2,17 +2,13 @@
<!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="glDeleteBuffers">
<refentryinfo>
<refmeta>
<refmetainfo>
<copyright>
<year>2005</year>
<holder>Sams Publishing</holder>
</copyright>
<copyright>
<year>2010-2013</year>
<holder>Khronos Group</holder>
</copyright>
</refentryinfo>
<refmeta>
</refmetainfo>
<refentrytitle>glDeleteBuffers</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
@ -55,7 +51,7 @@
After a buffer object is deleted, it has no contents,
and its name is free for reuse (for example by <citerefentry><refentrytitle>glGenBuffers</refentrytitle></citerefentry>).
If a buffer object that is currently bound is deleted, the binding reverts
to 0 (the absence of any buffer object).
to 0 (the absence of any buffer object, which reverts to client memory usage).
</para>
<para>
<function>glDeleteBuffers</function> silently ignores 0's and names that do not correspond to
@ -76,13 +72,12 @@
<para>
<citerefentry><refentrytitle>glBindBuffer</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGenBuffers</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>
<citerefentry><refentrytitle>glIsBuffer</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="Copyright"><title>Copyright</title>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2005 Addison-Wesley.
Copyright <trademark class="copyright"></trademark> 2010-2013 Khronos Group.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.

View file

@ -0,0 +1,86 @@
<?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="glDeleteFramebuffers">
<refmeta>
<refmetainfo>
<copyright>
<year>2005</year>
<holder>Sams Publishing</holder>
</copyright>
</refmetainfo>
<refentrytitle>glDeleteFramebuffers</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glDeleteFramebuffers</refname>
<refpurpose>delete named framebuffer objects</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glDeleteFramebuffers</function></funcdef>
<paramdef>GLsizei <parameter>n</parameter></paramdef>
<paramdef>const GLuint * <parameter>framebuffers</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>n</parameter></term>
<listitem>
<para>
Specifies the number of framebuffer objects to be deleted.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>framebuffers</parameter></term>
<listitem>
<para>
Specifies an array of framebuffer objects to be deleted.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glDeleteFramebuffers</function> deletes <parameter>n</parameter> framebuffer objects named by the elements of the array <parameter>framebuffers</parameter>.
After a framebuffer object is deleted, it has no attachments,
and its name is free for reuse (for example by <citerefentry><refentrytitle>glGenFramebuffers</refentrytitle></citerefentry>).
If a framebuffer object that is currently bound is deleted, the binding reverts
to 0 (the window-system-provided framebuffer).
</para>
<para>
<function>glDeleteFramebuffers</function> silently ignores 0's and names that do not correspond to
existing framebuffer objects.
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if <parameter>n</parameter> is negative.
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glIsFramebuffer</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glBindFramebuffer</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGenFramebuffers</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glIsFramebuffer</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2008 Khronos Group.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,85 @@
<?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="glDeleteProgram">
<refmeta>
<refentrytitle>glDeleteProgram</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glDeleteProgram</refname>
<refpurpose>delete a program object</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glDeleteProgram</function></funcdef>
<paramdef>GLuint <parameter>program</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>program</parameter></term>
<listitem>
<para>Specifies the program object to be
deleted.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para><function>glDeleteProgram</function> frees the memory and
invalidates the name associated with the program object
specified by <parameter>program.</parameter> This command
effectively undoes the effects of a call to
<citerefentry><refentrytitle>glCreateProgram</refentrytitle></citerefentry>.</para>
<para>If a program object is in use as part of current rendering
state, it will be flagged for deletion, but it will not be
deleted until it is no longer part of current state for any
rendering context. If a program object to be deleted has shader
objects attached to it, those shader objects will be
automatically detached but not deleted unless they have already
been flagged for deletion by a previous call to
<citerefentry><refentrytitle>glDeleteShader</refentrytitle></citerefentry>.
A value of 0 for <parameter>program</parameter> will be silently
ignored.</para>
<para>To determine whether a program object has been flagged for
deletion, call
<citerefentry><refentrytitle>glGetProgramiv</refentrytitle></citerefentry>
with arguments <parameter>program</parameter> and
<constant>GL_DELETE_STATUS</constant>.</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para><constant>GL_INVALID_VALUE</constant> is generated if
<parameter>program</parameter> is not a value generated by
OpenGL.</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para><citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>
with argument <constant>GL_CURRENT_PROGRAM</constant></para>
<para><citerefentry><refentrytitle>glGetProgramiv</refentrytitle></citerefentry>
with arguments <parameter>program</parameter> and
<constant>GL_DELETE_STATUS</constant></para>
<para><citerefentry><refentrytitle>glIsProgram</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para><citerefentry><refentrytitle>glCreateShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDetachShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glUseProgram</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2003-2005 3Dlabs Inc. Ltd.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,93 @@
<?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="glDeleteRenderbuffers">
<refmeta>
<refmetainfo>
<copyright>
<year>2005</year>
<holder>Sams Publishing</holder>
</copyright>
</refmetainfo>
<refentrytitle>glDeleteRenderbuffers</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glDeleteRenderbuffers</refname>
<refpurpose>delete named renderbuffer objects</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glDeleteRenderbuffers</function></funcdef>
<paramdef>GLsizei <parameter>n</parameter></paramdef>
<paramdef>const GLuint * <parameter>renderbuffers</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>n</parameter></term>
<listitem>
<para>
Specifies the number of renderbuffer objects to be deleted.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>renderbuffers</parameter></term>
<listitem>
<para>
Specifies an array of renderbuffer objects to be deleted.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glDeleteRenderbuffers</function> deletes <parameter>n</parameter> renderbuffer objects named by the elements of the array <parameter>renderbuffers</parameter>.
After a renderbuffer object is deleted, it has no contents,
and its name is free for reuse (for example by <citerefentry><refentrytitle>glGenRenderbuffers</refentrytitle></citerefentry>).
</para>
<para>
If a renderbuffer object that is currently bound is deleted, the binding reverts
to 0 (the absence of any renderbuffer object). Additionally, special care
must be taken when deleting a renderbuffer object if the image of the renderbuffer
is attached to a framebuffer object. In this case, if the deleted renderbuffer object is
attached to the currently bound framebuffer object, it is
automatically detached. However, attachments to any other framebuffer objects are the
responsibility of the application.
</para>
<para>
<function>glDeleteRenderbuffers</function> silently ignores 0's and names that do not correspond to
existing renderbuffer objects.
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if <parameter>n</parameter> is negative.
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glIsRenderbuffer</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glBindRenderbuffer</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGenRenderbuffers</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glIsRenderbuffer</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2008 Khronos Group.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,81 @@
<?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="glDeleteShader">
<refmeta>
<refentrytitle>glDeleteShader</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glDeleteShader</refname>
<refpurpose>delete a shader object</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glDeleteShader</function></funcdef>
<paramdef>GLuint <parameter>shader</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>shader</parameter></term>
<listitem>
<para>Specifies the shader object to be deleted.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para><function>glDeleteShader</function> frees the memory and
invalidates the name associated with the shader object specified
by <parameter>shader</parameter>. This command effectively
undoes the effects of a call to
<citerefentry><refentrytitle>glCreateShader</refentrytitle></citerefentry>.</para>
<para>If a shader object to be deleted is attached to a program
object, it will be flagged for deletion, but it will not be
deleted until it is no longer attached to any program object,
for any rendering context (i.e., it must be detached from
wherever it was attached before it will be deleted). A value of
0 for <parameter>shader</parameter> will be silently
ignored.</para>
<para>To determine whether an object has been flagged for
deletion, call
<citerefentry><refentrytitle>glGetShaderiv</refentrytitle></citerefentry>
with arguments <parameter>shader</parameter> and
<constant>GL_DELETE_STATUS</constant>.</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para><constant>GL_INVALID_VALUE</constant> is generated if
<parameter>shader</parameter> is not a value generated by
OpenGL.</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para><citerefentry><refentrytitle>glGetAttachedShaders</refentrytitle></citerefentry>
with the program object to be queried</para>
<para><citerefentry><refentrytitle>glGetShaderiv</refentrytitle></citerefentry>
with arguments <parameter>shader</parameter> and
<constant>GL_DELETE_STATUS</constant></para>
<para><citerefentry><refentrytitle>glIsShader</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para><citerefentry><refentrytitle>glCreateProgram</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCreateShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDetachShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glUseProgram</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2003-2005 3Dlabs Inc. Ltd.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,86 @@
<?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="glDeleteTextures">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glDeleteTextures</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glDeleteTextures</refname>
<refpurpose>delete named textures</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glDeleteTextures</function></funcdef>
<paramdef>GLsizei <parameter>n</parameter></paramdef>
<paramdef>const GLuint * <parameter>textures</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>n</parameter></term>
<listitem>
<para>
Specifies the number of textures to be deleted.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>textures</parameter></term>
<listitem>
<para>
Specifies an array of textures to be deleted.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glDeleteTextures</function> deletes <parameter>n</parameter> textures named by the elements of the array <parameter>textures</parameter>.
After a texture is deleted, it has no contents or dimensionality,
and its name is free for reuse (for example by <citerefentry><refentrytitle>glGenTextures</refentrytitle></citerefentry>).
If a texture that is currently bound is deleted, the binding reverts
to 0 (the default texture).
</para>
<para>
<function>glDeleteTextures</function> silently ignores 0's and names that do not correspond to
existing textures.
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if <parameter>n</parameter> is negative.
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glIsTexture</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glBindTexture</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGenTextures</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glIsTexture</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>

View file

@ -0,0 +1,168 @@
<?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="glDepthFunc">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glDepthFunc</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glDepthFunc</refname>
<refpurpose>specify the value used for depth buffer comparisons</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glDepthFunc</function></funcdef>
<paramdef>GLenum <parameter>func</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>func</parameter></term>
<listitem>
<para>
Specifies the depth comparison function.
Symbolic constants
<constant>GL_NEVER</constant>,
<constant>GL_LESS</constant>,
<constant>GL_EQUAL</constant>,
<constant>GL_LEQUAL</constant>,
<constant>GL_GREATER</constant>,
<constant>GL_NOTEQUAL</constant>,
<constant>GL_GEQUAL</constant>, and
<constant>GL_ALWAYS</constant> are accepted.
The initial value is <constant>GL_LESS</constant>.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glDepthFunc</function> specifies the function used to compare each incoming pixel depth value
with the depth value present in the depth buffer.
The comparison is performed only if depth testing is enabled.
(See <citerefentry><refentrytitle>glEnable</refentrytitle></citerefentry> and <citerefentry><refentrytitle>glDisable</refentrytitle></citerefentry> of <constant>GL_DEPTH_TEST</constant>.)
</para>
<para>
<parameter>func</parameter> specifies the conditions under which the pixel will be drawn.
The comparison functions are as follows:
</para>
<variablelist>
<varlistentry>
<term><constant>GL_NEVER</constant></term>
<listitem>
<para>
Never passes.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_LESS</constant></term>
<listitem>
<para>
Passes if the incoming depth value is less than the stored depth value.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_EQUAL</constant></term>
<listitem>
<para>
Passes if the incoming depth value is equal to the stored depth value.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_LEQUAL</constant></term>
<listitem>
<para>
Passes if the incoming depth value is less than or equal to
the stored depth value.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_GREATER</constant></term>
<listitem>
<para>
Passes if the incoming depth value is greater than the stored depth value.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_NOTEQUAL</constant></term>
<listitem>
<para>
Passes if the incoming depth value is not equal to the stored depth value.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_GEQUAL</constant></term>
<listitem>
<para>
Passes if the incoming depth value is greater than or equal to
the stored depth value.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_ALWAYS</constant></term>
<listitem>
<para>
Always passes.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
The initial value of <parameter>func</parameter> is <constant>GL_LESS</constant>.
Initially, depth testing is disabled. If depth testing is disabled or no depth
buffer exists, it is as if the depth test always passes.
</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>
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.
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>func</parameter> is not an accepted value.
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_DEPTH_FUNC</constant>
</para>
<para>
<citerefentry><refentrytitle>glIsEnabled</refentrytitle></citerefentry> with argument <constant>GL_DEPTH_TEST</constant>
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glDepthRangef</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glEnable</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glPolygonOffset</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>

View file

@ -0,0 +1,73 @@
<?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="glDepthMask">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glDepthMask</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glDepthMask</refname>
<refpurpose>enable or disable writing into the depth buffer</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glDepthMask</function></funcdef>
<paramdef>GLboolean <parameter>flag</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>flag</parameter></term>
<listitem>
<para>
Specifies whether the depth buffer is enabled for writing.
If <parameter>flag</parameter> is <constant>GL_FALSE</constant>,
depth buffer writing is disabled.
Otherwise, it is enabled.
Initially, depth buffer writing is enabled.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glDepthMask</function> specifies whether the depth buffer is enabled for writing.
If <parameter>flag</parameter> is <constant>GL_FALSE</constant>,
depth buffer writing is disabled.
Otherwise, it is enabled.
Initially, depth buffer writing is enabled.
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_DEPTH_WRITEMASK</constant>
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glColorMask</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDepthFunc</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDepthRangef</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glStencilMask</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>

View file

@ -0,0 +1,121 @@
<?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="glDepthRangef">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glDepthRangef</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glDepthRangef</refname>
<refpurpose>specify mapping of depth values from normalized device coordinates to window coordinates</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glDepthRangef</function></funcdef>
<paramdef>GLclampf <parameter>nearVal</parameter></paramdef>
<paramdef>GLclampf <parameter>farVal</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<!-- eqn: ignoring delim $$ -->
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>nearVal</parameter></term>
<listitem>
<para>
Specifies the mapping of the near clipping plane to window coordinates.
The initial value is 0.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>farVal</parameter></term>
<listitem>
<para>
Specifies the mapping of the far clipping plane to window coordinates.
The initial value is 1.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
After clipping and division by <emphasis>w</emphasis>,
depth coordinates range from
<inlineequation><mml:math>
<!-- eqn: -1:-->
<mml:mn>-1</mml:mn>
</mml:math></inlineequation>
to 1,
corresponding to the near and far clipping planes.
<function>glDepthRangef</function> specifies a linear mapping of the normalized depth coordinates
in this range to window depth coordinates.
Regardless of the actual depth buffer implementation,
window coordinate depth values are treated as though they range
from 0 through 1 (like color components).
Thus,
the values accepted by <function>glDepthRangef</function> are both clamped to this range
before they are accepted.
</para>
<para>
The setting of (0,1) maps the near plane to 0 and
the far plane to 1.
With this mapping,
the depth buffer range is fully utilized.
</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>
It is not necessary that <parameter>nearVal</parameter> be less than <parameter>farVal</parameter>.
Reverse mappings such as
<inlineequation><mml:math>
<!-- eqn: nearVal = 1:-->
<mml:mrow>
<mml:mi mathvariant="italic">nearVal</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math></inlineequation>,
and
<inlineequation><mml:math>
<!-- eqn: farVal = 0:-->
<mml:mrow>
<mml:mi mathvariant="italic">farVal</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math></inlineequation>
are acceptable.
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_DEPTH_RANGE</constant>
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glDepthFunc</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glPolygonOffset</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glViewport</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>

View file

@ -0,0 +1,91 @@
<?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="glDetachShader">
<refmeta>
<refentrytitle>glDetachShader</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glDetachShader</refname>
<refpurpose>detach a shader object from a program object</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glDetachShader</function></funcdef>
<paramdef>GLuint <parameter>program</parameter></paramdef>
<paramdef>GLuint <parameter>shader</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>program</parameter></term>
<listitem>
<para>Specifies the program object from which to
detach the shader object.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>shader</parameter></term>
<listitem>
<para>Specifies the shader object to be
detached.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para><function>glDetachShader</function> detaches the shader
object specified by <parameter>shader</parameter> from the
program object specified by <parameter>program</parameter>. This
command can be used to undo the effect of the command
<citerefentry><refentrytitle>glAttachShader</refentrytitle></citerefentry>.</para>
<para>If <parameter>shader</parameter> has already been flagged
for deletion by a call to
<citerefentry><refentrytitle>glDeleteShader</refentrytitle></citerefentry>
and it is not attached to any other program object, it will be
deleted after it has been detached.</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para><constant>GL_INVALID_VALUE</constant> is generated if either
<parameter>program</parameter> or <parameter>shader</parameter>
is a value that was not generated by OpenGL.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
<parameter>program</parameter> is not a program object.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
<parameter>shader</parameter> is not a shader object.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
<parameter>shader</parameter> is not attached to
<parameter>program</parameter>.</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para><citerefentry><refentrytitle>glGetAttachedShaders</refentrytitle></citerefentry>
with the handle of a valid program object</para>
<para><citerefentry><refentrytitle>glGetShaderiv</refentrytitle></citerefentry>
with arguments <parameter>shader</parameter> and
<constant>GL_DELETE_STATUS</constant></para>
<para><citerefentry><refentrytitle>glIsProgram</refentrytitle></citerefentry></para>
<para><citerefentry><refentrytitle>glIsShader</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para><citerefentry><refentrytitle>glAttachShader</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2003-2005 3Dlabs Inc. Ltd.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,130 @@
<?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="glDrawArrays">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glDrawArrays</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glDrawArrays</refname>
<refpurpose>render primitives from array data</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glDrawArrays</function></funcdef>
<paramdef>GLenum <parameter>mode</parameter></paramdef>
<paramdef>GLint <parameter>first</parameter></paramdef>
<paramdef>GLsizei <parameter>count</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<!-- eqn: ignoring delim $$ -->
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>mode</parameter></term>
<listitem>
<para>
Specifies what kind of primitives to render.
Symbolic constants
<constant>GL_POINTS</constant>,
<constant>GL_LINE_STRIP</constant>,
<constant>GL_LINE_LOOP</constant>,
<constant>GL_LINES</constant>,
<constant>GL_TRIANGLE_STRIP</constant>,
<constant>GL_TRIANGLE_FAN</constant>, and
<constant>GL_TRIANGLES</constant> are accepted.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>first</parameter></term>
<listitem>
<para>
Specifies the starting index in the enabled arrays.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>count</parameter></term>
<listitem>
<para>
Specifies the number of indices to be rendered.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glDrawArrays</function> specifies multiple geometric primitives
with very few subroutine calls. Instead of calling a GL procedure
to pass each individual vertex attribute, you can use
<citerefentry><refentrytitle>glVertexAttribPointer</refentrytitle></citerefentry>
to prespecify separate arrays of vertices, normals, and colors and use them to
construct a sequence of primitives with a single
call to <function>glDrawArrays</function>.
</para>
<para>
When <function>glDrawArrays</function> is called, it uses <parameter>count</parameter> sequential elements from each
enabled array to construct a sequence of geometric primitives,
beginning with element <parameter>first</parameter>. <parameter>mode</parameter> specifies what kind of
primitives are constructed and how the array elements
construct those primitives.
</para>
<para>
To enable and disable a generic vertex attribute array, call
<citerefentry><refentrytitle>glEnableVertexAttribArray</refentrytitle></citerefentry>
and
<citerefentry><refentrytitle>glDisableVertexAttribArray</refentrytitle></citerefentry>.
</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>
If the current program object, as set by
<citerefentry><refentrytitle>glUseProgram</refentrytitle></citerefentry>,
is invalid, rendering results are undefined. However, no error is generated
for this case.
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>mode</parameter> is not an accepted value.
</para>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if <parameter>count</parameter> is negative.
</para>
<para>
<constant>GL_INVALID_FRAMEBUFFER_OPERATION</constant> is generated if
the currently bound framebuffer is not framebuffer complete (i.e. the
return value from <citerefentry><refentrytitle>glCheckFramebufferStatus</refentrytitle></citerefentry>
is not <constant>GL_FRAMEBUFFER_COMPLETE</constant>).
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glCheckFramebufferStatus</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDisableVertexAttribArray</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDrawElements</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glEnableVertexAttribArray</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glUseProgram</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glVertexAttribPointer</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>

View file

@ -0,0 +1,144 @@
<?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="glDrawElements">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glDrawElements</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glDrawElements</refname>
<refpurpose>render primitives from array data</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glDrawElements</function></funcdef>
<paramdef>GLenum <parameter>mode</parameter></paramdef>
<paramdef>GLsizei <parameter>count</parameter></paramdef>
<paramdef>GLenum <parameter>type</parameter></paramdef>
<paramdef>const GLvoid * <parameter>indices</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<!-- eqn: ignoring delim $$ -->
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>mode</parameter></term>
<listitem>
<para>
Specifies what kind of primitives to render.
Symbolic constants
<constant>GL_POINTS</constant>,
<constant>GL_LINE_STRIP</constant>,
<constant>GL_LINE_LOOP</constant>,
<constant>GL_LINES</constant>,
<constant>GL_TRIANGLE_STRIP</constant>,
<constant>GL_TRIANGLE_FAN</constant>, and
<constant>GL_TRIANGLES</constant> are accepted.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>count</parameter></term>
<listitem>
<para>
Specifies the number of elements to be rendered.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>type</parameter></term>
<listitem>
<para>
Specifies the type of the values in <parameter>indices</parameter>. Must be
<constant>GL_UNSIGNED_BYTE</constant> or <constant>GL_UNSIGNED_SHORT</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>indices</parameter></term>
<listitem>
<para>
Specifies a pointer to the location where the indices are stored.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glDrawElements</function> specifies multiple geometric primitives
with very few subroutine calls. Instead of calling a GL function
to pass each vertex attribute, you can use
<citerefentry><refentrytitle>glVertexAttribPointer</refentrytitle></citerefentry>
to prespecify separate arrays of vertex attributes and use them to
construct a sequence of primitives with a single
call to <function>glDrawElements</function>.
</para>
<para>
When <function>glDrawElements</function> is called, it uses <parameter>count</parameter> sequential elements from an
enabled array, starting at <parameter>indices</parameter> to construct a sequence of
geometric primitives. <parameter>mode</parameter> specifies what kind of primitives are
constructed and how the array elements construct these primitives. If
more than one array is enabled, each is used.
</para>
<para>
To enable and disable a generic vertex attribute array, call
<citerefentry><refentrytitle>glEnableVertexAttribArray</refentrytitle></citerefentry>
and
<citerefentry><refentrytitle>glDisableVertexAttribArray</refentrytitle></citerefentry>.
</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>
If the current program object, as set by
<citerefentry><refentrytitle>glUseProgram</refentrytitle></citerefentry>,
is invalid, rendering results are undefined. However, no error is generated
for this case.
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>mode</parameter> is not an accepted value.
</para>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>type</parameter> is not
<constant>GL_UNSIGNED_BYTE</constant> or <constant>GL_UNSIGNED_SHORT</constant>.
</para>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if <parameter>count</parameter> is negative.
</para>
<para>
<constant>GL_INVALID_FRAMEBUFFER_OPERATION</constant> is generated if
the currently bound framebuffer is not framebuffer complete (i.e. the
return value from <citerefentry><refentrytitle>glCheckFramebufferStatus</refentrytitle></citerefentry>
is not <constant>GL_FRAMEBUFFER_COMPLETE</constant>).
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glCheckFramebufferStatus</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDisableVertexAttribArray</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDrawArrays</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glEnableVertexAttribArray</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glUseProgram</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glVertexAttribPointer</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>

View file

@ -0,0 +1,209 @@
<?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> is <constant>GL_FALSE</constant>. The initial value for
<constant>GL_DITHER</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_BLEND</constant></term>
<listitem>
<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_CULL_FACE</constant></term>
<listitem>
<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>
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>glDepthRangef</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_DITHER</constant> </term>
<listitem>
<para>
If enabled,
dither color components or indices before they are written to the
color buffer.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_POLYGON_OFFSET_FILL</constant></term>
<listitem>
<para>
If enabled, an offset is added to depth values of a polygon's
fragments produced by rasterization.
See <citerefentry><refentrytitle>glPolygonOffset</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_SAMPLE_ALPHA_TO_COVERAGE</constant></term>
<listitem>
<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_COVERAGE</constant></term>
<listitem>
<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_SCISSOR_TEST</constant></term>
<listitem>
<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>
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>
</variablelist>
</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>
</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>glBlendFunc</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCullFace</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDepthFunc</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDepthRangef</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glIsEnabled</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glLineWidth</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glPolygonOffset</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glScissor</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glStencilFunc</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glStencilOp</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glTexImage2D</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>

View file

@ -0,0 +1,86 @@
<?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="glEnableVertexAttribArray">
<refmeta>
<refentrytitle>glEnableVertexAttribArray</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refdescriptor>glEnableVertexAttribArray</refdescriptor>
<refname>glEnableVertexAttribArray</refname>
<refname>glDisableVertexAttribArray</refname>
<refpurpose>enable or disable a generic vertex attribute array</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glEnableVertexAttribArray</function></funcdef>
<paramdef>GLuint <parameter>index</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>void <function>glDisableVertexAttribArray</function></funcdef>
<paramdef>GLuint <parameter>index</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>index</parameter></term>
<listitem>
<para>Specifies the index of the generic vertex
attribute to be enabled or disabled.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para><function>glEnableVertexAttribArray</function> enables the
generic vertex attribute array specified by
<parameter>index</parameter>.
<function>glDisableVertexAttribArray</function> disables the
generic vertex attribute array specified by
<parameter>index</parameter>. By default, all client-side
capabilities are disabled, including all generic vertex
attribute arrays. If enabled, the values in the generic vertex
attribute array will be accessed and used for rendering when
calls are made to vertex array commands such as
<citerefentry><refentrytitle>glDrawArrays</refentrytitle></citerefentry>
or
<citerefentry><refentrytitle>glDrawElements</refentrytitle></citerefentry>.</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para><constant>GL_INVALID_VALUE</constant> is generated if
<parameter>index</parameter> is greater than or equal to
<constant>GL_MAX_VERTEX_ATTRIBS</constant>.</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para><citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>
with argument <constant>GL_MAX_VERTEX_ATTRIBS</constant></para>
<para><citerefentry><refentrytitle>glGetVertexAttrib</refentrytitle></citerefentry>
with arguments <parameter>index</parameter> and
<constant>GL_VERTEX_ATTRIB_ARRAY_ENABLED</constant>
<parameter></parameter></para>
<para><citerefentry><refentrytitle>glGetVertexAttribPointerv</refentrytitle></citerefentry>
with arguments <parameter>index</parameter> and
<constant>GL_VERTEX_ATTRIB_ARRAY_POINTER</constant></para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<citerefentry><refentrytitle>glBindAttribLocation</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDrawArrays</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDrawElements</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glVertexAttrib</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glVertexAttribPointer</refentrytitle></citerefentry>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2003-2005 3Dlabs Inc. Ltd.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -2,17 +2,13 @@
<!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="glFinish">
<refentryinfo>
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
<copyright>
<year>2010-2013</year>
<holder>Khronos Group</holder>
</copyright>
</refentryinfo>
<refmeta>
</refmetainfo>
<refentrytitle>glFinish</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
@ -47,12 +43,11 @@
<citerefentry><refentrytitle>glFlush</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="Copyright"><title>Copyright</title>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 1991-2006 Silicon Graphics, Inc.
Copyright <trademark class="copyright"></trademark> 2010-2013 Khronos Group.
This document is licensed under the SGI Free Software B License.
For details, see
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>

View file

@ -2,17 +2,13 @@
<!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="glFlush">
<refentryinfo>
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
<copyright>
<year>2010-2013</year>
<holder>Khronos Group</holder>
</copyright>
</refentryinfo>
<refmeta>
</refmetainfo>
<refentrytitle>glFlush</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
@ -61,12 +57,11 @@
<citerefentry><refentrytitle>glFinish</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="Copyright"><title>Copyright</title>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 1991-2006 Silicon Graphics, Inc.
Copyright <trademark class="copyright"></trademark> 2010-2013 Khronos Group.
This document is licensed under the SGI Free Software B License.
For details, see
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>

View file

@ -0,0 +1,141 @@
<?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="glFramebufferRenderbuffer">
<refmeta>
<refentrytitle>glFramebufferRenderbuffer</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glFramebufferRenderbuffer</refname>
<refpurpose>attach a renderbuffer object to a framebuffer object</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glFramebufferRenderbuffer</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>GLenum <parameter>attachment</parameter></paramdef>
<paramdef>GLenum <parameter>renderbuffertarget</parameter></paramdef>
<paramdef>GLuint <parameter>renderbuffer</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>target</parameter></term>
<listitem>
<para>Specifies the framebuffer target. The symbolic constant must be
<constant>GL_FRAMEBUFFER</constant>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>attachment</parameter></term>
<listitem>
<para>Specifies the attachment point to which
<parameter>renderbuffer</parameter> should be attached. Must be one of the
following symbolic constants:
<constant>GL_COLOR_ATTACHMENT0</constant>,
<constant>GL_DEPTH_ATTACHMENT</constant>, or
<constant>GL_STENCIL_ATTACHMENT</constant>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>renderbuffertarget</parameter></term>
<listitem>
<para>Specifies the renderbuffer target. The symbolic constant must be
<constant>GL_RENDERBUFFER</constant>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>renderbuffer</parameter></term>
<listitem>
<para>Specifies the renderbuffer object that is to be attached.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para><function>glFramebufferRenderbuffer</function> attaches the
renderbuffer specified by <parameter>renderbuffer</parameter> as
one of the logical buffers of the currently bound framebuffer object.
<parameter>attachment</parameter> specifies whether the renderbuffer
should be attached to the framebuffer object's color, depth, or
stencil buffer. A renderbuffer may not be attached to the default
framebuffer object name 0.</para>
<para>If <parameter>renderbuffer</parameter> is not 0, the value of
<constant>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE</constant> for the
specified attachment point is set to <constant>GL_RENDERBUFFER</constant>
and the value of <constant>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME</constant>
is set to <parameter>renderbuffer</parameter>.
<constant>GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL</constant> and
<constant>GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE</constant> are
set to the default values 0 and <constant>GL_TEXTURE_CUBE_MAP_POSITIVE_X</constant>,
respectively. Any previous attachment to the <parameter>attachment</parameter>
logical buffer of the currently bound framebuffer object is broken.</para>
<para>If <parameter>renderbuffer</parameter> is 0, the current image, if any, attached to
the <parameter>attachment</parameter> logical buffer of the currently bound
framebuffer object is detached. The value of
<constant>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE</constant> is set to
<constant>GL_NONE</constant>. The value of
<constant>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME</constant> is set to 0.
<constant>GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL</constant> and
<constant>GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE</constant> are
set to the default values 0 and <constant>GL_TEXTURE_CUBE_MAP_POSITIVE_X</constant>,
respectively.</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>
If a renderbuffer object is deleted while its image is attached to the currently
bound framebuffer, then it is as if <function>glFramebufferRenderbuffer</function>
had been called with a <parameter>renderbuffer</parameter> of 0 for the attachment
point to which this image was attached in the currently bound framebuffer object.
In other words, the renderbuffer image is detached from the currently bound
framebuffer. Note that the renderbuffer image is specifically <emphasis>not</emphasis>
detached from any non-bound framebuffers. Detaching the image from any non-bound
framebuffers is the responsibility of the application.
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para><constant>GL_INVALID_ENUM</constant> is generated if
<parameter>target</parameter> is not <constant>GL_FRAMEBUFFER</constant>.</para>
<para><constant>GL_INVALID_ENUM</constant> is generated if
<parameter>renderbuffertarget</parameter> is not <constant>GL_RENDERBUFFER</constant> and
<parameter>renderbuffer</parameter> is not 0.</para>
<para><constant>GL_INVALID_ENUM</constant> is generated if
<parameter>attachment</parameter> is not an accepted attachment point.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
the default framebuffer object name 0 is bound.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
<parameter>renderbuffer</parameter> is neither 0 nor the name of an existing
renderbuffer object.</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para><citerefentry><refentrytitle>glGetFramebufferAttachmentParameteriv</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para><citerefentry><refentrytitle>glBindFramebuffer</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glBindRenderbuffer</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCheckFramebufferStatus</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDeleteFramebuffers</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDeleteRenderbuffers</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glFramebufferTexture2D</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetFramebufferAttachmentParameteriv</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glRenderbufferStorage</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2008 Khronos Group.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,182 @@
<?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="glFramebufferTexture2D">
<refmeta>
<refentrytitle>glFramebufferTexture2D</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glFramebufferTexture2D</refname>
<refpurpose>attach a texture image to a framebuffer object</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glFramebufferTexture2D</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>GLenum <parameter>attachment</parameter></paramdef>
<paramdef>GLenum <parameter>textarget</parameter></paramdef>
<paramdef>GLuint <parameter>texture</parameter></paramdef>
<paramdef>GLint <parameter>level</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>target</parameter></term>
<listitem>
<para>Specifies the framebuffer target. The symbolic constant must be
<constant>GL_FRAMEBUFFER</constant>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>attachment</parameter></term>
<listitem>
<para>Specifies the attachment point to which an image from
<parameter>texture</parameter> should be attached. Must be one of the
following symbolic constants:
<constant>GL_COLOR_ATTACHMENT0</constant>,
<constant>GL_DEPTH_ATTACHMENT</constant>, or
<constant>GL_STENCIL_ATTACHMENT</constant>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>textarget</parameter></term>
<listitem>
<para>Specifies the texture target. Must be one of the
following symbolic constants:
<constant>GL_TEXTURE_2D</constant>,
<constant>GL_TEXTURE_CUBE_MAP_POSITIVE_X</constant>,
<constant>GL_TEXTURE_CUBE_MAP_NEGATIVE_X</constant>,
<constant>GL_TEXTURE_CUBE_MAP_POSITIVE_Y</constant>,
<constant>GL_TEXTURE_CUBE_MAP_NEGATIVE_Y</constant>,
<constant>GL_TEXTURE_CUBE_MAP_POSITIVE_Z</constant>, or
<constant>GL_TEXTURE_CUBE_MAP_NEGATIVE_Z</constant>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>texture</parameter></term>
<listitem>
<para>Specifies the texture object whose image is to be attached.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>level</parameter></term>
<listitem>
<para>Specifies the mipmap level of the texture image to be attached,
which must be 0.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para><function>glFramebufferTexture2D</function> attaches the
texture image specified by <parameter>texture</parameter> and
<parameter>level</parameter> as
one of the logical buffers of the currently bound framebuffer object.
<parameter>attachment</parameter> specifies whether the texture image
should be attached to the framebuffer object's color, depth, or
stencil buffer. A texture image may not be attached to the default
framebuffer object name 0.</para>
<para>If <parameter>texture</parameter> is not 0, the value of
<constant>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE</constant> for the
specified attachment point is set to <constant>GL_TEXTURE</constant>,
the value of <constant>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME</constant>
is set to <parameter>texture</parameter>, and the value of
<constant>GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL</constant> is set to
<parameter>level</parameter>. If <parameter>texture</parameter> is a cube map
texture, the value of <constant>GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE</constant>
is set to <parameter>textarget</parameter>; otherwise it is set to the default value
<constant>GL_TEXTURE_CUBE_MAP_POSITIVE_X</constant>. Any previous attachment to the
<parameter>attachment</parameter> logical buffer of the currently bound framebuffer
object is broken.</para>
<para>If <parameter>texture</parameter> is 0, the current image, if any, attached to
the <parameter>attachment</parameter> logical buffer of the currently bound
framebuffer object is detached. The value of
<constant>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE</constant> is set to
<constant>GL_NONE</constant>. The value of
<constant>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME</constant> is set to 0.
<constant>GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL</constant> and
<constant>GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE</constant> are
set to the default values 0 and <constant>GL_TEXTURE_CUBE_MAP_POSITIVE_X</constant>,
respectively.</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>
Special precautions need to be taken to avoid attaching a texture image to the
currently bound framebuffer while the texture object is currently bound and
potentially sampled by the current vertex or fragment shader. Doing so could lead to
the creation of a &quot;feedback loop&quot; between the writing of pixels by rendering operations
and the simultaneous reading of those same pixels when used as texels in the
currently bound texture. In this scenario, the framebuffer will be considered
framebuffer complete, but the values of fragments rendered while in this state will
be undefined. The values of texture samples may be undefined as well.
</para>
<para>
If a texture object is deleted while its image is attached to the currently
bound framebuffer, then it is as if <function>glFramebufferTexture2D</function>
had been called with a <parameter>texture</parameter> of 0 for the attachment
point to which this image was attached in the currently bound framebuffer object.
In other words, the texture image is detached from the currently bound
framebuffer. Note that the texture image is specifically <emphasis>not</emphasis>
detached from any non-bound framebuffers. Detaching the image from any non-bound
framebuffers is the responsibility of the application.
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para><constant>GL_INVALID_ENUM</constant> is generated if
<parameter>target</parameter> is not <constant>GL_FRAMEBUFFER</constant>.</para>
<para><constant>GL_INVALID_ENUM</constant> is generated if
<parameter>textarget</parameter> is not an accepted texture target and
<parameter>texture</parameter> is not 0.</para>
<para><constant>GL_INVALID_ENUM</constant> is generated if
<parameter>attachment</parameter> is not an accepted attachment point.</para>
<para><constant>GL_INVALID_VALUE</constant> is generated if
<parameter>level</parameter> is not 0 and
<parameter>texture</parameter> is not 0.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
the default framebuffer object name 0 is bound.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
<parameter>texture</parameter> is neither 0 nor the name of an existing
texture object.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
<parameter>texture</parameter> is the name of an existing two-dimensional
texture object but <parameter>textarget</parameter> is not
<constant>GL_TEXTURE_2D</constant> or if <parameter>texture</parameter> is
the name of an existing cube map texture object but <parameter>textarget</parameter>
is <constant>GL_TEXTURE_2D</constant>.</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para><citerefentry><refentrytitle>glGetFramebufferAttachmentParameteriv</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para><citerefentry><refentrytitle>glBindFramebuffer</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glBindTexture</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCheckFramebufferStatus</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDeleteFramebuffers</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDeleteTextures</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glFramebufferRenderbuffer</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGenerateMipmap</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetFramebufferAttachmentParameteriv</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glTexImage2D</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2008 Khronos Group.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -2,17 +2,13 @@
<!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="glFrontFace">
<refentryinfo>
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
<copyright>
<year>2010-2013</year>
<holder>Khronos Group</holder>
</copyright>
</refentryinfo>
<refmeta>
</refmetainfo>
<refentrytitle>glFrontFace</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
@ -28,6 +24,7 @@
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<!-- eqn: ignoring delim $$ -->
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
@ -84,15 +81,14 @@
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glCullFace</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCullFace</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="Copyright"><title>Copyright</title>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 1991-2006 Silicon Graphics, Inc.
Copyright <trademark class="copyright"></trademark> 2010-2013 Khronos Group.
This document is licensed under the SGI Free Software B License.
For details, see
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>

View file

@ -2,17 +2,13 @@
<!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="glGenBuffers">
<refentryinfo>
<refmeta>
<refmetainfo>
<copyright>
<year>2005</year>
<holder>Sams Publishing</holder>
</copyright>
<copyright>
<year>2010-2013</year>
<holder>Khronos Group</holder>
</copyright>
</refentryinfo>
<refmeta>
</refmetainfo>
<refentrytitle>glGenBuffers</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
@ -83,10 +79,9 @@
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="Copyright"><title>Copyright</title>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2005 Addison-Wesley.
Copyright <trademark class="copyright"></trademark> 2010-2013 Khronos Group.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.

View file

@ -0,0 +1,90 @@
<?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="glGenFramebuffers">
<refmeta>
<refmetainfo>
<copyright>
<year>2005</year>
<holder>Sams Publishing</holder>
</copyright>
</refmetainfo>
<refentrytitle>glGenFramebuffers</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glGenFramebuffers</refname>
<refpurpose>generate framebuffer object names</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glGenFramebuffers</function></funcdef>
<paramdef>GLsizei <parameter>n</parameter></paramdef>
<paramdef>GLuint * <parameter>framebuffers</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>n</parameter></term>
<listitem>
<para>
Specifies the number of framebuffer object names to be generated.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>framebuffers</parameter></term>
<listitem>
<para>
Specifies an array in which the generated framebuffer object names are stored.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glGenFramebuffers</function> returns <parameter>n</parameter> framebuffer object names in <parameter>framebuffers</parameter>.
There is no guarantee that the names form a contiguous set of integers;
however, it is guaranteed that none of the returned names was in use
immediately before the call to <function>glGenFramebuffers</function>.
</para>
<para>
Framebuffer object names returned by a call to <function>glGenFramebuffers</function> are not returned by
subsequent calls, unless they are first deleted with
<citerefentry><refentrytitle>glDeleteFramebuffers</refentrytitle></citerefentry>.
</para>
<para>
No framebuffer objects are associated with the returned framebuffer object names until they are first bound by calling
<citerefentry><refentrytitle>glBindFramebuffer</refentrytitle></citerefentry>.
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if <parameter>n</parameter> is negative.
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glIsFramebuffer</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glBindFramebuffer</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDeleteFramebuffers</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glIsFramebuffer</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2008 Khronos Group.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,90 @@
<?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="glGenRenderbuffers">
<refmeta>
<refmetainfo>
<copyright>
<year>2005</year>
<holder>Sams Publishing</holder>
</copyright>
</refmetainfo>
<refentrytitle>glGenRenderbuffers</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glGenRenderbuffers</refname>
<refpurpose>generate renderbuffer object names</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glGenRenderbuffers</function></funcdef>
<paramdef>GLsizei <parameter>n</parameter></paramdef>
<paramdef>GLuint * <parameter>renderbuffers</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>n</parameter></term>
<listitem>
<para>
Specifies the number of renderbuffer object names to be generated.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>renderbuffers</parameter></term>
<listitem>
<para>
Specifies an array in which the generated renderbuffer object names are stored.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glGenRenderbuffers</function> returns <parameter>n</parameter> renderbuffer object names in <parameter>renderbuffers</parameter>.
There is no guarantee that the names form a contiguous set of integers;
however, it is guaranteed that none of the returned names was in use
immediately before the call to <function>glGenRenderbuffers</function>.
</para>
<para>
Renderbuffer object names returned by a call to <function>glGenRenderbuffers</function> are not returned by
subsequent calls, unless they are first deleted with
<citerefentry><refentrytitle>glDeleteRenderbuffers</refentrytitle></citerefentry>.
</para>
<para>
No renderbuffer objects are associated with the returned renderbuffer object names until they are first bound by calling
<citerefentry><refentrytitle>glBindRenderbuffer</refentrytitle></citerefentry>.
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if <parameter>n</parameter> is negative.
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glIsRenderbuffer</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glBindRenderbuffer</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDeleteRenderbuffers</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glIsRenderbuffer</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2008 Khronos Group.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,95 @@
<?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="glGenTextures">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glGenTextures</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glGenTextures</refname>
<refpurpose>generate texture names</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glGenTextures</function></funcdef>
<paramdef>GLsizei <parameter>n</parameter></paramdef>
<paramdef>GLuint * <parameter>textures</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>n</parameter></term>
<listitem>
<para>
Specifies the number of texture names to be generated.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>textures</parameter></term>
<listitem>
<para>
Specifies an array in which the generated texture names are stored.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glGenTextures</function> returns <parameter>n</parameter> texture names in <parameter>textures</parameter>.
There is no guarantee that the names form a contiguous set of integers;
however, it is guaranteed that none of the returned names was in use
immediately before the call to <function>glGenTextures</function>.
</para>
<para>
The generated textures have no dimensionality; they assume the dimensionality
of the texture target to which they are first bound
(see <citerefentry><refentrytitle>glBindTexture</refentrytitle></citerefentry>).
</para>
<para>
Texture names returned by a call to <function>glGenTextures</function> are not returned by
subsequent calls, unless they are first deleted with
<citerefentry><refentrytitle>glDeleteTextures</refentrytitle></citerefentry>.
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if <parameter>n</parameter> is negative.
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glIsTexture</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glBindTexture</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCopyTexImage2D</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDeleteTextures</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetTexParameter</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glTexImage2D</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glTexParameter</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>

View file

@ -0,0 +1,82 @@
<?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="glGenerateMipmap">
<refmeta>
<refentrytitle>glGenerateMipmap</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glGenerateMipmap</refname>
<refpurpose>generate a complete set of mipmaps for a texture object</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glGenerateMipmap</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>target</parameter></term>
<listitem>
<para>Specifies the texture target of the active texture unit to which the texture object
is bound whose mipmaps will be generated. Must be one of the following
symbolic constants: <constant>GL_TEXTURE_2D</constant> or
<constant>GL_TEXTURE_CUBE_MAP</constant>.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para><function>glGenerateMipmap</function> computes a complete set
of mipmap arrays derived from the zero level array. Array levels up to and
including the 1x1 dimension texture image are replaced with the derived arrays,
regardless of previous contents. The zero level texture image is left unchanged.</para>
<para>The internal formats of the derived mipmap arrays all match those of
the zero level texture image. The dimensions of the derived arrays are computed by
halving the width and height of the zero level texture image, then in turn halving
the dimensions of each array level until the 1x1 dimension texture image is
reached.</para>
<para>The contents of the derived arrays are computed by repeated filtered reduction
of the zero level array. No particular filter algorithm is required, though a
box filter is recommended.
<citerefentry><refentrytitle>glHint</refentrytitle></citerefentry> may be called
to express a preference for speed or quality of filtering.</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para><constant>GL_INVALID_ENUM</constant> is generated if
<parameter>target</parameter> is not <constant>GL_TEXTURE_2D</constant> or
<constant>GL_TEXTURE_CUBE_MAP</constant>.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
the texture bound to <parameter>target</parameter> is a cube map, but its
six faces do not share indentical widths, heights, formats, and types.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
either the width or height of the zero level array is not a power of two.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
the zero level array is stored in a compressed internal format.</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para><citerefentry><refentrytitle>glBindTexture</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glFramebufferTexture2D</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glHint</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glTexImage2D</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glTexParameter</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2008 Khronos Group.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,194 @@
<?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="glGetActiveAttrib">
<refmeta>
<refentrytitle>glGetActiveAttrib</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glGetActiveAttrib</refname>
<refpurpose>return information about an active attribute variable</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glGetActiveAttrib</function></funcdef>
<paramdef>GLuint <parameter>program</parameter></paramdef>
<paramdef>GLuint <parameter>index</parameter></paramdef>
<paramdef>GLsizei <parameter>bufSize</parameter></paramdef>
<paramdef>GLsizei *<parameter>length</parameter></paramdef>
<paramdef>GLint *<parameter>size</parameter></paramdef>
<paramdef>GLenum *<parameter>type</parameter></paramdef>
<paramdef>GLchar *<parameter>name</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>program</parameter></term>
<listitem>
<para>Specifies the program object to be
queried.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>index</parameter></term>
<listitem>
<para>Specifies the index of the attribute variable
to be queried.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>bufSize</parameter></term>
<listitem>
<para>Specifies the maximum number of characters
OpenGL is allowed to write in the character buffer
indicated by <parameter>name</parameter>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>length</parameter></term>
<listitem>
<para>Returns the number of characters actually
written by OpenGL in the string indicated by
<parameter>name</parameter> (excluding the null
terminator) if a value other than
<constant>NULL</constant> is passed.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>size</parameter></term>
<listitem>
<para>Returns the size of the attribute
variable.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>type</parameter></term>
<listitem>
<para>Returns the data type of the attribute
variable.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>name</parameter></term>
<listitem>
<para>Returns a null terminated string containing
the name of the attribute variable.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para><function>glGetActiveAttrib</function> returns information
about an active attribute variable in the program object
specified by <parameter>program</parameter>. The number of
active attributes can be obtained by calling
<citerefentry><refentrytitle>glGetProgramiv</refentrytitle></citerefentry>
with the value <constant>GL_ACTIVE_ATTRIBUTES</constant>. A
value of 0 for <parameter>index</parameter> selects the first
active attribute variable. Permissible values for
<parameter>index</parameter> range from 0 to the number of
active attribute variables minus 1.</para>
<para>Attribute variables have arbitrary names and obtain their values
through numbered generic vertex attributes. An attribute
variable is considered active
if it is determined during the link operation that it may be
accessed during program execution. Therefore,
<parameter>program</parameter> should have previously been the
target of a call to
<citerefentry><refentrytitle>glLinkProgram</refentrytitle></citerefentry>,
but it is not necessary for it to have been linked
successfully.</para>
<para>The size of the character buffer required to store the
longest attribute variable name in
<parameter>program</parameter> can be obtained by calling
<citerefentry><refentrytitle>glGetProgramiv</refentrytitle></citerefentry>
with the value
<constant>GL_ACTIVE_ATTRIBUTE_MAX_LENGTH</constant>. This value
should be used to allocate a buffer of sufficient size to store
the returned attribute name. The size of this character buffer
is passed in <parameter>bufSize</parameter>, and a pointer to
this character buffer is passed in
<parameter>name</parameter>.</para>
<para><function>glGetActiveAttrib</function> returns the name of
the attribute variable indicated by
<parameter>index</parameter>, storing it in the character buffer
specified by <parameter>name</parameter>. The string returned
will be null terminated. The actual number of characters written
into this buffer is returned in <parameter>length</parameter>,
and this count does not include the null termination character.
If the length of the returned string is not required, a value of
<constant>NULL</constant> can be passed in the
<parameter>length</parameter> argument.</para>
<para>The <parameter>type</parameter> argument will return a
pointer to the attribute variable's data type. The symbolic
constants <constant>GL_FLOAT</constant>,
<constant>GL_FLOAT_VEC2</constant>,
<constant>GL_FLOAT_VEC3</constant>,
<constant>GL_FLOAT_VEC4</constant>,
<constant>GL_FLOAT_MAT2</constant>,
<constant>GL_FLOAT_MAT3</constant>, or
<constant>GL_FLOAT_MAT4</constant> may be returned. The
<parameter>size</parameter> argument will return the size of the
attribute, in units of the type returned in
<parameter>type</parameter>.</para>
<para>This function will return as much information as it can
about the specified active attribute variable. If no information
is available, <parameter>length</parameter> will be 0, and
<parameter>name</parameter> will be an empty string. This
situation could occur if this function is called after a link
operation that failed. If an error occurs, the return values
<parameter>length</parameter>, <parameter>size</parameter>,
<parameter>type</parameter>, and <parameter>name</parameter>
will be unmodified.</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para><constant>GL_INVALID_VALUE</constant> is generated if
<parameter>program</parameter> is not a value generated by
OpenGL.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
<parameter>program</parameter> is not a program object.</para>
<para><constant>GL_INVALID_VALUE</constant> is generated if
<parameter>index</parameter> is greater than or equal to the
number of active attribute variables in
<parameter>program</parameter>.</para>
<para><constant>GL_INVALID_VALUE</constant> is generated if
<parameter>bufSize</parameter> is less than 0.</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para><citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>
with argument <constant>GL_MAX_VERTEX_ATTRIBS</constant>.</para>
<para><citerefentry><refentrytitle>glGetProgramiv</refentrytitle></citerefentry>
with argument <constant>GL_ACTIVE_ATTRIBUTES</constant> or
<constant>GL_ACTIVE_ATTRIBUTE_MAX_LENGTH</constant>.</para>
<para><citerefentry><refentrytitle>glIsProgram</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para><citerefentry><refentrytitle>glBindAttribLocation</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetActiveUniform</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glLinkProgram</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glVertexAttrib</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glVertexAttribPointer</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2003-2005 3Dlabs Inc. Ltd.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,246 @@
<?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="glGetActiveUniform">
<refmeta>
<refentrytitle>glGetActiveUniform</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glGetActiveUniform</refname>
<refpurpose>return information about an active uniform variable</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glGetActiveUniform</function></funcdef>
<paramdef>GLuint <parameter>program</parameter></paramdef>
<paramdef>GLuint <parameter>index</parameter></paramdef>
<paramdef>GLsizei <parameter>bufSize</parameter></paramdef>
<paramdef>GLsizei *<parameter>length</parameter></paramdef>
<paramdef>GLint *<parameter>size</parameter></paramdef>
<paramdef>GLenum *<parameter>type</parameter></paramdef>
<paramdef>GLchar *<parameter>name</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>program</parameter></term>
<listitem>
<para>Specifies the program object to be
queried.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>index</parameter></term>
<listitem>
<para>Specifies the index of the uniform variable to
be queried.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>bufSize</parameter></term>
<listitem>
<para>Specifies the maximum number of characters
OpenGL is allowed to write in the character buffer
indicated by <parameter>name</parameter>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>length</parameter></term>
<listitem>
<para>Returns the number of characters actually
written by OpenGL in the string indicated by
<parameter>name</parameter> (excluding the null
terminator) if a value other than
<constant>NULL</constant> is passed.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>size</parameter></term>
<listitem>
<para>Returns the size of the uniform
variable.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>type</parameter></term>
<listitem>
<para>Returns the data type of the uniform
variable.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>name</parameter></term>
<listitem>
<para>Returns a null terminated string containing
the name of the uniform variable.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para><function>glGetActiveUniform</function> returns
information about an active uniform variable in the program
object specified by <parameter>program</parameter>. The number
of active uniform variables can be obtained by calling
<citerefentry><refentrytitle>glGetProgramiv</refentrytitle></citerefentry>
with the value <constant>GL_ACTIVE_UNIFORMS</constant>. A value
of 0 for <parameter>index</parameter> selects the first active
uniform variable. Permissible values for
<parameter>index</parameter> range from 0 to the number of
active uniform variables minus 1.</para>
<para>Shaders may use either built-in uniform variables,
user-defined uniform variables, or both. Built-in uniform
variables have a prefix of &quot;gl_&quot; and reference
existing OpenGL state or values derived from such state (e.g.,
<parameter>gl_DepthRange</parameter>).
User-defined uniform variables have arbitrary names and obtain
their values from the application through calls to
<citerefentry><refentrytitle>glUniform</refentrytitle></citerefentry>.
A uniform variable (either built-in or user-defined) is
considered active if it is determined during the link operation
that it may be accessed during program execution. Therefore,
<parameter>program</parameter> should have previously been the
target of a call to
<citerefentry><refentrytitle>glLinkProgram</refentrytitle></citerefentry>,
but it is not necessary for it to have been linked
successfully.</para>
<para>The size of the character buffer required to store the
longest uniform variable name in <parameter>program</parameter>
can be obtained by calling
<citerefentry><refentrytitle>glGetProgramiv</refentrytitle></citerefentry>
with the value
<constant>GL_ACTIVE_UNIFORM_MAX_LENGTH</constant>. This value
should be used to allocate a buffer of sufficient size to store
the returned uniform variable name. The size of this character
buffer is passed in <parameter>bufSize</parameter>, and a
pointer to this character buffer is passed in
<parameter>name.</parameter></para>
<para><function>glGetActiveUniform</function> returns the name
of the uniform variable indicated by
<parameter>index</parameter>, storing it in the character buffer
specified by <parameter>name</parameter>. The string returned
will be null terminated. The actual number of characters written
into this buffer is returned in <parameter>length</parameter>,
and this count does not include the null termination character.
If the length of the returned string is not required, a value of
<constant>NULL</constant> can be passed in the
<parameter>length</parameter> argument.</para>
<para>The <parameter>type</parameter>
argument will return a pointer to the uniform variable's data
type. The symbolic constants
<constant>GL_FLOAT</constant>,
<constant>GL_FLOAT_VEC2</constant>,
<constant>GL_FLOAT_VEC3</constant>,
<constant>GL_FLOAT_VEC4</constant>,
<constant>GL_INT</constant>,
<constant>GL_INT_VEC2</constant>,
<constant>GL_INT_VEC3</constant>,
<constant>GL_INT_VEC4</constant>,
<constant>GL_BOOL</constant>,
<constant>GL_BOOL_VEC2</constant>,
<constant>GL_BOOL_VEC3</constant>,
<constant>GL_BOOL_VEC4</constant>,
<constant>GL_FLOAT_MAT2</constant>,
<constant>GL_FLOAT_MAT3</constant>,
<constant>GL_FLOAT_MAT4</constant>,
<constant>GL_SAMPLER_2D</constant>, or
<constant>GL_SAMPLER_CUBE</constant>
may be returned.</para>
<para>If one or more elements of an array are active, the name
of the array is returned in <parameter>name</parameter>, the
type is returned in <parameter>type</parameter>, and the
<parameter>size</parameter> parameter returns the highest array
element index used, plus one, as determined by the compiler
and/or linker. Only one active uniform variable will be reported
for a uniform array.</para>
<para>Uniform variables that are declared as structures or
arrays of structures will not be returned directly by this
function. Instead, each of these uniform variables will be
reduced to its fundamental components containing the
&quot;.&quot; and &quot;[]&quot; operators such that each of the
names is valid as an argument to
<citerefentry><refentrytitle>glGetUniformLocation</refentrytitle></citerefentry>.
Each of these reduced uniform variables is counted as one active
uniform variable and is assigned an index. A valid name cannot
be a structure, an array of structures, or a subcomponent of a
vector or matrix.</para>
<para>The size of the uniform variable will be returned in
<parameter>size</parameter>. Uniform variables other than arrays
will have a size of 1. Structures and arrays of structures will
be reduced as described earlier, such that each of the names
returned will be a data type in the earlier list. If this
reduction results in an array, the size returned will be as
described for uniform arrays; otherwise, the size returned will
be 1.</para>
<para>The list of active uniform variables may include both
built-in uniform variables (which begin with the prefix
&quot;gl_&quot;) as well as user-defined uniform variable
names.</para>
<para>This function will return as much information as it can
about the specified active uniform variable. If no information
is available, <parameter>length</parameter> will be 0, and
<parameter>name</parameter> will be an empty string. This
situation could occur if this function is called after a link
operation that failed. If an error occurs, the return values
<parameter>length</parameter>, <parameter>size</parameter>,
<parameter>type</parameter>, and <parameter>name</parameter>
will be unmodified.</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para><constant>GL_INVALID_VALUE</constant> is generated if
<parameter>program</parameter> is not a value generated by
OpenGL.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
<parameter>program</parameter> is not a program object.</para>
<para><constant>GL_INVALID_VALUE</constant> is generated if
<parameter>index</parameter> is greater than or equal to the
number of active uniform variables in
<parameter>program</parameter>.</para>
<para><constant>GL_INVALID_VALUE</constant> is generated if
<parameter>bufSize</parameter> is less than 0.</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para><citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>
with argument <constant>GL_MAX_VERTEX_UNIFORM_VECTORS
</constant> or
<constant>GL_MAX_FRAGMENT_UNIFORM_VECTORS</constant>.</para>
<para><citerefentry><refentrytitle>glGetProgramiv</refentrytitle></citerefentry>
with argument <constant>GL_ACTIVE_UNIFORMS</constant> or
<constant>GL_ACTIVE_UNIFORM_MAX_LENGTH</constant>.</para>
<para><citerefentry><refentrytitle>glIsProgram</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para><citerefentry><refentrytitle>glGetActiveAttrib</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetUniform</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetUniformLocation</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glLinkProgram</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glUniform</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glUseProgram</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2003-2005 3Dlabs Inc. Ltd.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,109 @@
<?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="glGetAttachedShaders">
<refmeta>
<refentrytitle>glGetAttachedShaders</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glGetAttachedShaders</refname>
<refpurpose>return the handles of the shader objects attached to a program object</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glGetAttachedShaders</function></funcdef>
<paramdef>GLuint <parameter>program</parameter></paramdef>
<paramdef>GLsizei <parameter>maxCount</parameter></paramdef>
<paramdef>GLsizei *<parameter>count</parameter></paramdef>
<paramdef>GLuint *<parameter>shaders</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>program</parameter></term>
<listitem>
<para>Specifies the program object to be
queried.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>maxCount</parameter></term>
<listitem>
<para>Specifies the size of the array for storing
the returned object names.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>count</parameter></term>
<listitem>
<para>Returns the number of names actually returned
in <parameter>shaders</parameter>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>shaders</parameter></term>
<listitem>
<para>Specifies an array that is used to return the
names of attached shader objects.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para><function>glGetAttachedShaders</function> returns the
names of the shader objects attached to
<parameter>program</parameter>. The names of shader objects that
are attached to <parameter>program</parameter> will be returned
in <parameter>shaders.</parameter> The actual number of shader
names written into <parameter>shaders</parameter> is returned in
<parameter>count.</parameter> If no shader objects are attached
to <parameter>program</parameter>, <parameter>count</parameter>
is set to 0. The maximum number of shader names that may be
returned in <parameter>shaders</parameter> is specified by
<parameter>maxCount</parameter>. </para>
<para>If the number of names actually returned is not required
(for instance, if it has just been obtained by calling
<citerefentry><refentrytitle>glGetProgramiv</refentrytitle></citerefentry>),
a value of <constant>NULL</constant> may be passed for count. If
no shader objects are attached to
<parameter>program</parameter>, a value of 0 will be returned in
<parameter>count</parameter>. The actual number of attached
shaders can be obtained by calling
<citerefentry><refentrytitle>glGetProgramiv</refentrytitle></citerefentry>
with the value <constant>GL_ATTACHED_SHADERS</constant>.</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para><constant>GL_INVALID_VALUE</constant> is generated if
<parameter>program</parameter> is not a value generated by
OpenGL.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
<parameter>program</parameter> is not a program object.</para>
<para><constant>GL_INVALID_VALUE</constant> is generated if
<parameter>maxCount</parameter> is less than 0.</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para><citerefentry><refentrytitle>glGetProgramiv</refentrytitle></citerefentry>
with argument <constant>GL_ATTACHED_SHADERS</constant></para>
<para><citerefentry><refentrytitle>glIsProgram</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para><citerefentry><refentrytitle>glAttachShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDetachShader</refentrytitle></citerefentry></para>.
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2003-2005 3Dlabs Inc. Ltd.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,103 @@
<?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="glGetAttribLocation">
<refmeta>
<refentrytitle>glGetAttribLocation</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glGetAttribLocation</refname>
<refpurpose>return the location of an attribute variable</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>GLint <function>glGetAttribLocation</function></funcdef>
<paramdef>GLuint <parameter>program</parameter></paramdef>
<paramdef>const GLchar *<parameter>name</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>program</parameter></term>
<listitem>
<para>Specifies the program object to be
queried.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>name</parameter></term>
<listitem>
<para>Points to a null terminated string containing
the name of the attribute variable whose location is
to be queried.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para><function>glGetAttribLocation</function> queries the
previously linked program object specified by
<parameter>program</parameter> for the attribute variable
specified by <parameter>name</parameter> and returns the index
of the generic vertex attribute that is bound to that attribute
variable. If <parameter>name</parameter> is a matrix attribute
variable, the index of the first column of the matrix is
returned. If the named attribute variable is not an active
attribute in the specified program object or if
<parameter>name</parameter> starts with the reserved prefix
&quot;gl_&quot;, a value of -1 is returned.</para>
<para>The association between an attribute variable name and a
generic attribute index can be specified at any time by calling
<citerefentry><refentrytitle>glBindAttribLocation</refentrytitle></citerefentry>.
Attribute bindings do not go into effect until
<citerefentry><refentrytitle>glLinkProgram</refentrytitle></citerefentry>
is called. After a program object has been linked successfully,
the index values for attribute variables remain fixed until the
next link command occurs. The attribute values can only be
queried after a link if the link was successful.
<function>glGetAttribLocation</function> returns the binding
that actually went into effect the last time
<citerefentry><refentrytitle>glLinkProgram</refentrytitle></citerefentry>
was called for the specified program object. Attribute bindings
that have been specified since the last link operation are not
returned by <function>glGetAttribLocation</function>.</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
<parameter>program</parameter> is not a value generated by
OpenGL.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
<parameter>program</parameter> is not a program object.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
<parameter>program</parameter> has not been successfully
linked.</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para><citerefentry><refentrytitle>glGetActiveAttrib</refentrytitle></citerefentry>
with argument <parameter>program</parameter> and the index of an
active attribute</para>
<para><citerefentry><refentrytitle>glIsProgram</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para><citerefentry><refentrytitle>glBindAttribLocation</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glLinkProgram</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glVertexAttrib</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glVertexAttribPointer</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2003-2005 3Dlabs Inc. Ltd.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,118 @@
<?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="glGetBufferParameteriv">
<refmeta>
<refmetainfo>
<copyright>
<year>2005</year>
<holder>Sams Publishing</holder>
</copyright>
</refmetainfo>
<refentrytitle>glGetBufferParameteriv</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glGetBufferParameteriv</refname>
<refpurpose>return parameters of a buffer object</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glGetBufferParameteriv</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>GLenum <parameter>value</parameter></paramdef>
<paramdef>GLint * <parameter>data</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>target</parameter></term>
<listitem>
<para>
Specifies the target buffer object.
The symbolic constant must be <constant>GL_ARRAY_BUFFER</constant> or
<constant>GL_ELEMENT_ARRAY_BUFFER</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>value</parameter></term>
<listitem>
<para>
Specifies the symbolic name of a buffer object parameter.
Accepted values are <constant>GL_BUFFER_SIZE</constant> or <constant>GL_BUFFER_USAGE</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>data</parameter></term>
<listitem>
<para>
Returns the requested parameter.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glGetBufferParameteriv</function> returns in <parameter>data</parameter> a selected parameter of the buffer object
specified by <parameter>target</parameter>.
</para>
<para>
<parameter>value</parameter> names a specific buffer object parameter, as follows:
</para>
<variablelist>
<varlistentry>
<term><constant>GL_BUFFER_SIZE</constant></term>
<listitem>
<para>
<parameter>params</parameter> returns the size of the buffer object, measured in bytes.
The initial value is 0.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_BUFFER_USAGE</constant></term>
<listitem>
<para>
<parameter>params</parameter> returns the buffer object's usage pattern. The initial value is
<constant>GL_STATIC_DRAW</constant>.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>
If an error is generated,
no change is made to the contents of <parameter>data</parameter>.
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>target</parameter> or <parameter>value</parameter> is not an
accepted value.
</para>
<para>
<constant>GL_INVALID_OPERATION</constant> is generated if the reserved buffer object name 0 is bound to <parameter>target</parameter>.
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glBindBuffer</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glBufferData</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2005 Addison-Wesley.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,148 @@
<?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="glGetError">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glGetError</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glGetError</refname>
<refpurpose>return error information</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>GLenum <function>glGetError</function></funcdef>
<paramdef> <parameter>void</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="description"><title>Description</title>
<para>
<function>glGetError</function> returns the value of the error flag.
Each detectable error is assigned a numeric code and symbolic name.
When an error occurs,
the error flag is set to the appropriate error code value.
No other errors are recorded until <function>glGetError</function> is called,
the error code is returned,
and the flag is reset to <constant>GL_NO_ERROR</constant>.
If a call to <function>glGetError</function> returns <constant>GL_NO_ERROR</constant>,
there has been no detectable error since the last call to <function>glGetError</function>,
or since the GL was initialized.
</para>
<para>
To allow for distributed implementations,
there may be several error flags.
If any single error flag has recorded an error,
the value of that flag is returned
and that flag is reset to <constant>GL_NO_ERROR</constant>
when <function>glGetError</function> is called.
If more than one flag has recorded an error,
<function>glGetError</function> returns and clears an arbitrary error flag value.
Thus, <function>glGetError</function> should always be called in a loop,
until it returns <constant>GL_NO_ERROR</constant>,
if all error flags are to be reset.
</para>
<para>
Initially, all error flags are set to <constant>GL_NO_ERROR</constant>.
</para>
<para>
The following errors are currently defined:
</para>
<variablelist>
<varlistentry>
<term><constant>GL_NO_ERROR</constant></term>
<listitem>
<para>
No error has been recorded.
The value of this symbolic constant is guaranteed to be 0.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_INVALID_ENUM</constant></term>
<listitem>
<para>
An unacceptable value is specified for an enumerated argument.
The offending command is ignored
and has no other side effect than to set the error flag.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_INVALID_VALUE</constant></term>
<listitem>
<para>
A numeric argument is out of range.
The offending command is ignored
and has no other side effect than to set the error flag.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_INVALID_OPERATION</constant></term>
<listitem>
<para>
The specified operation is not allowed in the current state.
The offending command is ignored
and has no other side effect than to set the error flag.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_INVALID_FRAMEBUFFER_OPERATION</constant></term>
<listitem>
<para>
The command is trying to render to or read from the framebuffer
while the currently bound framebuffer is not framebuffer
complete (i.e. the return value from
<citerefentry><refentrytitle>glCheckFramebufferStatus</refentrytitle></citerefentry>
is not <constant>GL_FRAMEBUFFER_COMPLETE</constant>).
The offending command is ignored
and has no other side effect than to set the error flag.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_OUT_OF_MEMORY</constant></term>
<listitem>
<para>
There is not enough memory left to execute the command.
The state of the GL is undefined,
except for the state of the error flags,
after this error is recorded.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
When an error flag is set,
results of a GL operation are undefined only if <constant>GL_OUT_OF_MEMORY</constant>
has occurred.
In all other cases,
the command generating the error is ignored and has no effect on the GL state
or frame buffer contents.
If the generating command returns a value, it returns 0.
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glCheckFramebufferStatus</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>

View file

@ -0,0 +1,190 @@
<?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="glGetFramebufferAttachmentParameteriv">
<refmeta>
<refmetainfo>
<copyright>
<year>2005</year>
<holder>Sams Publishing</holder>
</copyright>
</refmetainfo>
<refentrytitle>glGetFramebufferAttachmentParameteriv</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glGetFramebufferAttachmentParameteriv</refname>
<refpurpose>return attachment parameters of a framebuffer object</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glGetFramebufferAttachmentParameteriv</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>GLenum <parameter>attachment</parameter></paramdef>
<paramdef>GLenum <parameter>pname</parameter></paramdef>
<paramdef>GLint * <parameter>params</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>target</parameter></term>
<listitem>
<para>
Specifies the target framebuffer object.
The symbolic constant must be <constant>GL_FRAMEBUFFER</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>attachment</parameter></term>
<listitem>
<para>
Specifies the symbolic name of a framebuffer object attachment point.
Accepted values are <constant>GL_COLOR_ATTACHMENT0</constant>,
<constant>GL_DEPTH_ATTACHMENT</constant>, and
<constant>GL_STENCIL_ATTACHMENT</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>pname</parameter></term>
<listitem>
<para>
Specifies the symbolic name of a framebuffer object attachment parameter.
Accepted values are <constant>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE</constant>,
<constant>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME</constant>,
<constant>GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL</constant>,
and <constant>GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>params</parameter></term>
<listitem>
<para>
Returns the requested parameter.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glGetFramebufferAttachmentParameteriv</function>
returns in <parameter>params</parameter> a selected attachment
parameter of the attachpoint point <parameter>attachment</parameter>
of the currently bound framebuffer object.
</para>
<para>
<parameter>pname</parameter> names a specific framebuffer object attachment parameter, as follows:
</para>
<variablelist>
<varlistentry>
<term><constant>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE</constant></term>
<listitem>
<para>
<parameter>params</parameter> returns the type of
object which contains the attached image, either
<constant>GL_RENDERBUFFER</constant>,
<constant>GL_TEXTURE</constant>, or if no image is
attached, <constant>GL_NONE</constant>.
The initial value is <constant>GL_NONE</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME</constant></term>
<listitem>
<para>
If the value of <constant>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE</constant>
is <constant>GL_RENDERBUFFER</constant>,
<parameter>params</parameter> returns the name of
the renderbuffer object which contains the attached image.
If the value of <constant>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE</constant>
is <constant>GL_TEXTURE</constant>,
<parameter>params</parameter> returns the name of
the texture object which contains the attached image.
The initial value is zero.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL</constant></term>
<listitem>
<para>
If the value of <constant>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE</constant>
is <constant>GL_TEXTURE</constant>,
<parameter>params</parameter> returns the mipmap level of
the texture object which contains the attached image.
The initial value is zero.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE</constant></term>
<listitem>
<para>
If the value of <constant>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE</constant>
is <constant>GL_TEXTURE</constant> and
<constant>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME</constant>
is the name of a cube-map texture,
<parameter>params</parameter> returns the cube map
face of the cube-map texture object which contains
the attached image. If the attached image is from a
texture object but not a cube-map, <parameter>params</parameter>
returns 0.
The initial value is <constant>GL_TEXTURE_CUBE_MAP_POSITIVE_X</constant>.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>
If an error is generated,
no change is made to the contents of <parameter>params</parameter>.
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>target</parameter> is not <constant>GL_FRAMEBUFFER</constant>.
</para>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>attachment</parameter> is not <constant>GL_COLOR_ATTACHMENT0</constant>, <constant>GL_DEPTH_ATTACHMENT</constant>, or <constant>GL_STENCIL_ATTACHMENT</constant>.
</para>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if the attached object at the named attachment point is <constant>GL_RENDERBUFFER</constant> and <parameter>pname</parameter> is not
<constant>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE</constant> or <constant>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME</constant>.
</para>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if the attached object at the named attachment point is <constant>GL_TEXTURE</constant> and <parameter>pname</parameter> is not
<constant>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE</constant>, <constant>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME</constant>,
<constant>GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL</constant>, or <constant>GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE</constant>.
</para>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if there is no attached object at the named attachment point and <parameter>pname</parameter> is not
<constant>GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE</constant>.
</para>
<para>
<constant>GL_INVALID_OPERATION</constant> is generated if the default framebuffer object name 0 is bound.
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glBindFramebuffer</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glFramebufferRenderbuffer</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glFramebufferTexture2D</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2008 Khronos Group.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,125 @@
<?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="glGetProgramInfoLog">
<refmeta>
<refentrytitle>glGetProgramInfoLog</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glGetProgramInfoLog</refname>
<refpurpose>return the information log for a program object</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glGetProgramInfoLog</function></funcdef>
<paramdef>GLuint <parameter>program</parameter></paramdef>
<paramdef>GLsizei <parameter>maxLength</parameter></paramdef>
<paramdef>GLsizei *<parameter>length</parameter></paramdef>
<paramdef>GLchar *<parameter>infoLog</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>program</parameter></term>
<listitem>
<para>Specifies the program object whose information
log is to be queried.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>maxLength</parameter></term>
<listitem>
<para>Specifies the size of the character buffer for
storing the returned information log.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>length</parameter></term>
<listitem>
<para>Returns the length of the string returned in
<parameter>infoLog</parameter> (excluding the null
terminator).</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>infoLog</parameter></term>
<listitem>
<para>Specifies an array of characters that is used
to return the information log.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para><function>glGetProgramInfoLog</function> returns the
information log for the specified program object. The
information log for a program object is modified when the
program object is linked or validated. The string that is
returned will be null terminated.</para>
<para><function>glGetProgramInfoLog</function> returns in
<parameter>infoLog</parameter> as much of the information log as
it can, up to a maximum of <parameter>maxLength</parameter>
characters. The number of characters actually returned,
excluding the null termination character, is specified by
<parameter>length</parameter>. If the length of the returned
string is not required, a value of <constant>NULL</constant> can
be passed in the <parameter>length</parameter> argument. The
size of the buffer required to store the returned information
log can be obtained by calling
<citerefentry><refentrytitle>glGetProgramiv</refentrytitle></citerefentry>
with the value <constant>GL_INFO_LOG_LENGTH</constant>. </para>
<para>The information log for a program object is either an
empty string, or a string containing information about the last
link operation, or a string containing information about the
last validation operation. It may contain diagnostic messages,
warning messages, and other information. When a program object
is created, its information log will be a string of length
0.</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>The information log for a program object is the OpenGL
implementer's primary mechanism for conveying information about
linking and validating. Therefore, the information log can be
helpful to application developers during the development
process, even when these operations are successful. Application
developers should not expect different OpenGL implementations to
produce identical information logs.</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para><constant>GL_INVALID_VALUE</constant> is generated if
<parameter>program</parameter> is not a value generated by
OpenGL.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
<parameter>program</parameter> is not a program object.</para>
<para><constant>GL_INVALID_VALUE</constant> is generated if
<parameter>maxLength</parameter> is less than 0.</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para><citerefentry><refentrytitle>glGetProgramiv</refentrytitle></citerefentry>
with argument <constant>GL_INFO_LOG_LENGTH</constant></para>
<para><citerefentry><refentrytitle>glIsProgram</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para><citerefentry><refentrytitle>glCompileShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetShaderInfoLog</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glLinkProgram</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glValidateProgram</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2003-2005 3Dlabs Inc. Ltd.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,213 @@
<?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="glGetProgramiv">
<refmeta>
<refentrytitle>glGetProgramiv</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glGetProgramiv</refname>
<refpurpose>return a parameter from a program object</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glGetProgramiv</function></funcdef>
<paramdef>GLuint <parameter>program</parameter></paramdef>
<paramdef>GLenum <parameter>pname</parameter></paramdef>
<paramdef>GLint *<parameter>params</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>program</parameter></term>
<listitem>
<para>Specifies the program object to be
queried.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>pname</parameter></term>
<listitem>
<para>Specifies the object parameter. Accepted
symbolic names are
<constant>GL_DELETE_STATUS</constant>,
<constant>GL_LINK_STATUS</constant>,
<constant>GL_VALIDATE_STATUS</constant>,
<constant>GL_INFO_LOG_LENGTH</constant>,
<constant>GL_ATTACHED_SHADERS</constant>,
<constant>GL_ACTIVE_ATTRIBUTES</constant>,
<constant>GL_ACTIVE_ATTRIBUTE_MAX_LENGTH</constant>,
<constant>GL_ACTIVE_UNIFORMS</constant>,
<constant>GL_ACTIVE_UNIFORM_MAX_LENGTH</constant>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>params</parameter></term>
<listitem>
<para>Returns the requested object parameter.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para><function>glGetProgramiv</function>
returns in <parameter>params</parameter>
the value of a parameter for a specific program object. The following parameters are defined:</para>
<variablelist>
<varlistentry>
<term><constant>GL_DELETE_STATUS</constant></term>
<listitem>
<para> <parameter>params</parameter> returns
<constant>GL_TRUE</constant> if
<parameter>program</parameter> is currently flagged
for deletion, and <constant>GL_FALSE</constant>
otherwise.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_LINK_STATUS</constant></term>
<listitem>
<para> <parameter>params</parameter> returns
<constant>GL_TRUE</constant> if the last link
operation on <parameter>program</parameter> was
successful, and <constant>GL_FALSE</constant>
otherwise.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_VALIDATE_STATUS</constant></term>
<listitem>
<para> <parameter>params</parameter> returns
<constant>GL_TRUE</constant> or if the last
validation operation on
<parameter>program</parameter> was successful, and
<constant>GL_FALSE</constant>
otherwise.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_INFO_LOG_LENGTH</constant></term>
<listitem>
<para> <parameter>params</parameter> returns the
number of characters in the information log for
<parameter>program</parameter> including the null
termination character (i.e., the size of the
character buffer required to store the information
log). If <parameter>program</parameter> has no
information log, a value of 0 is
returned.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_ATTACHED_SHADERS</constant></term>
<listitem>
<para> <parameter>params</parameter> returns the
number of shader objects attached to
<parameter>program</parameter>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_ACTIVE_ATTRIBUTES</constant></term>
<listitem>
<para> <parameter>params</parameter> returns the
number of active attribute variables for
<parameter>program</parameter>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_ACTIVE_ATTRIBUTE_MAX_LENGTH</constant></term>
<listitem>
<para> <parameter>params</parameter> returns the
length of the longest active attribute name for
<parameter>program</parameter>, including the null
termination character (i.e., the size of the
character buffer required to store the longest
attribute name). If no active attributes exist, 0 is
returned.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_ACTIVE_UNIFORMS</constant></term>
<listitem>
<para> <parameter>params</parameter> returns the
number of active uniform variables for
<parameter>program</parameter>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_ACTIVE_UNIFORM_MAX_LENGTH</constant></term>
<listitem>
<para> <parameter>params</parameter> returns the
length of the longest active uniform variable name
for <parameter>program</parameter>, including the
null termination character (i.e., the size of the
character buffer required to store the longest
uniform variable name). If no active uniform
variables exist, 0 is returned.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>If an error is generated, no change is made to the
contents of <parameter>params</parameter>.</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para><constant>GL_INVALID_ENUM</constant>
is generated if <parameter>pname</parameter>
is not an accepted value.</para>
<para><constant>GL_INVALID_VALUE</constant>
is generated if <parameter>program</parameter>
is not a value generated by OpenGL.</para>
<para><constant>GL_INVALID_OPERATION</constant>
is generated if <parameter>program</parameter>
does not refer to a program object.</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para><citerefentry><refentrytitle>glGetActiveAttrib</refentrytitle></citerefentry>
with argument <parameter>program</parameter></para>
<para><citerefentry><refentrytitle>glGetActiveUniform</refentrytitle></citerefentry>
with argument <parameter>program</parameter></para>
<para><citerefentry><refentrytitle>glGetAttachedShaders</refentrytitle></citerefentry>
with argument <parameter>program</parameter></para>
<para><citerefentry><refentrytitle>glGetProgramInfoLog</refentrytitle></citerefentry>
with argument <parameter>program</parameter></para>
<para><citerefentry><refentrytitle>glIsProgram</refentrytitle></citerefentry>
<parameter></parameter></para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para><citerefentry><refentrytitle>glAttachShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCreateProgram</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDeleteProgram</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetShaderiv</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glLinkProgram</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glValidateProgram</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2003-2005 3Dlabs Inc. Ltd.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,222 @@
<?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="glGetRenderbufferParameteriv">
<refmeta>
<refmetainfo>
<copyright>
<year>2005</year>
<holder>Sams Publishing</holder>
</copyright>
</refmetainfo>
<refentrytitle>glGetRenderbufferParameteriv</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glGetRenderbufferParameteriv</refname>
<refpurpose>return parameters of a renderbuffer object</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glGetRenderbufferParameteriv</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>GLenum <parameter>pname</parameter></paramdef>
<paramdef>GLint * <parameter>params</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>target</parameter></term>
<listitem>
<para>
Specifies the target renderbuffer object.
The symbolic constant must be <constant>GL_RENDERBUFFER</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>pname</parameter></term>
<listitem>
<para>
Specifies the symbolic name of a renderbuffer object parameter.
Accepted values are <constant>GL_RENDERBUFFER_WIDTH</constant>,
<constant>GL_RENDERBUFFER_HEIGHT</constant>,
<constant>GL_RENDERBUFFER_INTERNAL_FORMAT</constant>,
<constant>GL_RENDERBUFFER_RED_SIZE</constant>,
<constant>GL_RENDERBUFFER_GREEN_SIZE</constant>,
<constant>GL_RENDERBUFFER_BLUE_SIZE</constant>,
<constant>GL_RENDERBUFFER_ALPHA_SIZE</constant>,
<constant>GL_RENDERBUFFER_DEPTH_SIZE</constant>, or
<constant>GL_RENDERBUFFER_STENCIL_SIZE</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>params</parameter></term>
<listitem>
<para>
Returns the requested parameter.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glGetRenderbufferParameteriv</function> returns in
<parameter>params</parameter> a selected parameter of the
currently bound renderbuffer object.
</para>
<para>
<parameter>pname</parameter> names a specific renderbuffer object parameter, as follows:
</para>
<variablelist>
<varlistentry>
<term><constant>GL_RENDERBUFFER_WIDTH</constant></term>
<listitem>
<para>
<parameter>params</parameter> returns the width in pixels
of the image of the currently bound renderbuffer.
The initial value is 0.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_RENDERBUFFER_HEIGHT</constant></term>
<listitem>
<para>
<parameter>params</parameter> returns the height in pixels
of the image of the currently bound renderbuffer.
The initial value is 0.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_RENDERBUFFER_INTERNAL_FORMAT</constant></term>
<listitem>
<para>
<parameter>params</parameter> returns the internal format
of the image of the currently bound renderbuffer.
The initial value is <constant>GL_RGBA4</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_RENDERBUFFER_RED_SIZE</constant></term>
<listitem>
<para>
<parameter>params</parameter> returns the resolution in bits
for the red component of the image of the currently
bound renderbuffer.
The initial value is 0.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_RENDERBUFFER_GREEN_SIZE</constant></term>
<listitem>
<para>
<parameter>params</parameter> returns the resolution in bits
for the green component of the image of the currently
bound renderbuffer.
The initial value is 0.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_RENDERBUFFER_BLUE_SIZE</constant></term>
<listitem>
<para>
<parameter>params</parameter> returns the resolution in bits
for the blue component of the image of the currently
bound renderbuffer.
The initial value is 0.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_RENDERBUFFER_ALPHA_SIZE</constant></term>
<listitem>
<para>
<parameter>params</parameter> returns the resolution in bits
for the alpha component of the image of the currently
bound renderbuffer.
The initial value is 0.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_RENDERBUFFER_DEPTH_SIZE</constant></term>
<listitem>
<para>
<parameter>params</parameter> returns the resolution in bits
for the depth component of the image of the currently
bound renderbuffer.
The initial value is 0.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_RENDERBUFFER_STENCIL_SIZE</constant></term>
<listitem>
<para>
<parameter>params</parameter> returns the resolution in bits
for the stencil component of the image of the currently
bound renderbuffer.
The initial value is 0.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>
The resolution of components reported by
<function>glGetRenderbufferParameteriv</function> are the actual
resolutions at which the components are stored, which may be
different than those requested by the <parameter>internalformat</parameter>
parameter of <citerefentry><refentrytitle>glRenderbufferStorage</refentrytitle></citerefentry>.
</para>
<para>
If an error is generated,
no change is made to the contents of <parameter>params</parameter>.
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>target</parameter> is not <constant>GL_RENDERBUFFER</constant>.
</para>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>pname</parameter> is not
<constant>GL_RENDERBUFFER_WIDTH</constant>,
<constant>GL_RENDERBUFFER_HEIGHT</constant>,
<constant>GL_RENDERBUFFER_INTERNAL_FORMAT</constant>,
<constant>GL_RENDERBUFFER_RED_SIZE</constant>,
<constant>GL_RENDERBUFFER_GREEN_SIZE</constant>,
<constant>GL_RENDERBUFFER_BLUE_SIZE</constant>,
<constant>GL_RENDERBUFFER_ALPHA_SIZE</constant>,
<constant>GL_RENDERBUFFER_DEPTH_SIZE</constant>, or
<constant>GL_RENDERBUFFER_STENCIL_SIZE</constant>.
</para>
<para>
<constant>GL_INVALID_OPERATION</constant> is generated if the reserved renderbuffer object name 0 is bound.
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glBindRenderBuffer</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glRenderbufferStorage</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2008 Khronos Group.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,122 @@
<?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="glGetShaderInfoLog">
<refmeta>
<refentrytitle>glGetShaderInfoLog</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glGetShaderInfoLog</refname>
<refpurpose>return the information log for a shader object</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glGetShaderInfoLog</function></funcdef>
<paramdef>GLuint <parameter>shader</parameter></paramdef>
<paramdef>GLsizei <parameter>maxLength</parameter></paramdef>
<paramdef>GLsizei *<parameter>length</parameter></paramdef>
<paramdef>GLchar *<parameter>infoLog</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>shader</parameter></term>
<listitem>
<para>Specifies the shader object whose information
log is to be queried.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>maxLength</parameter></term>
<listitem>
<para>Specifies the size of the character buffer for
storing the returned information log.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>length</parameter></term>
<listitem>
<para>Returns the length of the string returned in
<parameter>infoLog</parameter> (excluding the null
terminator).</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>infoLog</parameter></term>
<listitem>
<para>Specifies an array of characters that is used
to return the information log.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para><function>glGetShaderInfoLog</function> returns the
information log for the specified shader object. The information
log for a shader object is modified when the shader is compiled.
The string that is returned will be null terminated.</para>
<para><function>glGetShaderInfoLog</function> returns in
<parameter>infoLog</parameter> as much of the information log as
it can, up to a maximum of <parameter>maxLength</parameter>
characters. The number of characters actually returned,
excluding the null termination character, is specified by
<parameter>length</parameter>. If the length of the returned
string is not required, a value of <constant>NULL</constant> can
be passed in the <parameter>length</parameter> argument. The
size of the buffer required to store the returned information
log can be obtained by calling
<citerefentry><refentrytitle>glGetShaderiv</refentrytitle></citerefentry>
with the value <constant>GL_INFO_LOG_LENGTH</constant>.</para>
<para>The information log for a shader object is a string that
may contain diagnostic messages, warning messages, and other
information about the last compile operation. When a shader
object is created, its information log will be a string of
length 0.</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>The information log for a shader object is the OpenGL
implementer's primary mechanism for conveying information about
the compilation process. Therefore, the information log can be
helpful to application developers during the development
process, even when compilation is successful. Application
developers should not expect different OpenGL implementations to
produce identical information logs.</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para><constant>GL_INVALID_VALUE</constant> is generated if
<parameter>shader</parameter> is not a value generated by
OpenGL.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
<parameter>shader</parameter> is not a shader object.</para>
<para><constant>GL_INVALID_VALUE</constant> is generated if
<parameter>maxLength</parameter> is less than 0.</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para><citerefentry><refentrytitle>glGetShaderiv</refentrytitle></citerefentry>
with argument <constant>GL_INFO_LOG_LENGTH</constant></para>
<para><citerefentry><refentrytitle>glIsShader</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para><citerefentry><refentrytitle>glCompileShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetProgramInfoLog</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glLinkProgram</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glValidateProgram</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2003-2005 3Dlabs Inc. Ltd.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,220 @@
<?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="glGetShaderPrecisionFormat">
<refmeta>
<refentrytitle>glGetShaderPrecisionFormat</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glGetShaderPrecisionFormat</refname>
<refpurpose>return the range and precision for different shader numeric formats</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glGetShaderPrecisionFormat</function></funcdef>
<paramdef>GLenum <parameter>shaderType</parameter></paramdef>
<paramdef>GLenum <parameter>precisionType</parameter></paramdef>
<paramdef>GLint *<parameter>range</parameter></paramdef>
<paramdef>GLint *<parameter>precision</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>shaderType</parameter></term>
<listitem>
<para>Specifies the type of shader to query.
Must be either <constant>GL_VERTEX_SHADER</constant>
or <constant>GL_FRAGMENT_SHADER</constant>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>precisionType</parameter></term>
<listitem>
<para>Specifies the numeric format to query, corresponding to a shader precision qualifier and variable type.
Must be one of <constant>GL_LOW_FLOAT</constant>, <constant>GL_MEDIUM_FLOAT</constant>,
<constant>GL_HIGH_FLOAT</constant>, <constant>GL_LOW_INT</constant>,
<constant>GL_MEDIUM_INT</constant>, or <constant>GL_HIGH_INT</constant>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>range</parameter></term>
<listitem>
<para>Specifies a pointer to the two-element array in which the
<inlineequation><mml:math>
<!-- eqn: log sub 2:-->
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">log</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math></inlineequation>
of the minimum and maximum representable magnitudes of the format
are returned.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>precision</parameter></term>
<listitem>
<para>Specifies a pointer to the location in which the
<inlineequation><mml:math>
<!-- eqn: log sub 2:-->
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">log</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math></inlineequation>
of the precision of the format is returned.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para><function>glGetShaderPrecisionFormat</function>
returns range and precision limits for floating-point and integer shader variable formats with low,
medium, and high precision qualifiers.
When <inlineequation><mml:math><mml:mi mathvariant="italic">minRep</mml:mi></mml:math></inlineequation>
and <inlineequation><mml:math><mml:mi mathvariant="italic">maxRep</mml:mi></mml:math></inlineequation>
are the minimum and maximum representable values of the format,
<inlineequation><mml:math>
<!-- eqn: floor ( log sub 2 ( abs ( minRep ) ) ):-->
<mml:mrow>
<mml:mi mathvariant="italic">floor</mml:mi>
<mml:mo>&af;</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">log</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&af;</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mfenced open="|" close="|">
<mml:mrow>
<mml:mi mathvariant="italic">minRep</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math></inlineequation>
and
<inlineequation><mml:math>
<!-- eqn: floor ( log sub 2 ( abs ( maxRep ) ) ):-->
<mml:mrow>
<mml:mi mathvariant="italic">floor</mml:mi>
<mml:mo>&af;</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">log</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&af;</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mfenced open="|" close="|">
<mml:mrow>
<mml:mi mathvariant="italic">maxRep</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math></inlineequation>
are returned in
<parameter>range</parameter> as the first and second elements, respectively.</para>
<para>If the smallest representable value greater than 1 is
<inlineequation><mml:math>
<!-- eqn: ( 1 + eps ):-->
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>&epsi;</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:math></inlineequation>
then
<inlineequation><mml:math>
<!-- eqn: floor ( -log sub 2 ( eps ) ):-->
<mml:mrow>
<mml:mi mathvariant="italic">floor</mml:mi>
<mml:mo>&af;</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mo>-</mml:mo>
<mml:msub><mml:mi mathvariant="italic">log</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&af;</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>&epsi;</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math></inlineequation>
is returned in <parameter>precision</parameter>.
An integer format will have an &epsi; of 1, and thus will return 0.
Floating-point formats will return values greater than 0.</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>The minimum range and precision required for different formats is
described in the <emphasis>OpenGL ES Shading Language Specification.</emphasis></para>
<para>If a high precision floating-point format is not supported for fragment shaders,
calling <function>glGetShaderPrecisionFormat</function> with arguments <constant>GL_FRAGMENT_SHADER</constant>
and <constant>GL_HIGH_FLOAT</constant> will return 0 for both <parameter>range</parameter> and
<parameter>precision</parameter>. Support for a high precision floating-point format is mandatory for
vertex shaders.</para>
<para>Shader compiler support is optional, and thus must be queried
before use by calling <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>
with argument <constant>GL_SHADER_COMPILER</constant>. <citerefentry><refentrytitle>glShaderSource</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCompileShader</refentrytitle></citerefentry>, <function>glGetShaderPrecisionFormat</function>, and
<citerefentry><refentrytitle>glReleaseShaderCompiler</refentrytitle></citerefentry> will
each generate <constant>GL_INVALID_OPERATION</constant> on implementations
that do not support a shader compiler. Such implementations instead offer the
<citerefentry><refentrytitle>glShaderBinary</refentrytitle></citerefentry>
alternative for supplying a pre-compiled shader binary.</para>
<para>If an error is generated, no change is made to the
contents of <parameter>range</parameter> or <parameter>precision</parameter>.</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
a shader compiler is not supported.</para>
<para><constant>GL_INVALID_ENUM</constant> is generated if
<parameter>shaderType</parameter> or <parameter>precisionType</parameter> is not
an accepted value.</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para><citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>
with argument <constant>GL_SHADER_COMPILER</constant></para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para><citerefentry><refentrytitle>glCompileShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glShaderSource</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2008 Khronos Group.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,110 @@
<?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="glGetShaderSource">
<refmeta>
<refentrytitle>glGetShaderSource</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glGetShaderSource</refname>
<refpurpose>return the source code string from a shader object</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glGetShaderSource</function></funcdef>
<paramdef>GLuint <parameter>shader</parameter></paramdef>
<paramdef>GLsizei <parameter>bufSize</parameter></paramdef>
<paramdef>GLsizei *<parameter>length</parameter></paramdef>
<paramdef>GLchar *<parameter>source</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>shader</parameter></term>
<listitem>
<para>Specifies the shader object to be
queried.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>bufSize</parameter></term>
<listitem>
<para>Specifies the size of the character buffer for
storing the returned source code string.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>length</parameter></term>
<listitem>
<para>Returns the length of the string returned in
<parameter>source</parameter> (excluding the null
terminator).</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>source</parameter></term>
<listitem>
<para>Specifies an array of characters that is used
to return the source code string.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para><function>glGetShaderSource</function> returns the
concatenation of the source code strings from the shader object
specified by <parameter>shader</parameter>. The source code
strings for a shader object are the result of a previous call to
<citerefentry><refentrytitle>glShaderSource</refentrytitle></citerefentry>.
The string returned by the function will be null
terminated.</para>
<para><function>glGetShaderSource</function> returns in
<parameter>source</parameter> as much of the source code string
as it can, up to a maximum of <parameter>bufSize</parameter>
characters. The number of characters actually returned,
excluding the null termination character, is specified by
<parameter>length</parameter>. If the length of the returned
string is not required, a value of <constant>NULL</constant> can
be passed in the <parameter>length</parameter> argument. The
size of the buffer required to store the returned source code
string can be obtained by calling
<citerefentry><refentrytitle>glGetShaderiv</refentrytitle></citerefentry>
with the value
<constant>GL_SHADER_SOURCE_LENGTH</constant>.</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para><constant>GL_INVALID_VALUE</constant> is generated if
<parameter>shader</parameter> is not a value generated by
OpenGL.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
<parameter>shader</parameter> is not a shader object.</para>
<para><constant>GL_INVALID_VALUE</constant> is generated if
<parameter>bufSize</parameter> is less than 0.</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para><citerefentry><refentrytitle>glGetShaderiv</refentrytitle></citerefentry>
with argument
<constant>GL_SHADER_SOURCE_LENGTH</constant></para>
<para><citerefentry><refentrytitle>glIsShader</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para><citerefentry><refentrytitle>glCreateShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glShaderSource</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2003-2005 3Dlabs Inc. Ltd.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,187 @@
<?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="glGetShaderiv">
<refmeta>
<refentrytitle>glGetShaderiv</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glGetShaderiv</refname>
<refpurpose>return a parameter from a shader object</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glGetShaderiv</function></funcdef>
<paramdef>GLuint <parameter>shader</parameter></paramdef>
<paramdef>GLenum <parameter>pname</parameter></paramdef>
<paramdef>GLint *<parameter>params</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>shader</parameter></term>
<listitem>
<para>Specifies the shader object to be
queried.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>pname</parameter></term>
<listitem>
<para>Specifies the object parameter. Accepted
symbolic names are
<constant>GL_SHADER_TYPE</constant>,
<constant>GL_DELETE_STATUS</constant>,
<constant>GL_COMPILE_STATUS</constant>,
<constant>GL_INFO_LOG_LENGTH</constant>,
<constant>GL_SHADER_SOURCE_LENGTH</constant>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>params</parameter></term>
<listitem>
<para>Returns the requested object parameter.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para><function>glGetShaderiv</function>
returns in <parameter>params</parameter>
the value of a parameter for a specific shader object. The
following parameters are defined:</para>
<variablelist>
<varlistentry>
<term><constant>GL_SHADER_TYPE</constant></term>
<listitem>
<para> <parameter>params</parameter> returns
<constant>GL_VERTEX_SHADER</constant> if
<parameter>shader</parameter> is a vertex shader
object, and <constant>GL_FRAGMENT_SHADER</constant>
if <parameter>shader</parameter> is a fragment
shader object.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_DELETE_STATUS</constant></term>
<listitem>
<para> <parameter>params</parameter> returns
<constant>GL_TRUE</constant> if
<parameter>shader</parameter> is currently flagged
for deletion, and <constant>GL_FALSE</constant>
otherwise.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_COMPILE_STATUS</constant></term>
<listitem>
<para>For implementations that support a shader compiler,
<parameter>params</parameter> returns
<constant>GL_TRUE</constant> if the last compile
operation on <parameter>shader</parameter> was
successful, and <constant>GL_FALSE</constant>
otherwise.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_INFO_LOG_LENGTH</constant></term>
<listitem>
<para>For implementations that support a shader compiler,
<parameter>params</parameter> returns the
number of characters in the information log for
<parameter>shader</parameter> including the null
termination character (i.e., the size of the
character buffer required to store the information
log). If <parameter>shader</parameter> has no
information log, a value of 0 is returned.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_SHADER_SOURCE_LENGTH</constant></term>
<listitem>
<para>For implementations that support a shader compiler,
<parameter>params</parameter> returns the
length of the concatenation of the source strings
that make up the shader source for the
<parameter>shader</parameter>, including the null
termination character. (i.e., the size of the
character buffer required to store the shader
source). If no source code exists, 0 is
returned.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>Shader compiler support is optional, and thus must be queried
before use by calling <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>
with argument <constant>GL_SHADER_COMPILER</constant>. <citerefentry><refentrytitle>glShaderSource</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCompileShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetShaderPrecisionFormat</refentrytitle></citerefentry>, and
<citerefentry><refentrytitle>glReleaseShaderCompiler</refentrytitle></citerefentry> will
each generate <constant>GL_INVALID_OPERATION</constant> on implementations
that do not support a shader compiler, as will <function>glGetShaderiv</function> queries of
<constant>GL_COMPILE_STATUS</constant>, <constant>GL_INFO_LOG_LENGTH</constant>, and
<constant>GL_SHADER_SOURCE_LENGTH</constant>. Such implementations instead offer the
<citerefentry><refentrytitle>glShaderBinary</refentrytitle></citerefentry>
alternative for supplying a pre-compiled shader binary.</para>
<para>If an error is generated, no change is made to the
contents of <parameter>params</parameter>.</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para><constant>GL_INVALID_ENUM</constant> is generated if
<parameter>pname</parameter> is not an accepted value.</para>
<para><constant>GL_INVALID_VALUE</constant> is generated if
<parameter>shader</parameter> is not a value generated by
OpenGL.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
<parameter>pname</parameter> is <constant>GL_COMPILE_STATUS</constant>,
<constant>GL_INFO_LOG_LENGTH</constant>, or <constant>GL_SHADER_SOURCE_LENGTH</constant>
but a shader compiler is not supported.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
<parameter>shader</parameter> does not refer to a shader
object.</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para><citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>
with argument <constant>GL_SHADER_COMPILER</constant></para>
<para><citerefentry><refentrytitle>glGetShaderInfoLog</refentrytitle></citerefentry>
with argument <parameter>shader</parameter></para>
<para><citerefentry><refentrytitle>glGetShaderSource</refentrytitle></citerefentry>
with argument <parameter>shader</parameter></para>
<para><citerefentry><refentrytitle>glIsShader</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para><citerefentry><refentrytitle>glCompileShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCreateShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDeleteShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetProgramiv</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glShaderSource</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glShaderBinary</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2003-2005 3Dlabs Inc. Ltd.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,138 @@
<?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="glGetString">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glGetString</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glGetString</refname>
<refpurpose>return a string describing the current GL connection</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>const GLubyte* <function>glGetString</function></funcdef>
<paramdef>GLenum <parameter>name</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>name</parameter></term>
<listitem>
<para>
Specifies a symbolic constant, one of
<constant>GL_VENDOR</constant>, <constant>GL_RENDERER</constant>, <constant>GL_VERSION</constant>, <constant>GL_SHADING_LANGUAGE_VERSION</constant>, or <constant>GL_EXTENSIONS</constant>.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glGetString</function> returns a pointer to a static string
describing some aspect of the current GL connection.
<parameter>name</parameter> can be one of the following:
</para>
<variablelist>
<varlistentry>
<term><constant>GL_VENDOR</constant></term>
<listitem>
<para>
Returns the company responsible for this GL implementation.
This name does not change from release to release.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_RENDERER</constant></term>
<listitem>
<para>
Returns the name of the renderer.
This name is typically specific to a particular configuration of a hardware
platform.
It does not change from release to release.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_VERSION</constant></term>
<listitem>
<para>
Returns a version or release number of the form
<constant>OpenGL&lt;space&gt;ES&lt;space&gt;&lt;version number&gt;&lt;space&gt;&lt;vendor-specific information&gt;</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_SHADING_LANGUAGE_VERSION</constant></term>
<listitem>
<para>
Returns a version or release number for the shading language of the form
<constant>OpenGL&lt;space&gt;ES&lt;space&gt;GLSL&lt;space&gt;ES&lt;space&gt;&lt;version number&gt;&lt;space&gt;&lt;vendor-specific information&gt;</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_EXTENSIONS</constant></term>
<listitem>
<para>
Returns a space-separated list of supported extensions to GL.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
Because the GL does not include queries for the performance
characteristics of an implementation, some applications are written to
recognize known platforms and modify their GL usage based on known
performance characteristics of these platforms.
Strings <constant>GL_VENDOR</constant> and <constant>GL_RENDERER</constant> together uniquely specify
a platform. They do not change from release to release and should be used
by platform-recognition algorithms.
</para>
<para>
Some applications want to make use of features that
are not part of the standard GL. These features
may be implemented as extensions to the standard GL.
The <constant>GL_EXTENSIONS</constant> string is a space-separated
list of supported GL extensions.
(Extension names never contain a space character.)
</para>
<para>
All strings are null-terminated.
</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>
If an error is generated, <function>glGetString</function> returns 0.
</para>
<para>
The client and server may support different versions or extensions.
<function>glGetString</function> always returns a compatible version number or list of extensions.
The release number always describes the server.
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>name</parameter> is not an accepted value.
</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>

View file

@ -0,0 +1,151 @@
<?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="glGetTexParameter">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glGetTexParameter</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glGetTexParameter</refname>
<refpurpose>return texture parameter values</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glGetTexParameterfv</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>GLenum <parameter>pname</parameter></paramdef>
<paramdef>GLfloat * <parameter>params</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glGetTexParameteriv</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>GLenum <parameter>pname</parameter></paramdef>
<paramdef>GLint * <parameter>params</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<!-- eqn: ignoring delim $$ -->
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>target</parameter></term>
<listitem>
<para>
Specifies the symbolic name of the target texture of the active texture unit.
<constant>GL_TEXTURE_2D</constant> and
<constant>GL_TEXTURE_CUBE_MAP</constant>
are accepted.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>pname</parameter></term>
<listitem>
<para>
Specifies the symbolic name of a texture parameter.
<constant>GL_TEXTURE_MAG_FILTER</constant>,
<constant>GL_TEXTURE_MIN_FILTER</constant>,
<constant>GL_TEXTURE_WRAP_S</constant>, and
<constant>GL_TEXTURE_WRAP_T</constant>
are accepted.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>params</parameter></term>
<listitem>
<para>
Returns the texture parameter.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glGetTexParameter</function> returns in <parameter>params</parameter> the
value of the texture parameter
specified as <parameter>pname</parameter>.
<parameter>target</parameter> defines the target texture of the active texture unit,
either <constant>GL_TEXTURE_2D</constant> or <constant>GL_TEXTURE_CUBE_MAP</constant>,
to specify two-dimensional or cube-mapped texturing.
<parameter>pname</parameter> accepts the same symbols as <citerefentry><refentrytitle>glTexParameter</refentrytitle></citerefentry>,
with the same interpretations:
</para>
<variablelist>
<varlistentry>
<term><constant>GL_TEXTURE_MAG_FILTER</constant></term>
<listitem>
<para>
Returns the single-valued texture magnification filter,
a symbolic constant. The initial value is <constant>GL_LINEAR</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_TEXTURE_MIN_FILTER</constant></term>
<listitem>
<para>
Returns the single-valued texture minification filter,
a symbolic constant. The initial value is <constant>GL_NEAREST_MIPMAP_LINEAR</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_TEXTURE_WRAP_S</constant></term>
<listitem>
<para>
Returns the single-valued wrapping function for texture coordinate
<inlineequation><mml:math><mml:mi mathvariant="italic">s</mml:mi></mml:math></inlineequation>,
a symbolic constant. The initial value is <constant>GL_REPEAT</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_TEXTURE_WRAP_T</constant></term>
<listitem>
<para>
Returns the single-valued wrapping function for texture coordinate
<inlineequation><mml:math><mml:mi mathvariant="italic">t</mml:mi></mml:math></inlineequation>,
a symbolic constant. The initial value is <constant>GL_REPEAT</constant>.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>
If an error is generated,
no change is made to the contents of <parameter>params</parameter>.
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>target</parameter> or <parameter>pname</parameter> is not an
accepted value.
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glTexParameter</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>

View file

@ -0,0 +1,135 @@
<?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="glGetUniform">
<refmeta>
<refentrytitle>glGetUniform</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refdescriptor>glGetUniform</refdescriptor>
<refname>glGetUniformfv</refname>
<refname>glGetUniformiv</refname>
<refpurpose>return the value of a uniform variable</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glGetUniformfv</function></funcdef>
<paramdef>GLuint <parameter>program</parameter></paramdef>
<paramdef>GLint <parameter>location</parameter></paramdef>
<paramdef>GLfloat *<parameter>params</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>void <function>glGetUniformiv</function></funcdef>
<paramdef>GLuint <parameter>program</parameter></paramdef>
<paramdef>GLint <parameter>location</parameter></paramdef>
<paramdef>GLint *<parameter>params</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>program</parameter></term>
<listitem>
<para>Specifies the program object to be
queried.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>location</parameter></term>
<listitem>
<para>Specifies the location of the uniform variable
to be queried.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>params</parameter></term>
<listitem>
<para>Returns the value of the specified uniform
variable.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para><function>glGetUniform</function> returns in
<parameter>params</parameter> the value(s) of the specified
uniform variable. The type of the uniform variable specified by
<parameter>location</parameter> determines the number of values
returned. If the uniform variable is defined in the shader as a
boolean, int, or float, a single value will be returned. If it
is defined as a vec2, ivec2, or bvec2, two values will be
returned. If it is defined as a vec3, ivec3, or bvec3, three
values will be returned, and so on. To query values stored in
uniform variables declared as arrays, call
<function>glGetUniform</function> for each element of the array.
To query values stored in uniform variables declared as
structures, call <function>glGetUniform</function> for each
field in the structure. The values for uniform variables
declared as a matrix will be returned in column major
order.</para>
<para>The locations assigned to uniform variables are not known
until the program object is linked. After linking has occurred,
the command
<citerefentry><refentrytitle>glGetUniformLocation</refentrytitle></citerefentry>
can be used to obtain the location of a uniform variable. This
location value can then be passed to
<function>glGetUniform</function> in order to query the current
value of the uniform variable. After a program object has been
linked successfully, the index values for uniform variables
remain fixed until the next link command occurs. The uniform
variable values can only be queried after a link if the link was
successful.</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>If an error is generated, no change is made to the
contents of <parameter>params</parameter>.</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para><constant>GL_INVALID_VALUE</constant> is generated if
<parameter>program</parameter> is not a value generated by
OpenGL.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
<parameter>program</parameter> is not a program object.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
<parameter>program</parameter> has not been successfully
linked.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
<parameter>location</parameter> does not correspond to a valid
uniform variable location for the specified program object.</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para><citerefentry><refentrytitle>glGetActiveUniform</refentrytitle></citerefentry>
with arguments <parameter>program</parameter> and the index of an active
uniform variable</para>
<para><citerefentry><refentrytitle>glGetProgramiv</refentrytitle></citerefentry>
with arguments <parameter>program</parameter> and
<constant>GL_ACTIVE_UNIFORMS</constant> or
<constant>GL_ACTIVE_UNIFORM_MAX_LENGTH</constant></para>
<para><citerefentry><refentrytitle>glGetUniformLocation</refentrytitle></citerefentry>
with arguments <parameter>program</parameter> and the name of a
uniform variable</para>
<para><citerefentry><refentrytitle>glIsProgram</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para><citerefentry><refentrytitle>glCreateProgram</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glLinkProgram</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glUniform</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2003-2005 3Dlabs Inc. Ltd.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,122 @@
<?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="glGetUniformLocation">
<refmeta>
<refentrytitle>glGetUniformLocation</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glGetUniformLocation</refname>
<refpurpose>return the location of a uniform variable</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>GLint <function>glGetUniformLocation</function></funcdef>
<paramdef>GLuint <parameter>program</parameter></paramdef>
<paramdef>const GLchar *<parameter>name</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>program</parameter></term>
<listitem>
<para>Specifies the program object to be
queried.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>name</parameter></term>
<listitem>
<para>Points to a null terminated string containing
the name of the uniform variable whose location is
to be queried.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para><function>glGetUniformLocation </function> returns an
integer that represents the location of a specific uniform
variable within a program object. <parameter>name</parameter>
must be a null terminated string that contains no white space.
<parameter>name</parameter> must be an active uniform variable
name in <parameter>program</parameter> that is not a structure,
an array of structures, or a subcomponent of a vector or a
matrix. This function returns -1 if <parameter>name</parameter>
does not correspond to an active uniform variable in
<parameter>program</parameter> or if <parameter>name</parameter>
starts with the reserved prefix &quot;gl_&quot;.</para>
<para>Uniform variables that are structures or arrays of
structures may be queried by calling
<function>glGetUniformLocation</function> for each field within
the structure. The array element operator &quot;[]&quot; and the
structure field operator &quot;.&quot; may be used in
<parameter>name</parameter> in order to select elements within
an array or fields within a structure. The result of using these
operators is not allowed to be another structure, an array of
structures, or a subcomponent of a vector or a matrix. Except if
the last part of <parameter>name</parameter> indicates a uniform
variable array, the location of the first element of an array
can be retrieved by using the name of the array, or by using the
name appended by &quot;[0]&quot;.</para>
<para>The actual locations assigned to uniform variables are not
known until the program object is linked successfully. After
linking has occurred, the command
<function>glGetUniformLocation</function> can be used to obtain
the location of a uniform variable. This location value can then
be passed to
<citerefentry><refentrytitle>glUniform</refentrytitle></citerefentry>
to set the value of the uniform variable or to
<citerefentry><refentrytitle>glGetUniform</refentrytitle></citerefentry>
in order to query the current value of the uniform variable.
After a program object has been linked successfully, the index
values for uniform variables remain fixed until the next link
command occurs. Uniform variable locations and values can only
be queried after a link if the link was successful.</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para><constant>GL_INVALID_VALUE</constant> is generated if
<parameter>program</parameter> is not a value generated by
OpenGL.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
<parameter>program</parameter> is not a program object.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
<parameter>program</parameter> has not been successfully
linked.</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para><citerefentry><refentrytitle>glGetActiveUniform</refentrytitle></citerefentry>
with arguments <parameter>program</parameter> and the index of
an active uniform variable</para>
<para><citerefentry><refentrytitle>glGetProgramiv</refentrytitle></citerefentry>
with arguments <parameter>program</parameter> and
<constant>GL_ACTIVE_UNIFORMS</constant> or
<constant>GL_ACTIVE_UNIFORM_MAX_LENGTH</constant></para>
<para><citerefentry><refentrytitle>glGetUniform</refentrytitle></citerefentry>
with arguments <parameter>program</parameter> and the name of a
uniform variable</para>
<para><citerefentry><refentrytitle>glIsProgram</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para><citerefentry><refentrytitle>glLinkProgram</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glUniform</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2003-2005 3Dlabs Inc. Ltd.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,199 @@
<?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="glGetVertexAttrib">
<refmeta>
<refentrytitle>glGetVertexAttrib</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refdescriptor>glGetVertexAttrib</refdescriptor>
<refname>glGetVertexAttribfv</refname>
<refname>glGetVertexAttribiv</refname>
<refpurpose>return a generic vertex attribute parameter</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glGetVertexAttribfv</function></funcdef>
<paramdef>GLuint <parameter>index</parameter></paramdef>
<paramdef>GLenum <parameter>pname</parameter></paramdef>
<paramdef>GLfloat *<parameter>params</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>void <function>glGetVertexAttribiv</function></funcdef>
<paramdef>GLuint <parameter>index</parameter></paramdef>
<paramdef>GLenum <parameter>pname</parameter></paramdef>
<paramdef>GLint *<parameter>params</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>index</parameter></term>
<listitem>
<para>Specifies the generic vertex attribute
parameter to be queried.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>pname</parameter></term>
<listitem>
<para>Specifies the symbolic name of the vertex
attribute parameter to be queried. Accepted values are
<constant>GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING</constant>,
<constant>GL_VERTEX_ATTRIB_ARRAY_ENABLED</constant>,
<constant>GL_VERTEX_ATTRIB_ARRAY_SIZE</constant>,
<constant>GL_VERTEX_ATTRIB_ARRAY_STRIDE</constant>,
<constant>GL_VERTEX_ATTRIB_ARRAY_TYPE</constant>,
<constant>GL_VERTEX_ATTRIB_ARRAY_NORMALIZED</constant>, or
<constant>GL_CURRENT_VERTEX_ATTRIB</constant>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>params</parameter></term>
<listitem>
<para>Returns the requested data.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para><function>glGetVertexAttrib</function> returns in
<parameter>params</parameter> the value of a generic vertex
attribute parameter. The generic vertex attribute to be queried
is specified by <parameter>index</parameter>, and the parameter
to be queried is specified by <parameter>pname</parameter>.</para>
<para>The accepted parameter names are as follows:</para>
<variablelist>
<varlistentry>
<term><constant>GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING</constant></term>
<listitem>
<para> <parameter>params</parameter> returns a
single value, the name of the buffer object currently bound to
the binding point corresponding to generic vertex attribute array
<parameter>index</parameter>. If no buffer object is bound,
0 is returned. The initial value is 0.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_VERTEX_ATTRIB_ARRAY_ENABLED</constant></term>
<listitem>
<para> <parameter>params</parameter> returns a
single value that is non-zero (true) if the vertex
attribute array for <parameter>index</parameter> is
enabled and 0 (false) if it is disabled. The initial
value is <constant>GL_FALSE</constant>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_VERTEX_ATTRIB_ARRAY_SIZE</constant></term>
<listitem>
<para> <parameter>params</parameter> returns a
single value, the size of the vertex attribute array
for <parameter>index</parameter>. The size is the
number of values for each element of the vertex
attribute array, and it will be 1, 2, 3, or 4. The
initial value is 4.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_VERTEX_ATTRIB_ARRAY_STRIDE</constant></term>
<listitem>
<para> <parameter>params</parameter> returns a
single value, the array stride for (number of bytes
between successive elements in) the vertex attribute
array for <parameter>index</parameter>. A value of 0
indicates that the array elements are stored
sequentially in memory. The initial value is 0.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_VERTEX_ATTRIB_ARRAY_TYPE</constant></term>
<listitem>
<para> <parameter>params</parameter> returns a
single value, a symbolic constant indicating the
array type for the vertex attribute array for
<parameter>index</parameter>. Possible values are
<constant>GL_BYTE</constant>,
<constant>GL_UNSIGNED_BYTE</constant>,
<constant>GL_SHORT</constant>,
<constant>GL_UNSIGNED_SHORT</constant>,
<constant>GL_FIXED</constant>, and
<constant>GL_FLOAT</constant>. The initial value is
<constant>GL_FLOAT</constant>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_VERTEX_ATTRIB_ARRAY_NORMALIZED</constant></term>
<listitem>
<para> <parameter>params</parameter> returns a
single value that is non-zero (true) if fixed-point
data types for the vertex attribute array indicated
by <parameter>index</parameter> are normalized when
they are converted to floating point, and 0 (false)
otherwise. The initial value is
<constant>GL_FALSE</constant>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_CURRENT_VERTEX_ATTRIB</constant></term>
<listitem>
<para> <parameter>params</parameter> returns four
values that represent the current value for the
generic vertex attribute specified by index.
The initial value is (0,0,0,1).</para>
</listitem>
</varlistentry>
</variablelist>
<para>All of the parameters except <constant>GL_CURRENT_VERTEX_ATTRIB</constant>
represent client-side state.</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>If an error is generated, no change is made to the
contents of <parameter>params</parameter>.</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para><constant>GL_INVALID_ENUM</constant> is generated if
<parameter>pname</parameter> is not an accepted value.</para>
<para><constant>GL_INVALID_VALUE</constant> is generated if
<parameter>index</parameter> is greater than or equal to
<constant>GL_MAX_VERTEX_ATTRIBS</constant>.</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para><citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>
with argument <constant>GL_MAX_VERTEX_ATTRIBS</constant></para>
<para><citerefentry><refentrytitle>glGetVertexAttribPointerv</refentrytitle></citerefentry>
with arguments <parameter>index</parameter> and
<constant>GL_VERTEX_ATTRIB_ARRAY_POINTER</constant></para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para><citerefentry><refentrytitle>glBindAttribLocation</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glBindBuffer</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDisableVertexAttribArray</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glEnableVertexAttribArray</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glVertexAttrib</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glVertexAttribPointer</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2003-2005 3Dlabs Inc. Ltd.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,91 @@
<?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="glGetVertexAttribPointerv">
<refmeta>
<refentrytitle>glGetVertexAttribPointerv</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glGetVertexAttribPointerv</refname>
<refpurpose>return the address of the specified generic vertex attribute pointer</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glGetVertexAttribPointerv</function></funcdef>
<paramdef>GLuint <parameter>index</parameter></paramdef>
<paramdef>GLenum <parameter>pname</parameter></paramdef>
<paramdef>GLvoid **<parameter>pointer</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>index</parameter></term>
<listitem>
<para>Specifies the generic vertex attribute
parameter to be returned.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>pname</parameter></term>
<listitem>
<para>Specifies the symbolic name of the generic
vertex attribute parameter to be returned. Must be
<constant>GL_VERTEX_ATTRIB_ARRAY_POINTER</constant>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>pointer</parameter></term>
<listitem>
<para>Returns the pointer value.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para><function>glGetVertexAttribPointerv</function> returns
pointer information. <parameter>index</parameter> is the generic
vertex attribute to be queried, <parameter>pname</parameter> is
a symbolic constant indicating the pointer to be returned, and
<parameter>params</parameter> is a pointer to a location in
which to place the returned data.</para>
<para>If a non-zero named buffer object was bound to the <constant>GL_ARRAY_BUFFER</constant> target
(see <citerefentry><refentrytitle>glBindBuffer</refentrytitle></citerefentry>) when the desired pointer was previously
specified, the <parameter>pointer</parameter> returned is a byte offset into the buffer object's data store.
</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>The pointer returned is client-side state.</para>
<para>The initial value for each pointer is 0.</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para><constant>GL_INVALID_ENUM</constant>
is generated if <parameter>pname</parameter>
is not an accepted value.</para>
<para><constant>GL_INVALID_VALUE</constant>
is generated if <parameter>index</parameter>
is greater than or equal to <constant>GL_MAX_VERTEX_ATTRIBS</constant>.</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para><citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>
with argument <constant>GL_MAX_VERTEX_ATTRIBS</constant></para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para><citerefentry><refentrytitle>glGetVertexAttrib</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glVertexAttribPointer</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2003-2005 3Dlabs Inc. Ltd.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,134 @@
<?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="glHint">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glHint</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glHint</refname>
<refpurpose>specify implementation-specific hints</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glHint</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>GLenum <parameter>mode</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>target</parameter></term>
<listitem>
<para>
Specifies a symbolic constant indicating the behavior to be controlled.
<constant>GL_GENERATE_MIPMAP_HINT</constant> is accepted.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>mode</parameter></term>
<listitem>
<para>
Specifies a symbolic constant indicating the desired behavior.
<constant>GL_FASTEST</constant>,
<constant>GL_NICEST</constant>, and
<constant>GL_DONT_CARE</constant> are accepted.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
Certain aspects of GL behavior,
when there is room for interpretation,
can be controlled with hints.
A hint is specified with two arguments.
<parameter>target</parameter> is a symbolic
constant indicating the behavior to be controlled,
and <parameter>mode</parameter> is another symbolic constant indicating the desired
behavior. The initial value for each <parameter>target</parameter> is <constant>GL_DONT_CARE</constant>.
<parameter>mode</parameter> can be one of the following:
</para>
<variablelist>
<varlistentry>
<term><constant>GL_FASTEST</constant></term>
<listitem>
<para>
The most efficient option should be chosen.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_NICEST</constant></term>
<listitem>
<para>
The most correct,
or highest quality,
option should be chosen.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_DONT_CARE</constant></term>
<listitem>
<para>
No preference.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
Though the implementation aspects that can be hinted are well defined,
the interpretation of the hints depends on the implementation.
The hint aspects that can be specified with <parameter>target</parameter>,
along with suggested semantics,
are as follows:
</para>
<variablelist>
<varlistentry>
<term><constant>GL_GENERATE_MIPMAP_HINT</constant></term>
<listitem>
<para>
Indicates the quality of filtering when generating mipmap images with
<citerefentry><refentrytitle>glGenerateMipmap</refentrytitle></citerefentry>.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>
The interpretation of hints depends on the implementation.
Some implementations ignore <function>glHint</function> settings.
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if either <parameter>target</parameter> or <parameter>mode</parameter> is not
an accepted value.
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para><citerefentry><refentrytitle>glGenerateMipmap</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>

View file

@ -2,17 +2,13 @@
<!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="glIsBuffer">
<refentryinfo>
<refmeta>
<refmetainfo>
<copyright>
<year>2005</year>
<holder>Sams Publishing</holder>
</copyright>
<copyright>
<year>2010-2013</year>
<holder>Khronos Group</holder>
</copyright>
</refentryinfo>
<refmeta>
</refmetainfo>
<refentrytitle>glIsBuffer</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
@ -59,10 +55,9 @@
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="Copyright"><title>Copyright</title>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2005 Addison-Wesley.
Copyright <trademark class="copyright"></trademark> 2010-2013 Khronos Group.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.

View file

@ -0,0 +1,169 @@
<?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="glIsEnabled">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glIsEnabled</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glIsEnabled</refname>
<refpurpose>test whether a capability is enabled</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>GLboolean <function>glIsEnabled</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>
<refsect1 id="description"><title>Description</title>
<para>
<function>glIsEnabled</function> returns <constant>GL_TRUE</constant> if <parameter>cap</parameter> is an enabled capability
and returns <constant>GL_FALSE</constant> otherwise.
Initially all capabilities except <constant>GL_DITHER</constant> are disabled;
<constant>GL_DITHER</constant> is initially enabled.
</para>
<para>
The following capabilities are accepted for <parameter>cap</parameter>:
</para>
<para>
</para>
<informaltable frame="topbot">
<tgroup cols="2" align="left">
<colspec/>
<colspec/>
<thead>
<row>
<entry rowsep="1" align="left"><emphasis role="bold">
Constant
</emphasis></entry>
<entry rowsep="1" align="left"><emphasis role="bold">
See
</emphasis></entry>
</row>
</thead>
<tbody>
<row>
<entry align="left">
<constant>GL_BLEND</constant>
</entry>
<entry align="left">
<citerefentry><refentrytitle>glBlendFunc</refentrytitle></citerefentry>
</entry>
</row>
<row>
<entry align="left">
<constant>GL_CULL_FACE</constant>
</entry>
<entry align="left">
<citerefentry><refentrytitle>glCullFace</refentrytitle></citerefentry>
</entry>
</row>
<row>
<entry align="left">
<constant>GL_DEPTH_TEST</constant>
</entry>
<entry align="left">
<citerefentry><refentrytitle>glDepthFunc</refentrytitle></citerefentry>, <citerefentry><refentrytitle>glDepthRangef</refentrytitle></citerefentry>
</entry>
</row>
<row>
<entry align="left">
<constant>GL_DITHER</constant>
</entry>
<entry align="left">
<citerefentry><refentrytitle>glEnable</refentrytitle></citerefentry>
</entry>
</row>
<row>
<entry align="left">
<constant>GL_POLYGON_OFFSET_FILL</constant>
</entry>
<entry align="left">
<citerefentry><refentrytitle>glPolygonOffset</refentrytitle></citerefentry>
</entry>
</row>
<row>
<entry align="left">
<constant>GL_SAMPLE_ALPHA_TO_COVERAGE</constant>
</entry>
<entry align="left">
<citerefentry><refentrytitle>glSampleCoverage</refentrytitle></citerefentry>
</entry>
</row>
<row>
<entry align="left">
<constant>GL_SAMPLE_COVERAGE</constant>
</entry>
<entry align="left">
<citerefentry><refentrytitle>glSampleCoverage</refentrytitle></citerefentry>
</entry>
</row>
<row>
<entry align="left">
<constant>GL_SCISSOR_TEST</constant>
</entry>
<entry align="left">
<citerefentry><refentrytitle>glScissor</refentrytitle></citerefentry>
</entry>
</row>
<row>
<entry align="left">
<constant>GL_STENCIL_TEST</constant>
</entry>
<entry align="left">
<citerefentry><refentrytitle>glStencilFunc</refentrytitle></citerefentry>, <citerefentry><refentrytitle>glStencilOp</refentrytitle></citerefentry>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>
</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>
If an error is generated,
<function>glIsEnabled</function> returns 0.
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>cap</parameter> is not an accepted value.
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glEnable</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGet</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>

View file

@ -0,0 +1,65 @@
<?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="glIsFramebuffer">
<refmeta>
<refmetainfo>
<copyright>
<year>2005</year>
<holder>Sams Publishing</holder>
</copyright>
</refmetainfo>
<refentrytitle>glIsFramebuffer</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glIsFramebuffer</refname>
<refpurpose>determine if a name corresponds to a framebuffer object</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>GLboolean <function>glIsFramebuffer</function></funcdef>
<paramdef>GLuint <parameter>framebuffer</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>framebuffer</parameter></term>
<listitem>
<para>
Specifies a value that may be the name of a framebuffer object.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glIsFramebuffer</function> returns <constant>GL_TRUE</constant> if <parameter>framebuffer</parameter> is currently the name of a framebuffer object.
If <parameter>framebuffer</parameter> is zero, or is a non-zero value that is not currently the
name of a framebuffer object, or if an error occurs, <function>glIsFramebuffer</function> returns <constant>GL_FALSE</constant>.
</para>
<para>
A name returned by <citerefentry><refentrytitle>glGenFramebuffers</refentrytitle></citerefentry>, but not yet associated with a framebuffer object
by calling <citerefentry><refentrytitle>glBindFramebuffer</refentrytitle></citerefentry>, is not the name of a framebuffer object.
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glBindFramebuffer</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDeleteFramebuffers</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGenFramebuffers</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2008 Khronos Group.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,62 @@
<?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="glIsProgram">
<refmeta>
<refentrytitle>glIsProgram</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glIsProgram</refname>
<refpurpose>determine if a name corresponds to a program object</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>GLboolean <function>glIsProgram</function></funcdef>
<paramdef>GLuint <parameter>program</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>program</parameter></term>
<listitem>
<para>Specifies a potential program object.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para><function>glIsProgram</function> returns
<constant>GL_TRUE</constant> if <parameter>program</parameter>
is the name of a program object previously created with
<citerefentry><refentrytitle>glCreateProgram</refentrytitle></citerefentry>
and not yet deleted with <citerefentry><refentrytitle>glDeleteProgram</refentrytitle></citerefentry>.
If <parameter>program</parameter> is zero or a non-zero value that
is not the name of a program object, or if an error occurs,
<function>glIsProgram</function> returns <constant>GL_FALSE</constant>.</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>No error is generated if <parameter>program</parameter> is
not a valid program object name.</para>
<para>A program object marked for deletion with <citerefentry><refentrytitle>glDeleteProgram</refentrytitle></citerefentry>
but still in use as part of current rendering state is still considered
a program object and <function>glIsProgram</function> will return <constant>GL_TRUE</constant>.</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para><citerefentry><refentrytitle>glCreateProgram</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDeleteProgram</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glUseProgram</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2003-2005 3Dlabs Inc. Ltd.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,65 @@
<?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="glIsRenderbuffer">
<refmeta>
<refmetainfo>
<copyright>
<year>2005</year>
<holder>Sams Publishing</holder>
</copyright>
</refmetainfo>
<refentrytitle>glIsRenderbuffer</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glIsRenderbuffer</refname>
<refpurpose>determine if a name corresponds to a renderbuffer object</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>GLboolean <function>glIsRenderbuffer</function></funcdef>
<paramdef>GLuint <parameter>renderbuffer</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>renderbuffer</parameter></term>
<listitem>
<para>
Specifies a value that may be the name of a renderbuffer object.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glIsRenderbuffer</function> returns <constant>GL_TRUE</constant> if <parameter>renderbuffer</parameter> is currently the name of a renderbuffer object.
If <parameter>renderbuffer</parameter> is zero, or is a non-zero value that is not currently the
name of a renderbuffer object, or if an error occurs, <function>glIsRenderbuffer</function> returns <constant>GL_FALSE</constant>.
</para>
<para>
A name returned by <citerefentry><refentrytitle>glGenRenderbuffers</refentrytitle></citerefentry>, but not yet associated with a renderbuffer object
by calling <citerefentry><refentrytitle>glBindRenderbuffer</refentrytitle></citerefentry>, is not the name of a renderbuffer object.
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glBindRenderbuffer</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDeleteRenderbuffers</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGenRenderbuffers</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2008 Khronos Group.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,62 @@
<?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="glIsShader">
<refmeta>
<refentrytitle>glIsShader</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glIsShader</refname>
<refpurpose>determine if a name corresponds to a shader object</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>GLboolean <function>glIsShader</function></funcdef>
<paramdef>GLuint <parameter>shader</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>shader</parameter></term>
<listitem>
<para>Specifies a potential shader object.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para><function>glIsShader</function> returns
<constant>GL_TRUE</constant> if <parameter>shader</parameter> is
the name of a shader object previously created with
<citerefentry><refentrytitle>glCreateShader</refentrytitle></citerefentry>
and not yet deleted with <citerefentry><refentrytitle>glDeleteShader</refentrytitle></citerefentry>.
If <parameter>shader</parameter> is
zero or a non-zero value that is not the name of a shader
object, or if an error occurs, <function>glIsShader </function> returns
<constant>GL_FALSE</constant>.</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>No error is generated if <parameter>shader</parameter> is
not a valid shader object name.</para>
<para>A shader object marked for deletion with <citerefentry><refentrytitle>glDeleteShader</refentrytitle></citerefentry>
but still attached to a program object is still considered
a shader object and <function>glIsShader</function> will return <constant>GL_TRUE</constant>.</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para><citerefentry><refentrytitle>glCreateShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDeleteShader</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2003-2005 3Dlabs Inc. Ltd.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,70 @@
<?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="glIsTexture">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glIsTexture</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glIsTexture</refname>
<refpurpose>determine if a name corresponds to a texture</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>GLboolean <function>glIsTexture</function></funcdef>
<paramdef>GLuint <parameter>texture</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>texture</parameter></term>
<listitem>
<para>
Specifies a value that may be the name of a texture.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glIsTexture</function> returns <constant>GL_TRUE</constant> if <parameter>texture</parameter> is currently the name of a texture.
If <parameter>texture</parameter> is zero, or is a non-zero value that is not currently the
name of a texture, or if an error occurs, <function>glIsTexture</function> returns <constant>GL_FALSE</constant>.
</para>
<para>
A name returned by <citerefentry><refentrytitle>glGenTextures</refentrytitle></citerefentry>, but not yet associated with a texture
by calling <citerefentry><refentrytitle>glBindTexture</refentrytitle></citerefentry>, is not the name of a texture.
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glBindTexture</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCopyTexImage2D</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDeleteTextures</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGenTextures</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetTexParameter</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glTexImage2D</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glTexParameter</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>

View file

@ -0,0 +1,118 @@
<?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="glLineWidth">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glLineWidth</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glLineWidth</refname>
<refpurpose>specify the width of rasterized lines</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glLineWidth</function></funcdef>
<paramdef>GLfloat <parameter>width</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<!-- eqn: ignoring delim $$ -->
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>width</parameter></term>
<listitem>
<para>
Specifies the width of rasterized lines.
The initial value is 1.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glLineWidth</function> specifies the rasterized width of
lines.
</para>
<para>
The actual width is determined by rounding the supplied width
to the nearest integer.
(If the rounding results in the value 0,
it is as if the line width were 1.)
If
<inlineequation><mml:math>
<!-- eqn: | DELTA x | >= | DELTA y |:-->
<mml:mrow>
<mml:mfenced open="&VerticalBar;" close="&VerticalBar;">
<mml:mrow>
<mml:mo>&Delta;</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&gt;=</mml:mo>
<mml:mfenced open="&VerticalBar;" close="&VerticalBar;">
<mml:mrow>
<mml:mo>&Delta;</mml:mo>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math></inlineequation>,
<emphasis>i</emphasis> pixels are filled in each column that is rasterized,
where <emphasis>i</emphasis> is the rounded value of <parameter>width</parameter>.
Otherwise,
<emphasis>i</emphasis> pixels are filled in each row that is rasterized.
</para>
<para>
There is a range of supported line widths. Only width 1 is guaranteed to be supported; others depend on the
implementation.
To query the range of supported widths, call <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>
with argument <constant>GL_ALIASED_LINE_WIDTH_RANGE</constant>.
</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>
The line width specified by <function>glLineWidth</function> is always returned when <constant>GL_LINE_WIDTH</constant>
is queried.
Clamping and rounding have no effect on the specified value.
</para>
<para>
Line width may be clamped to an implementation-dependent maximum. Call <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with <constant>GL_ALIASED_LINE_WIDTH_RANGE</constant> to determine the maximum width.
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if <parameter>width</parameter> is less than or equal to 0.
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_LINE_WIDTH</constant>
</para>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_ALIASED_LINE_WIDTH_RANGE</constant>
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glEnable</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>

View file

@ -0,0 +1,210 @@
<?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="glLinkProgram">
<refmeta>
<refentrytitle>glLinkProgram</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glLinkProgram</refname>
<refpurpose>link a program object</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glLinkProgram</function></funcdef>
<paramdef>GLuint <parameter>program</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>program</parameter></term>
<listitem>
<para>Specifies the handle of the program object to be linked.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para><function>glLinkProgram</function> links the program
object specified by <parameter>program</parameter>. Shader objects
of type <constant>GL_VERTEX_SHADER</constant> attached to
<parameter>program</parameter> are used to
create an executable that will run on the programmable vertex
processor. Shader objects of type <constant>GL_FRAGMENT_SHADER</constant>
attached to <parameter>program</parameter> are used to create an
executable that will run on the programmable fragment
processor.</para>
<para>The status of the link operation will be stored as part of
the program object's state. This value will be set to
<constant>GL_TRUE</constant> if the program object was linked
without errors and is ready for use, and
<constant>GL_FALSE</constant> otherwise. It can be queried by
calling
<citerefentry><refentrytitle>glGetProgramiv</refentrytitle></citerefentry>
with arguments <parameter>program</parameter> and
<constant>GL_LINK_STATUS</constant>.</para>
<para>As a result of a successful link operation, all active
user-defined uniform variables belonging to
<parameter>program</parameter> will be initialized to 0, and
each of the program object's active uniform variables will be
assigned a location that can be queried by calling
<citerefentry><refentrytitle>glGetUniformLocation</refentrytitle></citerefentry>.
Also, any active user-defined attribute variables that have not
been bound to a generic vertex attribute index will be bound to
one at this time.</para>
<para>Linking of a program object can fail for a number of
reasons as specified in the <emphasis>OpenGL ES Shading Language
Specification</emphasis>. The following lists some of the
conditions that will cause a link error.</para>
<itemizedlist>
<listitem>
<para>A vertex shader and a fragment shader are not both
present in the program object.</para>
</listitem>
<listitem>
<para>The number of active attribute variables supported
by the implementation has been exceeded.</para>
</listitem>
<listitem>
<para>The storage limit for uniform variables has been
exceeded.</para>
</listitem>
<listitem>
<para>The number of active uniform variables supported
by the implementation has been exceeded.</para>
</listitem>
<listitem>
<para>The <function>main</function> function is missing
for the vertex shader or the fragment shader.</para>
</listitem>
<listitem>
<para>A varying variable actually used in the fragment
shader is not declared in the same way (or is not
declared at all) in the vertex shader.</para>
</listitem>
<listitem>
<para>A reference to a function or variable name is
unresolved.</para>
</listitem>
<listitem>
<para>A shared global is declared with two different
types or two different initial values.</para>
</listitem>
<listitem>
<para>One or more of the attached shader objects has not
been successfully compiled (via <citerefentry><refentrytitle>glCompileShader</refentrytitle></citerefentry>)
or loaded with a pre-compiled shader binary (via <citerefentry><refentrytitle>glShaderBinary</refentrytitle></citerefentry>).</para>
</listitem>
<listitem>
<para>Binding a generic attribute matrix caused some
rows of the matrix to fall outside the allowed maximum
of <constant>GL_MAX_VERTEX_ATTRIBS</constant>.</para>
</listitem>
<listitem>
<para>Not enough contiguous vertex attribute slots could
be found to bind attribute matrices.</para>
</listitem>
</itemizedlist>
<para>When a program object has been successfully linked, the
program object can be made part of current state by calling
<citerefentry><refentrytitle>glUseProgram</refentrytitle></citerefentry>.
Whether or not the link operation was successful, the program
object's information log will be overwritten. The information
log can be retrieved by calling
<citerefentry><refentrytitle>glGetProgramInfoLog</refentrytitle></citerefentry>.</para>
<para><function>glLinkProgram</function> will also install the
generated executables as part of the current rendering state if
the link operation was successful and the specified program
object is already currently in use as a result of a previous
call to
<citerefentry><refentrytitle>glUseProgram</refentrytitle></citerefentry>.
If the program object currently in use is relinked
unsuccessfully, its link status will be set to
<constant>GL_FALSE</constant> , but the executables and
associated state will remain part of the current state until a
subsequent call to <function>glUseProgram</function> removes it
from use. After it is removed from use, it cannot be made part
of current state until it has been successfully relinked.</para>
<para>The program object's information log is updated and the
program is generated at the time of the link operation. After
the link operation, applications are free to modify attached
shader objects, compile attached shader objects, detach shader
objects, delete shader objects, and attach additional shader
objects. None of these operations affects the information log or
the program that is part of the program object.</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>If the link operation is unsuccessful, any information about a previous link operation on <parameter>program</parameter>
is lost (i.e., a failed link does not restore the old state of <parameter>program</parameter>).
Certain information can still be retrieved from <parameter>program</parameter>
even after an unsuccessful link operation. See for instance <citerefentry><refentrytitle>glGetActiveAttrib</refentrytitle></citerefentry>
and <citerefentry><refentrytitle>glGetActiveUniform</refentrytitle></citerefentry>.</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para><constant>GL_INVALID_VALUE</constant>
is generated if <parameter>program</parameter>
is not a value generated by OpenGL.</para>
<para><constant>GL_INVALID_OPERATION</constant>
is generated if <parameter>program</parameter>
is not a program object.</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para><citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>
with the argument <constant>GL_CURRENT_PROGRAM</constant></para>
<para><citerefentry><refentrytitle>glGetActiveAttrib</refentrytitle></citerefentry>
with argument <parameter>program</parameter>
and the index of an active attribute variable</para>
<para><citerefentry><refentrytitle>glGetActiveUniform</refentrytitle></citerefentry>
with argument <parameter>program</parameter>
and the index of an active uniform variable<parameter></parameter></para>
<para><citerefentry><refentrytitle>glGetAttachedShaders</refentrytitle></citerefentry>
with argument <parameter>program</parameter></para>
<para><citerefentry><refentrytitle>glGetAttribLocation</refentrytitle></citerefentry>
with argument <parameter>program</parameter>
and an attribute variable name</para>
<para><citerefentry><refentrytitle>glGetProgramiv</refentrytitle></citerefentry>
with arguments <parameter>program</parameter>
and <constant>GL_LINK_STATUS</constant></para>
<para><citerefentry><refentrytitle>glGetProgramInfoLog</refentrytitle></citerefentry>
with argument <parameter>program</parameter></para>
<para><citerefentry><refentrytitle>glGetUniform</refentrytitle></citerefentry>
with argument <parameter>program</parameter>
and a uniform variable location</para>
<para><citerefentry><refentrytitle>glGetUniformLocation</refentrytitle></citerefentry>
with argument <parameter>program</parameter>
and a uniform variable name</para>
<para><citerefentry><refentrytitle>glIsProgram</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para><citerefentry><refentrytitle>glAttachShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glBindAttribLocation</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCompileShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glShaderBinary</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCreateProgram</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDeleteProgram</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDetachShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glUniform</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glUseProgram</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glValidateProgram</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2003-2005 3Dlabs Inc. Ltd.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,194 @@
<?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="glPixelStorei">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glPixelStorei</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glPixelStorei</refname>
<refpurpose>set pixel storage modes</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glPixelStorei</function></funcdef>
<paramdef>GLenum <parameter>pname</parameter></paramdef>
<paramdef>GLint <parameter>param</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<!-- eqn: ignoring delim $$ -->
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>pname</parameter></term>
<listitem>
<para>
Specifies the symbolic name of the parameter to be set.
One value affects the packing of pixel data into memory:
<constant>GL_PACK_ALIGNMENT</constant>.
The other affects the unpacking of pixel data <emphasis>from</emphasis> memory:
<constant>GL_UNPACK_ALIGNMENT</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>param</parameter></term>
<listitem>
<para>
Specifies the value that <parameter>pname</parameter> is set to.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glPixelStorei</function> sets pixel storage modes that affect the operation of subsequent
<citerefentry><refentrytitle>glReadPixels</refentrytitle></citerefentry> as well as the unpacking of
texture patterns (see <citerefentry><refentrytitle>glTexImage2D</refentrytitle></citerefentry> and
<citerefentry><refentrytitle>glTexSubImage2D</refentrytitle></citerefentry>).
</para>
<para>
<parameter>pname</parameter> is a symbolic constant indicating the parameter to be set, and
<parameter>param</parameter> is the new value. One storage parameter affects
how pixel data is returned to client memory:
</para>
<variablelist>
<varlistentry>
<term><constant>GL_PACK_ALIGNMENT</constant></term>
<listitem>
<para>
Specifies the alignment requirements for the start of each pixel row in memory.
The allowable values are
1 (byte-alignment),
2 (rows aligned to even-numbered bytes),
4 (word-alignment), and
8 (rows start on double-word boundaries).
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
The other storage parameter affects how pixel data is
read from client memory:
</para>
<variablelist>
<varlistentry>
<term><constant>GL_UNPACK_ALIGNMENT</constant></term>
<listitem>
<para>
Specifies the alignment requirements for the start of each pixel row in memory.
The allowable values are
1 (byte-alignment),
2 (rows aligned to even-numbered bytes),
4 (word-alignment), and
8 (rows start on double-word boundaries).
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
The following table gives the type,
initial value,
and range of valid values for each storage parameter
that can be set with <function>glPixelStorei</function>.
</para>
<para>
</para>
<informaltable frame="topbot">
<tgroup cols="4" align="left">
<colspec/>
<colspec align="center"/>
<colspec align="center"/>
<colspec align="center"/>
<thead>
<row>
<entry rowsep="1" align="left"><emphasis role="bold">
<parameter>pname</parameter>
</emphasis></entry>
<entry rowsep="1" align="center"><emphasis role="bold">
Type
</emphasis></entry>
<entry rowsep="1" align="center"><emphasis role="bold">
Initial Value
</emphasis></entry>
<entry rowsep="1" align="center"><emphasis role="bold">
Valid Range
</emphasis></entry>
</row>
</thead>
<tbody>
<row>
<entry align="left">
<constant>GL_PACK_ALIGNMENT</constant>
</entry>
<entry align="center">
integer
</entry>
<entry align="center">
4
</entry>
<entry align="center">
1, 2, 4, or 8
</entry>
</row>
<row>
<entry align="left">
<constant>GL_UNPACK_ALIGNMENT</constant>
</entry>
<entry align="center">
integer
</entry>
<entry align="center">
4
</entry>
<entry align="center">
1, 2, 4, or 8
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>
Boolean parameters are set to false if <parameter>param</parameter> is 0 and true otherwise.
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>pname</parameter> is not an accepted value.
</para>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if alignment is specified as other than 1, 2, 4, or 8.
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument
<constant>GL_PACK_ALIGNMENT</constant> or <constant>GL_UNPACK_ALIGNMENT</constant>
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glReadPixels</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glTexImage2D</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glTexSubImage2D</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>

View file

@ -2,17 +2,13 @@
<!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="glPolygonOffset">
<refentryinfo>
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
<copyright>
<year>2010-2013</year>
<holder>Khronos Group</holder>
</copyright>
</refentryinfo>
<refmeta>
</refmetainfo>
<refentrytitle>glPolygonOffset</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
@ -29,6 +25,7 @@
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<!-- eqn: ignoring delim $$ -->
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
@ -53,13 +50,12 @@
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
When <constant>GL_POLYGON_OFFSET_FILL</constant>, <constant>GL_POLYGON_OFFSET_LINE</constant>, or
<constant>GL_POLYGON_OFFSET_POINT</constant> is enabled, each
When <constant>GL_POLYGON_OFFSET_FILL</constant> is enabled, each
fragment's <emphasis>depth</emphasis> value will be offset after it is interpolated
from the <emphasis>depth</emphasis> values of the appropriate vertices.
The value of the offset is
<inlineequation><mml:math>
<!-- eqn: factor * DZ + r * units: -->
<!-- eqn: factor * DZ + r * units:-->
<mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">factor</mml:mi>
@ -76,7 +72,7 @@
</mml:math></inlineequation>,
where
<inlineequation><mml:math>
<!-- eqn: DZ: -->
<!-- eqn: DZ:-->
<mml:mi mathvariant="italic">DZ</mml:mi>
</mml:math></inlineequation>
is a measurement of the change in depth relative to the screen
@ -95,9 +91,7 @@
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glIsEnabled</refentrytitle></citerefentry> with argument
<constant>GL_POLYGON_OFFSET_FILL</constant>,
<constant>GL_POLYGON_OFFSET_LINE</constant>,
or <constant>GL_POLYGON_OFFSET_POINT</constant>.
<constant>GL_POLYGON_OFFSET_FILL</constant>.
</para>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_POLYGON_OFFSET_FACTOR</constant> or
@ -112,12 +106,11 @@
<citerefentry><refentrytitle>glIsEnabled</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="Copyright"><title>Copyright</title>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 1991-2006 Silicon Graphics, Inc.
Copyright <trademark class="copyright"></trademark> 2010-2013 Khronos Group.
This document is licensed under the SGI Free Software B License.
For details, see
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>

View file

@ -0,0 +1,333 @@
<?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="glReadPixels">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glReadPixels</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glReadPixels</refname>
<refpurpose>read a block of pixels from the frame buffer</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glReadPixels</function></funcdef>
<paramdef>GLint <parameter>x</parameter></paramdef>
<paramdef>GLint <parameter>y</parameter></paramdef>
<paramdef>GLsizei <parameter>width</parameter></paramdef>
<paramdef>GLsizei <parameter>height</parameter></paramdef>
<paramdef>GLenum <parameter>format</parameter></paramdef>
<paramdef>GLenum <parameter>type</parameter></paramdef>
<paramdef>GLvoid * <parameter>data</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<!-- eqn: ignoring delim $$ -->
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>x</parameter></term>
<term><parameter>y</parameter></term>
<listitem>
<para>
Specify the window coordinates of the first pixel
that is read from the frame buffer.
This location is the lower left corner of a rectangular block of pixels.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>width</parameter></term>
<term><parameter>height</parameter></term>
<listitem>
<para>
Specify the dimensions of the pixel rectangle.
<parameter>width</parameter> and <parameter>height</parameter> of one correspond to a single pixel.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>format</parameter></term>
<listitem>
<para>
Specifies the format of the pixel data.
The following symbolic values are accepted:
<constant>GL_ALPHA</constant>,
<constant>GL_RGB</constant>, and
<constant>GL_RGBA</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>type</parameter></term>
<listitem>
<para>
Specifies the data type of the pixel data.
Must be one of
<constant>GL_UNSIGNED_BYTE</constant>,
<constant>GL_UNSIGNED_SHORT_5_6_5</constant>,
<constant>GL_UNSIGNED_SHORT_4_4_4_4</constant>, or
<constant>GL_UNSIGNED_SHORT_5_5_5_1</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>data</parameter></term>
<listitem>
<para>
Returns the pixel data.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glReadPixels</function> returns pixel data from the frame buffer,
starting with the pixel whose lower left corner
is at location (<parameter>x</parameter>, <parameter>y</parameter>),
into client memory starting at location <parameter>data</parameter>.
The <constant>GL_PACK_ALIGNMENT</constant> parameter, set with the
<citerefentry><refentrytitle>glPixelStorei</refentrytitle></citerefentry>
command, affects the processing of the pixel data before it is placed into
client memory.
</para>
<para>
<function>glReadPixels</function> returns values from each pixel with lower left corner at
<inlineequation><mml:math>
<!-- eqn: (x + i, y + j):-->
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:math></inlineequation>
for
<inlineequation><mml:math>
<!-- eqn: 0 <= i < width:-->
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>&lt;=</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>&lt;</mml:mo>
<mml:mi mathvariant="italic">width</mml:mi>
</mml:mrow>
</mml:math></inlineequation>
and
<inlineequation><mml:math>
<!-- eqn: 0 <= j < height:-->
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>&lt;=</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>&lt;</mml:mo>
<mml:mi mathvariant="italic">height</mml:mi>
</mml:mrow>
</mml:math></inlineequation>.
This pixel is said to be the
<inlineequation><mml:math><mml:mi mathvariant="italic">i</mml:mi></mml:math></inlineequation>th
pixel in the
<inlineequation><mml:math><mml:mi mathvariant="italic">j</mml:mi></mml:math></inlineequation>th
row.
Pixels are returned in row order from the lowest to the highest row,
left to right in each row.
</para>
<para>
<parameter>format</parameter> specifies the format for the returned pixel values;
accepted values are:
</para>
<variablelist>
<varlistentry>
<term><constant>GL_ALPHA</constant></term>
<listitem>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_RGB</constant></term>
<listitem>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_RGBA</constant></term>
<listitem>
</listitem>
</varlistentry>
</variablelist>
<para>
RGBA color components are read from the color buffer.
Each color component is converted to floating point such that zero intensity
maps to 0.0 and full intensity maps to 1.0.
</para>
<para>
Unneeded data is then discarded.
For example,
<constant>GL_ALPHA</constant> discards the red, green, and blue components,
while <constant>GL_RGB</constant> discards only the alpha component.
The final values are clamped to the range
<inlineequation><mml:math>
<!-- eqn: [0,1]:-->
<mml:mfenced open="[" close="]">
<mml:mn>0</mml:mn>
<mml:mn>1</mml:mn>
</mml:mfenced>
</mml:math></inlineequation>.
</para>
<para>
Finally, the components
are converted to the proper format,
as specified by <parameter>type</parameter>.
When <parameter>type</parameter> is <constant>GL_UNSIGNED_BYTE</constant>,
each component is multiplied by
<inlineequation><mml:math>
<!-- eqn: 2 sup 8 - 1:-->
<mml:mrow>
<mml:msup><mml:mn>2</mml:mn>
<mml:mn>8</mml:mn>
</mml:msup>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math></inlineequation>.
When <parameter>type</parameter> is <constant>GL_UNSIGNED_SHORT_5_6_5</constant>,
<constant>GL_UNSIGNED_SHORT_4_4_4_4</constant>, or <constant>GL_UNSIGNED_SHORT_5_5_5_1</constant>,
each component is multiplied by
<inlineequation><mml:math>
<!-- eqn: 2 sup N - 1:-->
<mml:mrow>
<mml:msup><mml:mn>2</mml:mn>
<mml:mi>N</mml:mi>
</mml:msup>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math></inlineequation>,
where <inlineequation><mml:math><mml:mi mathvariant="italic">N</mml:mi></mml:math></inlineequation>
is the number of bits in the bitfield.
</para>
<para>
Return values are placed in memory as follows.
If <parameter>format</parameter> is
<constant>GL_ALPHA</constant>,
a single value is returned and the data for the
<inlineequation><mml:math><mml:mi mathvariant="italic">i</mml:mi></mml:math></inlineequation>th
pixel in the
<inlineequation><mml:math><mml:mi mathvariant="italic">j</mml:mi></mml:math></inlineequation>th
row
is placed in location
<inlineequation><mml:math>
<!-- eqn: (j) width + i:-->
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mfenced>
<mml:mo>&it;</mml:mo>
<mml:mi mathvariant="italic">width</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:math></inlineequation>.
<constant>GL_RGB</constant> returns three values and
<constant>GL_RGBA</constant> returns four values for each pixel,
with all values corresponding to a single pixel occupying contiguous space
in <parameter>data</parameter>.
Storage parameter <constant>GL_PACK_ALIGNMENT</constant>, set by
<citerefentry><refentrytitle>glPixelStorei</refentrytitle></citerefentry>,
affects the way that data is written into memory.
See <citerefentry><refentrytitle>glPixelStorei</refentrytitle></citerefentry> for a description.
</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>
If the currently bound framebuffer is not the default framebuffer object, color
components are read from the color image attached to the
<constant>GL_COLOR_ATTACHMENT0</constant> attachment point.
</para>
<para>
Only two <parameter>format</parameter>/<parameter>type</parameter> parameter pairs are
accepted. <constant>GL_RGBA</constant>/<constant>GL_UNSIGNED_BYTE</constant> is
always accepted, and the other acceptable pair can be discovered by querying
<constant>GL_IMPLEMENTATION_COLOR_READ_FORMAT</constant> and
<constant>GL_IMPLEMENTATION_COLOR_READ_TYPE</constant>.
</para>
<para>
Values for pixels that lie outside the window
connected to the current GL context are undefined.
</para>
<para>
If an error is generated,
no change is made to the contents of <parameter>data</parameter>.
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>format</parameter> or <parameter>type</parameter> is not an
accepted value.
</para>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if either <parameter>width</parameter> or <parameter>height</parameter> is negative.
</para>
<para>
<constant>GL_INVALID_OPERATION</constant> is generated if <parameter>type</parameter> is
<constant>GL_UNSIGNED_SHORT_5_6_5</constant>
and <parameter>format</parameter> is not <constant>GL_RGB</constant>.
</para>
<para>
<constant>GL_INVALID_OPERATION</constant> is generated if <parameter>type</parameter> is
<constant>GL_UNSIGNED_SHORT_4_4_4_4</constant> or
<constant>GL_UNSIGNED_SHORT_5_5_5_1</constant>
and <parameter>format</parameter> is not <constant>GL_RGBA</constant>.
</para>
<para>
<constant>GL_INVALID_OPERATION</constant> is generated if <parameter>format</parameter>
and <parameter>type</parameter> are neither <constant>GL_RGBA</constant> and
<constant>GL_UNSIGNED_BYTE</constant>, respectively, nor the format/type pair
returned by querying <constant>GL_IMPLEMENTATION_COLOR_READ_FORMAT</constant>
and <constant>GL_IMPLEMENTATION_COLOR_READ_TYPE</constant>.
</para>
<para>
<constant>GL_INVALID_FRAMEBUFFER_OPERATION</constant> is generated if
the currently bound framebuffer is not framebuffer complete (i.e. the
return value from <citerefentry><refentrytitle>glCheckFramebufferStatus</refentrytitle></citerefentry>
is not <constant>GL_FRAMEBUFFER_COMPLETE</constant>).
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument
<constant>GL_IMPLEMENTATION_COLOR_READ_FORMAT</constant>
or <constant>GL_IMPLEMENTATION_COLOR_READ_TYPE</constant>
</para>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_PACK_ALIGNMENT</constant>
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glCheckFramebufferStatus</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glPixelStorei</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>

View file

@ -0,0 +1,64 @@
<?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="glReleaseShaderCompiler">
<refmeta>
<refentrytitle>glReleaseShaderCompiler</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glReleaseShaderCompiler</refname>
<refpurpose>release resources allocated by the shader compiler</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glReleaseShaderCompiler</function></funcdef>
<paramdef> <parameter>void</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="description"><title>Description</title>
<para>For implementations that support a shader compiler,
<function>glReleaseShaderCompiler</function>
frees resources allocated by the shader compiler. This is a hint from the application
that additional shader compilations are unlikely to occur, at least for some period of time,
and that the resources consumed by the shader compiler may be released and put to better use
elsewhere.</para>
<para>However, if a call to <citerefentry><refentrytitle>glCompileShader</refentrytitle></citerefentry>
is made after a call to <function>glReleaseShaderCompiler</function>, the shader compiler must be restored
to service the compilation request as if <function>glReleaseShaderCompiler</function> had never been called.</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>Shader compiler support is optional, and thus must be queried
before use by calling <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>
with argument <constant>GL_SHADER_COMPILER</constant>. <citerefentry><refentrytitle>glShaderSource</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCompileShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetShaderPrecisionFormat</refentrytitle></citerefentry>, and
<function>glReleaseShaderCompiler</function> will
each generate <constant>GL_INVALID_OPERATION</constant> on implementations
that do not support a shader compiler. Such implementations instead offer the
<citerefentry><refentrytitle>glShaderBinary</refentrytitle></citerefentry>
alternative for supplying a pre-compiled shader binary.</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
a shader compiler is not supported.</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para><citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>
with argument <constant>GL_SHADER_COMPILER</constant></para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para><citerefentry><refentrytitle>glCompileShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glShaderSource</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2008 Khronos Group.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,111 @@
<?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="glRenderbufferStorage">
<refmeta>
<refentrytitle>glRenderbufferStorage</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glRenderbufferStorage</refname>
<refpurpose>create and initialize a renderbuffer object's data store</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glRenderbufferStorage</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>GLenum <parameter>internalformat</parameter></paramdef>
<paramdef>GLsizei <parameter>width</parameter></paramdef>
<paramdef>GLsizei <parameter>height</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>target</parameter></term>
<listitem>
<para>Specifies the renderbuffer target. The symbolic constant must be
<constant>GL_RENDERBUFFER</constant>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>internalformat</parameter></term>
<listitem>
<para>Specifies the color-renderable, depth-renderable, or
stencil-renderable format of the renderbuffer. Must be one of the
following symbolic constants:
<constant>GL_RGBA4</constant>,
<constant>GL_RGB565</constant>,
<constant>GL_RGB5_A1</constant>,
<constant>GL_DEPTH_COMPONENT16</constant>, or
<constant>GL_STENCIL_INDEX8</constant>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>width</parameter></term>
<listitem>
<para>Specifies the width of the renderbuffer in pixels.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>height</parameter></term>
<listitem>
<para>Specifies the height of the renderbuffer in pixels.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para><function>glRenderbufferStorage</function> establishes the data
storage, format, and dimensions of a renderbuffer object's image. Any
existing data store for the renderbuffer is deleted and the contents
of the new data store are undefined.</para>
<para>An implementation may vary its allocation of internal component
resolution based on any <function>glRenderbufferStorage</function> parameter
(except <parameter>target</parameter>), but the allocation and chosen
internal format must not be a function of any other state and cannot be
changed once they are established. The actual resolution in bits of each
component of the allocated image can be queried with
<citerefentry><refentrytitle>glGetRenderbufferParameteriv</refentrytitle></citerefentry>.</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para><constant>GL_INVALID_ENUM</constant> is generated if
<parameter>target</parameter> is not <constant>GL_RENDERBUFFER</constant>.</para>
<para><constant>GL_INVALID_ENUM</constant> is generated if
<parameter>internalformat</parameter> is not an accepted format.</para>
<para><constant>GL_INVALID_VALUE</constant> is generated if
<parameter>width</parameter> or <parameter>height</parameter> is less than zero
or greater than <constant>GL_MAX_RENDERBUFFER_SIZE</constant>.</para>
<para><constant>GL_OUT_OF_MEMORY</constant> is generated if the implementation is
unable to create a data store with the requested
<parameter>width</parameter> and <parameter>height</parameter>.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if the reserved
renderbuffer object name 0 is bound.</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para><citerefentry><refentrytitle>glGetRenderbufferParameteriv</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para><citerefentry><refentrytitle>glBindRenderbuffer</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDeleteRenderbuffers</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glFramebufferRenderbuffer</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGenRenderbuffers</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetRenderbufferParameteriv</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glIsRenderbuffer</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2008 Khronos Group.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,113 @@
<?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="glSampleCoverage">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glSampleCoverage</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glSampleCoverage</refname>
<refpurpose>specify multisample coverage parameters</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glSampleCoverage</function></funcdef>
<paramdef>GLclampf <parameter>value</parameter></paramdef>
<paramdef>GLboolean <parameter>invert</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<!-- eqn: ignoring delim $$ -->
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>value</parameter></term>
<listitem>
<para>
Specify a single floating-point sample coverage value. The value is
clamped to the range
<inlineequation><mml:math>
<!-- eqn: [0 ,1]:-->
<mml:mfenced open="[" close="]">
<mml:mn>0</mml:mn>
<mml:mn>1</mml:mn>
</mml:mfenced>
</mml:math></inlineequation>.
The initial value is 1.0.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>invert</parameter></term>
<listitem>
<para>
Specify a single boolean value representing if the coverage masks should be
inverted. <constant>GL_TRUE</constant> and <constant>GL_FALSE</constant> are accepted. The initial value
is <constant>GL_FALSE</constant>.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
Multisampling samples a pixel multiple times at various
implementation-dependent subpixel locations to generate antialiasing
effects. Multisampling transparently antialiases points, lines, and polygons
if it is enabled.
</para>
<para>
<parameter>value</parameter> is used in constructing a temporary mask used in determining which
samples will be used in resolving the final fragment color. This mask is
bitwise-anded with the coverage mask generated from the multisampling
computation. If the <parameter>invert</parameter> flag is set, the temporary mask is inverted
(all bits flipped) and then the bitwise-and is computed.
</para>
<para>
If an implementation does not have any multisample buffers available, or
multisampling is disabled, rasterization occurs with only a single sample
computing a pixel's final RGB color.
</para>
<para>
Provided an implementation supports multisample buffers, and multisampling
is enabled, then a pixel's final color is generated by combining several
samples per pixel. Each sample contains color, depth, and stencil
information, allowing those operations to be performed on each sample.
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_SAMPLE_COVERAGE_VALUE</constant>
</para>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_SAMPLE_COVERAGE_INVERT</constant>
</para>
<para>
<citerefentry><refentrytitle>glIsEnabled</refentrytitle></citerefentry> with argument <constant>GL_SAMPLE_ALPHA_TO_COVERAGE</constant>
</para>
<para>
<citerefentry><refentrytitle>glIsEnabled</refentrytitle></citerefentry> with argument <constant>GL_SAMPLE_COVERAGE</constant>
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glEnable</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>

View file

@ -2,17 +2,13 @@
<!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="glScissor">
<refentryinfo>
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
<copyright>
<year>2010-2013</year>
<holder>Khronos Group</holder>
</copyright>
</refentryinfo>
<refmeta>
</refmetainfo>
<refentrytitle>glScissor</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
@ -102,12 +98,11 @@
<citerefentry><refentrytitle>glViewport</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="Copyright"><title>Copyright</title>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 1991-2006 Silicon Graphics, Inc.
Copyright <trademark class="copyright"></trademark> 2010-2013 Khronos Group.
This document is licensed under the SGI Free Software B License.
For details, see
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>

View file

@ -0,0 +1,151 @@
<?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="glShaderBinary">
<refmeta>
<refentrytitle>glShaderBinary</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glShaderBinary</refname>
<refpurpose>load a precompiled shader binary</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glShaderBinary</function></funcdef>
<paramdef>GLsizei <parameter>n</parameter></paramdef>
<paramdef>const GLuint *<parameter>shaders</parameter></paramdef>
<paramdef>GLenum <parameter>binaryformat</parameter></paramdef>
<paramdef>const void *<parameter>binary</parameter></paramdef>
<paramdef>GLsizei <parameter>length</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>n</parameter></term>
<listitem>
<para>Specifies the number of shader object handles
present in <parameter>shaders</parameter>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>shaders</parameter></term>
<listitem>
<para>Specifies a pointer to an array of shader object handles into
which the shader binary will be loaded.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>binaryformat</parameter></term>
<listitem>
<para>Specifies the shader binary format.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>binary</parameter></term>
<listitem>
<para>Specifies a pointer to the shader binary data in client memory.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>length</parameter></term>
<listitem>
<para>Specifies the length of the shader binary data in bytes.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>For implementations that support them,
<function>glShaderBinary</function> loads precompiled shader binaries.
<parameter>shaders</parameter> contains a list of <parameter>n</parameter>
shader object handles. Each handle refers to a unique shader type (vertex shader or
fragment shader). <parameter>binary</parameter> points to precompiled binary
shader code in client memory, and <parameter>binaryformat</parameter> denotes
the format of the pre-compiled code.</para>
<para>The binary image is decoded according to the extension
specification defining the specified <parameter>binaryformat</parameter>.
OpenGL ES defines no specific binary formats, but does provide a mechanism
to obtain symbolic constants for such formats provided by extensions. The
number of shader binary formats supported can be obtained by querying the
value of <constant>GL_NUM_SHADER_BINARY_FORMATS</constant>. The list of
specific binary formats supported can be obtained by querying the value of
<constant>GL_SHADER_BINARY_FORMATS</constant>.</para>
<para>Depending on the types of the shader objects in <parameter>shaders</parameter>,
<function>glShaderBinary</function> will individually load binary vertex or
fragment shaders, or load an executable binary that contains an optimized
pair of vertex and fragment shaders stored in the same binary.</para>
<para>If <function>glShaderBinary</function> fails, the old state of shader
objects for which the binary was being loaded will not be restored.</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>Shader binary support is optional and thus must be queried
before use by calling <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>
with arguments <constant>GL_NUM_SHADER_BINARY_FORMATS</constant> and
<constant>GL_SHADER_BINARY_FORMATS</constant>. <function>glShaderBinary</function>
generates <constant>GL_INVALID_OPERATION</constant> on implementations
that do not support any shader binary formats. Such implementations instead
offer the <citerefentry><refentrytitle>glShaderSource</refentrytitle></citerefentry>
alternative for supplying OpenGL ES Shading Language shader source for compilation.</para>
<para>If shader binary formats are supported, then an implementation may
require that an optimized pair of vertex and fragment shader
binaries that were compiled together to be specified to
<citerefentry><refentrytitle>glLinkProgram</refentrytitle></citerefentry>.
Not specifying an optimized pair my cause
<citerefentry><refentrytitle>glLinkProgram</refentrytitle></citerefentry>
to fail. Such a restriction, if it exists, will be documented in
the extension specification defining <parameter>binaryformat</parameter>.</para>
<para>OpenGL copies the shader binary data when
<function>glShaderBinary</function> is called, so an application
may free its copy of the data immediately after
the function returns.</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para><constant>GL_INVALID_ENUM</constant> is generated if
<parameter>binaryformat</parameter> is not a supported format returned in
<constant>GL_SHADER_BINARY_FORMATS</constant>.</para>
<para><constant>GL_INVALID_VALUE</constant> is generated if any value in
<parameter>shaders</parameter> is not a vlue generated by OpenGL.</para>
<para><constant>GL_INVALID_VALUE</constant> is generated if the format of the
data pointed to by <parameter>binary</parameter> does not match
<parameter>binaryformat</parameter>.</para>
<para><constant>GL_INVALID_VALUE</constant> is generated if <parameter>n</parameter>
or <parameter>length</parameter> is negative.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if any value in
<parameter>shaders</parameter> is not a shader object, or if there
is more than one vertex shader object handle or more than one fragment shader
object handle in <parameter>shaders</parameter>.</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para><citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>
with arguments <constant>GL_NUM_SHADER_BINARY_FORMATS</constant>
and <constant>GL_SHADER_BINARY_FORMATS</constant></para>
<para><citerefentry><refentrytitle>glIsShader</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para><citerefentry><refentrytitle>glCreateShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDeleteShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glLinkProgram</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2008 Khronos Group.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -0,0 +1,136 @@
<?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="glShaderSource">
<refmeta>
<refentrytitle>glShaderSource</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glShaderSource</refname>
<refpurpose>replace the source code in a shader object</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glShaderSource</function></funcdef>
<paramdef>GLuint <parameter>shader</parameter></paramdef>
<paramdef>GLsizei <parameter>count</parameter></paramdef>
<paramdef>const GLchar * const *<parameter>string</parameter></paramdef>
<paramdef>const GLint *<parameter>length</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>shader</parameter></term>
<listitem>
<para>Specifies the handle of the shader object
whose source code is to be replaced.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>count</parameter></term>
<listitem>
<para>Specifies the number of elements in the
<parameter>string</parameter> and
<parameter>length</parameter>
arrays.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>string</parameter></term>
<listitem>
<para>Specifies an array of pointers to strings
containing the source code to be loaded into the
shader.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>length</parameter></term>
<listitem>
<para>Specifies an array of string lengths.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>For implementations that support a shader compiler,
<function>glShaderSource</function> sets the source code
in <parameter>shader</parameter> to the source code in the array
of strings specified by <parameter>string</parameter>. Any
source code previously stored in the shader object is completely
replaced. The number of strings in the array is specified by
<parameter>count</parameter>. If <parameter>length</parameter>
is <constant>NULL</constant>, each string is assumed to be null
terminated. If <parameter>length</parameter> is a value other
than <constant>NULL</constant>, it points to an array containing
a string length for each of the corresponding elements of
<parameter>string</parameter>. Each element in the
<parameter>length</parameter> array may contain the length of
the corresponding string (the null character is not counted as
part of the string length) or a value less than 0 to indicate
that the string is null terminated. The source code strings are
not scanned or parsed at this time; they are simply copied into
the specified shader object.</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>Shader compiler support is optional, and thus must be queried
before use by calling <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>
with argument <constant>GL_SHADER_COMPILER</constant>. <function>glShaderSource</function>,
<citerefentry><refentrytitle>glCompileShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetShaderPrecisionFormat</refentrytitle></citerefentry>, and
<citerefentry><refentrytitle>glReleaseShaderCompiler</refentrytitle></citerefentry> will
each generate <constant>GL_INVALID_OPERATION</constant> on implementations
that do not support a shader compiler. Such implementations instead offer the
<citerefentry><refentrytitle>glShaderBinary</refentrytitle></citerefentry>
alternative for supplying a pre-compiled shader binary.</para>
<para>OpenGL copies the shader source code strings when
<function>glShaderSource</function> is called, so an application
may free its copy of the source code strings immediately after
the function returns.</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
a shader compiler is not supported.</para>
<para><constant>GL_INVALID_VALUE</constant> is generated if
<parameter>shader</parameter> is not a value generated by
OpenGL.</para>
<para><constant>GL_INVALID_OPERATION</constant> is generated if
<parameter>shader</parameter> is not a shader object.</para>
<para><constant>GL_INVALID_VALUE</constant> is generated if
<parameter>count</parameter> is less than 0.</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para><citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>
with argument <constant>GL_SHADER_COMPILER</constant></para>
<para><citerefentry><refentrytitle>glGetShaderiv</refentrytitle></citerefentry>
with arguments <parameter>shader</parameter> and
<constant>GL_SHADER_SOURCE_LENGTH</constant></para>
<para><citerefentry><refentrytitle>glGetShaderSource</refentrytitle></citerefentry>
with argument <parameter>shader</parameter></para>
<para><citerefentry><refentrytitle>glIsShader</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para><citerefentry><refentrytitle>glCompileShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glGetShaderPrecisionFormat</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCreateShader</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDeleteShader</refentrytitle></citerefentry></para>
</refsect1>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2003-2005 3Dlabs Inc. Ltd.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
<ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
</para>
</refsect1>
</refentry>

View file

@ -2,17 +2,13 @@
<!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="glStencilFunc">
<refentryinfo>
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
<copyright>
<year>2010-2013</year>
<holder>Khronos Group</holder>
</copyright>
</refentryinfo>
<refmeta>
</refmetainfo>
<refentrytitle>glStencilFunc</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
@ -20,6 +16,7 @@
<refname>glStencilFunc</refname>
<refpurpose>set front and back function and reference value for stencil testing</refpurpose>
</refnamediv>
<!-- eqn: ignoring delim $$ -->
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
@ -277,7 +274,6 @@
<citerefentry><refentrytitle>glBlendFunc</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDepthFunc</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glEnable</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glLogicOp</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glStencilFuncSeparate</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glStencilMask</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glStencilMaskSeparate</refentrytitle></citerefentry>,
@ -285,12 +281,11 @@
<citerefentry><refentrytitle>glStencilOpSeparate</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="Copyright"><title>Copyright</title>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 1991-2006 Silicon Graphics, Inc.
Copyright <trademark class="copyright"></trademark> 2010-2013 Khronos Group.
This document is licensed under the SGI Free Software B License.
For details, see
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>

View file

@ -2,13 +2,13 @@
<!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="glStencilFuncSeparate">
<refentryinfo>
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refentryinfo>
<refmeta>
</refmetainfo>
<refentrytitle>glStencilFuncSeparate</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
@ -16,6 +16,7 @@
<refname>glStencilFuncSeparate</refname>
<refpurpose>set front and/or back function and reference value for stencil testing</refpurpose>
</refnamediv>
<!-- eqn: ignoring delim $$ -->
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
@ -260,6 +261,11 @@
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>face</parameter> is
not <constant>GL_FRONT</constant>, <constant>GL_BACK</constant>, or
<constant>GL_FRONT_AND_BACK</constant>.
</para>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>func</parameter> is not one of the eight
accepted values.
@ -282,7 +288,6 @@
<citerefentry><refentrytitle>glBlendFunc</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDepthFunc</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glEnable</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glLogicOp</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glStencilFunc</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glStencilMask</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glStencilMaskSeparate</refentrytitle></citerefentry>,
@ -290,7 +295,7 @@
<citerefentry><refentrytitle>glStencilOpSeparate</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="Copyright"><title>Copyright</title>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2006 Khronos Group.
This material may be distributed subject to the terms and conditions set forth in

View file

@ -2,17 +2,13 @@
<!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="glStencilMask">
<refentryinfo>
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
<copyright>
<year>2010-2013</year>
<holder>Khronos Group</holder>
</copyright>
</refentryinfo>
<refmeta>
</refmetainfo>
<refentrytitle>glStencilMask</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
@ -28,6 +24,7 @@
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<!-- eqn: ignoring delim $$ -->
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
@ -91,12 +88,11 @@
<citerefentry><refentrytitle>glStencilOpSeparate</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="Copyright"><title>Copyright</title>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 1991-2006 Silicon Graphics, Inc.
Copyright <trademark class="copyright"></trademark> 2010-2013 Khronos Group.
This document is licensed under the SGI Free Software B License.
For details, see
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>

View file

@ -2,13 +2,13 @@
<!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="glStencilMaskSeparate">
<refentryinfo>
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refentryinfo>
<refmeta>
</refmetainfo>
<refentrytitle>glStencilMaskSeparate</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
@ -25,6 +25,7 @@
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<!-- eqn: ignoring delim $$ -->
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
@ -78,7 +79,9 @@
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>face</parameter> is not one of the accepted tokens.
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>face</parameter> is
not <constant>GL_FRONT</constant>, <constant>GL_BACK</constant>, or
<constant>GL_FRONT_AND_BACK</constant>.
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
@ -99,7 +102,7 @@
<citerefentry><refentrytitle>glStencilOpSeparate</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="Copyright"><title>Copyright</title>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2006 Khronos Group.
This material may be distributed subject to the terms and conditions set forth in

View file

@ -2,17 +2,13 @@
<!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="glStencilOp">
<refentryinfo>
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
<copyright>
<year>2010-2013</year>
<holder>Khronos Group</holder>
</copyright>
</refentryinfo>
<refmeta>
</refmetainfo>
<refentrytitle>glStencilOp</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
@ -20,6 +16,7 @@
<refname>glStencilOp</refname>
<refpurpose>set front and back stencil test actions</refpurpose>
</refnamediv>
<!-- eqn: ignoring delim $$ -->
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
@ -191,7 +188,7 @@
When incremented and decremented,
values are clamped to 0 and
<inlineequation><mml:math>
<!-- eqn: 2 sup n - 1: -->
<!-- eqn: 2 sup n - 1:-->
<mml:mrow>
<mml:msup><mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">n</mml:mi>
@ -234,7 +231,8 @@
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>sfail</parameter>,
<parameter>dpfail</parameter>, or <parameter>dppass</parameter> is any value other than the defined constant values.
<parameter>dpfail</parameter>, or <parameter>dppass</parameter> is any value other
than the eight defined symbolic constant values.
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
@ -254,7 +252,6 @@
<citerefentry><refentrytitle>glBlendFunc</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDepthFunc</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glEnable</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glLogicOp</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glStencilFunc</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glStencilFuncSeparate</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glStencilMask</refentrytitle></citerefentry>,
@ -262,12 +259,11 @@
<citerefentry><refentrytitle>glStencilOpSeparate</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="Copyright"><title>Copyright</title>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 1991-2006 Silicon Graphics, Inc.
Copyright <trademark class="copyright"></trademark> 2010-2013 Khronos Group.
This document is licensed under the SGI Free Software B License.
For details, see
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>

View file

@ -2,13 +2,13 @@
<!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="glStencilOpSeparate">
<refentryinfo>
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refentryinfo>
<refmeta>
</refmetainfo>
<refentrytitle>glStencilOpSeparate</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
@ -16,6 +16,7 @@
<refname>glStencilOpSeparate</refname>
<refpurpose>set front and/or back stencil test actions</refpurpose>
</refnamediv>
<!-- eqn: ignoring delim $$ -->
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
@ -242,7 +243,8 @@
</para>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>sfail</parameter>,
<parameter>dpfail</parameter>, or <parameter>dppass</parameter> is any value other than the eight defined constant values.
<parameter>dpfail</parameter>, or <parameter>dppass</parameter> is any value other
than the eight defined symbolic constant values.
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
@ -262,7 +264,6 @@
<citerefentry><refentrytitle>glBlendFunc</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glDepthFunc</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glEnable</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glLogicOp</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glStencilFunc</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glStencilFuncSeparate</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glStencilMask</refentrytitle></citerefentry>,
@ -270,7 +271,7 @@
<citerefentry><refentrytitle>glStencilOp</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="Copyright"><title>Copyright</title>
<refsect1 id="copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 2006 Khronos Group.
This material may be distributed subject to the terms and conditions set forth in

View file

@ -0,0 +1,414 @@
<?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="glTexImage2D">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glTexImage2D</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glTexImage2D</refname>
<refpurpose>specify a two-dimensional texture image</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glTexImage2D</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>GLint <parameter>level</parameter></paramdef>
<paramdef>GLint <parameter>internalformat</parameter></paramdef>
<paramdef>GLsizei <parameter>width</parameter></paramdef>
<paramdef>GLsizei <parameter>height</parameter></paramdef>
<paramdef>GLint <parameter>border</parameter></paramdef>
<paramdef>GLenum <parameter>format</parameter></paramdef>
<paramdef>GLenum <parameter>type</parameter></paramdef>
<paramdef>const GLvoid * <parameter>data</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<!-- eqn: ignoring delim $$ -->
<para>
</para>
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>target</parameter></term>
<listitem>
<para>
Specifies the target texture of the active texture unit.
Must be <constant>GL_TEXTURE_2D</constant>,
<constant>GL_TEXTURE_CUBE_MAP_POSITIVE_X</constant>,
<constant>GL_TEXTURE_CUBE_MAP_NEGATIVE_X</constant>,
<constant>GL_TEXTURE_CUBE_MAP_POSITIVE_Y</constant>,
<constant>GL_TEXTURE_CUBE_MAP_NEGATIVE_Y</constant>,
<constant>GL_TEXTURE_CUBE_MAP_POSITIVE_Z</constant>, or
<constant>GL_TEXTURE_CUBE_MAP_NEGATIVE_Z</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>level</parameter></term>
<listitem>
<para>
Specifies the level-of-detail number.
Level 0 is the base image level.
Level <emphasis>n</emphasis> is the <emphasis>n</emphasis>th mipmap reduction image.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>internalformat</parameter></term>
<listitem>
<para>
Specifies the internal format of the texture.
Must be one of the following symbolic constants:
<constant>GL_ALPHA</constant>,
<constant>GL_LUMINANCE</constant>,
<constant>GL_LUMINANCE_ALPHA</constant>,
<constant>GL_RGB</constant>,
<constant>GL_RGBA</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>width</parameter></term>
<listitem>
<para>
Specifies the width of the texture image.
All implementations support 2D texture images that are at least 64 texels
wide and cube-mapped texture images that are at least 16 texels wide.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>height</parameter></term>
<listitem>
<para>
Specifies the height of the texture image
All implementations support 2D texture images that are at least 64 texels
high and cube-mapped texture images that are at least 16 texels high.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>border</parameter></term>
<listitem>
<para>
Specifies the width of the border.
Must be 0.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>format</parameter></term>
<listitem>
<para>
Specifies the format of the texel data. Must match <parameter>internalformat</parameter>.
The following symbolic values are accepted:
<constant>GL_ALPHA</constant>,
<constant>GL_RGB</constant>,
<constant>GL_RGBA</constant>,
<constant>GL_LUMINANCE</constant>, and
<constant>GL_LUMINANCE_ALPHA</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>type</parameter></term>
<listitem>
<para>
Specifies the data type of the texel data.
The following symbolic values are accepted:
<constant>GL_UNSIGNED_BYTE</constant>,
<constant>GL_UNSIGNED_SHORT_5_6_5</constant>,
<constant>GL_UNSIGNED_SHORT_4_4_4_4</constant>, and
<constant>GL_UNSIGNED_SHORT_5_5_5_1</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>data</parameter></term>
<listitem>
<para>
Specifies a pointer to the image data in memory.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
Texturing maps a portion of a specified texture image
onto each graphical primitive for which texturing is
active. Texturing is active when the current fragment shader or
vertex shader makes use of built-in texture lookup
functions.
</para>
<para>
To define texture images, call <function>glTexImage2D</function>.
The arguments describe the parameters of the texture image,
such as height,
width,
level-of-detail number
(see <citerefentry><refentrytitle>glTexParameter</refentrytitle></citerefentry>),
and format.
The last three arguments describe how the image is represented in memory.
</para>
<para>
Data is read from <parameter>data</parameter> as a sequence of unsigned bytes or shorts,
depending on <parameter>type</parameter>.
When <parameter>type</parameter> is <constant>GL_UNSIGNED_BYTE</constant>,
each of the bytes is interpreted as one color component.
When <parameter>type</parameter> is one of
<constant>GL_UNSIGNED_SHORT_5_6_5</constant>, <constant>GL_UNSIGNED_SHORT_4_4_4_4</constant>, or
<constant>GL_UNSIGNED_SHORT_5_5_5_1</constant>, each unsigned short value is interpreted as
containing all the components for a single texel, with the color
components arranged according to <parameter>format</parameter>.
Color components are treated as groups of one, two, three, or four
values, again based on <parameter>format</parameter>. Groups of
components are referred to as texels.
</para>
<para>
<inlineequation><mml:math>
<!-- eqn: width times height:-->
<mml:mrow>
<mml:mi mathvariant="italic">width</mml:mi>
<mml:mo>&times;</mml:mo>
<mml:mi mathvariant="italic">height</mml:mi>
</mml:mrow>
</mml:math></inlineequation>
texels are read from memory,
starting at location <parameter>data</parameter>.
By default, these texels are taken from adjacent memory locations,
except that after all <parameter>width</parameter> texels are read,
the read pointer is advanced to the next four-byte boundary.
The four-byte row alignment is specified by <citerefentry><refentrytitle>glPixelStorei</refentrytitle></citerefentry> with
argument <constant>GL_UNPACK_ALIGNMENT</constant>,
and it can be set to one, two, four, or eight bytes.
</para>
<para>
The first element corresponds to the lower left corner of the texture
image.
Subsequent elements progress left-to-right through the remaining texels
in the lowest row of the texture image, and then in successively higher
rows of the texture image.
The final element corresponds to the upper right corner of the texture
image.
</para>
<para>
<parameter>format</parameter> determines the composition of each element in <parameter>data</parameter>.
It can assume one of these symbolic values:
</para>
<variablelist>
<varlistentry>
<term><constant>GL_ALPHA</constant></term>
<listitem>
<para>
Each element is a single alpha component.
The GL converts it to floating point and assembles it into an RGBA element
by attaching 0 for red, green, and blue.
Each component is then clamped to the range [0,1].
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_RGB</constant></term>
<listitem>
<para>
Each element is an RGB triple.
The GL converts it to floating point and assembles it into an RGBA element
by attaching 1 for alpha.
Each component is then clamped to the range [0,1].
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_RGBA</constant></term>
<listitem>
<para>
Each element contains all four components. The GL converts it to floating point, then
each component is clamped to the range [0,1].
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_LUMINANCE</constant></term>
<listitem>
<para>
Each element is a single luminance value.
The GL converts it to floating point,
then assembles it into an RGBA element by replicating the luminance value
three times for red, green, and blue and attaching 1 for alpha.
Each component is then clamped to the range [0,1].
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GL_LUMINANCE_ALPHA</constant></term>
<listitem>
<para>
Each element is a luminance/alpha pair.
The GL converts it to floating point,
then assembles it into an RGBA element by replicating the luminance value
three times for red, green, and blue.
Each component is then clamped to the range [0,1].
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
Color components are converted to floating point based on the <parameter>type</parameter>.
When <parameter>type</parameter> is <constant>GL_UNSIGNED_BYTE</constant>,
each component is divided by
<inlineequation><mml:math>
<!-- eqn: 2 sup 8 - 1:-->
<mml:mrow>
<mml:msup><mml:mn>2</mml:mn>
<mml:mn>8</mml:mn>
</mml:msup>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math></inlineequation>.
When <parameter>type</parameter> is <constant>GL_UNSIGNED_SHORT_5_6_5</constant>,
<constant>GL_UNSIGNED_SHORT_4_4_4_4</constant>, or <constant>GL_UNSIGNED_SHORT_5_5_5_1</constant>,
each component is divided by
<inlineequation><mml:math>
<!-- eqn: 2 sup N - 1:-->
<mml:mrow>
<mml:msup><mml:mn>2</mml:mn>
<mml:mi>N</mml:mi>
</mml:msup>
<mml:mo>-</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math></inlineequation>,
where <inlineequation><mml:math><mml:mi mathvariant="italic">N</mml:mi></mml:math></inlineequation>
is the number of bits in the bitfield.
</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>
<parameter>internalformat</parameter> must match <parameter>format</parameter>.
No conversion between formats is supported during texture image processing.
<parameter>type</parameter> may be used as a hint to specify how much
precision is desired, but a GL implementation may choose to store the texture
array at any internal resolution it chooses.
</para>
<para>
<parameter>data</parameter> may be a null pointer.
In this case, texture memory is
allocated to accommodate a texture of width <parameter>width</parameter> and height <parameter>height</parameter>.
You can then download subtextures to initialize this
texture memory.
The image is undefined if the user tries to apply
an uninitialized portion of the texture image to a primitive.
</para>
<para>
<function>glTexImage2D</function>
specifies a two-dimensional or cube-map texture for the current 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>target</parameter> is not <constant>GL_TEXTURE_2D</constant>,
<constant>GL_TEXTURE_CUBE_MAP_POSITIVE_X</constant>,
<constant>GL_TEXTURE_CUBE_MAP_NEGATIVE_X</constant>,
<constant>GL_TEXTURE_CUBE_MAP_POSITIVE_Y</constant>,
<constant>GL_TEXTURE_CUBE_MAP_NEGATIVE_Y</constant>,
<constant>GL_TEXTURE_CUBE_MAP_POSITIVE_Z</constant>, or
<constant>GL_TEXTURE_CUBE_MAP_NEGATIVE_Z</constant>.
</para>
<para>
<constant>GL_INVALID_ENUM</constant> is generated if <parameter>format</parameter>
or <parameter>type</parameter> is not an accepted value.
</para>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if <parameter>target</parameter> is one of the six cube map 2D image targets and the width and height parameters are not equal.
</para>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if <parameter>level</parameter> is less than 0.
</para>
<para>
<constant>GL_INVALID_VALUE</constant> may be generated if <parameter>level</parameter> is greater than
<inlineequation><mml:math>
<!-- eqn: log sub 2 (max):-->
<mml:mrow>
<mml:msub><mml:mi mathvariant="italic">log</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&af;</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mi mathvariant="italic">max</mml:mi>
</mml:mfenced>
</mml:mrow>
</mml:math></inlineequation>,
where <emphasis>max</emphasis> is the returned value of
<constant>GL_MAX_TEXTURE_SIZE</constant> when <parameter>target</parameter>
is <constant>GL_TEXTURE_2D</constant> or <constant>GL_MAX_CUBE_MAP_TEXTURE_SIZE</constant> when
<parameter>target</parameter> is not <constant>GL_TEXTURE_2D</constant>.
</para>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if <parameter>internalformat</parameter> is not an
accepted format.
</para>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if <parameter>width</parameter> or <parameter>height</parameter> is less than 0
or greater than <constant>GL_MAX_TEXTURE_SIZE</constant> when <parameter>target</parameter>
is <constant>GL_TEXTURE_2D</constant> or <constant>GL_MAX_CUBE_MAP_TEXTURE_SIZE</constant> when
<parameter>target</parameter> is not <constant>GL_TEXTURE_2D</constant>.
</para>
<para>
<constant>GL_INVALID_VALUE</constant> is generated if <parameter>border</parameter> is not 0.
</para>
<para>
<constant>GL_INVALID_OPERATION</constant> is generated if <parameter>format</parameter> does
not match <parameter>internalformat</parameter>.
</para>
<para>
<constant>GL_INVALID_OPERATION</constant> is generated if <parameter>type</parameter> is
<constant>GL_UNSIGNED_SHORT_5_6_5</constant>
and <parameter>format</parameter> is not <constant>GL_RGB</constant>.
</para>
<para>
<constant>GL_INVALID_OPERATION</constant> is generated if <parameter>type</parameter> is
<constant>GL_UNSIGNED_SHORT_4_4_4_4</constant> or
<constant>GL_UNSIGNED_SHORT_5_5_5_1</constant>
and <parameter>format</parameter> is not <constant>GL_RGBA</constant>.
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>
with argument <constant>GL_MAX_TEXTURE_SIZE</constant> or
<constant>GL_MAX_CUBE_MAP_TEXTURE_SIZE</constant>
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glActiveTexture</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCompressedTexImage2D</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCompressedTexSubImage2D</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCopyTexImage2D</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glCopyTexSubImage2D</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glPixelStorei</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glTexSubImage2D</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glTexParameter</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>

Some files were not shown because too many files have changed in this diff Show more