| 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..2ca5ce2de8e015d5625f9dfa280424c446884f84 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"
|
| @@ -112,7 +113,7 @@
|
| enter_create.functions()->CreateGraphics3D(
|
| pp_instance(), graphics_context, attrib_list));
|
| EnterResourceNoLock<PPB_Graphics3D_API> enter_graphics(graphics3d_.get(),
|
| - true);
|
| + false);
|
| if (enter_graphics.failed())
|
| return PP_ERROR_BADRESOURCE;
|
|
|
| @@ -332,8 +333,10 @@
|
| 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.empty() || mailboxes.size() == num_textures);
|
| std::vector<uint32_t> texture_ids(num_textures);
|
| if (gles2_impl_) {
|
| gles2_impl_->GenTextures(num_textures, &texture_ids.front());
|
| @@ -360,6 +363,10 @@
|
| GL_UNSIGNED_BYTE,
|
| NULL);
|
| }
|
| + if (!mailboxes.empty()) {
|
| + gles2_impl_->ProduceTextureCHROMIUM(
|
| + GL_TEXTURE_2D, reinterpret_cast<const GLbyte*>(mailboxes[i].name));
|
| + }
|
|
|
| textures_.insert(
|
| std::make_pair(texture_ids[i], Texture(texture_target, size)));
|
|
|