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

Unified Diff: webkit/renderer/compositor_bindings/web_external_texture_layer_impl.cc

Issue 23648014: cc: Move TextureMailbox::ReleaseCallback to SingleReleaseCallback. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: releasecallback: missingfiles Created 7 years, 3 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: webkit/renderer/compositor_bindings/web_external_texture_layer_impl.cc
diff --git a/webkit/renderer/compositor_bindings/web_external_texture_layer_impl.cc b/webkit/renderer/compositor_bindings/web_external_texture_layer_impl.cc
index 36b4994ef625439541019249dd537b1049c25e6a..a7d4d1d99c5293466e24e80187e3c7d36051bfdf 100644
--- a/webkit/renderer/compositor_bindings/web_external_texture_layer_impl.cc
+++ b/webkit/renderer/compositor_bindings/web_external_texture_layer_impl.cc
@@ -6,6 +6,8 @@
#include "cc/layers/texture_layer.h"
#include "cc/resources/resource_update_queue.h"
+#include "cc/resources/scoped_release_callback.h"
+#include "cc/resources/texture_mailbox.h"
#include "third_party/WebKit/public/platform/WebExternalTextureLayerClient.h"
#include "third_party/WebKit/public/platform/WebExternalTextureMailbox.h"
#include "third_party/WebKit/public/platform/WebFloatRect.h"
@@ -36,7 +38,7 @@ WebKit::WebLayer* WebExternalTextureLayerImpl::layer() { return layer_.get(); }
void WebExternalTextureLayerImpl::clearTexture() {
TextureLayer *layer = static_cast<TextureLayer*>(layer_->layer());
layer->WillModifyTexture();
- layer->SetTextureMailbox(cc::TextureMailbox());
+ layer->SetTextureMailbox(cc::TextureMailbox(), cc::ScopedReleaseCallback());
}
void WebExternalTextureLayerImpl::setOpaque(bool opaque) {
@@ -69,6 +71,7 @@ WebKit::WebGraphicsContext3D* WebExternalTextureLayerImpl::Context3d() {
bool WebExternalTextureLayerImpl::PrepareTextureMailbox(
cc::TextureMailbox* mailbox,
+ cc::ScopedReleaseCallback* release_callback,
bool use_shared_memory) {
WebKit::WebExternalTextureMailbox client_mailbox;
WebExternalBitmapImpl* bitmap = NULL;
@@ -82,17 +85,16 @@ bool WebExternalTextureLayerImpl::PrepareTextureMailbox(
}
gpu::Mailbox name;
name.SetName(client_mailbox.name);
- cc::TextureMailbox::ReleaseCallback callback =
+ cc::ScopedReleaseCallback callback(
base::Bind(&WebExternalTextureLayerImpl::DidReleaseMailbox,
this->AsWeakPtr(),
client_mailbox,
- bitmap);
- if (bitmap) {
- *mailbox =
- cc::TextureMailbox(bitmap->shared_memory(), bitmap->size(), callback);
- } else {
- *mailbox = cc::TextureMailbox(name, callback, client_mailbox.syncPoint);
- }
+ bitmap));
+ if (bitmap)
+ *mailbox = cc::TextureMailbox(bitmap->shared_memory(), bitmap->size());
+ else
+ *mailbox = cc::TextureMailbox(name, client_mailbox.syncPoint);
+ *release_callback = callback.Pass();
return true;
}

Powered by Google App Engine
This is Rietveld 408576698