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