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 8f2d3f09c3d2b641cae5c739b5221c9519ecc66c..d6b6c976c45c54c90f92c2c70939a18bc744de55 100644 |
--- a/gpu/command_buffer/client/gles2_implementation.cc |
+++ b/gpu/command_buffer/client/gles2_implementation.cc |
@@ -3600,6 +3600,19 @@ void GLES2Implementation::ProduceTextureCHROMIUM(GLenum target, |
CheckGLError(); |
} |
+void GLES2Implementation::ProduceTextureDirectCHROMIUM( |
+ GLuint texture, GLenum target, const GLbyte* data) { |
+ GPU_CLIENT_SINGLE_THREAD_CHECK(); |
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glProduceTextureDirectCHROMIUM(" |
+ << static_cast<const void*>(data) << ")"); |
+ const Mailbox& mailbox = *reinterpret_cast<const Mailbox*>(data); |
+ DCHECK(mailbox.Verify()) << "ProduceTextureDirectCHROMIUM was passed a " |
+ "mailbox that was not generated by " |
+ "GenMailboxCHROMIUM."; |
+ helper_->ProduceTextureDirectCHROMIUMImmediate(texture, target, data); |
+ CheckGLError(); |
+} |
+ |
void GLES2Implementation::ConsumeTextureCHROMIUM(GLenum target, |
const GLbyte* data) { |
GPU_CLIENT_SINGLE_THREAD_CHECK(); |
@@ -3613,6 +3626,25 @@ void GLES2Implementation::ConsumeTextureCHROMIUM(GLenum target, |
CheckGLError(); |
} |
+GLuint GLES2Implementation::CreateAndConsumeTextureCHROMIUM( |
+ GLenum target, const GLbyte* data) { |
+ GPU_CLIENT_SINGLE_THREAD_CHECK(); |
+ GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCreateAndConsumeTextureCHROMIUM(" |
+ << static_cast<const void*>(data) << ")"); |
+ const Mailbox& mailbox = *reinterpret_cast<const Mailbox*>(data); |
+ DCHECK(mailbox.Verify()) << "CreateAndConsumeTextureCHROMIUM was passed a " |
+ "mailbox that was not generated by " |
+ "GenMailboxCHROMIUM."; |
+ GLuint client_id; |
+ GetIdHandler(id_namespaces::kTextures)->MakeIds(this, 0, 1, &client_id); |
+ helper_->CreateAndConsumeTextureCHROMIUMImmediate(target, |
+ client_id, data); |
+ if (share_group_->bind_generates_resource()) |
+ helper_->CommandBufferHelper::Flush(); |
+ CheckGLError(); |
+ return client_id; |
+} |
+ |
void GLES2Implementation::PushGroupMarkerEXT( |
GLsizei length, const GLchar* marker) { |
GPU_CLIENT_SINGLE_THREAD_CHECK(); |