Index: cc/resources/resource_provider.cc |
diff --git a/cc/resources/resource_provider.cc b/cc/resources/resource_provider.cc |
index 0e7c938f224f8d9f5dd2ff20f3b7899b4c8b29da..94bee962499c603946976bb835ceafd6daee54e4 100644 |
--- a/cc/resources/resource_provider.cc |
+++ b/cc/resources/resource_provider.cc |
@@ -843,11 +843,10 @@ const ResourceProvider::Resource* ResourceProvider::LockForRead(ResourceId id) { |
GLES2Interface* gl = ContextGL(); |
DCHECK(gl); |
- resource->gl_id = texture_id_allocator_->NextId(); |
- GLC(gl, gl->BindTexture(resource->target, resource->gl_id)); |
+ resource->gl_id = 0; |
GLC(gl, |
- gl->ConsumeTextureCHROMIUM(resource->mailbox.target(), |
- resource->mailbox.name())); |
+ gl->CreateAndConsumeTextureCHROMIUM(resource->mailbox.target(), |
danakj
2014/10/06 15:25:28
This returns the texture id, you're just setting i
sohanjg
2014/10/07 11:23:47
Done.
|
+ resource->mailbox.name())); |
} |
if (!resource->pixels && resource->has_shared_bitmap_id && |
@@ -1407,9 +1406,7 @@ void ResourceProvider::TransferResource(GLES2Interface* gl, |
LazyCreate(source); |
DCHECK(source->gl_id); |
DCHECK(source->origin == Resource::Internal); |
- GLC(gl, |
- gl->BindTexture(resource->mailbox_holder.texture_target, |
- source->gl_id)); |
+ |
if (source->image_id) { |
DCHECK(source->dirty_image); |
BindImageForSampling(source); |
@@ -1418,8 +1415,11 @@ void ResourceProvider::TransferResource(GLES2Interface* gl, |
// Don't set a sync point, the caller will do it. |
GLC(gl, gl->GenMailboxCHROMIUM(resource->mailbox_holder.mailbox.name)); |
GLC(gl, |
- gl->ProduceTextureCHROMIUM(resource->mailbox_holder.texture_target, |
- resource->mailbox_holder.mailbox.name)); |
+ gl->ProduceTextureDirectCHROMIUM( |
+ source->gl_id, |
+ resource->mailbox_holder.texture_target, |
+ resource->mailbox_holder.mailbox.name)); |
+ |
source->mailbox = TextureMailbox(resource->mailbox_holder); |
} else { |
DCHECK(source->mailbox.IsTexture()); |