| Index: content/common/gpu/gpu_memory_buffer_factory_ozone_native_pixmap.cc
|
| diff --git a/content/common/gpu/gpu_memory_buffer_factory_ozone_native_pixmap.cc b/content/common/gpu/gpu_memory_buffer_factory_ozone_native_pixmap.cc
|
| index 2c69f5019613d216f6de429d031e40b50414b142..e859bdc491b52f6bd58417aec5d933a035d3509a 100644
|
| --- a/content/common/gpu/gpu_memory_buffer_factory_ozone_native_pixmap.cc
|
| +++ b/content/common/gpu/gpu_memory_buffer_factory_ozone_native_pixmap.cc
|
| @@ -5,23 +5,19 @@
|
| #include "content/common/gpu/gpu_memory_buffer_factory_ozone_native_pixmap.h"
|
|
|
| #include "ui/gl/gl_image_ozone_native_pixmap.h"
|
| +#include "ui/ozone/public/client_pixmap_manager.h"
|
| #include "ui/ozone/public/ozone_platform.h"
|
| #include "ui/ozone/public/surface_factory_ozone.h"
|
|
|
| namespace content {
|
| namespace {
|
|
|
| -const GpuMemoryBufferFactory::Configuration kSupportedConfigurations[] = {
|
| - {gfx::GpuMemoryBuffer::BGRA_8888, gfx::GpuMemoryBuffer::SCANOUT},
|
| - {gfx::GpuMemoryBuffer::RGBX_8888, gfx::GpuMemoryBuffer::SCANOUT}};
|
| -
|
| -ui::SurfaceFactoryOzone::BufferFormat GetOzoneFormatFor(
|
| - gfx::GpuMemoryBuffer::Format format) {
|
| +ui::PixmapFormat GetOzoneFormatFor(gfx::GpuMemoryBuffer::Format format) {
|
| switch (format) {
|
| case gfx::GpuMemoryBuffer::BGRA_8888:
|
| - return ui::SurfaceFactoryOzone::BGRA_8888;
|
| + return ui::PIXMAP_FORMAT_BGRA_8888;
|
| case gfx::GpuMemoryBuffer::RGBX_8888:
|
| - return ui::SurfaceFactoryOzone::RGBX_8888;
|
| + return ui::PIXMAP_FORMAT_RGBX_8888;
|
| case gfx::GpuMemoryBuffer::ATC:
|
| case gfx::GpuMemoryBuffer::ATCIA:
|
| case gfx::GpuMemoryBuffer::DXT1:
|
| @@ -32,26 +28,66 @@ ui::SurfaceFactoryOzone::BufferFormat GetOzoneFormatFor(
|
| case gfx::GpuMemoryBuffer::RGBA_8888:
|
| case gfx::GpuMemoryBuffer::YUV_420:
|
| NOTREACHED();
|
| - return ui::SurfaceFactoryOzone::BGRA_8888;
|
| + return ui::PIXMAP_FORMAT_BGRA_8888;
|
| }
|
|
|
| NOTREACHED();
|
| - return ui::SurfaceFactoryOzone::BGRA_8888;
|
| + return ui::PIXMAP_FORMAT_BGRA_8888;
|
| }
|
|
|
| -ui::SurfaceFactoryOzone::BufferUsage GetOzoneUsageFor(
|
| - gfx::GpuMemoryBuffer::Usage usage) {
|
| +ui::PixmapUsage GetOzoneUsageFor(gfx::GpuMemoryBuffer::Usage usage) {
|
| switch (usage) {
|
| case gfx::GpuMemoryBuffer::MAP:
|
| - return ui::SurfaceFactoryOzone::MAP;
|
| + return ui::PIXMAP_USAGE_MAP;
|
| case gfx::GpuMemoryBuffer::PERSISTENT_MAP:
|
| - return ui::SurfaceFactoryOzone::PERSISTENT_MAP;
|
| + return ui::PIXMAP_USAGE_PERSISTENT_MAP;
|
| case gfx::GpuMemoryBuffer::SCANOUT:
|
| - return ui::SurfaceFactoryOzone::SCANOUT;
|
| + return ui::PIXMAP_USAGE_SCANOUT;
|
| }
|
|
|
| NOTREACHED();
|
| - return ui::SurfaceFactoryOzone::MAP;
|
| + return ui::PIXMAP_USAGE_MAP;
|
| +}
|
| +
|
| +gfx::GpuMemoryBuffer::Format GetGpuMemoryBufferFormatFor(
|
| + ui::PixmapFormat ozone_format) {
|
| + switch (ozone_format) {
|
| + case ui::PIXMAP_FORMAT_BGRA_8888:
|
| + return gfx::GpuMemoryBuffer::BGRA_8888;
|
| + case ui::PIXMAP_FORMAT_RGBX_8888:
|
| + return gfx::GpuMemoryBuffer::RGBX_8888;
|
| + case ui::PIXMAP_FORMAT_UNKNOWN:
|
| + NOTREACHED();
|
| + break;
|
| + }
|
| + NOTREACHED();
|
| + return gfx::GpuMemoryBuffer::BGRA_8888;
|
| +}
|
| +
|
| +gfx::GpuMemoryBuffer::Usage GetGpuMemoryBufferUsageFor(
|
| + ui::PixmapUsage ozone_usage) {
|
| + switch (ozone_usage) {
|
| + case ui::PIXMAP_USAGE_MAP:
|
| + return gfx::GpuMemoryBuffer::MAP;
|
| + case ui::PIXMAP_USAGE_PERSISTENT_MAP:
|
| + return gfx::GpuMemoryBuffer::PERSISTENT_MAP;
|
| + case ui::PIXMAP_USAGE_SCANOUT:
|
| + return gfx::GpuMemoryBuffer::SCANOUT;
|
| + }
|
| + NOTREACHED();
|
| + return gfx::GpuMemoryBuffer::MAP;
|
| +}
|
| +
|
| +void GetSupportedConfigurations(
|
| + std::vector<GpuMemoryBufferFactory::Configuration>* configurations) {
|
| + std::vector<ui::ClientPixmapManager::Configuration>
|
| + native_pixmap_configurations =
|
| + ui::ClientPixmapManager::GetInstance()->GetSupportedConfigurations();
|
| + for (auto& native_pixmap_configuration : native_pixmap_configurations) {
|
| + configurations->push_back(
|
| + {GetGpuMemoryBufferFormatFor(native_pixmap_configuration.format),
|
| + GetGpuMemoryBufferUsageFor(native_pixmap_configuration.usage)});
|
| + }
|
| }
|
|
|
| } // namespace
|
| @@ -66,7 +102,9 @@ GpuMemoryBufferFactoryOzoneNativePixmap::
|
| bool GpuMemoryBufferFactoryOzoneNativePixmap::
|
| IsGpuMemoryBufferConfigurationSupported(gfx::GpuMemoryBuffer::Format format,
|
| gfx::GpuMemoryBuffer::Usage usage) {
|
| - for (auto& configuration : kSupportedConfigurations) {
|
| + std::vector<Configuration> configurations;
|
| + GetSupportedConfigurations(&configurations);
|
| + for (auto& configuration : configurations) {
|
| if (configuration.format == format && configuration.usage == usage)
|
| return true;
|
| }
|
| @@ -77,14 +115,7 @@ bool GpuMemoryBufferFactoryOzoneNativePixmap::
|
| void GpuMemoryBufferFactoryOzoneNativePixmap::
|
| GetSupportedGpuMemoryBufferConfigurations(
|
| std::vector<Configuration>* configurations) {
|
| - if (!ui::OzonePlatform::GetInstance()
|
| - ->GetSurfaceFactoryOzone()
|
| - ->CanCreateNativePixmap(ui::SurfaceFactoryOzone::SCANOUT))
|
| - return;
|
| -
|
| - configurations->assign(
|
| - kSupportedConfigurations,
|
| - kSupportedConfigurations + arraysize(kSupportedConfigurations));
|
| + GetSupportedConfigurations(configurations);
|
| }
|
|
|
| gfx::GpuMemoryBufferHandle
|
|
|