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

Unified Diff: ui/ozone/platform/drm/gpu/gbm_surface_factory.h

Issue 2165303002: Convert Ozone GBM to use new surface API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ozone_impl
Patch Set: Small fixes. Created 4 years, 5 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/drm/gpu/gbm_surface_factory.h
diff --git a/ui/ozone/platform/drm/gpu/gbm_surface_factory.h b/ui/ozone/platform/drm/gpu/gbm_surface_factory.h
index 71ab8e77d5750c7bb46e319114f6b8b84bd8841d..c5329e729a62b462d7b9633908cc4329608e37b4 100644
--- a/ui/ozone/platform/drm/gpu/gbm_surface_factory.h
+++ b/ui/ozone/platform/drm/gpu/gbm_surface_factory.h
@@ -8,28 +8,43 @@
#include <stdint.h>
#include <map>
+#include <memory>
#include <vector>
#include "base/macros.h"
#include "base/threading/thread_checker.h"
+#include "ui/gl/gl_implementation.h"
+#include "ui/gl/gl_surface.h"
#include "ui/ozone/public/surface_factory_ozone.h"
namespace ui {
class DrmThreadProxy;
class GbmDevice;
-class GbmSurfaceless;
+class GLSurfaceGbmSurfaceless;
class GbmSurfaceFactory : public SurfaceFactoryOzone {
public:
explicit GbmSurfaceFactory(DrmThreadProxy* drm_thread);
~GbmSurfaceFactory() override;
- void RegisterSurface(gfx::AcceleratedWidget widget, GbmSurfaceless* surface);
+ void RegisterSurface(gfx::AcceleratedWidget widget,
+ GLSurfaceGbmSurfaceless* surface);
void UnregisterSurface(gfx::AcceleratedWidget widget);
- GbmSurfaceless* GetSurface(gfx::AcceleratedWidget widget) const;
+ GLSurfaceGbmSurfaceless* GetSurface(gfx::AcceleratedWidget widget) const;
// SurfaceFactoryOzone:
+ bool UseNewSurfaceAPI() override;
+ scoped_refptr<gl::GLSurface> CreateViewGLSurface(
+ gl::GLImplementation implementation,
+ gfx::AcceleratedWidget widget) override;
+ scoped_refptr<gl::GLSurface> CreateSurfacelessViewGLSurface(
+ gl::GLImplementation implementation,
+ gfx::AcceleratedWidget widget) override;
+ scoped_refptr<gl::GLSurface> CreateOffscreenGLSurface(
+ gl::GLImplementation implementation,
+ const gfx::Size& size) override;
+
intptr_t GetNativeDisplay() override;
std::vector<gfx::BufferFormat> GetScanoutFormats(
gfx::AcceleratedWidget widget) override;
@@ -38,10 +53,6 @@ class GbmSurfaceFactory : public SurfaceFactoryOzone {
SetGLGetProcAddressProcCallback set_gl_get_proc_address) override;
std::unique_ptr<SurfaceOzoneCanvas> CreateCanvasForWidget(
gfx::AcceleratedWidget widget) override;
- std::unique_ptr<ui::SurfaceOzoneEGL> CreateEGLSurfaceForWidget(
- gfx::AcceleratedWidget w) override;
- std::unique_ptr<SurfaceOzoneEGL> CreateSurfacelessEGLSurfaceForWidget(
- gfx::AcceleratedWidget widget) override;
scoped_refptr<ui::NativePixmap> CreateNativePixmap(
gfx::AcceleratedWidget widget,
gfx::Size size,
@@ -58,7 +69,8 @@ class GbmSurfaceFactory : public SurfaceFactoryOzone {
DrmThreadProxy* drm_thread_;
- std::map<gfx::AcceleratedWidget, GbmSurfaceless*> widget_to_surface_map_;
+ std::map<gfx::AcceleratedWidget, GLSurfaceGbmSurfaceless*>
+ widget_to_surface_map_;
DISALLOW_COPY_AND_ASSIGN(GbmSurfaceFactory);
};

Powered by Google App Engine
This is Rietveld 408576698