Index: ppapi/proxy/video_decoder_resource.cc |
diff --git a/ppapi/proxy/video_decoder_resource.cc b/ppapi/proxy/video_decoder_resource.cc |
index 95365e8bba8e67e29c9834a7d0c118ef122067ae..39540292cf3cc15c58f82830003cec6a75bb70e5 100644 |
--- a/ppapi/proxy/video_decoder_resource.cc |
+++ b/ppapi/proxy/video_decoder_resource.cc |
@@ -7,6 +7,7 @@ |
#include "base/bind.h" |
#include "gpu/command_buffer/client/gles2_cmd_helper.h" |
#include "gpu/command_buffer/client/gles2_implementation.h" |
+#include "gpu/command_buffer/common/mailbox.h" |
#include "ipc/ipc_message.h" |
#include "ppapi/c/pp_errors.h" |
#include "ppapi/c/ppb_opengles2.h" |
@@ -332,8 +333,10 @@ void VideoDecoderResource::OnPluginMsgRequestTextures( |
const ResourceMessageReplyParams& params, |
uint32_t num_textures, |
const PP_Size& size, |
- uint32_t texture_target) { |
+ uint32_t texture_target, |
+ const std::vector<gpu::Mailbox>& mailboxes) { |
DCHECK(num_textures); |
+ DCHECK(!mailboxes.size() || mailboxes.size() == num_textures); |
dmichael (off chromium)
2014/06/05 23:00:44
!mailboxes.size()
->
mailboxes.empty()
bbudge
2014/06/06 02:03:46
Done.
|
std::vector<uint32_t> texture_ids(num_textures); |
if (gles2_impl_) { |
gles2_impl_->GenTextures(num_textures, &texture_ids.front()); |
@@ -360,6 +363,8 @@ void VideoDecoderResource::OnPluginMsgRequestTextures( |
GL_UNSIGNED_BYTE, |
NULL); |
} |
+ if (!mailboxes.empty()) |
+ gles2_impl_->ProduceTextureCHROMIUM(GL_TEXTURE_2D, mailboxes[i].name); |
textures_.insert( |
std::make_pair(texture_ids[i], Texture(texture_target, size))); |