Chromium Code Reviews| Index: gpu/command_buffer/service/gles2_cmd_decoder_autogen.h |
| diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h b/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h |
| index 09d07c0b587862b0d8f9769f504db5bede9bd5df..6f21f569e9ddc2a5b0078664ea099336a8b4f8a3 100644 |
| --- a/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h |
| +++ b/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h |
| @@ -1381,11 +1381,9 @@ error::Error GLES2DecoderImpl::HandleGetBooleanv(uint32_t immediate_data_size, |
| return error::kInvalidArguments; |
| } |
| DoGetBooleanv(pname, params); |
| - GLenum error = glGetError(); |
| + GLenum error = LOCAL_PEEK_GL_ERROR("GetBooleanv"); |
| if (error == GL_NO_ERROR) { |
| result->SetNumResults(num_values); |
| - } else { |
| - LOCAL_SET_GL_ERROR(error, "GetBooleanv", ""); |
| } |
| return error::kNoError; |
| } |
| @@ -1463,11 +1461,9 @@ error::Error GLES2DecoderImpl::HandleGetFloatv(uint32_t immediate_data_size, |
| return error::kInvalidArguments; |
| } |
| DoGetFloatv(pname, params); |
| - GLenum error = glGetError(); |
| + GLenum error = LOCAL_PEEK_GL_ERROR("GetFloatv"); |
| if (error == GL_NO_ERROR) { |
| result->SetNumResults(num_values); |
| - } else { |
| - LOCAL_SET_GL_ERROR(error, "GetFloatv", ""); |
| } |
| return error::kNoError; |
| } |
| @@ -1512,11 +1508,9 @@ error::Error GLES2DecoderImpl::HandleGetFramebufferAttachmentParameteriv( |
| return error::kInvalidArguments; |
| } |
| DoGetFramebufferAttachmentParameteriv(target, attachment, pname, params); |
| - GLenum error = glGetError(); |
| + GLenum error = LOCAL_PEEK_GL_ERROR("GetFramebufferAttachmentParameteriv"); |
| if (error == GL_NO_ERROR) { |
| result->SetNumResults(num_values); |
| - } else { |
| - LOCAL_SET_GL_ERROR(error, "GetFramebufferAttachmentParameteriv", ""); |
| } |
| return error::kNoError; |
| } |
| @@ -1544,11 +1538,9 @@ error::Error GLES2DecoderImpl::HandleGetInteger64v(uint32_t immediate_data_size, |
| return error::kInvalidArguments; |
| } |
| DoGetInteger64v(pname, params); |
| - GLenum error = glGetError(); |
| + GLenum error = LOCAL_PEEK_GL_ERROR("GetInteger64v"); |
| if (error == GL_NO_ERROR) { |
| result->SetNumResults(num_values); |
| - } else { |
| - LOCAL_SET_GL_ERROR(error, "GetInteger64v", ""); |
| } |
| return error::kNoError; |
| } |
| @@ -1577,11 +1569,9 @@ error::Error GLES2DecoderImpl::HandleGetIntegeri_v(uint32_t immediate_data_size, |
| return error::kInvalidArguments; |
| } |
| glGetIntegeri_v(pname, index, data); |
| - GLenum error = glGetError(); |
| + GLenum error = LOCAL_PEEK_GL_ERROR("GetIntegeri_v"); |
| if (error == GL_NO_ERROR) { |
| result->SetNumResults(num_values); |
| - } else { |
| - LOCAL_SET_GL_ERROR(error, "GetIntegeri_v", ""); |
| } |
| return error::kNoError; |
| } |
| @@ -1611,11 +1601,9 @@ error::Error GLES2DecoderImpl::HandleGetInteger64i_v( |
| return error::kInvalidArguments; |
| } |
| glGetInteger64i_v(pname, index, data); |
| - GLenum error = glGetError(); |
| + GLenum error = LOCAL_PEEK_GL_ERROR("GetInteger64i_v"); |
| if (error == GL_NO_ERROR) { |
| result->SetNumResults(num_values); |
| - } else { |
| - LOCAL_SET_GL_ERROR(error, "GetInteger64i_v", ""); |
| } |
| return error::kNoError; |
| } |
| @@ -1645,11 +1633,9 @@ error::Error GLES2DecoderImpl::HandleGetIntegerv(uint32_t immediate_data_size, |
| return error::kInvalidArguments; |
| } |
| DoGetIntegerv(pname, params); |
| - GLenum error = glGetError(); |
| + GLenum error = LOCAL_PEEK_GL_ERROR("GetIntegerv"); |
| if (error == GL_NO_ERROR) { |
| result->SetNumResults(num_values); |
| - } else { |
| - LOCAL_SET_GL_ERROR(error, "GetIntegerv", ""); |
| } |
| return error::kNoError; |
| } |
| @@ -1668,7 +1654,23 @@ error::Error GLES2DecoderImpl::HandleGetInternalformativ( |
| GLsizei bufSize = static_cast<GLsizei>(c.bufSize); |
| typedef cmds::GetInternalformativ::Result Result; |
| GLsizei num_values = 0; |
| - GetNumValuesReturnedForGLGet(pname, &num_values); |
| + if (bufSize > 0) { |
| + // Sanity check for |bufSize| and set its upbound. |
| + GLint value = 0; |
| + LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("GetInternalformativ"); |
| + glGetInternalformativ(target, format, GL_NUM_SAMPLE_COUNTS, 1, &value); |
|
piman
2015/06/01 21:29:37
GL_NUM_SAMPLE_COUNTS is only involved if pname is
|
| + GLenum error = LOCAL_PEEK_GL_ERROR("GetInternalformativ"); |
| + if (error != GL_NO_ERROR) { |
| + return error::kNoError; |
| + } |
| + if (value < bufSize) { |
| + bufSize = value; |
| + } |
| + } |
| + |
| + if (bufSize > 0) { |
| + num_values = static_cast<GLsizei>(bufSize); |
| + } |
| Result* result = GetSharedMemoryAs<Result*>( |
| c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values)); |
| GLint* params = result ? result->GetData() : NULL; |
| @@ -1681,11 +1683,9 @@ error::Error GLES2DecoderImpl::HandleGetInternalformativ( |
| return error::kInvalidArguments; |
| } |
| glGetInternalformativ(target, format, pname, bufSize, params); |
| - GLenum error = glGetError(); |
| + GLenum error = LOCAL_PEEK_GL_ERROR("GetInternalformativ"); |
| if (error == GL_NO_ERROR) { |
| result->SetNumResults(num_values); |
| - } else { |
| - LOCAL_SET_GL_ERROR(error, "GetInternalformativ", ""); |
| } |
| return error::kNoError; |
| } |
| @@ -1716,11 +1716,9 @@ error::Error GLES2DecoderImpl::HandleGetProgramiv(uint32_t immediate_data_size, |
| return error::kInvalidArguments; |
| } |
| DoGetProgramiv(program, pname, params); |
| - GLenum error = glGetError(); |
| + GLenum error = LOCAL_PEEK_GL_ERROR("GetProgramiv"); |
| if (error == GL_NO_ERROR) { |
| result->SetNumResults(num_values); |
| - } else { |
| - LOCAL_SET_GL_ERROR(error, "GetProgramiv", ""); |
| } |
| return error::kNoError; |
| } |
| @@ -1758,11 +1756,9 @@ error::Error GLES2DecoderImpl::HandleGetRenderbufferParameteriv( |
| return error::kInvalidArguments; |
| } |
| DoGetRenderbufferParameteriv(target, pname, params); |
| - GLenum error = glGetError(); |
| + GLenum error = LOCAL_PEEK_GL_ERROR("GetRenderbufferParameteriv"); |
| if (error == GL_NO_ERROR) { |
| result->SetNumResults(num_values); |
| - } else { |
| - LOCAL_SET_GL_ERROR(error, "GetRenderbufferParameteriv", ""); |
| } |
| return error::kNoError; |
| } |
| @@ -1797,11 +1793,9 @@ error::Error GLES2DecoderImpl::HandleGetSamplerParameterfv( |
| return error::kNoError; |
| } |
| glGetSamplerParameterfv(sampler, pname, params); |
| - GLenum error = glGetError(); |
| + GLenum error = LOCAL_PEEK_GL_ERROR("GetSamplerParameterfv"); |
| if (error == GL_NO_ERROR) { |
| result->SetNumResults(num_values); |
| - } else { |
| - LOCAL_SET_GL_ERROR(error, "GetSamplerParameterfv", ""); |
| } |
| return error::kNoError; |
| } |
| @@ -1836,11 +1830,9 @@ error::Error GLES2DecoderImpl::HandleGetSamplerParameteriv( |
| return error::kNoError; |
| } |
| glGetSamplerParameteriv(sampler, pname, params); |
| - GLenum error = glGetError(); |
| + GLenum error = LOCAL_PEEK_GL_ERROR("GetSamplerParameteriv"); |
| if (error == GL_NO_ERROR) { |
| result->SetNumResults(num_values); |
| - } else { |
| - LOCAL_SET_GL_ERROR(error, "GetSamplerParameteriv", ""); |
| } |
| return error::kNoError; |
| } |
| @@ -1871,11 +1863,9 @@ error::Error GLES2DecoderImpl::HandleGetShaderiv(uint32_t immediate_data_size, |
| return error::kInvalidArguments; |
| } |
| DoGetShaderiv(shader, pname, params); |
| - GLenum error = glGetError(); |
| + GLenum error = LOCAL_PEEK_GL_ERROR("GetShaderiv"); |
| if (error == GL_NO_ERROR) { |
| result->SetNumResults(num_values); |
| - } else { |
| - LOCAL_SET_GL_ERROR(error, "GetShaderiv", ""); |
| } |
| return error::kNoError; |
| } |
| @@ -1909,11 +1899,9 @@ error::Error GLES2DecoderImpl::HandleGetSynciv(uint32_t immediate_data_size, |
| return error::kNoError; |
| } |
| glGetSynciv(service_sync, pname, num_values, nullptr, values); |
| - GLenum error = glGetError(); |
| + GLenum error = LOCAL_PEEK_GL_ERROR("GetSynciv"); |
| if (error == GL_NO_ERROR) { |
| result->SetNumResults(num_values); |
| - } else { |
| - LOCAL_SET_GL_ERROR(error, "GetSynciv", ""); |
| } |
| return error::kNoError; |
| } |
| @@ -1949,11 +1937,9 @@ error::Error GLES2DecoderImpl::HandleGetTexParameterfv( |
| return error::kInvalidArguments; |
| } |
| DoGetTexParameterfv(target, pname, params); |
| - GLenum error = glGetError(); |
| + GLenum error = LOCAL_PEEK_GL_ERROR("GetTexParameterfv"); |
| if (error == GL_NO_ERROR) { |
| result->SetNumResults(num_values); |
| - } else { |
| - LOCAL_SET_GL_ERROR(error, "GetTexParameterfv", ""); |
| } |
| return error::kNoError; |
| } |
| @@ -1989,11 +1975,9 @@ error::Error GLES2DecoderImpl::HandleGetTexParameteriv( |
| return error::kInvalidArguments; |
| } |
| DoGetTexParameteriv(target, pname, params); |
| - GLenum error = glGetError(); |
| + GLenum error = LOCAL_PEEK_GL_ERROR("GetTexParameteriv"); |
| if (error == GL_NO_ERROR) { |
| result->SetNumResults(num_values); |
| - } else { |
| - LOCAL_SET_GL_ERROR(error, "GetTexParameteriv", ""); |
| } |
| return error::kNoError; |
| } |
| @@ -2025,11 +2009,9 @@ error::Error GLES2DecoderImpl::HandleGetVertexAttribfv( |
| return error::kInvalidArguments; |
| } |
| DoGetVertexAttribfv(index, pname, params); |
| - GLenum error = glGetError(); |
| + GLenum error = LOCAL_PEEK_GL_ERROR("GetVertexAttribfv"); |
| if (error == GL_NO_ERROR) { |
| result->SetNumResults(num_values); |
| - } else { |
| - LOCAL_SET_GL_ERROR(error, "GetVertexAttribfv", ""); |
| } |
| return error::kNoError; |
| } |
| @@ -2061,11 +2043,9 @@ error::Error GLES2DecoderImpl::HandleGetVertexAttribiv( |
| return error::kInvalidArguments; |
| } |
| DoGetVertexAttribiv(index, pname, params); |
| - GLenum error = glGetError(); |
| + GLenum error = LOCAL_PEEK_GL_ERROR("GetVertexAttribiv"); |
| if (error == GL_NO_ERROR) { |
| result->SetNumResults(num_values); |
| - } else { |
| - LOCAL_SET_GL_ERROR(error, "GetVertexAttribiv", ""); |
| } |
| return error::kNoError; |
| } |
| @@ -2095,11 +2075,9 @@ error::Error GLES2DecoderImpl::HandleGetVertexAttribIiv( |
| return error::kInvalidArguments; |
| } |
| DoGetVertexAttribIiv(index, pname, params); |
| - GLenum error = glGetError(); |
| + GLenum error = LOCAL_PEEK_GL_ERROR("GetVertexAttribIiv"); |
| if (error == GL_NO_ERROR) { |
| result->SetNumResults(num_values); |
| - } else { |
| - LOCAL_SET_GL_ERROR(error, "GetVertexAttribIiv", ""); |
| } |
| return error::kNoError; |
| } |
| @@ -2129,11 +2107,9 @@ error::Error GLES2DecoderImpl::HandleGetVertexAttribIuiv( |
| return error::kInvalidArguments; |
| } |
| DoGetVertexAttribIuiv(index, pname, params); |
| - GLenum error = glGetError(); |
| + GLenum error = LOCAL_PEEK_GL_ERROR("GetVertexAttribIuiv"); |
| if (error == GL_NO_ERROR) { |
| result->SetNumResults(num_values); |
| - } else { |
| - LOCAL_SET_GL_ERROR(error, "GetVertexAttribIuiv", ""); |
| } |
| return error::kNoError; |
| } |