Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(156)

Unified Diff: ui/ozone/platform/headless/headless_surface_factory.cc

Issue 2731733002: Convert Ozone GL OSMesa implementation. (Closed)
Patch Set: Cleanup. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 6b63cc630d935539fbe1ff320379fcab9e4b57f4..b83fc7a428c15abe9ad3f3043e28e846aea843bf 100644
--- a/ui/ozone/platform/headless/headless_surface_factory.cc
+++ b/ui/ozone/platform/headless/headless_surface_factory.cc
@@ -15,6 +15,7 @@
#include "ui/gfx/codec/png_codec.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/native_pixmap.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);

Powered by Google App Engine
This is Rietveld 408576698