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

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

Issue 2731733002: Convert Ozone GL OSMesa implementation. (Closed)
Patch Set: Fix rebase. 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 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);
« no previous file with comments | « ui/ozone/platform/headless/headless_surface_factory.h ('k') | ui/ozone/platform/wayland/wayland_surface_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698