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

Unified Diff: gpu/command_buffer/service/program_manager.cc

Issue 1341133002: Add GL_TRANSFORM_FEEDBACK_BUFFER_MODE to GetProgramiv query. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@uniform
Patch Set: rebase Created 5 years, 3 months 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/service/program_manager.cc
diff --git a/gpu/command_buffer/service/program_manager.cc b/gpu/command_buffer/service/program_manager.cc
index 2d8202d58f7f4199cbe69ef844bccf3e8c77db1a..75960843ba1c236f719d381e03062f7fe31cc9c7 100644
--- a/gpu/command_buffer/service/program_manager.cc
+++ b/gpu/command_buffer/service/program_manager.cc
@@ -1620,8 +1620,13 @@ bool Program::GetTransformFeedbackVaryings(
uint32_t header_size = sizeof(TransformFeedbackVaryingsHeader);
bucket->SetSize(header_size); // In case we fail.
+ GLenum transform_feedback_buffer_mode = 0;
+ GLint param = 0;
+ glGetProgramiv(program, GL_TRANSFORM_FEEDBACK_BUFFER_MODE, &param);
+ transform_feedback_buffer_mode = static_cast<GLenum>(param);
+
uint32_t num_transform_feedback_varyings = 0;
- GLint param = GL_FALSE;
+ param = GL_FALSE;
// We assume program is a valid program service id.
glGetProgramiv(program, GL_LINK_STATUS, &param);
if (param == GL_TRUE) {
@@ -1630,6 +1635,9 @@ bool Program::GetTransformFeedbackVaryings(
num_transform_feedback_varyings = static_cast<uint32_t>(param);
}
if (num_transform_feedback_varyings == 0) {
+ TransformFeedbackVaryingsHeader* header =
+ bucket->GetDataAs<TransformFeedbackVaryingsHeader*>(0, header_size);
+ header->transform_feedback_buffer_mode = transform_feedback_buffer_mode;
return true;
}
@@ -1683,6 +1691,7 @@ bool Program::GetTransformFeedbackVaryings(
DCHECK(data);
// Copy over data for the header and entries.
+ header->transform_feedback_buffer_mode = transform_feedback_buffer_mode;
header->num_transform_feedback_varyings = num_transform_feedback_varyings;
memcpy(entries, &varyings[0], entry_size);

Powered by Google App Engine
This is Rietveld 408576698