Index: gpu/command_buffer/client/gles2_implementation.cc |
diff --git a/gpu/command_buffer/client/gles2_implementation.cc b/gpu/command_buffer/client/gles2_implementation.cc |
index 1c8045d75bd8269809b1690837a016d494ee94e7..b4c2858ca3f04089e32e607f82de3a7245cc374b 100644 |
--- a/gpu/command_buffer/client/gles2_implementation.cc |
+++ b/gpu/command_buffer/client/gles2_implementation.cc |
@@ -3875,7 +3875,7 @@ void GLES2Implementation::GetVertexAttribfv( |
<< static_cast<const void*>(params) << ")"); |
uint32 value = 0; |
if (vertex_array_object_manager_->GetVertexAttrib(index, pname, &value)) { |
- *params = static_cast<float>(value); |
+ *params = static_cast<GLfloat>(value); |
return; |
} |
TRACE_EVENT0("gpu", "GLES2::GetVertexAttribfv"); |
@@ -3906,7 +3906,7 @@ void GLES2Implementation::GetVertexAttribiv( |
<< static_cast<const void*>(params) << ")"); |
uint32 value = 0; |
if (vertex_array_object_manager_->GetVertexAttrib(index, pname, &value)) { |
- *params = value; |
+ *params = static_cast<GLint>(value); |
return; |
} |
TRACE_EVENT0("gpu", "GLES2::GetVertexAttribiv"); |
@@ -3928,6 +3928,68 @@ void GLES2Implementation::GetVertexAttribiv( |
CheckGLError(); |
} |
+void GLES2Implementation::GetVertexAttribIiv( |
+ GLuint index, GLenum pname, GLint* params) { |
+ GPU_CLIENT_SINGLE_THREAD_CHECK(); |
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetVertexAttribIiv(" |
+ << index << ", " |
+ << GLES2Util::GetStringVertexAttribute(pname) << ", " |
+ << static_cast<const void*>(params) << ")"); |
+ uint32 value = 0; |
+ if (vertex_array_object_manager_->GetVertexAttrib(index, pname, &value)) { |
+ *params = static_cast<GLint>(value); |
+ return; |
+ } |
+ TRACE_EVENT0("gpu", "GLES2::GetVertexAttribIiv"); |
+ typedef cmds::GetVertexAttribiv::Result Result; |
+ Result* result = GetResultAs<Result*>(); |
+ if (!result) { |
+ return; |
+ } |
+ result->SetNumResults(0); |
+ helper_->GetVertexAttribIiv( |
+ index, pname, GetResultShmId(), GetResultShmOffset()); |
+ WaitForCmd(); |
+ result->CopyResult(params); |
+ GPU_CLIENT_LOG_CODE_BLOCK({ |
+ for (int32 i = 0; i < result->GetNumResults(); ++i) { |
+ GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); |
+ } |
+ }); |
+ CheckGLError(); |
+} |
+ |
+void GLES2Implementation::GetVertexAttribIuiv( |
+ GLuint index, GLenum pname, GLuint* params) { |
+ GPU_CLIENT_SINGLE_THREAD_CHECK(); |
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetVertexAttribIuiv(" |
+ << index << ", " |
+ << GLES2Util::GetStringVertexAttribute(pname) << ", " |
+ << static_cast<const void*>(params) << ")"); |
+ uint32 value = 0; |
+ if (vertex_array_object_manager_->GetVertexAttrib(index, pname, &value)) { |
+ *params = static_cast<GLuint>(value); |
+ return; |
+ } |
+ TRACE_EVENT0("gpu", "GLES2::GetVertexAttribIuiv"); |
+ typedef cmds::GetVertexAttribiv::Result Result; |
+ Result* result = GetResultAs<Result*>(); |
+ if (!result) { |
+ return; |
+ } |
+ result->SetNumResults(0); |
+ helper_->GetVertexAttribIuiv( |
+ index, pname, GetResultShmId(), GetResultShmOffset()); |
+ WaitForCmd(); |
+ result->CopyResult(params); |
+ GPU_CLIENT_LOG_CODE_BLOCK({ |
+ for (int32 i = 0; i < result->GetNumResults(); ++i) { |
+ GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); |
+ } |
+ }); |
+ CheckGLError(); |
+} |
+ |
void GLES2Implementation::Swap() { |
SwapBuffers(); |
} |