Chromium Code Reviews| Index: cc/layers/texture_layer_impl.cc |
| diff --git a/cc/layers/texture_layer_impl.cc b/cc/layers/texture_layer_impl.cc |
| index 80938babe322327bcf51352f09e0c4def157daec..0a799b65ff658214d26d79c206887550bc0ed033 100644 |
| --- a/cc/layers/texture_layer_impl.cc |
| +++ b/cc/layers/texture_layer_impl.cc |
| @@ -11,7 +11,7 @@ |
| #include "cc/quads/texture_draw_quad.h" |
| #include "cc/resources/platform_color.h" |
| #include "cc/resources/scoped_resource.h" |
| -#include "cc/resources/single_release_callback.h" |
| +#include "cc/resources/single_release_callback_impl.h" |
| #include "cc/trees/layer_tree_impl.h" |
| #include "cc/trees/occlusion_tracker.h" |
| @@ -37,7 +37,7 @@ TextureLayerImpl::~TextureLayerImpl() { FreeTextureMailbox(); } |
| void TextureLayerImpl::SetTextureMailbox( |
| const TextureMailbox& mailbox, |
| - scoped_ptr<SingleReleaseCallback> release_callback) { |
| + scoped_ptr<SingleReleaseCallbackImpl> release_callback) { |
| DCHECK_EQ(mailbox.IsValid(), !!release_callback); |
| FreeTextureMailbox(); |
| texture_mailbox_ = mailbox; |
| @@ -238,16 +238,19 @@ const char* TextureLayerImpl::LayerTypeAsString() const { |
| } |
| void TextureLayerImpl::FreeTextureMailbox() { |
| + ResourceProvider* resource_provider = layer_tree_impl()->resource_provider(); |
| if (own_mailbox_) { |
| DCHECK(!external_texture_resource_); |
| - if (release_callback_) |
| - release_callback_->Run(texture_mailbox_.sync_point(), false); |
| + if (release_callback_) { |
| + release_callback_->Run( |
| + texture_mailbox_.sync_point(), |
| + false, |
| + resource_provider->blocking_main_thread_task_runner()); |
|
danakj
2014/09/03 16:09:36
Can you add a getter for this on layer_tree_impl()
Sami
2014/09/03 17:59:12
Great idea, done.
|
| + } |
| texture_mailbox_ = TextureMailbox(); |
| release_callback_.reset(); |
| } else if (external_texture_resource_) { |
| DCHECK(!own_mailbox_); |
| - ResourceProvider* resource_provider = |
| - layer_tree_impl()->resource_provider(); |
| resource_provider->DeleteResource(external_texture_resource_); |
| external_texture_resource_ = 0; |
| } |