Index: ui/ozone/platform/headless/headless_surface_factory.cc |
diff --git a/ui/ozone/platform/headless/headless_surface_factory.cc b/ui/ozone/platform/headless/headless_surface_factory.cc |
index 73f4cfb1c20f02c49f85fe9cdd57898ce0bafce1..11222a88f2f274b5e9678641b25bbf41c28f7d97 100644 |
--- a/ui/ozone/platform/headless/headless_surface_factory.cc |
+++ b/ui/ozone/platform/headless/headless_surface_factory.cc |
@@ -16,6 +16,7 @@ |
#include "ui/gfx/native_pixmap.h" |
#include "ui/gfx/skia_util.h" |
#include "ui/gfx/vsync_provider.h" |
+#include "ui/ozone/common/gl_ozone_osmesa.h" |
#include "ui/ozone/platform/headless/headless_window.h" |
#include "ui/ozone/platform/headless/headless_window_manager.h" |
#include "ui/ozone/public/surface_ozone_canvas.h" |
@@ -111,10 +112,26 @@ HeadlessSurfaceFactory::HeadlessSurfaceFactory() |
HeadlessSurfaceFactory::HeadlessSurfaceFactory( |
HeadlessWindowManager* window_manager) |
- : window_manager_(window_manager) {} |
+ : window_manager_(window_manager), |
+ osmesa_implementation_(base::MakeUnique<GLOzoneOSMesa>()) {} |
HeadlessSurfaceFactory::~HeadlessSurfaceFactory() {} |
+std::vector<gl::GLImplementation> |
+HeadlessSurfaceFactory::GetAllowedGLImplementations() { |
+ return std::vector<gl::GLImplementation>{gl::kGLImplementationOSMesaGL}; |
+} |
+ |
+GLOzone* HeadlessSurfaceFactory::GetGLOzone( |
+ gl::GLImplementation implementation) { |
+ switch (implementation) { |
+ case gl::kGLImplementationOSMesaGL: |
+ return osmesa_implementation_.get(); |
+ default: |
+ return nullptr; |
+ } |
+} |
+ |
std::unique_ptr<SurfaceOzoneCanvas> |
HeadlessSurfaceFactory::CreateCanvasForWidget(gfx::AcceleratedWidget widget) { |
HeadlessWindow* window = window_manager_->GetWindow(widget); |