| <?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">eglClientWaitSync - 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="eglClientWaitSync"> | |
| <div class="titlepage"/> | |
| <div class="refnamediv"> | |
| <h2>Name</h2> | |
| <p>eglClientWaitSync — | |
| Wait in the client for a sync object to be signalled | |
| </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">EGLint <strong class="fsfunc">eglClientWaitSync</strong>(</code> | |
| </td> | |
| <td>(EGLDisplay <var class="pdparam">display</var>, </td> | |
| </tr> | |
| <tr> | |
| <td> </td> | |
| <td>EGLSync <var class="pdparam">sync</var>, </td> | |
| </tr> | |
| <tr> | |
| <td> </td> | |
| <td>EGLint <var class="pdparam">flags</var>, </td> | |
| </tr> | |
| <tr> | |
| <td> </td> | |
| <td>EGLTime <var class="pdparam">timeout</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 <abbr class="acronym">EGL</abbr> display connection. | |
| </p> | |
| </dd> | |
| <dt> | |
| <span class="term"> | |
| <em class="parameter"> | |
| <code>sync</code> | |
| </em> | |
| </span> | |
| </dt> | |
| <dd> | |
| <p> | |
| Specifies the sync object to wait on. | |
| </p> | |
| </dd> | |
| <dt> | |
| <span class="term"> | |
| <em class="parameter"> | |
| <code>flags</code> | |
| </em> | |
| </span> | |
| </dt> | |
| <dd> | |
| <p> | |
| Specifies flags controlling wait behavior. | |
| </p> | |
| </dd> | |
| <dt> | |
| <span class="term"> | |
| <em class="parameter"> | |
| <code>timeout</code> | |
| </em> | |
| </span> | |
| </dt> | |
| <dd> | |
| <p> | |
| Specifies wait timeout interval. | |
| </p> | |
| </dd> | |
| </dl> | |
| </div> | |
| </div> | |
| <div class="refsect1" id="description"> | |
| <h2>Description</h2> | |
| <p> | |
| <code class="function">eglClientWaitSync</code> blocks the calling thread | |
| until the specified sync object <em class="parameter"><code>sync</code></em> is | |
| signaled, or until <em class="parameter"><code>timeout</code></em> nanoseconds | |
| have passed. | |
| </p> | |
| <p> | |
| More than one <code class="function">eglClientWaitSync</code> may be | |
| outstanding on the same <em class="parameter"><code>sync</code></em> at any given | |
| time. When there are multiple threads blocked on the same | |
| <em class="parameter"><code>sync</code></em> and the sync object is signaled, all | |
| such threads are released, but the order in which they are | |
| released is not defined. | |
| </p> | |
| <p> | |
| If the value of <em class="parameter"><code>timeout</code></em> is zero, then | |
| <code class="function">eglClientWaitSync</code> simply tests the current | |
| status of <em class="parameter"><code>sync</code></em>. If the value of | |
| <em class="parameter"><code>timeout</code></em> is the special value | |
| <code class="constant">EGL_FOREVER</code>, then | |
| <code class="function">eglClientWaitSync</code> does not time out. For | |
| all other values, <em class="parameter"><code>timeout</code></em> is adjusted to | |
| the closest value allowed by the implementation-dependent | |
| timeout accuracy, which may be substantially longer than one | |
| nanosecond. | |
| </p> | |
| <p> | |
| <code class="function">eglClientWaitSync</code> returns one of three | |
| status values describing the reason for returning. A return | |
| value of <code class="constant">EGL_TIMEOUT_EXPIRED</code> indicates that | |
| the specified timeout period expired before | |
| <em class="parameter"><code>sync</code></em> was signaled, or if | |
| <em class="parameter"><code>timeout</code></em> is zero, indicates that | |
| <em class="parameter"><code>sync</code></em> is not signaled. A return value of | |
| <code class="constant">EGL_CONDITION_SATISFIED</code> indicates that | |
| <em class="parameter"><code>sync</code></em> was signaled before the timeout | |
| expired, which includes the case when | |
| <em class="parameter"><code>sync</code></em> was already signaled when | |
| <code class="function">eglClientWaitSync</code> was called. If an error | |
| occurs then an error is generated and | |
| <code class="constant">EGL_FALSE</code> is returned. | |
| </p> | |
| <p> | |
| If the sync object being blocked upon will not be signaled in | |
| finite time (for example, by an associated fence command issued | |
| previously, but not yet flushed to the graphics pipeline), then | |
| <code class="function">eglClientWaitSync</code> may wait forever. To help | |
| prevent this behavior, if the | |
| <code class="constant">EGL_SYNC_FLUSH_COMMANDS_BIT</code> bit is set in | |
| <em class="parameter"><code>flags</code></em>, and <em class="parameter"><code>sync</code></em> is | |
| unsignaled when <code class="function">eglClientWaitSync</code> is | |
| called, then the equivalent of Flush() will be performed for the | |
| current API context (i.e., the context returned by | |
| <code class="function">eglGetCurrentContext</code>) before blocking on | |
| <em class="parameter"><code>sync</code></em>. If no context is current for the | |
| bound API, the <code class="constant">EGL_SYNC_FLUSH_COMMANDS_BIT</code> | |
| bit is ignored. | |
| </p> | |
| <p> | |
| Note: the simple Flush behavior defined by | |
| <code class="constant">EGL_SYNC_FLUSH_COMMANDS_BIT</code> will not help | |
| when waiting for a fence command issued in a different context's | |
| command stream. Applications which block on a fence sync object | |
| must take additional steps to ensure that the context from which | |
| the associated fence command was issued has flushed that command | |
| to the graphics pipeline. | |
| </p> | |
| </div> | |
| <div class="refsect1" id="errors"> | |
| <h2>Errors</h2> | |
| <p> | |
| <code class="function">eglClientWaitSync</code> returns | |
| <code class="constant">EGL_FALSE</code> on failure. | |
| </p> | |
| <p> | |
| If <em class="parameter"><code>sync</code></em> is not a valid sync object for | |
| <em class="parameter"><code>display</code></em>, an | |
| <code class="constant">EGL_BAD_PARAMETER</code> error is generated. | |
| </p> | |
| <p> | |
| If <em class="parameter"><code>display</code></em> does not match the | |
| <span class="type">EGLDisplay</span> passed to | |
| <code class="function">eglCreateSync</code> when | |
| <em class="parameter"><code>sync</code></em> was created, the behaviour is | |
| undefined. | |
| </p> | |
| </div> | |
| <div class="refsect1" id="notes"> | |
| <h2>Notes</h2> | |
| <p> | |
| <code class="function">eglClientWaitSync</code> is available only if the | |
| EGL version is 1.5 or greater. | |
| </p> | |
| </div> | |
| <div class="refsect1" id="seealso"> | |
| <h2>See Also</h2> | |
| <p> | |
| <a class="citerefentry" href="eglCreateSync.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateSync</span></span></a>, | |
| <a class="citerefentry" href="eglGetCurrentContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentContext</span></span></a>, | |
| <a class="citerefentry" href="eglWaitSync.xhtml"><span class="citerefentry"><span class="refentrytitle">eglWaitSync</span></span></a>, | |
| <code class="function">glFinish</code>, | |
| <code class="function">vgFinish</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> |