static void yagl_func_glGetQueryObjectuiv(struct yagl_transport *t)
{
GLuint id;
+ GLenum pname;
GLuint *result;
GLboolean *retval;
id = yagl_transport_get_out_GLuint(t);
+ pname = yagl_transport_get_out_GLenum(t);
yagl_transport_get_in_arg(t, (void**)&result);
yagl_transport_get_in_arg(t, (void**)&retval);
- YAGL_LOG_FUNC_ENTER_SPLIT2(glGetQueryObjectuiv, GLuint, void*, id, result);
- *retval = yagl_host_glGetQueryObjectuiv(id, result);
+ YAGL_LOG_FUNC_ENTER_SPLIT3(glGetQueryObjectuiv, GLuint, GLenum, void*, id, pname, result);
+ *retval = yagl_host_glGetQueryObjectuiv(id, pname, result);
YAGL_LOG_FUNC_EXIT_SPLIT(GLboolean, *retval);
}
}
GLboolean yagl_host_glGetQueryObjectuiv(GLuint id,
- GLuint *result)
+ GLenum pname, GLuint *result)
{
GLuint obj = yagl_gles_object_get(id);
GLuint tmp = 0;
- gles_api_ts->driver->GetQueryObjectuiv(obj, GL_QUERY_RESULT_AVAILABLE, &tmp);
-
- if (tmp) {
+ if (pname == GL_QUERY_RESULT_AVAILABLE) {
+ gles_api_ts->driver->GetQueryObjectuiv(obj, GL_QUERY_RESULT_AVAILABLE, &tmp);
+ if (tmp) {
+ gles_api_ts->driver->GetQueryObjectuiv(obj, GL_QUERY_RESULT, result);
+ }
+ } else {
gles_api_ts->driver->GetQueryObjectuiv(obj, GL_QUERY_RESULT, result);
+ tmp = GL_TRUE;
}
return tmp;
GLuint id);
void yagl_host_glEndQuery(GLenum target);
GLboolean yagl_host_glGetQueryObjectuiv(GLuint id,
- GLuint *result);
+ GLenum pname, GLuint *result);
void yagl_host_glGenSamplers(const GLuint *samplers, int32_t samplers_count);
void yagl_host_glBindSampler(GLuint unit,
GLuint sampler);