Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(320)

Unified Diff: webkit/plugins/ppapi/ppb_surface_3d_impl.cc

Issue 8676042: Remove Context3D/Surface3D (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: style Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webkit/plugins/ppapi/ppb_surface_3d_impl.h ('k') | webkit/plugins/ppapi/ppb_video_decoder_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/plugins/ppapi/ppb_surface_3d_impl.cc
diff --git a/webkit/plugins/ppapi/ppb_surface_3d_impl.cc b/webkit/plugins/ppapi/ppb_surface_3d_impl.cc
deleted file mode 100644
index e7f81c82d70265243fae69090b0877780aa72ee3..0000000000000000000000000000000000000000
--- a/webkit/plugins/ppapi/ppb_surface_3d_impl.cc
+++ /dev/null
@@ -1,194 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "webkit/plugins/ppapi/ppb_surface_3d_impl.h"
-
-#include "base/bind.h"
-#include "base/message_loop.h"
-#include "gpu/command_buffer/client/gles2_implementation.h"
-#include "gpu/command_buffer/common/command_buffer.h"
-#include "ppapi/c/ppb_graphics_3d.h"
-#include "ppapi/c/ppp_graphics_3d.h"
-#include "webkit/plugins/ppapi/common.h"
-#include "webkit/plugins/ppapi/plugin_module.h"
-#include "webkit/plugins/ppapi/ppapi_plugin_instance.h"
-#include "webkit/plugins/ppapi/ppb_context_3d_impl.h"
-#include "webkit/plugins/ppapi/resource_helper.h"
-
-using ppapi::thunk::PPB_Surface3D_API;
-
-namespace webkit {
-namespace ppapi {
-
-PPB_Surface3D_Impl::PPB_Surface3D_Impl(PP_Instance instance)
- : Resource(instance),
- bound_to_instance_(false),
- swap_initiated_(false),
- context_(NULL),
- weak_ptr_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) {
-}
-
-PPB_Surface3D_Impl::~PPB_Surface3D_Impl() {
- if (context_)
- context_->BindSurfacesImpl(NULL, NULL);
-}
-
-// static
-PP_Resource PPB_Surface3D_Impl::Create(PP_Instance instance,
- PP_Config3D_Dev config,
- const int32_t* attrib_list) {
- scoped_refptr<PPB_Surface3D_Impl> surface(
- new PPB_Surface3D_Impl(instance));
- if (!surface->Init(config, attrib_list))
- return 0;
- return surface->GetReference();
-}
-
-PPB_Surface3D_API* PPB_Surface3D_Impl::AsPPB_Surface3D_API() {
- return this;
-}
-
-int32_t PPB_Surface3D_Impl::SetAttrib(int32_t attribute, int32_t value) {
- // TODO(alokp): Implement me.
- return 0;
-}
-
-int32_t PPB_Surface3D_Impl::GetAttrib(int32_t attribute, int32_t* value) {
- // TODO(alokp): Implement me.
- return 0;
-}
-
-int32_t PPB_Surface3D_Impl::SwapBuffers(PP_CompletionCallback callback) {
- if (!callback.func) {
- // Blocking SwapBuffers isn't supported (since we have to be on the main
- // thread).
- return PP_ERROR_BLOCKS_MAIN_THREAD;
- }
-
- if (swap_callback_.get() && !swap_callback_->completed()) {
- // Already a pending SwapBuffers that hasn't returned yet.
- return PP_ERROR_INPROGRESS;
- }
-
- if (!context_)
- return PP_ERROR_FAILED;
-
- PluginModule* plugin_module = ResourceHelper::GetPluginModule(this);
- if (!plugin_module)
- return PP_ERROR_FAILED;
-
- swap_callback_ = new TrackedCompletionCallback(
- plugin_module->GetCallbackTracker(), pp_resource(), callback);
- gpu::gles2::GLES2Implementation* impl = context_->gles2_impl();
- if (impl)
- context_->gles2_impl()->SwapBuffers();
- context_->platform_context()->Echo(
- base::Bind(&PPB_Surface3D_Impl::OnSwapBuffers,
- weak_ptr_factory_.GetWeakPtr()));
- // |SwapBuffers()| should not call us back synchronously, but double-check.
- DCHECK(!swap_callback_->completed());
- return PP_OK_COMPLETIONPENDING;
-}
-
-bool PPB_Surface3D_Impl::Init(PP_Config3D_Dev config,
- const int32_t* attrib_list) {
- return true;
-}
-
-bool PPB_Surface3D_Impl::BindToInstance(bool bind) {
- bound_to_instance_ = bind;
- return true;
-}
-
-bool PPB_Surface3D_Impl::BindToContext(PPB_Context3D_Impl* context) {
- if (context == context_)
- return true;
-
- PluginInstance* plugin_instance = ResourceHelper::GetPluginInstance(this);
- if (!plugin_instance)
- return false;
-
- if (!context && bound_to_instance_)
- plugin_instance->BindGraphics(pp_instance(), 0);
-
- // Unbind from the current context.
- if (context && context->platform_context()) {
- // Resize the backing texture to the size of the instance when it is bound.
- // TODO(alokp): This should be the responsibility of plugins.
- gpu::gles2::GLES2Implementation* impl = context->gles2_impl();
- if (impl) {
- const gfx::Size& size = plugin_instance->position().size();
- impl->ResizeCHROMIUM(size.width(), size.height());
- }
- }
- context_ = context;
- return true;
-}
-
-void PPB_Surface3D_Impl::ViewInitiatedPaint() {
-}
-
-void PPB_Surface3D_Impl::ViewFlushedPaint() {
- if (swap_initiated_ && swap_callback_.get() && !swap_callback_->completed()) {
- // We must clear swap_callback_ before issuing the callback. It will be
- // common for the plugin to issue another SwapBuffers in response to the
- // callback, and we don't want to think that a callback is already pending.
- swap_initiated_ = false;
- scoped_refptr<TrackedCompletionCallback> callback;
- callback.swap(swap_callback_);
- callback->Run(PP_OK); // Will complete abortively if necessary.
- }
-}
-
-unsigned int PPB_Surface3D_Impl::GetBackingTextureId() {
- return context_ ? context_->platform_context()->GetBackingTextureId() : 0;
-}
-
-void PPB_Surface3D_Impl::OnSwapBuffers() {
- PluginInstance* plugin_instance = ResourceHelper::GetPluginInstance(this);
- if (!plugin_instance)
- return;
-
- if (bound_to_instance_ && plugin_instance) {
- plugin_instance->CommitBackingTexture();
- swap_initiated_ = true;
- } else if (swap_callback_.get() && !swap_callback_->completed()) {
- // If we're off-screen, no need to trigger compositing so run the callback
- // immediately.
- swap_initiated_ = false;
- scoped_refptr<TrackedCompletionCallback> callback;
- callback.swap(swap_callback_);
- callback->Run(PP_OK); // Will complete abortively if necessary.
- }
-}
-
-void PPB_Surface3D_Impl::OnContextLost() {
- PluginInstance* plugin_instance = ResourceHelper::GetPluginInstance(this);
- if (bound_to_instance_ && plugin_instance)
- plugin_instance->BindGraphics(pp_instance(), 0);
-
- // Send context lost to plugin. This may have been caused by a PPAPI call, so
- // avoid re-entering.
- MessageLoop::current()->PostTask(
- FROM_HERE, base::Bind(&PPB_Surface3D_Impl::SendContextLost, this));
-}
-
-void PPB_Surface3D_Impl::SendContextLost() {
- PluginInstance* plugin_instance = ResourceHelper::GetPluginInstance(this);
-
- // By the time we run this, the instance may have been deleted, or in the
- // process of being deleted. Even in the latter case, we don't want to send a
- // callback after DidDestroy.
- if (!plugin_instance || !plugin_instance->container())
- return;
- const PPP_Graphics3D* ppp_graphics_3d =
- static_cast<const PPP_Graphics3D*>(
- plugin_instance->module()->GetPluginInterface(
- PPP_GRAPHICS_3D_INTERFACE));
- if (ppp_graphics_3d)
- ppp_graphics_3d->Graphics3DContextLost(pp_instance());
-}
-
-} // namespace ppapi
-} // namespace webkit
« no previous file with comments | « webkit/plugins/ppapi/ppb_surface_3d_impl.h ('k') | webkit/plugins/ppapi/ppb_video_decoder_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698