<?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 xml:base="" id="eglWaitGL">
    <refentryinfo>
         <copyright>
             <year>2003-2014</year>
             <holder>The Khronos Group Inc.</holder>
         </copyright>
    </refentryinfo>
    <refmeta>
        <refentrytitle>eglWaitGL</refentrytitle>
        <manvolnum>3G</manvolnum>
    </refmeta>
    <refnamediv>
        <refname>eglWaitGL</refname>
        <refpurpose>
            Complete GL execution prior to subsequent native rendering
            calls
        </refpurpose>
    </refnamediv>
    <refsynopsisdiv>
        <title>C Specification</title>
        <funcsynopsis>
            <funcprototype>
                <funcdef>EGLBoolean <function>eglWaitGL</function></funcdef>
                <void/>
            </funcprototype>
        </funcsynopsis>
    </refsynopsisdiv>
    <refsect1 id="description"><title>Description</title>
        <para>
            All OpenGL ES rendering calls for the currently bound OpenGL
            ES context made prior to <function>eglWaitGL</function> are
            guaranteed to be executed before native rendering calls made
            after <function>eglWaitGL</function>. The same result can be
            achieved using
            <citerefentry><refentrytitle>glFinish</refentrytitle></citerefentry>.
        </para>
        <para>
            <function>eglWaitGL</function> is ignored if there is no
            current EGL rendering context for OpenGL ES.
        </para>
    </refsect1>
    <refsect1 id="notes"><title>Notes</title>
        <para>
            <function>eglWaitClient</function> is supported only if the
            EGL version is 1.2 or greater.
        </para>
        <para>
            <function>eglWaitClient</function> is a generalized version
            of <function>eglWaitGL</function>, supporting multiple
            client APIs. For backwards compatibility,
            <function>eglWaitGL</function> continues to be supported and
            is equivalent to the series of commands
        </para>
        <programlisting>
              EGLenum api = <function>eglQueryAPI</function>();
              <function>eglBindAPI</function>(<constant>EGL_OPENGL_ES_API</constant>);
              <function>eglWaitClient</function>();
              <function>eglBindAPI</function>(api);
        </programlisting>
    </refsect1>
    <refsect1 id="errors"><title>Errors</title>
        <para>
            <constant>EGL_FALSE</constant> is returned if
            <function>eglWaitGL</function> fails,
            <constant>EGL_TRUE</constant> otherwise.
        </para>
        <para>
            <constant>EGL_BAD_CURRENT_SURFACE</constant> is generated if
            the surface associated with the current context has a native
            window or pixmap, and that window or pixmap is no longer
            valid.
        </para>
    </refsect1>
    <refsect1 id="seealso"><title>See Also</title>
        <para>
            <citerefentry><refentrytitle>glFinish</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>eglWaitClient</refentrytitle></citerefentry>
            <citerefentry><refentrytitle>eglWaitNative</refentrytitle></citerefentry>
        </para>
    </refsect1>
    <refsect3 id="Copyright"><title></title>
        <!-- Content included from copyright.inc.xsl -->
        <imageobject>
                <imagedata fileref="KhronosLogo.jpg" format="jpg" />
        </imageobject>
        <para />
    </refsect3>
</refentry>
