## Name

glQueryCounter — record the GL time into a query object after all previous commands have reached the GL server but have not yet necessarily executed.

## C Specification

`void glQueryCounter(` | GLuint id,
| GLenum target`)`;

## Parameters

`id`

  Specify the name of a query object into which to record the GL time.

`target`

  Specify the counter to query. `target` must be `GL_TIMESTAMP`.

## Description

`glQueryCounter` causes the GL to record the current time into the query object named `id`. `target` must be `GL_TIMESTAMP`. 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. `glQueryCounter` timer queries can be used within a glBeginQuery / glEndQuery block where the target is `GL_TIME_ELAPSED` and it does not affect the result of that query object.

## Notes

`glQueryCounter` is available only if the GL version is 3.3 or higher.

## Errors

`GL_INVALID_OPERATION` is generated if `id` is the name of a query object that is already in use within a glBeginQuery / glEndQuery block.

`GL_INVALID_VALUE` is generated if `id` is not the name of a query object returned from a previous call to glGenQueries.

`GL_INVALID_ENUM` is generated if `target` is not `GL_TIMESTAMP`.

## See Also

glGenQueries, glBeginQuery, glEndQuery, glDeleteQueries, glGetQueryObject, glGetQueryiv, glGet

## Copyright

Copyright © 2010 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. http://opencontent.org/openpub/.