<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xhtml1-transitional.dtd">
<!-- saved from url=(0013)about:internet -->
<?xml-stylesheet type="text/xsl" href="mathml.xsl"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:pref="http://www.w3.org/2002/Math/preference" pref:renderer="mathplayer-dl"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>eglMakeCurrent</title><meta name="generator" content="DocBook XSL Stylesheets V1.74.0" /></head><body><div class="refentry" lang="en" xml:lang="en"><a id="eglMakeCurrent"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>eglMakeCurrent — 
            attach an EGL rendering context to EGL surfaces
        </p></div><div class="refsynopsisdiv"><h2>C Specification</h2><div class="funcsynopsis"><table border="0" summary="Function synopsis" cellspacing="0" cellpadding="0" class="funcprototype-table"><tr><td><code class="funcdef">EGLBoolean <b class="fsfunc">eglMakeCurrent</b>(</code></td><td>EGLDisplay <var class="pdparam">display</var>, </td></tr><tr><td> </td><td>EGLSurface <var class="pdparam">draw</var>, </td></tr><tr><td> </td><td>EGLSurface <var class="pdparam">read</var>, </td></tr><tr><td> </td><td>EGLContext <var class="pdparam">context</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1" lang="en" xml:lang="en"><a id="parameters"></a><h2>Parameters</h2><div class="variablelist"><dl><dt><span class="term"><em class="parameter"><code>display</code></em></span></dt><dd><p>Specifies the <acronym class="acronym">EGL</acronym> display connection.</p></dd><dt><span class="term"><em class="parameter"><code>draw</code></em></span></dt><dd><p>Specifies the <acronym class="acronym">EGL</acronym> draw surface.</p></dd><dt><span class="term"><em class="parameter"><code>read</code></em></span></dt><dd><p>Specifies the <acronym class="acronym">EGL</acronym> read surface.</p></dd><dt><span class="term"><em class="parameter"><code>context</code></em></span></dt><dd><p>Specifies the <acronym class="acronym">EGL</acronym> rendering context
                        to be attached to the surfaces.
                    </p></dd></dl></div></div><div class="refsect1" lang="en" xml:lang="en"><a id="description"></a><h2>Description</h2><p>
            <code class="function">eglMakeCurrent</code> binds <em class="parameter"><code>context</code></em>
            to the current rendering thread and to the <em class="parameter"><code>draw</code></em>
            and <em class="parameter"><code>read</code></em> surfaces. <em class="parameter"><code>draw</code></em>
            is used for all GL operations except for any pixel data read back
            (<a class="citerefentry" href="glReadPixels.xml"><span class="citerefentry"><span class="refentrytitle">glReadPixels</span></span></a>,
            <a class="citerefentry" href="glCopyTexImage2D.xml"><span class="citerefentry"><span class="refentrytitle">glCopyTexImage2D</span></span></a>, and
            <a class="citerefentry" href="glCopyTexSubImage2D.xml"><span class="citerefentry"><span class="refentrytitle">glCopyTexSubImage2D</span></span></a>),
            which is taken from the frame buffer values of
            <em class="parameter"><code>read</code></em>.
        </p><p>
            If the calling thread has already a current rendering context, that
            context is flushed and marked as no longer current.
        </p><p>
            The first time that <em class="parameter"><code>context</code></em> is made current,
            the viewport and scissor dimensions are set to the size of the
            <em class="parameter"><code>draw</code></em> surface. The viewport and
            scissor are not modified when <em class="parameter"><code>context</code></em> is
            subsequently made current.
        </p><p>
            To release the current context without assigning a new one, call
            <code class="function">eglMakeCurrent</code> with <em class="parameter"><code>draw</code></em>
            and <em class="parameter"><code>read</code></em> set to
            <code class="constant">EGL_NO_SURFACE</code> and <em class="parameter"><code>context</code></em>
            set to <code class="constant">EGL_NO_CONTEXT</code>.
        </p><p>
            Use
            <a class="citerefentry" href="eglGetCurrentContext.xml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentContext</span></span></a>,
            <a class="citerefentry" href="eglGetCurrentDisplay.xml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentDisplay</span></span></a>, and
            <a class="citerefentry" href="eglGetCurrentSurface.xml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentSurface</span></span></a>
            to query the current rendering context and associated display connection and surfaces.
        </p></div><div class="refsect1" lang="en" xml:lang="en"><a id="errors"></a><h2>Errors</h2><p>
            <code class="constant">EGL_FALSE</code> is returned on failure,
            <code class="constant">EGL_TRUE</code> otherwise. If <code class="constant">EGL_FALSE</code>
            is returned, the previously current rendering context and
            surfaces (if any) remain unchanged.
        </p><p>
            <code class="constant">EGL_BAD_DISPLAY</code> is generated if
            <em class="parameter"><code>display</code></em> is not an EGL display connection.
        </p><p>
            <code class="constant">EGL_NOT_INITIALIZED</code> is generated if
            <em class="parameter"><code>display</code></em> has not been initialized.
        </p><p>
            <code class="constant">EGL_BAD_SURFACE</code> is generated if
            <em class="parameter"><code>draw</code></em> or <em class="parameter"><code>read</code></em> is not an
            EGL surface.
        </p><p>
            <code class="constant">EGL_BAD_CONTEXT</code> is generated if
            <em class="parameter"><code>context</code></em> is not an EGL rendering context.
        </p><p>
            <code class="constant">EGL_BAD_MATCH</code> is generated if
            <em class="parameter"><code>draw</code></em> or
            <em class="parameter"><code>read</code></em>
            are not compatible with
            <em class="parameter"><code>context</code></em>, or if
            <em class="parameter"><code>context</code></em> is set to
            <code class="constant">EGL_NO_CONTEXT</code> and
            <em class="parameter"><code>draw</code></em> or
            <em class="parameter"><code>read</code></em>
            are not set to
            <code class="constant">EGL_NO_SURFACE</code>, or if
            <em class="parameter"><code>draw</code></em> or
            <em class="parameter"><code>read</code></em> are set to
            <code class="constant">EGL_NO_SURFACE</code> and
            <em class="parameter"><code>context</code></em> is not set to
            <code class="constant">EGL_NO_CONTEXT</code>.
        </p><p>
            <code class="constant">EGL_BAD_ACCESS</code> is generated if
            <em class="parameter"><code>context</code></em>
            is current to some other thread.
        </p><p>
            <code class="constant">EGL_BAD_NATIVE_PIXMAP</code> may be generated if
            a native pixmap underlying either
            <em class="parameter"><code>draw</code></em> or
            <em class="parameter"><code>read</code></em>
            is no longer valid.
        </p><p>
            <code class="constant">EGL_BAD_NATIVE_WINDOW</code> may be generated if
            a native window underlying either
            <em class="parameter"><code>draw</code></em> or
            <em class="parameter"><code>read</code></em>
            is no longer valid.
        </p><p>
            <code class="constant">EGL_BAD_CURRENT_SURFACE</code> is generated if
            the previous context has unflushed commands and the previous surface
            is no longer valid.
        </p><p>
            <code class="constant">EGL_BAD_ALLOC</code> may be generated if
            allocation of ancillary buffers for <em class="parameter"><code>draw</code></em> or
            <em class="parameter"><code>read</code></em> were delayed until
            <code class="function">eglMakeCurrent</code> is called, and there are not
            enough resources to allocate them.
        </p><p>
            <code class="constant">EGL_CONTEXT_LOST</code> is generated if a power management
            event has occurred. The application must destroy all contexts and
            reinitialise OpenGL ES state and objects to continue rendering.
        </p></div><div class="refsect1" lang="en" xml:lang="en"><a id="seealso"></a><h2>See Also</h2><p>
            <a class="citerefentry" href="glReadPixels.xml"><span class="citerefentry"><span class="refentrytitle">glReadPixels</span></span></a>,
            <a class="citerefentry" href="glCopyTexImage2D.xml"><span class="citerefentry"><span class="refentrytitle">glCopyTexImage2D</span></span></a>,
            <a class="citerefentry" href="glCopyTexSubImage2D.xml"><span class="citerefentry"><span class="refentrytitle">glCopyTexSubImage2D</span></span></a>,
            <a class="citerefentry" href="eglCreateContext.xml"><span class="citerefentry"><span class="refentrytitle">eglCreateContext</span></span></a>,
            <a class="citerefentry" href="eglCreatePbufferSurface.xml"><span class="citerefentry"><span class="refentrytitle">eglCreatePbufferSurface</span></span></a>,
            <a class="citerefentry" href="eglCreatePixmapSurface.xml"><span class="citerefentry"><span class="refentrytitle">eglCreatePixmapSurface</span></span></a>,
            <a class="citerefentry" href="eglCreateWindowSurface.xml"><span class="citerefentry"><span class="refentrytitle">eglCreateWindowSurface</span></span></a>,
            <a class="citerefentry" href="eglGetCurrentContext.xml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentContext</span></span></a>,
            <a class="citerefentry" href="eglGetCurrentDisplay.xml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentDisplay</span></span></a>,
            <a class="citerefentry" href="eglGetCurrentSurface.xml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentSurface</span></span></a>,
            <a class="citerefentry" href="eglGetDisplay.xml"><span class="citerefentry"><span class="refentrytitle">eglGetDisplay</span></span></a>,
            <a class="citerefentry" href="eglInitialize.xml"><span class="citerefentry"><span class="refentrytitle">eglInitialize</span></span></a>
        </p></div><div class="refsect1" lang="en" xml:lang="en"><a id="copyright"></a><h2>Copyright</h2><p>
            Copyright <span class="trademark"></span>© 2003-2004
            Silicon Graphics, Inc. This document is licensed under the SGI
            Free Software B License. For details, see
            <a class="ulink" href="http://oss.sgi.com/projects/FreeB/" target="_top">http://oss.sgi.com/projects/FreeB/</a>.
        </p></div></div></body></html>

