102f4aeb0Sopenharmony_ci<?xml version="1.0" encoding="UTF-8" standalone="no"?>
202f4aeb0Sopenharmony_ci<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml">
302f4aeb0Sopenharmony_ci  <head>
402f4aeb0Sopenharmony_ci    <title xmlns:xlink="http://www.w3.org/1999/xlink">eglClientWaitSync - EGL Reference Pages</title>
502f4aeb0Sopenharmony_ci    <link rel="stylesheet" type="text/css" href="khronos-man.css"/>
602f4aeb0Sopenharmony_ci    <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/>
702f4aeb0Sopenharmony_ci  </head>
802f4aeb0Sopenharmony_ci  <body>
902f4aeb0Sopenharmony_ci    <header/>
1002f4aeb0Sopenharmony_ci    <div class="refentry" id="eglClientWaitSync">
1102f4aeb0Sopenharmony_ci      <div class="titlepage"/>
1202f4aeb0Sopenharmony_ci      <div class="refnamediv">
1302f4aeb0Sopenharmony_ci        <h2>Name</h2>
1402f4aeb0Sopenharmony_ci        <p>eglClientWaitSync — 
1502f4aeb0Sopenharmony_ci            Wait in the client for a sync object to be signalled
1602f4aeb0Sopenharmony_ci        </p>
1702f4aeb0Sopenharmony_ci      </div>
1802f4aeb0Sopenharmony_ci      <div class="refsynopsisdiv">
1902f4aeb0Sopenharmony_ci        <h2>C Specification</h2>
2002f4aeb0Sopenharmony_ci        <div class="funcsynopsis">
2102f4aeb0Sopenharmony_ci          <table style="border: 0; cellspacing: 0; cellpadding: 0;" class="funcprototype-table">
2202f4aeb0Sopenharmony_ci            <tr>
2302f4aeb0Sopenharmony_ci              <td>
2402f4aeb0Sopenharmony_ci                <code class="funcdef">EGLint <strong class="fsfunc">eglClientWaitSync</strong>(</code>
2502f4aeb0Sopenharmony_ci              </td>
2602f4aeb0Sopenharmony_ci              <td>(EGLDisplay <var class="pdparam">display</var>, </td>
2702f4aeb0Sopenharmony_ci            </tr>
2802f4aeb0Sopenharmony_ci            <tr>
2902f4aeb0Sopenharmony_ci              <td> </td>
3002f4aeb0Sopenharmony_ci              <td>EGLSync <var class="pdparam">sync</var>, </td>
3102f4aeb0Sopenharmony_ci            </tr>
3202f4aeb0Sopenharmony_ci            <tr>
3302f4aeb0Sopenharmony_ci              <td> </td>
3402f4aeb0Sopenharmony_ci              <td>EGLint <var class="pdparam">flags</var>, </td>
3502f4aeb0Sopenharmony_ci            </tr>
3602f4aeb0Sopenharmony_ci            <tr>
3702f4aeb0Sopenharmony_ci              <td> </td>
3802f4aeb0Sopenharmony_ci              <td>EGLTime <var class="pdparam">timeout</var><code>)</code>;</td>
3902f4aeb0Sopenharmony_ci            </tr>
4002f4aeb0Sopenharmony_ci          </table>
4102f4aeb0Sopenharmony_ci          <div class="funcprototype-spacer"> </div>
4202f4aeb0Sopenharmony_ci        </div>
4302f4aeb0Sopenharmony_ci      </div>
4402f4aeb0Sopenharmony_ci      <div class="refsect1" id="parameters">
4502f4aeb0Sopenharmony_ci        <h2>Parameters</h2>
4602f4aeb0Sopenharmony_ci        <div class="variablelist">
4702f4aeb0Sopenharmony_ci          <dl class="variablelist">
4802f4aeb0Sopenharmony_ci            <dt>
4902f4aeb0Sopenharmony_ci              <span class="term">
5002f4aeb0Sopenharmony_ci                <em class="parameter">
5102f4aeb0Sopenharmony_ci                  <code>display</code>
5202f4aeb0Sopenharmony_ci                </em>
5302f4aeb0Sopenharmony_ci              </span>
5402f4aeb0Sopenharmony_ci            </dt>
5502f4aeb0Sopenharmony_ci            <dd>
5602f4aeb0Sopenharmony_ci              <p>
5702f4aeb0Sopenharmony_ci                    Specifies the <abbr class="acronym">EGL</abbr> display connection.
5802f4aeb0Sopenharmony_ci                </p>
5902f4aeb0Sopenharmony_ci            </dd>
6002f4aeb0Sopenharmony_ci            <dt>
6102f4aeb0Sopenharmony_ci              <span class="term">
6202f4aeb0Sopenharmony_ci                <em class="parameter">
6302f4aeb0Sopenharmony_ci                  <code>sync</code>
6402f4aeb0Sopenharmony_ci                </em>
6502f4aeb0Sopenharmony_ci              </span>
6602f4aeb0Sopenharmony_ci            </dt>
6702f4aeb0Sopenharmony_ci            <dd>
6802f4aeb0Sopenharmony_ci              <p>
6902f4aeb0Sopenharmony_ci                    Specifies the sync object to wait on.
7002f4aeb0Sopenharmony_ci                </p>
7102f4aeb0Sopenharmony_ci            </dd>
7202f4aeb0Sopenharmony_ci            <dt>
7302f4aeb0Sopenharmony_ci              <span class="term">
7402f4aeb0Sopenharmony_ci                <em class="parameter">
7502f4aeb0Sopenharmony_ci                  <code>flags</code>
7602f4aeb0Sopenharmony_ci                </em>
7702f4aeb0Sopenharmony_ci              </span>
7802f4aeb0Sopenharmony_ci            </dt>
7902f4aeb0Sopenharmony_ci            <dd>
8002f4aeb0Sopenharmony_ci              <p>
8102f4aeb0Sopenharmony_ci                    Specifies flags controlling wait behavior.
8202f4aeb0Sopenharmony_ci                </p>
8302f4aeb0Sopenharmony_ci            </dd>
8402f4aeb0Sopenharmony_ci            <dt>
8502f4aeb0Sopenharmony_ci              <span class="term">
8602f4aeb0Sopenharmony_ci                <em class="parameter">
8702f4aeb0Sopenharmony_ci                  <code>timeout</code>
8802f4aeb0Sopenharmony_ci                </em>
8902f4aeb0Sopenharmony_ci              </span>
9002f4aeb0Sopenharmony_ci            </dt>
9102f4aeb0Sopenharmony_ci            <dd>
9202f4aeb0Sopenharmony_ci              <p>
9302f4aeb0Sopenharmony_ci                    Specifies wait timeout interval.
9402f4aeb0Sopenharmony_ci                </p>
9502f4aeb0Sopenharmony_ci            </dd>
9602f4aeb0Sopenharmony_ci          </dl>
9702f4aeb0Sopenharmony_ci        </div>
9802f4aeb0Sopenharmony_ci      </div>
9902f4aeb0Sopenharmony_ci      <div class="refsect1" id="description">
10002f4aeb0Sopenharmony_ci        <h2>Description</h2>
10102f4aeb0Sopenharmony_ci        <p>
10202f4aeb0Sopenharmony_ci            <code class="function">eglClientWaitSync</code> blocks the calling thread
10302f4aeb0Sopenharmony_ci            until the specified sync object <em class="parameter"><code>sync</code></em> is
10402f4aeb0Sopenharmony_ci            signaled, or until <em class="parameter"><code>timeout</code></em> nanoseconds
10502f4aeb0Sopenharmony_ci            have passed.
10602f4aeb0Sopenharmony_ci        </p>
10702f4aeb0Sopenharmony_ci        <p>
10802f4aeb0Sopenharmony_ci            More than one <code class="function">eglClientWaitSync</code> may be
10902f4aeb0Sopenharmony_ci            outstanding on the same <em class="parameter"><code>sync</code></em> at any given
11002f4aeb0Sopenharmony_ci            time. When there are multiple threads blocked on the same
11102f4aeb0Sopenharmony_ci            <em class="parameter"><code>sync</code></em> and the sync object is signaled, all
11202f4aeb0Sopenharmony_ci            such threads are released, but the order in which they are
11302f4aeb0Sopenharmony_ci            released is not defined.
11402f4aeb0Sopenharmony_ci        </p>
11502f4aeb0Sopenharmony_ci        <p>
11602f4aeb0Sopenharmony_ci            If the value of <em class="parameter"><code>timeout</code></em> is zero, then
11702f4aeb0Sopenharmony_ci            <code class="function">eglClientWaitSync</code> simply tests the current
11802f4aeb0Sopenharmony_ci            status of <em class="parameter"><code>sync</code></em>. If the value of
11902f4aeb0Sopenharmony_ci            <em class="parameter"><code>timeout</code></em> is the special value
12002f4aeb0Sopenharmony_ci            <code class="constant">EGL_FOREVER</code>, then
12102f4aeb0Sopenharmony_ci            <code class="function">eglClientWaitSync</code> does not time out. For
12202f4aeb0Sopenharmony_ci            all other values, <em class="parameter"><code>timeout</code></em> is adjusted to
12302f4aeb0Sopenharmony_ci            the closest value allowed by the implementation-dependent
12402f4aeb0Sopenharmony_ci            timeout accuracy, which may be substantially longer than one
12502f4aeb0Sopenharmony_ci            nanosecond.
12602f4aeb0Sopenharmony_ci        </p>
12702f4aeb0Sopenharmony_ci        <p>
12802f4aeb0Sopenharmony_ci            <code class="function">eglClientWaitSync</code> returns one of three
12902f4aeb0Sopenharmony_ci            status values describing the reason for returning. A return
13002f4aeb0Sopenharmony_ci            value of <code class="constant">EGL_TIMEOUT_EXPIRED</code> indicates that
13102f4aeb0Sopenharmony_ci            the specified timeout period expired before
13202f4aeb0Sopenharmony_ci            <em class="parameter"><code>sync</code></em> was signaled, or if
13302f4aeb0Sopenharmony_ci            <em class="parameter"><code>timeout</code></em> is zero, indicates that
13402f4aeb0Sopenharmony_ci            <em class="parameter"><code>sync</code></em> is not signaled. A return value of
13502f4aeb0Sopenharmony_ci            <code class="constant">EGL_CONDITION_SATISFIED</code> indicates that
13602f4aeb0Sopenharmony_ci            <em class="parameter"><code>sync</code></em> was signaled before the timeout
13702f4aeb0Sopenharmony_ci            expired, which includes the case when
13802f4aeb0Sopenharmony_ci            <em class="parameter"><code>sync</code></em> was already signaled when
13902f4aeb0Sopenharmony_ci            <code class="function">eglClientWaitSync</code> was called. If an error
14002f4aeb0Sopenharmony_ci            occurs then an error is generated and
14102f4aeb0Sopenharmony_ci            <code class="constant">EGL_FALSE</code> is returned.
14202f4aeb0Sopenharmony_ci        </p>
14302f4aeb0Sopenharmony_ci        <p>
14402f4aeb0Sopenharmony_ci            If the sync object being blocked upon will not be signaled in
14502f4aeb0Sopenharmony_ci            finite time (for example, by an associated fence command issued
14602f4aeb0Sopenharmony_ci            previously, but not yet flushed to the graphics pipeline), then
14702f4aeb0Sopenharmony_ci            <code class="function">eglClientWaitSync</code> may wait forever. To help
14802f4aeb0Sopenharmony_ci            prevent this behavior, if the
14902f4aeb0Sopenharmony_ci            <code class="constant">EGL_SYNC_FLUSH_COMMANDS_BIT</code> bit is set in
15002f4aeb0Sopenharmony_ci            <em class="parameter"><code>flags</code></em>, and <em class="parameter"><code>sync</code></em> is
15102f4aeb0Sopenharmony_ci            unsignaled when <code class="function">eglClientWaitSync</code> is
15202f4aeb0Sopenharmony_ci            called, then the equivalent of Flush() will be performed for the
15302f4aeb0Sopenharmony_ci            current API context (i.e., the context returned by
15402f4aeb0Sopenharmony_ci            <code class="function">eglGetCurrentContext</code>) before blocking on
15502f4aeb0Sopenharmony_ci            <em class="parameter"><code>sync</code></em>. If no context is current for the
15602f4aeb0Sopenharmony_ci            bound API, the <code class="constant">EGL_SYNC_FLUSH_COMMANDS_BIT</code>
15702f4aeb0Sopenharmony_ci            bit is ignored.
15802f4aeb0Sopenharmony_ci        </p>
15902f4aeb0Sopenharmony_ci        <p>
16002f4aeb0Sopenharmony_ci            Note: the simple Flush behavior defined by
16102f4aeb0Sopenharmony_ci            <code class="constant">EGL_SYNC_FLUSH_COMMANDS_BIT</code> will not help
16202f4aeb0Sopenharmony_ci            when waiting for a fence command issued in a different context's
16302f4aeb0Sopenharmony_ci            command stream. Applications which block on a fence sync object
16402f4aeb0Sopenharmony_ci            must take additional steps to ensure that the context from which
16502f4aeb0Sopenharmony_ci            the associated fence command was issued has flushed that command
16602f4aeb0Sopenharmony_ci            to the graphics pipeline.
16702f4aeb0Sopenharmony_ci        </p>
16802f4aeb0Sopenharmony_ci      </div>
16902f4aeb0Sopenharmony_ci      <div class="refsect1" id="errors">
17002f4aeb0Sopenharmony_ci        <h2>Errors</h2>
17102f4aeb0Sopenharmony_ci        <p>
17202f4aeb0Sopenharmony_ci            <code class="function">eglClientWaitSync</code> returns
17302f4aeb0Sopenharmony_ci            <code class="constant">EGL_FALSE</code> on failure.
17402f4aeb0Sopenharmony_ci        </p>
17502f4aeb0Sopenharmony_ci        <p>
17602f4aeb0Sopenharmony_ci            If <em class="parameter"><code>sync</code></em> is not a valid sync object for
17702f4aeb0Sopenharmony_ci            <em class="parameter"><code>display</code></em>, an
17802f4aeb0Sopenharmony_ci            <code class="constant">EGL_BAD_PARAMETER</code> error is generated.
17902f4aeb0Sopenharmony_ci        </p>
18002f4aeb0Sopenharmony_ci        <p>
18102f4aeb0Sopenharmony_ci            If <em class="parameter"><code>display</code></em> does not match the
18202f4aeb0Sopenharmony_ci            <span class="type">EGLDisplay</span> passed to
18302f4aeb0Sopenharmony_ci            <code class="function">eglCreateSync</code> when
18402f4aeb0Sopenharmony_ci            <em class="parameter"><code>sync</code></em> was created, the behaviour is
18502f4aeb0Sopenharmony_ci            undefined.
18602f4aeb0Sopenharmony_ci        </p>
18702f4aeb0Sopenharmony_ci      </div>
18802f4aeb0Sopenharmony_ci      <div class="refsect1" id="notes">
18902f4aeb0Sopenharmony_ci        <h2>Notes</h2>
19002f4aeb0Sopenharmony_ci        <p>
19102f4aeb0Sopenharmony_ci            <code class="function">eglClientWaitSync</code> is available only if the
19202f4aeb0Sopenharmony_ci            EGL version is 1.5 or greater.
19302f4aeb0Sopenharmony_ci        </p>
19402f4aeb0Sopenharmony_ci      </div>
19502f4aeb0Sopenharmony_ci      <div class="refsect1" id="seealso">
19602f4aeb0Sopenharmony_ci        <h2>See Also</h2>
19702f4aeb0Sopenharmony_ci        <p>
19802f4aeb0Sopenharmony_ci            <a class="citerefentry" href="eglCreateSync.xhtml"><span class="citerefentry"><span class="refentrytitle">eglCreateSync</span></span></a>,
19902f4aeb0Sopenharmony_ci            <a class="citerefentry" href="eglGetCurrentContext.xhtml"><span class="citerefentry"><span class="refentrytitle">eglGetCurrentContext</span></span></a>,
20002f4aeb0Sopenharmony_ci            <a class="citerefentry" href="eglWaitSync.xhtml"><span class="citerefentry"><span class="refentrytitle">eglWaitSync</span></span></a>,
20102f4aeb0Sopenharmony_ci            <code class="function">glFinish</code>,
20202f4aeb0Sopenharmony_ci            <code class="function">vgFinish</code>
20302f4aeb0Sopenharmony_ci        </p>
20402f4aeb0Sopenharmony_ci      </div>
20502f4aeb0Sopenharmony_ci      <p>
20602f4aeb0Sopenharmony_ci    </p>
20702f4aeb0Sopenharmony_ci      <div class="refsect3" id="copyright">
20802f4aeb0Sopenharmony_ci        <img src="KhronosLogo.jpg"/>
20902f4aeb0Sopenharmony_ci        <p>
21002f4aeb0Sopenharmony_ci            Copyright © 2003-2014 The Khronos Group Inc.
21102f4aeb0Sopenharmony_ci            Permission is hereby granted, free of charge, to any person obtaining a
21202f4aeb0Sopenharmony_ci            copy of this software and/or associated documentation files (the
21302f4aeb0Sopenharmony_ci            "Materials"), to deal in the Materials without restriction, including
21402f4aeb0Sopenharmony_ci            without limitation the rights to use, copy, modify, merge, publish,
21502f4aeb0Sopenharmony_ci            distribute, sublicense, and/or sell copies of the Materials, and to
21602f4aeb0Sopenharmony_ci            permit persons to whom the Materials are furnished to do so, subject to
21702f4aeb0Sopenharmony_ci            the condition that this copyright notice and permission notice shall be included
21802f4aeb0Sopenharmony_ci            in all copies or substantial portions of the Materials.
21902f4aeb0Sopenharmony_ci        </p>
22002f4aeb0Sopenharmony_ci      </div>
22102f4aeb0Sopenharmony_ci      <p>
22202f4aeb0Sopenharmony_ci</p>
22302f4aeb0Sopenharmony_ci    </div>
22402f4aeb0Sopenharmony_ci    <footer/>
22502f4aeb0Sopenharmony_ci  </body>
22602f4aeb0Sopenharmony_ci</html>
227