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

Unified Diff: content/renderer/pepper/pepper_platform_context_3d_impl.cc

Issue 16290005: Move Pepper to using mailboxes (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: nits Created 7 years, 6 months 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
Index: content/renderer/pepper/pepper_platform_context_3d_impl.cc
diff --git a/content/renderer/pepper/pepper_platform_context_3d_impl.cc b/content/renderer/pepper/pepper_platform_context_3d_impl.cc
index 4c4309f0dc92d0e75bbc8c6a0476f098913441ee..982f0adb0bebc6b60008b78bcf09e1c97b0f8078 100644
--- a/content/renderer/pepper/pepper_platform_context_3d_impl.cc
+++ b/content/renderer/pepper/pepper_platform_context_3d_impl.cc
@@ -21,15 +21,12 @@
namespace content {
PlatformContext3DImpl::PlatformContext3DImpl()
- : parent_texture_id_(0),
- has_alpha_(false),
+ : has_alpha_(false),
command_buffer_(NULL),
weak_ptr_factory_(this) {
}
PlatformContext3DImpl::~PlatformContext3DImpl() {
- DestroyParentContextProviderAndBackingTexture();
-
if (command_buffer_) {
DCHECK(channel_.get());
channel_->DestroyCommandBuffer(command_buffer_);
@@ -112,9 +109,9 @@ bool PlatformContext3DImpl::Init(const int32* attrib_list,
if (!command_buffer_->GenerateMailboxNames(1, &names))
return false;
DCHECK_EQ(names.size(), 1u);
- mailbox_ = names[0];
- if (!command_buffer_->ProduceFrontBuffer(mailbox_))
+ if (!command_buffer_->ProduceFrontBuffer(names[0]))
return false;
+ mailbox_ = names[0];
command_buffer_->SetChannelErrorCallback(
base::Bind(&PlatformContext3DImpl::OnContextLost,
@@ -123,53 +120,11 @@ bool PlatformContext3DImpl::Init(const int32* attrib_list,
base::Bind(&PlatformContext3DImpl::OnConsoleMessage,
weak_ptr_factory_.GetWeakPtr()));
- return SetParentAndCreateBackingTextureIfNeeded();
-}
-
-bool PlatformContext3DImpl::SetParentAndCreateBackingTextureIfNeeded() {
- if (parent_context_provider_.get() &&
- !parent_context_provider_->DestroyedOnMainThread() && parent_texture_id_)
- return true;
-
- parent_context_provider_ =
- RenderThreadImpl::current()->OffscreenContextProviderForMainThread();
- parent_texture_id_ = 0;
- if (!parent_context_provider_.get())
- return false;
-
- gpu::gles2::GLES2Implementation* parent_gles2 =
- parent_context_provider_->Context3d()->GetImplementation();
- parent_gles2->GenTextures(1, &parent_texture_id_);
- parent_gles2->BindTexture(GL_TEXTURE_2D, parent_texture_id_);
- parent_gles2->ConsumeTextureCHROMIUM(GL_TEXTURE_2D, mailbox_.name);
- parent_gles2->ShallowFlushCHROMIUM();
return true;
}
-void PlatformContext3DImpl::DestroyParentContextProviderAndBackingTexture() {
- if (!parent_context_provider_.get())
- return;
-
- if (parent_texture_id_) {
- gpu::gles2::GLES2Implementation* parent_gles2 =
- parent_context_provider_->Context3d()->GetImplementation();
- parent_gles2->DeleteTextures(1, &parent_texture_id_);
- parent_gles2->ShallowFlushCHROMIUM();
- parent_texture_id_ = 0;
- }
-
- parent_context_provider_ = NULL;
-}
-
-unsigned PlatformContext3DImpl::GetBackingTextureId() {
- DCHECK(command_buffer_);
- return parent_texture_id_;
-}
-
-WebKit::WebGraphicsContext3D* PlatformContext3DImpl::GetParentContext() {
- if (!parent_context_provider_.get())
- return NULL;
- return parent_context_provider_->Context3d();
+void PlatformContext3DImpl::GetBackingMailbox(gpu::Mailbox* mailbox) {
+ *mailbox = mailbox_;
}
bool PlatformContext3DImpl::IsOpaque() {
« no previous file with comments | « content/renderer/pepper/pepper_platform_context_3d_impl.h ('k') | content/renderer/pepper/pepper_plugin_delegate_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698