| Index: content/renderer/pepper/ppb_graphics_3d_impl.cc
|
| diff --git a/content/renderer/pepper/ppb_graphics_3d_impl.cc b/content/renderer/pepper/ppb_graphics_3d_impl.cc
|
| index a4ff059b9c527b7a6ea22bd8017f0a0022daadb3..7486abce9ff90024dcc8938491f6c0ac378506e2 100644
|
| --- a/content/renderer/pepper/ppb_graphics_3d_impl.cc
|
| +++ b/content/renderer/pepper/ppb_graphics_3d_impl.cc
|
| @@ -81,9 +81,11 @@ PP_Resource PPB_Graphics3D_Impl::Create(PP_Instance instance,
|
| }
|
|
|
| // static
|
| -PP_Resource PPB_Graphics3D_Impl::CreateRaw(PP_Instance instance,
|
| - PP_Resource share_context,
|
| - const int32_t* attrib_list) {
|
| +PP_Resource PPB_Graphics3D_Impl::CreateRaw(
|
| + PP_Instance instance,
|
| + PP_Resource share_context,
|
| + const int32_t* attrib_list,
|
| + base::SharedMemoryHandle* shared_state_handle) {
|
| PPB_Graphics3D_API* share_api = NULL;
|
| if (share_context) {
|
| EnterResourceNoLock<PPB_Graphics3D_API> enter(share_context, true);
|
| @@ -93,7 +95,7 @@ PP_Resource PPB_Graphics3D_Impl::CreateRaw(PP_Instance instance,
|
| }
|
| scoped_refptr<PPB_Graphics3D_Impl> graphics_3d(
|
| new PPB_Graphics3D_Impl(instance));
|
| - if (!graphics_3d->InitRaw(share_api, attrib_list))
|
| + if (!graphics_3d->InitRaw(share_api, attrib_list, shared_state_handle))
|
| return 0;
|
| return graphics_3d->GetReference();
|
| }
|
| @@ -207,7 +209,7 @@ int32 PPB_Graphics3D_Impl::DoSwapBuffers() {
|
|
|
| bool PPB_Graphics3D_Impl::Init(PPB_Graphics3D_API* share_context,
|
| const int32_t* attrib_list) {
|
| - if (!InitRaw(share_context, attrib_list))
|
| + if (!InitRaw(share_context, attrib_list, NULL))
|
| return false;
|
|
|
| gpu::gles2::GLES2Implementation* share_gles2 = NULL;
|
| @@ -219,8 +221,10 @@ bool PPB_Graphics3D_Impl::Init(PPB_Graphics3D_API* share_context,
|
| return CreateGLES2Impl(kCommandBufferSize, kTransferBufferSize, share_gles2);
|
| }
|
|
|
| -bool PPB_Graphics3D_Impl::InitRaw(PPB_Graphics3D_API* share_context,
|
| - const int32_t* attrib_list) {
|
| +bool PPB_Graphics3D_Impl::InitRaw(
|
| + PPB_Graphics3D_API* share_context,
|
| + const int32_t* attrib_list,
|
| + base::SharedMemoryHandle* shared_state_handle) {
|
| PepperPluginInstanceImpl* plugin_instance =
|
| HostGlobals::Get()->GetInstance(pp_instance());
|
| if (!plugin_instance)
|
| @@ -289,6 +293,8 @@ bool PPB_Graphics3D_Impl::InitRaw(PPB_Graphics3D_API* share_context,
|
| return false;
|
| if (!command_buffer_->Initialize())
|
| return false;
|
| + if (shared_state_handle)
|
| + *shared_state_handle = command_buffer_->GetSharedStateHandle();
|
| mailbox_ = gpu::Mailbox::Generate();
|
| if (!command_buffer_->ProduceFrontBuffer(mailbox_))
|
| return false;
|
|
|