| 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 691f524497ad9cc53dd90b6dff80e2ea31878c10..a5625a464da25f658f1e17c415d405de0d2a7f2f 100644
|
| --- a/content/renderer/pepper/ppb_graphics_3d_impl.cc
|
| +++ b/content/renderer/pepper/ppb_graphics_3d_impl.cc
|
| @@ -45,9 +45,7 @@
|
| has_alpha_(false),
|
| weak_ptr_factory_(this) {}
|
|
|
| -PPB_Graphics3D_Impl::~PPB_Graphics3D_Impl() {
|
| - command_buffer_->SetGpuControlClient(nullptr);
|
| -}
|
| +PPB_Graphics3D_Impl::~PPB_Graphics3D_Impl() {}
|
|
|
| // static
|
| PP_Resource PPB_Graphics3D_Impl::CreateRaw(
|
| @@ -246,28 +244,27 @@
|
| gpu_preference);
|
| if (!command_buffer_)
|
| return false;
|
| -
|
| - command_buffer_->SetGpuControlClient(this);
|
| -
|
| if (!command_buffer_->Initialize())
|
| return false;
|
| -
|
| if (shared_state_handle)
|
| *shared_state_handle = command_buffer_->GetSharedStateHandle();
|
| if (capabilities)
|
| *capabilities = command_buffer_->GetCapabilities();
|
| if (command_buffer_id)
|
| *command_buffer_id = command_buffer_->GetCommandBufferID();
|
| -
|
| mailbox_ = gpu::Mailbox::Generate();
|
| if (!command_buffer_->ProduceFrontBuffer(mailbox_))
|
| return false;
|
|
|
| + command_buffer_->SetContextLostCallback(base::Bind(
|
| + &PPB_Graphics3D_Impl::OnContextLost, weak_ptr_factory_.GetWeakPtr()));
|
| +
|
| + command_buffer_->SetOnConsoleMessageCallback(base::Bind(
|
| + &PPB_Graphics3D_Impl::OnConsoleMessage, weak_ptr_factory_.GetWeakPtr()));
|
| return true;
|
| }
|
|
|
| -void PPB_Graphics3D_Impl::OnGpuControlErrorMessage(const char* message,
|
| - int32_t id) {
|
| +void PPB_Graphics3D_Impl::OnConsoleMessage(const std::string& message, int id) {
|
| if (!bound_to_instance_)
|
| return;
|
| WebPluginContainer* container =
|
| @@ -282,27 +279,6 @@
|
| frame->addMessageToConsole(console_message);
|
| }
|
|
|
| -void PPB_Graphics3D_Impl::OnGpuControlLostContext() {
|
| -#if DCHECK_IS_ON()
|
| - // This should never occur more than once.
|
| - DCHECK(!lost_context_);
|
| - lost_context_ = true;
|
| -#endif
|
| -
|
| - // Don't need to check for null from GetPluginInstance since when we're
|
| - // bound, we know our instance is valid.
|
| - if (bound_to_instance_) {
|
| - HostGlobals::Get()->GetInstance(pp_instance())->BindGraphics(pp_instance(),
|
| - 0);
|
| - }
|
| -
|
| - // Send context lost to plugin. This may have been caused by a PPAPI call, so
|
| - // avoid re-entering.
|
| - base::ThreadTaskRunnerHandle::Get()->PostTask(
|
| - FROM_HERE, base::Bind(&PPB_Graphics3D_Impl::SendContextLost,
|
| - weak_ptr_factory_.GetWeakPtr()));
|
| -}
|
| -
|
| void PPB_Graphics3D_Impl::OnSwapBuffers() {
|
| if (HasPendingSwap()) {
|
| // If we're off-screen, no need to trigger and wait for compositing.
|
| @@ -310,6 +286,21 @@
|
| commit_pending_ = false;
|
| SwapBuffersACK(PP_OK);
|
| }
|
| +}
|
| +
|
| +void PPB_Graphics3D_Impl::OnContextLost() {
|
| + // Don't need to check for NULL from GetPluginInstance since when we're
|
| + // bound, we know our instance is valid.
|
| + if (bound_to_instance_) {
|
| + HostGlobals::Get()->GetInstance(pp_instance())->BindGraphics(pp_instance(),
|
| + 0);
|
| + }
|
| +
|
| + // Send context lost to plugin. This may have been caused by a PPAPI call, so
|
| + // avoid re-entering.
|
| + base::ThreadTaskRunnerHandle::Get()->PostTask(
|
| + FROM_HERE, base::Bind(&PPB_Graphics3D_Impl::SendContextLost,
|
| + weak_ptr_factory_.GetWeakPtr()));
|
| }
|
|
|
| void PPB_Graphics3D_Impl::SendContextLost() {
|
|
|