| 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 e787be94aa3d27b6892d4428ceebdd83e8894e8d..55ba3e6ab495142a4db833ac698e0f6739a89482 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
|
| @@ -6,15 +6,52 @@
|
|
|
| #include "base/logging.h"
|
| #include "ui/gl/gl_image.h"
|
| -#include "ui/ozone/public/ozone_platform.h"
|
| -#include "ui/ozone/public/surface_factory_ozone.h"
|
| +#include "ui/ozone/public/native_pixmap_manager.h"
|
|
|
| namespace content {
|
| namespace {
|
|
|
| -const GpuMemoryBufferFactory::Configuration kSupportedConfigurations[] = {
|
| - {gfx::GpuMemoryBuffer::BGRA_8888, gfx::GpuMemoryBuffer::SCANOUT},
|
| - {gfx::GpuMemoryBuffer::RGBX_8888, gfx::GpuMemoryBuffer::SCANOUT}};
|
| +gfx::GpuMemoryBuffer::Format FormatFromOzoneBufferFormat(
|
| + ui::SurfaceFactoryOzone::BufferFormat ozone_format) {
|
| + switch (ozone_format) {
|
| + case ui::SurfaceFactoryOzone::BGRA_8888:
|
| + return gfx::GpuMemoryBuffer::BGRA_8888;
|
| + case ui::SurfaceFactoryOzone::RGBX_8888:
|
| + return gfx::GpuMemoryBuffer::RGBX_8888;
|
| + case ui::SurfaceFactoryOzone::UNKNOWN:
|
| + NOTREACHED();
|
| + break;
|
| + }
|
| + NOTREACHED();
|
| + return gfx::GpuMemoryBuffer::BGRA_8888;
|
| +}
|
| +
|
| +gfx::GpuMemoryBuffer::Usage UsageFromOzoneBufferUsage(
|
| + ui::SurfaceFactoryOzone::BufferUsage ozone_usage) {
|
| + switch (ozone_usage) {
|
| + case ui::SurfaceFactoryOzone::MAP:
|
| + return gfx::GpuMemoryBuffer::MAP;
|
| + case ui::SurfaceFactoryOzone::PERSISTENT_MAP:
|
| + return gfx::GpuMemoryBuffer::PERSISTENT_MAP;
|
| + case ui::SurfaceFactoryOzone::SCANOUT:
|
| + return gfx::GpuMemoryBuffer::SCANOUT;
|
| + }
|
| + NOTREACHED();
|
| + return gfx::GpuMemoryBuffer::MAP;
|
| +}
|
| +
|
| +void GetSupportedConfigurations(
|
| + std::vector<GpuMemoryBufferFactory::Configuration>* configurations) {
|
| + std::vector<ui::NativePixmapManager::Configuration>
|
| + native_pixmap_configurations =
|
| + ui::NativePixmapManager::GetInstance()
|
| + ->GetSupportedNativePixmapConfigurations();
|
| + for (auto& native_pixmap_configuration : native_pixmap_configurations) {
|
| + configurations->push_back(
|
| + {FormatFromOzoneBufferFormat(native_pixmap_configuration.format),
|
| + UsageFromOzoneBufferUsage(native_pixmap_configuration.usage)});
|
| + }
|
| +}
|
|
|
| } // namespace
|
|
|
| @@ -28,7 +65,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;
|
| }
|
| @@ -39,14 +78,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
|
|
|