Chromium Code Reviews| Index: gpu/command_buffer/service/image_factory.cc |
| diff --git a/gpu/command_buffer/service/image_factory.cc b/gpu/command_buffer/service/image_factory.cc |
| index 9a2d458abd8cf9bf3673dcc2ab43e4e69895ee41..86c263f3e6d155b559e07bec072eb1d0331348ee 100644 |
| --- a/gpu/command_buffer/service/image_factory.cc |
| +++ b/gpu/command_buffer/service/image_factory.cc |
| @@ -16,23 +16,46 @@ ImageFactory::~ImageFactory() { |
| } |
| // static |
| -gfx::GpuMemoryBuffer::Format ImageFactory::ImageFormatToGpuMemoryBufferFormat( |
| - unsigned internalformat) { |
| +int ImageFactory::GpuMemoryBufferCountForImageFormat(unsigned internalformat) { |
| switch (internalformat) { |
| case GL_RGB: |
| - return gfx::GpuMemoryBuffer::RGBX_8888; |
| case GL_RGBA: |
| - return gfx::GpuMemoryBuffer::RGBA_8888; |
| case GL_ATC_RGB_AMD: |
| - return gfx::GpuMemoryBuffer::ATC; |
| case GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD: |
| - return gfx::GpuMemoryBuffer::ATCIA; |
| case GL_COMPRESSED_RGB_S3TC_DXT1_EXT: |
| - return gfx::GpuMemoryBuffer::DXT1; |
| case GL_COMPRESSED_RGBA_S3TC_DXT5_EXT: |
| - return gfx::GpuMemoryBuffer::DXT5; |
| case GL_ETC1_RGB8_OES: |
| - return gfx::GpuMemoryBuffer::ETC1; |
| + return 1; |
| + default: |
| + NOTREACHED(); |
| + return 0; |
| + } |
| +} |
| + |
| +// static |
| +gfx::GpuMemoryBuffer::Format ImageFactory::ImageFormatToGpuMemoryBufferFormat( |
| + unsigned internalformat, |
| + int buffer_index) { |
|
reveman
2015/03/12 19:37:22
size_t plane?
|
| + switch (buffer_index) { |
|
reveman
2015/03/12 19:37:23
You can just DCHECK_EQ(plane, 0u) in this patch.
|
| + case 0: |
| + switch (internalformat) { |
| + case GL_RGB: |
| + case GL_RGBA: |
| + return gfx::GpuMemoryBuffer::RGBA_8888; |
| + case GL_ATC_RGB_AMD: |
| + return gfx::GpuMemoryBuffer::ATC; |
| + case GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD: |
| + return gfx::GpuMemoryBuffer::ATCIA; |
| + case GL_COMPRESSED_RGB_S3TC_DXT1_EXT: |
| + return gfx::GpuMemoryBuffer::DXT1; |
| + case GL_COMPRESSED_RGBA_S3TC_DXT5_EXT: |
| + return gfx::GpuMemoryBuffer::DXT5; |
| + case GL_ETC1_RGB8_OES: |
| + return gfx::GpuMemoryBuffer::ETC1; |
| + default: |
| + NOTREACHED(); |
| + return gfx::GpuMemoryBuffer::RGBA_8888; |
| + } |
| default: |
| NOTREACHED(); |
| return gfx::GpuMemoryBuffer::RGBA_8888; |
| @@ -56,38 +79,41 @@ gfx::GpuMemoryBuffer::Usage ImageFactory::ImageUsageToGpuMemoryBufferUsage( |
| // static |
| bool ImageFactory::IsImageFormatCompatibleWithGpuMemoryBufferFormat( |
| unsigned internalformat, |
| + int buffer_index, |
| gfx::GpuMemoryBuffer::Format format) { |
| - switch (internalformat) { |
| - case GL_RGB: |
| - switch (format) { |
| - case gfx::GpuMemoryBuffer::ATC: |
| - case gfx::GpuMemoryBuffer::ATCIA: |
| - case gfx::GpuMemoryBuffer::DXT1: |
| - case gfx::GpuMemoryBuffer::DXT5: |
| - case gfx::GpuMemoryBuffer::ETC1: |
| - case gfx::GpuMemoryBuffer::RGBX_8888: |
| - return true; |
| - case gfx::GpuMemoryBuffer::RGBA_8888: |
| - case gfx::GpuMemoryBuffer::BGRA_8888: |
| - return false; |
| - } |
| - NOTREACHED(); |
| - return false; |
| - case GL_RGBA: |
| - switch (format) { |
| - case gfx::GpuMemoryBuffer::RGBX_8888: |
| + switch (buffer_index) { |
|
reveman
2015/03/12 19:37:23
DCHECK_EQ(plane, 0u)
emircan
2015/03/12 22:34:26
Done.
|
| + case 0: |
| + switch (internalformat) { |
| + case GL_RGB: |
| + switch (format) { |
| + case gfx::GpuMemoryBuffer::ATC: |
| + case gfx::GpuMemoryBuffer::ATCIA: |
| + case gfx::GpuMemoryBuffer::DXT1: |
| + case gfx::GpuMemoryBuffer::DXT5: |
| + case gfx::GpuMemoryBuffer::ETC1: |
| + case gfx::GpuMemoryBuffer::RGBX_8888: |
| + return true; |
| + case gfx::GpuMemoryBuffer::RGBA_8888: |
| + case gfx::GpuMemoryBuffer::BGRA_8888: |
| + return false; |
| + } |
| + case GL_RGBA: |
| + switch (format) { |
| + case gfx::GpuMemoryBuffer::RGBX_8888: |
| + return false; |
| + case gfx::GpuMemoryBuffer::ATC: |
| + case gfx::GpuMemoryBuffer::ATCIA: |
| + case gfx::GpuMemoryBuffer::DXT1: |
| + case gfx::GpuMemoryBuffer::DXT5: |
| + case gfx::GpuMemoryBuffer::ETC1: |
| + case gfx::GpuMemoryBuffer::RGBA_8888: |
| + case gfx::GpuMemoryBuffer::BGRA_8888: |
| + return true; |
| + } |
| + default: |
| + NOTREACHED(); |
| return false; |
| - case gfx::GpuMemoryBuffer::ATC: |
| - case gfx::GpuMemoryBuffer::ATCIA: |
| - case gfx::GpuMemoryBuffer::DXT1: |
| - case gfx::GpuMemoryBuffer::DXT5: |
| - case gfx::GpuMemoryBuffer::ETC1: |
| - case gfx::GpuMemoryBuffer::RGBA_8888: |
| - case gfx::GpuMemoryBuffer::BGRA_8888: |
| - return true; |
| } |
| - NOTREACHED(); |
| - return false; |
| default: |
| NOTREACHED(); |
| return false; |