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

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

Issue 2831733003: Fix blits from multisampled renderbuffers to alpha:false WebGL back buffer. (Closed)
Patch Set: Add PLATFORM_EXPORT to fix link failure on Windows. Created 3 years, 8 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/gles2_cmd_decoder_passthrough.cc
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
index eac5a98899c05e024437b08b58350db93e6b14bd..032369e06db46d17aa9dc61a7f5f377dc5fcdf2d 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
@@ -885,6 +885,34 @@ void GLES2DecoderPassthroughImpl::UpdateTextureBinding(GLenum target,
}
}
+error::Error GLES2DecoderPassthroughImpl::BindTexImage2DCHROMIUMImpl(
+ GLenum target,
+ GLenum internalformat,
+ GLint imageId) {
+ if (target != GL_TEXTURE_2D) {
+ InsertError(GL_INVALID_ENUM, "Invalid target");
+ return error::kNoError;
+ }
+
+ 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 (internalformat) {
+ if (!image->BindTexImageWithInternalformat(target, internalformat)) {
+ image->CopyTexImage(target);
+ }
+ } else {
+ if (!image->BindTexImage(target)) {
+ image->CopyTexImage(target);
+ }
+ }
+
+ return error::kNoError;
+}
+
#define GLES2_CMD_OP(name) \
{ \
&GLES2DecoderPassthroughImpl::Handle##name, cmds::name::kArgFlags, \

Powered by Google App Engine
This is Rietveld 408576698