Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(217)

Unified Diff: gpu/command_buffer/client/gles2_implementation_impl_autogen.h

Issue 795243002: Add TransformFeedback related APIs to command buffer: PART I. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: gpu/command_buffer/client/gles2_implementation_impl_autogen.h
diff --git a/gpu/command_buffer/client/gles2_implementation_impl_autogen.h b/gpu/command_buffer/client/gles2_implementation_impl_autogen.h
index 0572528b6e2f17c47b54fee2e217e25f3eeb6d94..e7ef7691755286f300146ce2abf6bd323fe4d9ab 100644
--- a/gpu/command_buffer/client/gles2_implementation_impl_autogen.h
+++ b/gpu/command_buffer/client/gles2_implementation_impl_autogen.h
@@ -83,6 +83,16 @@ void GLES2Implementation::BindTexture(GLenum target, GLuint texture) {
CheckGLError();
}
+void GLES2Implementation::BindTransformFeedback(GLenum target,
+ GLuint transformfeedback) {
+ GPU_CLIENT_SINGLE_THREAD_CHECK();
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBindTransformFeedback("
+ << GLES2Util::GetStringTransformFeedbackBindTarget(target)
+ << ", " << transformfeedback << ")");
+ helper_->BindTransformFeedback(target, transformfeedback);
+ CheckGLError();
+}
+
void GLES2Implementation::BlendColor(GLclampf red,
GLclampf green,
GLclampf blue,
@@ -457,6 +467,29 @@ void GLES2Implementation::DeleteTextures(GLsizei n, const GLuint* textures) {
CheckGLError();
}
+void GLES2Implementation::DeleteTransformFeedbacks(GLsizei n,
+ const GLuint* ids) {
+ GPU_CLIENT_SINGLE_THREAD_CHECK();
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteTransformFeedbacks(" << n
+ << ", " << static_cast<const void*>(ids) << ")");
+ GPU_CLIENT_LOG_CODE_BLOCK({
+ for (GLsizei i = 0; i < n; ++i) {
+ GPU_CLIENT_LOG(" " << i << ": " << ids[i]);
+ }
+ });
+ GPU_CLIENT_DCHECK_CODE_BLOCK({
+ for (GLsizei i = 0; i < n; ++i) {
+ DCHECK(ids[i] != 0);
+ }
+ });
+ if (n < 0) {
+ SetGLError(GL_INVALID_VALUE, "glDeleteTransformFeedbacks", "n < 0");
+ return;
+ }
+ DeleteTransformFeedbacksHelper(n, ids);
+ CheckGLError();
+}
+
void GLES2Implementation::DepthFunc(GLenum func) {
GPU_CLIENT_SINGLE_THREAD_CHECK();
GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDepthFunc("
@@ -660,6 +693,27 @@ void GLES2Implementation::GenTextures(GLsizei n, GLuint* textures) {
CheckGLError();
}
+void GLES2Implementation::GenTransformFeedbacks(GLsizei n, GLuint* ids) {
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenTransformFeedbacks(" << n
+ << ", " << static_cast<const void*>(ids) << ")");
+ if (n < 0) {
+ SetGLError(GL_INVALID_VALUE, "glGenTransformFeedbacks", "n < 0");
+ return;
+ }
+ GPU_CLIENT_SINGLE_THREAD_CHECK();
+ GetIdHandler(id_namespaces::kTransformFeedbacks)->MakeIds(this, 0, n, ids);
+ GenTransformFeedbacksHelper(n, ids);
+ helper_->GenTransformFeedbacksImmediate(n, ids);
+ if (share_group_->bind_generates_resource())
+ helper_->CommandBufferHelper::Flush();
+ GPU_CLIENT_LOG_CODE_BLOCK({
+ for (GLsizei i = 0; i < n; ++i) {
+ GPU_CLIENT_LOG(" " << i << ": " << ids[i]);
+ }
+ });
+ CheckGLError();
+}
+
void GLES2Implementation::GetBooleanv(GLenum pname, GLboolean* params) {
GPU_CLIENT_SINGLE_THREAD_CHECK();
GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLboolean, params);
@@ -1318,6 +1372,26 @@ GLboolean GLES2Implementation::IsTexture(GLuint texture) {
return result_value;
}
+GLboolean GLES2Implementation::IsTransformFeedback(GLuint transformfeedback) {
+ GPU_CLIENT_SINGLE_THREAD_CHECK();
+ TRACE_EVENT0("gpu", "GLES2Implementation::IsTransformFeedback");
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsTransformFeedback("
+ << transformfeedback << ")");
+ typedef cmds::IsTransformFeedback::Result Result;
+ Result* result = GetResultAs<Result*>();
+ if (!result) {
+ return GL_FALSE;
+ }
+ *result = 0;
+ helper_->IsTransformFeedback(transformfeedback, GetResultShmId(),
+ GetResultShmOffset());
+ WaitForCmd();
+ GLboolean result_value = *result != 0;
+ GPU_CLIENT_LOG("returned " << result_value);
+ CheckGLError();
+ return result_value;
+}
+
void GLES2Implementation::LineWidth(GLfloat width) {
GPU_CLIENT_SINGLE_THREAD_CHECK();
GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glLineWidth(" << width << ")");
@@ -1325,6 +1399,14 @@ void GLES2Implementation::LineWidth(GLfloat width) {
CheckGLError();
}
+void GLES2Implementation::PauseTransformFeedback() {
+ GPU_CLIENT_SINGLE_THREAD_CHECK();
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glPauseTransformFeedback("
+ << ")");
+ helper_->PauseTransformFeedback();
+ CheckGLError();
+}
+
void GLES2Implementation::PolygonOffset(GLfloat factor, GLfloat units) {
GPU_CLIENT_SINGLE_THREAD_CHECK();
GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glPolygonOffset(" << factor << ", "
@@ -1370,6 +1452,14 @@ void GLES2Implementation::RenderbufferStorage(GLenum target,
CheckGLError();
}
+void GLES2Implementation::ResumeTransformFeedback() {
+ GPU_CLIENT_SINGLE_THREAD_CHECK();
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glResumeTransformFeedback("
+ << ")");
+ helper_->ResumeTransformFeedback();
+ CheckGLError();
+}
+
void GLES2Implementation::SampleCoverage(GLclampf value, GLboolean invert) {
GPU_CLIENT_SINGLE_THREAD_CHECK();
GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glSampleCoverage(" << value << ", "
@@ -2565,6 +2655,23 @@ void GLES2Implementation::DeleteQueriesEXT(GLsizei n, const GLuint* queries) {
CheckGLError();
}
+void GLES2Implementation::BeginTransformFeedback(GLenum primitivemode) {
+ GPU_CLIENT_SINGLE_THREAD_CHECK();
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBeginTransformFeedback("
+ << GLES2Util::GetStringTransformFeedbackPrimitiveMode(
+ primitivemode) << ")");
+ helper_->BeginTransformFeedback(primitivemode);
+ CheckGLError();
+}
+
+void GLES2Implementation::EndTransformFeedback() {
+ GPU_CLIENT_SINGLE_THREAD_CHECK();
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glEndTransformFeedback("
+ << ")");
+ helper_->EndTransformFeedback();
+ CheckGLError();
+}
+
void GLES2Implementation::GenVertexArraysOES(GLsizei n, GLuint* arrays) {
GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenVertexArraysOES(" << n << ", "
<< static_cast<const void*>(arrays) << ")");

Powered by Google App Engine
This is Rietveld 408576698