<!DOCTYPE refentry [ <!ENTITY % mathent SYSTEM "math.ent"> %mathent; ]>

<!-- Converted by db4-upgrade version 1.1 -->

<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="glQueryCounter">
    <info>
        <copyright>
            <year>2010-2013</year>
            <holder>Khronos Group</holder>
        </copyright>
    </info>
    <refmeta>
        <refentrytitle>glQueryCounter</refentrytitle>
        <manvolnum>3G</manvolnum>
    </refmeta>
    <refnamediv>
        <refname>glQueryCounter</refname>
        <refpurpose>record the GL time into a query object after all previous commands have reached the GL server but have not yet necessarily executed.</refpurpose>
    </refnamediv>
    <refsynopsisdiv><title>C Specification</title>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glQueryCounter</function></funcdef>
                <paramdef>GLuint <parameter>id</parameter></paramdef>
                <paramdef>GLenum <parameter>target</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
    </refsynopsisdiv>
    <refsect1 xml:id="parameters"><title>Parameters</title>
        <variablelist>
        <varlistentry>
            <term><parameter>id</parameter></term>
            <listitem>
                <para>
                    Specify the name of a query object into which to record the GL time.
                </para>
            </listitem>
        </varlistentry>
        <varlistentry>
            <term><parameter>target</parameter></term>
            <listitem>
                <para>
                    Specify the counter to query. <parameter>target</parameter> must be <constant>GL_TIMESTAMP</constant>.
                </para>
            </listitem>
        </varlistentry>
        </variablelist>
    </refsect1>
    <refsect1 xml:id="description"><title>Description</title>
        <para>
            <function>glQueryCounter</function> causes the GL to record the current time into the query object named <parameter>id</parameter>.
            <parameter>target</parameter> must be <constant>GL_TIMESTAMP</constant>. The time is recorded after all previous commands on the
            GL client and server state and the framebuffer have been fully realized. When the time is recorded, the query result for that object
            is marked available. <function>glQueryCounter</function> timer queries can be used within a <citerefentry><refentrytitle>glBeginQuery</refentrytitle></citerefentry> /
            <citerefentry><refentrytitle>glEndQuery</refentrytitle></citerefentry> block where the target is <constant>GL_TIME_ELAPSED</constant> and it does
            not affect the result of that query object.
        </para>
    </refsect1>
    <refsect1 xml:id="notes"><title>Notes</title>
        <para>
            <function>glQueryCounter</function> is available only if the GL version is 3.3 or higher.
        </para>
    </refsect1>
    <refsect1 xml:id="errors"><title>Errors</title>
        <para>
            <constant>GL_INVALID_OPERATION</constant> is generated if <parameter>id</parameter> is the name
            of a query object that is already in use within a <citerefentry><refentrytitle>glBeginQuery</refentrytitle></citerefentry> /
            <citerefentry><refentrytitle>glEndQuery</refentrytitle></citerefentry> block.
        </para>
        <para>
            <constant>GL_INVALID_VALUE</constant> is generated if <parameter>id</parameter> is not the name of a query object returned
            from a previous call to <citerefentry><refentrytitle>glGenQueries</refentrytitle></citerefentry>.
        </para>
        <para>
            <constant>GL_INVALID_ENUM</constant> is generated if <parameter>target</parameter> is not <constant>GL_TIMESTAMP</constant>.
        </para>
    </refsect1>
    <refsect1 xml:id="seealso"><title>See Also</title>
        <para>
            <citerefentry><refentrytitle>glGenQueries</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glBeginQuery</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glEndQuery</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glDeleteQueries</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glGetQueryObject</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glGetQueryiv</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>
        </para>
    </refsect1>
    <refsect1 xml:id="Copyright"><title>Copyright</title>
        <para>
            Copyright <trademark class="copyright"/> 2010-2013 Khronos Group.
            This material may be distributed subject to the terms and conditions set forth in
            the Open Publication License, v 1.0, 8 June 1999.
            <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://opencontent.org/openpub/">http://opencontent.org/openpub/</link>.
        </para>
    </refsect1>
</refentry>
