Chromium Code Reviews| 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); |