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 a8f03ab7fa00f1603695726ad18a64e432944c5e..e7563f8fa1e182df038f27e78591454b75d26ef1 100644 |
--- a/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h |
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h |
@@ -3661,6 +3661,41 @@ error::Error GLES2DecoderImpl::HandleUniformMatrix4x3fvImmediate( |
return error::kNoError; |
} |
+error::Error |
+GLES2DecoderImpl::HandleUniformMatrix4fvWithCustomMatrixCHROMIUMImmediate( |
+ uint32_t immediate_data_size, |
+ const void* cmd_data) { |
+ const gles2::cmds::UniformMatrix4fvWithCustomMatrixCHROMIUMImmediate& c = |
+ *static_cast<const gles2::cmds:: |
+ UniformMatrix4fvWithCustomMatrixCHROMIUMImmediate*>( |
+ cmd_data); |
+ (void)c; |
+ GLint location = static_cast<GLint>(c.location); |
+ GLenum custom_matrix = static_cast<GLenum>(c.custom_matrix); |
+ GLboolean transpose = static_cast<GLboolean>(c.transpose); |
+ uint32_t data_size; |
+ if (!ComputeDataSize(1, sizeof(GLfloat), 16, &data_size)) { |
+ return error::kOutOfBounds; |
+ } |
+ if (data_size > immediate_data_size) { |
+ return error::kOutOfBounds; |
+ } |
+ const GLfloat* default_value = |
+ GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size); |
+ if (!validators_->custom_matrix_parameter.IsValid(custom_matrix)) { |
+ LOCAL_SET_GL_ERROR_INVALID_ENUM( |
+ "glUniformMatrix4fvWithCustomMatrixCHROMIUM", custom_matrix, |
+ "custom_matrix"); |
+ return error::kNoError; |
+ } |
+ if (default_value == NULL) { |
+ return error::kOutOfBounds; |
+ } |
+ DoUniformMatrix4fvWithCustomMatrixCHROMIUM(location, custom_matrix, transpose, |
+ default_value); |
+ return error::kNoError; |
+} |
+ |
error::Error GLES2DecoderImpl::HandleUseProgram(uint32_t immediate_data_size, |
const void* cmd_data) { |
const gles2::cmds::UseProgram& c = |