| Index: cc/trees/layer_tree_host_impl.cc
|
| ===================================================================
|
| --- cc/trees/layer_tree_host_impl.cc (revision 210393)
|
| +++ cc/trees/layer_tree_host_impl.cc (working copy)
|
| @@ -49,6 +49,7 @@
|
| #include "cc/trees/quad_culler.h"
|
| #include "cc/trees/single_thread_proxy.h"
|
| #include "cc/trees/tree_synchronizer.h"
|
| +#include "gpu/GLES2/gl2extchromium.h"
|
| #include "ui/gfx/size_conversions.h"
|
| #include "ui/gfx/vector2d_conversions.h"
|
|
|
| @@ -564,6 +565,7 @@
|
| TRACE_EVENT0("cc",
|
| "LayerTreeHostImpl::CalculateRenderPasses::EmptyDamageRect");
|
| frame->has_no_damage = true;
|
| +
|
| // A copy request should cause damage, so we should not have any copy
|
| // requests in this case.
|
| DCHECK_EQ(0u, active_tree_->LayersWithCopyOutputRequest().size());
|
| @@ -2362,4 +2364,43 @@
|
| debug_state_ = debug_state;
|
| }
|
|
|
| +void LayerTreeHostImpl::CreateUIResource(UIResourceId uid,
|
| + scoped_refptr<UIResourceBitmap> bitmap,
|
| + bool async) {
|
| + ResourceProvider::ResourceId id =
|
| + resource_provider_->CreateGLTexture(bitmap->GetSize(),
|
| + GL_RGBA,
|
| + GL_TEXTURE_POOL_UNMANAGED_CHROMIUM,
|
| + ResourceProvider::TextureUsageAny);
|
| +
|
| + ui_resource_map_[uid] = id;
|
| + gfx::Size bitmap_size = bitmap->GetSize();
|
| + resource_provider_->SetPixels(id,
|
| + reinterpret_cast<uint8_t*>(bitmap->GetPixels()),
|
| + gfx::Rect(1, 1, bitmap_size.width(),
|
| + bitmap_size.height()),
|
| + gfx::Rect(1, 1, bitmap_size.width(),
|
| + bitmap_size.height()),
|
| + gfx::Vector2d(0, 0));
|
| +
|
| + client_->UIResourceCreatedOnImplThread(uid);
|
| +}
|
| +
|
| +void LayerTreeHostImpl::DeleteUIResource(UIResourceId uid) {
|
| + ResourceProvider::ResourceId id = ResourceIdForUIResource(uid);
|
| + if (id) {
|
| + resource_provider_->DeleteResource(id);
|
| + ui_resource_map_.erase(uid);
|
| + }
|
| +}
|
| +
|
| +ResourceProvider::ResourceId
|
| +LayerTreeHostImpl::ResourceIdForUIResource(UIResourceId uid) const {
|
| + if (ui_resource_map_.find(uid) != ui_resource_map_.end()) {
|
| + return ui_resource_map_.find(uid)->second;
|
| + }
|
| + return 0;
|
| +}
|
| +
|
| +
|
| } // namespace cc
|
|
|