Format ES3 query entry points.
Also refactor some query extension entry points.
BUG=angleproject:747
Change-Id: I5a8a3b2616a3872b5645a655641ec9c12739f804
Reviewed-on: https://chromium-review.googlesource.com/636062
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/Context.cpp b/src/libANGLE/Context.cpp
index 9df07d0..deaaa88 100644
--- a/src/libANGLE/Context.cpp
+++ b/src/libANGLE/Context.cpp
@@ -656,14 +656,6 @@
return handle;
}
-// Returns an unused query name
-GLuint Context::createQuery()
-{
- GLuint handle = mQueryHandleAllocator.allocate();
- mQueryMap.assign(handle, nullptr);
- return handle;
-}
-
void Context::deleteBuffer(GLuint buffer)
{
if (mState.mBuffers->getBuffer(buffer))
@@ -869,19 +861,6 @@
}
}
-void Context::deleteQuery(GLuint query)
-{
- Query *queryObject = nullptr;
- if (mQueryMap.erase(query, &queryObject))
- {
- mQueryHandleAllocator.release(query);
- if (queryObject)
- {
- queryObject->release(this);
- }
- }
-}
-
Buffer *Context::getBuffer(GLuint handle) const
{
return mState.mBuffers->getBuffer(handle);
@@ -1181,45 +1160,37 @@
mGLState.setTransformFeedbackBinding(this, transformFeedback);
}
-Error Context::beginQuery(GLenum target, GLuint query)
+void Context::beginQuery(GLenum target, GLuint query)
{
Query *queryObject = getQuery(query, true, target);
ASSERT(queryObject);
// begin query
- Error error = queryObject->begin();
- if (error.isError())
- {
- return error;
- }
+ ANGLE_CONTEXT_TRY(queryObject->begin());
// set query as active for specified target only if begin succeeded
mGLState.setActiveQuery(this, target, queryObject);
-
- return NoError();
}
-Error Context::endQuery(GLenum target)
+void Context::endQuery(GLenum target)
{
Query *queryObject = mGLState.getActiveQuery(target);
ASSERT(queryObject);
- gl::Error error = queryObject->end();
+ handleError(queryObject->end());
// Always unbind the query, even if there was an error. This may delete the query object.
mGLState.setActiveQuery(this, target, nullptr);
-
- return error;
}
-Error Context::queryCounter(GLuint id, GLenum target)
+void Context::queryCounter(GLuint id, GLenum target)
{
ASSERT(target == GL_TIMESTAMP_EXT);
Query *queryObject = getQuery(id, true, target);
ASSERT(queryObject);
- return queryObject->queryCounter();
+ handleError(queryObject->queryCounter());
}
void Context::getQueryiv(GLenum target, GLenum pname, GLint *params)
@@ -4952,4 +4923,37 @@
program->setUniform4uiv(location, count, value);
}
+void Context::genQueries(GLsizei n, GLuint *ids)
+{
+ for (GLsizei i = 0; i < n; i++)
+ {
+ GLuint handle = mQueryHandleAllocator.allocate();
+ mQueryMap.assign(handle, nullptr);
+ ids[i] = handle;
+ }
+}
+
+void Context::deleteQueries(GLsizei n, const GLuint *ids)
+{
+ for (int i = 0; i < n; i++)
+ {
+ GLuint query = ids[i];
+
+ Query *queryObject = nullptr;
+ if (mQueryMap.erase(query, &queryObject))
+ {
+ mQueryHandleAllocator.release(query);
+ if (queryObject)
+ {
+ queryObject->release(this);
+ }
+ }
+ }
+}
+
+GLboolean Context::isQuery(GLuint id)
+{
+ return (getQuery(id, false, GL_NONE) != nullptr) ? GL_TRUE : GL_FALSE;
+}
+
} // namespace gl