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; |
} |