本文整理汇总了C++中Query::getType方法的典型用法代码示例。如果您正苦于以下问题:C++ Query::getType方法的具体用法?C++ Query::getType怎么用?C++ Query::getType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Query
的用法示例。
在下文中一共展示了Query::getType方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetQueryObjectuivEXT
void GL_APIENTRY GetQueryObjectuivEXT(GLuint id, GLenum pname, GLuint *params)
{
EVENT("(GLuint id = %d, GLenum pname = 0x%X, GLuint *params = 0x%0.8p)", id, pname, params);
Context *context = GetValidGlobalContext();
if (context)
{
Query *queryObject = context->getQuery(id, false, GL_NONE);
if (!queryObject)
{
context->recordError(Error(GL_INVALID_OPERATION));
return;
}
if (context->getState().getActiveQueryId(queryObject->getType()) == id)
{
context->recordError(Error(GL_INVALID_OPERATION));
return;
}
switch(pname)
{
case GL_QUERY_RESULT_EXT:
{
Error error = queryObject->getResult(params);
if (error.isError())
{
context->recordError(error);
return;
}
}
break;
case GL_QUERY_RESULT_AVAILABLE_EXT:
{
Error error = queryObject->isResultAvailable(params);
if (error.isError())
{
context->recordError(error);
return;
}
}
break;
default:
context->recordError(Error(GL_INVALID_ENUM));
return;
}
}
}
示例2: ValidateBeginQuery
bool ValidateBeginQuery(gl::Context *context, GLenum target, GLuint id)
{
if (!ValidQueryType(context, target))
{
return gl::error(GL_INVALID_ENUM, false);
}
if (id == 0)
{
return gl::error(GL_INVALID_OPERATION, false);
}
// From EXT_occlusion_query_boolean: If BeginQueryEXT is called with an <id>
// of zero, if the active query object name for <target> is non-zero (for the
// targets ANY_SAMPLES_PASSED_EXT and ANY_SAMPLES_PASSED_CONSERVATIVE_EXT, if
// the active query for either target is non-zero), if <id> is the name of an
// existing query object whose type does not match <target>, or if <id> is the
// active query object name for any query type, the error INVALID_OPERATION is
// generated.
// Ensure no other queries are active
// NOTE: If other queries than occlusion are supported, we will need to check
// separately that:
// a) The query ID passed is not the current active query for any target/type
// b) There are no active queries for the requested target (and in the case
// of GL_ANY_SAMPLES_PASSED_EXT and GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT,
// no query may be active for either if glBeginQuery targets either.
if (context->isQueryActive())
{
return gl::error(GL_INVALID_OPERATION, false);
}
Query *queryObject = context->getQuery(id, true, target);
// check that name was obtained with glGenQueries
if (!queryObject)
{
return gl::error(GL_INVALID_OPERATION, false);
}
// check for type mismatch
if (queryObject->getType() != target)
{
return gl::error(GL_INVALID_OPERATION, false);
}
return true;
}