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 |