glGetQueryObject, glGetQueryBufferObject — return parameters of a query object
void glGetQueryObjectiv(
|
GLuint id, |
GLenum pname, | |
GLint * params) ; |
void glGetQueryObjectuiv(
|
GLuint id, |
GLenum pname, | |
GLuint * params) ; |
void glGetQueryObjecti64v(
|
GLuint id, |
GLenum pname, | |
GLint64 * params) ; |
void glGetQueryObjectui64v(
|
GLuint id, |
GLenum pname, | |
GLuint64 * params) ; |
void glGetQueryBufferObjectiv(
|
GLuint id, |
GLuint buffer, | |
GLenum pname, | |
GLintptr offset) ; |
void glGetQueryBufferObjectuiv(
|
GLuint id, |
GLuint buffer, | |
GLenum pname, | |
GLintptr offset) ; |
void glGetQueryBufferObjecti64v(
|
GLuint id, |
GLuint buffer, | |
GLenum pname, | |
GLintptr offset) ; |
void glGetQueryBufferObjectui64v(
|
GLuint id, |
GLuint buffer, | |
GLenum pname, | |
GLintptr offset) ; |
id
Specifies the name of a query object.
buffer
Specifies the name of a buffer object.
pname
Specifies the symbolic name of a query object parameter.
Accepted values are GL_QUERY_RESULT
or GL_QUERY_RESULT_AVAILABLE
.
params
If a buffer is bound to the GL_QUERY_RESULT_BUFFER
target, then params
is treated as an offset to a location within that buffer's data store to receive the result of the query. If
no buffer is bound to GL_QUERY_RESULT_BUFFER
, then params
is
treated as an address in client memory of a variable to receive the resulting data.
offset
Specifies the byte offset into buffer
's data store
where the queried result will be written.
These commands return a selected parameter of the query object specified by id
.
glGetQueryObject
returns in params
a selected parameter of the query object specified by id
.
glGetQueryBufferObject
returns in buffer
a selected parameter of the query object specified by id
,
by writing it to buffer
's data store at the byte offset specified by offset
.
pname
names a specific query object parameter. pname
can be as follows:
GL_QUERY_RESULT
params
or buffer
returns the value of the query object's passed samples counter.
The initial value is 0.
GL_QUERY_RESULT_NO_WAIT
If the result of the query is available (that is, a query of GL_QUERY_RESULT_AVAILABLE
would
return non-zero), then params
or buffer
returns the value of the query object's passed samples counter,
otherwise, the data referred to by params
or buffer
is not modified.
The initial value is 0.
GL_QUERY_RESULT_AVAILABLE
params
or buffer
returns whether the passed samples counter is immediately available.
If a delay would occur waiting for the query result, GL_FALSE
is returned.
Otherwise, GL_TRUE
is returned, which also indicates that the results of all
previous queries are available as well.
If an error is generated,
no change is made to the contents of params
or buffer
.
glGetQueryObject
and glGetQueryBufferObject
implicitly flush the GL pipeline so that any incomplete rendering
delimited by the occlusion query completes in finite time.
If multiple queries are issued using the same query object id
before calling
glGetQueryObject
or glGetQueryBufferObject
,
the results of the most recent query will be returned. In this case,
when issuing a new query, the results of the previous query are discarded.
glGetQueryObjecti64v
and glGetQueryObjectui64v
are available only
if the GL version is 3.3 or greater.
GL_QUERY_RESULT_NO_WAIT
is accepted for pname
only if the
GL version is 4.4 or greater.
The GL_QUERY_RESULT_BUFFER
target is available only if the GL version is 4.4 or higher.
On earlier versions of the GL, params
is always an address in client memory.
GL_INVALID_ENUM
is generated if pname
is not an accepted value.
GL_INVALID_OPERATION
is generated if id
is not the name of a query object.
GL_INVALID_OPERATION
is generated by glGetQueryBufferObject
if buffer
is not the name of an already created buffer object.
GL_INVALID_OPERATION
is generated if id
is the name of a currently active
query object.
GL_INVALID_OPERATION
is generated by glGetQueryObject
if a buffer is currently bound to the
GL_QUERY_RESULT_BUFFER
target and the command would cause data to be written beyond the bounds
of that buffer's data store.
GL_INVALID_OPERATION
is generated by glGetQueryBufferObject
if the command would cause data to be written beyond the bounds of buffer
's data store.
GL_INVALID_VALUE
is generated by glGetQueryBufferObject
if offset
is negative.
OpenGL Version | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Function / Feature Name | 2.0 | 2.1 | 3.0 | 3.1 | 3.2 | 3.3 | 4.0 | 4.1 | 4.2 | 4.3 | 4.4 | 4.5 |
glGetQueryObjecti64v
|
- | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
glGetQueryObjectiv
|
✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
glGetQueryObjectui64v
|
- | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
glGetQueryObjectuiv
|
✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
glGetQueryBufferObjecti64v
|
- | - | - | - | - | - | - | - | - | - | - | ✔ |
glGetQueryBufferObjectiv
|
- | - | - | - | - | - | - | - | - | - | - | ✔ |
glGetQueryBufferObjectui64v
|
- | - | - | - | - | - | - | - | - | - | - | ✔ |
glGetQueryBufferObjectuiv
|
- | - | - | - | - | - | - | - | - | - | - | ✔ |
glBeginQuery,
glEndQuery
,
glGetQueryiv,
glIsQuery,
glQueryCounter
Copyright © 2005 Addison-Wesley. Copyright © 2010-2014 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/.