Index: cc/trees/layer_tree_host_impl.cc |
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc |
index eac6068e6be16379a0ec90e8ddda504d9488ac6a..b8801d82c4374b85f26f3ae0ef22ce0f232f9c91 100644 |
--- a/cc/trees/layer_tree_host_impl.cc |
+++ b/cc/trees/layer_tree_host_impl.cc |
@@ -50,6 +50,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" |
@@ -2472,14 +2473,29 @@ void LayerTreeHostImpl::CreateUIResource( |
DCHECK_GT(uid, 0); |
DCHECK_EQ(bitmap->GetFormat(), UIResourceBitmap::RGBA8); |
+ GLint wrap_mode = 0; |
+ switch (bitmap->GetWrapMode()) { |
+ case UIResourceBitmap::ClampToEdge: |
+ wrap_mode = GL_CLAMP_TO_EDGE; |
+ break; |
+ case UIResourceBitmap::Repeat: |
+ wrap_mode = GL_REPEAT; |
+ break; |
+ default: |
+ NOTREACHED(); |
+ break; |
+ } |
+ |
// Allow for multiple creation requests with the same UIResourceId. The |
// previous resource is simply deleted. |
ResourceProvider::ResourceId id = ResourceIdForUIResource(uid); |
if (id) |
DeleteUIResource(uid); |
- id = resource_provider_->CreateResource( |
- bitmap->GetSize(), GL_RGBA, ResourceProvider::TextureUsageAny); |
- |
+ id = resource_provider_->CreateGLTexture(bitmap->GetSize(), |
+ GL_RGBA, |
+ GL_TEXTURE_POOL_UNMANAGED_CHROMIUM, |
+ wrap_mode, |
+ ResourceProvider::TextureUsageAny); |
ui_resource_map_[uid] = id; |
resource_provider_->SetPixels(id, |
reinterpret_cast<uint8_t*>(bitmap->GetPixels()), |