<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:base="" xml:id="eglReleaseThread">
    <info>
         <copyright>
             <year>2003-2014</year>
             <holder>The Khronos Group Inc.</holder>
         </copyright>
    </info>
    <refmeta>
        <refentrytitle>eglReleaseThread</refentrytitle>
        <manvolnum>3G</manvolnum>
    </refmeta>
    <refnamediv>
        <refname>eglReleaseThread</refname>
        <refpurpose>Release EGL per-thread state</refpurpose>
    </refnamediv>
    <refsynopsisdiv><title>C Specification</title>
        <funcsynopsis>
            <funcprototype>
                <funcdef>EGLBoolean <function>eglReleaseThread</function></funcdef>
                <void/>
            </funcprototype>
        </funcsynopsis>
    </refsynopsisdiv>
    <refsect1 xml:id="description"><title>Description</title>
        <para>
            <function>eglReleaseThread</function> returns the EGL to its
            state at thread initialization, releasing all per-thread
            state including the error status returned by
            <command>eglGetError</command>, the currently bound
            rendering API defined by <command>eglBindAPI</command>, and
            the current contexts for each supported client API. The
            overhead of maintaining this state may be objectionable in
            applications which create and destroy many threads, but only
            call EGL or client APIs in a few of those threads at any
            given time.
        </para>
        <para>
            <constant>EGL_TRUE</constant> is returned on success, and the
            following actions are taken:
        </para>
        <itemizedlist>
            <listitem>
                <para>
                    For each client API supported by EGL, if there is a
                    currently bound context, that context is released.
                    This is equivalent to calling
                    <function>eglMakeCurrent</function> with ctx set to
                    <constant>EGL_NO_CONTEXT</constant> and both draw
                    and read set to <constant>EGL_NO_SURFACE</constant>
                    (see section 3.7.3).
                </para>
            </listitem>
            <listitem>
                <para>
                    The current rendering API is reset to its value at
                    thread initialization (see
                    <command>eglBindAPI</command>).
                </para>
            </listitem>
            <listitem>
                <para>
                    Any additional implementation-dependent per-thread
                    state maintained by EGL is marked for deletion as
                    soon as possible.
                </para>
            </listitem>
        </itemizedlist>
        <para>
            <function>eglReleaseThread</function> may be called in any
            thread at any time, and may be called more than once in a
            single thread. The initialization status of EGL (see section
            3.2) is not affected by releasing the thread; only
            per-thread state is affected.
        </para>
        <para>
            Resources explicitly allocated by calls to EGL, such as
            contexts, surfaces, and configuration lists, are not
            affected by <function>eglReleaseThread</function>. Such
            resources belong not to the thread, but to the EGL
            implementation as a whole.
        </para>
    </refsect1>
    <refsect1 xml:id="notes"><title>Notes</title>
        <para>
            <function>eglReleaseThread</function> is supported only if the
            EGL version is 1.2 or greater.
        </para>
        <para>
            Applications may call other EGL routines from a thread
            following <function>eglReleaseThread</function>, but any
            such call may reallocate the EGL state previously released.
            In particular, calling <function>eglGetError</function>
            immediately following a successful call to
            <function>eglReleaseThread</function> will return
            <constant>EGL_SUCCESS</constant>, but will also result in
            reallocating per-thread state.
        </para>
    </refsect1>
    <refsect1 xml:id="errors"><title>Errors</title>
        <para>
            <constant>EGL_FALSE</constant> is returned on failure,
            <constant>EGL_TRUE</constant> otherwise. There are no
            defined conditions under which failure will occur. Even if
            EGL is not initialized on any EGLDisplay,
            <function>eglReleaseThread</function> should succeed.
        </para>
        <para>
            However, platform-dependent failures may be signaled through
            the value returned from <function>eglGetError</function>.
            Unless the platform-dependent behavior is known, a failed
            call to <function>eglReleaseThread</function> should be
            assumed to leave the current rendering API, and the
            currently bound contexts for each supported client API, in
            an unknown state.
        </para>
    </refsect1>
    <refsect1 xml:id="seealso"><title>See Also</title>
        <para>
            <citerefentry><refentrytitle>eglBindAPI</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>eglGetError</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>eglMakeCurrent</refentrytitle></citerefentry>
        </para>
    </refsect1>
    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="copyright.xml"/>
</refentry>
