<?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>
