<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title xmlns:xlink="http://www.w3.org/1999/xlink">eglSwapBuffers - EGL Reference Pages</title>
    <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
    <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
  </head>
  <body>
    <header/>
    <div class="refentry" id="eglSwapBuffers">
      <div class="titlepage"/>
      <div class="refnamediv">
        <h2>Name</h2>
        <p>eglSwapBuffers — 
            post <abbr class="acronym">EGL</abbr> surface color buffer to a native window
        </p>
      </div>
      <div class="refsynopsisdiv">
        <h2>C Specification</h2>
        <div class="funcsynopsis">
          <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
            <tr>
              <td>
                <code class="funcdef">EGLBoolean <strong class="fsfunc">eglSwapBuffers</strong>(</code>
              </td>
              <td>EGLDisplay <var class="pdparam">display</var>, </td>
            </tr>
            <tr>
              <td> </td>
              <td>EGLSurface <var class="pdparam">surface</var><code>)</code>;</td>
            </tr>
          </table>
          <div class="funcprototype-spacer"> </div>
        </div>
      </div>
      <div class="refsect1" id="parameters">
        <h2>Parameters</h2>
        <div class="variablelist">
          <dl class="variablelist">
            <dt>
              <span class="term">
                <em class="parameter">
                  <code>display</code>
                </em>
              </span>
            </dt>
            <dd>
              <p>
                        Specifies the EGL display connection.
                    </p>
            </dd>
            <dt>
              <span class="term">
                <em class="parameter">
                  <code>surface</code>
                </em>
              </span>
            </dt>
            <dd>
              <p>
                        Specifies the EGL drawing surface whose buffers are to be swapped.
                    </p>
            </dd>
          </dl>
        </div>
      </div>
      <div class="refsect1" id="description">
        <h2>Description</h2>
        <p>
            If <em class="parameter"><code>surface</code></em> is a back-buffered window
            surface, then the color
            buffer is copied (posted) to the native window associated with that
            surface. If <em class="parameter"><code>surface</code></em> is a single-buffered
            window, pixmap, or pixel buffer surface,
            <code class="function">eglSwapBuffers</code> has no effect.
        </p>
        <p>
            The contents of ancillary buffers are always undefined after
            calling <code class="function">eglSwapBuffers</code>. The contents of the
            color buffer are undefined if the value of the
            <code class="constant">EGL_SWAP_BEHAVIOR</code> attribute of
            <em class="parameter"><code>surface</code></em> is not
            <code class="constant">EGL_BUFFER_PRESERVED</code>. The value of
            <code class="constant">EGL_SWAP_BEHAVIOR</code> can be set for some
            surfaces using
            <a class="citerefentry" href="eglSurfaceAttrib.xhtml"><span class="citerefentry"><span class="refentrytitle">eglSurfaceAttrib</span></span></a>.
            <code class="constant">EGL_SWAP_BEHAVIOR</code> applies only to the color
            buffer. EGL has no way to specify or query whether or not
            ancillary buffers are preserved, and applications should not
            rely on this behavior.
        </p>
        <p>
            <code class="function">eglSwapBuffers</code> performs an implicit
            flush operation on the context (<code class="function">glFlush</code>
            for an OpenGL ES or OpenGL context,
            <code class="function">vgFlush</code> for an OpenVG context) bound to
            <em class="parameter"><code>surface</code></em> before swapping. Subsequent
            client API commands may be issued on that context
            immediately after calling
            <code class="function">eglSwapBuffers</code>, but are not executed
            until the buffer exchange is completed.
        </p>
      </div>
      <div class="refsect1" id="resize">
        <h2>Native Window Resizing</h2>
        <p>
            If the native window corresponding to
            <em class="parameter"><code>surface</code></em> has been resized prior to the
            swap, <em class="parameter"><code>surface</code></em> must be resized to match.
            <em class="parameter"><code>surface</code></em> will normally be resized by the
            EGL implementation at the time the native window is resized. If
            the implementation cannot do this transparently to the client,
            then <code class="function">eglSwapBuffers</code> must detect the change
            and resize surface prior to copying its pixels to the native
            window. If <em class="parameter"><code>surface</code></em> shrinks as a result of
            resizing, some rendered pixels are lost. If
            <em class="parameter"><code>surface</code></em> grows, the newly allocated buffer
            contents are undefined. The resizing behavior described here
            only maintains consistency of EGL surfaces and native windows;
            clients are still responsible for detecting window size changes
            (using platform-specific means) and changing their viewport and
            scissor regions accordingly.
        </p>
      </div>
      <div class="refsect1" id="notes">
        <h2>Notes</h2>
        <p>
            Attribute <code class="constant">EGL_SWAP_BEHAVIOR</code> is supported
            only if the EGL version is 1.2 or greater. In earlier versions,
            behavior is as though the attribute exists, and always has the
            value <code class="constant">EGL_BUFFER_DESTROYED</code>.
        </p>
        <p>
            The EGL 1.4 specification was updated to acknowledge that
            ancillary buffers are not necessarily preserved after a swap,
            and that the <code class="constant">EGL_SWAP_BEHAVIOR</code> attribute
            applies only to the color buffer. This change in the
            specification acknowledged the behavior of many shipping
            implementations, and is not intended to result in behavior
            changes in any existing implementation.
        </p>
      </div>
      <div class="refsect1" id="errors">
        <h2>Errors</h2>
        <p>
            <code class="constant">EGL_FALSE</code> is returned if swapping of the
            surface buffers fails, <code class="constant">EGL_TRUE</code> otherwise.
        </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>surface</code></em> is not an EGL drawing surface.
        </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" id="seealso">
        <h2>See Also</h2>
        <p>
            <code class="function">glFlush</code>,
            <a class="citerefentry" href="eglCopyBuffers.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCopyBuffers</span></span></a>,
            <code class="function">vgFlush</code>
        </p>
      </div>
      <p>
    </p>
      <div class="refsect3" id="copyright">
        <img src="KhronosLogo.jpg"/>
        <p>
            Copyright © 2003-2014 The Khronos Group Inc.
            Permission is hereby granted, free of charge, to any person obtaining a
            copy of this software and/or associated documentation files (the
            "Materials"), to deal in the Materials without restriction, including
            without limitation the rights to use, copy, modify, merge, publish,
            distribute, sublicense, and/or sell copies of the Materials, and to
            permit persons to whom the Materials are furnished to do so, subject to
            the condition that this copyright notice and permission notice shall be included
            in all copies or substantial portions of the Materials.
        </p>
      </div>
      <p>
</p>
    </div>
    <footer/>
  </body>
</html>
