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