| Index: cc/resources/resource_provider.cc
|
| diff --git a/cc/resources/resource_provider.cc b/cc/resources/resource_provider.cc
|
| index 9f680669c089de2a3781732f5f4fca54987caf44..30f3391f3d084a044f51db69a5e6d0e199bc8e0d 100644
|
| --- a/cc/resources/resource_provider.cc
|
| +++ b/cc/resources/resource_provider.cc
|
| @@ -14,8 +14,8 @@
|
| #include "base/strings/string_split.h"
|
| #include "base/strings/string_util.h"
|
| #include "base/trace_event/trace_event.h"
|
| -#include "cc/base/math_util.h"
|
| #include "cc/resources/platform_color.h"
|
| +#include "cc/resources/resource_util.h"
|
| #include "cc/resources/returned_resource.h"
|
| #include "cc/resources/shared_bitmap_manager.h"
|
| #include "cc/resources/transferable_resource.h"
|
| @@ -724,13 +724,10 @@ void ResourceProvider::CopyToResource(ResourceId id,
|
| gl->BindTexture(GL_TEXTURE_2D, resource->gl_id);
|
|
|
| if (resource->format == ETC1) {
|
| - base::CheckedNumeric<int> num_bytes = BitsPerPixel(ETC1);
|
| - num_bytes *= image_size.width();
|
| - num_bytes *= image_size.height();
|
| - num_bytes /= 8;
|
| + int image_bytes = ResourceUtil::CheckedSizeInBytes<int>(image_size, ETC1);
|
| gl->CompressedTexImage2D(GL_TEXTURE_2D, 0, GLInternalFormat(ETC1),
|
| image_size.width(), image_size.height(), 0,
|
| - num_bytes.ValueOrDie(), image);
|
| + image_bytes, image);
|
| } else {
|
| gl->TexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, image_size.width(),
|
| image_size.height(), GLDataFormat(resource->format),
|
| @@ -1531,12 +1528,10 @@ void ResourceProvider::AcquirePixelBuffer(ResourceId id) {
|
| resource->gl_pixel_buffer_id = buffer_id_allocator_->NextId();
|
| gl->BindBuffer(GL_PIXEL_UNPACK_TRANSFER_BUFFER_CHROMIUM,
|
| resource->gl_pixel_buffer_id);
|
| - unsigned bytes_per_pixel = BitsPerPixel(resource->format) / 8;
|
| - gl->BufferData(
|
| - GL_PIXEL_UNPACK_TRANSFER_BUFFER_CHROMIUM,
|
| - resource->size.height() *
|
| - MathUtil::RoundUp(bytes_per_pixel * resource->size.width(), 4u),
|
| - NULL, GL_DYNAMIC_DRAW);
|
| + size_t resource_bytes = ResourceUtil::UncheckedSizeInBytesAligned<size_t>(
|
| + resource->size, resource->format);
|
| + gl->BufferData(GL_PIXEL_UNPACK_TRANSFER_BUFFER_CHROMIUM, resource_bytes, NULL,
|
| + GL_DYNAMIC_DRAW);
|
| gl->BindBuffer(GL_PIXEL_UNPACK_TRANSFER_BUFFER_CHROMIUM, 0);
|
| }
|
|
|
|
|