Index: gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc |
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc |
index 3600f809af1e651a59682c19bd055293b4d035ff..9bfcb6b2750c7578ba5e0b76107cdb2812d64803 100644 |
--- a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc |
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc |
@@ -3485,15 +3485,22 @@ error::Error GLES2DecoderPassthroughImpl::DoBindUniformLocationCHROMIUM( |
error::Error GLES2DecoderPassthroughImpl::DoBindTexImage2DCHROMIUM( |
GLenum target, |
GLint imageId) { |
- return BindTexImage2DCHROMIUMImpl(target, 0, imageId); |
-} |
+ if (target != GL_TEXTURE_2D) { |
+ InsertError(GL_INVALID_ENUM, "Invalid target"); |
+ return error::kNoError; |
+ } |
-error::Error |
-GLES2DecoderPassthroughImpl::DoBindTexImage2DWithInternalformatCHROMIUM( |
- GLenum target, |
- GLenum internalformat, |
- GLint imageId) { |
- return BindTexImage2DCHROMIUMImpl(target, internalformat, imageId); |
+ gl::GLImage* image = image_manager_->LookupImage(imageId); |
+ if (image == nullptr) { |
+ InsertError(GL_INVALID_OPERATION, "No image found with the given ID"); |
+ return error::kNoError; |
+ } |
+ |
+ if (!image->BindTexImage(target)) { |
+ image->CopyTexImage(target); |
+ } |
+ |
+ return error::kNoError; |
} |
error::Error GLES2DecoderPassthroughImpl::DoReleaseTexImage2DCHROMIUM( |