| Index: components/view_manager/gles2/mojo_gpu_memory_buffer.cc
|
| diff --git a/components/view_manager/gles2/mojo_gpu_memory_buffer.cc b/components/view_manager/gles2/mojo_gpu_memory_buffer.cc
|
| index be146f5eeb747a3422bf58c758e9859b83648da6..45450506c39ca409cb216be42a353c51afffe3e5 100644
|
| --- a/components/view_manager/gles2/mojo_gpu_memory_buffer.cc
|
| +++ b/components/view_manager/gles2/mojo_gpu_memory_buffer.cc
|
| @@ -7,11 +7,30 @@
|
| #include "base/logging.h"
|
| #include "base/memory/shared_memory.h"
|
| #include "base/numerics/safe_conversions.h"
|
| -#include "ui/gfx/buffer_format_util.h"
|
|
|
| namespace gles2 {
|
|
|
| namespace {
|
| +
|
| +int NumberOfPlanesForGpuMemoryBufferFormat(gfx::BufferFormat format) {
|
| + switch (format) {
|
| + case gfx::BufferFormat::ATC:
|
| + case gfx::BufferFormat::ATCIA:
|
| + case gfx::BufferFormat::DXT1:
|
| + case gfx::BufferFormat::DXT5:
|
| + case gfx::BufferFormat::ETC1:
|
| + case gfx::BufferFormat::R_8:
|
| + case gfx::BufferFormat::RGBA_4444:
|
| + case gfx::BufferFormat::RGBA_8888:
|
| + case gfx::BufferFormat::RGBX_8888:
|
| + case gfx::BufferFormat::BGRA_8888:
|
| + return 1;
|
| + case gfx::BufferFormat::YUV_420:
|
| + return 3;
|
| + }
|
| + NOTREACHED();
|
| + return 0;
|
| +}
|
|
|
| size_t SubsamplingFactor(gfx::BufferFormat format, int plane) {
|
| switch (format) {
|
| @@ -67,7 +86,7 @@
|
|
|
| size_t BufferSizeInBytes(const gfx::Size& size, gfx::BufferFormat format) {
|
| size_t size_in_bytes = 0;
|
| - int num_planes = gfx::NumberOfPlanesForBufferFormat(format);
|
| + int num_planes = NumberOfPlanesForGpuMemoryBufferFormat(format);
|
| for (int i = 0; i < num_planes; ++i) {
|
| size_in_bytes += StrideInBytes(size.width(), format, i) *
|
| (size.height() / SubsamplingFactor(format, i));
|
| @@ -112,7 +131,7 @@
|
| return false;
|
| mapped_ = true;
|
| size_t offset = 0;
|
| - int num_planes = gfx::NumberOfPlanesForBufferFormat(format_);
|
| + int num_planes = NumberOfPlanesForGpuMemoryBufferFormat(format_);
|
| for (int i = 0; i < num_planes; ++i) {
|
| data[i] = reinterpret_cast<uint8*>(shared_memory_->memory()) + offset;
|
| offset += StrideInBytes(size_.width(), format_, i) *
|
| @@ -136,7 +155,7 @@
|
| }
|
|
|
| void MojoGpuMemoryBufferImpl::GetStride(int* stride) const {
|
| - int num_planes = gfx::NumberOfPlanesForBufferFormat(format_);
|
| + int num_planes = NumberOfPlanesForGpuMemoryBufferFormat(format_);
|
| for (int i = 0; i < num_planes; ++i)
|
| stride[i] =
|
| base::checked_cast<int>(StrideInBytes(size_.width(), format_, i));
|
|
|