<?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>Deletes 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>glGetShader</refentrytitle></citerefentry>
	with arguments <parameter>shader</parameter> and
	<constant>GL_DELETE_STATUS</constant>.</para>
    </refsect1>
    <refsect1 id="notes"><title>Notes</title>
	<para><function>glDeleteShader</function> is available only if
	the GL version is 2.0 or greater.</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
	<function>glDeleteShader</function> is executed between the
	execution of
	<citerefentry><refentrytitle>glBegin</refentrytitle></citerefentry>
	and the corresponding execution of
	<citerefentry><refentrytitle>glEnd</refentrytitle></citerefentry>.</para>
    </refsect1>
    <refsect1 id="associatedgets"><title>Associated Gets</title>
	<para><citerefentry><refentrytitle>glGetAttachedShaders</refentrytitle></citerefentry>
	with the program object to be queried</para>

	<para><citerefentry><refentrytitle>glGetShader</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>
