Index: cc/resources/resource_provider.cc |
diff --git a/cc/resources/resource_provider.cc b/cc/resources/resource_provider.cc |
index d9872514d5b12cc5ebf739fbba8ac59c955b69a2..70104e64b2f9fc0b064fa41b9388ec8a2ad71fd8 100644 |
--- a/cc/resources/resource_provider.cc |
+++ b/cc/resources/resource_provider.cc |
@@ -269,6 +269,41 @@ ResourceProvider::ResourceId ResourceProvider::CreateResourceFromTextureMailbox( |
return id; |
} |
+void ResourceProvider::ResizeResource(ResourceId id, gfx::Size size) { |
reveman
2013/03/22 23:56:50
I don't understand why we need this function.
Leandro GraciĆ” Gil
2013/03/25 15:21:02
Considering all the details that need to be tracke
|
+ DCHECK(thread_checker_.CalledOnValidThread()); |
+ ResourceMap::iterator it = resources_.find(id); |
+ CHECK(it != resources_.end()); |
+ Resource* resource = &it->second; |
+ DCHECK(!resource->lock_for_read_count); |
+ DCHECK(!resource->marked_for_deletion); |
+ DCHECK(resource->pending_set_pixels || !resource->locked_for_write); |
+ DCHECK(!resource->exported); |
+ DCHECK(!resource->external); |
+ DCHECK(!resource->gl_pixel_buffer_id && !resource->pixel_buffer); |
+ |
+ if (resource->size != size) { |
+ switch (resource->type) { |
+ case GLTexture: |
+ DCHECK_LE(size.width(), max_texture_size_); |
+ DCHECK_LE(size.height(), max_texture_size_); |
+ resource->allocated = false; |
+ break; |
+ |
piman
2013/03/22 20:52:34
nit: no need for blank line.
|
+ case Bitmap: |
+ DCHECK(resource->pixels); |
+ delete[] resource->pixels; |
+ resource->pixels = new uint8_t[size.width() * size.height() * 4]; |
+ resource->allocated = true; |
+ break; |
+ |
+ default: |
+ NOTREACHED(); |
piman
2013/03/22 20:52:34
nit: we usually don't add the default clause when
|
+ } |
+ |
+ resource->size = size; |
+ } |
+} |
+ |
void ResourceProvider::DeleteResource(ResourceId id) { |
DCHECK(thread_checker_.CalledOnValidThread()); |
ResourceMap::iterator it = resources_.find(id); |